From eae6cac6a30b95bef04d033ed8a303b7e35a078b Mon Sep 17 00:00:00 2001 From: Danijel Tudek Date: Tue, 12 Feb 2019 18:11:09 +0100 Subject: [PATCH] lantiq: add support for AVM FRITZ!Box 7362 SL Hardware: - SoC: Lantiq VRX288 - RAM: Winbond W971GG6JB 1 Gb (128 MiB) - Flash: - SPI: 8 Mb (1 MiB) for bootloader and tffs - NAND: 1 Gb (128 MiB) for OS - xDSL: Lantiq VRX208 - WLAN: Atheros AR9381 - DECT: Dialog Semiconductors SC14441 Everything except FXS/DECT works (no drivers for AVM's FXS implementation with SC14441). Installation via FTP: 1. Use scripts/flashing/eva_ramboot.py to send initramfs-kernel.bin to the device when powering on. Standard AVM procedures with finding the correct IP address and the right moment to open FTP apply here (approx. 4 seconds on 7362SL). IMPORTANT: set lzma compression in ramdisk options, bootloader stalls when receiving uncompressed images. 2. Transfer sysupgrade.bin image with scp to /tmp directory and run sysupgrade 3. First boot might take a bit longer if linux_fs_start was set to 1, in that case the device will reboot twice, first time it will fail to load second kernel (overwritten by ubifs), set linux_fs_start to 0 and reboot. OpenWrt uses the entire NAND flash. Kernel uses 4 MiB and rootfs uses the rest of 124 MiB, overwriting everything related to FRITZ!OS - both OS images, config and answering machine/media server data. To return to FRITZ!OS, use AVM's recovery image. Signed-off-by: Danijel Tudek --- .../lantiq/base-files/etc/board.d/02_network | 8 ++ .../etc/hotplug.d/firmware/12-ath9k-eeprom | 3 +- .../lantiq/base-files/lib/upgrade/platform.sh | 1 + .../arch/mips/boot/dts/FRITZ7362SL.dts | 135 ++++++++++++++++++ target/linux/lantiq/image/Makefile | 11 ++ 5 files changed, 157 insertions(+), 1 deletion(-) create mode 100644 target/linux/lantiq/files-4.14/arch/mips/boot/dts/FRITZ7362SL.dts diff --git a/target/linux/lantiq/base-files/etc/board.d/02_network b/target/linux/lantiq/base-files/etc/board.d/02_network index b7d23da53d..c79fb2d136 100755 --- a/target/linux/lantiq/base-files/etc/board.d/02_network +++ b/target/linux/lantiq/base-files/etc/board.d/02_network @@ -158,6 +158,14 @@ avm,fritz7360sl) "0:lan:3" "1:lan:4" "2:lan:2" "4:lan:1" "6t@eth0" ;; +avm,fritz7362sl) + annex="b" + lan_mac=$(fritz_tffs -n maca -i $(find_mtd_part "tffs (1)")) + wan_mac=$(fritz_tffs -n macdsl -i $(find_mtd_part "tffs (1)")) + ucidef_add_switch "switch0" \ + "0:lan:3" "1:lan:4" "2:lan:2" "4:lan:1" "6t@eth0" + ;; + avm,fritz7412) tffsdev=$(find_mtd_chardev "nand-tffs") annex="b" diff --git a/target/linux/lantiq/base-files/etc/hotplug.d/firmware/12-ath9k-eeprom b/target/linux/lantiq/base-files/etc/hotplug.d/firmware/12-ath9k-eeprom index 26b3dd0420..6ae5e3cfe9 100644 --- a/target/linux/lantiq/base-files/etc/hotplug.d/firmware/12-ath9k-eeprom +++ b/target/linux/lantiq/base-files/etc/hotplug.d/firmware/12-ath9k-eeprom @@ -157,7 +157,8 @@ case "$FIRMWARE" in ath9k_patch_fw_mac_crc $(macaddr_add $(mtd_get_mac_ascii uboot-env ethaddr) +2) 524 ;; avm,fritz3370-rev2-hynix|\ - avm,fritz3370-rev2-micron) + avm,fritz3370-rev2-micron|\ + avm,fritz7362sl) ath9k_eeprom_extract_reverse "urlader" 5441 1088 ;; avm,fritz7312|avm,fritz7320|avm,fritz7360sl) diff --git a/target/linux/lantiq/base-files/lib/upgrade/platform.sh b/target/linux/lantiq/base-files/lib/upgrade/platform.sh index d7cacb2eae..840ebe7e47 100755 --- a/target/linux/lantiq/base-files/lib/upgrade/platform.sh +++ b/target/linux/lantiq/base-files/lib/upgrade/platform.sh @@ -11,6 +11,7 @@ platform_do_upgrade() { case "$board" in avm,fritz3370-rev2-hynix|\ avm,fritz3370-rev2-micron|\ + avm,fritz7362sl|\ avm,fritz7412|\ bt,homehub-v2b|\ bt,homehub-v3a|\ diff --git a/target/linux/lantiq/files-4.14/arch/mips/boot/dts/FRITZ7362SL.dts b/target/linux/lantiq/files-4.14/arch/mips/boot/dts/FRITZ7362SL.dts new file mode 100644 index 0000000000..7a6272b988 --- /dev/null +++ b/target/linux/lantiq/files-4.14/arch/mips/boot/dts/FRITZ7362SL.dts @@ -0,0 +1,135 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/dts-v1/; + +#include "FRITZ736X.dtsi" + +#include +#include + +/ { + compatible = "avm,fritz7362sl", "avm,fritz736x", "lantiq,xway", "lantiq,vr9"; + model = "AVM FRITZ!Box 7362 SL"; +}; + +&power_green { + label = "fritz7362sl:green:power"; +}; + +&power_red { + label = "fritz7362sl:red:power"; +}; + +&info_green { + label = "fritz7362sl:green:info"; +}; + +&wifi { + label = "fritz7362sl:green:wlan"; +}; + +&info_red { + label = "fritz7362sl:red:info"; +}; + +&dect { + label = "fritz7362sl:green:dect"; +}; + +&gpio { + pins_spi_default: pins_spi_default { + spi_in { + lantiq,groups = "spi_di"; + lantiq,function = "spi"; + }; + + spi_out { + lantiq,groups = "spi_do", "spi_clk", + "spi_cs4"; + lantiq,function = "spi"; + lantiq,output = <1>; + }; + }; +}; + +&state_default { + nand { + lantiq,groups = "nand ale", "nand cle", + "nand cs1", "nand rd", "nand rdy"; + lantiq,function = "ebu"; + }; + + pcie-rst { + lantiq,pins = "io21"; + lantiq,open-drain = <1>; + lantiq,output = <1>; + }; +}; + +&spi { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&pins_spi_default>; + + flash@4 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "jedec,spi-nor"; + reg = <4 0>; + spi-max-frequency = <1000000>; + + urlader: partition@0 { + reg = <0x0 0x40000>; + label = "urlader"; + read-only; + }; + + partition@40000 { + reg = <0x40000 0x60000>; + label = "tffs (1)"; + read-only; + }; + + partition@A0000 { + reg = <0xA0000 0x60000>; + label = "tffs (2)"; + read-only; + }; + }; +}; + +&localbus { + nand@1 { + compatible = "lantiq,nand-xway"; + lantiq,cs1 = <1>; + bank-width = <1>; + reg = <1 0x0 0x2000000>; + #address-cells = <1>; + #size-cells = <1>; + nand-ecc-mode = "on-die"; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "kernel"; + reg = <0x0 0x400000>; + }; + + partition@400000 { + label = "ubi"; + reg = <0x400000 0x7c00000>; + }; + }; + }; +}; + +&pcie0 { + gpio-reset = <&gpio 21 GPIO_ACTIVE_LOW>; + + pcie@0 { + #size-cells = <1>; + #address-cells = <2>; + }; +}; diff --git a/target/linux/lantiq/image/Makefile b/target/linux/lantiq/image/Makefile index e6fa8b5f50..fca3fce47c 100644 --- a/target/linux/lantiq/image/Makefile +++ b/target/linux/lantiq/image/Makefile @@ -677,6 +677,17 @@ define Device/avm_fritz7412 endef TARGET_DEVICES += avm_fritz7412 +define Device/avm_fritz7362sl + $(Device/AVM) + $(Device/NAND) + KERNEL_SIZE := 4096k + IMAGE_SIZE := 49152k + DEVICE_DTS := FRITZ7362SL + DEVICE_TITLE := AVM FRITZ!Box 7362 SL + DEVICE_PACKAGES := kmod-ath9k kmod-owl-loader wpad-basic kmod-usb-dwc2 fritz-tffs +endef +TARGET_DEVICES += avm_fritz7362sl + define Device/arcadyan_vg3503j IMAGE_SIZE := 8000k DEVICE_DTS := VG3503J -- 2.30.2