[OpenWrt-Devel] [Patch] ipq806x: add support for Netgear D7800

Tathagata Das tathagata at alumnux.com
Wed Dec 23 08:12:00 EST 2015


Hi John,

Please check the content of the patch below.


----------------------------------------------
Index: trunk/target/linux/ipq806x/image/Makefile
===================================================================
--- trunk/target/linux/ipq806x/image/Makefile	(revision 47890)
+++ trunk/target/linux/ipq806x/image/Makefile	(working copy)
@@ -121,6 +121,17 @@
 	BOARD_NAME := r7500
 endef
 
-TARGET_DEVICES += AP148 AP148-legacy DB149 R7500
+define Device/D7800
+	$(call Device/DniImage)
+	DEVICE_DTS := qcom-ipq8064-d7800
+	KERNEL_SIZE := 2097152 
+	NETGEAR_BOARD_ID := D7800
+	NETGEAR_HW_ID := 29764958+0+128+512+4x4+4x4 
+	BLOCKSIZE := 128KiB
+	PAGESIZE := 2048
+	BOARD_NAME := d7800
+endef
 
+TARGET_DEVICES += AP148 AP148-legacy DB149 R7500 D7800
+
 $(eval $(call BuildImage))
Index: trunk/target/linux/ipq806x/profiles/netgear.mk
===================================================================
--- trunk/target/linux/ipq806x/profiles/netgear.mk	(revision 47890)
+++ trunk/target/linux/ipq806x/profiles/netgear.mk	(working copy)
@@ -17,4 +17,18 @@
 define Profile/R7500/Description
 	Package set for the Netgear Nighthawk X4 R7500.
 endef
+
+define Profile/D7800
+	NAME:=Netgear Nighthawk X4 D7800
+	PACKAGES:= \
+		kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-ledtrig-usbdev \
+		kmod-usb3 kmod-usb-dwc3-qcom kmod-usb-phy-qcom-dwc3 \
+		kmod-ath10k wpad-mini ath10k-firmware-qca99x0
+endef
+
+define Profile/D7800/Description
+	Package set for the Netgear Nighthawk X4 D7800.
+endef
+
 $(eval $(call Profile,R7500))
+$(eval $(call Profile,D7800))
Index: trunk/target/linux/ipq806x/base-files/lib/upgrade/platform.sh
===================================================================
--- trunk/target/linux/ipq806x/base-files/lib/upgrade/platform.sh
(revision 47890)
+++ trunk/target/linux/ipq806x/base-files/lib/upgrade/platform.sh
(working copy)
@@ -7,7 +7,8 @@
 
 	case "$board" in
 	AP148 |\
-	r7500)
+	r7500 |\
+	d7800)
 		nand_do_platform_check $board $1
 		return $?;
 		;;
@@ -21,7 +22,8 @@
 
 	case "$board" in
 	AP148 |\
-	r7500)
+	r7500 |\
+	d7800)
 		nand_do_upgrade "$1"
 		;;
 	esac
Index: trunk/target/linux/ipq806x/base-files/lib/ipq806x.sh
===================================================================
--- trunk/target/linux/ipq806x/base-files/lib/ipq806x.sh	(revision
47890)
+++ trunk/target/linux/ipq806x/base-files/lib/ipq806x.sh	(working
copy)
@@ -23,6 +23,9 @@
 	*"R7500")
 		name="r7500"
 		;;
+	*"D7800")
+		name="d7800"
+		;;
 	esac
 
 	[ -z "$name" ] && name="unknown"
Index: trunk/target/linux/ipq806x/base-files/etc/board.d/01_leds
===================================================================
--- trunk/target/linux/ipq806x/base-files/etc/board.d/01_leds	(revision
47890)
+++ trunk/target/linux/ipq806x/base-files/etc/board.d/01_leds	(working
copy)
@@ -11,7 +11,8 @@
 board=$(ipq806x_board_name)
 
 case "$board" in
