Commit Graph

998 Commits

Author SHA1 Message Date
Jean Thomas
d1016446da mediatek: Add support for GL.iNet X3000 (Spitz AX) and XE3000 (Puli AX)
The GL.iNet X3000 and XE3000 are Wi-Fi 6 5G cellular routers, based on
MediaTek MT7981A SoC. The XE3000 is the same device as the X3000,
except for an additional battery.

Specifications:
 - SoC: Filogic 820 MT7981A (1.3GHz)
 - RAM: DDR4 512M
 - Flash: eMMC 8G, MicroSD card slot
 - WiFi: 2.4GHz and 5GHz with 6 antennas
 - Ethernet:
   - 1x LAN (10/100/1000M)
   - 1x WAN (10/100/1000/2500M)
 - 5G: Quectel RM520N-GL with two nano-SIM card slots
 - USB: 1x USB 2.0 port
 - UART:
   - 3.3V, TX, RX, GND / 115200 8N1

MAC addresses as verified by OEM firmware:
vendor   OpenWrt    address     source
WAN      eth0       label       factory 0x0a (label)
LAN      eth1       label + 1
2g       phy0-ap0   label + 2   factory 0x04
5g       phy1-ap0   label + 3

Installation via U-Boot rescue:
1. Press and hold reset button while booting the device
2. Wait for the Internet led to blink 5 times
3. Release reset button
4. The rescue page is accessible via http://192.168.1.1
5. Select the OpenWrt sysupgrade image and start upgrade
6. Wait for the router to flash new firmware and reboot

Revert to stock firmware:
1. Download the stock firmware from GL.iNet website
2. Use the method explained above to flash the stock firmware

Switch the modem network port between PCIe and USB interfaces:
1. Connect to the AT commands (/dev/ttyUSB2) port using
e.g. minicom: minicom -D /dev/ttyUSB2
2. Check the current modem mode with 'AT+QCFG="data_interface"':
  - 0,0 indicates that the network port uses the USB interface
  - 1,0 indicates that the network port uses the PCIe interface
3. Switch the active interface with:
  - 'AT+QCFG="data_interface",0,0' to use the USB interface
  - 'AT+QCFG="data_interface",1,0' to use the PCIe interface
4. Reboot

Signed-off-by: Jean Thomas <jean.thomas@wifirst.fr>
2024-03-13 20:47:23 +00:00
Jean Thomas
e1831321de mediatek: mt7981: pinctrl: add additional emmc groups
Add new emmc groups in the pinctrl driver for the
MediaTek MT7981 SoC:
* emmc reset, with pin 15.
* emmc 4-bit bus-width, with pins 16 to 19, and 24 to 25.
* emmc 8-bit bus-width, with pins 16 to 25.

The existing emmc_45 group is kept for legacy reasons, even
if this is the union of emmc_reset and emmc_8 groups.

Signed-off-by: Jean Thomas <jean.thomas@wifirst.fr>
2024-03-13 20:47:23 +00:00
Jean Thomas
80e6e52026 mediatek: mt7981: pinctrl: add additional uart group
Add uart1_3 (pins 26, 27) group to the pinctrl driver for the
MediaTek MT7981 SoC.

