aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xtarget/linux/brcm63xx/base-files/etc/uci-defaults/02_network3
-rwxr-xr-xtarget/linux/brcm63xx/base-files/etc/uci-defaults/09_fix_crc1
-rwxr-xr-xtarget/linux/brcm63xx/base-files/lib/brcm63xx.sh5
-rwxr-xr-xtarget/linux/brcm63xx/image/Makefile16
-rw-r--r--target/linux/brcm63xx/patches-3.10/564-board_P870HW-51a_v2.patch100
-rw-r--r--target/linux/brcm63xx/patches-3.14/564-board_P870HW-51a_v2.patch100
6 files changed, 224 insertions, 1 deletions
diff --git a/target/linux/brcm63xx/base-files/etc/uci-defaults/02_network b/target/linux/brcm63xx/base-files/etc/uci-defaults/02_network
index aa32099a07..964f5baa2a 100755
--- a/target/linux/brcm63xx/base-files/etc/uci-defaults/02_network
+++ b/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"
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 9c966e7eaf..560bb20379 100755
--- a/target/linux/brcm63xx/base-files/etc/uci-defaults/09_fix_crc
+++ b/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 |\
diff --git a/target/linux/brcm63xx/base-files/lib/brcm63xx.sh b/target/linux/brcm63xx/base-files/lib/brcm63xx.sh
index 74e6a0d776..1029fe36aa 100755
--- a/target/linux/brcm63xx/base-files/lib/brcm63xx.sh
+++ b/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"
diff --git a/target/linux/brcm63xx/image/Makefile b/target/linux/brcm63xx/image/Makefile
index f36d182d22..680cf975db 100755
--- a/target/linux/brcm63xx/image/Makefile
+++ b/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))
diff --git a/target/linux/brcm63xx/patches-3.10/564-board_P870HW-51a_v2.patch b/target/linux/brcm63xx/patches-3.10/564-board_P870HW-51a_v2.patch
new file mode 100644
index 0000000000..2492e5e177
--- /dev/null
+++ b/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,
diff --git a/target/linux/brcm63xx/patches-3.14/564-board_P870HW-51a_v2.patch b/target/linux/brcm63xx/patches-3.14/564-board_P870HW-51a_v2.patch
new file mode 100644
index 0000000000..bb910ad17f
--- /dev/null
+++ b/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,