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 <danijel.tudek@gmail.com>
This commit is contained in:
Danijel Tudek 2019-02-12 18:11:09 +01:00 committed by Hauke Mehrtens
parent 5026f43559
commit eae6cac6a3
5 changed files with 157 additions and 1 deletions

View File

@ -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"

View File

@ -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)

View File

@ -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|\

View File

@ -0,0 +1,135 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "FRITZ736X.dtsi"
#include <dt-bindings/input/input.h>
#include <dt-bindings/mips/lantiq_rcu_gphy.h>
/ {
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>;
};
};

View File

@ -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