[PATCHv2 1/2] ipq806x: add support for TP-Link Talon AD7200

Gary Cooper gaco at bitmessage.de
Tue Oct 20 16:29:53 EDT 2020


From: Gary Cooper <gaco at bitmessage.de>

Device hardware: https://deviwiki.com/wiki/TP-LINK_AD7200_(Talon)

The Talon AD7200 is basically an Archer C2600 with a third PCIe lane and
an 802.11ad radio. It comes in a different housing similar to the
Archers C3200 and C5400.

Specifications
--------------

  - IPQ8064 dual-core 1400MHz
  - QCA9988 2.4GHz WiFi
  - QCA9888 5GHz WiFi
  - QCA9500 60GHz WiFi
  - 32MB SPI Flash
  - 512MiB RAM
  - 5 GBit Ports (QCA8337)

Installation
------------

Installation is possible from the OEM web interface.
Sysupgrade is possible.
TFTP recovery is possible.
  - Image: AD7200_1.0_tp_recovery.bin

Notes
  - This will (fingers crossed) be the first 802.11ad-device to be
supported by mainline.

Please consider this to be the v2 of this proposal. There seems to
have been some issues with the previous MX-provider, please take note of
the new email-address.

1: The information listed on DeviWiki seems to be erroneous, the Talon
AD7200 does indeed have 32MB of flash, thanks Daniel.

2: I've made a few changes to the patch so as to further alleviate any
concerns with re to maintenance.

3: I've split the patch into device-specific and 802.11ad-specific content.

Signed-off-by: Gary Cooper <gaco at bitmessage.de>
---
 package/firmware/linux-firmware/qca.mk        |   8 +
 package/kernel/mac80211/ath.mk                |  13 +-
 .../ipq806x/base-files/etc/board.d/01_leds    |   9 +
 .../ipq806x/base-files/etc/board.d/02_network |   1 +
 .../etc/hotplug.d/firmware/11-ath10k-caldata  |   2 +
 .../base-files/lib/upgrade/platform.sh        |   1 +
 .../arch/arm/boot/dts/qcom-ipq8064-ad7200.dts | 440 ++++++++++++++++++
 target/linux/ipq806x/image/Makefile           |  15 +
 tools/firmware-utils/src/tplink-safeloader.c  |  44 ++
 9 files changed, 532 insertions(+), 1 deletion(-)
 create mode 100644
target/linux/ipq806x/files-5.4/arch/arm/boot/dts/qcom-ipq8064-ad7200.dts

diff --git a/package/firmware/linux-firmware/qca.mk
b/package/firmware/linux-firmware/qca.mk
index 23fcc0905a..71b484d5c7 100644
--- a/package/firmware/linux-firmware/qca.mk
+++ b/package/firmware/linux-firmware/qca.mk
@@ -37,3 +37,11 @@ define Package/carl9170-firmware/install
         $(INSTALL_DATA) $(PKG_BUILD_DIR)/carl9170-1.fw $(1)/lib/firmware
 endef
 $(eval $(call BuildPackage,carl9170-firmware))
+
+Package/wil6210-firmware = $(call Package/firmware-default,wil6210 firmware)
+define Package/wil6210-firmware/install
+        $(INSTALL_DIR) $(1)/lib/firmware
+        $(INSTALL_DATA) $(PKG_BUILD_DIR)/wil6210.fw $(1)/lib/firmware
+        $(INSTALL_DATA) $(PKG_BUILD_DIR)/wil6210.brd $(1)/lib/firmware
+endef
+$(eval $(call BuildPackage,wil6210-firmware))
diff --git a/package/kernel/mac80211/ath.mk b/package/kernel/mac80211/ath.mk
index 5db4be8daa..e563fb71fc 100644
--- a/package/kernel/mac80211/ath.mk
+++ b/package/kernel/mac80211/ath.mk
@@ -1,6 +1,6 @@
 PKG_DRIVERS += \
         ath ath5k ath6kl ath6kl-sdio ath6kl-usb ath9k ath9k-common ath9k-htc
ath10k \
-        carl9170 owl-loader ar5523
+        carl9170 wil6210 owl-loader ar5523

 PKG_CONFIG_DEPENDS += \
         CONFIG_PACKAGE_ATH_DEBUG \
@@ -20,6 +20,7 @@ ifdef CONFIG_PACKAGE_MAC80211_DEBUGFS
         ATH9K_HTC_DEBUGFS \
         ATH10K_DEBUGFS \
         CARL9170_DEBUGFS \
