Przeglądaj źródła

brcm63xx: Add support for ZyXEL P870HW-51a v2

Signed-off-by: Álvaro Fernández Rojas <[email protected]>
Signed-off-by: Jonas Gorski <[email protected]>

SVN-Revision: 41850
Jonas Gorski 11 lat temu
rodzic
commit
c27cb6e0fd

+ 2 - 1
target/linux/brcm63xx/base-files/etc/uci-defaults/02_network

@@ -85,7 +85,8 @@ DVG3810BN)
 96368M-1541N |\
 96368MVNgr |\
 "F@ST2504n" |\
-"F@ST2704V2")
+"F@ST2704V2" |\
+P870HW-51a_v2)
 	ucidef_set_interface_lan "eth0.1"
 	ucidef_add_switch "eth0" "1" "1"
 	ucidef_add_switch_vlan "eth0" "1" "0 1 2 3 8t"

+ 1 - 0
target/linux/brcm63xx/base-files/etc/uci-defaults/09_fix_crc

@@ -27,6 +27,7 @@ case "$board_name" in
 	CPVA642 |\
 	CT6373-1 |\
 	MAGIC |\
+	P870HW-51a_v2 |\
 	RTA770BW |\
 	RTA770W |\
 	V2110 |\

+ 5 - 0
target/linux/brcm63xx/base-files/lib/brcm63xx.sh

@@ -135,6 +135,11 @@ brcm63xx_detect() {
 		brcm63xx_has_reset_button="true"
 		ifname=eth0
 		;;
+	P870HW-51a_v2)
+		brcm63xx_has_reset_button="true"
+		status_led="P870HW-51a:green:power"
+		ifname="eth0"
+		;;
 	RTA770BW)
 		brcm63xx_has_reset_button="true"
 		status_led="RTA770BW:green:diag"

+ 16 - 0
target/linux/brcm63xx/image/Makefile

@@ -111,6 +111,20 @@ define Image/Build/SPW303V
 	rm -f $(BIN_DIR)/openwrt-$(4)-$(1)-cfe.bin.tmp
 endef
 
+define Image/Build/ZyXEL
+	# Generate the tagged image
+	$(STAGING_DIR_HOST)/bin/imagetag -i $(KDIR)/vmlinux.lzma.cfe -f $(KDIR)/root.$(1) \
+		--output $(BIN_DIR)/openwrt-$(5)-$(1).tmp \
+		--boardid $(2) --chipid $(4) --entry $(KERNEL_ENTRY) \
+		--load-addr $(LOADADDR) --rsa-signature "$(6)" \
+		--info1 "+$(call Image/LimitName16,$(3))" --info2 $(1) \
+		$(7) $(8) $(9) $(10)
+	# Fix up header
+	$(STAGING_DIR_HOST)/bin/zyxbcm -i $(BIN_DIR)/openwrt-$(5)-$(1).tmp \
+		-o $(BIN_DIR)/openwrt-$(5)-$(1)-cfe.bin
+	rm -f $(BIN_DIR)/openwrt-$(5)-$(1).tmp
+endef
+
 define Image/Build/CFEOLD
 	$(TOPDIR)/scripts/brcmImage.pl -t -p	\
 		-b $(2) -c $(3)			\
@@ -215,6 +229,8 @@ define Image/Build
 	$(call Image/Build/CFEFIXUP,$(1),96348GW,GW6200,6348,GW6200,$(shell printf '\x99'))
 	# Neufbox4
 	$(call Image/Build/CFE,$(1),96358VW,6358,NEUFBOX4,OpenWRT-$(REVISION))
+	# Zyxel P870HW-51a v2
+	$(call Image/Build/ZyXEL,$(1),96368VVW,P870HW-51a_v2,6368,P870HW-51a_v2,ZyXEL,--signature "ZyXEL_0001")
 
 	# Neufbox6
 	$(call Image/Build/CFE,$(1),NB6-SER-r0,6362,NEUFBOX6,OpenWRT-$(REVISION))

+ 100 - 0
target/linux/brcm63xx/patches-3.10/564-board_P870HW-51a_v2.patch

