Skip to content

mediatek: move Edgecore EAP112 to filogic and kernel 6.6 - #1342

Open
ian77chen wants to merge 1 commit into
staging-for-v4.2.0-LTSfrom
staging-WIFI-15716-eap112-kernel-6.6
Open

ian77chen wants to merge 1 commit into
staging-for-v4.2.0-LTSfrom
staging-WIFI-15716-eap112-kernel-6.6

Conversation

@ian77chen

@ian77chen ian77chen commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

EAP112 was the last MT7981 board built from the 5.4 SDK feed (feeds/mediatek-sdk). EAP111 and the Sonicfi boards already use feeds/mediatek, which brings Linux 6.6, mac80211 backports 6.12.6 and upstream mt76. EAP112 could not follow because its HaLow radio used the Morse mm61xx 1.11.4 driver, which hard-codes backports v5.18.1 and does not build against 6.12.6.

Add the board to feeds/mediatek: a 6.6 DTS whose partitions and MM6108 SPI node match the 5.4 image, and a filogic image with the same sysupgrade layout and compat version, so the 5.4 image accepts the upgrade without -F. The eth swap, network and GPIO switch cases and the default mt76 EEPROM are extended to EAP112. On 6.6 the GPIO base moves from 455 to 512, u-boot-env from mtd2 to mtd1, and the radio and SPI device paths change, so uci-defaults and the wifi-migrate hotplug rewrite the kept LTE GPIOs, modem USB path and radio paths, and drop a kept ubootenv config that would otherwise stop fw_env.config from being regenerated. The driver now takes the HaLow reset GPIO from the DTS, so the halow-gpio-reset init script is removed.

The three gpio LEDs are labelled green:power (pio 9), orange:halow (pio 34) and blue:lte (pio 35) as on main, matching their function on this board, instead of the 5.4 names orange:wan and blue:wlan5g. board.d gives EAP112 its own case, separate from EAP111: green:power stays the default-on power LED, orange:halow follows the HaLow AP netdev (wlan0) and blue:lte the LTE netdev (wwan0), so the orange LED no longer follows WAN activity. main leaves these two triggers commented out and names the HaLow netdev phy0-ap0; in this tree the HaLow radio is radio0, whose AP netdev is wlan0, and mbim brings wwan0 up only once the data bearer is connected. The led-* aliases refer to the nodes by phandle, so diag.sh and ucentral-state need no change.

Move the Morse stack to mm6108-2.0.1, which is built for backports 6.12.6: driver, firmware, board config with the v12 BCFs, morsecli and the S1G hostapd and wpa_supplicant. The driver is loaded with AutoProbe so that it registers before mt7915e and HaLow stays phy0 as on 5.4. netifd-morse takes the 2.0.1 scripts with the earlier TIP HaLow fixes re-applied, renames the HaLow phy back after the driver reloads it performs and migrates the options 2.0.1 renamed. iwinfo reads the new noise label and reports HaLow signal from the station RSSI.

detect_mac80211() numbered the radios in phy order, and the HaLow phy can still come up as phy3, as seen after a driver reload. uCentral renders a config against the current wireless section names and then regenerates the file with "wifi config" before applying it, so a changed phy order put the 2G and 5G settings on the wrong sections, pointed the 5G SSID at a radio that no longer existed and left 5G disabled. detect_mac80211() now numbers the Morse phy first, so radio0 is HaLow and the 2G and 5G sections keep their names in either order. Boards without a Morse phy keep the old order. setup_morse_wireless() also uses the device path it read instead of a fixed one.

Add a mac80211 patch that skips the chanctx assignment for AP_VLAN on hardware restart. A HaLow watchdog restart with a 4addr WDS client otherwise hits the check-sdata-in-driver warning. On the other boards this path is only reached on a hardware restart with an AP_VLAN up.

Tested on EAP112: the QA sanity and regression suites (2.4 GHz, 5 GHz, cloud management) show no product failures; a HaLow station associates, gets an address and passes ping; LTE comes up over MBIM as a separate WWAN uplink with the wired WAN kept and pings out. With this commit on the current staging-for-v4.2.0-LTS, /sys/class/leds lists green:power, orange:halow and blue:lte; green stays on, orange is on while the HaLow AP is up and goes off when the HaLow radio is down or has no SSID, and blue comes on when the LTE bearer connects, blinks with LTE traffic and goes off on ifdown.

Fixes: WIFI-15716

@ian77chen ian77chen added this to the 4.2.9 milestone Oct 28, 2026
@ian77chen
ian77chen force-pushed the staging-WIFI-15716-eap112-kernel-6.6 branch from 74aa10e to deb2bf7 Compare October 28, 2026 03:38
@github-actions

Copy link
Copy Markdown

✅ PR & Commit Guidelines — all checks passed

