[openwrt/openwrt] ipq806x: add support for Compex WPQ864

LEDE Commits lede-commits at lists.infradead.org
Thu Mar 15 00:21:04 PDT 2018


mkresin pushed a commit to openwrt/openwrt.git, branch master:
https://git.lede-project.org/0c7e78930b8e3865000ba677d7b71f4f063499f1

commit 0c7e78930b8e3865000ba677d7b71f4f063499f1
Author: Christian Mehlis <christian at m3hlis.de>
AuthorDate: Sun Oct 30 09:51:54 2016 +0100

    ipq806x: add support for Compex WPQ864
    
    Hardware highlights:
    - SoC: Qualcomm Atheros IPQ8064/5 ARM Dual Core CPU
    - RAM: (512MB or 1GB) DDR3 System Memory
    - Storage: 32MB NOR (Cypress S25FL256S1)
               256MB NAND (Micron MT29F2G08ABBEAH4)
    - Ethernet: 5 x 1G via QCA8337N
    - USB: 1 x USB 2.0/3.0 + 1 x USB 2.0 on mini PCIe3 socket
    - PCIe: 3x mini PCIe (third mini PCIE3 is PCIe/USB shared)
    - SIM Card Slot: 2 x Slot
    - Buttons: Reset Button
    - LEDs: 18x, 8x GPIO controllable
    - Buzzer
    
    The correct amount of RAM will be passed by the bootloader.
    
    In contrast to the documentation provided by Compex, the third PCIe
    doesn't use GPIO16 for PERST. Instead, GPIO3 is shared and used as PERST
    for PCIe0 and PCIe2.
    
    So far, no one was able to get USB 3.0 working with the 1GB RAM version,
    while it works fine for my 512MB version. Since USB 3.0 doesn't work with
    the Compex firmware for the 1G variant either, it could be a hardware
    issue with these boards.
    
    OpenWrt will be installed to the NAND flash. Make sure to have a full
    working image on the NOR flash. It will be the backup in case anything
    goes wrong.
    
    It has been observed that an image loaded via tftpboot might have
    bitflips. Hence the extra step to create a crc32 checksum to allow to
    compare the checksum with the one from the source file prior to flashing.
    
    In all cases it is necessary to set the following u-boot parameter to an
    empty (whitespace) value, to ensure that the chosen bootargs of the dts
    isn't overwritten or set to bogus - not working - values:
    
      (IPQ) # set bootargs " "
      (IPQ) # set fsbootargs " "
      (IPQ) # saveenv
    
    The sysupgrade image can be installed directly on flash using u-boot (put
    jumper in JP13 (leave JP9 open) to boot from nand):
    
      (IPQ) # set serverip 192.168.1.20
      (IPQ) # set ipaddr 192.168.1.1
    
      (IPQ) # tftpboot 0x42000000 openwrt-ipq806x-compex_wpq864-squashfs-nand-factory.bin
      (IPQ) # crc32 0x42000000 $filesize
    
      (IPQ) # nand erase 0x1340000 0x4000000
      (IPQ) # nand write 0x42000000 0x1340000 $filesize
    
    The initramfs image can be started using:
    
      (IPQ) # set fdt_high 0x48000000
      (IPQ) # tftpboot 0x44000000 openwrt-ipq806x-compex_wpq864-initramfs-fit-uImage.itb
      (IPQ) # bootm 0x44000000
    
    Signed-off-by: Christian Mehlis <christian at m3hlis.de>
    Signed-off-by: Mathias Kresin <dev at kresin.me>
---
 .../linux/ipq806x/base-files/etc/board.d/01_leds   |   4 +
 .../ipq806x/base-files/etc/board.d/02_network      |  15 +-
 .../ipq806x/base-files/lib/upgrade/platform.sh     |   7 +-
 .../arch/arm/boot/dts/qcom-ipq8064-wpq864.dts      | 570 +++++++++++++++++++++
 target/linux/ipq806x/image/Makefile                |  15 +-
 .../patches-4.9/0069-arm-boot-add-dts-files.patch  |   3 +-
 6 files changed, 601 insertions(+), 13 deletions(-)

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 98aac70..a8d9573 100755
--- a/target/linux/ipq806x/base-files/etc/board.d/01_leds
+++ b/target/linux/ipq806x/base-files/etc/board.d/01_leds
@@ -11,6 +11,10 @@ board=$(board_name)
 boardname="${board##*,}"
 
 case "$board" in
