diff --git a/target/linux/brcm63xx/base-files/lib/brcm63xx.sh b/target/linux/brcm63xx/base-files/lib/brcm63xx.sh index 25f2ab47e6..e2c563460a 100755 --- a/target/linux/brcm63xx/base-files/lib/brcm63xx.sh +++ b/target/linux/brcm63xx/base-files/lib/brcm63xx.sh @@ -19,6 +19,16 @@ brcm63xx_detect() { brcm63xx_has_reset_button="true" ifname=eth1 ;; + "bcm63xx/GW6000 "*) + brcm63xx_has_reset_button="true" + ifname=eth1 + ;; + "bcm63xx/GW6200 "*) + status_led="line1" + status_led2="tel" + brcm63xx_has_reset_button="true" + ifname=eth1 + ;; "bcm63xx/96348GW-11 "*) status_led="power" brcm63xx_has_reset_button="true" diff --git a/target/linux/brcm63xx/image/Makefile b/target/linux/brcm63xx/image/Makefile index 3f532f0b1d..25c9b36a49 100644 --- a/target/linux/brcm63xx/image/Makefile +++ b/target/linux/brcm63xx/image/Makefile @@ -146,9 +146,9 @@ define Image/Build # RTA1025W_16 (numerous routers) $(call Image/Build/CFE,$(1),RTA1025W_16,6348,RTA1025W_16,,--layoutver 5) # Tecom GW6000 - $(call Image/Build/CFE,$(1),96348GW,6348,GW6000) + $(call Image/Build/CFEFIXUP,$(1),96348GW,6348,GW6000) # Tecom GW6200 - $(call Image/Build/CFE,$(1),96348GW,6348,GW6200,$(shell printf '\x99')) + $(call Image/Build/CFEFIXUP,$(1),96348GW,6348,GW6200,$(shell printf '\x99')) # Neufbox4 $(call Image/Build/CFE,$(1),96358VW,6358,NEUFBOX4,OpenWRT-$(REVISION)) # Comtrend 536, 5621 diff --git a/target/linux/brcm63xx/patches-2.6.35/430-board_gw6200_gw6000.patch b/target/linux/brcm63xx/patches-2.6.35/430-board_gw6200_gw6000.patch new file mode 100644 index 0000000000..2e2398eb8e --- /dev/null +++ b/target/linux/brcm63xx/patches-2.6.35/430-board_gw6200_gw6000.patch @@ -0,0 +1,129 @@ +--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c ++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c +@@ -432,6 +432,117 @@ static struct board_info __initdata boar + }, + }; + ++static struct board_info __initdata board_gw6200 = { ++ .name = "GW6200", ++ .expected_cpu_id = 0x6348, ++ ++ .has_uart0 = 1, ++ .has_enet0 = 1, ++ .has_enet1 = 1, ++ .has_pci = 1, ++ ++ .enet0 = { ++ .has_phy = 1, ++ .use_internal_phy = 1, ++ }, ++ .enet1 = { ++ .force_speed_100 = 1, ++ .force_duplex_full = 1, ++ }, ++ ++ .has_ohci0 = 1, ++ ++ .has_dsp = 1, ++ .dsp = { ++ .gpio_rst = 8, /* FIXME: What is real GPIO here? */ ++ .gpio_int = 34, ++ .ext_irq = 2, ++ .cs = 2, ++ }, ++ ++ .leds = { ++ { ++ .name = "line1", ++ .gpio = 4, ++ .active_low = 1, ++ }, ++ { ++ .name = "line2", ++ .gpio = 5, ++ .active_low = 1, ++ }, ++ { ++ .name = "line3", ++ .gpio = 6, ++ .active_low = 1, ++ }, ++ { ++ .name = "tel", ++ .gpio = 7, ++ .active_low = 1, ++ }, ++ { ++ .name = "ethernet", ++ .gpio = 35, ++ .active_low = 1, ++ }, ++ }, ++ .buttons = { ++ { ++ .desc = "reset", ++ .gpio = 36, ++ .active_low = 1, ++ .type = EV_KEY, ++ .code = KEY_RESTART, ++ .threshold = 3, ++ }, ++ }, ++}; ++ ++static struct board_info __initdata board_gw6000 = { ++ .name = "GW6000", ++ .expected_cpu_id = 0x6348, ++ ++ .has_uart0 = 1, ++ .has_enet0 = 1, ++ .has_enet1 = 1, ++ .has_pci = 1, ++ ++ .enet0 = { ++ .has_phy = 1, ++ .use_internal_phy = 1, ++ }, ++ .enet1 = { ++ .force_speed_100 = 1, ++ .force_duplex_full = 1, ++ }, ++ ++ .has_ohci0 = 1, ++ ++ .has_dsp = 1, ++ .dsp = { ++ .gpio_rst = 6, ++ .gpio_int = 34, ++ .ext_irq = 2, ++ .cs = 2, ++ }, ++ ++ /* GW6000 has no GPIO-controlled leds */ ++ ++ .buttons = { ++ { ++ .desc = "reset", ++ .gpio = 36, ++ .active_low = 1, ++ .type = EV_KEY, ++ .code = KEY_RESTART, ++ .threshold = 3, ++ }, ++ }, ++}; ++ ++ ++ + static struct board_info __initdata board_FAST2404 = { + .name = "F@ST2404", + .expected_cpu_id = 0x6348, +@@ -1521,6 +1632,8 @@ static const struct board_info __initdat + #ifdef CONFIG_BCM63XX_CPU_6348 + &board_96348r, + &board_96348gw, ++ &board_gw6000, ++ &board_gw6200, + &board_96348gw_10, + &board_96348gw_11, + &board_FAST2404,