+        WIL6210_DEBUGFS \
         ATH5K_DEBUG \
         ATH6KL_DEBUG
 endif
@@ -29,6 +30,7 @@ ifdef CONFIG_PACKAGE_MAC80211_TRACING
         ATH10K_TRACING \
         ATH6KL_TRACING \
         ATH_TRACEPOINTS \
+        WIL6210_TRACING
         ATH5K_TRACER
 endif

@@ -66,6 +68,7 @@ config-$(call config_package,ath6kl-sdio) += ATH6KL_SDIO
 config-$(call config_package,ath6kl-usb) += ATH6KL_USB

 config-$(call config_package,carl9170) += CARL9170
+config-$(call config_package,wil6210) += WIL6210
 config-$(call config_package,ar5523) += AR5523

 define KernelPackage/ath/config
@@ -284,6 +287,14 @@ define KernelPackage/carl9170
   AUTOLOAD:=$(call AutoProbe,carl9170)
 endef

+define KernelPackage/wil6210
+  $(call KernelPackage/mac80211/Default)
+  TITLE:=QCA/Wilocity 60g WiFi card wil6210 support
+  DEPENDS+= @PCI_SUPPORT +kmod-mac80211 +wil6210-firmware
+  FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/wil6210/wil6210.ko
+  AUTOLOAD:=$(call AutoProbe,wil6210)
+endef
+
 define KernelPackage/owl-loader
   $(call KernelPackage/mac80211/Default)
   TITLE:=Owl loader for initializing Atheros PCI(e) Wifi chips
diff --git a/target/linux/ipq806x/base-files/etc/board.d/01_leds
b/target/linux/ipq806x/base-files/etc/board.d/01_leds
index c23f25540b..d50fb1d719 100755
--- a/target/linux/ipq806x/base-files/etc/board.d/01_leds
+++ b/target/linux/ipq806x/base-files/etc/board.d/01_leds
@@ -36,6 +36,15 @@ netgear,r7800)
         ucidef_set_led_switch "wan" "WAN" "white:wan" "switch0" "0x20"
         ucidef_set_led_ide "esata" "eSATA" "white:esata"
         ;;
+tplink,ad7200)
+        ucidef_set_led_usbport "usb1" "USB 1" "blue:usb_1" "usb1-port1"
"usb2-port1"
+        ucidef_set_led_usbport "usb2" "USB 2" "blue:usb_3" "usb3-port1"
"usb4-port1"
+        ucidef_set_led_switch "wan" "wan" "blue:wan" "switch0" "0x02"
+        ucidef_set_led_switch "lan" "lan" "blue:lan" "switch0" "0x3c"
+        ucidef_set_led_wlan "wlan2g" "wlan2g" "blue:wlan2g" "phy2tpt"
+        ucidef_set_led_wlan "wlan5g" "wlan5g" "blue:wlan5g" "phy1tpt"
+        ucidef_set_led_netdev "wlan60g" "wlan60g" "blue:wlan60g" "wlan0"
+        ;;
 tplink,c2600)
         ucidef_set_led_usbport "usb1" "USB 1" "white:usb_2" "usb1-port1"
"usb2-port1"
         ucidef_set_led_usbport "usb2" "USB 2" "white:usb_4" "usb3-port1"
"usb4-port1"
diff --git a/target/linux/ipq806x/base-files/etc/board.d/02_network
b/target/linux/ipq806x/base-files/etc/board.d/02_network
index 3f9d96881d..3fb0e5f931 100755
--- a/target/linux/ipq806x/base-files/etc/board.d/02_network
+++ b/target/linux/ipq806x/base-files/etc/board.d/02_network
@@ -46,6 +46,7 @@ nec,wg2600hp)
                 "2:lan" "3:lan" "4:lan" "5:lan" "6 at eth1" "1:wan" "0 at eth0"
         ;;
 netgear,r7800 |\
+tplink,ad7200 |\
 tplink,c2600)
         ucidef_add_switch "switch0" \
                 "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "6 at eth1" "5:wan"
"0 at eth0"
diff --git
a/target/linux/ipq806x/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
b/target/linux/ipq806x/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
index 74ad00c5ce..5a19d30538 100644
---
a/target/linux/ipq806x/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
+++
b/target/linux/ipq806x/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
@@ -31,6 +31,7 @@ case "$FIRMWARE" in
                 caldata_extract "art" 0x1000 0x2f20
                 ath10k_patch_mac $(macaddr_add $(mtd_get_mac_binary art
0x6) +1)
                 ;;
