From c27cb6e0fde6cb1166adc830d50fbf13726f5acc Mon Sep 17 00:00:00 2001 From: Jonas Gorski Date: Sun, 27 Jul 2014 17:44:53 +0000 Subject: [PATCH] brcm63xx: Add support for ZyXEL P870HW-51a v2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Álvaro Fernández Rojas Signed-off-by: Jonas Gorski SVN-Revision: 41850 --- .../base-files/etc/uci-defaults/02_network | 3 +- .../base-files/etc/uci-defaults/09_fix_crc | 1 + .../linux/brcm63xx/base-files/lib/brcm63xx.sh | 5 + target/linux/brcm63xx/image/Makefile | 16 +++ .../564-board_P870HW-51a_v2.patch | 100 ++++++++++++++++++ .../564-board_P870HW-51a_v2.patch | 100 ++++++++++++++++++ 6 files changed, 224 insertions(+), 1 deletion(-) create mode 100644 target/linux/brcm63xx/patches-3.10/564-board_P870HW-51a_v2.patch create mode 100644 target/linux/brcm63xx/patches-3.14/564-board_P870HW-51a_v2.patch 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,