diff options
Diffstat (limited to 'target')
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 000000000..ef1f2882b --- /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 72ba3cc30..965ddba16 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 f1f69f421..ac61812f7 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 2ec70c174..363c6b159 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 f54fab736..d9f891f8a 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 000000000..a7ee9755a --- /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 000000000..90a9a5c55 --- /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 000000000..426e9d009 --- /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 478019d99..6bfa419bf 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 f1f69f421..ac61812f7 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 2ec70c174..363c6b159 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 f54fab736..d9f891f8a 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 000000000..a7ee9755a --- /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 000000000..90a9a5c55 --- /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 000000000..426e9d009 --- /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 478019d99..6bfa419bf 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 f1f69f421..ac61812f7 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 2ec70c174..363c6b159 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 cf229ce1b..e076cf62b 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 000000000..b18e93fa7 --- /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 000000000..89eab826e --- /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 000000000..fa2526836 --- /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 1181d102b..7f95d3fed 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 788375c1c..969c3b78a 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 aa69ecdc6..00380341a 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 039df694f..0e62140dc 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 c5043c9cc..2e096385c 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 000000000..b18e93fa7 --- /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 000000000..89eab826e --- /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 000000000..fa2526836 --- /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 1181d102b..7f95d3fed 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 19e22d566..2c3b9e48a 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 df49ad017..941aa909d 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 19e22d566..2c3b9e48a 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 df49ad017..941aa909d 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 df49ad017..941aa909d 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 6c7e50a0b..88aa32533 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 df49ad017..941aa909d 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 9830bc507..549df5a66 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)   {  | 