+        tplink,ad7200 |\
         tplink,c2600)
                 caldata_extract "radio" 0x1000 0x2f20
                 ath10k_patch_mac $(macaddr_add $(mtd_get_mac_binary
default-mac 0x8) -1)
@@ -66,6 +67,7 @@ case "$FIRMWARE" in
                 caldata_extract "art" 0x5000 0x2f20
                 ath10k_patch_mac $(macaddr_add $(mtd_get_mac_binary art
0x6) +2)
                 ;;
+        tplink,ad7200 |\
         tplink,c2600)
                 caldata_extract "radio" 0x5000 0x2f20
                 ath10k_patch_mac $(mtd_get_mac_binary default-mac 0x8)
diff --git a/target/linux/ipq806x/base-files/lib/upgrade/platform.sh
b/target/linux/ipq806x/base-files/lib/upgrade/platform.sh
index f61e8ee878..a20d1bbd5b 100644
--- a/target/linux/ipq806x/base-files/lib/upgrade/platform.sh
+++ b/target/linux/ipq806x/base-files/lib/upgrade/platform.sh
@@ -39,6 +39,7 @@ platform_do_upgrade() {
         linksys,ea8500)
                 platform_do_upgrade_linksys "$1"
                 ;;
+        tplink,ad7200 |\
         tplink,c2600)
                 PART_NAME="os-image:rootfs"
                 MTD_CONFIG_ARGS="-s 0x200000"
