From 148d29d47b1d555d0058dcc5dda450b74c4628ec Mon Sep 17 00:00:00 2001 From: David Bauer Date: Mon, 11 Mar 2019 18:05:32 +0100 Subject: [PATCH] ipq40xx: add support for AVM FRITZ!Repeater 3000 Hardware -------- CPU: Qualcomm IPQ4019 RAM: 256M (NANYA NT5CC128M16JR-EK) FLASH: 128M NAND (Macronix MX30LF1G18AC-XKI) ETH: Qualcomm QCA8072 WiFi2: IPQ4019 2T2R 2SS b/g/n WiFi5: IPQ4019 2T2R 2SS n/ac WiFi5: QCA9984 4T4R 4SS n/ac LED: - Connect green/blue/red - Power green BTN: WPS/Connect UART: 115200n8 3.3V VCC - RX - TX - GND (Square is VCC) Installation ------------ 1. Grab the uboot for the Device from the 'u-boot-fritz3000' subdirectory. Place it in the same directory as the 'eva_ramboot.py' script. It is located in the 'scripts/flashing' subdirectory of the OpenWRT tree. 2. Assign yourself the IP address 192.168.178.10/24. Connect your Computer to one of the boxes LAN ports. 3. Connect Power to the Box. As soon as the LAN port of your computer shows link, load the U-Boot to the box using following command. > ./eva_ramboot.py --offset 0x85000000 192.168.178.1 uboot-fritz3000.bin 4. The U-Boot will now start. Now assign yourself the IP address 192.168.1.70/24. Copy the OpenWRT initramfs (!) image to a TFTP server root directory and rename it to 'FRITZ3000.bin'. 5. The Box will now boot OpenWRT from RAM. This can take up to two minutes. 6. Copy the U-Boot and the OpenWRT sysupgrade (!) image to the Box using scp. SSH into the Box and first write the Bootloader to both previous kernel partitions. > mtd write /path/to/uboot-fritz3000.bin uboot0 > mtd write /path/to/uboot-fritz3000.bin uboot1 7. Remove the AVM filesystem partitions to make room for our kernel + rootfs + overlayfs. > ubirmvol /dev/ubi0 --name=avm_filesys_0 > ubirmvol /dev/ubi0 --name=avm_filesys_1 8. Flash OpenWRT peristently using sysupgrade. > sysupgrade -n /path/to/openwrt-sysupgrade.bin Signed-off-by: David Bauer --- package/boot/uboot-fritz4040/Makefile | 7 +- package/firmware/ipq-wifi/Makefile | 3 +- .../ipq-wifi/board-avm_fritzrepeater-3000.bin | Bin 0 -> 24332 bytes .../ipq40xx/base-files/etc/board.d/02_network | 1 + .../etc/hotplug.d/firmware/11-ath10k-caldata | 10 +- .../base-files/lib/upgrade/platform.sh | 1 + .../dts/qcom-ipq4019-fritzrepeater-3000.dts | 260 +++++++++++++++++ .../dts/qcom-ipq4019-fritzrepeater-3000.dts | 264 ++++++++++++++++++ target/linux/ipq40xx/image/Makefile | 9 + .../901-arm-boot-add-dts-files.patch | 3 +- .../901-arm-boot-add-dts-files.patch | 3 +- 11 files changed, 555 insertions(+), 6 deletions(-) create mode 100644 package/firmware/ipq-wifi/board-avm_fritzrepeater-3000.bin create mode 100644 target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4019-fritzrepeater-3000.dts create mode 100644 target/linux/ipq40xx/files-4.19/arch/arm/boot/dts/qcom-ipq4019-fritzrepeater-3000.dts diff --git a/package/boot/uboot-fritz4040/Makefile b/package/boot/uboot-fritz4040/Makefile index 3182842c89..015ca1deb9 100644 --- a/package/boot/uboot-fritz4040/Makefile +++ b/package/boot/uboot-fritz4040/Makefile @@ -25,6 +25,11 @@ define U-Boot/Default UBOOT_IMAGE:=uboot-$(1).bin endef +define U-Boot/fritz3000 + NAME:=FritzRepeater 3000 + BUILD_DEVICES:=avm_fritzrepeater-3000 +endef + define U-Boot/fritz4040 NAME:=FritzBox 4040 BUILD_DEVICES:=avm_fritzbox-4040 @@ -61,6 +66,6 @@ define Package/u-boot/install $(INSTALL_BIN) $(PKG_BUILD_DIR)/upload-to-f4040.sh $(1)/ endef -UBOOT_TARGETS := fritz4040 fritz7530 +UBOOT_TARGETS := fritz3000 fritz4040 fritz7530 $(eval $(call BuildPackage/U-Boot)) diff --git a/package/firmware/ipq-wifi/Makefile b/package/firmware/ipq-wifi/Makefile index 9a00832ca2..d273667f68 100644 --- a/package/firmware/ipq-wifi/Makefile +++ b/package/firmware/ipq-wifi/Makefile @@ -18,7 +18,7 @@ endef # Please send a mail with your device-specific board files upstream. # You can find instructions and examples on the linux-wireless wiki: # -ALLWIFIBOARDS:=alfa-network_ap120c-ac asus_map-ac2200 avm_fritzbox-7530 engenius_eap1300 linksys_ea6350v3 qxwlan_e2600ac +ALLWIFIBOARDS:=alfa-network_ap120c-ac asus_map-ac2200 avm_fritzbox-7530 avm_fritzrepeater-3000 engenius_eap1300 linksys_ea6350v3 qxwlan_e2600ac ALLWIFIPACKAGES:=$(foreach BOARD,$(ALLWIFIBOARDS),ipq-wifi-$(BOARD)) define Package/ipq-wifi-default @@ -57,6 +57,7 @@ $(eval $(call generate-ipq-wifi-package,alfa-network_ap120c-ac,board-alfa-networ $(eval $(call generate-ipq-wifi-package,asus_map-ac2200,board-map-ac2200.bin,ASUS MAP-AC2200)) $(eval $(call generate-ipq-wifi-package,engenius_eap1300,board-engenius_eap1300.bin,EnGenius EAP1300)) $(eval $(call generate-ipq-wifi-package,avm_fritzbox-7530,board-avm_fritzbox-7530.bin,AVM FRITZ!Box 7530)) +$(eval $(call generate-ipq-wifi-package,avm_fritzrepeater-3000,board-avm_fritzrepeater-3000.bin,AVM FRITZ!Repeater 3000)) $(eval $(call generate-ipq-wifi-package,linksys_ea6350v3,board-linksys_ea6350v3.bin,Linksys EA6350v3)) $(eval $(call generate-ipq-wifi-package,qxwlan_e2600ac,board-qxwlan-e2600ac.bin,Qxwlan E2600AC)) diff --git a/package/firmware/ipq-wifi/board-avm_fritzrepeater-3000.bin b/package/firmware/ipq-wifi/board-avm_fritzrepeater-3000.bin new file mode 100644 index 0000000000000000000000000000000000000000..69e40a1e7a5218ee0028f88bfe5b5a8a73636e32 GIT binary patch literal 24332 zcmeHPTTl~O8a_d8Dk`0XTL?`^xWy#_0;>_CgbZHQ*)J|s;UY=sf#7H04QN8Ia0g5xV$8$q)IC~ zP_EUBw58kQEUl92;+j&TDT#}zFRsxRe^IwRHGh{VJy)Hl$t}~D71x#3h!W!B;uvro z9vqVwJMPP1fHlXNiTT9%n+Jd!C<0)emoL!-aLZ4CwKse@5}`1G7z%)dgoJ;;c>`o@ zPw@6%=ToS%hV97f!!{mZJbk}c2N?9lH1%B%6d)}~TTrh40>k-pPyHQLYBTON%{_R^Rx9!I;uO$C}HbqsWE zX*!@$!fx05+MsKuH2Tqa--RZTBX`2J<>vCIm=E`Ry` z!Rk}V<-)>X?CH&>Z?aE|YeNovJKE5*>#V4Od+^B>{ju~izM7Tvc&NH1qdIc8zw*X) zZMUlJHx0q%_s8q|V~>aGSw+hWB|2LQ0S~XW>o;sdSbhOP!6Bj4C;m)Le8$cQ2zI(<)xW9gRh*XD4!^+2P>=_!q$s3ls3e`22i#Z(zMbu^WwU zEGhyW9rg8jd04s>tY7cxNrsXNBLsYYC~UC3{`2GSN(NCYFFEyiP!p(PVKlMjiy)ttAu*{i1J)b60=HG-g{OK2m1B zSsZJQ-Y@gDt%Pe*dJfJUeHtYir8y9wPmMW%u`{nql0C^$+Mkd1WhtgrKFIwwpZv@DI%v}x;@b|~UW&q-W z0D(LzNW9@gJ`Yu7(5~vW_sI=VJak2aIz|ip6t%-XN|MJ6+FI?YYvySK5mFu$U4J_-R7_*gH3AL<&Vv1I3 z71Xl+iAh?i6;RhfoYQ0Fqq}TQgO!!2Gi%0K`TGyHcU`%T-<|y1T>8pFWo9<)cWi`< za>ZPX4V3Sc2!>)}3{!%{cZrA$m5F6o;)2~@&qQ@a^OyJ|C^KD>j$|>nNVXt5n3`VV zHG2%|dycA?%Po$p-1~T^x%XHXg8_;6jU5&yxSy4K@8?A#1TQNE1os{QcX!fazZLv$ zHuoNK5K^czU+z7O^1Xc|02Z2iPvl6%Kg_tuYRvR=f_rc0?KrM0+S-W;Ix%YDR0Q;rG|8uZ|WzNRv=;)mLX77N<+D2yYch<5hmvre# zJ9Bz0L6n?Ho9;s+KqEjSuv`%+D$?YW+E{*l!C z2&{m3;QjE0&FzJq`k@bxsWawE95clmxl^s?3Ov&!F@{XuHFX&d7p6-iCU4_IMuV~eQhG??l%H{lwS+$fs5WH#V?O$uWyK4BWr=?b%?F_V8bT`*J?Dx^HZ!PFBK z1*Uqe)Ac;(zM$k!oM|k>1tF;sRTN78Y(G=D?L#{0K1*T^~PM?mZ@vz zPQ1}rpp)T~#y(x0YG-tyB|?R6FPW05mq^KEZo?}K%EIueLGyXM#<*Lz1OLw0qpMe` zqJt;znJ!sU3MEpy(i;sUbeq4z4;Xf+IMB5f*BTV6VEj*}eqEI+RT^vl4j(i&>GnuD zghPL?FcM64nVazj@dml|ZMAecyx;YeYoRA|17_Zn+-*{X0df)J*3-rR^6 z7$hq8)Ys;txCUy7`96LXVkwuRukK7n-w&0Y+inmX3Ml+* zXQL)X6zLb}ap%&piVTG$HaPJ7Kz@7tQJ!v7*3+An7v#+mRYCio^=fmrMnwhy@TmW2 zr7BG<3JJM4e7H+~LRiDx{dh#%nbIt%4BY>uzqUxRC4w91^Wa+LA(aZ{`?8FEStsM` z{Pt|vdH-g~g{0%W3ctM%O_lp{lriCm`@~><%}y0R+K@VPY@Qy56kyhGQY$zn-@<}@4Xjn-F|iqih93x!D2XopEl75%nt!)i60ByZ+_XX z7%!T84|(y6$lG5^JbOpEEcFw47;@@K4m@Jv(Gwi|buGeXCFII)-o{TQOX%Uv+brd( zuY0_OOHc6Wy_(m-Lew5S3-_Mj+j|KAY2o0LJp7kSeg3OCKY|Ii|GIW literal 0 HcmV?d00001 diff --git a/target/linux/ipq40xx/base-files/etc/board.d/02_network b/target/linux/ipq40xx/base-files/etc/board.d/02_network index 94fb26ce48..02cdd30b56 100755 --- a/target/linux/ipq40xx/base-files/etc/board.d/02_network +++ b/target/linux/ipq40xx/base-files/etc/board.d/02_network @@ -37,6 +37,7 @@ ipq40xx_setup_interfaces() ucidef_add_switch "switch0" \ "0u@eth0" "1:lan" "2:lan" "3:lan" "4:lan" ;; + avm,fritzrepeater-3000|\ compex,wpj428) ucidef_set_interface_lan "eth0 eth1" ;; diff --git a/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata index 1264d2ef36..8520dfb41d 100644 --- a/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata +++ b/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata @@ -111,6 +111,10 @@ case "$FIRMWARE" in ln -sf /lib/firmware/ath10k/pre-cal-pci-0000\:00\:00.0.bin \ /lib/firmware/ath10k/QCA9888/hw2.0/board.bin ;; + avm,fritzrepeater-3000) + /usr/bin/fritz_cal_extract -i 1 -s 0x3D000 -e 0x212 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader0") || \ + /usr/bin/fritz_cal_extract -i 1 -s 0x3D000 -e 0x212 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1") + ;; openmesh,a62) ath10kcal_extract "0:ART" 36864 12064 ;; @@ -135,7 +139,8 @@ case "$FIRMWARE" in avm,fritzbox-4040) /usr/bin/fritz_cal_extract -i 1 -s 0x400 -e 0x207 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader_config") ;; - avm,fritzbox-7530) + avm,fritzbox-7530 |\ + avm,fritzrepeater-3000) /usr/bin/fritz_cal_extract -i 1 -s 0x3C000 -e 0x207 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader0") || \ /usr/bin/fritz_cal_extract -i 1 -s 0x3C000 -e 0x207 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1") ;; @@ -183,7 +188,8 @@ case "$FIRMWARE" in avm,fritzbox-4040) /usr/bin/fritz_cal_extract -i 1 -s 0x400 -e 0x208 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader_config") ;; - avm,fritzbox-7530) + avm,fritzbox-7530 |\ + avm,fritzrepeater-3000) /usr/bin/fritz_cal_extract -i 1 -s 0x3C800 -e 0x208 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader0") || \ /usr/bin/fritz_cal_extract -i 1 -s 0x3C800 -e 0x208 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1") ;; diff --git a/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh b/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh index 9a2c13cf4d..84b123335c 100644 --- a/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh +++ b/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh @@ -49,6 +49,7 @@ platform_do_upgrade() { 8dev,jalapeno |\ alfa-network,ap120c-ac |\ avm,fritzbox-7530 |\ + avm,fritzrepeater-3000|\ qxwlan,e2600ac-c2) nand_do_upgrade "$ARGV" ;; diff --git a/target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4019-fritzrepeater-3000.dts b/target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4019-fritzrepeater-3000.dts new file mode 100644 index 0000000000..07a140095a --- /dev/null +++ b/target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4019-fritzrepeater-3000.dts @@ -0,0 +1,260 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +#include "qcom-ipq4019.dtsi" +#include +#include +#include + +/ { + model = "AVM FRITZ!Repeater 3000"; + compatible = "avm,fritzrepeater-3000"; + + aliases { + led-boot = &power_led; + led-failsafe = &power_led; + led-running = &power_led; + led-upgrade = &power_led; + }; + + soc { + mdio@90000 { + status = "okay"; + }; + + ess-psgmii@98000 { + status = "okay"; + }; + + tcsr@1949000 { + compatible = "qcom,tcsr"; + reg = <0x1949000 0x100>; + qcom,wifi_glb_cfg = ; + }; + + ess_tcsr@1953000 { + compatible = "qcom,tcsr"; + reg = <0x1953000 0x1000>; + qcom,ess-interface-select = ; + }; + + tcsr@1957000 { + compatible = "qcom,tcsr"; + reg = <0x1957000 0x100>; + qcom,wifi_noc_memtype_m0_m2 = ; + }; + + crypto@8e3a000 { + status = "okay"; + }; + + watchdog@b017000 { + status = "okay"; + }; + + ess-switch@c000000 { + status = "okay"; + + switch_lan_bmp = <0x10>; + switch_wan_bmp = <0x20>; + }; + + edma@c080000 { + status = "okay"; + }; + }; + + key { + compatible = "gpio-keys"; + + connect { + label = "Connect"; + gpios = <&tlmm 10 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + }; + + leds { + compatible = "gpio-leds"; + + connect_red { + label = "fritzwlan-3000:red:connect"; + gpios = <&tlmm 30 GPIO_ACTIVE_LOW>; + }; + + connect_green { + label = "fritzwlan-3000:green:connect"; + gpios = <&tlmm 31 GPIO_ACTIVE_LOW>; + }; + + connect_blue { + label = "fritzwlan-3000:blue:connect"; + gpios = <&tlmm 32 GPIO_ACTIVE_LOW>; + }; + + power_led: power { + label = "fritzwlan-3000:green:power"; + gpios = <&tlmm 33 GPIO_ACTIVE_LOW>; + }; + }; +}; + +&tlmm { + serial_0_pins: serial_pinmux { + mux { + pins = "gpio16", "gpio17"; + function = "blsp_uart0"; + bias-disable; + }; + }; + + nand_pins: nand_pins { + pullups { + pins = "gpio53", "gpio58", "gpio59"; + function = "qpic"; + bias-pull-up; + }; + + pulldowns { + pins = "gpio54", "gpio55", "gpio56", + "gpio57", "gpio60", "gpio61", + "gpio62", "gpio63", "gpio64", + "gpio65", "gpio66", "gpio67", + "gpio68", "gpio69"; + function = "qpic"; + bias-pull-down; + }; + }; +}; + +&nand { + pinctrl-0 = <&nand_pins>; + pinctrl-names = "default"; + status = "okay"; + + nand@0 { + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "SBL1"; + reg = <0x000000 0x80000>; + read-only; + }; + + partition@80000 { + label = "MIBIB"; + reg = <0x080000 0x80000>; + read-only; + }; + + partition@100000 { + label = "QSEE"; + reg = <0x100000 0x80000>; + read-only; + }; + + partition@180000 { + label = "CDT"; + reg = <0x180000 0x40000>; + read-only; + }; + + partition@1c0000 { + label = "QSEE_B"; + reg = <0x1c0000 0x80000>; + read-only; + }; + + partition@240000 { + label = "urlader0"; + reg = <0x240000 0x40000>; + read-only; + }; + + partition@280000 { + label = "urlader1"; + reg = <0x280000 0x40000>; + read-only; + }; + + partition@2c0000 { + label = "nand-tffs"; + reg = <0x2c0000 0x840000>; + read-only; + }; + + partition@b00000 { + /* 'kernel1' in AVM firmware */ + label = "uboot0"; + reg = <0xb00000 0x400000>; + }; + + partition@f00000 { + /* 'kernel2' in AVM firmware */ + label = "uboot1"; + reg = <0xf00000 0x400000>; + }; + + partition@1300000 { + label = "ubi"; + reg = <0x1300000 0x6d00000>; + }; + }; + }; +}; + +&cryptobam { + status = "okay"; +}; + +&blsp_dma { + status = "okay"; +}; + +&blsp1_uart1 { + pinctrl-0 = <&serial_0_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + +&qpic_bam { + status = "okay"; +}; + +&wifi0 { + status = "okay"; + /* BDFs are identical for the FRITZ!Box 7530 and the FRITZ!Repeater 3000 */ + qcom,ath10k-calibration-variant = "AVM-FRITZRepeater-3000"; +}; + +&wifi1 { + status = "okay"; + ieee80211-freq-limit = <5170000 5350000>; + /* BDFs are identical for the FRITZ!Box 7530 and the FRITZ!Repeater 3000 */ + qcom,ath10k-calibration-variant = "AVM-FRITZRepeater-3000"; +}; + +&pcie0 { + status = "okay"; + + perst-gpio = <&tlmm 35 GPIO_ACTIVE_LOW>; + wake-gpio = <&tlmm 50 GPIO_ACTIVE_LOW>; + + bridge@0,0 { + reg = <0x00000000 0 0 0 0>; + #address-cells = <3>; + #size-cells = <2>; + ranges; + + wifi@1,0 { + /* QCA9984 */ + compatible = "qcom,ath10k"; + status = "okay"; + reg = <0x00010000 0 0 0 0>; + ieee80211-freq-limit = <5470000 5875000>; + /* Uses the reference BDF */ + }; + }; +}; diff --git a/target/linux/ipq40xx/files-4.19/arch/arm/boot/dts/qcom-ipq4019-fritzrepeater-3000.dts b/target/linux/ipq40xx/files-4.19/arch/arm/boot/dts/qcom-ipq4019-fritzrepeater-3000.dts new file mode 100644 index 0000000000..6914917eb3 --- /dev/null +++ b/target/linux/ipq40xx/files-4.19/arch/arm/boot/dts/qcom-ipq4019-fritzrepeater-3000.dts @@ -0,0 +1,264 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +#include "qcom-ipq4019.dtsi" +#include +#include +#include + +/ { + model = "AVM FRITZ!Repeater 3000"; + compatible = "avm,fritzrepeater-3000"; + + aliases { + led-boot = &power_led; + led-failsafe = &power_led; + led-running = &power_led; + led-upgrade = &power_led; + }; + + soc { + rng@22000 { + status = "okay"; + }; + + mdio@90000 { + status = "okay"; + }; + + ess-psgmii@98000 { + status = "okay"; + }; + + tcsr@1949000 { + compatible = "qcom,tcsr"; + reg = <0x1949000 0x100>; + qcom,wifi_glb_cfg = ; + }; + + ess_tcsr@1953000 { + compatible = "qcom,tcsr"; + reg = <0x1953000 0x1000>; + qcom,ess-interface-select = ; + }; + + tcsr@1957000 { + compatible = "qcom,tcsr"; + reg = <0x1957000 0x100>; + qcom,wifi_noc_memtype_m0_m2 = ; + }; + + crypto@8e3a000 { + status = "okay"; + }; + + watchdog@b017000 { + status = "okay"; + }; + + ess-switch@c000000 { + status = "okay"; + + switch_lan_bmp = <0x10>; + switch_wan_bmp = <0x20>; + }; + + edma@c080000 { + status = "okay"; + }; + }; + + key { + compatible = "gpio-keys"; + + connect { + label = "Connect"; + gpios = <&tlmm 10 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + }; + + leds { + compatible = "gpio-leds"; + + connect_red { + label = "fritzwlan-3000:red:connect"; + gpios = <&tlmm 30 GPIO_ACTIVE_LOW>; + }; + + connect_green { + label = "fritzwlan-3000:green:connect"; + gpios = <&tlmm 31 GPIO_ACTIVE_LOW>; + }; + + connect_blue { + label = "fritzwlan-3000:blue:connect"; + gpios = <&tlmm 32 GPIO_ACTIVE_LOW>; + }; + + power_led: power { + label = "fritzwlan-3000:green:power"; + gpios = <&tlmm 33 GPIO_ACTIVE_LOW>; + }; + }; +}; + +&tlmm { + serial_0_pins: serial_pinmux { + mux { + pins = "gpio16", "gpio17"; + function = "blsp_uart0"; + bias-disable; + }; + }; + + nand_pins: nand_pins { + pullups { + pins = "gpio53", "gpio58", "gpio59"; + function = "qpic"; + bias-pull-up; + }; + + pulldowns { + pins = "gpio54", "gpio55", "gpio56", + "gpio57", "gpio60", "gpio61", + "gpio62", "gpio63", "gpio64", + "gpio65", "gpio66", "gpio67", + "gpio68", "gpio69"; + function = "qpic"; + bias-pull-down; + }; + }; +}; + +&nand { + pinctrl-0 = <&nand_pins>; + pinctrl-names = "default"; + status = "okay"; + + nand@0 { + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "SBL1"; + reg = <0x000000 0x80000>; + read-only; + }; + + partition@80000 { + label = "MIBIB"; + reg = <0x080000 0x80000>; + read-only; + }; + + partition@100000 { + label = "QSEE"; + reg = <0x100000 0x80000>; + read-only; + }; + + partition@180000 { + label = "CDT"; + reg = <0x180000 0x40000>; + read-only; + }; + + partition@1c0000 { + label = "QSEE_B"; + reg = <0x1c0000 0x80000>; + read-only; + }; + + partition@240000 { + label = "urlader0"; + reg = <0x240000 0x40000>; + read-only; + }; + + partition@280000 { + label = "urlader1"; + reg = <0x280000 0x40000>; + read-only; + }; + + partition@2c0000 { + label = "nand-tffs"; + reg = <0x2c0000 0x840000>; + read-only; + }; + + partition@b00000 { + /* 'kernel1' in AVM firmware */ + label = "uboot0"; + reg = <0xb00000 0x400000>; + }; + + partition@f00000 { + /* 'kernel2' in AVM firmware */ + label = "uboot1"; + reg = <0xf00000 0x400000>; + }; + + partition@1300000 { + label = "ubi"; + reg = <0x1300000 0x6d00000>; + }; + }; + }; +}; + +&cryptobam { + status = "okay"; +}; + +&blsp_dma { + status = "okay"; +}; + +&blsp1_uart1 { + pinctrl-0 = <&serial_0_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + +&qpic_bam { + status = "okay"; +}; + +&wifi0 { + status = "okay"; + /* BDFs are identical for the FRITZ!Box 7530 and the FRITZ!Repeater 3000 */ + qcom,ath10k-calibration-variant = "AVM-FRITZRepeater-3000"; +}; + +&wifi1 { + status = "okay"; + ieee80211-freq-limit = <5170000 5350000>; + /* BDFs are identical for the FRITZ!Box 7530 and the FRITZ!Repeater 3000 */ + qcom,ath10k-calibration-variant = "AVM-FRITZRepeater-3000"; +}; + +&pcie0 { + status = "okay"; + + perst-gpio = <&tlmm 35 GPIO_ACTIVE_LOW>; + wake-gpio = <&tlmm 50 GPIO_ACTIVE_LOW>; + + bridge@0,0 { + reg = <0x00000000 0 0 0 0>; + #address-cells = <3>; + #size-cells = <2>; + ranges; + + wifi@1,0 { + /* QCA9984 */ + compatible = "qcom,ath10k"; + status = "okay"; + reg = <0x00010000 0 0 0 0>; + ieee80211-freq-limit = <5470000 5875000>; + /* Uses the reference BDF */ + }; + }; +}; diff --git a/target/linux/ipq40xx/image/Makefile b/target/linux/ipq40xx/image/Makefile index e2805c1d9e..c81d33d084 100644 --- a/target/linux/ipq40xx/image/Makefile +++ b/target/linux/ipq40xx/image/Makefile @@ -130,6 +130,15 @@ define Device/avm_fritzbox-7530 endef TARGET_DEVICES += avm_fritzbox-7530 +define Device/avm_fritzrepeater-3000 + $(call Device/FitImageLzma) + DEVICE_DTS := qcom-ipq4019-fritzrepeater-3000 + DEVICE_TITLE := AVM Fritz!Repeater 3000 + DEVICE_PACKAGES := ath10k-firmware-qca9984-ct fritz-caldata fritz-tffs-nand ipq-wifi-avm_fritzrepeater-3000 + IMAGES := sysupgrade.bin +endef +TARGET_DEVICES += avm_fritzrepeater-3000 + define Device/compex_wpj428 $(call Device/FitImage) DEVICE_DTS := qcom-ipq4028-wpj428 diff --git a/target/linux/ipq40xx/patches-4.14/901-arm-boot-add-dts-files.patch b/target/linux/ipq40xx/patches-4.14/901-arm-boot-add-dts-files.patch index 89ce5b1538..951479a2ef 100644 --- a/target/linux/ipq40xx/patches-4.14/901-arm-boot-add-dts-files.patch +++ b/target/linux/ipq40xx/patches-4.14/901-arm-boot-add-dts-files.patch @@ -10,7 +10,7 @@ Signed-off-by: John Crispin --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile -@@ -697,7 +697,27 @@ dtb-$(CONFIG_ARCH_QCOM) += \ +@@ -697,7 +697,28 @@ dtb-$(CONFIG_ARCH_QCOM) += \ qcom-apq8074-dragonboard.dtb \ qcom-apq8084-ifc6540.dtb \ qcom-apq8084-mtp.dtb \ @@ -29,6 +29,7 @@ Signed-off-by: John Crispin + qcom-ipq4019-a62.dtb \ + qcom-ipq4019-ap.dk04.1-c1.dtb \ + qcom-ipq4019-fritzbox-7530.dtb \ ++ qcom-ipq4019-fritzrepeater-3000.dtb \ + qcom-ipq4019-map-ac2200.dtb \ + qcom-ipq4019-qxwlan-e2600ac-c1.dtb \ + qcom-ipq4019-qxwlan-e2600ac-c2.dtb \ diff --git a/target/linux/ipq40xx/patches-4.19/901-arm-boot-add-dts-files.patch b/target/linux/ipq40xx/patches-4.19/901-arm-boot-add-dts-files.patch index f47b7b6dab..23b3b4546a 100644 --- a/target/linux/ipq40xx/patches-4.19/901-arm-boot-add-dts-files.patch +++ b/target/linux/ipq40xx/patches-4.19/901-arm-boot-add-dts-files.patch @@ -10,7 +10,7 @@ Signed-off-by: John Crispin --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile -@@ -785,11 +785,30 @@ dtb-$(CONFIG_ARCH_QCOM) += \ +@@ -785,11 +785,31 @@ dtb-$(CONFIG_ARCH_QCOM) += \ qcom-apq8074-dragonboard.dtb \ qcom-apq8084-ifc6540.dtb \ qcom-apq8084-mtp.dtb \ @@ -32,6 +32,7 @@ Signed-off-by: John Crispin qcom-ipq4019-ap.dk07.1-c2.dtb \ + qcom-ipq4019-a62.dtb \ + qcom-ipq4019-fritzbox-7530.dtb \ ++ qcom-ipq4019-fritzrepeater-3000.dtb \ + qcom-ipq4019-map-ac2200.dtb \ + qcom-ipq4019-qxwlan-e2600ac-c1.dtb \ + qcom-ipq4019-qxwlan-e2600ac-c2.dtb \ -- 2.30.2