diff options
39 files changed, 729 insertions, 288 deletions
diff --git a/target/linux/brcm63xx/base-files/etc/defconfig/96348A-122/network b/target/linux/brcm63xx/base-files/etc/defconfig/96348A-122/network new file mode 100644 index 0000000000..ef1f2882b7 --- /dev/null +++ b/target/linux/brcm63xx/base-files/etc/defconfig/96348A-122/network @@ -0,0 +1,14 @@ +# Copyright (C) 2008 OpenWrt.org + +config interface loopback + option ifname lo + option proto static + option ipaddr 127.0.0.1 + option netmask 255.0.0.0 + +config interface lan + option type bridge + option ifname eth0 + option proto static + option ipaddr 192.168.1.1 + option netmask 255.255.255.0 diff --git a/target/linux/brcm63xx/base-files/etc/uci-defaults/brcm63xx_fixcrc.sh b/target/linux/brcm63xx/base-files/etc/uci-defaults/brcm63xx_fixcrc.sh index 72ba3cc30b..965ddba16c 100755 --- a/target/linux/brcm63xx/base-files/etc/uci-defaults/brcm63xx_fixcrc.sh +++ b/target/linux/brcm63xx/base-files/etc/uci-defaults/brcm63xx_fixcrc.sh @@ -13,7 +13,8 @@ do_fixcrc() { brcm63xx_detect case "$board_name" in - "bcm63xx/CPVA642 "* | "bcm63xx/MAGIC "* | "bcm63xx/V2500V_BB "* | "bcm63xx/V2110 "*) + "bcm63xx/CPVA642 "* | "bcm63xx/MAGIC "* | "bcm63xx/V2500V_BB "* | \ + "bcm63xx/V2110 "* | "bcm63xx/CPVA502+ "*) do_fixcrc ;; esac diff --git a/target/linux/brcm63xx/patches-3.0/100-reset_buttons.patch b/target/linux/brcm63xx/patches-3.0/100-reset_buttons.patch index f1f69f421e..ac61812f77 100644 --- a/target/linux/brcm63xx/patches-3.0/100-reset_buttons.patch +++ b/target/linux/brcm63xx/patches-3.0/100-reset_buttons.patch @@ -92,7 +92,7 @@ struct gpio_led leds[5]; + + /* Buttons */ -+ struct gpio_button buttons[2]; ++ struct gpio_button buttons[4]; }; #endif /* ! BOARD_BCM963XX_H_ */ diff --git a/target/linux/brcm63xx/patches-3.0/200-extended-platform-devices.patch b/target/linux/brcm63xx/patches-3.0/200-extended-platform-devices.patch index 2ec70c174c..363c6b159e 100644 --- a/target/linux/brcm63xx/patches-3.0/200-extended-platform-devices.patch +++ b/target/linux/brcm63xx/patches-3.0/200-extended-platform-devices.patch @@ -15,7 +15,7 @@ @@ -61,6 +61,10 @@ struct board_info { /* Buttons */ - struct gpio_button buttons[2]; + struct gpio_button buttons[4]; + + /* Additional platform devices */ + struct platform_device **devs; diff --git a/target/linux/brcm63xx/patches-3.0/300-alice_gate2_leds.patch b/target/linux/brcm63xx/patches-3.0/300-alice_gate2_leds.patch index f54fab736b..d9f891f8a9 100644 --- a/target/linux/brcm63xx/patches-3.0/300-alice_gate2_leds.patch +++ b/target/linux/brcm63xx/patches-3.0/300-alice_gate2_leds.patch @@ -29,12 +29,12 @@ + .active_low = 1, + }, + { -+ .name = "adsl:red", ++ .name = "adsl:green", + .gpio = 9, + .active_low = 1, + }, + { -+ .name = "adsl:green", ++ .name = "adsl:red", + .gpio = 10, + .active_low = 1, + }, @@ -49,12 +49,12 @@ + .active_low = 1, + }, + { -+ .name = "internet:red", ++ .name = "internet:green", + .gpio = 25, + .active_low = 1, + }, + { -+ .name = "internet:green", ++ .name = "internet:red", + .gpio = 24, + .active_low = 1, + }, @@ -110,4 +110,4 @@ + struct gpio_led leds[14]; /* Buttons */ - struct gpio_button buttons[2]; + struct gpio_button buttons[4]; diff --git a/target/linux/brcm63xx/patches-3.0/457-board_96348A-122.patch b/target/linux/brcm63xx/patches-3.0/457-board_96348A-122.patch new file mode 100644 index 0000000000..a7ee9755a6 --- /dev/null +++ b/target/linux/brcm63xx/patches-3.0/457-board_96348A-122.patch @@ -0,0 +1,78 @@ +--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c ++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c +@@ -1009,6 +1009,67 @@ static struct board_info __initdata boar + }, + }; + ++static struct board_info __initdata board_96348A_122 = { ++ .name = "96348A-122", ++ .expected_cpu_id = 0x6348, ++ ++ .has_uart0 = 1, ++ .has_enet1 = 1, ++ .has_pci = 1, ++ ++ .enet1 = { ++ .force_speed_100 = 1, ++ .force_duplex_full = 1, ++ }, ++ ++ .has_ohci0 = 1, ++ ++ .leds = { ++ { ++ .name = "power", ++ .gpio = 0, ++ .active_low = 1, ++ .default_trigger = "default-on", ++ }, ++ { ++ .name = "alarm", ++ .gpio = 2, ++ .active_low = 1, ++ }, ++ { ++ .name = "wps", ++ .gpio = 6, ++ .active_low = 1, ++ }, ++ }, ++ .buttons = { ++ { ++ .desc = "reset", ++ .gpio = 33, ++ .active_low = 1, ++ .type = EV_KEY, ++ .code = KEY_RESTART, ++ .threshold = 3, ++ }, ++ { ++ .desc = "wifi", ++ .gpio = 34, ++ .active_low = 1, ++ .type = EV_KEY, ++ .code = BTN_0, ++ .threshold = 3, ++ }, ++ { ++ .desc = "wps", ++ .gpio = 35, ++ .active_low = 1, ++ .type = EV_KEY, ++ .code = KEY_WPS_BUTTON, ++ .threshold = 3, ++ }, ++ }, ++}; ++ + #endif + + /* +@@ -2068,6 +2129,7 @@ static const struct board_info __initdat + &board_V2500V_BB, + &board_V2110, + &board_ct536_ct5621, ++ &board_96348A_122, + #endif + + #ifdef CONFIG_BCM63XX_CPU_6358 diff --git a/target/linux/brcm63xx/patches-3.0/458-RTA1205W_16_uart_fixes.patch b/target/linux/brcm63xx/patches-3.0/458-RTA1205W_16_uart_fixes.patch new file mode 100644 index 0000000000..90a9a5c553 --- /dev/null +++ b/target/linux/brcm63xx/patches-3.0/458-RTA1205W_16_uart_fixes.patch @@ -0,0 +1,10 @@ +--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c ++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c +@@ -704,6 +704,7 @@ static struct board_info __initdata boar + .name = "RTA1025W_16", + .expected_cpu_id = 0x6348, + ++ .has_uart0 = 1, + .has_enet0 = 1, + .has_enet1 = 1, + .has_pci = 1, diff --git a/target/linux/brcm63xx/patches-3.0/459_board_CPVA502plus.patch b/target/linux/brcm63xx/patches-3.0/459_board_CPVA502plus.patch new file mode 100644 index 0000000000..426e9d0091 --- /dev/null +++ b/target/linux/brcm63xx/patches-3.0/459_board_CPVA502plus.patch @@ -0,0 +1,55 @@ +--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c ++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c +@@ -1071,6 +1071,44 @@ static struct board_info __initdata boar + }, + }; + ++static struct board_info __initdata board_CPVA502plus = { ++ .name = "CPVA502+", ++ .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_udc0 = 1, ++ ++ .leds = { ++ { ++ .name = "phone", ++ .gpio = 0, ++ .active_low = 1, ++ }, ++ { ++ .name = "link", ++ .gpio = 5, ++ .active_low = 1, ++ }, ++ { ++ .name = "feth1", /* FIXME:does gpio4 enable eth1 phy? */ ++ .gpio = 4, ++ .active_low = 1, ++ }, ++ }, ++}; + #endif + + /* +@@ -2131,6 +2169,7 @@ static const struct board_info __initdat + &board_V2110, + &board_ct536_ct5621, + &board_96348A_122, ++ &board_CPVA502plus, + #endif + + #ifdef CONFIG_BCM63XX_CPU_6358 diff --git a/target/linux/brcm63xx/patches-3.0/977-ssb_export_fallback_sprom.patch b/target/linux/brcm63xx/patches-3.0/977-ssb_export_fallback_sprom.patch index 478019d99e..6bfa419bfd 100644 --- a/target/linux/brcm63xx/patches-3.0/977-ssb_export_fallback_sprom.patch +++ b/target/linux/brcm63xx/patches-3.0/977-ssb_export_fallback_sprom.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -2108,7 +2108,7 @@ static void __init nb4_nvram_fixup(void) +@@ -2210,7 +2210,7 @@ static void __init nb4_nvram_fixup(void) * bcm4318 WLAN work */ #ifdef CONFIG_SSB_PCIHOST @@ -9,7 +9,7 @@ .revision = 0x02, .board_rev = 0x17, .country_code = 0x0, -@@ -2128,6 +2128,7 @@ static struct ssb_sprom bcm63xx_sprom = +@@ -2230,6 +2230,7 @@ static struct ssb_sprom bcm63xx_sprom = .boardflags_lo = 0x2848, .boardflags_hi = 0x0000, }; diff --git a/target/linux/brcm63xx/patches-3.1/100-reset_buttons.patch b/target/linux/brcm63xx/patches-3.1/100-reset_buttons.patch index f1f69f421e..ac61812f77 100644 --- a/target/linux/brcm63xx/patches-3.1/100-reset_buttons.patch +++ b/target/linux/brcm63xx/patches-3.1/100-reset_buttons.patch @@ -92,7 +92,7 @@ struct gpio_led leds[5]; + + /* Buttons */ -+ struct gpio_button buttons[2]; ++ struct gpio_button buttons[4]; }; #endif /* ! BOARD_BCM963XX_H_ */ diff --git a/target/linux/brcm63xx/patches-3.1/200-extended-platform-devices.patch b/target/linux/brcm63xx/patches-3.1/200-extended-platform-devices.patch index 2ec70c174c..363c6b159e 100644 --- a/target/linux/brcm63xx/patches-3.1/200-extended-platform-devices.patch +++ b/target/linux/brcm63xx/patches-3.1/200-extended-platform-devices.patch @@ -15,7 +15,7 @@ @@ -61,6 +61,10 @@ struct board_info { /* Buttons */ - struct gpio_button buttons[2]; + struct gpio_button buttons[4]; + + /* Additional platform devices */ + struct platform_device **devs; diff --git a/target/linux/brcm63xx/patches-3.1/300-alice_gate2_leds.patch b/target/linux/brcm63xx/patches-3.1/300-alice_gate2_leds.patch index f54fab736b..d9f891f8a9 100644 --- a/target/linux/brcm63xx/patches-3.1/300-alice_gate2_leds.patch +++ b/target/linux/brcm63xx/patches-3.1/300-alice_gate2_leds.patch @@ -29,12 +29,12 @@ + .active_low = 1, + }, + { -+ .name = "adsl:red", ++ .name = "adsl:green", + .gpio = 9, + .active_low = 1, + }, + { -+ .name = "adsl:green", ++ .name = "adsl:red", + .gpio = 10, + .active_low = 1, + }, @@ -49,12 +49,12 @@ + .active_low = 1, + }, + { -+ .name = "internet:red", ++ .name = "internet:green", + .gpio = 25, + .active_low = 1, + }, + { -+ .name = "internet:green", ++ .name = "internet:red", + .gpio = 24, + .active_low = 1, + }, @@ -110,4 +110,4 @@ + struct gpio_led leds[14]; /* Buttons */ - struct gpio_button buttons[2]; + struct gpio_button buttons[4]; diff --git a/target/linux/brcm63xx/patches-3.1/457-board_96348A-122.patch b/target/linux/brcm63xx/patches-3.1/457-board_96348A-122.patch new file mode 100644 index 0000000000..a7ee9755a6 --- /dev/null +++ b/target/linux/brcm63xx/patches-3.1/457-board_96348A-122.patch @@ -0,0 +1,78 @@ +--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c ++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c +@@ -1009,6 +1009,67 @@ static struct board_info __initdata boar + }, + }; + ++static struct board_info __initdata board_96348A_122 = { ++ .name = "96348A-122", ++ .expected_cpu_id = 0x6348, ++ ++ .has_uart0 = 1, ++ .has_enet1 = 1, ++ .has_pci = 1, ++ ++ .enet1 = { ++ .force_speed_100 = 1, ++ .force_duplex_full = 1, ++ }, ++ ++ .has_ohci0 = 1, ++ ++ .leds = { ++ { ++ .name = "power", ++ .gpio = 0, ++ .active_low = 1, ++ .default_trigger = "default-on", ++ }, ++ { ++ .name = "alarm", ++ .gpio = 2, ++ .active_low = 1, ++ }, ++ { ++ .name = "wps", ++ .gpio = 6, ++ .active_low = 1, ++ }, ++ }, ++ .buttons = { ++ { ++ .desc = "reset", ++ .gpio = 33, ++ .active_low = 1, ++ .type = EV_KEY, ++ .code = KEY_RESTART, ++ .threshold = 3, ++ }, ++ { ++ .desc = "wifi", ++ .gpio = 34, ++ .active_low = 1, ++ .type = EV_KEY, ++ .code = BTN_0, ++ .threshold = 3, ++ }, ++ { ++ .desc = "wps", ++ .gpio = 35, ++ .active_low = 1, ++ .type = EV_KEY, ++ .code = KEY_WPS_BUTTON, ++ .threshold = 3, ++ }, ++ }, ++}; ++ + #endif + + /* +@@ -2068,6 +2129,7 @@ static const struct board_info __initdat + &board_V2500V_BB, + &board_V2110, + &board_ct536_ct5621, ++ &board_96348A_122, + #endif + + #ifdef CONFIG_BCM63XX_CPU_6358 diff --git a/target/linux/brcm63xx/patches-3.1/458-RTA1205W_16_uart_fixes.patch b/target/linux/brcm63xx/patches-3.1/458-RTA1205W_16_uart_fixes.patch new file mode 100644 index 0000000000..90a9a5c553 --- /dev/null +++ b/target/linux/brcm63xx/patches-3.1/458-RTA1205W_16_uart_fixes.patch @@ -0,0 +1,10 @@ +--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c ++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c +@@ -704,6 +704,7 @@ static struct board_info __initdata boar + .name = "RTA1025W_16", + .expected_cpu_id = 0x6348, + ++ .has_uart0 = 1, + .has_enet0 = 1, + .has_enet1 = 1, + .has_pci = 1, diff --git a/target/linux/brcm63xx/patches-3.1/459_board_CPVA502plus.patch b/target/linux/brcm63xx/patches-3.1/459_board_CPVA502plus.patch new file mode 100644 index 0000000000..426e9d0091 --- /dev/null +++ b/target/linux/brcm63xx/patches-3.1/459_board_CPVA502plus.patch @@ -0,0 +1,55 @@ +--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c ++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c +@@ -1071,6 +1071,44 @@ static struct board_info __initdata boar + }, + }; + ++static struct board_info __initdata board_CPVA502plus = { ++ .name = "CPVA502+", ++ .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_udc0 = 1, ++ ++ .leds = { ++ { ++ .name = "phone", ++ .gpio = 0, ++ .active_low = 1, ++ }, ++ { ++ .name = "link", ++ .gpio = 5, ++ .active_low = 1, ++ }, ++ { ++ .name = "feth1", /* FIXME:does gpio4 enable eth1 phy? */ ++ .gpio = 4, ++ .active_low = 1, ++ }, ++ }, ++}; + #endif + + /* +@@ -2131,6 +2169,7 @@ static const struct board_info __initdat + &board_V2110, + &board_ct536_ct5621, + &board_96348A_122, ++ &board_CPVA502plus, + #endif + + #ifdef CONFIG_BCM63XX_CPU_6358 diff --git a/target/linux/brcm63xx/patches-3.1/977-ssb_export_fallback_sprom.patch b/target/linux/brcm63xx/patches-3.1/977-ssb_export_fallback_sprom.patch index 478019d99e..6bfa419bfd 100644 --- a/target/linux/brcm63xx/patches-3.1/977-ssb_export_fallback_sprom.patch +++ b/target/linux/brcm63xx/patches-3.1/977-ssb_export_fallback_sprom.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -2108,7 +2108,7 @@ static void __init nb4_nvram_fixup(void) +@@ -2210,7 +2210,7 @@ static void __init nb4_nvram_fixup(void) * bcm4318 WLAN work */ #ifdef CONFIG_SSB_PCIHOST @@ -9,7 +9,7 @@ .revision = 0x02, .board_rev = 0x17, .country_code = 0x0, -@@ -2128,6 +2128,7 @@ static struct ssb_sprom bcm63xx_sprom = +@@ -2230,6 +2230,7 @@ static struct ssb_sprom bcm63xx_sprom = .boardflags_lo = 0x2848, .boardflags_hi = 0x0000, }; diff --git a/target/linux/brcm63xx/patches-3.2/100-reset_buttons.patch b/target/linux/brcm63xx/patches-3.2/100-reset_buttons.patch index f1f69f421e..ac61812f77 100644 --- a/target/linux/brcm63xx/patches-3.2/100-reset_buttons.patch +++ b/target/linux/brcm63xx/patches-3.2/100-reset_buttons.patch @@ -92,7 +92,7 @@ struct gpio_led leds[5]; + + /* Buttons */ -+ struct gpio_button buttons[2]; ++ struct gpio_button buttons[4]; }; #endif /* ! BOARD_BCM963XX_H_ */ diff --git a/target/linux/brcm63xx/patches-3.2/200-extended-platform-devices.patch b/target/linux/brcm63xx/patches-3.2/200-extended-platform-devices.patch index 2ec70c174c..363c6b159e 100644 --- a/target/linux/brcm63xx/patches-3.2/200-extended-platform-devices.patch +++ b/target/linux/brcm63xx/patches-3.2/200-extended-platform-devices.patch @@ -15,7 +15,7 @@ @@ -61,6 +61,10 @@ struct board_info { /* Buttons */ - struct gpio_button buttons[2]; + struct gpio_button buttons[4]; + + /* Additional platform devices */ + struct platform_device **devs; diff --git a/target/linux/brcm63xx/patches-3.2/300-alice_gate2_leds.patch b/target/linux/brcm63xx/patches-3.2/300-alice_gate2_leds.patch index cf229ce1b7..e076cf62b5 100644 --- a/target/linux/brcm63xx/patches-3.2/300-alice_gate2_leds.patch +++ b/target/linux/brcm63xx/patches-3.2/300-alice_gate2_leds.patch @@ -29,12 +29,12 @@ + .active_low = 1, + }, + { -+ .name = "adsl:red", ++ .name = "adsl:green", + .gpio = 9, + .active_low = 1, + }, + { -+ .name = "adsl:green", ++ .name = "adsl:red", + .gpio = 10, + .active_low = 1, + }, @@ -49,12 +49,12 @@ + .active_low = 1, + }, + { -+ .name = "internet:red", ++ .name = "internet:green", + .gpio = 25, + .active_low = 1, + }, + { -+ .name = "internet:green", ++ .name = "internet:red", + .gpio = 24, + .active_low = 1, + }, @@ -110,4 +110,4 @@ + struct gpio_led leds[14]; /* Buttons */ - struct gpio_button buttons[2]; + struct gpio_button buttons[4]; diff --git a/target/linux/brcm63xx/patches-3.2/457-board_96348A-122.patch b/target/linux/brcm63xx/patches-3.2/457-board_96348A-122.patch new file mode 100644 index 0000000000..b18e93fa73 --- /dev/null +++ b/target/linux/brcm63xx/patches-3.2/457-board_96348A-122.patch @@ -0,0 +1,78 @@ +--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c ++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c +@@ -1010,6 +1010,67 @@ static struct board_info __initdata boar + }, + }; + ++static struct board_info __initdata board_96348A_122 = { ++ .name = "96348A-122", ++ .expected_cpu_id = 0x6348, ++ ++ .has_uart0 = 1, ++ .has_enet1 = 1, ++ .has_pci = 1, ++ ++ .enet1 = { ++ .force_speed_100 = 1, ++ .force_duplex_full = 1, ++ }, ++ ++ .has_ohci0 = 1, ++ ++ .leds = { ++ { ++ .name = "power", ++ .gpio = 0, ++ .active_low = 1, ++ .default_trigger = "default-on", ++ }, ++ { ++ .name = "alarm", ++ .gpio = 2, ++ .active_low = 1, ++ }, ++ { ++ .name = "wps", ++ .gpio = 6, ++ .active_low = 1, ++ }, ++ }, ++ .buttons = { ++ { ++ .desc = "reset", ++ .gpio = 33, ++ .active_low = 1, ++ .type = EV_KEY, ++ .code = KEY_RESTART, ++ .threshold = 3, ++ }, ++ { ++ .desc = "wifi", ++ .gpio = 34, ++ .active_low = 1, ++ .type = EV_KEY, ++ .code = BTN_0, ++ .threshold = 3, ++ }, ++ { ++ .desc = "wps", ++ .gpio = 35, ++ .active_low = 1, ++ .type = EV_KEY, ++ .code = KEY_WPS_BUTTON, ++ .threshold = 3, ++ }, ++ }, ++}; ++ + #endif + + /* +@@ -2069,6 +2130,7 @@ static const struct board_info __initdat + &board_V2500V_BB, + &board_V2110, + &board_ct536_ct5621, ++ &board_96348A_122, + #endif + + #ifdef CONFIG_BCM63XX_CPU_6358 diff --git a/target/linux/brcm63xx/patches-3.2/458-RTA1205W_16_uart_fixes.patch b/target/linux/brcm63xx/patches-3.2/458-RTA1205W_16_uart_fixes.patch new file mode 100644 index 0000000000..89eab826e7 --- /dev/null +++ b/target/linux/brcm63xx/patches-3.2/458-RTA1205W_16_uart_fixes.patch @@ -0,0 +1,10 @@ +--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c ++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c +@@ -705,6 +705,7 @@ static struct board_info __initdata boar + .name = "RTA1025W_16", + .expected_cpu_id = 0x6348, + ++ .has_uart0 = 1, + .has_enet0 = 1, + .has_enet1 = 1, + .has_pci = 1, diff --git a/target/linux/brcm63xx/patches-3.2/459_board_CPVA502plus.patch b/target/linux/brcm63xx/patches-3.2/459_board_CPVA502plus.patch new file mode 100644 index 0000000000..fa2526836c --- /dev/null +++ b/target/linux/brcm63xx/patches-3.2/459_board_CPVA502plus.patch @@ -0,0 +1,55 @@ +--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c ++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c +@@ -1072,6 +1072,44 @@ static struct board_info __initdata boar + }, + }; + ++static struct board_info __initdata board_CPVA502plus = { ++ .name = "CPVA502+", ++ .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_udc0 = 1, ++ ++ .leds = { ++ { ++ .name = "phone", ++ .gpio = 0, ++ .active_low = 1, ++ }, ++ { ++ .name = "link", ++ .gpio = 5, ++ .active_low = 1, ++ }, ++ { ++ .name = "feth1", /* FIXME:does gpio4 enable eth1 phy? */ ++ .gpio = 4, ++ .active_low = 1, ++ }, ++ }, ++}; + #endif + + /* +@@ -2132,6 +2170,7 @@ static const struct board_info __initdat + &board_V2110, + &board_ct536_ct5621, + &board_96348A_122, ++ &board_CPVA502plus, + #endif + + #ifdef CONFIG_BCM63XX_CPU_6358 diff --git a/target/linux/brcm63xx/patches-3.2/977-ssb_export_fallback_sprom.patch b/target/linux/brcm63xx/patches-3.2/977-ssb_export_fallback_sprom.patch index 1181d102b9..7f95d3fed9 100644 --- a/target/linux/brcm63xx/patches-3.2/977-ssb_export_fallback_sprom.patch +++ b/target/linux/brcm63xx/patches-3.2/977-ssb_export_fallback_sprom.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -2109,7 +2109,7 @@ static void __init nb4_nvram_fixup(void) +@@ -2211,7 +2211,7 @@ static void __init nb4_nvram_fixup(void) * bcm4318 WLAN work */ #ifdef CONFIG_SSB_PCIHOST @@ -9,7 +9,7 @@ .revision = 0x02, .board_rev = 0x17, .country_code = 0x0, -@@ -2129,6 +2129,7 @@ static struct ssb_sprom bcm63xx_sprom = +@@ -2231,6 +2231,7 @@ static struct ssb_sprom bcm63xx_sprom = .boardflags_lo = 0x2848, .boardflags_hi = 0x0000, }; diff --git a/target/linux/brcm63xx/patches-3.3/011-add_bcm63xx_ehci_controller.patch b/target/linux/brcm63xx/patches-3.3/011-add_bcm63xx_ehci_controller.patch index 788375c1ca..969c3b78a4 100644 --- a/target/linux/brcm63xx/patches-3.3/011-add_bcm63xx_ehci_controller.patch +++ b/target/linux/brcm63xx/patches-3.3/011-add_bcm63xx_ehci_controller.patch @@ -34,7 +34,7 @@ Subject: [PATCH 22/57] ehci: add driver for bcm63xx integrated controller. + BCM6358 and later chips. + config USB_EHCI_FSL - bool "Support for Freescale on-chip EHCI USB controller" + bool "Support for Freescale PPC on-chip EHCI USB controller" depends on USB_EHCI_HCD && FSL_SOC --- /dev/null +++ b/drivers/usb/host/ehci-bcm63xx.c diff --git a/target/linux/brcm63xx/patches-3.3/100-reset_buttons.patch b/target/linux/brcm63xx/patches-3.3/100-reset_buttons.patch index aa69ecdc60..00380341ae 100644 --- a/target/linux/brcm63xx/patches-3.3/100-reset_buttons.patch +++ b/target/linux/brcm63xx/patches-3.3/100-reset_buttons.patch @@ -100,7 +100,7 @@ struct gpio_led leds[5]; + + /* Buttons */ -+ struct gpio_button buttons[2]; ++ struct gpio_button buttons[4]; }; #endif /* ! BOARD_BCM963XX_H_ */ diff --git a/target/linux/brcm63xx/patches-3.3/200-extended-platform-devices.patch b/target/linux/brcm63xx/patches-3.3/200-extended-platform-devices.patch index 039df694fe..0e62140dc8 100644 --- a/target/linux/brcm63xx/patches-3.3/200-extended-platform-devices.patch +++ b/target/linux/brcm63xx/patches-3.3/200-extended-platform-devices.patch @@ -15,7 +15,7 @@ @@ -62,6 +62,10 @@ struct board_info { /* Buttons */ - struct gpio_button buttons[2]; + struct gpio_button buttons[4]; + + /* Additional platform devices */ + struct platform_device **devs; diff --git a/target/linux/brcm63xx/patches-3.3/300-alice_gate2_leds.patch b/target/linux/brcm63xx/patches-3.3/300-alice_gate2_leds.patch index c5043c9cc1..2e096385cd 100644 --- a/target/linux/brcm63xx/patches-3.3/300-alice_gate2_leds.patch +++ b/target/linux/brcm63xx/patches-3.3/300-alice_gate2_leds.patch @@ -29,12 +29,12 @@ + .active_low = 1, + }, + { -+ .name = "adsl:red", ++ .name = "adsl:green", + .gpio = 9, + .active_low = 1, + }, + { -+ .name = "adsl:green", ++ .name = "adsl:red", + .gpio = 10, + .active_low = 1, + }, @@ -49,12 +49,12 @@ + .active_low = 1, + }, + { -+ .name = "internet:red", ++ .name = "internet:green", + .gpio = 25, + .active_low = 1, + }, + { -+ .name = "internet:green", ++ .name = "internet:red", + .gpio = 24, + .active_low = 1, + }, @@ -110,4 +110,4 @@ + struct gpio_led leds[14]; /* Buttons */ - struct gpio_button buttons[2]; + struct gpio_button buttons[4]; diff --git a/target/linux/brcm63xx/patches-3.3/457-board_96348A-122.patch b/target/linux/brcm63xx/patches-3.3/457-board_96348A-122.patch new file mode 100644 index 0000000000..b18e93fa73 --- /dev/null +++ b/target/linux/brcm63xx/patches-3.3/457-board_96348A-122.patch @@ -0,0 +1,78 @@ +--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c ++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c +@@ -1010,6 +1010,67 @@ static struct board_info __initdata boar + }, + }; + ++static struct board_info __initdata board_96348A_122 = { ++ .name = "96348A-122", ++ .expected_cpu_id = 0x6348, ++ ++ .has_uart0 = 1, ++ .has_enet1 = 1, ++ .has_pci = 1, ++ ++ .enet1 = { ++ .force_speed_100 = 1, ++ .force_duplex_full = 1, ++ }, ++ ++ .has_ohci0 = 1, ++ ++ .leds = { ++ { ++ .name = "power", ++ .gpio = 0, ++ .active_low = 1, ++ .default_trigger = "default-on", ++ }, ++ { ++ .name = "alarm", ++ .gpio = 2, ++ .active_low = 1, ++ }, ++ { ++ .name = "wps", ++ .gpio = 6, ++ .active_low = 1, ++ }, ++ }, ++ .buttons = { ++ { ++ .desc = "reset", ++ .gpio = 33, ++ .active_low = 1, ++ .type = EV_KEY, ++ .code = KEY_RESTART, ++ .threshold = 3, ++ }, ++ { ++ .desc = "wifi", ++ .gpio = 34, ++ .active_low = 1, ++ .type = EV_KEY, ++ .code = BTN_0, ++ .threshold = 3, ++ }, ++ { ++ .desc = "wps", ++ .gpio = 35, ++ .active_low = 1, ++ .type = EV_KEY, ++ .code = KEY_WPS_BUTTON, ++ .threshold = 3, ++ }, ++ }, ++}; ++ + #endif + + /* +@@ -2069,6 +2130,7 @@ static const struct board_info __initdat + &board_V2500V_BB, + &board_V2110, + &board_ct536_ct5621, ++ &board_96348A_122, + #endif + + #ifdef CONFIG_BCM63XX_CPU_6358 diff --git a/target/linux/brcm63xx/patches-3.3/458-RTA1205W_16_uart_fixes.patch b/target/linux/brcm63xx/patches-3.3/458-RTA1205W_16_uart_fixes.patch new file mode 100644 index 0000000000..89eab826e7 --- /dev/null +++ b/target/linux/brcm63xx/patches-3.3/458-RTA1205W_16_uart_fixes.patch @@ -0,0 +1,10 @@ +--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c ++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c +@@ -705,6 +705,7 @@ static struct board_info __initdata boar + .name = "RTA1025W_16", + .expected_cpu_id = 0x6348, + ++ .has_uart0 = 1, + .has_enet0 = 1, + .has_enet1 = 1, + .has_pci = 1, diff --git a/target/linux/brcm63xx/patches-3.3/459_board_CPVA502plus.patch b/target/linux/brcm63xx/patches-3.3/459_board_CPVA502plus.patch new file mode 100644 index 0000000000..fa2526836c --- /dev/null +++ b/target/linux/brcm63xx/patches-3.3/459_board_CPVA502plus.patch @@ -0,0 +1,55 @@ +--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c ++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c +@@ -1072,6 +1072,44 @@ static struct board_info __initdata boar + }, + }; + ++static struct board_info __initdata board_CPVA502plus = { ++ .name = "CPVA502+", ++ .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_udc0 = 1, ++ ++ .leds = { ++ { ++ .name = "phone", ++ .gpio = 0, ++ .active_low = 1, ++ }, ++ { ++ .name = "link", ++ .gpio = 5, ++ .active_low = 1, ++ }, ++ { ++ .name = "feth1", /* FIXME:does gpio4 enable eth1 phy? */ ++ .gpio = 4, ++ .active_low = 1, ++ }, ++ }, ++}; + #endif + + /* +@@ -2132,6 +2170,7 @@ static const struct board_info __initdat + &board_V2110, + &board_ct536_ct5621, + &board_96348A_122, ++ &board_CPVA502plus, + #endif + + #ifdef CONFIG_BCM63XX_CPU_6358 diff --git a/target/linux/brcm63xx/patches-3.3/977-ssb_export_fallback_sprom.patch b/target/linux/brcm63xx/patches-3.3/977-ssb_export_fallback_sprom.patch index 1181d102b9..7f95d3fed9 100644 --- a/target/linux/brcm63xx/patches-3.3/977-ssb_export_fallback_sprom.patch +++ b/target/linux/brcm63xx/patches-3.3/977-ssb_export_fallback_sprom.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -2109,7 +2109,7 @@ static void __init nb4_nvram_fixup(void) +@@ -2211,7 +2211,7 @@ static void __init nb4_nvram_fixup(void) * bcm4318 WLAN work */ #ifdef CONFIG_SSB_PCIHOST @@ -9,7 +9,7 @@ .revision = 0x02, .board_rev = 0x17, .country_code = 0x0, -@@ -2129,6 +2129,7 @@ static struct ssb_sprom bcm63xx_sprom = +@@ -2231,6 +2231,7 @@ static struct ssb_sprom bcm63xx_sprom = .boardflags_lo = 0x2848, .boardflags_hi = 0x0000, }; diff --git a/target/linux/generic/patches-3.0/050-linux-atm_nathan.patch b/target/linux/generic/patches-3.0/050-linux-atm_nathan.patch index 19e22d566f..2c3b9e48ad 100644 --- a/target/linux/generic/patches-3.0/050-linux-atm_nathan.patch +++ b/target/linux/generic/patches-3.0/050-linux-atm_nathan.patch @@ -14,8 +14,6 @@ Signed-off-by: Nathan Williams <nathan@traverse.com.au> drivers/atm/solos-attrlist.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) -diff --git a/drivers/atm/solos-attrlist.c b/drivers/atm/solos-attrlist.c -index 9a676ee..8092533 100644 --- a/drivers/atm/solos-attrlist.c +++ b/drivers/atm/solos-attrlist.c @@ -71,6 +71,8 @@ SOLOS_ATTR_RW(BisAForceSNRMarginDn) @@ -27,66 +25,61 @@ index 9a676ee..8092533 100644 SOLOS_ATTR_RW(AnnexAForceSNRMarginDn) SOLOS_ATTR_RW(AnnexAMaxMargin) SOLOS_ATTR_RW(AnnexMMaxMargin) - -From: Nathan Williams <nathan@traverse.com.au> -To: netdev@vger.kernel.org -Date: Wed, 05 Oct 2011 15:44:17 +1100 -Cc: linux-atm-general@lists.sourceforge.net, - David Woodhouse <dwmw2@infradead.org>, linux-kernel@vger.kernel.org -Subject: [Linux-ATM-General] [PATCH 2/4] atm: solos-pci: Remove annoying - line of debugging - -"len: %d" isn't particularly useful for anyone and confuses users. - -Signed-off-by: Nathan Williams <nathan@traverse.com.au> ---- - drivers/atm/solos-pci.c | 1 - - 1 files changed, 0 insertions(+), 1 deletions(-) - -diff --git a/drivers/atm/solos-pci.c b/drivers/atm/solos-pci.c -index 5d1d076..bd01aa3 100644 --- a/drivers/atm/solos-pci.c +++ b/drivers/atm/solos-pci.c -@@ -452,7 +452,6 @@ static ssize_t console_show(struct device *dev, struct device_attribute *attr, +@@ -42,7 +42,8 @@ + #include <linux/swab.h> + #include <linux/slab.h> - len = skb->len; - memcpy(buf, skb->data, len); -- dev_dbg(&card->dev->dev, "len: %d\n", len); +-#define VERSION "0.07" ++#define VERSION "1.0" ++#define DRIVER_VERSION 0x01 + #define PTAG "solos-pci" - kfree_skb(skb); - return len; -From: Nathan Williams <nathan@traverse.com.au> -To: netdev@vger.kernel.org -Date: Wed, 05 Oct 2011 15:45:15 +1100 -Cc: linux-atm-general@lists.sourceforge.net, - David Woodhouse <dwmw2@infradead.org>, linux-kernel@vger.kernel.org -Subject: [Linux-ATM-General] [PATCH 3/4] atm: solos-pci: Add support for - Geos GPIO pins - -Geos ADSL2+ routers have on-board Solos chipsets with some -extra I/O pins and a push button connected to the FPGA. - -PCB version and variant numbers are also made available -through the HardwareVersion and HardwareVariant attributes. - -Signed-off-by: Nathan Williams <nathan@traverse.com.au> ---- - drivers/atm/solos-pci.c | 98 +++++++++++++++++++++++++++++++++++++++++++++++ - 1 files changed, 98 insertions(+), 0 deletions(-) - -diff --git a/drivers/atm/solos-pci.c b/drivers/atm/solos-pci.c -index bd01aa3..33c0c2b 100644 ---- a/drivers/atm/solos-pci.c -+++ b/drivers/atm/solos-pci.c -@@ -56,6 +56,7 @@ + #define CONFIG_RAM_SIZE 128 +@@ -56,16 +57,21 @@ #define FLASH_BUSY 0x60 #define FPGA_MODE 0x5C #define FLASH_MODE 0x58 +#define GPIO_STATUS 0x54 ++#define DRIVER_VER 0x50 #define TX_DMA_ADDR(port) (0x40 + (4 * (port))) #define RX_DMA_ADDR(port) (0x30 + (4 * (port))) -@@ -498,6 +499,87 @@ static ssize_t console_store(struct device *dev, struct device_attribute *attr, + #define DATA_RAM_SIZE 32768 + #define BUF_SIZE 2048 + #define OLD_BUF_SIZE 4096 /* For FPGA versions <= 2*/ +-#define FPGA_PAGE 528 /* FPGA flash page size*/ +-#define SOLOS_PAGE 512 /* Solos flash page size*/ +-#define FPGA_BLOCK (FPGA_PAGE * 8) /* FPGA flash block size*/ +-#define SOLOS_BLOCK (SOLOS_PAGE * 8) /* Solos flash block size*/ ++/* Old boards use ATMEL AD45DB161D flash */ ++#define ATMEL_FPGA_PAGE 528 /* FPGA flash page size*/ ++#define ATMEL_SOLOS_PAGE 512 /* Solos flash page size*/ ++#define ATMEL_FPGA_BLOCK (ATMEL_FPGA_PAGE * 8) /* FPGA block size*/ ++#define ATMEL_SOLOS_BLOCK (ATMEL_SOLOS_PAGE * 8) /* Solos block size*/ ++/* Current boards use M25P/M25PE SPI flash */ ++#define SPI_FLASH_BLOCK (256 * 64) + + #define RX_BUF(card, nr) ((card->buffers) + (nr)*(card->buffer_size)*2) + #define TX_BUF(card, nr) ((card->buffers) + (nr)*(card->buffer_size)*2 + (card->buffer_size)) +@@ -127,6 +133,7 @@ struct solos_card { + int using_dma; + int fpga_version; + int buffer_size; ++ int atmel_flash; + }; + + +@@ -452,7 +459,6 @@ static ssize_t console_show(struct devic + + len = skb->len; + memcpy(buf, skb->data, len); +- dev_dbg(&card->dev->dev, "len: %d\n", len); + + kfree_skb(skb); + return len; +@@ -499,6 +505,87 @@ static ssize_t console_store(struct devi return err?:count; } @@ -174,7 +167,7 @@ index bd01aa3..33c0c2b 100644 static DEVICE_ATTR(console, 0644, console_show, console_store); -@@ -506,6 +588,14 @@ static DEVICE_ATTR(console, 0644, console_show, console_store); +@@ -507,6 +594,14 @@ static DEVICE_ATTR(console, 0644, consol #include "solos-attrlist.c" @@ -189,7 +182,7 @@ index bd01aa3..33c0c2b 100644 #undef SOLOS_ATTR_RO #undef SOLOS_ATTR_RW -@@ -514,6 +604,14 @@ static DEVICE_ATTR(console, 0644, console_show, console_store); +@@ -515,6 +610,14 @@ static DEVICE_ATTR(console, 0644, consol static struct attribute *solos_attrs[] = { #include "solos-attrlist.c" @@ -204,71 +197,7 @@ index bd01aa3..33c0c2b 100644 NULL }; -From: Nathan Williams <nathan@traverse.com.au> -To: netdev@vger.kernel.org -Date: Wed, 05 Oct 2011 15:46:08 +1100 -Cc: linux-atm-general@lists.sourceforge.net, - David Woodhouse <dwmw2@infradead.org>, linux-kernel@vger.kernel.org -Subject: [Linux-ATM-General] [PATCH 4/4] atm: solos-pci: M25P/M25PE SPI - flash support - -Newer Geos ADSL2+ routers have different SPI flash. -The FPGA on these boards require driver version = 1 to enable -flash upgrades so old drivers can't corrupt new boards. - -Signed-off-by: Nathan Williams <nathan@traverse.com.au> ---- - drivers/atm/solos-pci.c | 51 ++++++++++++++++++++++++++++++++++++---------- - 1 files changed, 40 insertions(+), 11 deletions(-) - -diff --git a/drivers/atm/solos-pci.c b/drivers/atm/solos-pci.c -index 33c0c2b..2a75bf7 100644 ---- a/drivers/atm/solos-pci.c -+++ b/drivers/atm/solos-pci.c -@@ -42,7 +42,8 @@ - #include <linux/swab.h> - #include <linux/slab.h> - --#define VERSION "0.07" -+#define VERSION "1.0" -+#define DRIVER_VERSION 0x01 - #define PTAG "solos-pci" - - #define CONFIG_RAM_SIZE 128 -@@ -57,16 +58,20 @@ - #define FPGA_MODE 0x5C - #define FLASH_MODE 0x58 - #define GPIO_STATUS 0x54 -+#define DRIVER_VER 0x50 - #define TX_DMA_ADDR(port) (0x40 + (4 * (port))) - #define RX_DMA_ADDR(port) (0x30 + (4 * (port))) - - #define DATA_RAM_SIZE 32768 - #define BUF_SIZE 2048 - #define OLD_BUF_SIZE 4096 /* For FPGA versions <= 2*/ --#define FPGA_PAGE 528 /* FPGA flash page size*/ --#define SOLOS_PAGE 512 /* Solos flash page size*/ --#define FPGA_BLOCK (FPGA_PAGE * 8) /* FPGA flash block size*/ --#define SOLOS_BLOCK (SOLOS_PAGE * 8) /* Solos flash block size*/ -+/* Old boards use ATMEL AD45DB161D flash */ -+#define ATMEL_FPGA_PAGE 528 /* FPGA flash page size*/ -+#define ATMEL_SOLOS_PAGE 512 /* Solos flash page size*/ -+#define ATMEL_FPGA_BLOCK (ATMEL_FPGA_PAGE * 8) /* FPGA block size*/ -+#define ATMEL_SOLOS_BLOCK (ATMEL_SOLOS_PAGE * 8) /* Solos block size*/ -+/* Current boards use M25P/M25PE SPI flash */ -+#define SPI_FLASH_BLOCK (256 * 64) - - #define RX_BUF(card, nr) ((card->buffers) + (nr)*(card->buffer_size)*2) - #define TX_BUF(card, nr) ((card->buffers) + (nr)*(card->buffer_size)*2 + (card->buffer_size)) -@@ -128,6 +133,7 @@ struct solos_card { - int using_dma; - int fpga_version; - int buffer_size; -+ int atmel_flash; - }; - - -@@ -631,16 +637,25 @@ static int flash_upgrade(struct solos_card *card, int chip) +@@ -534,16 +637,25 @@ static int flash_upgrade(struct solos_ca switch (chip) { case 0: fw_name = "solos-FPGA.bin"; @@ -297,7 +226,7 @@ index 33c0c2b..2a75bf7 100644 } else { dev_info(&card->dev->dev, "FPGA version doesn't support" " daughter board upgrades\n"); -@@ -650,7 +665,10 @@ static int flash_upgrade(struct solos_card *card, int chip) +@@ -553,7 +665,10 @@ static int flash_upgrade(struct solos_ca case 3: if (card->fpga_version > LEGACY_BUFFERS){ fw_name = "solos-Firmware.bin"; @@ -309,7 +238,7 @@ index 33c0c2b..2a75bf7 100644 } else { dev_info(&card->dev->dev, "FPGA version doesn't support" " daughter board upgrades\n"); -@@ -695,9 +713,13 @@ static int flash_upgrade(struct solos_card *card, int chip) +@@ -598,9 +713,13 @@ static int flash_upgrade(struct solos_ca /* dev_info(&card->dev->dev, "Set FPGA Flash mode to Block Write\n"); */ iowrite32(((chip * 2) + 1), card->config_regs + FLASH_MODE); @@ -325,7 +254,7 @@ index 33c0c2b..2a75bf7 100644 if(card->fpga_version > LEGACY_BUFFERS) iowrite32(word, FLASH_BUF + i); else -@@ -1249,6 +1271,11 @@ static int fpga_probe(struct pci_dev *dev, const struct pci_device_id *id) +@@ -1152,6 +1271,11 @@ static int fpga_probe(struct pci_dev *de db_fpga_upgrade = db_firmware_upgrade = 0; } @@ -337,7 +266,7 @@ index 33c0c2b..2a75bf7 100644 if (card->fpga_version >= DMA_SUPPORTED){ card->using_dma = 1; } else { -@@ -1256,6 +1283,8 @@ static int fpga_probe(struct pci_dev *dev, const struct pci_device_id *id) +@@ -1159,6 +1283,8 @@ static int fpga_probe(struct pci_dev *de /* Set RX empty flag for all ports */ iowrite32(0xF0, card->config_regs + FLAGS_ADDR); } diff --git a/target/linux/generic/patches-3.0/321-powerpc_crtsavres_prereq.patch b/target/linux/generic/patches-3.0/321-powerpc_crtsavres_prereq.patch index df49ad017a..941aa909de 100644 --- a/target/linux/generic/patches-3.0/321-powerpc_crtsavres_prereq.patch +++ b/target/linux/generic/patches-3.0/321-powerpc_crtsavres_prereq.patch @@ -8,4 +8,3 @@ ifeq ($(CONFIG_TUNE_CELL),y) KBUILD_CFLAGS += $(call cc-option,-mtune=cell) - diff --git a/target/linux/generic/patches-3.1/050-linux-atm_nathan.patch b/target/linux/generic/patches-3.1/050-linux-atm_nathan.patch index 19e22d566f..2c3b9e48ad 100644 --- a/target/linux/generic/patches-3.1/050-linux-atm_nathan.patch +++ b/target/linux/generic/patches-3.1/050-linux-atm_nathan.patch @@ -14,8 +14,6 @@ Signed-off-by: Nathan Williams <nathan@traverse.com.au> drivers/atm/solos-attrlist.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) -diff --git a/drivers/atm/solos-attrlist.c b/drivers/atm/solos-attrlist.c -index 9a676ee..8092533 100644 --- a/drivers/atm/solos-attrlist.c +++ b/drivers/atm/solos-attrlist.c @@ -71,6 +71,8 @@ SOLOS_ATTR_RW(BisAForceSNRMarginDn) @@ -27,66 +25,61 @@ index 9a676ee..8092533 100644 SOLOS_ATTR_RW(AnnexAForceSNRMarginDn) SOLOS_ATTR_RW(AnnexAMaxMargin) SOLOS_ATTR_RW(AnnexMMaxMargin) - -From: Nathan Williams <nathan@traverse.com.au> -To: netdev@vger.kernel.org -Date: Wed, 05 Oct 2011 15:44:17 +1100 -Cc: linux-atm-general@lists.sourceforge.net, - David Woodhouse <dwmw2@infradead.org>, linux-kernel@vger.kernel.org -Subject: [Linux-ATM-General] [PATCH 2/4] atm: solos-pci: Remove annoying - line of debugging - -"len: %d" isn't particularly useful for anyone and confuses users. - -Signed-off-by: Nathan Williams <nathan@traverse.com.au> ---- - drivers/atm/solos-pci.c | 1 - - 1 files changed, 0 insertions(+), 1 deletions(-) - -diff --git a/drivers/atm/solos-pci.c b/drivers/atm/solos-pci.c -index 5d1d076..bd01aa3 100644 --- a/drivers/atm/solos-pci.c +++ b/drivers/atm/solos-pci.c -@@ -452,7 +452,6 @@ static ssize_t console_show(struct device *dev, struct device_attribute *attr, +@@ -42,7 +42,8 @@ + #include <linux/swab.h> + #include <linux/slab.h> - len = skb->len; - memcpy(buf, skb->data, len); -- dev_dbg(&card->dev->dev, "len: %d\n", len); +-#define VERSION "0.07" ++#define VERSION "1.0" ++#define DRIVER_VERSION 0x01 + #define PTAG "solos-pci" - kfree_skb(skb); - return len; -From: Nathan Williams <nathan@traverse.com.au> -To: netdev@vger.kernel.org -Date: Wed, 05 Oct 2011 15:45:15 +1100 -Cc: linux-atm-general@lists.sourceforge.net, - David Woodhouse <dwmw2@infradead.org>, linux-kernel@vger.kernel.org -Subject: [Linux-ATM-General] [PATCH 3/4] atm: solos-pci: Add support for - Geos GPIO pins - -Geos ADSL2+ routers have on-board Solos chipsets with some -extra I/O pins and a push button connected to the FPGA. - -PCB version and variant numbers are also made available -through the HardwareVersion and HardwareVariant attributes. - -Signed-off-by: Nathan Williams <nathan@traverse.com.au> ---- - drivers/atm/solos-pci.c | 98 +++++++++++++++++++++++++++++++++++++++++++++++ - 1 files changed, 98 insertions(+), 0 deletions(-) - -diff --git a/drivers/atm/solos-pci.c b/drivers/atm/solos-pci.c -index bd01aa3..33c0c2b 100644 ---- a/drivers/atm/solos-pci.c -+++ b/drivers/atm/solos-pci.c -@@ -56,6 +56,7 @@ + #define CONFIG_RAM_SIZE 128 +@@ -56,16 +57,21 @@ #define FLASH_BUSY 0x60 #define FPGA_MODE 0x5C #define FLASH_MODE 0x58 +#define GPIO_STATUS 0x54 ++#define DRIVER_VER 0x50 #define TX_DMA_ADDR(port) (0x40 + (4 * (port))) #define RX_DMA_ADDR(port) (0x30 + (4 * (port))) -@@ -498,6 +499,87 @@ static ssize_t console_store(struct device *dev, struct device_attribute *attr, + #define DATA_RAM_SIZE 32768 + #define BUF_SIZE 2048 + #define OLD_BUF_SIZE 4096 /* For FPGA versions <= 2*/ +-#define FPGA_PAGE 528 /* FPGA flash page size*/ +-#define SOLOS_PAGE 512 /* Solos flash page size*/ +-#define FPGA_BLOCK (FPGA_PAGE * 8) /* FPGA flash block size*/ +-#define SOLOS_BLOCK (SOLOS_PAGE * 8) /* Solos flash block size*/ ++/* Old boards use ATMEL AD45DB161D flash */ ++#define ATMEL_FPGA_PAGE 528 /* FPGA flash page size*/ ++#define ATMEL_SOLOS_PAGE 512 /* Solos flash page size*/ ++#define ATMEL_FPGA_BLOCK (ATMEL_FPGA_PAGE * 8) /* FPGA block size*/ ++#define ATMEL_SOLOS_BLOCK (ATMEL_SOLOS_PAGE * 8) /* Solos block size*/ ++/* Current boards use M25P/M25PE SPI flash */ ++#define SPI_FLASH_BLOCK (256 * 64) + + #define RX_BUF(card, nr) ((card->buffers) + (nr)*(card->buffer_size)*2) + #define TX_BUF(card, nr) ((card->buffers) + (nr)*(card->buffer_size)*2 + (card->buffer_size)) +@@ -127,6 +133,7 @@ struct solos_card { + int using_dma; + int fpga_version; + int buffer_size; ++ int atmel_flash; + }; + + +@@ -452,7 +459,6 @@ static ssize_t console_show(struct devic + + len = skb->len; + memcpy(buf, skb->data, len); +- dev_dbg(&card->dev->dev, "len: %d\n", len); + + kfree_skb(skb); + return len; +@@ -499,6 +505,87 @@ static ssize_t console_store(struct devi return err?:count; } @@ -174,7 +167,7 @@ index bd01aa3..33c0c2b 100644 static DEVICE_ATTR(console, 0644, console_show, console_store); -@@ -506,6 +588,14 @@ static DEVICE_ATTR(console, 0644, console_show, console_store); +@@ -507,6 +594,14 @@ static DEVICE_ATTR(console, 0644, consol #include "solos-attrlist.c" @@ -189,7 +182,7 @@ index bd01aa3..33c0c2b 100644 #undef SOLOS_ATTR_RO #undef SOLOS_ATTR_RW -@@ -514,6 +604,14 @@ static DEVICE_ATTR(console, 0644, console_show, console_store); +@@ -515,6 +610,14 @@ static DEVICE_ATTR(console, 0644, consol static struct attribute *solos_attrs[] = { #include "solos-attrlist.c" @@ -204,71 +197,7 @@ index bd01aa3..33c0c2b 100644 NULL }; -From: Nathan Williams <nathan@traverse.com.au> -To: netdev@vger.kernel.org -Date: Wed, 05 Oct 2011 15:46:08 +1100 -Cc: linux-atm-general@lists.sourceforge.net, - David Woodhouse <dwmw2@infradead.org>, linux-kernel@vger.kernel.org -Subject: [Linux-ATM-General] [PATCH 4/4] atm: solos-pci: M25P/M25PE SPI - flash support - -Newer Geos ADSL2+ routers have different SPI flash. -The FPGA on these boards require driver version = 1 to enable -flash upgrades so old drivers can't corrupt new boards. - -Signed-off-by: Nathan Williams <nathan@traverse.com.au> ---- - drivers/atm/solos-pci.c | 51 ++++++++++++++++++++++++++++++++++++---------- - 1 files changed, 40 insertions(+), 11 deletions(-) - -diff --git a/drivers/atm/solos-pci.c b/drivers/atm/solos-pci.c -index 33c0c2b..2a75bf7 100644 ---- a/drivers/atm/solos-pci.c -+++ b/drivers/atm/solos-pci.c -@@ -42,7 +42,8 @@ - #include <linux/swab.h> - #include <linux/slab.h> - --#define VERSION "0.07" -+#define VERSION "1.0" -+#define DRIVER_VERSION 0x01 - #define PTAG "solos-pci" - - #define CONFIG_RAM_SIZE 128 -@@ -57,16 +58,20 @@ - #define FPGA_MODE 0x5C - #define FLASH_MODE 0x58 - #define GPIO_STATUS 0x54 -+#define DRIVER_VER 0x50 - #define TX_DMA_ADDR(port) (0x40 + (4 * (port))) - #define RX_DMA_ADDR(port) (0x30 + (4 * (port))) - - #define DATA_RAM_SIZE 32768 - #define BUF_SIZE 2048 - #define OLD_BUF_SIZE 4096 /* For FPGA versions <= 2*/ --#define FPGA_PAGE 528 /* FPGA flash page size*/ --#define SOLOS_PAGE 512 /* Solos flash page size*/ --#define FPGA_BLOCK (FPGA_PAGE * 8) /* FPGA flash block size*/ --#define SOLOS_BLOCK (SOLOS_PAGE * 8) /* Solos flash block size*/ -+/* Old boards use ATMEL AD45DB161D flash */ -+#define ATMEL_FPGA_PAGE 528 /* FPGA flash page size*/ -+#define ATMEL_SOLOS_PAGE 512 /* Solos flash page size*/ -+#define ATMEL_FPGA_BLOCK (ATMEL_FPGA_PAGE * 8) /* FPGA block size*/ -+#define ATMEL_SOLOS_BLOCK (ATMEL_SOLOS_PAGE * 8) /* Solos block size*/ -+/* Current boards use M25P/M25PE SPI flash */ -+#define SPI_FLASH_BLOCK (256 * 64) - - #define RX_BUF(card, nr) ((card->buffers) + (nr)*(card->buffer_size)*2) - #define TX_BUF(card, nr) ((card->buffers) + (nr)*(card->buffer_size)*2 + (card->buffer_size)) -@@ -128,6 +133,7 @@ struct solos_card { - int using_dma; - int fpga_version; - int buffer_size; -+ int atmel_flash; - }; - - -@@ -631,16 +637,25 @@ static int flash_upgrade(struct solos_card *card, int chip) +@@ -534,16 +637,25 @@ static int flash_upgrade(struct solos_ca switch (chip) { case 0: fw_name = "solos-FPGA.bin"; @@ -297,7 +226,7 @@ index 33c0c2b..2a75bf7 100644 } else { dev_info(&card->dev->dev, "FPGA version doesn't support" " daughter board upgrades\n"); -@@ -650,7 +665,10 @@ static int flash_upgrade(struct solos_card *card, int chip) +@@ -553,7 +665,10 @@ static int flash_upgrade(struct solos_ca case 3: if (card->fpga_version > LEGACY_BUFFERS){ fw_name = "solos-Firmware.bin"; @@ -309,7 +238,7 @@ index 33c0c2b..2a75bf7 100644 } else { dev_info(&card->dev->dev, "FPGA version doesn't support" " daughter board upgrades\n"); -@@ -695,9 +713,13 @@ static int flash_upgrade(struct solos_card *card, int chip) +@@ -598,9 +713,13 @@ static int flash_upgrade(struct solos_ca /* dev_info(&card->dev->dev, "Set FPGA Flash mode to Block Write\n"); */ iowrite32(((chip * 2) + 1), card->config_regs + FLASH_MODE); @@ -325,7 +254,7 @@ index 33c0c2b..2a75bf7 100644 if(card->fpga_version > LEGACY_BUFFERS) iowrite32(word, FLASH_BUF + i); else -@@ -1249,6 +1271,11 @@ static int fpga_probe(struct pci_dev *dev, const struct pci_device_id *id) +@@ -1152,6 +1271,11 @@ static int fpga_probe(struct pci_dev *de db_fpga_upgrade = db_firmware_upgrade = 0; } @@ -337,7 +266,7 @@ index 33c0c2b..2a75bf7 100644 if (card->fpga_version >= DMA_SUPPORTED){ card->using_dma = 1; } else { -@@ -1256,6 +1283,8 @@ static int fpga_probe(struct pci_dev *dev, const struct pci_device_id *id) +@@ -1159,6 +1283,8 @@ static int fpga_probe(struct pci_dev *de /* Set RX empty flag for all ports */ iowrite32(0xF0, card->config_regs + FLAGS_ADDR); } diff --git a/target/linux/generic/patches-3.1/321-powerpc_crtsavres_prereq.patch b/target/linux/generic/patches-3.1/321-powerpc_crtsavres_prereq.patch index df49ad017a..941aa909de 100644 --- a/target/linux/generic/patches-3.1/321-powerpc_crtsavres_prereq.patch +++ b/target/linux/generic/patches-3.1/321-powerpc_crtsavres_prereq.patch @@ -8,4 +8,3 @@ ifeq ($(CONFIG_TUNE_CELL),y) KBUILD_CFLAGS += $(call cc-option,-mtune=cell) - diff --git a/target/linux/generic/patches-3.2/321-powerpc_crtsavres_prereq.patch b/target/linux/generic/patches-3.2/321-powerpc_crtsavres_prereq.patch index df49ad017a..941aa909de 100644 --- a/target/linux/generic/patches-3.2/321-powerpc_crtsavres_prereq.patch +++ b/target/linux/generic/patches-3.2/321-powerpc_crtsavres_prereq.patch @@ -8,4 +8,3 @@ ifeq ($(CONFIG_TUNE_CELL),y) KBUILD_CFLAGS += $(call cc-option,-mtune=cell) - diff --git a/target/linux/generic/patches-3.2/340-module_alloc_size_check.patch b/target/linux/generic/patches-3.2/340-module_alloc_size_check.patch index 6c7e50a0b1..88aa325333 100644 --- a/target/linux/generic/patches-3.2/340-module_alloc_size_check.patch +++ b/target/linux/generic/patches-3.2/340-module_alloc_size_check.patch @@ -1,6 +1,6 @@ --- a/kernel/module.c +++ b/kernel/module.c -@@ -2286,12 +2286,15 @@ +@@ -2283,12 +2283,15 @@ static void dynamic_debug_remove(struct void * __weak module_alloc(unsigned long size) { diff --git a/target/linux/generic/patches-3.3/321-powerpc_crtsavres_prereq.patch b/target/linux/generic/patches-3.3/321-powerpc_crtsavres_prereq.patch index df49ad017a..941aa909de 100644 --- a/target/linux/generic/patches-3.3/321-powerpc_crtsavres_prereq.patch +++ b/target/linux/generic/patches-3.3/321-powerpc_crtsavres_prereq.patch @@ -8,4 +8,3 @@ ifeq ($(CONFIG_TUNE_CELL),y) KBUILD_CFLAGS += $(call cc-option,-mtune=cell) - diff --git a/target/linux/generic/patches-3.3/340-module_alloc_size_check.patch b/target/linux/generic/patches-3.3/340-module_alloc_size_check.patch index 9830bc507c..549df5a667 100644 --- a/target/linux/generic/patches-3.3/340-module_alloc_size_check.patch +++ b/target/linux/generic/patches-3.3/340-module_alloc_size_check.patch @@ -1,6 +1,6 @@ --- a/kernel/module.c +++ b/kernel/module.c -@@ -2322,12 +2322,15 @@ +@@ -2322,12 +2322,15 @@ static void dynamic_debug_remove(struct void * __weak module_alloc(unsigned long size) { |