+compex,wpq864)
+	ucidef_set_led_usbport "usb" "USB" "wpq864:green:usb" "usb1-port1" "usb2-port1"
+	ucidef_set_led_usbport "pcie-usb" "PCIe USB" "wpq864:green:usb-pcie" "usb3-port1"
+	;;
 netgear,d7800 |\
 netgear,r7500 |\
 netgear,r7500v2 |\
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 e279cdd..9d8af44 100755
--- a/target/linux/ipq806x/base-files/etc/board.d/02_network
+++ b/target/linux/ipq806x/base-files/etc/board.d/02_network
@@ -12,13 +12,7 @@ board_config_update
 board=$(board_name)
 
 case "$board" in
-linksys,ea8500)
-	hw_mac_addr=$(mtd_get_mac_ascii devinfo hw_mac_addr)
-	ucidef_add_switch "switch0" \
-		"0 at eth0" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan"
-	ucidef_set_interface_macaddr "lan" "$hw_mac_addr"
-	ucidef_set_interface_macaddr "wan" "$hw_mac_addr"
-	;;
+compex,wpq864 |\
 netgear,d7800 |\
 netgear,r7500 |\
 netgear,r7500v2 |\
@@ -28,6 +22,13 @@ tplink,vr2600v)
 	ucidef_add_switch "switch0" \
 		"1:lan" "2:lan" "3:lan" "4:lan" "6 at eth1" "5:wan" "0 at eth0"
 	;;
+linksys,ea8500)
+	hw_mac_addr=$(mtd_get_mac_ascii devinfo hw_mac_addr)
+	ucidef_add_switch "switch0" \
+		"0 at eth0" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan"
+	ucidef_set_interface_macaddr "lan" "$hw_mac_addr"
+	ucidef_set_interface_macaddr "wan" "$hw_mac_addr"
+	;;
 qcom,ipq8064-db149)
 	ucidef_set_interface_lan "eth1 eth2 eth3"
 	ucidef_add_switch "switch0" \
diff --git a/target/linux/ipq806x/base-files/lib/upgrade/platform.sh b/target/linux/ipq806x/base-files/lib/upgrade/platform.sh
index c0deeda..4f230ea 100644
--- a/target/linux/ipq806x/base-files/lib/upgrade/platform.sh
+++ b/target/linux/ipq806x/base-files/lib/upgrade/platform.sh
@@ -10,9 +10,7 @@ platform_check_image() {
 
 platform_do_upgrade() {
 	case "$(board_name)" in
-	linksys,ea8500)
-		platform_do_upgrade_linksys "$ARGV"
-		;;
+	compex,wpq864|\
 	netgear,d7800 |\
 	netgear,r7500 |\
 	netgear,r7500v2 |\
@@ -21,6 +19,9 @@ platform_do_upgrade() {
 	zyxel,nbg6817)
 		nand_do_upgrade "$ARGV"
 		;;
+	linksys,ea8500)
+		platform_do_upgrade_linksys "$ARGV"
+		;;
 	tplink,c2600)
 		PART_NAME="os-image:rootfs"
 		MTD_CONFIG_ARGS="-s 0x200000"