diff --git
a/target/linux/ipq806x/files-5.4/arch/arm/boot/dts/qcom-ipq8064-ad7200.dts
b/target/linux/ipq806x/files-5.4/arch/arm/boot/dts/qcom-ipq8064-ad7200.dts
new file mode 100644
index 0000000000..e5bdc32114
--- /dev/null
+++
b/target/linux/ipq806x/files-5.4/arch/arm/boot/dts/qcom-ipq8064-ad7200.dts
@@ -0,0 +1,440 @@
+//SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+#include "qcom-ipq8064-v2.0.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+        model = "TP-Link Talon AD7200";
+        compatible = "tplink,ad7200", "qcom,ipq8064";
+
+        memory at 0 {
+                reg = <0x42000000 0x1e000000>;
+                device_type = "memory";
+        };
+
+        aliases {
+                mdio-gpio0 = &mdio0;
+
+                led-boot = &power;
+                led-failsafe = &power;
+                led-running = &power;
+                led-upgrade = &power;
+                label-mac-device = &gmac2;
+        };
+
+        keys {
+                compatible = "gpio-keys";
+                pinctrl-0 = <&button_pins>;
+                pinctrl-names = "default";
+
+                wifi {
+                        label = "wifi";
+                        gpios = <&qcom_pinmux 54 GPIO_ACTIVE_LOW>;
+                        linux,code = <KEY_RFKILL>;
+                };
+
+                reset {
+                        label = "reset";
+                        gpios = <&qcom_pinmux 7 GPIO_ACTIVE_LOW>;
+                        linux,code = <KEY_RESTART>;
+                };
+
+                wps {
+                        label = "wps";
+                        gpios = <&qcom_pinmux 67 GPIO_ACTIVE_LOW>;
+                        linux,code = <KEY_WPS_BUTTON>;
+                };
+
+                ledgeneral {
+                        label = "ledswitch";
+                        gpios = <&qcom_pinmux 53 GPIO_ACTIVE_LOW>;
+                        linux,code = <KEY_LIGHTS_TOGGLE>;
+                };
+        };
+
+        leds {
+                compatible = "gpio-leds";
+                pinctrl-0 = <&led_pins>;
+                pinctrl-names = "default";
+
+                lan {
+                        label = "blue:lan";
+                        gpios = <&qcom_pinmux 2 GPIO_ACTIVE_HIGH>;
+                };
+
+                usb1 {
+                        label = "blue:usb_1";
+                        gpios = <&qcom_pinmux 8 GPIO_ACTIVE_HIGH>;
+                };
+
+                usb3 {
+                        label = "blue:usb_3";
+                        gpios = <&qcom_pinmux 16 GPIO_ACTIVE_HIGH>;
+                };
+
+                wps {
+                        label = "blue:wps";
+                        gpios = <&qcom_pinmux 55 GPIO_ACTIVE_HIGH>;
+                };
+
+                wan_orange {
+                        label = "orange:wan";
+                        gpios = <&qcom_pinmux 26 GPIO_ACTIVE_LOW>;
+                };
+
+                wan_blue {
+                        label = "blue:wan";
+                        gpios = <&qcom_pinmux 33 GPIO_ACTIVE_LOW>;
+                };
+
+                power: status {
+                        label = "blue:status";
+                        gpios = <&qcom_pinmux 66 GPIO_ACTIVE_HIGH>;
+                };
+
+                wlan2g {
+                        label = "blue:wlan2g";
+                        gpios = <&qcom_pinmux 17 GPIO_ACTIVE_HIGH>;
+
+                };
+
+                wlan5g {
+                        label = "blue:wlan5g";
+                        gpios = <&qcom_pinmux 15 GPIO_ACTIVE_HIGH>;
+
+                };
+
+                wlan60g {
+                        label = "blue:wlan60g";
+                        gpios = <&qcom_pinmux 56 GPIO_ACTIVE_HIGH>;
+                };
+        };
+};
+
+&qcom_pinmux {
+        button_pins: button_pins {
+                mux {
+                        pins = "gpio53", "gpio54", "gpio67";
+                        function = "gpio";
+                        drive-strength = <2>;
+                        bias-pull-up;
+                };
+        };
+
+        led_pins: led_pins {
+                mux {
+                        pins = "gpio2", "gpio8", "gpio15", "gpio16",
"gpio17", "gpio26",
+                                        "gpio33", "gpio55", "gpio56",
"gpio66";
+                        function = "gpio";
+                        drive-strength = <2>;
+                        bias-pull-up;
+                };
+        };
+
+        spi_pins: spi_pins {
+                mux {
+                        pins = "gpio18", "gpio19", "gpio21";
+                        function = "gsbi5";
+                        bias-pull-down;
+                };
+
+                data {
+                        pins = "gpio18", "gpio19";
+                        drive-strength = <10>;
+                };
+
+                cs {
+                        pins = "gpio20";
+                        function = "gpio";
+                        drive-strength = <10>;
+                        bias-pull-up;
+                };
+
+                clk {
+                        pins = "gpio21";
+                        drive-strength = <12>;
+                };
+        };
+
+        usb0_pwr_en_pin: usb0_pwr_en_pin {
+                mux {
+                        pins = "gpio25";
+                        function = "gpio";
+                        drive-strength = <10>;
+                        bias-pull-up;
+                        output-high;
+                };
+        };
+
+        usb1_pwr_en_pin: usb1_pwr_en_pin {
+                mux {
+                        pins = "gpio23";
+                        function = "gpio";
+                        drive-strength = <10>;
+                        bias-pull-up;
+                        output-high;
+                };
+        };
+};
+
+&gsbi5 {
+        qcom,mode = <GSBI_PROT_SPI>;
+        status = "okay";
+
+        spi4: spi at 1a280000 {
+                status = "okay";
+
+                pinctrl-0 = <&spi_pins>;
+                pinctrl-names = "default";
+
+                cs-gpios = <&qcom_pinmux 20 GPIO_ACTIVE_HIGH>;
+
+                m25p80 at 0 {
+                        compatible = "jedec,spi-nor";
+                        #address-cells = <1>;
+                        #size-cells = <1>;
+                        spi-max-frequency = <50000000>;
+                        reg = <0>;
+
+                        SBL1 at 0 {
+                                label = "SBL1";
+                                reg = <0x0 0x20000>;
+                                read-only;
+                        };
+
+                        MIBIB at 20000 {
+                                label = "MIBIB";
+                                reg = <0x20000 0x20000>;
+                                read-only;
+                        };
+
+                        SBL2 at 40000 {
+                                label = "SBL2";
+                                reg = <0x40000 0x20000>;
+                                read-only;
+                        };
+
+                        SBL3 at 60000 {
+                                label = "SBL3";
+                                reg = <0x60000 0x30000>;
+                                read-only;
+                        };
+
+                        DDRCONFIG at 90000 {
+                                label = "DDRCONFIG";
+                                reg = <0x90000 0x10000>;
+                                read-only;
+                        };
+
+                        SSD at a0000 {
+                                label = "SSD";
+                                reg = <0xa0000 0x10000>;
+                                read-only;
+                        };
+
+                        TZ at b0000 {
+                                label = "TZ";
+                                reg = <0xb0000 0x30000>;
+                                read-only;
+                        };
+
+                        RPM at e0000 {
+                                label = "RPM";
+                                reg = <0xe0000 0x20000>;
+                                read-only;
+                        };
+
+                        fs-uboot at 100000 {
+                                label = "fs-uboot";
+                                reg = <0x100000 0x70000>;
+                                read-only;
+                        };
+
+                        uboot-env at 170000 {
+                                label = "uboot-env";
+                                reg = <0x170000 0x40000>;
+                                read-only;
+                        };
+
+                        radio at 1b0000 {
+                                label = "radio";
+                                reg = <0x1b0000 0x40000>;
+                                read-only;
+                        };
+
+                        os-image at 1f0000 {
+                                label = "os-image";
+                                reg = <0x1f0000 0x400000>;
+                        };
+
+                        rootfs at 5f0000 {
+                                label = "rootfs";
+                                reg = <0x5f0000 0x1900000>;
+                        };
+
+                        defaultmac: default-mac at 1ef0000 {
+                                label = "default-mac";
+                                reg = <0x1ef0000 0x00200>;
+                                read-only;
+                        };
+
+                        pin at 1ef0200 {
+                                label = "pin";
+                                reg = <0x1ef0200 0x00200>;
+                                read-only;
+                        };
+
+                        device-id at 1ef0400 {
+                                label = "device-id";
+                                reg = <0x1ef0400 0x00200>;
+                                read-only;
+                        };
+
+                        product-info at 1ef0600 {
+                                label = "product-info";
+                                reg = <0x1ef0600 0x0fa00>;
+                                read-only;
+                        };
+
+                        partition-table at 1f00000 {
+                                label = "partition-table";
+                                reg = <0x1f00000 0x10000>;
+                                read-only;
+                        };
+
+                        soft-version at 1f10000 {
+                                label = "soft-version";
+                                reg = <0x1f10000 0x10000>;
+                                read-only;
+                        };
+
+                        support-list at 1f20000 {
+                                label = "support-list";
+                                reg = <0x1f20000 0x10000>;
+                                read-only;
+                        };
+
+                        profile at 1f30000 {
+                                label = "profile";
+                                reg = <0x1f30000 0x10000>;
+                                read-only;
+                        };
+
+                        default-config at 1f40000 {
+                                label = "default-config";
+                                reg = <0x1f40000 0x10000>;
+                                read-only;
+                        };
+
+                        user-config at 1f50000 {
+                                label = "user-config";
+                                reg = <0x1f50000 0x40000>;
+                                read-only;
+                        };
+
+                        qos-db at 1f90000 {
+                                label = "qos-db";
+                                reg = <0x1f90000 0x40000>;
+                                read-only;
+                        };
+
+                        usb-config at 1fd0000 {
+                                label = "usb-config";
+                                reg = <0x1fd0000 0x10000>;
+                                read-only;
+                        };
+
+                        log at 1fe0000 {
+                                label = "log";
+                                reg = <0x1fe0000 0x20000>;
+                                read-only;
+                        };
+                };
+        };
+};
+
+&usb3_0 {
+        status = "okay";
+
+        pinctrl-0 = <&usb0_pwr_en_pin>;
+        pinctrl-names = "default";
+};
+
+&usb3_1 {
+        status = "okay";
+
+        pinctrl-0 = <&usb1_pwr_en_pin>;
+        pinctrl-names = "default";
+};
+
+&pcie0 {
+        status = "okay";
+};
+
+&pcie1 {
+        status = "okay";
+        max-link-speed = <1>;
+};
+
+&pcie2 {
+        status = "okay";
+        max-link-speed = <1>;
+};
+
+&mdio0 {
+        status = "okay";
+
+        pinctrl-0 = <&mdio0_pins>;
+        pinctrl-names = "default";
+
+        phy0: ethernet-phy at 0 {
+                reg = <0>;
+                qca,ar8327-initvals = <
+                        0x00004 0x7600000   /* PAD0_MODE */
+                        0x00008 0x1000000   /* PAD5_MODE */
+                        0x0000c 0x80        /* PAD6_MODE */
+                        0x000e4 0x6a545     /* MAC_POWER_SEL */
+                        0x000e0 0xc74164de  /* SGMII_CTRL */
+                        0x0007c 0x4e        /* PORT0_STATUS */
+                        0x00094 0x4e        /* PORT6_STATUS */
+                        >;
+        };
+
+        phy4: ethernet-phy at 4 {
+                reg = <4>;
+        };
+};
+
+&gmac1 {
+        status = "okay";
+        phy-mode = "rgmii";
+        qcom,id = <1>;
+
+        pinctrl-0 = <&rgmii2_pins>;
+        pinctrl-names = "default";
+
+        mtd-mac-address = <&defaultmac 0x8>;
+        mtd-mac-address-increment = <1>;
+
+        fixed-link {
+                speed = <1000>;
+                full-duplex;
+        };
+};
+
+&gmac2 {
+        status = "okay";
+        phy-mode = "sgmii";
+        qcom,id = <2>;
+
+        mtd-mac-address = <&defaultmac 0x8>;
+
+        fixed-link {
+                speed = <1000>;
+                full-duplex;
+        };
+};
+
+&adm_dma {
+        status = "okay";
+};
diff --git a/target/linux/ipq806x/image/Makefile
b/target/linux/ipq806x/image/Makefile
index ec73630ae5..6e3ef6f526 100644
--- a/target/linux/ipq806x/image/Makefile
+++ b/target/linux/ipq806x/image/Makefile
@@ -295,6 +295,21 @@ define Device/qcom_ipq8064-db149
 endef
 TARGET_DEVICES += qcom_ipq8064-db149