Signed-off-by: Jean Thomas <jean.thomas@wifirst.fr>
2024-03-13 20:47:23 +00:00
Daniel Golle
448b48c245 mediatek: add Linux 6.6 as testing kernel
Add KERNEL_TESTING_PATCHVER for Linux 6.6.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2024-03-11 21:22:12 +00:00
Daniel Golle
cd509d739a mediatek: add kernel configs for Linux 6.6
Add config-6.6 for all mediatek subtargets.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2024-03-11 21:22:12 +00:00
Daniel Golle
3043bd2621 mediatek: fix build of MT7988 clk drivers on Linux 6.6
As shared remove functions now returns void instead of int we need to
use .remove_new instead of .remove.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2024-03-11 21:22:12 +00:00
Daniel Golle
dcac4a28e6 mediatek: leds-smartrg-system: fix build on Linux 6.6
Adapt to changed function pointer prototypes.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2024-03-11 21:22:12 +00:00
Daniel Golle
5b4bbd1097 mediatek: 6.6: refresh patches
Refresh patches and fix changed path for 32-bit mediatek boards
'arch/arm/dts' -> 'arch/arm/dts/mediatek'

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2024-03-11 21:22:12 +00:00
Daniel Golle
f4223abd8f mediatek: 6.6: drop patches backported as fixes
Drop patches backported as fixes in later kernel version.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2024-03-11 21:22:12 +00:00
Daniel Golle
23a8e28256 mediatek: 6.6: drop backport patches
Drop all backport patches that are now included in kernel 6.6.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2024-03-11 21:22:12 +00:00
Daniel Golle
95d3d353f8 mediatek: copy patches-6.1 to patches-6.6
Copy patches from patches-6.1 to patches-6.6. No changes.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2024-03-11 21:22:12 +00:00
Daniel Golle
9cb70f399c mediatek: copy files-6.1 to files-6.6
Copy files from files-6.1 to files-6.6. No changes.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2024-03-11 21:22:12 +00:00
John Audia
dd02da54e9 kernel: bump 6.1 to 6.1.81
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.1.81

All patches automatically rebased.

Build system: x86/64
Build-tested: x86/64/AMD Cezanne, ramips/tplink_archer-a6-v3, flogic/xiaomi_redmi-router-ax6000-ubootmod
Run-tested: x86/64/AMD Cezanne, ramips/tplink_archer-a6-v3, flogic/xiaomi_redmi-router-ax6000-ubootmod

Signed-off-by: John Audia <therealgraysky@proton.me>
2024-03-11 21:51:37 +01:00
Daniel Golle
ecc9d0195b mediatek: mt7988: fix clk for 2nd PCIe port
Due to what seems to be an undocumented oddity in MediaTek's MT7988
SoC design the CLK_INFRA_PCIE_PERI_26M_CK_P2 clock requires
CLK_INFRA_PCIE_PERI_26M_CK_P3 to be enabled.

This currently leads to PCIe port 2 not working in Linux.

Reflect the apparent relationship in the clk driver to make sure PCIe
port 2 of the MT7988 SoC works.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2024-03-11 19:14:14 +00:00
Daniel Golle
45a2109353 mediatek: mt7622: linksys-e8450: set driving strength for SPI-NAND
Set 12mA driving strength for SPI-NAND pins like the stock firmware's
bootloader does as well.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2024-03-11 19:14:14 +00:00
Daniel Golle
330316f056 mediatek: linksys-e8450: improve compat warning
Include a statement about having to run the installer in the
sysupgrade compat warning for the Linksys E8450 (UBI).

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2024-03-09 14:02:58 +00:00
Daniel Golle
cd4de3251c mediatek: wait for fitblk rootfs
Probing of the fitblk driver in some situations happens after the kernel
attempts to mount rootfs, which then fails.
Always use 'rootwait' when using fitblk for rootfs.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2024-03-09 14:02:58 +00:00
Furong Xu
22f24f9107 mediatek: clean duplicated #include in Xiaomi Redmi AX6000's dts
Clean duplication of #include <dt-bindings/leds/common.h>.
Thanks musashino205

Fixes: 1493e8f8cb ("mediatek: convert LED color/function format for Xiaomi Redmi AX6000")
Signed-off-by: Furong Xu <xfr@outlook.com>
2024-03-08 16:51:35 +08:00
Furong Xu
8d355b870a mediatek: filogic: switch to fitblk for Xiaomi Redmi AX6000
Use the new fitblk driver.

Run-tested: filogic/mt7986a-xiaomi-redmi-router-ax6000-ubootmod