diff --git a/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064-wpq864.dts b/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064-wpq864.dts
new file mode 100644
index 0000000..9440de5
--- /dev/null
+++ b/target/linux/ipq806x/files-4.9/arch/arm/boot/dts/qcom-ipq8064-wpq864.dts
@@ -0,0 +1,570 @@
+/*
+ *  BSD LICENSE
+ *
+ *  Copyright (C) 2017 Christian Mehlis <christian at m3hlis.de>
+ *  Copyright (C) 2018 Mathias Kresin <dev at kresin.me>
+ *  All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ *
+ *    1. Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *    2. Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *    3. Neither the names of the copyright holders nor the names of any
+ *       contributors may be used to endorse or promote products derived
+ *       from this software without specific prior written permission.
+ *
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ *  HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "qcom-ipq8064-v1.0.dtsi"
+
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/soc/qcom,tcsr.h>
+
+/ {
+	compatible = "compex,wpq864", "qcom,ipq8064";
+	model = "Compex WPQ864";
+
+	aliases {
+		mdio-gpio0 = &mdio0;
+		serial0 = &gsbi4_serial;
+		ethernet0 = &gmac1;
+		ethernet1 = &gmac0;
+
+		led-boot = &led_pass;
+		led-failsafe = &led_fail;
+		led-running = &led_pass;
+		led-upgrade = &led_pass;
+	};
+
+	chosen {
+		linux,stdout-path = "serial0:115200n8";
+	};
+
+	soc {
+		rpm at 108000  {
+			pinctrl-0 = <&rpm_pins>;
+			pinctrl-names = "default";
+		};
+
+		nand at 1ac00000 {
+			status = "okay";
+
+			pinctrl-0 = <&nand_pins>;
+			pinctrl-names = "default";
+
+			mt29f2g08abbeah4 at 0 {
+				compatible = "qcom,nandcs";
+
+				reg = <0>;
+
+				nand-ecc-strength = <4>;
+				nand-bus-width = <8>;
+				nand-ecc-step-size = <512>;
+
+				partitions {
+					compatible = "fixed-partitions";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					SBL1 at 0 {
+						label = "SBL1";
+						reg = <0x0000000 0x0040000>;
+						read-only;
+					};
+
+					MIBIB at 40000 {
+						label = "MIBIB";
+						reg = <0x0040000 0x0140000>;
+						read-only;
+					};
+
+					SBL2 at 180000 {
+						label = "SBL2";
+						reg = <0x0180000 0x0140000>;
+						read-only;
+					};
+
+					SBL3 at 2c0000 {
+						label = "SBL3";
+						reg = <0x02c0000 0x0280000>;
+						read-only;
+					};
+
+					DDRCONFIG at 540000 {
+						label = "DDRCONFIG";
+						reg = <0x0540000 0x0120000>;
+						read-only;
+					};
+
+					SSD at 660000 {
+						label = "SSD";
+						reg = <0x0660000 0x0120000>;
+						read-only;
+					};
+
+					TZ at 780000 {
+						label = "TZ";
+						reg = <0x0780000 0x0280000>;
+						read-only;
+					};
+
+					RPM at a00000 {
+						label = "RPM";
+						reg = <0x0a00000 0x0280000>;
+						read-only;
+					};
+
+					APPSBL at c80000 {
+						label = "APPSBL";
+						reg = <0x0c80000 0x0500000>;
+						read-only;
+					};
+
+					APPSBLENV at 1180000 {
+						label = "APPSBLENV";
+						reg = <0x1180000 0x0080000>;
+					};
+
+					ART at 1200000 {
+						label = "ART";
+						reg = <0x1200000 0x0140000>;
+					};
+
+					ubi at 1340000 {
+						label = "ubi";
+						reg = <0x1340000 0x4000000>;
+					};
+
+					BOOTCONFIG at 1340000 {
+						label = "BOOTCONFIG";
+						reg = <0x5340000 0x0060000>;
+					};
+
+					SBL2-1 at 53a0000- {
+						label = "SBL2_1";
+						reg = <0x53a0000 0x0140000>;
+						read-only;
+					};
+
+					SBL3-1 at 54e0000 {
+						label = "SBL3_1";
+						reg = <0x54e0000 0x0280000>;
+						read-only;
+					};
+
+					DDRCONFIG-1 at 5760000 {
+						label = "DDRCONFIG_1";
+						reg = <0x5760000 0x0120000>;
+						read-only;
+					};
+
+					SSD-1 at 5880000 {
+						label = "SSD_1";
+						reg = <0x5880000 0x0120000>;
+						read-only;
+					};
+
+					TZ-1 at 59a0000 {
+						label = "TZ_1";
+						reg = <0x59a0000 0x0280000>;
+						read-only;
+					};
+
+					RPM-1 at 5c20000 {
+						label = "RPM_1";
+						reg = <0x5c20000 0x0280000>;
+						read-only;
+					};
+
+					BOOTCONFIG1 at 5ea0000 {
+						label = "BOOTCONFIG1";
+						reg = <0x5ea0000 0x0060000>;
+					};
+
+					APPSBL-1 at 5f00000 {
+						label = "APPSBL_1";
+						reg = <0x5f00000 0x0500000>;
+						read-only;
+					};
+
+					ubi-1 at 6400000 {
+						label = "ubi_1";
+						reg = <0x6400000 0x4000000>;
+					};
+
+					unused at a400000 {
+						label = "unused";
+						reg = <0xa400000 0x5c00000>;
+					};
+				};
+			};
+		};
+	};
+
+	mdio0: mdio {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		compatible = "virtual,mdio-gpio";
+
+		pinctrl-0 = <&mdio0_pins>;
+		pinctrl-names = "default";
+
+		gpios = <&qcom_pinmux 1 GPIO_ACTIVE_HIGH &qcom_pinmux 0 GPIO_ACTIVE_HIGH>;
+
+		ethernet-phy at 0 {
+			device_type = "ethernet-phy";
+			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 */
+				>;
+		};
+
+		ethernet-phy at 4 {
+			device_type = "ethernet-phy";
+			reg = <4>;
+		};
+	};
+
+	gpio-leds {
+		compatible = "gpio-leds";
+
+		pinctrl-0 = <&led_pins>;
+		pinctrl-names = "default";
+
+		rss4 {
+			label = "wpq864:green:rss4";
+			gpios = <&qcom_pinmux 23 GPIO_ACTIVE_HIGH>;
+		};
+
+		rss3 {
+			label = "wpq864:green:rss3";
+			gpios = <&qcom_pinmux 24 GPIO_ACTIVE_HIGH>;
+			default-state = "keep";
+		};
+
+		rss2 {
+			label = "wpq864:orange:rss2";
+			gpios = <&qcom_pinmux 25 GPIO_ACTIVE_HIGH>;
+		};
+
+		rss1 {
+			label = "wpq864:red:rss1";
+			gpios = <&qcom_pinmux 22 GPIO_ACTIVE_HIGH>;
+		};
+
+		led_pass: pass {
+			label = "wpq864:green:pass";
+			gpios = <&qcom_pinmux 53 GPIO_ACTIVE_HIGH>;
+		};
+
+		led_fail: fail {
+			label = "wpq864:green:fail";
+			gpios = <&qcom_pinmux 9 GPIO_ACTIVE_HIGH>;
+		};
+
+		usb {
+			label = "wpq864:green:usb";
+			gpios = <&qcom_pinmux 7 GPIO_ACTIVE_HIGH>;
+		};
+
+		usb-pcie {
+			label = "wpq864:green:usb-pcie";
+			gpios = <&qcom_pinmux 8 GPIO_ACTIVE_HIGH>;
+		};
+	};
+
+	gpio-keys {
+		compatible = "gpio-keys";
+
+		pinctrl-0 = <&button_pins>;
+		pinctrl-names = "default";
+
+		reset {
+			label = "reset";
+			gpios = <&qcom_pinmux 54 GPIO_ACTIVE_LOW>;
+			linux,code = <KEY_RESTART>;
+		};
+	};
+
+	beeper {
+		compatible = "gpio-beeper";
+
+		pinctrl-0 = <&beeper_pins>;
+		pinctrl-names = "default";
+
+		gpios = <&qcom_pinmux 55 GPIO_ACTIVE_HIGH>;
+	};
+};
+
+&adm_dma {
+	status = "okay";
+};
+
+&gmac1 {
+	status = "okay";
+
+	pinctrl-0 = <&rgmii2_pins>;
+	pinctrl-names = "default";
+
+	phy-mode = "rgmii";
+	qcom,id = <1>;
+
+	fixed-link {
+		speed = <1000>;
+		full-duplex;
+	};
+};
+
+&gmac2 {
+	status = "okay";
+
+	phy-mode = "sgmii";
+	qcom,id = <2>;
+
+	fixed-link {
+		speed = <1000>;
+		full-duplex;
+	};
+};
+
+&gsbi4 {
+	status = "okay";
+	qcom,mode = <GSBI_PROT_I2C_UART>;
+};
+
+&gsbi4_serial {
+	status = "okay";
+
+	pinctrl-0 = <&uart0_pins>;
+	pinctrl-names = "default";
+};
+
+&gsbi5 {
+	status = "okay";
+
+	qcom,mode = <GSBI_PROT_SPI>;
+
+	spi at 1a280000 {
+		status = "okay";
+
+		pinctrl-0 = <&spi_pins>;
+		pinctrl-names = "default";
+
+		cs-gpios = <&qcom_pinmux 20 GPIO_ACTIVE_HIGH>;
+
+		s25fl256s1 at 0 {
+			compatible = "jedec,spi-nor";
+			#address-cells = <1>;
+			#size-cells = <1>;
+			reg = <0>;
+			spi-max-frequency = <50000000>;
+		};
+	};
+};
+
+&hs_phy_0 {		/* USB3 port 0 HS phy */
+	status = "okay";
+};
+
+&hs_phy_1 {		/* USB3 port 1 HS phy */
+	status = "okay";
+};
+
+&ss_phy_0 {		/* USB3 port 0 SS phy */
+	status = "okay";
+
+	rx_eq = <2>;
+	tx_deamp_3_5db = <32>;
+	mpll = <160>;
+};
+
+&ss_phy_1 {		/* USB3 port 1 SS phy */
+	status = "okay";
+
+	rx_eq = <2>;
+	tx_deamp_3_5db = <32>;
+	mpll = <160>;
+};
+
+&pcie0 {
+	status = "okay";
+
+	/delete-property/ pinctrl-0;
+	/delete-property/ pinctrl-names;
+	/delete-property/ perst-gpios;
+};
+
+&pcie1 {
+	status = "okay";
+};
+
+&pcie2 {
+	status = "okay";
+
+	/delete-property/ pinctrl-0;
+	/delete-property/ pinctrl-names;
+	/delete-property/ perst-gpios;
+};
+
+&qcom_pinmux {
+	pinctrl-names = "default";
+	pinctrl-0 = <&state_default>;
+
+	state_default: pinctrl0 {
+		pcie0_pcie2_perst {
+			pins = "gpio3";
+			function = "gpio";
+			drive-strength = <2>;
+			bias-disable;
+			output-high;
+		};
+	};
+
+	led_pins: led_pins {
+		mux {
+			pins = "gpio7", "gpio8", "gpio9",  "gpio22",
+			       "gpio23", "gpio24", "gpio25", "gpio53";
+			function = "gpio";
+			drive-strength = <2>;
+			bias-pull-up;
+		};
+	};
+
+	button_pins: button_pins {
+		mux {
+			pins = "gpio54";
+			function = "gpio";
+			drive-strength = <2>;
+			bias-pull-up;
+		};
+	};
+
+	beeper_pins: beeper_pins {
+		mux {
+			pins = "gpio55";
+			function = "gpio";
+			drive-strength = <2>;
+			bias-pull-up;
+		};
+	};
+
+	rpm_pins: rpm_pins {
+		mux {
+			pins = "gpio12", "gpio13";
+			function = "gsbi4";
+			drive-strength = <10>;
+			bias-disable;
+		};
+	};
+
+	uart0_pins: uart0_pins {
+		mux {
+			pins = "gpio10", "gpio11";
+			function = "gsbi4";
+			drive-strength = <10>;
+			bias-disable;
+		};
+	};
+
+	spi_pins: spi_pins {
+		mux {
+			pins = "gpio18", "gpio19";
+			function = "gsbi5";
+			drive-strength = <10>;
+			bias-pull-down;
+		};
+
+		clk {
+			pins = "gpio21";
+			function = "gsbi5";
+			drive-strength = <12>;
+			bias-pull-down;
+		};
+
+		cs {
+			pins = "gpio20";
+			function = "gpio";
+			drive-strength = <10>;
+			bias-pull-up;
+		};
+	};
+
+	nand_pins: nand_pins {
+		mux {
+			pins = "gpio34", "gpio35", "gpio36", "gpio37",
+			       "gpio38", "gpio39", "gpio40", "gpio41",
+			       "gpio42", "gpio43", "gpio44", "gpio45",
+			       "gpio46", "gpio47";
+			function = "nand";
+			drive-strength = <10>;
+			bias-disable;
+		};
+
+		pullups {
+			pins = "gpio39";
+			bias-pull-up;
+		};
+
+		hold {
+			pins = "gpio40", "gpio41", "gpio42", "gpio43",
+			       "gpio44", "gpio45", "gpio46", "gpio47";
+			bias-bus-hold;
+		};
+	};
+
+	mdio0_pins: mdio0_pins {
+		mux {
+			pins = "gpio0", "gpio1";
+			function = "gpio";
+			drive-strength = <8>;
+			bias-disable;
+		};
+	};
+
+	rgmii2_pins: rgmii2_pins {
+		mux {
+			pins = "gpio27", "gpio28", "gpio29", "gpio30",
+			       "gpio31", "gpio32", "gpio51", "gpio52",
+			       "gpio59", "gpio60", "gpio61", "gpio62";
+			function = "rgmii2";
+			drive-strength = <8>;
+			bias-disable;
+		};
+	};
+};
+
+&usb3_0 {
+	status = "okay";
+};
+
+
+&usb3_1 {
+	status = "okay";
+};
+
+&tcsr {
+	qcom,usb-ctrl-select = <TCSR_USB_SELECT_USB3_DUAL>;
+};
diff --git a/target/linux/ipq806x/image/Makefile b/target/linux/ipq806x/image/Makefile
index d41679f..73b6ca8 100644
--- a/target/linux/ipq806x/image/Makefile
+++ b/target/linux/ipq806x/image/Makefile
@@ -34,8 +34,8 @@ endef
 
 define Device/UbiFit
 	KERNEL_IN_UBI := 1