+define Device/tplink_ad7200
+        $(call Device/TpSafeImage)
+        DEVICE_VENDOR := TP-Link
+        DEVICE_MODEL := Talon AD7200
+        DEVICE_VARIANT := v1
+        SOC := qcom-ipq8064
+        BLOCKSIZE := 128k
+        PAGESIZE := 2048
+        BOARD_NAME := ad7200
+        SUPPORTED_DEVICES += ad7200
+        TPLINK_BOARD_ID := AD7200
+        DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct kmod-wil6210
+endef
+TARGET_DEVICES += tplink_ad7200
+
 define Device/tplink_c2600
         $(call Device/TpSafeImage)
         DEVICE_VENDOR := TP-Link
diff --git a/tools/firmware-utils/src/tplink-safeloader.c
b/tools/firmware-utils/src/tplink-safeloader.c
index 31b9c032d1..08f96a5fa8 100644
--- a/tools/firmware-utils/src/tplink-safeloader.c
+++ b/tools/firmware-utils/src/tplink-safeloader.c
@@ -651,6 +651,50 @@ static struct device_info boards[] = {
                 .last_sysupgrade_partition = "support-list",
         },

+        /** Firmware layout for the AD7200 */
+        {
+                .id = "AD7200",
+                .vendor = "",
+                .support_list =
+                        "SupportList:\r\n"
+                        "{product_name:Talon
AD7200,product_ver:1.0.0,special_id:00000000}\r\n",
+                .support_trail = '\x00',
+                .soft_ver = NULL,
+
+                .partitions = {
+                        {"SBL1", 0x00000, 0x20000},
+                        {"MIBIB", 0x20000, 0x20000},
+                        {"SBL2", 0x40000, 0x20000},
+                        {"SBL3", 0x60000, 0x30000},
+                        {"DDRCONFIG", 0x90000, 0x10000},
+                        {"SSD", 0xa0000, 0x10000},
+                        {"TZ", 0xb0000, 0x30000},
+                        {"RPM", 0xe0000, 0x20000},
+                        {"fs-uboot", 0x100000, 0x70000},
+                        {"uboot-env", 0x170000, 0x40000},
+                        {"radio", 0x1b0000, 0x40000},
+                        {"os-image", 0x1f0000, 0x400000},
+                        {"file-system", 0x5f0000, 0x1900000},
+                        {"default-mac", 0x1ef0000, 0x00200},
+                        {"pin", 0x1ef0200, 0x00200},
+                        {"device-id", 0x1ef0400, 0x00200},
+                        {"product-info", 0x1ef0600, 0x0fa00},
+                        {"partition-table", 0x1f00000, 0x10000},
+                        {"soft-version", 0x1f10000, 0x10000},
+                        {"support-list", 0x1f20000, 0x10000},
+                        {"profile", 0x1f30000, 0x10000},
+                        {"default-config", 0x1f40000, 0x10000},
+                        {"user-config", 0x1f50000, 0x40000},
+                        {"qos-db", 0x1f90000, 0x40000},
+                        {"usb-config", 0x1fd0000, 0x10000},
+                        {"log", 0x1fe0000, 0x20000},
+                        {NULL, 0, 0}
+                },
+
+                .first_sysupgrade_partition = "os-image",
+                .last_sysupgrade_partition = "file-system"
+        },
+
         /** Firmware layout for the C2600 */
         {
                 .id     = "C2600",
-- 




More information about the openwrt-devel mailing list