@@ -0,0 +1,100 @@
+--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
+@@ -4450,6 +4450,89 @@ static struct board_info __initdata boar
+ 	.has_ehci0 = 1,
+ };
+ 
++static struct board_info __initdata board_P870HW51A_V2 = {
++	.name				= "P870HW-51a_v2",
++	.expected_cpu_id		= 0x6368,
++
++	.has_uart0			= 1,
++	.has_pci			= 1,
++	.has_ohci0			= 1,
++	.has_ehci0			= 1,
++
++	.has_enetsw			= 1,
++	.enetsw = {
++		.used_ports = {
++			[0] = {
++				.used	= 1,
++				.phy_id	= 1,
++				.name	= "port1",
++			},
++			[1] = {
++				.used	= 1,
++				.phy_id	= 2,
++				.name	= "port2",
++			},
++			[2] = {
++				.used	= 1,
++				.phy_id	= 3,
++				.name	= "port3",
++			},
++			[3] = {
++				.used	= 1,
++				.phy_id	= 4,
++				.name	= "port4",
++			},
++		},
++	},
++
++	.leds = {
++		{
++			.name		= "P870HW-51a:green:power",
++			.gpio		= 0,
++			.default_trigger = "default-on",
++		},
++		{
++			.name		= "P870HW-51a:green:dsl",
++			.gpio		= 2,
++			.active_low	= 1,
++		},
++		{
++			.name		= "P870HW-51a:green:inet",
++			.gpio		= 22,
++			.active_low	= 1,
++		},
++		{
++			.name		= "P870HW-51a:orange:wps",
++			.gpio		= 24,
++			.active_low	= 1,
++		},
++		{
++			.name		= "P870HW-51a:red:inet",
++			.gpio		= 33,
++			.active_low	= 1,
++		},
++	},
++
++	.buttons = {
++		{
++			.desc		= "reset",
++			.gpio		= 34,
++			.type		= EV_KEY,
++			.code		= KEY_RESTART,
++			.debounce_interval = BCM963XX_KEYS_DEBOUNCE_INTERVAL,
++			.active_low	= 1,
++		},
++		{
++			.desc		= "wps",
++			.gpio		= 35,
++			.type		= EV_KEY,
++			.code		= KEY_WPS_BUTTON,
++			.debounce_interval = BCM963XX_KEYS_DEBOUNCE_INTERVAL,
++			.active_low	= 1,
++		},
++	},
++};
++
+ static struct board_info __initdata board_VR3025u = {
+ 	.name					= "96368M-1541N",
+ 	.expected_cpu_id		= 0x6368,
+@@ -5109,6 +5192,7 @@ static const struct board_info __initcon
+ #ifdef CONFIG_BCM63XX_CPU_6368
+ 	&board_96368mvwg,
+ 	&board_96368mvngr,
++	&board_P870HW51A_V2,
+ 	&board_VR3025u,
+ 	&board_VR3025un,
+ 	&board_WAP5813n,

+ 100 - 0
target/linux/brcm63xx/patches-3.14/564-board_P870HW-51a_v2.patch

@@ -0,0 +1,100 @@
+--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
+@@ -4460,6 +4460,89 @@ static struct board_info __initdata boar
+ 	.has_ehci0 = 1,
+ };
+ 
++static struct board_info __initdata board_P870HW51A_V2 = {
++	.name				= "P870HW-51a_v2",
++	.expected_cpu_id		= 0x6368,
++
++	.has_uart0			= 1,
++	.has_pci			= 1,
++	.has_ohci0			= 1,
++	.has_ehci0			= 1,
++
++	.has_enetsw			= 1,
++	.enetsw = {
++		.used_ports = {
++			[0] = {
++				.used	= 1,
++				.phy_id	= 1,
++				.name	= "port1",
++			},
++			[1] = {
++				.used	= 1,
++				.phy_id	= 2,
++				.name	= "port2",
++			},
++			[2] = {
++				.used	= 1,
++				.phy_id	= 3,
++				.name	= "port3",
++			},
++			[3] = {
++				.used	= 1,
++				.phy_id	= 4,
++				.name	= "port4",
++			},
++		},
++	},
++
++	.leds = {
++		{
++			.name		= "P870HW-51a:green:power",
++			.gpio		= 0,
++			.default_trigger = "default-on",
++		},
++		{
++			.name		= "P870HW-51a:green:dsl",
++			.gpio		= 2,
++			.active_low	= 1,
++		},
++		{
++			.name		= "P870HW-51a:green:inet",
++			.gpio		= 22,
++			.active_low	= 1,
++		},
++		{
++			.name		= "P870HW-51a:orange:wps",
++			.gpio		= 24,
++			.active_low	= 1,
++		},
++		{
++			.name		= "P870HW-51a:red:inet",
++			.gpio		= 33,
++			.active_low	= 1,
++		},
++	},
++
++	.buttons = {
++		{
++			.desc		= "reset",
++			.gpio		= 34,
++			.type		= EV_KEY,
++			.code		= KEY_RESTART,
++			.debounce_interval = BCM963XX_KEYS_DEBOUNCE_INTERVAL,
++			.active_low	= 1,
++		},
++		{
++			.desc		= "wps",
++			.gpio		= 35,
++			.type		= EV_KEY,
++			.code		= KEY_WPS_BUTTON,
++			.debounce_interval = BCM963XX_KEYS_DEBOUNCE_INTERVAL,
++			.active_low	= 1,
++		},
++	},
++};
++
+ static struct board_info __initdata board_VR3025u = {
+ 	.name					= "96368M-1541N",
+ 	.expected_cpu_id		= 0x6368,
+@@ -5119,6 +5202,7 @@ static const struct board_info __initcon
+ #ifdef CONFIG_BCM63XX_CPU_6368
+ 	&board_96368mvwg,
+ 	&board_96368mvngr,
++	&board_P870HW51A_V2,
+ 	&board_VR3025u,
+ 	&board_VR3025un,
+ 	&board_WAP5813n,