ipq40xx: add support for AVM FRITZ!Repeater 3000
authorDavid Bauer <mail@david-bauer.net>
Mon, 11 Mar 2019 17:05:32 +0000 (18:05 +0100)
committerChristian Lamparter <chunkeey@gmail.com>
Wed, 13 Mar 2019 15:25:35 +0000 (16:25 +0100)
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 <mail@david-bauer.net>
package/boot/uboot-fritz4040/Makefile
package/firmware/ipq-wifi/Makefile
package/firmware/ipq-wifi/board-avm_fritzrepeater-3000.bin [new file with mode: 0644]
target/linux/ipq40xx/base-files/etc/board.d/02_network
target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
target/linux/ipq40xx/base-files/lib/upgrade/platform.sh
target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4019-fritzrepeater-3000.dts [new file with mode: 0644]
target/linux/ipq40xx/files-4.19/arch/arm/boot/dts/qcom-ipq4019-fritzrepeater-3000.dts [new file with mode: 0644]
target/linux/ipq40xx/image/Makefile
target/linux/ipq40xx/patches-4.14/901-arm-boot-add-dts-files.patch
target/linux/ipq40xx/patches-4.19/901-arm-boot-add-dts-files.patch

index 3182842c89fda5f10e72e954662c2afd6414ec1c..015ca1deb9b43edd71efb39956c02561fd83e765 100644 (file)
@@ -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))
index 9a00832ca2dd6ec3c3de5c53643525dcb3239441..d273667f682fec5cd98c8517077bfc9364930d83 100644 (file)
@@ -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:
 # <https://wireless.wiki.kernel.org/en/users/drivers/ath10k/boardfiles>
-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 (file)
index 0000000..69e40a1
Binary files /dev/null and b/package/firmware/ipq-wifi/board-avm_fritzrepeater-3000.bin differ
index 94fb26ce486982cc955925b86cff5de3bc73bdf7..02cdd30b562203cec5472496bf0dc4869a38415c 100755 (executable)
@@ -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"
                ;;
index 1264d2ef36b3c1ac0c1f00c6b10c6e4f9d4b55f4..8520dfb41d36b640d3585956feadae7fef0a1bf1 100644 (file)
@@ -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")
                ;;
index 9a2c13cf4db014e11e3b62ca8cbc519dbc406975..84b123335c38839f003b7d5956a10cf9f4072928 100644 (file)
@@ -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 (file)
index 0000000..07a1400
--- /dev/null
@@ -0,0 +1,260 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "qcom-ipq4019.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/soc/qcom,tcsr.h>
+
+/ {
+       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 = <TCSR_WIFI_GLB_CFG>;
+               };
+
+               ess_tcsr@1953000 {
+                       compatible = "qcom,tcsr";
+                       reg = <0x1953000 0x1000>;
+                       qcom,ess-interface-select = <TCSR_ESS_PSGMII>;
+               };
+
+               tcsr@1957000 {
+                       compatible = "qcom,tcsr";
+                       reg = <0x1957000 0x100>;
+                       qcom,wifi_noc_memtype_m0_m2 = <TCSR_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 = <KEY_WPS_BUTTON>;
+               };
+       };
+
+       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 (file)
index 0000000..6914917
--- /dev/null
@@ -0,0 +1,264 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "qcom-ipq4019.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/soc/qcom,tcsr.h>
+
+/ {
+       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 = <TCSR_WIFI_GLB_CFG>;
+               };
+
+               ess_tcsr@1953000 {
+                       compatible = "qcom,tcsr";
+                       reg = <0x1953000 0x1000>;
+                       qcom,ess-interface-select = <TCSR_ESS_PSGMII>;
+               };
+
+               tcsr@1957000 {
+                       compatible = "qcom,tcsr";
+                       reg = <0x1957000 0x100>;
+                       qcom,wifi_noc_memtype_m0_m2 = <TCSR_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 = <KEY_WPS_BUTTON>;
+               };
+       };
+
+       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 */
+               };
+       };
+};
index e2805c1d9ec5d8135847378e8e212c3f4afc819d..c81d33d08477666ad7d354c7a4f4a9081c3c7b46 100644 (file)
@@ -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
index 89ce5b1538ed45b95e1ed64325482058292ece9b..951479a2ef0d3e003468a8d055d430d829d1abae 100644 (file)
@@ -10,7 +10,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
 
 --- 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 <john@phrozen.org>
 +      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 \
index f47b7b6dabb30f88b57f88e1588a5759bc0c4c98..23b3b4546ad4b75a22125403ee2b1868f11f965f 100644 (file)
@@ -10,7 +10,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
 
 --- 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 <john@phrozen.org>
        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 \