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"
CPVA642 |\
CT6373-1 |\
MAGIC |\
+ P870HW-51a_v2 |\
RTA770BW |\
RTA770W |\
V2110 |\
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"
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) \
$(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))
--- /dev/null
+--- 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,
--- /dev/null
+--- 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,