From 48b2df5a4164fad439a39892746fd60e8e475a44 Mon Sep 17 00:00:00 2001 From: Daniel Kestrel Date: Mon, 14 Feb 2022 21:55:19 +0100 Subject: [PATCH] lantiq: add support for AVM Fritzbox 5490/5491 MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit This adds support for the Fritzbox 5490/5491 devices. They contain two SoCs, one Lantiq without 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. Both devices have fiber WAN ports. 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 Lantiq gswip switch, 4x 1000/100/10 port (additional qca8334 switch for 2 ports), Port 5 is fixed and connected to the Wireless SOC - Renesas µPD720202 USB3 PCIe, requires firmware binary on the device - AT 8033 based AON fiber port (5490) or GPON fiber port (5491) Unsupported: - DECT and ISDN telephony - Two ethernet ports (on extra switch) and fiber port not working Installation: Check which NAND the device has by using the following procedure with stock firmware: Go to to http:///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 --- .../dts/lantiq/vr9_avm_fritz5490-micron.dts | 12 ++++ .../boot/dts/lantiq/vr9_avm_fritz5490.dts | 8 +++ .../boot/dts/lantiq/vr9_avm_fritz5490.dtsi | 69 +++++++++++++++++++ target/linux/lantiq/image/vr9.mk | 36 ++++++++++ .../xrx200/base-files/etc/board.d/01_leds | 2 + .../xrx200/base-files/etc/board.d/02_network | 6 ++ .../xrx200/base-files/lib/upgrade/platform.sh | 2 + 7 files changed, 135 insertions(+) create mode 100644 target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz5490-micron.dts create mode 100644 target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz5490.dts create mode 100644 target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz5490.dtsi diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz5490-micron.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz5490-micron.dts new file mode 100644 index 000000000000..18bb81d0b259 --- /dev/null +++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz5490-micron.dts @@ -0,0 +1,12 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +#include "vr9_avm_fritz5490.dtsi" + +/ { + compatible = "avm,fritz5490-micron", "lantiq,xway", "lantiq,vr9"; + model = "AVM FRITZ!Box 5490/5491 (Micron NAND)"; +}; + +&nand1 { + nand-ecc-engine = <&nand1>; +}; diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz5490.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz5490.dts new file mode 100644 index 000000000000..631e8390f609 --- /dev/null +++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz5490.dts @@ -0,0 +1,8 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +#include "vr9_avm_fritz5490.dtsi" + +/ { + compatible = "avm,fritz5490", "lantiq,xway", "lantiq,vr9"; + model = "AVM FRITZ!Box 5490/5491"; +}; diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz5490.dtsi b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz5490.dtsi new file mode 100644 index 000000000000..2aadd8e6661a --- /dev/null +++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz5490.dtsi @@ -0,0 +1,69 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +#include "vr9_avm_fritzxx90.dtsi" + +/ { + compatible = "avm,fritz5490", "lantiq,xway", "lantiq,vr9"; + model = "AVM FRITZ!Box 5490/5491"; +}; + +&aliases { + led-dsl = &led_info_green; + led-internet = &led_internet; + led-wifi = &led_wifi; +}; + +&leds { + led_fiber: fiber { + label = "green:fiber"; + 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 { + phy5: ethernet-phy@5 { + reg = <0x05>; + }; + + phy6: ethernet-phy@6 { + reg = <0x06>; + reset-gpios = <&gpio 32 GPIO_ACTIVE_LOW>; + }; + + phy9: ethernet-phy@9 { + reg = <0x09>; + }; +}; + +&gswip_ports { + port@0 { + reg = <0>; + label = "wan"; + phy-mode = "rgmii"; + phy-handle = <&phy6>; + }; + + port@2 { + reg = <2>; + label = "lan2"; + phy-mode = "internal"; + phy-handle = <&phy5>; + }; + + port@4 { + reg = <4>; + label = "lan1"; + phy-mode = "internal"; + phy-handle = <&phy9>; + }; +}; diff --git a/target/linux/lantiq/image/vr9.mk b/target/linux/lantiq/image/vr9.mk index 6df679dad953..81aa5d97b143 100644 --- a/target/linux/lantiq/image/vr9.mk +++ b/target/linux/lantiq/image/vr9.mk @@ -149,6 +149,42 @@ define Device/avm_fritz3390 endef TARGET_DEVICES += avm_fritz3390 +define Device/avm_fritz5490 + $(Device/dsa-migration) + $(Device/AVM) + $(Device/NAND) + DEVICE_MODEL := FRITZ!Box 5490 + DEVICE_ALT0_VENDOR := AVM + DEVICE_ALT0_MODEL := FRITZ!Box 5491 + DEVICE_VARIANT := Other NAND + KERNEL_SIZE := 4096k + IMAGE_SIZE := 49152k + DEVICE_PACKAGES := kmod-usb3 fritz-tffs \ + -ltq-vdsl-vr9-vectoring-fw-installer -kmod-ltq-vdsl-vr9-mei \ + -kmod-ltq-vdsl-vr9 -kmod-ltq-atm-vr9 -kmod-ltq-ptm-vr9 \ + -ltq-vdsl-vr9-app -kmod-owl-loader \ + -dsl-vrx200-firmware-xdsl-a -dsl-vrx200-firmware-xdsl-b-patch +endef +TARGET_DEVICES += avm_fritz5490 + +define Device/avm_fritz5490-micron + $(Device/dsa-migration) + $(Device/AVM) + $(Device/NAND) + DEVICE_MODEL := FRITZ!Box 5490 + DEVICE_ALT0_VENDOR := AVM + DEVICE_ALT0_MODEL := FRITZ!Box 5491 + DEVICE_VARIANT := Micron NAND + KERNEL_SIZE := 4096k + IMAGE_SIZE := 49152k + DEVICE_PACKAGES := kmod-usb3 fritz-tffs \ + -ltq-vdsl-vr9-vectoring-fw-installer -kmod-ltq-vdsl-vr9-mei \ + -kmod-ltq-vdsl-vr9 -kmod-ltq-atm-vr9 -kmod-ltq-ptm-vr9 \ + -ltq-vdsl-vr9-app -kmod-owl-loader \ + -dsl-vrx200-firmware-xdsl-a -dsl-vrx200-firmware-xdsl-b-patch +endef +TARGET_DEVICES += avm_fritz5490-micron + define Device/avm_fritz7360sl $(Device/dsa-migration) $(Device/AVM) diff --git a/target/linux/lantiq/xrx200/base-files/etc/board.d/01_leds b/target/linux/lantiq/xrx200/base-files/etc/board.d/01_leds index d1b50172de3c..f165805f0aad 100644 --- a/target/linux/lantiq/xrx200/base-files/etc/board.d/01_leds +++ b/target/linux/lantiq/xrx200/base-files/etc/board.d/01_leds @@ -42,6 +42,8 @@ arcadyan,vgv7519-brn) avm,fritz3370-rev2-hynix|\ avm,fritz3370-rev2-micron|\ avm,fritz3390|\ +avm,fritz5490|\ +avm,fritz5490-micron|\ avm,fritz7490|\ avm,fritz7490-micron) ucidef_set_led_switch "lan" "LAN" "green:lan" "switch0" "0x17" diff --git a/target/linux/lantiq/xrx200/base-files/etc/board.d/02_network b/target/linux/lantiq/xrx200/base-files/etc/board.d/02_network index 4b5950c3471b..655053ce269d 100644 --- a/target/linux/lantiq/xrx200/base-files/etc/board.d/02_network +++ b/target/linux/lantiq/xrx200/base-files/etc/board.d/02_network @@ -18,6 +18,10 @@ lantiq_setup_interfaces() arcadyan,arv7519rw22) ucidef_set_interface_lan "lan1 lan2 lan3 lan4 lan5" ;; + avm,fritz5490|\ + avm,fritz5490-micron) + ucidef_set_interfaces_lan_wan "lan1 lan2" "wan" + ;; arcadyan,vgv7510kw22-brn|\ arcadyan,vgv7510kw22-nor|\ arcadyan,vgv7519-brn|\ @@ -118,6 +122,8 @@ lantiq_setup_macs() wan_mac=$(macaddr_add "$(mtd_get_mac_binary urlader 0xa91)" 1) ;; avm,fritz3390|\ + avm,fritz5490|\ + avm,fritz5490-micron|\ avm,fritz7362sl|\ avm,fritz7490|\ avm,fritz7490-micron) diff --git a/target/linux/lantiq/xrx200/base-files/lib/upgrade/platform.sh b/target/linux/lantiq/xrx200/base-files/lib/upgrade/platform.sh index 0764c0554d29..6142714acccd 100755 --- a/target/linux/lantiq/xrx200/base-files/lib/upgrade/platform.sh +++ b/target/linux/lantiq/xrx200/base-files/lib/upgrade/platform.sh @@ -12,6 +12,8 @@ platform_do_upgrade() { avm,fritz3370-rev2-hynix|\ avm,fritz3370-rev2-micron|\ avm,fritz3390|\ + avm,fritz5490|\ + avm,fritz5490-micron|\ avm,fritz7362sl|\ avm,fritz7412|\ avm,fritz7430|\ -- 2.30.2