lantiq: add support for AVM Fritzbox 3490
authorDaniel Kestrel <kestrel1974@t-online.de>
Wed, 3 May 2023 13:05:49 +0000 (15:05 +0200)
committerHauke Mehrtens <hauke@hauke-m.de>
Fri, 2 Feb 2024 14:07:07 +0000 (15:07 +0100)
This adds support for the Fritzbox 3490 device. It contains two
SoCs, one Lantiq with a 5GHz WiFi and one QCA9558 with 2.4GHz
and 5 GHz WiFi. Only the Lantiq has access to the flash memory,
the Atheros runs fully from RAM and is booted by using a remoteproc
kernel module which is not supported with this commit.
The devices were manufactured with varying NAND chips which
requires Micron and non-Micron versions of the images.

Specifications:
 - SoC: Lantiq 500 MHz
 - RAM: 256 MB
 - Storage: 512 MB NAND, 1MB FLASH
 - Wireless, separate SOC QCA9558 with 128MB RAM (not supported yet):
   · Qualcomm-QCA9558 w/ 3×3 MIMO for 2.4GHz 802.11b/g/n
   · Qualcomm-QCA9880 w/ 3×3 MIMO for 5GHz 802.11a/ac
   · AG71xx ethernet
 - Ethernet: Built-in AR 803x, 7 port 4 phy switch,
   4x 1000/100/10 port, Port 5 is fixed and connected to the WASP SOC
 - Renesas µPD720202 USB3 PCIe, requires firmware binary on the device
 - VDSL2 modem
 - Without telephony or ISDN

Installation:
Check which NAND the device has by using the following procedure with
stock firmware:
Go to to http://<fritzbox_ip>/support.lua, download the support data
file and search for string "NAND device" to get the manufacturer kernel
output.
Use Micron image if Micron is displayed otherwise the non-Micron image.
Use the eva_ramboot.py script to boot the initramfs image. Follow the
procedure to interrupt booting by ftp into 192.168.178.1 within
5 seconds after poweron.
Then transfer the sysupgrade image to the device and run sysupgrade to
flash it to the NAND.
For making USB work, an renesas xhci firmware file (e.g. v2026) is
needed and it should be copied to /lib/firmware/ (file name
renesas_usb_fw.mem).

Signed-off-by: Daniel Kestrel <kestrel1974@t-online.de>
target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz3490-micron.dts [new file with mode: 0644]
target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz3490.dts [new file with mode: 0644]
target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz3490.dtsi [new file with mode: 0644]
target/linux/lantiq/image/vr9.mk
target/linux/lantiq/xrx200/base-files/etc/board.d/01_leds
target/linux/lantiq/xrx200/base-files/etc/board.d/02_network
target/linux/lantiq/xrx200/base-files/lib/upgrade/platform.sh

diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz3490-micron.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz3490-micron.dts
new file mode 100644 (file)
index 0000000..b122c04
--- /dev/null
@@ -0,0 +1,12 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "vr9_avm_fritz3490.dtsi"
+
+/ {
+       compatible = "avm,fritz3490-micron", "lantiq,xway", "lantiq,vr9";
+       model = "AVM FRITZ!Box 3490 (Micron NAND)";
+};
+
+&nand1 {
+       nand-ecc-engine = <&nand1>;
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz3490.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz3490.dts
new file mode 100644 (file)
index 0000000..d795a0b
--- /dev/null
@@ -0,0 +1,8 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "vr9_avm_fritz3490.dtsi"
+
+/ {
+       compatible = "avm,fritz3490", "lantiq,xway", "lantiq,vr9";
+       model = "AVM FRITZ!Box 3490";
+};
diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz3490.dtsi b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz3490.dtsi
new file mode 100644 (file)
index 0000000..4d96abd
--- /dev/null
@@ -0,0 +1,81 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "vr9_avm_fritzxx90.dtsi"
+
+/ {
+       compatible = "avm,fritz3490", "lantiq,xway", "lantiq,vr9";
+       model = "AVM FRITZ!Box 3490";
+};
+
+&aliases {
+       led-dsl = &led_info_green;
+       led-internet = &led_internet;
+       led-wifi = &led_wifi;
+};
+
+&leds {
+       led_lan: lan {
+               label = "green:lan";
+               gpios = <&gpio 47 GPIO_ACTIVE_LOW>;
+       };
+
+       led_wifi: wifi {
+               label = "green:wlan";
+               gpios = <&gpio 36 GPIO_ACTIVE_LOW>;
+       };
+
+       led_internet: internet {
+               label = "green:internet";
+               gpios = <&gpio 35 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&gswip_mdio {
+       phy0: ethernet-phy@0 {
+               reg = <0x00>;
+               reset-gpios = <&gpio 32 GPIO_ACTIVE_LOW>;
+       };
+
+       phy1: ethernet-phy@1 {
+               reg = <0x01>;
+               reset-gpios = <&gpio 44 GPIO_ACTIVE_LOW>;
+       };
+
+       phy11: ethernet-phy@11 {
+               reg = <0x11>;
+       };
+
+       phy13: ethernet-phy@13 {
+               reg = <0x13>;
+       };
+};
+
+&gswip_ports {
+       port@0 {
+               reg = <0>;
+               label = "lan3";
+               phy-mode = "rgmii-rxid";
+               phy-handle = <&phy0>;
+       };
+
+       port@1 {
+               reg = <1>;
+               label = "lan4";
+               phy-mode = "rgmii-rxid";
+               phy-handle = <&phy1>;
+       };
+
+       port@2 {
+               reg = <2>;
+               label = "lan2";
+               phy-mode = "internal";
+               phy-handle = <&phy11>;
+       };
+
+       port@4 {
+               reg = <4>;
+               label = "lan1";
+               phy-mode = "internal";
+               phy-handle = <&phy13>;
+       };
+};
index 81aa5d97b143968981cc97eaddc00c57349aa042..53b05795aabcd63c516ddaf88ae3c8fe3844940c 100644 (file)
@@ -149,6 +149,30 @@ define Device/avm_fritz3390
 endef
 TARGET_DEVICES += avm_fritz3390
 
+define Device/avm_fritz3490
+  $(Device/dsa-migration)
+  $(Device/AVM)
+  $(Device/NAND)
+  DEVICE_MODEL := FRITZ!Box 3490
+  DEVICE_VARIANT := Other NAND
+  KERNEL_SIZE := 4096k
+  IMAGE_SIZE := 49152k
+  DEVICE_PACKAGES := kmod-usb3 fritz-tffs -kmod-owl-loader
+endef
+TARGET_DEVICES += avm_fritz3490
+
+define Device/avm_fritz3490-micron
+  $(Device/dsa-migration)
+  $(Device/AVM)
+  $(Device/NAND)
+  DEVICE_MODEL := FRITZ!Box 3490
+  DEVICE_VARIANT := Micron NAND
+  KERNEL_SIZE := 4096k
+  IMAGE_SIZE := 49152k
+  DEVICE_PACKAGES := kmod-usb3 fritz-tffs -kmod-owl-loader
+endef
+TARGET_DEVICES += avm_fritz3490-micron
+
 define Device/avm_fritz5490
   $(Device/dsa-migration)
   $(Device/AVM)
index f165805f0aad7839d51275354b5e1094bf31a262..36830b216ae059e01987937d8ff19d9f962ceff8 100644 (file)
@@ -42,6 +42,8 @@ arcadyan,vgv7519-brn)
 avm,fritz3370-rev2-hynix|\
 avm,fritz3370-rev2-micron|\
 avm,fritz3390|\
+avm,fritz3490|\
+avm,fritz3490-micron|\
 avm,fritz5490|\
 avm,fritz5490-micron|\
 avm,fritz7490|\
index 655053ce269dbcbb830e3bfee136353cde83b782..5baf24d73704f3aa3d245d6522a5ef398a406361 100644 (file)
@@ -36,6 +36,8 @@ lantiq_setup_interfaces()
        avm,fritz3370-rev2-hynix|\
        avm,fritz3370-rev2-micron|\
        avm,fritz3390|\
+       avm,fritz3490|\
+       avm,fritz3490-micron|\
        avm,fritz7360sl|\
        avm,fritz7360-v2|\
        avm,fritz7362sl|\
@@ -70,6 +72,8 @@ lantiq_setup_dsl()
        avm,fritz3370-rev2-hynix|\
        avm,fritz3370-rev2-micron|\
        avm,fritz3390|\
+       avm,fritz3490|\
+       avm,fritz3490-micron|\
        avm,fritz7360sl|\
        avm,fritz7362sl|\
        avm,fritz7412|\
@@ -122,6 +126,8 @@ lantiq_setup_macs()
                wan_mac=$(macaddr_add "$(mtd_get_mac_binary urlader 0xa91)" 1)
                ;;
        avm,fritz3390|\
+       avm,fritz3490|\
+       avm,fritz3490-micron|\
        avm,fritz5490|\
        avm,fritz5490-micron|\
        avm,fritz7362sl|\
index 6142714acccd9fb8368b1a755abbf125d59d3143..b45894561ce28a4a05149fe2923ea23daf567220 100755 (executable)
@@ -12,6 +12,8 @@ platform_do_upgrade() {
        avm,fritz3370-rev2-hynix|\
        avm,fritz3370-rev2-micron|\
        avm,fritz3390|\
+       avm,fritz3490|\
+       avm,fritz3490-micron|\
        avm,fritz5490|\
        avm,fritz5490-micron|\
        avm,fritz7362sl|\