-r7500)
+r7500 |\
+d7800)
 	ucidef_set_led_usbdev "usb1" "USB 1" "r7500:white:usb1" "1-1"
 	ucidef_set_led_usbdev "usb2" "USB 2" "r7500:white:usb3" "3-1"
 	ucidef_set_led_netdev "wan" "WAN" "r7500:white:wan" "eth0"
Index: trunk/target/linux/ipq806x/base-files/etc/board.d/02_network
===================================================================
--- trunk/target/linux/ipq806x/base-files/etc/board.d/02_network
(revision 47890)
+++ trunk/target/linux/ipq806x/base-files/etc/board.d/02_network
(working copy)
@@ -13,7 +13,8 @@
 
 case "$board" in
 ap148 |\
-r7500)
+r7500 |\
+d7800)
 	ucidef_add_switch "switch0" \
 		"1:lan" "2:lan" "3:lan" "4:lan" "6 at eth1" "5:wan" "0 at eth0"
 	;;
Index:
trunk/target/linux/ipq806x/patches-3.18/801-ARM-qcom-add-Netgear-Nighthawk-X
4-D7800-device-tree.patch
===================================================================
---
trunk/target/linux/ipq806x/patches-3.18/801-ARM-qcom-add-Netgear-Nighthawk-X
4-D7800-device-tree.patch	(revision 0)
+++
trunk/target/linux/ipq806x/patches-3.18/801-ARM-qcom-add-Netgear-Nighthawk-X
4-D7800-device-tree.patch	(revision 0)
@@ -0,0 +1,381 @@
+--- a/arch/arm/boot/dts/Makefile	2015-09-22 18:30:09.033530282 +0530
++++ b/arch/arm/boot/dts/Makefile	2015-09-23 17:06:44.892947581 +0530
+@@ -362,6 +362,7 @@
+ 	qcom-ipq8064-ap148.dtb \
+ 	qcom-ipq8064-db149.dtb \
+ 	qcom-ipq8064-r7500.dtb \
++	qcom-ipq8064-d7800.dtb \
+ 	qcom-msm8660-surf.dtb \
+ 	qcom-msm8960-cdp.dtb \
+ 	qcom-msm8974-sony-xperia-honami.dtb
+--- a/arch/arm/boot/dts/qcom-ipq8064-d7800.dts	1970-01-01
05:30:00.000000000 +0530
++++ b/arch/arm/boot/dts/qcom-ipq8064-d7800.dts	2015-09-23
17:06:45.336947567 +0530
+@@ -0,0 +1,368 @@
++#include "qcom-ipq8064-v1.0.dtsi"
++
++#include <dt-bindings/input/input.h>
++
++/ {
++	model = "Netgear Nighthawk X4 D7800";
++	compatible = "netgear,d7800", "qcom,ipq8064";
++
++	memory at 0 {
++		reg = <0x42000000 0xe000000>;
++		device_type = "memory";
++	};
++
++	reserved-memory {
++		#address-cells = <1>;
++		#size-cells = <1>;
++		ranges;
++		rsvd at 41200000 {
++			reg = <0x41200000 0x300000>;
++			no-map;
++		};
++	};
++
++	aliases {
++		serial0 = &uart4;
++		mdio-gpio0 = &mdio0;
++	};
++
++	chosen {
++		bootargs = "rootfstype=squashfs noinitrd";
++		linux,stdout-path = "serial0:115200n8";
++	};
++
++	soc {
++		pinmux at 800000 {
++			i2c4_pins: i2c4_pinmux {
++				pins = "gpio12", "gpio13";
++				function = "gsbi4";
++				bias-disable;
++			};
++
++			pcie0_pins: pcie0_pinmux {
++				mux {
++					pins = "gpio3";
++					function = "pcie1_rst";
++					drive-strength = <12>;
++					bias-disable;
++				};
++			};
++
++			pcie1_pins: pcie1_pinmux {
++				mux {
++					pins = "gpio48";
++					function = "pcie2_rst";
++					drive-strength = <12>;
++					bias-disable;
++				};
++			};
++
++			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;
++				};
++			};
++		};
++
++		gsbi at 16300000 {
++			qcom,mode = <GSBI_PROT_I2C_UART>;
++			status = "ok";
++			serial at 16340000 {
++				status = "ok";
++			};
++			/*
++			 * The i2c device on gsbi4 should not be enabled.
++			 * On ipq806x designs gsbi4 i2c is meant for
exclusive
++			 * RPM usage. Turning this on in kernel manifests as
++			 * i2c failure for the RPM.
++			 */
++		};
++
++		sata-phy at 1b400000 {
++			status = "ok";
++		};
++
++		sata at 29000000 {
++			status = "ok";
++		};
++
++		phy at 100f8800 {		/* USB3 port 1 HS phy */
++			status = "ok";
++		};
++
++		phy at 100f8830 {		/* USB3 port 1 SS phy */
++			status = "ok";
++		};
++
++		phy at 110f8800 {		/* USB3 port 0 HS phy */
++			status = "ok";
++		};
++
++		phy at 110f8830 {		/* USB3 port 0 SS phy */
++			status = "ok";
++		};
++
++		usb30 at 0 {
++			status = "ok";
++		};
++
++		usb30 at 1 {
++			status = "ok";
++		};
++
++		pcie0: pci at 1b500000 {
++			status = "ok";
++			reset-gpio = <&qcom_pinmux 3 0>;
++			pinctrl-0 = <&pcie0_pins>;
++			pinctrl-names = "default";
++		};
++
++		pcie1: pci at 1b700000 {
++			status = "ok";
++			reset-gpio = <&qcom_pinmux 48 0>;
++			pinctrl-0 = <&pcie1_pins>;
++			pinctrl-names = "default";
++		};
++
++		nand at 1ac00000 {
++			status = "ok";
++
++			pinctrl-0 = <&nand_pins>;
++			pinctrl-names = "default";
++
++			nand-ecc-strength = <4>;
++			nand-bus-width = <8>;
++
++			#address-cells = <1>;
++			#size-cells = <1>;
++
++			qcadata at 0 {
++				label = "qcadata";
++				reg = <0x0000000 0x0c80000>;
++				read-only;
++			};
++
++			APPSBL at c80000 {
++				label = "APPSBL";
++				reg = <0x0c80000 0x0500000>;
++				read-only;
++			};
++
++			APPSBLENV at 1180000 {
++				label = "APPSBLENV";
++				reg = <0x1180000 0x0080000>;
++				read-only;
++			};
++
++			art: art at 1200000 {
++				label = "art";
++				reg = <0x1200000 0x0140000>;
++				read-only;
++			};
++
++			artbak: art at 1340000 {
++				label = "artbak";
++				reg = <0x1340000 0x0140000>;
++				read-only;
++			};
++
++			kernel at 1480000 {
++				label = "kernel";
++				reg = <0x1480000 0x0200000>;
++			};
++
++			ubi at 1680000 {
++				label = "ubi";
++				reg = <0x1680000 0x1E00000>;
++			};
++
++			netgear at 3480000 {
++				label = "netgear";
++				reg = <0x3480000 0x4480000>;
++				read-only;
++			};
++
++			reserve at 7900000 {
++				label = "reserve";
++				reg = <0x7900000 0x0700000>;
++				read-only;
++			};
++
++			firmware at 1480000 {
++				label = "firmware";
++				reg = <0x1480000 0x2000000>;
++			};
++
++		};
++
++		mdio0: mdio {
++			compatible = "virtual,mdio-gpio";
++			#address-cells = <1>;
++			#size-cells = <0>;
++			gpios = <&qcom_pinmux 1 0 &qcom_pinmux 0 0>;
++			pinctrl-0 = <&mdio0_pins>;
++			pinctrl-names = "default";
++
++			phy0: 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 0xaa545     /* MAC_POWER_SEL
*/
++					0x000e0 0xc74164de  /* SGMII_CTRL */
++					0x0007c 0x4e        /* PORT0_STATUS
*/
++					0x00094 0x4e        /* PORT6_STATUS
*/
++					>;
++			};
++
++			phy4: ethernet-phy at 4 {
++				device_type = "ethernet-phy";
++				reg = <4>;
++			};
++		};
++
++		gmac1: ethernet at 37200000 {
++			status = "ok";
++			phy-mode = "rgmii";
++			phy-handle = <&phy4>;
++			qcom,id = <1>;
++
++			pinctrl-0 = <&rgmii2_pins>;
++			pinctrl-names = "default";
++
++			mtd-mac-address = <&art 6>;
++		};
++
++		gmac2: ethernet at 37400000 {
++			status = "ok";
++			phy-mode = "sgmii";
++			qcom,id = <2>;
++
++			mtd-mac-address = <&art 0>;
++
++			fixed-link {
++				speed = <1000>;
++				full-duplex;
++			};
++		};
++	};
++
++	gpio-keys {
++		compatible = "gpio-keys";
++
++		wifi {
++			label = "wifi";
++			gpios = <&qcom_pinmux 6 1>;
++			linux,code = <KEY_WLAN>;
++		};
++
++		reset {
++			label = "reset";
++			gpios = <&qcom_pinmux 54 1>;
++			linux,code = <KEY_RESTART>;
++		};
++
++		wps {
++			label = "wps";
++			gpios = <&qcom_pinmux 65 1>;
++			linux,code = <KEY_WPS_BUTTON>;
++		};
++	};
++
++	gpio-leds {
++		compatible = "gpio-leds";
++
++		usb1 {
++			label = "d7800:amber:usb1";
++			gpios = <&qcom_pinmux 7 0>;
++		};
++
++		usb3 {
++			label = "d7800:amber:usb3";
++			gpios = <&qcom_pinmux 8 0>;
++		};
++
++		status {
++			label = "d7800:amber:status";
++			gpios = <&qcom_pinmux 9 0>;
++		};
++
++		internet {
++			label = "d7800:white:internet";
++			gpios = <&qcom_pinmux 22 0>;
++		};
++
++		wan {
++			label = "d7800:white:wan";
++			gpios = <&qcom_pinmux 23 0>;
++		};
++
++		wps {
++			label = "d7800:white:wps";
++			gpios = <&qcom_pinmux 24 0>;
++		};
++
++		esata {
++			label = "d7800:white:esata";
++			gpios = <&qcom_pinmux 26 0>;
++		};
++
++		power {
++			label = "d7800:white:power";
++			gpios = <&qcom_pinmux 53 0>;
++			default-state = "on";
++		};
++
++		rfkill {
++			label = "d7800:white:rfkill";
++			gpios = <&qcom_pinmux 64 0>;
++		};
++
++		wifi5g {
++			label = "d7800:white:wifi5g";
++			gpios = <&qcom_pinmux 67 0>;
++		};
++	};
++};
++
++&adm_dma {
++	status = "ok";
++};

Regards,
Tathagata


-----Original Message-----
From: John Crispin [mailto:blogic at openwrt.org] 
Sent: 23 December 2015 18:34
To: openwrt-devel at lists.openwrt.org; Tathagata Das
Subject: Re: [OpenWrt-Devel] [Patch] ipq806x: add support for Netgear D7800

Hi,

you sent the patch as an attachment. because of this patchwork did not pick
it up. could you please resend with the patch inline rather than attached.

	John

On 14/12/2015 10:37, Tathagata Das wrote:
> Add support for the Netgear D7800 and build appropariate sysupgrade 
> and factory images.
> 
> Known issues:
> . USB ports are not working
> . DSL is not added
> 
> Signed-off-by: Tathagata Das <tathagata at alumnux.com>
> 
> 
> 
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel at lists.openwrt.org
> https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
> 
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel



More information about the openwrt-devel mailing list