Commits, PR description, C style, and milestone all look good. Thanks!

Commit hygiene

No issues found.

C style

No issues found.

PR description (ticket link)

No issues found.

Milestone

No issues found.

See OPENWIFI_PR_GUIDELINES.md and OPENWIFI_CODING_GUIDELINES.md. Items marked ⚠️ are advisory and do not fail the check.

EAP112 was the last MT7981 board built from the 5.4 SDK feed
(feeds/mediatek-sdk). EAP111 and the Sonicfi boards already use
feeds/mediatek, which brings Linux 6.6, mac80211 backports 6.12.6 and
upstream mt76. EAP112 could not follow because its HaLow radio used the
Morse mm61xx 1.11.4 driver, which hard-codes backports v5.18.1 and does
not build against 6.12.6.

Add the board to feeds/mediatek: a 6.6 DTS whose partitions and
MM6108 SPI node match the 5.4 image, and a filogic image with the same
sysupgrade layout and compat version, so the 5.4 image accepts the
upgrade without -F. The eth swap, network and GPIO switch cases and
the default mt76 EEPROM are extended to EAP112. On 6.6 the GPIO base
moves from 455 to 512, u-boot-env from mtd2 to mtd1, and the radio and
SPI device paths change, so uci-defaults and the wifi-migrate hotplug
rewrite the kept LTE GPIOs, modem USB path and radio paths, and drop a
kept ubootenv config that would otherwise stop fw_env.config from being
regenerated. The driver now takes the HaLow reset GPIO from the DTS, so
the halow-gpio-reset init script is removed.

The three gpio LEDs are labelled green:power (pio 9), orange:halow
(pio 34) and blue:lte (pio 35) as on main, matching their function on
this board, instead of the 5.4 names orange:wan and blue:wlan5g. board.d
gives EAP112 its own case, separate from EAP111: green:power stays the
default-on power LED, orange:halow follows the HaLow AP netdev (wlan0)
and blue:lte the LTE netdev (wwan0), so the orange LED no longer follows
WAN activity. main leaves these two triggers commented out and names the
HaLow netdev phy0-ap0; in this tree the HaLow radio is radio0, whose AP
netdev is wlan0, and mbim brings wwan0 up only once the data bearer is
connected. The led-* aliases refer to the nodes by phandle, so diag.sh
and ucentral-state need no change.

Move the Morse stack to mm6108-2.0.1, which is built for backports
6.12.6: driver, firmware, board config with the v12 BCFs, morsecli and
the S1G hostapd and wpa_supplicant. The driver is loaded with AutoProbe
so that it registers before mt7915e and HaLow stays phy0 as on 5.4.
netifd-morse takes the 2.0.1 scripts with the earlier TIP HaLow fixes
re-applied, renames the HaLow phy back after the driver reloads it
performs and migrates the options 2.0.1 renamed. iwinfo reads the new
noise label and reports HaLow signal from the station RSSI.

detect_mac80211() numbered the radios in phy order, and the HaLow phy
can still come up as phy3, as seen after a driver reload. uCentral
renders a config against the current wireless section names and then
regenerates the file with "wifi config" before applying it, so a
changed phy order put the 2G and 5G settings on the wrong sections,
pointed the 5G SSID at a radio that no longer existed and left 5G
disabled. detect_mac80211() now numbers the Morse phy first, so radio0
is HaLow and the 2G and 5G sections keep their names in either order.
Boards without a Morse phy keep the old order. setup_morse_wireless()
also uses the device path it read instead of a fixed one.

Add a mac80211 patch that skips the chanctx assignment for AP_VLAN on
hardware restart. A HaLow watchdog restart with a 4addr WDS client
otherwise hits the check-sdata-in-driver warning. On the other boards
this path is only reached on a hardware restart with an AP_VLAN up.

Tested on EAP112: the QA sanity and regression suites (2.4 GHz, 5 GHz,
cloud management) show no product failures; a HaLow station associates,
gets an address and passes ping; LTE comes up over MBIM as a separate
WWAN uplink with the wired WAN kept and pings out. With this commit on
the current staging-for-v4.2.0-LTS, /sys/class/leds lists green:power,
orange:halow and blue:lte; green stays on, orange is on while the HaLow
AP is up and goes off when the HaLow radio is down or has no SSID, and
blue comes on when the LTE bearer connects, blinks with LTE traffic and
goes off on ifdown.

Fixes: WIFI-15716

Signed-off-by: Ian Chen <ian77_chen@accton.com>
@ian77chen
ian77chen force-pushed the staging-WIFI-15716-eap112-kernel-6.6 branch from deb2bf7 to b565f77 Compare October 28, 2026 07:50
@tanyasingh-ec
tanyasingh-ec self-requested a review October 28, 2026 11:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants