[LEDE-DEV] SOC: Broadcom BCM6368 (2 * Broadcom BMIPS4350 V3.1 / 400 MHz) Flash size: 32MB (split 16/16 dual boot) RAM size: 64MB Wireless: BCM432x 802.11a/b/g/n(pci) Ethernet: Broadcom BCM53115 USB: 1 x USB 2.0

Message ID mailman.11670.1487528906.26984.lede-dev@lists.infradead.org
State Accepted
Delegated to: Jonas Gorski
Headers show

Commit Message

Christian Lamparter via Lede-dev Feb. 19, 2017, 6:28 p.m.
The sender domain has a DMARC Reject/Quarantine policy which disallows
sending mailing list messages using the original "From" header.

To mitigate this problem, the original message has been wrapped
automatically by the mailing list software.
Known issues:
 - Unable to detect 53115 switch attached to MDIO. Not supported
 - No support for the cable port

More info on the device and the research can be found at:
http://www.actiontec.com/212.html

Same FCC ID as:
https://wikidevi.com/wiki/Actiontec_V1000H_(Telus)

Signed-off-by: Anthony Sepa <anthonysepa@yahoo.ca>
---
 .../linux/brcm63xx/base-files/etc/board.d/01_leds  |  3 +
 .../brcm63xx/base-files/etc/board.d/02_network     |  1 +
 target/linux/brcm63xx/base-files/etc/diag.sh       |  3 +
 .../base-files/etc/uci-defaults/09_fix_crc         |  1 +
 target/linux/brcm63xx/base-files/lib/brcm63xx.sh   |  3 +
 target/linux/brcm63xx/dts/r1000h.dts               | 93 ++++++++++++++++++++++
 target/linux/brcm63xx/image/bcm63xx.mk             | 16 ++++
 .../brcm63xx/patches-4.4/578-board_R1000H.patch    | 50 ++++++++++++
 8 files changed, 170 insertions(+)
 create mode 100644 target/linux/brcm63xx/dts/r1000h.dts
 create mode 100644 target/linux/brcm63xx/patches-4.4/578-board_R1000H.patch

Patch

diff --git a/target/linux/brcm63xx/base-files/etc/board.d/01_leds b/target/linux/brcm63xx/base-files/etc/board.d/01_leds
index 7d208cc..347de56 100755
--- a/target/linux/brcm63xx/base-files/etc/board.d/01_leds
+++ b/target/linux/brcm63xx/base-files/etc/board.d/01_leds
@@ -66,6 +66,9 @@  livebox1)
 	ucidef_set_led_netdev "wan" "WAN" "Livebox1:red:adsl" "eth1"
 	ucidef_set_led_netdev "wlan0" "WIFI" "Livebox1:red:wifi" "wlan0"
 	;;
+r1000h)
+	ucidef_set_led_usbport "usb" "USB" "R1000H:green:usb" "usb1-port1" "usb2-port1"
+	;;
 r5010un_v2)
 	ucidef_set_led_usbdev "usb" "USB" "R5010UNv2:green:usb" "1-1"
 	;;
diff --git a/target/linux/brcm63xx/base-files/etc/board.d/02_network b/target/linux/brcm63xx/base-files/etc/board.d/02_network
index ff5fc7a..d618ce3 100755
--- a/target/linux/brcm63xx/base-files/etc/board.d/02_network
+++ b/target/linux/brcm63xx/base-files/etc/board.d/02_network
@@ -12,6 +12,7 @@  case "$(brcm63xx_board_name)" in
 
 cvg834g |\
 evg2000 |\
+r1000h |\
 rta770bw |\
 rta770w |\
 spw303v |\
diff --git a/target/linux/brcm63xx/base-files/etc/diag.sh b/target/linux/brcm63xx/base-files/etc/diag.sh
index df1d616..3775691 100644
--- a/target/linux/brcm63xx/base-files/etc/diag.sh
+++ b/target/linux/brcm63xx/base-files/etc/diag.sh
@@ -114,6 +114,9 @@  set_state() {
 	p870hw-51a_v2)
 		status_led="P870HW-51a:green:power"
 		;;