Signed-off-by: Furong Xu <xfr@outlook.com>
2024-03-08 15:28:30 +08:00
Furong Xu
1493e8f8cb mediatek: convert LED color/function format for Xiaomi Redmi AX6000
Commit 2d63d42f5e ("mediatek: convert to new LED color/function
format where possible") leaves Xiaomi Redmi AX6000 un-converted,
the two LEDs become dead.
Now, LEDs are alive again.

Fixes: 2d63d42f5e ("mediatek: convert to new LED color/function
format where possible")

Signed-off-by: Furong Xu <xfr@outlook.com>
2024-03-08 15:26:57 +08:00
Paul Geraedts
8256d06933 mediatek: filogic: fix failsafe mode on devices with no lan1
Default to lan4 port, instead of (missing) lan1 port,
to fix failsafe mode on Xiaomi AX3000T, WR30U, AX6000

Build system: x86/64
Build-tested: mediatek/filogic/xiaomi_mi-router-ax3000t-ubootmod
Run-tested: mediatek/filogic/xiaomi_mi-router-ax3000t-ubootmod

Signed-off-by: Paul Geraedts <p.f.j.geraedts@gmail.com>
2024-03-02 14:08:08 +01:00
Daniel Golle
a86ff06d2e mediatek: mt7622: rtl8367c: add casts to fix compiler warnings
Use type casts to prevent compiler warnings which are going to turn
into errors when we switch to Linux 6.6.
In the long run we should try to get rid of this downstream driver
now that RTL8367S is support by the rtl8365mb DSA driver.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2024-03-01 01:42:36 +00:00
Daniel Golle
7c468e5e64 mediatek: rename or replace accepted patches
Rename kernel patches accepted upstream to indicate at which version
they have been accepted, replacing downstream variants which what was
accepted upstream. Note that some of them are fixes which will
find their way to older kernel versions as well via linux-stable.
No functional changes.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2024-03-01 01:42:36 +00:00
Daniel Golle
9d7e603f4d mediatek: fix version tag in thermal patches
Some backported thermal patches ended up with the wrong kernel
version in their filename. Fix this.

Fixes: c36de2e73a ("mediatek: backport a hell of thermal commits")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2024-03-01 01:03:42 +00:00
Robert Senderek
e8f7597317 mediatek: filogic: add support for Cudy RE3000 v1
MT7981B /256MB /16MB SPI (XM25QH128C)
AX 2.4Ghz
AX 5Ghz 160Mhz wide
1Gbit LAN

OEM:
root@RE3000:~# ifconfig |grep HWaddr
br-lan    Link encap:Ethernet  HWaddr 80:XX:XX:08:XX:X0 (label)
br-wan    Link encap:Ethernet  HWaddr 80:XX:XX:08:XX:X0
eth0      Link encap:Ethernet  HWaddr 80:XX:XX:08:XX:X0
ra0       Link encap:Ethernet  HWaddr 80:XX:XX:08:XX:X0
ra2       Link encap:Ethernet  HWaddr 82:XX:XX:28:XX:X0
rax0      Link encap:Ethernet  HWaddr 82:XX:XX:38:XX:X0
rax2      Link encap:Ethernet  HWaddr 82:XX:XX:58:XX:X0

OpenWrt
root@OpenWrt:/# ifconfig |grep HW
br-lan    Link encap:Ethernet  HWaddr 80:XX:XX:08:XX:X0
eth0      Link encap:Ethernet  HWaddr 80:XX:XX:08:XX:X0
phy0-ap0  Link encap:Ethernet  HWaddr 80:XX:XX:08:XX:X0
phy1-ap0  Link encap:Ethernet  HWaddr 82:XX:XX:08:XX:X1

 tftp Installation via u-boot:

Connect TTL3.3V converter
connector is under the radiator Set speed 115200 8 N 1
Interrupt boot process by holding down-arrow key during boot then
>> 6. Load image
>> 0 - TFTP client (Default)
enter IP adresses and initramfs-kernel.bin

write to flash via sysupgrade or gui

Signed-off-by: Robert Senderek <robert.senderek@10g.pl>
2024-02-29 21:16:27 +01:00
Felix Fietkau
c6319de48b mediatek: re-enable mt7622-rfb1-ubi with changed partition layout
The boot loader does not have a fixed size limit for the kernel,
so we're free to change the layout. This may break sysupgrade, but a fresh
flash from initramfs works.

Fixes: 6e2962d4c5 ("mediatek: mt7622: skip build for MT7622 rfb1 (UBI)")
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2024-02-28 09:59:43 +01:00
Robert Senderek
611a9894b2 mediatek: filogic: Cudy WR3000 v1 wps button fix
WPS button activation method is wrong .  It should be active low

Signed-off-by: Robert Senderek <robert.senderek@10g.pl>
2024-02-26 11:26:22 +01:00
Daniel Golle
85f34990d3 mediatek: include 'fitblk' package for subtargets
If selected on a per-board base, fitblk doesn't end up in initramfs
images which always only come with the subtarget's default packages.
Hence fitblk needs to be included as a default package of all
subtargets making use of fitblk instead of it being selected for
individual boards.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2024-02-26 02:13:08 +00:00
Daniel Golle
eab44ec7ea mediatek: drop platform_get_bootdev
Now that we got fitblk_get_bootdev in /lib/upgrade/common.sh we don't
need platform_get_bootdev in each of the subtargets any longer.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2024-02-26 01:29:22 +00:00
Daniel Golle
3e8d2f2439 mediatek: mt7623: bpi-r2: bump compat version on boot
The device booting successfully indicates that bootloader has been
updated. Set compat_version to 1.1 on new configs and bump
compat_version to 1.1 on first boot after a successful sysupgrade.

Fixes: 6368ed1ae5 ("mediatek: mt7623: phase out uImage.FIT partition parser")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2024-02-25 01:50:31 +00:00
Daniel Golle
79dae14157 mediatek: mt7623: bpi-r2: set root=/dev/fit0 in bootargs
Set root=/dev/fit0 cmdline parameter as the kernel won't mount rootfs
otherwise after the change from the FIT partition parser to the fitblk
driver which replaces it.

Fixes: 6368ed1ae5 ("mediatek: mt7623: phase out uImage.FIT partition parser")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2024-02-24 17:02:35 +00:00
Daniel Golle
6368ed1ae5 mediatek: mt7623: phase out uImage.FIT partition parser
Use the new fitblk driver on the BananaPi R2 as well as UniElec U7623.
Introduce boot device selection for fitblk's /chosen/rootdisk
handle, similar to how it is already done on MT7622, MT7986 and MT7988.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2024-02-24 03:02:35 +00:00
Daniel Golle
280b13dc64 mediatek: mt7622: no longer select FIT_PARTITION
All mt7622 board previously using the FIT partition parser have been
converted to use the fitblk driver:
 6aec3c7b5b mediatek: mt7622: modernize Linksys E8450 / Belkin RT3200 UBI build
 41c053141e mediatek: mt7622: convert unifi6lr-v{1,2,3}-ubootmod to fitblk
 208f6c1232 mediatek: mt7622: convert BPi-R64 to all-UBI layout and fitblk

Remove the now no longer needed FIT partition parser from builds for
mt7622.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2024-02-23 14:37:35 +00:00
Daniel Golle
1794309bb5 mediatek: filogic: asus-tuf-ax6000: use NVMEM-on-UBI
Use newly added support for NVMEM-on-UBI instead of extracting MAC
address and WiFi EEPROM data in userspace.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2024-02-23 14:35:00 +00:00
Daniel Golle
25c9ebc6d4 mediatek: filogic: asus-tuf-ax4200: use NVMEM-on-UBI
Use newly added support for NVMEM-on-UBI instead of extracting MAC
address and WiFi EEPROM data in userspace.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2024-02-23 14:35:00 +00:00
Daniel Golle
33197d22f0 mediatek: filogic: asus-rt-ax59u: use NVMEM-on-UBI
Use newly added support for NVMEM-on-UBI instead of extracting MAC
address and WiFi EEPROM data in userspace.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2024-02-23 14:35:00 +00:00
Rafał Miłecki
ae036c26fd mediatek: filogic: fix mt7981 DT nodenames
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2024-02-20 12:42:28 +01:00
Rafał Miłecki
6bda7d2090 mediatek: filogic: improve mt7981 DT coding style
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2024-02-20 12:42:28 +01:00
Rafał Miłecki
388bc4b365 mediatek: filogic: reorder mt7981 DT properties
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2024-02-20 12:42:28 +01:00
Rafał Miłecki
faa7b7dd0a mediatek: filogic: reorder mt7981 DT SoC reg-based nodes
Follow upstream Linux kernel guidelines:
https://www.kernel.org/doc/html/next/devicetree/bindings/dts-coding-style.html#order-of-nodes

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2024-02-20 12:42:28 +01:00
Rafał Miłecki
c094131c1a mediatek: filogic: reorder mt7981 DT name-based nodes
Follow upstream Linux kernel guidelines:
https://www.kernel.org/doc/html/next/devicetree/bindings/dts-coding-style.html#order-of-nodes

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2024-02-20 12:42:28 +01:00
Rafał Miłecki
0ef9274721 mediatek: filogic: move mt7981 on-SoC blocks to "soc" node in DT
It's a standard way of grouping on-SoC hardware blocks and this matches
upstream DTS.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2024-02-19 07:02:49 +01:00
Daniel Golle
fba79f39f2 mediatek: filogic: fix nvmem cell names of the GL.iNet MT-2500
Fix style of nvmem cell names in the device tree of the GL.iNet MT-2500.

Fixes: 49ed52b862 ("mediatek: filogic: convert GL.iNet MT-2500 to use NVMEM-on-MMC)"
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2024-02-19 03:23:43 +00:00
Daniel Golle
49ed52b862 mediatek: filogic: convert GL.iNet MT-2500 to use NVMEM-on-MMC
Use nvmem-layout in device tree instead of extracting MAC addresses
in userspace.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2024-02-18 03:36:06 +00:00
Daniel Golle
6077fa2f61 mediatek: mt7981: remove inaccurate compatible strings
Remove more inaccurate compatible strings from various clock controllers
of the MT7981 SoC.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2024-02-18 03:36:06 +00:00
Daniel Golle
7af3b202d4 mediatek: mt7981: prevent system freezes on boot
Import patch to make sure SGM_REG_SEL clock is always enabled as it
seems that more registers than just SGMIISYS0 and SGMIISYS1 are
depending on that clock being enabled.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2024-02-18 03:35:28 +00:00
Daniel Golle
bf20585412 mediatek: filogic: convert GL.iNet MT-6000 to NVMEM-on-MMC
Now that we can reference MMC partitions in device tree, use that
to get rid of Wi-Fi EEPROM and MAC address setup in userspace.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2024-02-18 03:26:15 +00:00
Daniel Golle
8955cadfb5 mediatek: dts: mt7981: fix ethsys clock compatible
Remove inaccurate compatible string 'mediatek,mt7986-ethsys' which
results in the wrong clock driver probing on MT7981 with Linux 6.1 and
ends up freezing the system once WED is used.

Fixes: da970d63fb ("mediatek: switch to Linux version 6.1")
Reported-by: Chen Minqiang <ptpt52@gmail.com>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2024-02-17 18:54:37 +00:00
Rafał Miłecki
3bd79e6136 mediatek: filogic: replace built-in Aquantia driver with module
Some Aquantia PHYs (e.g. AQR113C) require firmware to be uploaded by
host system. With built-in drivers this doesn't work in OpenWrt /
embeddded as filesystem isn't available during PHY probe. That results
in delays like:
[    1.588068] Aquantia AQR113C mdio-bus:00: Falling back to sysfs fallback for: Rhe-05.06-Candidate9-AQR_Mediatek_23B_P5_ID45824_LCLVER1.cld
[   64.526387] Aquantia AQR113C mdio-bus:00: failed to find FW file Rhe-05.06-Candidate9-AQR_Mediatek_23B_P5_ID45824_LCLVER1.cld (-110)

Switch to module to postpone PHY probe to init state.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2024-02-17 17:54:07 +01:00
Daniel Golle
dadad6bb73 mediatek: mt7622: skip build also for Xiaomi AX6S
Also here build fails due to increased kernel size.

Fixes: da970d63fb ("mediatek: switch to Linux version 6.1")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2024-02-17 14:23:43 +00:00