-	IMAGES := nand-factory.ubi nand-sysupgrade.bin
-	IMAGE/nand-factory.ubi := append-ubi
+	IMAGES := nand-factory.bin nand-sysupgrade.bin
+	IMAGE/nand-factory.bin := append-ubi
 	IMAGE/nand-sysupgrade.bin := sysupgrade-tar | append-metadata
 endef
 
@@ -73,6 +73,17 @@ define Device/ZyXELImage
 	IMAGE/mmcblk0p4-kernel.bin := append-kernel
 endef
 
+define Device/compex_wpq864
+	$(call Device/FitImage)
+	$(call Device/UbiFit)
+	BLOCKSIZE := 128k
+	PAGESIZE := 2048
+	DEVICE_DTS := qcom-ipq8064-wpq864
+	DEVICE_TITLE := Compex WPQ864
+	DEVICE_PACKAGES := kmod-gpio-beeper
+endef
+TARGET_DEVICES += compex_wpq864
+
 define Device/linksys_ea8500
 	$(call Device/LegacyImage)
 	DEVICE_DTS := qcom-ipq8064-ea8500
diff --git a/target/linux/ipq806x/patches-4.9/0069-arm-boot-add-dts-files.patch b/target/linux/ipq806x/patches-4.9/0069-arm-boot-add-dts-files.patch
index bac7c6d..5b19c1d 100644
--- a/target/linux/ipq806x/patches-4.9/0069-arm-boot-add-dts-files.patch
+++ b/target/linux/ipq806x/patches-4.9/0069-arm-boot-add-dts-files.patch
@@ -10,7 +10,7 @@ Signed-off-by: John Crispin <john at phrozen.org>
 
 --- a/arch/arm/boot/dts/Makefile
 +++ b/arch/arm/boot/dts/Makefile
-@@ -618,6 +618,14 @@ dtb-$(CONFIG_ARCH_QCOM) += \
+@@ -618,6 +618,15 @@ dtb-$(CONFIG_ARCH_QCOM) += \
  	qcom-apq8084-mtp.dtb \
  	qcom-ipq4019-ap.dk01.1-c1.dtb \
  	qcom-ipq8064-ap148.dtb \
@@ -20,6 +20,7 @@ Signed-off-by: John Crispin <john at phrozen.org>
 +	qcom-ipq8064-ea8500.dtb \
 +	qcom-ipq8064-r7500.dtb \
 +	qcom-ipq8064-r7500v2.dtb \
++	qcom-ipq8064-wpq864.dtb \
 +	qcom-ipq8065-nbg6817.dtb \
 +	qcom-ipq8065-r7800.dtb \
  	qcom-msm8660-surf.dtb \



More information about the lede-commits mailing list