+	r1000h)
+		status_led="R1000H:green:power"
+		;;
 	r5010un_v2)
 		status_led="R5010UNv2:green:power"
 		;;
diff --git a/target/linux/brcm63xx/base-files/etc/uci-defaults/09_fix_crc b/target/linux/brcm63xx/base-files/etc/uci-defaults/09_fix_crc
index 650db9d..57bf6e2 100644
--- a/target/linux/brcm63xx/base-files/etc/uci-defaults/09_fix_crc
+++ b/target/linux/brcm63xx/base-files/etc/uci-defaults/09_fix_crc
@@ -25,6 +25,7 @@  case "$(brcm63xx_board_name)" in
 	hg622 |\
 	magic |\
 	p870hw-51a_v2 |\
+	r1000h |\
 	r5010un_v2 |\
 	rta770bw |\
 	rta770w |\
diff --git a/target/linux/brcm63xx/base-files/lib/brcm63xx.sh b/target/linux/brcm63xx/base-files/lib/brcm63xx.sh
index bceba8f..2d76b65 100755
--- a/target/linux/brcm63xx/base-files/lib/brcm63xx.sh
+++ b/target/linux/brcm63xx/base-files/lib/brcm63xx.sh
@@ -21,6 +21,9 @@  brcm63xx_dt_detect() {
 	"ADB P.DG AV4202N")
 		board_name="av4202n"
 		;;
+	"Actiontec R1000H")
+		board_name="r1000h"
+		;;
 	"Alcatel RG100A")
 		board_name="rg100a"
 		;;
diff --git a/target/linux/brcm63xx/dts/r1000h.dts b/target/linux/brcm63xx/dts/r1000h.dts
new file mode 100644
index 0000000..adb827f
--- /dev/null
+++ b/target/linux/brcm63xx/dts/r1000h.dts
@@ -0,0 +1,93 @@ 
+/dts-v1/;
+
+#include "bcm6368.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+	model = "Actiontec R1000H";
+	compatible = "actiontec,r1000h", "brcm,bcm6368";
+
+	chosen {
+		bootargs = "root=/dev/mtdblock2 rootfstype=squashfs noinitrd console=ttyS0,115200";
+	};
+
+	gpio-keys-polled {
+		compatible = "gpio-keys-polled";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		poll-interval = <20>;
+		debounce-interval = <60>;
+
+		reset {
+			label = "reset";
+			gpios = <&gpio1 2 1>;
+			linux,code = <KEY_RESTART>;
+		};
+
+		wps {
+			label = "wps";
+			gpios = <&gpio1 3 1>;
+			linux,code = <KEY_WPS_BUTTON>;
+		};
+	};
+
+	gpio-leds {
+		compatible = "gpio-leds";
+
+		inet_green {
+			label = "R1000H:green:inet";
+			gpios = <&gpio0 5 0>;
+		};
+
+		usb_green {
+			label = "R1000H:green:usb";
+			gpios = <&gpio0 21 1>;
+		};
+
+		power_green {
+			label = "R1000H:green:power";
+			gpios = <&gpio0 22 0>;
+			default-state = "on";
+		};
+
+		wps_green {
+			label = "R1000H:green:wps";
+			gpios = <&gpio0 23 1>;
+		};
+
+		power_red {
+			label = "R1000H:red:power";
+			gpios = <&gpio0 24 0>;
+		};
+
+		wps_red {
+			label = "R1000H:red:wps";
+			gpios = <&gpio0 30 1>;
+		};
+
+		inet_red {
+			label = "R1000H:red:inet";
+			gpios = <&gpio0 31 0>;
+		};
+	};
+};
+
+&pflash {
+	status = "ok";
+
+	linux,part-probe = "bcm63xxpart";
+
+	CFE@0 {
+		reg = <0x000000 0x020000>;
+		read-only;
+	};
+
+	linux@20000 {
+		reg = <0x020000 0x1fc0000>;
+	};
+
+	nvram@1fe0000 {
+		reg = <0x1fe0000 0x20000>;
+	};
+};
diff --git a/target/linux/brcm63xx/image/bcm63xx.mk b/target/linux/brcm63xx/image/bcm63xx.mk
index 0749c29..8e280ea 100644
--- a/target/linux/brcm63xx/image/bcm63xx.mk
+++ b/target/linux/brcm63xx/image/bcm63xx.mk
@@ -1,3 +1,4 @@ 
+
 #
 # BCM33XX/BCM63XX Profiles
 #
@@ -174,6 +175,21 @@  define Device/96368MVWG-generic
 endef
 TARGET_DEVICES += 96368MVWG-generic
 
+### Actiontec ###
+define Device/R1000H
+  $(Device/bcm63xx)
+  FILESYSTEMS := squashfs
+  DEVICE_TITLE := Actiontec R1000H
+  DEVICE_DTS := r1000h
+  CFE_BOARD_ID := 96368MVWG
+  CFE_CHIP_ID := 6368
+  FLASH_MB := 32
+  IMAGE_OFFSET := 0x20000
+  DEVICE_PACKAGES := \
+    $(USB2_PACKAGES) $(BRCMWL_PACKAGES)
+endef
+TARGET_DEVICES += R1000H
+
 ### ADB ###
 define Device/A4001N
   $(Device/bcm63xx)
diff --git a/target/linux/brcm63xx/patches-4.4/578-board_R1000H.patch b/target/linux/brcm63xx/patches-4.4/578-board_R1000H.patch
new file mode 100644
index 0000000..d68a6f3
--- /dev/null
+++ b/target/linux/brcm63xx/patches-4.4/578-board_R1000H.patch
@@ -0,0 +1,50 @@ 
+--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
+@@ -2203,6 +2203,31 @@ static struct board_info __initdata boar
+ 	},
+ };
+ 
++static struct board_info __initdata board_R1000H = {
++	.name				= "R1000H",
++	.expected_cpu_id		= 0x6368,
++
++	.has_uart0			= 1,
++	.has_uart1			= 1,
++	.has_pci			= 1,
++	.has_ohci0			= 1,
++	.has_ehci0			= 1,
++
++	.has_enetsw			= 1,
++	.enetsw = {
++		.used_ports = {
++			[5] = {
++				.used  = 1,
++				.phy_id  = 0xff,
++				.bypass_link = 1,
++				.force_speed = 1000,
++				.force_duplex_full = 1,
++				.name  = "RGMII",
++			},
++		},
++	},
++};
++
+ static struct board_info __initdata board_VR3025u = {
+ 	.name					= "96368M-1541N",
+ 	.expected_cpu_id		= 0x6368,
+@@ -2701,6 +2726,7 @@ static const struct board_info __initcon
+ 	&board_HG622,
+ 	&board_HG655b,
+ 	&board_P870HW51A_V2,
++	&board_R1000H,
+ 	&board_VH4032N,
+ 	&board_VR3025u,
+ 	&board_VR3025un,
+@@ -2802,6 +2828,7 @@ static struct of_device_id const bcm963x
+ 	{ .compatible = "sfr,nb6-ser-r0", .data = &board_nb6, },
+ #endif
+ #ifdef CONFIG_BCM63XX_CPU_6368
++	{ .compatible = "actiontec,r1000h", .data = &board_R1000H, },
+ 	{ .compatible = "adb,av4202n", .data = &board_AV4202N, },
+ 	{ .compatible = "brcm,bcm96368mvngr", .data = &board_96368mvngr, },
+ 	{ .compatible = "brcm,bcm96368mvwg", .data = &board_96368mvwg, },