aboutsummaryrefslogtreecommitdiff
path: root/target/linux/mediatek
Commit message (Collapse)AuthorAge
* mediatek: bpi-r4: add support for 2.5GE PoE variantMartin Schiller2024-05-06
| | | | | | | This adds support for the bpi-r4 variant with internal 2.5G PHY and additional ethernet port instead of second sfp. Signed-off-by: Martin Schiller <ms@dev.tdt.de>
* mediatek: bpi-r4: dts: move common parts to dtsi fileMartin Schiller2024-05-06
| | | | | | | Move the common parts of the mt7988a-bananapi-bpi-r4.dts to a dtsi file. This is done to prepare support for the 2.5G Ethernet Variant. Signed-off-by: Martin Schiller <ms@dev.tdt.de>
* kernel: bump 6.6 to 6.6.30John Audia2024-05-05
| | | | | | | | | | | | | | | | | | | | | Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.30 Removed upstreamed: ipq806x/patches-6.6/130-mtd-rawnand-qcom-Fix-broken-misc_cmd_type-in-exec_op.patch[1] Manually rebased: generic/pending-6.6/760-net-core-add-optional-threading-for-backlog-processi.patch mediatek/patches-6.6/941-arm64-dts-mt7986-move-cpuboot-in-a-dedicated-node.patch All other patches automatically rebased. 1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.30&id=87fc30db0a2bb300de289dae7c5579cc27a3cbbd Build system: x86/64 Build-tested: x86/64/AMD Cezanne, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3, flogic/glinet_gl-mt6000 Run-tested: x86/64/AMD Cezanne, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3, flogic/glinet_gl-mt6000 Signed-off-by: John Audia <therealgraysky@proton.me>
* Revert "mediatek: backport mt7622 dts fix for mt7531 switch id to 6.1"Daniel Golle2024-05-04
| | | | | | | | | This reverts commit 3fe239fcf8d0ea91b947af25fd28a6133aba93c6. Now that we switched to Linux 6.6 this is no longer needed, and resulted in a left-over file because it's removal was not included in the commit removing all the other files intended for Linux 6.1. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* mediatek: remove macros for previous kernel versionsDaniel Golle2024-05-03
| | | | | | | | Remove unnecessary 'if' macros for previous kernel versions. After removing kernel 6.1 the kernel is always >= 6.6 so the conditions are unnecessary. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* mediatek: switch to Linux 6.6Daniel Golle2024-05-03
| | | | | | | Switch to Linux kernel version 6.6 and drop configs, files and patches for Linux 6.1. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* mediatek: backport mt7622 dts fix for mt7531 switch id to 6.1Felix Fietkau2024-05-03
| | | | | Fixes: ac8bfe316b81 ("generic: 6.1, 6.6: mt7530: import accepted patches") Signed-off-by: Felix Fietkau <nbd@nbd.name>
* kernel: bump 6.1 to 6.1.89Shiji Yang2024-04-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Changelogs: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.1.67 https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.1.68 https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.1.69 Upstreamed patches: target/linux/generic/backport-6.1/740-v6.9-01-netfilter-flowtable-validate-pppoe-header.patch [1] target/linux/generic/backport-6.1/740-v6.9-02-netfilter-flowtable-incorrect-pppoe-tuple.patch [2] target/linux/generic/backport-6.1/790-48-STABLE-net-dsa-mt7530-trap-link-local-frames-regardless-of-.patch [3] target/linux/generic/backport-6.1/790-50-v6.10-net-dsa-mt7530-fix-mirroring-frames-received-on-loca.patch [4] target/linux/generic/backport-6.1/790-16-v6.4-net-dsa-mt7530-set-all-CPU-ports-in-MT7531_CPU_PMAP.patch [5] target/linux/generic/backport-6.1/790-46-v6.9-net-dsa-mt7530-fix-improper-frames-on-all-25MHz-and-.patch [6] target/linux/generic/backport-6.1/790-47-v6.10-net-dsa-mt7530-fix-enabling-EEE-on-MT7531-switch-on-.patch [7] target/linux/mediatek/patches-6.1/220-v6.3-clk-mediatek-clk-gate-Propagate-struct-device-with-m.patch [8] target/linux/mediatek/patches-6.1/222-v6.3-clk-mediatek-clk-mtk-Propagate-struct-device-for-com.patch [9] target/linux/mediatek/patches-6.1/223-v6.3-clk-mediatek-clk-mux-Propagate-struct-device-for-mtk.patch [10] target/linux/mediatek/patches-6.1/226-v6.3-clk-mediatek-clk-mtk-Extend-mtk_clk_simple_probe.patch [11] Symbol changes: MITIGATION_SPECTRE_BHI (new) [12] SPECTRE_BHI_{ON,OFF} (deprecated) [12] References: [1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.1.89&id=8bf7c76a2a207ca2b4cfda0a279192adf27678d7 [2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.1.89&id=f1c3c61701a0b12f4906152c1626a5de580ea3d2 [3] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.1.89&id=19643bf8c9b5bb5eea5163bf2f6a3eee6fb5b99b [4] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.1.89&id=e86c9db58eba290e858e2bb80efcde9e3973a5ef [5] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.1.89&id=013c787d231188a6408e2991150d3c9bf9a2aa0b [6] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.1.89&id=41a004ffba9b1fd8a5a7128ebd0dfa3ed39c3316 [7] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.1.89&id=7d51db455ca03e5270cc585a75a674abd063fa6c [8] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.1.89&id=082b831488a41257b7ac7ffa1d80a0b60d98394d [9] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.1.89&id=6f5f72a684a2823f21efbfd20c7e4b528c44a781 [10] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.1.89&id=a4fe8813a7868ba5867e42e60de7a2b8baac30ff [11] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.1.89&id=c1d87d56af063c87961511ee25f6b07a5676d27d [12] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.1.89&id=d844df110084ef8bd950a52194865f3f63b561ca Signed-off-by: Shiji Yang <yangshiji66@qq.com>
* mediatek: switch to fitblk for JDCloud RE-CP-03Tianling Shen2024-04-30
| | | | | | | Use the new fitblk driver. Tested-By: Yangyu Chen <cyy@cyyself.name> Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
* mediatek: fix remaining invalid MT7531 switch reg IDsFelix Fietkau2024-04-29
| | | | | | | | See commit 8b66f1a06d05afbc1450978f6e20516c8308da25: "mediatek: correct address of MT753x switch IC" Fixes: ac8bfe316b81 ("generic: 6.1, 6.6: mt7530: import accepted patches") Signed-off-by: Felix Fietkau <nbd@nbd.name>
* mediatek: bpi-r4: store random MAC addresses for the BPi-R4Daniel Golle2024-04-28
| | | | | | | | | | Despite coming with multiple I2C EEPROMs supposedly dedicated for that purpose, the BPi-R4 does not seem to have factory assigned MAC addresses. Hence, just like for all other BPi boards, store a randomly generated MAC address on first boot and derive WAN and Wi-Fi MAC addresses from that as well. Not perfect, but better than random on every boot. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* mediatek: bpi-r3-mini: persist WiFi and WAN MAC addressesDaniel Golle2024-04-28
| | | | | | | Derive WAN and WiFi MAC addresses from the (random) MAC address stored in the U-Boot environment. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* kernel: bump 6.6 to 6.6.29John Audia2024-04-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.29 Removed upstreamed: generic/backport-6.6/740-v6.9-01-netfilter-flowtable-validate-pppoe-header.patch[1] generic/backport-6.6/740-v6.9-02-netfilter-flowtable-incorrect-pppoe-tuple.patch[2] generic/backport-6.6/790-29-v6.9-net-dsa-mt7530-fix-improper-frames-on-all-25MHz-and-.patch[3] generic/backport-6.6/790-31-v6.10-net-dsa-mt7530-fix-enabling-EEE-on-MT7531-switch-on-.patch[4] generic/backport-6.6/790-34-v6.10-net-dsa-mt7530-fix-mirroring-frames-received-on-loca.patch[5] generic/backport-6.6/790-35-v6.10-net-dsa-mt7530-fix-port-mirroring-for-MT7988-SoC-swi.patch[6] mediatek/patches-6.6/963-net-ethernet-mtk_eth_soc-fix-WED-wifi-reset.patch[7] Manually rebased: generic/backport-6.6/790-23-v6.9-net-dsa-mt7530-get-rid-of-priv-info-cpu_port_config.patch All other patches automatically rebased. 1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.29&id=a2471d271042ea18e8a6babc132a8716bb2f08b9 2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.29&id=4ed82dd368ad883dc4284292937b882f044e625d 3. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.29&id=21b9d89d93422221cdda1b82fd075fa3c94a11d9 4. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.29&id=bd41ee1efd478852a0882ce5f136bc2b5e83eff2 5. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.29&id=d1be3960539249a8690ed09a29d0e3bf34189dd2 6. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.29&id=f8de1b6208bf71bd3102548d33dd8475573ad2ea 7. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.29&id=6855f724f19620c3ddff57c349e0abba797475b1 Build system: x86/64 Build-tested: x86/64/AMD Cezanne, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3 Run-tested: x86/64/AMD Cezanne, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3 Signed-off-by: John Audia <therealgraysky@proton.me>
* mediatek: sync cpufreq support with changed compatible stringDaniel Golle2024-04-24
| | | | | | | | | The compatible string for the MediaTek MT7988 SoC ended up being 'mediatek,mt7988a' instead of 'mediatek,mt7988' in the now upstream dtsi. Adapt the cpufreq driver so support for frequency scaling is again usable. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* mediatek: correct address of MT753x switch ICDaniel Golle2024-04-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For all boards currently working with the mt7530 DSA driver we can be sure that the address of the switch on the MDIO bus is 31 -- simply because that address is hard-coded in the driver and the address from the Device Tree is being ignore. An upcoming patch will add support for MT753x ICs which are programmed to addresses different from 0x1f using bootstrap pins. As a result the address from the Device Tree will then be taken into account, which will break currently working boards which got the address set to anything else than 31. While at it also unify the syntax in Device Tree to always us a decimal value for the 'reg' property. * mt7622-buffalo-wsr-3200ax4s.dts Cosmetic change 'reg = <0x1f>' -> 'reg = <31>' * mt7622-dlink-eagle-pro-ai-ax3200-a1.dtsi Wrong address: 0 -> 31 * mt7622-elecom-wrc-x3200gst3.dts Wrong address: 0 -> 31 * mt7622-linksys-e8450.dtsi Wrong address: 0 -> 31 * mt7622-ruijie-rg-ew3200.dtsi Wrong address: 0 -> 31 * mt7622-xiaomi-redmi-router-ax6s.dts Wrong address: 0 -> 31 * mt7629-iptime-a6004mx.dts Wrong address: 2 -> 31 * mt7981b-zbtlink-zbt-z8102ax.dts Cosmetic change 'reg = <0x1f>' -> 'reg = <31>' Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* mediatek: mt7988a: sync dts compatible stringDaniel Golle2024-04-24
| | | | | | | | | Use 'mediatek,mt7988a' instead of 'mediatek,mt7988' as compatible string to be in-sync with upstream and no longer break the cpufreq driver which was also kept in sync with upstream. Fixes: 56dd6b473b ("mediatek: sync cpufreq support with changed compatible string") Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* generic: 6.1: backport support for generic spi-nor from SFDP dataChristian Marangi2024-04-21
| | | | | | | | | | | | | Backport patches for support of generic spi-nor from SFDP data for kernel 6.1. Kernel 5.15 have major rework of the info flags and it's not trustable to backport this amount of changes and expect correct function of it. All affected patches automatically refreshed using make target/linux/refresh. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* mediatek: backport PWM driversDaniel Golle2024-04-19
| | | | | | | * MT7981 and MT7988 backported to Linux 6.1 * MT7988 backported to Linux 6.6 Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* kernel: bump 6.1 to 6.1.84Hauke Mehrtens2024-04-14
| | | | | | | | | | | Removed upstreamed: pistachio/patches-6.1/110-pwm-img-fix-clock-lookup.patch [1] All other patches automatically rebased. 1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.1.84&id=44b6fb6cdedb2c391a2da355521d4610b2645fcc Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* kernel: bump 6.1 to 6.1.83Hauke Mehrtens2024-04-14
| | | | | | | | | | | | | | | | | | | | Removed upstreamed: generic/backport-6.1/789-STABLE-01-net-dsa-mt7530-prevent-possible-incorrect-XTAL-frequ.patch [1] generic/backport-6.1/789-STABLE-02-net-dsa-mt7530-fix-link-local-frames-that-ingress-vl.patch [2] generic/backport-6.1/789-STABLE-03-net-dsa-mt7530-fix-handling-of-all-link-local-frames.patch [3] generic/pending-6.1/735-net-mediatek-mtk_eth_soc-release-MAC_MCR_FORCE_LINK-.patch [4] generic/pending-6.1/736-net-ethernet-mtk_eth_soc-fix-PPE-hanging-issue.patch [5] Manual adjusted the following patches: mediatek/patches-6.1/100-dts-update-mt7622-rfb1.patch 1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.1.83&id=be4512b9ac6fc53e1ca8daccbda84f643215c547 2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.1.83&id=f1fa919ea59655f73cb3972264e157b8831ba546 3. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.1.83&id=86c0c154a759f2af9612a04bdf29110f02dce956 4. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.1.83&id=6b62bad2da1b338f452a9380639fc9b093d75a25 5. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.1.83&id=f78807362828ad01db2a9ed005bf79501b620f27 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* mediatek: fix DTS defining mt7530 switch phys but not referencing themDaniel Golle2024-04-13
| | | | | | | | | | | | | | | | | | | | | | | | The upstream solution to define the MDIO bus in DT is a bit more strict than our previous downstream solution doing the same thing and now requires switch PHYs to be referenced in DT as well. Arınç Ünal told us in #15141: "With [the now upstream patch written by him which we backported], the switch MDIO bus won't be assigned to ds->user_mii_bus when the switch MDIO bus is defined on the device tree anymore. This was not the case with the downstream patch. When ds->user_mii_bus is populated, DSA will 1:1 map the port with PHY. Meaning port with address 1 will be mapped to PHY with address 1. Because that ds->user_mii_bus is not populated when the switch MDIO bus is defined on the device tree, on every port node, the PHY address must be supplied by the phy-handle property." Add those phy-handles to affected devices' DT. Fixes: 4354b34f6f ("generic: 6.6: sync mt7530 DSA driver with upstream") Fixes: 401a6ccfaf ("generic: 6.1: sync mt7530 DSA driver with upstream") Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* mediatek: mt7622: rtl8367c: source code spell fixesPaul Donald2024-04-12
| | | | | | Improves indexing and searches Signed-off-by: Paul Donald <newtwen+github@gmail.com>
* mediatek: mt7622: rtl8367c: source comment fixesPaul Donald2024-04-12
| | | | | | | | Fix also some Chinese -> UTF8 encoding problems Improves indexing and searches Signed-off-by: Paul Donald <newtwen+github@gmail.com>
* mediatek: mt7622: rtl8367c: source comment fixesPaul Donald2024-04-12
| | | | | | | | | | | | | | | | | | | | | | | | Fix also some Chinese GB18030 -> UTF-8 encoding problems (translated the Chinese strings to English): 修改 -> modification port8~port10的设置在另外一个register -> port8~port10 setup is done in a separate register You are in the correct (UTF-8) encoding when you see: * $Date: 2017-03-08 15:13:58 +0800 (週三, 08 三月 2017) $ e.g. week 3, 08 third month, 2017 But not if you see: * $Date: 2017-03-08 15:13:58 +0800 (閫变笁, 08 涓夋湀 2017) $ rtl8367c/rtl8367c_asicdrv_lut.c should be read as UTF-8, despite having some earlier Chinese text lost to GB18030 encoding. Improves indexing and searches Signed-off-by: Paul Donald <newtwen+github@gmail.com>
* mediatek: mt7622: rtl8367c: source comment fixesPaul Donald2024-04-12
| | | | | | | | Fix also some Chinese -> UTF8 encoding problems Improves indexing and searches Signed-off-by: Paul Donald <newtwen+github@gmail.com>
* mediatek: mt7622: rtl8367c: source comment fixesPaul Donald2024-04-12
| | | | | | Improves indexing and searches Signed-off-by: Paul Donald <newtwen+github@gmail.com>
* mediatek: filogic: add support for Edgecore EAP111Robert Marko2024-04-11
| | | | | | | | | | | | | | | | | | | HW specifications: * Mediatek MT7981A * 256MB SPI-NAND * 512MB DRAM * Uplink: 1 x 10/100/1000Base-T Ethernet, Auto MDIX, RJ-45 with 802.3at PoE (Built-in GBe PHY) * LAN: 1 x 10/100/1000Base-T Ethernet, Auto MDIX, RJ-45 (Airoha EN8801SC) * 1 Tricolor LED * Reset button * 12V/2.0A DC input Installation: Board comes with OpenWifi/TIP which is OpenWrt based, so sysupgrade can be used directly over SSH. Signed-off-by: Robert Marko <robert.marko@sartura.hr>
* mediatek: add Airoha EN8801SC PHY driverRobert Marko2024-04-11
| | | | | | | | | | | Airoha EN8801SC PHY is a gigabit PHY used on Edgecore EAP111 so, include the MTK driver with some cleanups. Unfortunatelly, there is no specification sheet nor datasheet available in order to demistify the magic PBUS writes and work on upstreaming this driver. Signed-off-by: Robert Marko <robert.marko@sartura.hr>
* mediatek: filogic: switch TP-LINK XDR series to fitblkDaniel Golle2024-04-09
| | | | | | | Instead of using the deprecated FIT partition parser, use the new fitblk driver instead. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* kernel: bump 6.6 to 6.6.24John Audia2024-04-05
| | | | | | | | | | | | | | | | | | | | | | | | | Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.24 Removed upstreamed: generic/backport-6.6/838-v6.9-leds-trigger-netdev-Fix-kernel-panic-on-interface-re.patch[1] generic/backport-6.6/981-mtd-spinand-Add-support-for-5-byte-IDs.patch[2] mediatek/patches-6.6/831-thermal-drivers-mediatek-Fix-control-buffer-enablement-on-MT7896.patch[3] Removed: ipq40xx/patches-6.6/110-mtd-limit-OTP-nvmem-to-non-nand-devices.patch[4] All other patches automatically rebased. 1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.24&id=10f2af1af8ab8a7064f193446abd5579d3def7e3 2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.24&id=9c74507e6c4382d12a5e418742b81fd441f03313 3. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.24&id=fe750e2744428be6aec7395b13df3b34381ce6b6 4. Acknowledgment to @DragonBlurp for pointing out the redundancy of this patch. https://github.com/openwrt/openwrt/commit/dd78a59cd7b029560b33cb3ac0e1aa8b747bd807 Build system: x86/64 Build-tested: x86/64/AMD Cezanne, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3 Run-tested: x86/64/AMD Cezanne, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3 Signed-off-by: John Audia <therealgraysky@proton.me>
* mediatek: add support for OpenEmbed SOM7981Tianling Shen2024-03-31
| | | | | | | | | | | | | | | | | | | | | | | Hardware specification: SoC: MediaTek MT7981B 2x A53 Flash: 256 MiB SPI-NAND, 32 GB eMMC optional RAM: 0.5/1 GB DDR4 Ethernet: 1x 1GbE, 1x 2.5GbE (RTL8221B) WiFi: MediaTek MT7976C USB: 1x USB 3.0 GPIO: 26-Pin header UART: 6 GND, 8 TX, 10 RX (in Pin header) Button: Reset, WPS Power: Type-C PD Installation: The board comes with a third-party custom OpenWrt image, you can upload sysupgrade image via LuCI directly WITHOUT keeping configurations. Or power on the board with pressing reset button for 5 second, then visit http://192.168.1.1 and upload -factory.bin firmware. Signed-off-by: Tianling Shen <cnsztl@gmail.com>
* filogic: Add support for D-Link AQUILA PRO AI M30Roland Reinl2024-03-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Specification: - MT7981 CPU using 2.4GHz and 5GHz WiFi (both AX) - MT7531 switch - 512MB RAM - 128MB NAND flash with two UBI partitions with identical size - 1 multi color LED (red, green, blue, white) connected via GCA230718 - 3 buttons (WPS, reset, LED on/off) - 1 1Gbit WAN port - 4 1Gbit LAN ports Disassembly: - There are four screws at the bottom: 2 under the rubber feets, 2 under the label. - After removing the screws, the white plastic part can be shifted out of the blue part. - Be careful because the antennas are mounted on the side and the top of the white part. Serial Interface - The serial interface can be connected to the 4 pin holes on the side of the board. - Pins (from front to rear): - 3.3V - RX - TX - GND - Settings: 115200, 8N1 MAC addresses: - WAN MAC is stored in partition "Odm" at offset 0x81 - LAN (as printed on the device) is WAN MAC + 1 - WLAN MAC (2.4 GHz) is WAN MAC + 2 - WLAN MAC (5GHz) is WAN MAC + 3 Flashing via Recovery Web Interface: - The recovery web interface always flashes to the currently active partition. - If OpenWrt is flahsed to the second partition, it will not boot. - Ensure that you have an OEM image available (encrypted and decrypted version). Decryption is described in the end. - Set your IP address to 192.168.200.10, subnetmask 255.255.255.0 - Press the reset button while powering on the device - Keep the reset button pressed until the LED blinks red - Open a Chromium based and goto http://192.168.200.1 (recovery web interface) - Download openwrt-mediatek-filogic-dlink_aquila-pro-ai-m30-a1-squashfs-recovery.bin - The recovery web interface always reports successful flashing, even if it fails - After flashing, the recovery web interface will try to forward the browser to 192.168.0.1 (can be ignored) - If OpenWrt was flashed to the first partition, OpenWrt will boot (The status LED will start blinking white and stay white in the end). In this case you're done and can use OpenWrt. - If OpenWrt was flashed to the second partition, OpenWrt won't boot (The status LED will stay red forever). In this case, the following steps are reuqired: - Start the web recovery interface again and flash the **decrypted OEM image**. This will be flashed to the second partition as well. The OEM firmware web interface is afterwards accessible via http://192.168.200.1. - Now flash the **encrypted OEM image** via OEM firmware web interface. In this case, the new firmware is flashed to the first partition. After flashing and the following reboot, the OEM firmware web interface should still be accessible via http://192.168.200.1. - Start the web recovery interface again and flash the OpenWrt recovery image. Now it will be flashed to the first partition, OpenWrt will boot correctly afterwards and is accessible via 192.168.1.1. Flashing via U-Boot: - Open the case, connect to the UART console - Set your IP address to 192.168.200.2, subnet mask 255.255.255.0. Connect to one of the LAN interfaces of the router - Run a tftp server which provides openwrt-mediatek-filogic-dlink_aquila-pro-ai-m30-a1-initramfs-kernel.bin. - Power on the device and select "7. Load image" in the U-Boot menu - Enter image file, tftp server IP and device IP (if they differ from the default). - TFTP download to RAM will start. After a few seconds OpenWrt initramfs should start - The initramfs is accessible via 192.168.1.1, change your IP address accordingly (or use multiple IP addresses on your interface) - Perform a sysupgrade using openwrt-mediatek-filogic-dlink_aquila-pro-ai-m30-a1-squashfs-sysupgrade.bin - Reboot the device. OpenWrt should start from flash now Revert back to stock using the Recovery Web Interface: - Set your IP address to 192.168.200.2, subnetmask 255.255.255.0 - Press the reset button while powering on the device - Keep the reset button pressed until the LED blinks red - Open a Chromium based and goto http://192.168.200.1 (recovery web interface) - Flash a decrypted firmware image from D-Link. Decrypting an firmware image is described below. Decrypting a D-Link firmware image: - Download https://github.com/RolandoMagico/firmware-utils/blob/M32/src/m32-firmware-util.c - Compile a binary from the downloaded file, e.g. gcc m32-firmware-util.c -lcrypto -o m32-firmware-util - Run ./m32-firmware-util M30 --DecryptFactoryImage <OriginalFirmware> <OutputFile> - Example for firmware M30A1_FW101B05: ./m32-firmware-util M30 --DecryptFactoryImage M30A1_FW101B05\(0725091522\).bin M30A1_FW101B05\(0725091522\)_decrypted.bin Flashing via OEM web interface is not possible, as it will change the active partition and OpenWrt is only running on the first UBI partition. Controlling the LEDs: - The LEDs are controlled by a chip called "GCA230718" which is connected to the main CPU via I2C (address 0x40) - I didn't find any documentation or driver for it, so the information below is purely based on my investigations - If there is already I driver for it, please tell me. Maybe I didn't search enough - I implemented a kernel module (leds-gca230718) to access the LEDs via DTS - The LED controller supports PWM for brightness control and ramp control for smooth blinking. This is not implemented in the driver - The LED controller supports toggling (on -> off -> on -> off) where the brightness of the LEDs can be set individually for each on cycle - Until now, only simple active/inactive control is implemented (like when the LEDs would have been connected via GPIO) - Controlling the LEDs requires three sequences sent to the chip. Each sequence consists of - A reset command (0x81 0xE4) written to register 0x00 - A control command (for example 0x0C 0x02 0x01 0x00 0x00 0x00 0xFF 0x01 0x00 0x00 0x00 0xFF 0x87 written to register 0x03) - The reset command is always the same - In the control command - byte 0 is always the same - byte 1 (0x02 in the example above) must be changed in every sequence: 0x02 -> 0x01 -> 0x03) - byte 2 is set to 0x01 which disables toggling. 0x02 would be LED toggling without ramp control, 0x03 would be toggling with ramp control - byte 3 to 6 define the brightness values for the LEDs (R,G,B,W) for the first on cycle when toggling - byte 7 defines the toggling frequency (if toggling enabled) - byte 8 to 11 define the brightness values for the LEDs (R,G,B,W) for the second on cycle when toggling - byte 12 is constant 0x87 Comparison to M32/R32: - The algorithms for decrypting the OEM firmware are the same for M30/M32/R32, only the keys differ - The keys are available in the GPL sources for the M32 - The M32/R32 contained raw data in the firmware images (kernel, rootfs), the R30 uses a sysupgrade tar instead - Creation of the recovery image is quite similar, only the header start string changes. So mostly takeover from M32/R32 for that. - Turned out that the bytes at offset 0x0E and 0x0F in the recovery image header are the checksum over the data area - This checksum was not checked in the recovery web interface of M32/R32 devices, but is now active in R30 - I adapted the recovery image creation to also calculate the checksum over the data area - The recovery image header for M30 contains addresses which don't match the memory layout in the DTS. The same addresses are also present in the OEM images - The recovery web interface either calculates the correct addresses from it or has it's own logic to determine where which information must be written Signed-off-by: Roland Reinl <reinlroland+github@gmail.com>
* mediatek: Moved recovery image creation to include/image-commands.mkRoland Reinl2024-03-31
| | | | | | The recovery image is reqired for D-Link M30 as well. So I moved it to include/image-commands.mk to be able to use it for MT7622 and filogic devices. Signed-off-by: Roland Reinl <reinlroland+github@gmail.com>
* kernel: bump 6.6 to 6.6.23John Audia2024-03-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.23 Removed upstreamed: pending-6.6/735-net-mediatek-mtk_eth_soc-release-MAC_MCR_FORCE_LINK-.patch[1] pending-6.6/736-net-ethernet-mtk_eth_soc-fix-PPE-hanging-issue.patch[2] mediatek/patches-6.6/232-clk-mediatek-mt7981-topckgen-flag-SGM_REG_SEL-as-cri.patch[3] Manually rebased: mediatek/patches-6.6/100-dts-update-mt7622-rfb1.patch Added: generic/backports-6.6/981-mtd-spinand-Add-support-for-5-byte-IDs.patch[4] All other patches automatically rebased. 1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.23&id=1f32abb474c1c9bdb21d9eda74c325a0b3a162e5 2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.23&id=943c14ece95eb1cf98d477462aebcbfdfd714633 3. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.23&id=6ff01b314149d1cf59caebc29384f0beed21cba4 4. See comments in https://github.com/openwrt/openwrt/pull/14992 regarding broken flogic/xiaomi_redmi-router-ax6000-ubootmod Build system: x86/64 Build-tested: x86/64/AMD Cezanne, flogic/xiaomi_redmi-router-ax6000-ubootmod, flogic/glinet_gl-mt6000 Run-tested: x86/64/AMD Cezannei, flogic/xiaomi_redmi-router-ax6000-ubootmod, flogic/glinet_gl-mt6000 Signed-off-by: John Audia <therealgraysky@proton.me>
* mediatek: filogic: add Netcore N60 supportChukun Pan2024-03-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Hardware specification: SoC: MediaTek MT7986A 4x A53 Flash: ESMT F50L1G41LB 128MB RAM: W632GU6NB DDR3 256MB Ethernet: 1x 2.5G + 4x 1G WiFi1: MT7975N 2.4GHz 4T4R WiFi2: MT7975PN 5GHz 4T4R Button: Reset, WPS Power: DC 12V 2A Flash instructions: 1. Connect to the router using ssh or telnet, username: useradmin, password is the web login password of the router. 2. Use scp to upload bl31-uboot.fip and flash: "mtd write xxx-preloader.bin spi0.0" "mtd write xxx-bl31-uboot.fip FIP" "mtd erase ubi" 3. Connect to the router via the Lan port, set a static ip of your PC. (ip 192.168.1.254, gateway 192.168.1.1) 4. Download initramfs image, reboot router, waiting for tftp recovery to complete. 5. After openwrt boots up, perform sysupgrade. Note: 1. Back up all mtd partitions before flashing. Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
* mediatek: filogic: add Unielec U7981-01 supportAllen Zhao2024-03-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Hardware specification: SoC: MediaTek MT7981B 2x A53 Flash: 8GB eMMC or 128 MB SPI-NAND RAM: 256MB Ethernet: 5x 10/100/1000 Mbps Switch: MediaTek MT7531AE WiFi: MediaTek MT7976C Button: Reset USB: M.2(B-key) for 4G/5G Module Power: DC 12V 1A UART: 3.3v, 115200n8 -------------------------- | Layout | | ----------------- | | 4 | VCC RX TX GND | <= | | ----------------- | -------------------------- The U-boot menu will automatically appear at startup, and then select the required options through UP/DOWN Key. NAND Flash and eMMC Flash instructions: 1. Set your computers IP adress to 192.168.1.2. 2. Run a TFTP server providing the sysupgrade.bin image. 3. Power on the router, into the U-Boot menu. 4. Select "2. Upgrade firmware" 5. Update sysupgrade.bin file name, input server IP and input device IP (if they deviate from the defaults) 6. Wait for automatic startup after burning Signed-off-by: Allen Zhao <allenzhao@unielecinc.com>
* treewide: disable spectre mitigation on unaffected Arm64 targetsQingfang Deng2024-03-23
| | | | | | | Cortex-A53 is not vulnerable to any Spectre variants. Ref: https://developer.arm.com/Arm%20Security%20Center/Speculative%20Processor%20Vulnerability Signed-off-by: Qingfang Deng <dqfext@gmail.com>
* treewide: disable spectre mitigation on unaffected Arm32 targetsQingfang Deng2024-03-23
| | | | | | | Cortex-A5 and Cortex-A7 are not vulnerable to any Spectre variants. Ref: https://developer.arm.com/Arm%20Security%20Center/Speculative%20Processor%20Vulnerability Signed-off-by: Qingfang Deng <dqfext@gmail.com>
* mediatek: mt7629: 6.6: disable LEDS_SMARTRG_LED by defaultRobert Marko2024-03-22
| | | | | | | | | | | When building MT7629 with ALL_KMODS then we get prompted for LEDS_SMARTRG_LED and this will break CI and in future buildbot compilation. It depends on I2C so the symbol is hidden until ALL_KMODS is used and I2C support is available, so disable the LEDS_SMARTRG_LED symbol in 6.6 config intentionally as is done in the 6.1 mt7629 config. Signed-off-by: Robert Marko <robimarko@gmail.com>
* mediatek: mt7622: add a second u-boot for redmi-ax6sChuanhong Guo2024-03-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The vendor u-boot knows nothing about UBI, and we used to have a fixed-size kernel partition for vendor u-boot and UBI for rootfs. However, that fixed partition becomes too small eventually, and expanding it requires complicated procedure. This commit changed the flash layout and added a second u-boot where the kernel supposed to be. Now the vendor u-boot chainloads our mainline u-boot, and our u-boot reads kernel+rootfs from UBI, verifies it, and boot into OpenWrt. There are two possible ways to convert from the old fw: Flash the factory image using mtd (provided by @rany2): mount -o remount,ro / mount -o remount,ro /overlay cd /tmp dd if=factory.bin bs=1M count=4 | mtd write - kernel dd if=factory.bin bs=1M skip=4 | mtd -r write - ubi Or, flash the 2nd u-boot via mtd and upload the firmware to the 2nd u-boot using tftp: 1. prepare a tftp server at 192.168.1.254 to serve the sysupgrade image: openwrt-mediatek-mt7622-xiaomi_redmi-router-ax6s-squashfs-sysupgrade.itb 2. upload the ubi-loader.itb to OpenWrt /tmp, and flash it to the old kernel partition: mtd -r write openwrt-mediatek-mt7622-xiaomi_redmi-router-ax6s-ubi-loader.itb 3. The router should reboot and flash the sysupgrade image via TFTP. Procedure for flashing from vendor firmware shouldn't change. Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
* mediatek: mt7622: simplify 02_networkChukun Pan2024-03-16
| | | | | | | | | Most mt7622 devices use the mt7531 switch, which have been switched to dsa driver for a long time. So use dsa as the default configuration and configure these rtl8367s devices separately. This reduces the amount of code. Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
* mediatek: fix build failure of mt7623/mt7629 using kernel 6.6Weijie Gao2024-03-16
| | | | | | | | | | In kernel 6.6, dts files for mediatek arm target are moved into arch/arm/boot/dts/mediatek instead of legacy path arch/arm/boot/dts. To avoid dts compile failure, change DTS_DIR to the mediatek subfolder for kernel 6.6. Signed-off-by: Weijie Gao <hackpascal@gmail.com>
* mediatek: mt7988: add missing clock for PCIe portsDaniel Golle2024-03-15
| | | | | | | Add missing CLK_TOP_PEXTP_Px_SEL clock for each of the 4 PCIe interfaces of the MT7988 SoC. Without that clock PCIe doesn't work reliable. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* mediatek: Add support for GL.iNet X3000 (Spitz AX) and XE3000 (Puli AX)Jean Thomas2024-03-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* mediatek: mt7981: pinctrl: add additional emmc groupsJean Thomas2024-03-13
| | | | | | | | | | | | | 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>
* mediatek: mt7981: pinctrl: add additional uart groupJean Thomas2024-03-13
| | | | | | | 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>
* mediatek: add Linux 6.6 as testing kernelDaniel Golle2024-03-11
| | | | | | Add KERNEL_TESTING_PATCHVER for Linux 6.6. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* mediatek: add kernel configs for Linux 6.6Daniel Golle2024-03-11
| | | | | | Add config-6.6 for all mediatek subtargets. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* mediatek: fix build of MT7988 clk drivers on Linux 6.6Daniel Golle2024-03-11
| | | | | | | 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>
* mediatek: leds-smartrg-system: fix build on Linux 6.6Daniel Golle2024-03-11
| | | | | | Adapt to changed function pointer prototypes. Signed-off-by: Daniel Golle <daniel@makrotopia.org>