From: Jonas Gorski Date: Mon, 30 Jun 2014 13:34:37 +0000 (+0000) Subject: brcm63xx: 3.10: backport multi-board support X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=dc230d9b0f9ba046fb1e9e51de21ae35504a9aab;p=openwrt%2Fstaging%2F981213.git brcm63xx: 3.10: backport multi-board support There have been no reported regressions, so backport it to 3.10. Signed-off-by: Jonas Gorski SVN-Revision: 41422 --- diff --git a/target/linux/brcm63xx/config-3.10 b/target/linux/brcm63xx/config-3.10 index 725a827a10..d873bfa9e3 100644 --- a/target/linux/brcm63xx/config-3.10 +++ b/target/linux/brcm63xx/config-3.10 @@ -31,7 +31,7 @@ CONFIG_BCM63XX_OHCI=y CONFIG_BCM63XX_PHY=y CONFIG_BCM63XX_WDT=y CONFIG_BOARD_BCM963XX=y -# CONFIG_BOARD_LIVEBOX is not set +CONFIG_BOARD_LIVEBOX=y CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_CEVT_R4K=y CONFIG_CLONE_BACKWARDS=y diff --git a/target/linux/brcm63xx/patches-3.10/207-MIPS-BCM63XX-move-device-registration-code-into-its-.patch b/target/linux/brcm63xx/patches-3.10/207-MIPS-BCM63XX-move-device-registration-code-into-its-.patch new file mode 100644 index 0000000000..4e5e6117b1 --- /dev/null +++ b/target/linux/brcm63xx/patches-3.10/207-MIPS-BCM63XX-move-device-registration-code-into-its-.patch @@ -0,0 +1,493 @@ +From 5a50cb0d53344a2429831b00925d6183d4d332e1 Mon Sep 17 00:00:00 2001 +From: Jonas Gorski +Date: Sun, 9 Mar 2014 03:54:05 +0100 +Subject: [PATCH 40/44] MIPS: BCM63XX: move device registration code into its + own file + +Move device registration code into its own file to allow sharing it +between board implementations. + +Signed-off-by: Jonas Gorski +--- + arch/mips/bcm63xx/boards/Makefile | 1 + + arch/mips/bcm63xx/boards/board_bcm963xx.c | 188 +------------------------- + arch/mips/bcm63xx/boards/board_common.c | 215 ++++++++++++++++++++++++++++++ + arch/mips/bcm63xx/boards/board_common.h | 8 ++ + 4 files changed, 223 insertions(+), 183 deletions(-) + create mode 100644 arch/mips/bcm63xx/boards/board_common.c + create mode 100644 arch/mips/bcm63xx/boards/board_common.h + +--- a/arch/mips/bcm63xx/boards/Makefile ++++ b/arch/mips/bcm63xx/boards/Makefile +@@ -1 +1,2 @@ ++obj-y += board_common.o + obj-$(CONFIG_BOARD_BCM963XX) += board_bcm963xx.o +--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c ++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c +@@ -10,35 +10,22 @@ + #include + #include + #include +-#include +-#include + #include + #include + #include +-#include + #include + #include + #include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include + #include + ++#include "board_common.h" ++ + #include + + #define PFX "board_bcm963xx: " + + #define HCS_OFFSET_128K 0x20000 + +-static struct board_info board; +- + /* + * known 3368 boards + */ +@@ -711,52 +698,6 @@ static const struct board_info __initcon + }; + + /* +- * Register a sane SPROMv2 to make the on-board +- * bcm4318 WLAN work +- */ +-#ifdef CONFIG_SSB_PCIHOST +-static struct ssb_sprom bcm63xx_sprom = { +- .revision = 0x02, +- .board_rev = 0x17, +- .country_code = 0x0, +- .ant_available_bg = 0x3, +- .pa0b0 = 0x15ae, +- .pa0b1 = 0xfa85, +- .pa0b2 = 0xfe8d, +- .pa1b0 = 0xffff, +- .pa1b1 = 0xffff, +- .pa1b2 = 0xffff, +- .gpio0 = 0xff, +- .gpio1 = 0xff, +- .gpio2 = 0xff, +- .gpio3 = 0xff, +- .maxpwr_bg = 0x004c, +- .itssi_bg = 0x00, +- .boardflags_lo = 0x2848, +- .boardflags_hi = 0x0000, +-}; +- +-int bcm63xx_get_fallback_sprom(struct ssb_bus *bus, struct ssb_sprom *out) +-{ +- if (bus->bustype == SSB_BUSTYPE_PCI) { +- memcpy(out, &bcm63xx_sprom, sizeof(struct ssb_sprom)); +- return 0; +- } else { +- printk(KERN_ERR PFX "unable to fill SPROM for given bustype.\n"); +- return -EINVAL; +- } +-} +-#endif +- +-/* +- * return board name for /proc/cpuinfo +- */ +-const char *board_get_name(void) +-{ +- return board.name; +-} +- +-/* + * early init callback, read nvram data from flash and checksum it + */ + void __init board_prom_init(void) +@@ -801,141 +742,16 @@ void __init board_prom_init(void) + if (strncmp(board_name, bcm963xx_boards[i]->name, 16)) + continue; + /* copy, board desc array is marked initdata */ +- memcpy(&board, bcm963xx_boards[i], sizeof(board)); ++ board_early_setup(bcm963xx_boards[i]); + break; + } + +- /* bail out if board is not found, will complain later */ +- if (!board.name[0]) { ++ /* warn if board is not found, will complain later */ ++ if (i == ARRAY_SIZE(bcm963xx_boards)) { + char name[17]; + memcpy(name, board_name, 16); + name[16] = 0; + printk(KERN_ERR PFX "unknown bcm963xx board: %s\n", + name); +- return; +- } +- +- /* setup pin multiplexing depending on board enabled device, +- * this has to be done this early since PCI init is done +- * inside arch_initcall */ +- val = 0; +- +-#ifdef CONFIG_PCI +- if (board.has_pci) { +- bcm63xx_pci_enabled = 1; +- if (BCMCPU_IS_6348()) +- val |= GPIO_MODE_6348_G2_PCI; +- } +-#endif +- +- if (board.has_pccard) { +- if (BCMCPU_IS_6348()) +- val |= GPIO_MODE_6348_G1_MII_PCCARD; +- } +- +- if (board.has_enet0 && !board.enet0.use_internal_phy) { +- if (BCMCPU_IS_6348()) +- val |= GPIO_MODE_6348_G3_EXT_MII | +- GPIO_MODE_6348_G0_EXT_MII; +- } +- +- if (board.has_enet1 && !board.enet1.use_internal_phy) { +- if (BCMCPU_IS_6348()) +- val |= GPIO_MODE_6348_G3_EXT_MII | +- GPIO_MODE_6348_G0_EXT_MII; +- } +- +- bcm_gpio_writel(val, GPIO_MODE_REG); +-} +- +-/* +- * second stage init callback, good time to panic if we couldn't +- * identify on which board we're running since early printk is working +- */ +-void __init board_setup(void) +-{ +- if (!board.name[0]) +- panic("unable to detect bcm963xx board"); +- printk(KERN_INFO PFX "board name: %s\n", board.name); +- +- /* make sure we're running on expected cpu */ +- if (bcm63xx_get_cpu_id() != board.expected_cpu_id) +- panic("unexpected CPU for bcm963xx board"); +-} +- +-static struct gpio_led_platform_data bcm63xx_led_data; +- +-static struct platform_device bcm63xx_gpio_leds = { +- .name = "leds-gpio", +- .id = 0, +- .dev.platform_data = &bcm63xx_led_data, +-}; +- +-/* +- * third stage init callback, register all board devices. +- */ +-int __init board_register_devices(void) +-{ +- if (board.has_uart0) +- bcm63xx_uart_register(0); +- +- if (board.has_uart1) +- bcm63xx_uart_register(1); +- +- if (board.has_pccard) +- bcm63xx_pcmcia_register(); +- +- if (board.has_enet0 && +- !bcm63xx_nvram_get_mac_address(board.enet0.mac_addr)) +- bcm63xx_enet_register(0, &board.enet0); +- +- if (board.has_enet1 && +- !bcm63xx_nvram_get_mac_address(board.enet1.mac_addr)) +- bcm63xx_enet_register(1, &board.enet1); +- +- if (board.has_enetsw && +- !bcm63xx_nvram_get_mac_address(board.enetsw.mac_addr)) +- bcm63xx_enetsw_register(&board.enetsw); +- +- if (board.has_usbd) +- bcm63xx_usbd_register(&board.usbd); +- +- if (board.has_ehci0) +- bcm63xx_ehci_register(); +- +- if (board.has_ohci0) +- bcm63xx_ohci_register(); +- +- if (board.has_dsp) +- bcm63xx_dsp_register(&board.dsp); +- +- /* Generate MAC address for WLAN and register our SPROM, +- * do this after registering enet devices +- */ +-#ifdef CONFIG_SSB_PCIHOST +- if (!bcm63xx_nvram_get_mac_address(bcm63xx_sprom.il0mac)) { +- memcpy(bcm63xx_sprom.et0mac, bcm63xx_sprom.il0mac, ETH_ALEN); +- memcpy(bcm63xx_sprom.et1mac, bcm63xx_sprom.il0mac, ETH_ALEN); +- if (ssb_arch_register_fallback_sprom( +- &bcm63xx_get_fallback_sprom) < 0) +- pr_err(PFX "failed to register fallback SPROM\n"); + } +-#endif +- +- bcm63xx_spi_register(); +- +- bcm63xx_hsspi_register(); +- +- bcm63xx_flash_register(); +- +- bcm63xx_led_data.num_leds = ARRAY_SIZE(board.leds); +- bcm63xx_led_data.leds = board.leds; +- +- platform_device_register(&bcm63xx_gpio_leds); +- +- if (board.ephy_reset_gpio && board.ephy_reset_gpio_flags) +- gpio_request_one(board.ephy_reset_gpio, +- board.ephy_reset_gpio_flags, "ephy-reset"); +- +- return 0; + } +--- /dev/null ++++ b/arch/mips/bcm63xx/boards/board_common.c +@@ -0,0 +1,217 @@ ++/* ++ * This file is subject to the terms and conditions of the GNU General Public ++ * License. See the file "COPYING" in the main directory of this archive ++ * for more details. ++ * ++ * Copyright (C) 2008 Maxime Bizon ++ * Copyright (C) 2008 Florian Fainelli ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define PFX "board: " ++ ++static struct board_info board; ++ ++/* ++ * Register a sane SPROMv2 to make the on-board ++ * bcm4318 WLAN work ++ */ ++#ifdef CONFIG_SSB_PCIHOST ++static struct ssb_sprom bcm63xx_sprom = { ++ .revision = 0x02, ++ .board_rev = 0x17, ++ .country_code = 0x0, ++ .ant_available_bg = 0x3, ++ .pa0b0 = 0x15ae, ++ .pa0b1 = 0xfa85, ++ .pa0b2 = 0xfe8d, ++ .pa1b0 = 0xffff, ++ .pa1b1 = 0xffff, ++ .pa1b2 = 0xffff, ++ .gpio0 = 0xff, ++ .gpio1 = 0xff, ++ .gpio2 = 0xff, ++ .gpio3 = 0xff, ++ .maxpwr_bg = 0x004c, ++ .itssi_bg = 0x00, ++ .boardflags_lo = 0x2848, ++ .boardflags_hi = 0x0000, ++}; ++ ++int bcm63xx_get_fallback_sprom(struct ssb_bus *bus, struct ssb_sprom *out) ++{ ++ if (bus->bustype == SSB_BUSTYPE_PCI) { ++ memcpy(out, &bcm63xx_sprom, sizeof(struct ssb_sprom)); ++ return 0; ++ } else { ++ printk(KERN_ERR PFX "unable to fill SPROM for given bustype.\n"); ++ return -EINVAL; ++ } ++} ++#endif ++ ++/* ++ * return board name for /proc/cpuinfo ++ */ ++const char *board_get_name(void) ++{ ++ return board.name; ++} ++ ++/* ++ * setup board for device registration ++ */ ++void __init board_early_setup(const struct board_info *target) ++{ ++ u32 val; ++ ++ memcpy(&board, target, sizeof(board)); ++ ++ /* setup pin multiplexing depending on board enabled device, ++ * this has to be done this early since PCI init is done ++ * inside arch_initcall */ ++ val = 0; ++ ++#ifdef CONFIG_PCI ++ if (board.has_pci) { ++ bcm63xx_pci_enabled = 1; ++ if (BCMCPU_IS_6348()) ++ val |= GPIO_MODE_6348_G2_PCI; ++ } ++#endif ++ ++ if (board.has_pccard) { ++ if (BCMCPU_IS_6348()) ++ val |= GPIO_MODE_6348_G1_MII_PCCARD; ++ } ++ ++ if (board.has_enet0 && !board.enet0.use_internal_phy) { ++ if (BCMCPU_IS_6348()) ++ val |= GPIO_MODE_6348_G3_EXT_MII | ++ GPIO_MODE_6348_G0_EXT_MII; ++ } ++ ++ if (board.has_enet1 && !board.enet1.use_internal_phy) { ++ if (BCMCPU_IS_6348()) ++ val |= GPIO_MODE_6348_G3_EXT_MII | ++ GPIO_MODE_6348_G0_EXT_MII; ++ } ++ ++ bcm_gpio_writel(val, GPIO_MODE_REG); ++} ++ ++ ++/* ++ * second stage init callback, good time to panic if we couldn't ++ * identify on which board we're running since early printk is working ++ */ ++void __init board_setup(void) ++{ ++ if (!board.name[0]) ++ panic("unable to detect bcm963xx board"); ++ printk(KERN_INFO PFX "board name: %s\n", board.name); ++ ++ /* make sure we're running on expected cpu */ ++ if (bcm63xx_get_cpu_id() != board.expected_cpu_id) ++ panic("unexpected CPU for bcm963xx board"); ++} ++ ++static struct gpio_led_platform_data bcm63xx_led_data; ++ ++static struct platform_device bcm63xx_gpio_leds = { ++ .name = "leds-gpio", ++ .id = 0, ++ .dev.platform_data = &bcm63xx_led_data, ++}; ++ ++/* ++ * third stage init callback, register all board devices. ++ */ ++int __init board_register_devices(void) ++{ ++ if (board.has_uart0) ++ bcm63xx_uart_register(0); ++ ++ if (board.has_uart1) ++ bcm63xx_uart_register(1); ++ ++ if (board.has_pccard) ++ bcm63xx_pcmcia_register(); ++ ++ if (board.has_enet0 && ++ !bcm63xx_nvram_get_mac_address(board.enet0.mac_addr)) ++ bcm63xx_enet_register(0, &board.enet0); ++ ++ if (board.has_enet1 && ++ !bcm63xx_nvram_get_mac_address(board.enet1.mac_addr)) ++ bcm63xx_enet_register(1, &board.enet1); ++ ++ if (board.has_enetsw && ++ !bcm63xx_nvram_get_mac_address(board.enetsw.mac_addr)) ++ bcm63xx_enetsw_register(&board.enetsw); ++ ++ if (board.has_usbd) ++ bcm63xx_usbd_register(&board.usbd); ++ ++ if (board.has_ehci0) ++ bcm63xx_ehci_register(); ++ ++ if (board.has_ohci0) ++ bcm63xx_ohci_register(); ++ ++ if (board.has_dsp) ++ bcm63xx_dsp_register(&board.dsp); ++ ++ /* Generate MAC address for WLAN and register our SPROM, ++ * do this after registering enet devices ++ */ ++#ifdef CONFIG_SSB_PCIHOST ++ if (!bcm63xx_nvram_get_mac_address(bcm63xx_sprom.il0mac)) { ++ memcpy(bcm63xx_sprom.et0mac, bcm63xx_sprom.il0mac, ETH_ALEN); ++ memcpy(bcm63xx_sprom.et1mac, bcm63xx_sprom.il0mac, ETH_ALEN); ++ if (ssb_arch_register_fallback_sprom( ++ &bcm63xx_get_fallback_sprom) < 0) ++ pr_err(PFX "failed to register fallback SPROM\n"); ++ } ++#endif ++ ++ bcm63xx_spi_register(); ++ ++ bcm63xx_hsspi_register(); ++ ++ bcm63xx_flash_register(); ++ ++ bcm63xx_led_data.num_leds = ARRAY_SIZE(board.leds); ++ bcm63xx_led_data.leds = board.leds; ++ ++ platform_device_register(&bcm63xx_gpio_leds); ++ ++ if (board.ephy_reset_gpio && board.ephy_reset_gpio_flags) ++ gpio_request_one(board.ephy_reset_gpio, ++ board.ephy_reset_gpio_flags, "ephy-reset"); ++ ++ return 0; ++} +--- /dev/null ++++ b/arch/mips/bcm63xx/boards/board_common.h +@@ -0,0 +1,8 @@ ++#ifndef __BOARD_COMMON_H ++#define __BOARD_COMMON_H ++ ++#include ++ ++void board_early_setup(const struct board_info *board); ++ ++#endif /* __BOARD_COMMON_H */ diff --git a/target/linux/brcm63xx/patches-3.10/208-MIPS-BCM63XX-pass-a-mac-addresss-allocator-to-board-.patch b/target/linux/brcm63xx/patches-3.10/208-MIPS-BCM63XX-pass-a-mac-addresss-allocator-to-board-.patch new file mode 100644 index 0000000000..877030f866 --- /dev/null +++ b/target/linux/brcm63xx/patches-3.10/208-MIPS-BCM63XX-pass-a-mac-addresss-allocator-to-board-.patch @@ -0,0 +1,100 @@ +From 4e9c34a37bd3442b286ba55441bfe22c1ac5b65f Mon Sep 17 00:00:00 2001 +From: Jonas Gorski +Date: Sun, 9 Mar 2014 04:08:06 +0100 +Subject: [PATCH 41/44] MIPS: BCM63XX: pass a mac addresss allocator to board + setup + +Pass a mac address allocator to board setup code to allow board +implementations to work with third party bootloaders not using nvram +for configuration storage. + +Signed-off-by: Jonas Gorski +--- + arch/mips/bcm63xx/boards/board_bcm963xx.c | 3 ++- + arch/mips/bcm63xx/boards/board_common.c | 16 ++++++++++------ + arch/mips/bcm63xx/boards/board_common.h | 3 ++- + 3 files changed, 14 insertions(+), 8 deletions(-) + +--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c ++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c +@@ -742,7 +742,8 @@ void __init board_prom_init(void) + if (strncmp(board_name, bcm963xx_boards[i]->name, 16)) + continue; + /* copy, board desc array is marked initdata */ +- board_early_setup(bcm963xx_boards[i]); ++ board_early_setup(bcm963xx_boards[i], ++ bcm63xx_nvram_get_mac_address); + break; + } + +--- a/arch/mips/bcm63xx/boards/board_common.c ++++ b/arch/mips/bcm63xx/boards/board_common.c +@@ -18,7 +18,6 @@ + #include + #include + #include +-#include + #include + #include + #include +@@ -81,15 +80,20 @@ const char *board_get_name(void) + return board.name; + } + ++static int (*board_get_mac_address)(u8 mac[ETH_ALEN]); ++ + /* + * setup board for device registration + */ +-void __init board_early_setup(const struct board_info *target) ++void __init board_early_setup(const struct board_info *target, ++ int (*get_mac_address)(u8 mac[ETH_ALEN])) + { + u32 val; + + memcpy(&board, target, sizeof(board)); + ++ board_get_mac_address = get_mac_address; ++ + /* setup pin multiplexing depending on board enabled device, + * this has to be done this early since PCI init is done + * inside arch_initcall */ +@@ -162,15 +166,15 @@ int __init board_register_devices(void) + bcm63xx_pcmcia_register(); + + if (board.has_enet0 && +- !bcm63xx_nvram_get_mac_address(board.enet0.mac_addr)) ++ !board_get_mac_address(board.enet0.mac_addr)) + bcm63xx_enet_register(0, &board.enet0); + + if (board.has_enet1 && +- !bcm63xx_nvram_get_mac_address(board.enet1.mac_addr)) ++ !board_get_mac_address(board.enet1.mac_addr)) + bcm63xx_enet_register(1, &board.enet1); + + if (board.has_enetsw && +- !bcm63xx_nvram_get_mac_address(board.enetsw.mac_addr)) ++ !board_get_mac_address(board.enetsw.mac_addr)) + bcm63xx_enetsw_register(&board.enetsw); + + if (board.has_usbd) +@@ -189,7 +193,7 @@ int __init board_register_devices(void) + * do this after registering enet devices + */ + #ifdef CONFIG_SSB_PCIHOST +- if (!bcm63xx_nvram_get_mac_address(bcm63xx_sprom.il0mac)) { ++ if (!board_get_mac_address(bcm63xx_sprom.il0mac)) { + memcpy(bcm63xx_sprom.et0mac, bcm63xx_sprom.il0mac, ETH_ALEN); + memcpy(bcm63xx_sprom.et1mac, bcm63xx_sprom.il0mac, ETH_ALEN); + if (ssb_arch_register_fallback_sprom( +--- a/arch/mips/bcm63xx/boards/board_common.h ++++ b/arch/mips/bcm63xx/boards/board_common.h +@@ -3,6 +3,7 @@ + + #include + +-void board_early_setup(const struct board_info *board); ++void board_early_setup(const struct board_info *board, ++ int (*get_mac_address)(u8 mac[ETH_ALEN])); + + #endif /* __BOARD_COMMON_H */ diff --git a/target/linux/brcm63xx/patches-3.10/300-reset_buttons.patch b/target/linux/brcm63xx/patches-3.10/300-reset_buttons.patch index 0886f6c5fc..c64d405496 100644 --- a/target/linux/brcm63xx/patches-3.10/300-reset_buttons.patch +++ b/target/linux/brcm63xx/patches-3.10/300-reset_buttons.patch @@ -1,25 +1,25 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -12,6 +12,8 @@ +@@ -10,6 +10,8 @@ + #include + #include #include - #include - #include +#include +#include #include #include #include -@@ -37,6 +39,9 @@ +@@ -26,6 +28,9 @@ #define HCS_OFFSET_128K 0x20000 +#define BCM963XX_KEYS_POLL_INTERVAL 20 +#define BCM963XX_KEYS_DEBOUNCE_INTERVAL (BCM963XX_KEYS_POLL_INTERVAL * 3) + - static struct board_info board; - /* -@@ -380,6 +385,16 @@ static struct board_info __initdata boar + * known 3368 boards + */ +@@ -367,6 +372,16 @@ static struct board_info __initdata boar .active_low = 1, }, }, @@ -36,7 +36,7 @@ }; static struct board_info __initdata board_96348gw = { -@@ -438,6 +453,16 @@ static struct board_info __initdata boar +@@ -425,6 +440,16 @@ static struct board_info __initdata boar .active_low = 1, }, }, @@ -53,7 +53,26 @@ }; static struct board_info __initdata board_FAST2404 = { -@@ -871,11 +896,23 @@ static struct platform_device bcm63xx_gp +--- a/arch/mips/bcm63xx/boards/board_common.c ++++ b/arch/mips/bcm63xx/boards/board_common.c +@@ -12,6 +12,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -32,6 +33,8 @@ + + #define PFX "board: " + ++#define BCM963XX_KEYS_POLL_INTERVAL 20 ++ + static struct board_info board; + + /* +@@ -151,11 +154,23 @@ static struct platform_device bcm63xx_gp .dev.platform_data = &bcm63xx_led_data, }; @@ -77,7 +96,7 @@ if (board.has_uart0) bcm63xx_uart_register(0); -@@ -937,5 +974,16 @@ int __init board_register_devices(void) +@@ -217,5 +232,16 @@ int __init board_register_devices(void) gpio_request_one(board.ephy_reset_gpio, board.ephy_reset_gpio_flags, "ephy-reset"); diff --git a/target/linux/brcm63xx/patches-3.10/301-led_count.patch b/target/linux/brcm63xx/patches-3.10/301-led_count.patch index 5b9a12e96e..49a18255d2 100644 --- a/target/linux/brcm63xx/patches-3.10/301-led_count.patch +++ b/target/linux/brcm63xx/patches-3.10/301-led_count.patch @@ -1,6 +1,6 @@ ---- a/arch/mips/bcm63xx/boards/board_bcm963xx.c -+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -912,6 +912,7 @@ static struct platform_device bcm63xx_gp +--- a/arch/mips/bcm63xx/boards/board_common.c ++++ b/arch/mips/bcm63xx/boards/board_common.c +@@ -170,6 +170,7 @@ static struct platform_device bcm63xx_gp int __init board_register_devices(void) { int button_count = 0; @@ -8,7 +8,7 @@ if (board.has_uart0) bcm63xx_uart_register(0); -@@ -965,10 +966,16 @@ int __init board_register_devices(void) +@@ -223,10 +224,16 @@ int __init board_register_devices(void) bcm63xx_flash_register(); diff --git a/target/linux/brcm63xx/patches-3.10/302-extended-platform-devices.patch b/target/linux/brcm63xx/patches-3.10/302-extended-platform-devices.patch index 2810b6f629..cc61cee477 100644 --- a/target/linux/brcm63xx/patches-3.10/302-extended-platform-devices.patch +++ b/target/linux/brcm63xx/patches-3.10/302-extended-platform-devices.patch @@ -1,6 +1,6 @@ ---- a/arch/mips/bcm63xx/boards/board_bcm963xx.c -+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -964,6 +964,9 @@ int __init board_register_devices(void) +--- a/arch/mips/bcm63xx/boards/board_common.c ++++ b/arch/mips/bcm63xx/boards/board_common.c +@@ -222,6 +222,9 @@ int __init board_register_devices(void) bcm63xx_hsspi_register(); diff --git a/target/linux/brcm63xx/patches-3.10/303-spi-board-info.patch b/target/linux/brcm63xx/patches-3.10/303-spi-board-info.patch index 0258710f0b..878e6262d4 100644 --- a/target/linux/brcm63xx/patches-3.10/303-spi-board-info.patch +++ b/target/linux/brcm63xx/patches-3.10/303-spi-board-info.patch @@ -1,14 +1,14 @@ ---- a/arch/mips/bcm63xx/boards/board_bcm963xx.c -+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -14,6 +14,7 @@ +--- a/arch/mips/bcm63xx/boards/board_common.c ++++ b/arch/mips/bcm63xx/boards/board_common.c +@@ -13,6 +13,7 @@ + #include #include #include - #include +#include #include #include #include -@@ -967,6 +968,9 @@ int __init board_register_devices(void) +@@ -225,6 +226,9 @@ int __init board_register_devices(void) if (board.num_devs) platform_add_devices(board.devs, board.num_devs); diff --git a/target/linux/brcm63xx/patches-3.10/304-boardid_fixup.patch b/target/linux/brcm63xx/patches-3.10/304-boardid_fixup.patch index 937b9d64f3..33744fdab6 100644 --- a/target/linux/brcm63xx/patches-3.10/304-boardid_fixup.patch +++ b/target/linux/brcm63xx/patches-3.10/304-boardid_fixup.patch @@ -1,26 +1,26 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -35,6 +35,7 @@ - #include +@@ -23,6 +23,7 @@ + #include "board_common.h" #include +#include #define PFX "board_bcm963xx: " -@@ -43,6 +44,9 @@ - #define BCM963XX_KEYS_POLL_INTERVAL 20 - #define BCM963XX_KEYS_DEBOUNCE_INTERVAL (BCM963XX_KEYS_POLL_INTERVAL * 3) +@@ -339,6 +340,9 @@ static struct board_info __initdata boar + .force_duplex_full = 1, + }, +#define CFE_OFFSET_64K 0x10000 +#define CFE_OFFSET_128K 0x20000 + - static struct board_info board; - /* -@@ -782,6 +786,30 @@ const char *board_get_name(void) - return board.name; - } + .has_ohci0 = 1, + .has_pccard = 1, +@@ -722,6 +726,30 @@ static const struct board_info __initcon + #endif + }; +static void __init boardid_fixup(u8 *boot_addr) +{ @@ -49,7 +49,7 @@ /* * early init callback, read nvram data from flash and checksum it */ -@@ -820,6 +848,10 @@ void __init board_prom_init(void) +@@ -760,6 +788,10 @@ void __init board_prom_init(void) hcs = (struct bcm_hcs *)boot_addr; board_name = hcs->filename; } else { diff --git a/target/linux/brcm63xx/patches-3.10/308-board_leds_naming.patch b/target/linux/brcm63xx/patches-3.10/308-board_leds_naming.patch index 0064066803..fe4675521b 100644 --- a/target/linux/brcm63xx/patches-3.10/308-board_leds_naming.patch +++ b/target/linux/brcm63xx/patches-3.10/308-board_leds_naming.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -148,28 +148,28 @@ static struct board_info __initdata boar +@@ -131,28 +131,28 @@ static struct board_info __initdata boar .leds = { { @@ -34,7 +34,7 @@ .gpio = 1, .active_low = 1, } -@@ -189,28 +189,28 @@ static struct board_info __initdata boar +@@ -172,28 +172,28 @@ static struct board_info __initdata boar .leds = { { @@ -68,7 +68,7 @@ .gpio = 1, .active_low = 1, }, -@@ -249,29 +249,29 @@ static struct board_info __initdata boar +@@ -232,29 +232,29 @@ static struct board_info __initdata boar .leds = { { @@ -103,7 +103,7 @@ .gpio = 1, .active_low = 1, }, -@@ -310,28 +310,28 @@ static struct board_info __initdata boar +@@ -293,28 +293,28 @@ static struct board_info __initdata boar .leds = { { @@ -137,7 +137,7 @@ .gpio = 1, .active_low = 1, }, -@@ -364,28 +364,28 @@ static struct board_info __initdata boar +@@ -350,28 +350,28 @@ static struct board_info __initdata boar .leds = { { @@ -171,7 +171,7 @@ .gpio = 1, .active_low = 1, }, -@@ -432,28 +432,28 @@ static struct board_info __initdata boar +@@ -418,28 +418,28 @@ static struct board_info __initdata boar .leds = { { @@ -205,7 +205,7 @@ .gpio = 1, .active_low = 1, }, -@@ -585,27 +585,27 @@ static struct board_info __initdata boar +@@ -571,27 +571,27 @@ static struct board_info __initdata boar .leds = { { @@ -238,7 +238,7 @@ .gpio = 5, }, }, -@@ -637,22 +637,22 @@ static struct board_info __initdata boar +@@ -623,22 +623,22 @@ static struct board_info __initdata boar .leds = { { diff --git a/target/linux/brcm63xx/patches-3.10/309-cfe_version_mod.patch b/target/linux/brcm63xx/patches-3.10/309-cfe_version_mod.patch index dfc33841ea..7f2d1ec992 100644 --- a/target/linux/brcm63xx/patches-3.10/309-cfe_version_mod.patch +++ b/target/linux/brcm63xx/patches-3.10/309-cfe_version_mod.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -835,10 +835,20 @@ void __init board_prom_init(void) +@@ -775,10 +775,20 @@ void __init board_prom_init(void) /* dump cfe version */ cfe = boot_addr + BCM963XX_CFE_VERSION_OFFSET; diff --git a/target/linux/brcm63xx/patches-3.10/339-MIPS-BCM63XX-add-support-for-BCM63268.patch b/target/linux/brcm63xx/patches-3.10/339-MIPS-BCM63XX-add-support-for-BCM63268.patch index d3447cedd4..897ba1de74 100644 --- a/target/linux/brcm63xx/patches-3.10/339-MIPS-BCM63XX-add-support-for-BCM63268.patch +++ b/target/linux/brcm63xx/patches-3.10/339-MIPS-BCM63XX-add-support-for-BCM63268.patch @@ -35,7 +35,7 @@ Signed-off-by: Jonas Gorski source "arch/mips/bcm63xx/boards/Kconfig" --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -825,7 +825,7 @@ void __init board_prom_init(void) +@@ -765,7 +765,7 @@ void __init board_prom_init(void) /* read base address of boot chip select (0) * 6328/6362 do not have MPI but boot from a fixed address */ diff --git a/target/linux/brcm63xx/patches-3.10/341-MIPS-BCM63XX-add-support-for-BCM6318.patch b/target/linux/brcm63xx/patches-3.10/341-MIPS-BCM63XX-add-support-for-BCM6318.patch index 46aea36e75..b78298b03a 100644 --- a/target/linux/brcm63xx/patches-3.10/341-MIPS-BCM63XX-add-support-for-BCM6318.patch +++ b/target/linux/brcm63xx/patches-3.10/341-MIPS-BCM63XX-add-support-for-BCM6318.patch @@ -35,7 +35,7 @@ Subject: [PATCH 51/53] MIPS: BCM63XX: add support for BCM6318 select SYS_HAS_CPU_BMIPS4350 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -825,7 +825,7 @@ void __init board_prom_init(void) +@@ -765,7 +765,7 @@ void __init board_prom_init(void) /* read base address of boot chip select (0) * 6328/6362 do not have MPI but boot from a fixed address */ diff --git a/target/linux/brcm63xx/patches-3.10/347-MIPS-BCM6318-USB-support.patch b/target/linux/brcm63xx/patches-3.10/347-MIPS-BCM6318-USB-support.patch index cd4189be5e..a3807b3c2e 100644 --- a/target/linux/brcm63xx/patches-3.10/347-MIPS-BCM6318-USB-support.patch +++ b/target/linux/brcm63xx/patches-3.10/347-MIPS-BCM6318-USB-support.patch @@ -93,9 +93,9 @@ /************************************************************************* * _REG relative to RSET_USBD ---- a/arch/mips/bcm63xx/boards/board_bcm963xx.c -+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -914,6 +914,15 @@ void __init board_prom_init(void) +--- a/arch/mips/bcm63xx/boards/board_common.c ++++ b/arch/mips/bcm63xx/boards/board_common.c +@@ -129,6 +129,15 @@ void __init board_early_setup(const stru } bcm_gpio_writel(val, GPIO_MODE_REG); @@ -110,7 +110,7 @@ +#endif } - /* + --- a/arch/mips/bcm63xx/Kconfig +++ b/arch/mips/bcm63xx/Kconfig @@ -22,6 +22,8 @@ config BCM63XX_CPU_6318 diff --git a/target/linux/brcm63xx/patches-3.10/350-MIPS-BCM63XX-support-settings-num-usbh-ports.patch b/target/linux/brcm63xx/patches-3.10/350-MIPS-BCM63XX-support-settings-num-usbh-ports.patch index 43709afd2e..41747da2d9 100644 --- a/target/linux/brcm63xx/patches-3.10/350-MIPS-BCM63XX-support-settings-num-usbh-ports.patch +++ b/target/linux/brcm63xx/patches-3.10/350-MIPS-BCM63XX-support-settings-num-usbh-ports.patch @@ -28,9 +28,9 @@ +int bcm63xx_ohci_register(unsigned int num_ports); #endif /* BCM63XX_DEV_USB_OHCI_H_ */ ---- a/arch/mips/bcm63xx/boards/board_bcm963xx.c -+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -965,6 +965,7 @@ int __init board_register_devices(void) +--- a/arch/mips/bcm63xx/boards/board_common.c ++++ b/arch/mips/bcm63xx/boards/board_common.c +@@ -181,6 +181,7 @@ int __init board_register_devices(void) { int button_count = 0; int led_count = 0; @@ -38,8 +38,8 @@ if (board.has_uart0) bcm63xx_uart_register(0); -@@ -987,14 +988,21 @@ int __init board_register_devices(void) - !bcm63xx_nvram_get_mac_address(board.enetsw.mac_addr)) +@@ -203,14 +204,21 @@ int __init board_register_devices(void) + !board_get_mac_address(board.enetsw.mac_addr)) bcm63xx_enetsw_register(&board.enetsw); + if ((board.has_ohci0 || board.has_ehci0)) { diff --git a/target/linux/brcm63xx/patches-3.10/351-set-board-usbh-ports.patch b/target/linux/brcm63xx/patches-3.10/351-set-board-usbh-ports.patch index e007ddd272..3222fe2557 100644 --- a/target/linux/brcm63xx/patches-3.10/351-set-board-usbh-ports.patch +++ b/target/linux/brcm63xx/patches-3.10/351-set-board-usbh-ports.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -634,6 +634,7 @@ static struct board_info __initdata boar +@@ -620,6 +620,7 @@ static struct board_info __initdata boar .has_ohci0 = 1, .has_pccard = 1, .has_ehci0 = 1, diff --git a/target/linux/brcm63xx/patches-3.10/354-MIPS-BCM63XX-allow-building-support-for-more-than-on.patch b/target/linux/brcm63xx/patches-3.10/354-MIPS-BCM63XX-allow-building-support-for-more-than-on.patch new file mode 100644 index 0000000000..4eff378958 --- /dev/null +++ b/target/linux/brcm63xx/patches-3.10/354-MIPS-BCM63XX-allow-building-support-for-more-than-on.patch @@ -0,0 +1,95 @@ +From 0daf361ea799fba0af5a232036d0f06cea85ad24 Mon Sep 17 00:00:00 2001 +From: Jonas Gorski +Date: Sat, 21 Jun 2014 12:47:49 +0200 +Subject: [PATCH 42/44] MIPS: BCM63XX: allow building support for more than one + board type + +Use the arguments passed to the kernel to detect being booted with +CFE as the indicator for bcm963xx board support, allowing the +non presence of CFE_EPTSEAL to assume a different board type. + +Signed-off-by: Jonas Gorski +--- + arch/mips/bcm63xx/boards/Kconfig | 7 +++---- + arch/mips/bcm63xx/boards/board_bcm963xx.c | 2 +- + arch/mips/bcm63xx/boards/board_common.c | 13 +++++++++++++ + arch/mips/bcm63xx/boards/board_common.h | 6 ++++++ + 4 files changed, 23 insertions(+), 5 deletions(-) + +--- a/arch/mips/bcm63xx/boards/Kconfig ++++ b/arch/mips/bcm63xx/boards/Kconfig +@@ -1,11 +1,10 @@ +-choice +- prompt "Board support" ++menu "Board support" + depends on BCM63XX +- default BOARD_BCM963XX + + config BOARD_BCM963XX + bool "Generic Broadcom 963xx boards" + select SSB ++ default y + help + +-endchoice ++endmenu +--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c ++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c +@@ -754,7 +754,7 @@ static void __init boardid_fixup(u8 *boo + /* + * early init callback, read nvram data from flash and checksum it + */ +-void __init board_prom_init(void) ++void __init board_bcm963xx_init(void) + { + unsigned int i; + u8 *boot_addr, *cfe; +--- a/arch/mips/bcm63xx/boards/board_common.c ++++ b/arch/mips/bcm63xx/boards/board_common.c +@@ -15,6 +15,8 @@ + #include + #include + #include ++#include ++#include + #include + #include + #include +@@ -32,6 +34,8 @@ + #include + #include + ++#include "board_common.h" ++ + #define PFX "board: " + + #define BCM963XX_KEYS_POLL_INTERVAL 20 +@@ -84,6 +88,15 @@ const char *board_get_name(void) + return board.name; + } + ++void __init board_prom_init(void) ++{ ++ /* detect bootloader */ ++ if (fw_arg3 == CFE_EPTSEAL) ++ board_bcm963xx_init(); ++ else ++ panic("unsupported bootloader detected"); ++} ++ + static int (*board_get_mac_address)(u8 mac[ETH_ALEN]); + + /* +--- a/arch/mips/bcm63xx/boards/board_common.h ++++ b/arch/mips/bcm63xx/boards/board_common.h +@@ -6,4 +6,10 @@ + void board_early_setup(const struct board_info *board, + int (*get_mac_address)(u8 mac[ETH_ALEN])); + ++#if defined(CONFIG_BOARD_BCM963XX) ++void board_bcm963xx_init(void); ++#else ++static inline void board_bcm963xx_init(void) { } ++#endif ++ + #endif /* __BOARD_COMMON_H */ diff --git a/target/linux/brcm63xx/patches-3.10/355-MIPS-BCM63XX-allow-board-implementations-to-force-fl.patch b/target/linux/brcm63xx/patches-3.10/355-MIPS-BCM63XX-allow-board-implementations-to-force-fl.patch new file mode 100644 index 0000000000..7e408f69fb --- /dev/null +++ b/target/linux/brcm63xx/patches-3.10/355-MIPS-BCM63XX-allow-board-implementations-to-force-fl.patch @@ -0,0 +1,61 @@ +From 8a30097a899b975709f728666d5ad20c8b832d21 Mon Sep 17 00:00:00 2001 +From: Jonas Gorski +Date: Sun, 9 Mar 2014 04:28:14 +0100 +Subject: [PATCH 43/44] MIPS: BCM63XX: allow board implementations to force + flash address + +Allow board implementations to force the physmap address. + +Signed-off-by: Jonas Gorski +--- + arch/mips/bcm63xx/dev-flash.c | 19 ++++++++++++++----- + .../mips/include/asm/mach-bcm63xx/bcm63xx_dev_flash.h | 2 ++ + 2 files changed, 16 insertions(+), 5 deletions(-) + +--- a/arch/mips/bcm63xx/dev-flash.c ++++ b/arch/mips/bcm63xx/dev-flash.c +@@ -57,6 +57,12 @@ static struct platform_device mtd_dev = + }, + }; + ++void __init bcm63xx_flash_force_phys_base_address(u32 start, u32 end) ++{ ++ mtd_resources[0].start = start; ++ mtd_resources[0].end = end; ++} ++ + static int __init bcm63xx_detect_flash_type(void) + { + u32 val; +@@ -158,12 +164,15 @@ int __init bcm63xx_flash_register(void) + + switch (flash_type) { + case BCM63XX_FLASH_TYPE_PARALLEL: +- /* read base address of boot chip select (0) */ +- val = bcm_mpi_readl(MPI_CSBASE_REG(0)); +- val &= MPI_CSBASE_BASE_MASK; + +- mtd_resources[0].start = val; +- mtd_resources[0].end = 0x1FFFFFFF; ++ if (!mtd_resources[0].start) { ++ /* read base address of boot chip select (0) */ ++ val = bcm_mpi_readl(MPI_CSBASE_REG(0)); ++ val &= MPI_CSBASE_BASE_MASK; ++ ++ mtd_resources[0].start = val; ++ mtd_resources[0].end = 0x1FFFFFFF; ++ } + + return platform_device_register(&mtd_dev); + case BCM63XX_FLASH_TYPE_SERIAL: +--- a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_flash.h ++++ b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_flash.h +@@ -9,6 +9,8 @@ enum { + + void bcm63xx_flash_detect(void); + ++void bcm63xx_flash_force_phys_base_address(u32 start, u32 end); ++ + int __init bcm63xx_flash_register(void); + + #endif /* __BCM63XX_FLASH_H */ diff --git a/target/linux/brcm63xx/patches-3.10/403-6358-enet1-external-mii-clk.patch b/target/linux/brcm63xx/patches-3.10/403-6358-enet1-external-mii-clk.patch index 6f4f8d926e..dcb71b8e8b 100644 --- a/target/linux/brcm63xx/patches-3.10/403-6358-enet1-external-mii-clk.patch +++ b/target/linux/brcm63xx/patches-3.10/403-6358-enet1-external-mii-clk.patch @@ -1,6 +1,6 @@ ---- a/arch/mips/bcm63xx/boards/board_bcm963xx.c -+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -912,6 +912,8 @@ void __init board_prom_init(void) +--- a/arch/mips/bcm63xx/boards/board_common.c ++++ b/arch/mips/bcm63xx/boards/board_common.c +@@ -139,6 +139,8 @@ void __init board_early_setup(const stru if (BCMCPU_IS_6348()) val |= GPIO_MODE_6348_G3_EXT_MII | GPIO_MODE_6348_G0_EXT_MII; diff --git a/target/linux/brcm63xx/patches-3.10/411-MIPS-BCM63XX-Register-SPI-flash-if-present.patch b/target/linux/brcm63xx/patches-3.10/411-MIPS-BCM63XX-Register-SPI-flash-if-present.patch index 76a8754ec5..f5ef8a35f2 100644 --- a/target/linux/brcm63xx/patches-3.10/411-MIPS-BCM63XX-Register-SPI-flash-if-present.patch +++ b/target/linux/brcm63xx/patches-3.10/411-MIPS-BCM63XX-Register-SPI-flash-if-present.patch @@ -24,9 +24,9 @@ Signed-off-by: Jonas Gorski #include #include -@@ -57,6 +60,21 @@ static struct platform_device mtd_dev = - }, - }; +@@ -63,6 +66,21 @@ void __init bcm63xx_flash_force_phys_bas + mtd_resources[0].end = end; + } +static struct flash_platform_data bcm63xx_flash_data = { + .part_probe_types = bcm63xx_part_types, @@ -46,7 +46,7 @@ Signed-off-by: Jonas Gorski static int __init bcm63xx_detect_flash_type(void) { u32 val; -@@ -64,9 +82,15 @@ static int __init bcm63xx_detect_flash_t +@@ -70,9 +88,15 @@ static int __init bcm63xx_detect_flash_t switch (bcm63xx_get_cpu_id()) { case BCM6318_CPU_ID: /* only support serial flash */ @@ -62,7 +62,7 @@ Signed-off-by: Jonas Gorski if (val & STRAPBUS_6328_BOOT_SEL_SERIAL) return BCM63XX_FLASH_TYPE_SERIAL; else -@@ -85,12 +109,20 @@ static int __init bcm63xx_detect_flash_t +@@ -91,12 +115,20 @@ static int __init bcm63xx_detect_flash_t return BCM63XX_FLASH_TYPE_SERIAL; case BCM6362_CPU_ID: val = bcm_misc_readl(MISC_STRAPBUS_6362_REG); @@ -83,7 +83,7 @@ Signed-off-by: Jonas Gorski switch (val & STRAPBUS_6368_BOOT_SEL_MASK) { case STRAPBUS_6368_BOOT_SEL_NAND: return BCM63XX_FLASH_TYPE_NAND; -@@ -101,6 +133,11 @@ static int __init bcm63xx_detect_flash_t +@@ -107,6 +139,11 @@ static int __init bcm63xx_detect_flash_t } case BCM63268_CPU_ID: val = bcm_misc_readl(MISC_STRAPBUS_63268_REG); @@ -95,7 +95,7 @@ Signed-off-by: Jonas Gorski if (val & STRAPBUS_63268_BOOT_SEL_SERIAL) return BCM63XX_FLASH_TYPE_SERIAL; else -@@ -167,8 +204,15 @@ int __init bcm63xx_flash_register(void) +@@ -176,8 +213,15 @@ int __init bcm63xx_flash_register(void) return platform_device_register(&mtd_dev); case BCM63XX_FLASH_TYPE_SERIAL: diff --git a/target/linux/brcm63xx/patches-3.10/413-BCM63XX-allow-providing-fixup-data-in-board-data.patch b/target/linux/brcm63xx/patches-3.10/413-BCM63XX-allow-providing-fixup-data-in-board-data.patch index 7991fad0e3..4a3a4e9f43 100644 --- a/target/linux/brcm63xx/patches-3.10/413-BCM63XX-allow-providing-fixup-data-in-board-data.patch +++ b/target/linux/brcm63xx/patches-3.10/413-BCM63XX-allow-providing-fixup-data-in-board-data.patch @@ -8,17 +8,17 @@ Subject: [PATCH 58/72] BCM63XX: allow providing fixup data in board data arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h | 10 ++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) ---- a/arch/mips/bcm63xx/boards/board_bcm963xx.c -+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c +--- a/arch/mips/bcm63xx/boards/board_common.c ++++ b/arch/mips/bcm63xx/boards/board_common.c @@ -33,6 +33,7 @@ #include #include #include +#include - #include - #include -@@ -969,6 +970,7 @@ int __init board_register_devices(void) + #include "board_common.h" + +@@ -197,6 +198,7 @@ int __init board_register_devices(void) int button_count = 0; int led_count = 0; int usbh_ports = 0; @@ -26,17 +26,17 @@ Subject: [PATCH 58/72] BCM63XX: allow providing fixup data in board data if (board.has_uart0) bcm63xx_uart_register(0); -@@ -1014,7 +1016,8 @@ int __init board_register_devices(void) +@@ -242,7 +244,8 @@ int __init board_register_devices(void) * do this after registering enet devices */ #ifdef CONFIG_SSB_PCIHOST -- if (!bcm63xx_nvram_get_mac_address(bcm63xx_sprom.il0mac)) { +- if (!board_get_mac_address(bcm63xx_sprom.il0mac)) { + if (!board.has_caldata && -+ !bcm63xx_nvram_get_mac_address(bcm63xx_sprom.il0mac)) { ++ !board_get_mac_address(bcm63xx_sprom.il0mac)) { memcpy(bcm63xx_sprom.et0mac, bcm63xx_sprom.il0mac, ETH_ALEN); memcpy(bcm63xx_sprom.et1mac, bcm63xx_sprom.il0mac, ETH_ALEN); if (ssb_arch_register_fallback_sprom( -@@ -1061,5 +1064,9 @@ int __init board_register_devices(void) +@@ -289,5 +292,9 @@ int __init board_register_devices(void) platform_device_register(&bcm63xx_gpio_keys_device); } diff --git a/target/linux/brcm63xx/patches-3.10/415-MIPS-BCM63XX-export-the-attached-flash-type.patch b/target/linux/brcm63xx/patches-3.10/415-MIPS-BCM63XX-export-the-attached-flash-type.patch index bde8961ea2..742c735cbe 100644 --- a/target/linux/brcm63xx/patches-3.10/415-MIPS-BCM63XX-export-the-attached-flash-type.patch +++ b/target/linux/brcm63xx/patches-3.10/415-MIPS-BCM63XX-export-the-attached-flash-type.patch @@ -11,7 +11,7 @@ Signed-off-by: Jonas Gorski --- a/arch/mips/bcm63xx/dev-flash.c +++ b/arch/mips/bcm63xx/dev-flash.c -@@ -222,3 +222,8 @@ int __init bcm63xx_flash_register(void) +@@ -231,3 +231,8 @@ int __init bcm63xx_flash_register(void) return -ENODEV; } } @@ -22,7 +22,7 @@ Signed-off-by: Jonas Gorski +} --- a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_flash.h +++ b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_flash.h -@@ -11,4 +11,6 @@ void bcm63xx_flash_detect(void); +@@ -13,4 +13,6 @@ void bcm63xx_flash_force_phys_base_addre int __init bcm63xx_flash_register(void); diff --git a/target/linux/brcm63xx/patches-3.10/418-MIPS-BCM63XX-pass-caldata-info-to-flash.patch b/target/linux/brcm63xx/patches-3.10/418-MIPS-BCM63XX-pass-caldata-info-to-flash.patch index 6f913dd073..9d0626b6ba 100644 --- a/target/linux/brcm63xx/patches-3.10/418-MIPS-BCM63XX-pass-caldata-info-to-flash.patch +++ b/target/linux/brcm63xx/patches-3.10/418-MIPS-BCM63XX-pass-caldata-info-to-flash.patch @@ -4,14 +4,14 @@ Date: Thu, 3 May 2012 14:55:26 +0200 Subject: [PATCH 69/80] MIPS: BCM63XX: pass caldata info to flash --- - arch/mips/bcm63xx/boards/board_bcm963xx.c | 2 +- + arch/mips/bcm63xx/boards/board_common.c | 2 +- arch/mips/bcm63xx/dev-flash.c | 9 ++++++++- arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_flash.h | 4 +++- 3 files changed, 12 insertions(+), 3 deletions(-) ---- a/arch/mips/bcm63xx/boards/board_bcm963xx.c -+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -1036,7 +1036,7 @@ int __init board_register_devices(void) +--- a/arch/mips/bcm63xx/boards/board_common.c ++++ b/arch/mips/bcm63xx/boards/board_common.c +@@ -264,7 +264,7 @@ int __init board_register_devices(void) if (board.num_spis) spi_register_board_info(board.spis, board.num_spis); @@ -38,7 +38,7 @@ Subject: [PATCH 69/80] MIPS: BCM63XX: pass caldata info to flash }; static struct resource mtd_resources[] = { -@@ -62,6 +65,7 @@ static struct platform_device mtd_dev = +@@ -68,6 +71,7 @@ void __init bcm63xx_flash_force_phys_bas static struct flash_platform_data bcm63xx_flash_data = { .part_probe_types = bcm63xx_part_types, @@ -46,7 +46,7 @@ Subject: [PATCH 69/80] MIPS: BCM63XX: pass caldata info to flash }; static struct spi_board_info bcm63xx_spi_flash_info[] = { -@@ -189,9 +193,13 @@ void __init bcm63xx_flash_detect(void) +@@ -195,9 +199,13 @@ void __init bcm63xx_flash_detect(void) } } @@ -72,9 +72,9 @@ Subject: [PATCH 69/80] MIPS: BCM63XX: pass caldata info to flash enum { BCM63XX_FLASH_TYPE_PARALLEL, BCM63XX_FLASH_TYPE_SERIAL, -@@ -9,7 +11,7 @@ enum { +@@ -11,7 +13,7 @@ void bcm63xx_flash_detect(void); - void bcm63xx_flash_detect(void); + void bcm63xx_flash_force_phys_base_address(u32 start, u32 end); -int __init bcm63xx_flash_register(void); +int __init bcm63xx_flash_register(int num_caldata, struct ath9k_caldata *caldata); diff --git a/target/linux/brcm63xx/patches-3.10/420-BCM63XX-add-endian-check-for-ath9k.patch b/target/linux/brcm63xx/patches-3.10/420-BCM63XX-add-endian-check-for-ath9k.patch index cbceaa9c4b..0809d785bd 100644 --- a/target/linux/brcm63xx/patches-3.10/420-BCM63XX-add-endian-check-for-ath9k.patch +++ b/target/linux/brcm63xx/patches-3.10/420-BCM63XX-add-endian-check-for-ath9k.patch @@ -37,9 +37,9 @@ if (!bcm63xx_read_eeprom(ath9k_fixups[ath9k_num_fixups].pdata.eeprom_data, offset)) return; ---- a/arch/mips/bcm63xx/boards/board_bcm963xx.c -+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -1066,7 +1066,8 @@ int __init board_register_devices(void) +--- a/arch/mips/bcm63xx/boards/board_common.c ++++ b/arch/mips/bcm63xx/boards/board_common.c +@@ -294,7 +294,8 @@ int __init board_register_devices(void) /* register any fixups */ for (i = 0; i < board.has_caldata; i++) diff --git a/target/linux/brcm63xx/patches-3.10/421-BCM63XX-add-led-pin-for-ath9k.patch b/target/linux/brcm63xx/patches-3.10/421-BCM63XX-add-led-pin-for-ath9k.patch index f4821b6744..0d4f761308 100644 --- a/target/linux/brcm63xx/patches-3.10/421-BCM63XX-add-led-pin-for-ath9k.patch +++ b/target/linux/brcm63xx/patches-3.10/421-BCM63XX-add-led-pin-for-ath9k.patch @@ -1,6 +1,6 @@ ---- a/arch/mips/bcm63xx/boards/board_bcm963xx.c -+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -1067,7 +1067,7 @@ int __init board_register_devices(void) +--- a/arch/mips/bcm63xx/boards/board_common.c ++++ b/arch/mips/bcm63xx/boards/board_common.c +@@ -295,7 +295,7 @@ int __init board_register_devices(void) /* register any fixups */ for (i = 0; i < board.has_caldata; i++) pci_enable_ath9k_fixup(board.caldata[i].slot, board.caldata[i].caldata_offset, diff --git a/target/linux/brcm63xx/patches-3.10/422-BCM63XX-add-a-fixup-for-rt2x00-devices.patch b/target/linux/brcm63xx/patches-3.10/422-BCM63XX-add-a-fixup-for-rt2x00-devices.patch index 877b5177b8..a511af03af 100644 --- a/target/linux/brcm63xx/patches-3.10/422-BCM63XX-add-a-fixup-for-rt2x00-devices.patch +++ b/target/linux/brcm63xx/patches-3.10/422-BCM63XX-add-a-fixup-for-rt2x00-devices.patch @@ -26,17 +26,17 @@ Subject: [PATCH 72/72] 446-BCM63XX-add-a-fixup-for-rt2x00-devices obj-$(CONFIG_EARLY_PRINTK) += early_printk.o obj-y += boards/ ---- a/arch/mips/bcm63xx/boards/board_bcm963xx.c -+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c +--- a/arch/mips/bcm63xx/boards/board_common.c ++++ b/arch/mips/bcm63xx/boards/board_common.c @@ -34,6 +34,7 @@ #include #include #include +#include - #include - #include -@@ -1065,9 +1066,19 @@ int __init board_register_devices(void) + #include "board_common.h" + +@@ -293,9 +294,19 @@ int __init board_register_devices(void) } /* register any fixups */ @@ -61,7 +61,7 @@ Subject: [PATCH 72/72] 446-BCM63XX-add-a-fixup-for-rt2x00-devices } --- a/arch/mips/bcm63xx/dev-flash.c +++ b/arch/mips/bcm63xx/dev-flash.c -@@ -193,7 +193,7 @@ void __init bcm63xx_flash_detect(void) +@@ -199,7 +199,7 @@ void __init bcm63xx_flash_detect(void) } } @@ -147,9 +147,9 @@ Subject: [PATCH 72/72] 446-BCM63XX-add-a-fixup-for-rt2x00-devices + --- a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_flash.h +++ b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_flash.h -@@ -11,7 +11,7 @@ enum { +@@ -13,7 +13,7 @@ void bcm63xx_flash_detect(void); - void bcm63xx_flash_detect(void); + void bcm63xx_flash_force_phys_base_address(u32 start, u32 end); -int __init bcm63xx_flash_register(int num_caldata, struct ath9k_caldata *caldata); +int __init bcm63xx_flash_register(int num_caldata, struct bcm63xx_caldata *caldata); diff --git a/target/linux/brcm63xx/patches-3.10/500-board-D4PW.patch b/target/linux/brcm63xx/patches-3.10/500-board-D4PW.patch index ffeb8c9c93..49163f199c 100644 --- a/target/linux/brcm63xx/patches-3.10/500-board-D4PW.patch +++ b/target/linux/brcm63xx/patches-3.10/500-board-D4PW.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -555,6 +555,56 @@ static struct board_info __initdata boar +@@ -539,6 +539,56 @@ static struct board_info __initdata boar .has_ohci0 = 1, }; @@ -57,7 +57,7 @@ #endif /* -@@ -733,6 +783,7 @@ static const struct board_info __initcon +@@ -717,6 +767,7 @@ static const struct board_info __initcon &board_DV201AMR, &board_96348gw_a, &board_rta1025w_16, diff --git a/target/linux/brcm63xx/patches-3.10/501-board-NB4.patch b/target/linux/brcm63xx/patches-3.10/501-board-NB4.patch index 20d398ca18..ca32c79c9f 100644 --- a/target/linux/brcm63xx/patches-3.10/501-board-NB4.patch +++ b/target/linux/brcm63xx/patches-3.10/501-board-NB4.patch @@ -1,15 +1,19 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -15,6 +15,8 @@ +@@ -12,6 +12,12 @@ + #include #include #include - #include ++#include ++#include +#include ++#if 0 /* FIXME: 3.14 removed non-DT support */ +#include ++#endif #include #include #include -@@ -49,6 +51,12 @@ +@@ -343,6 +349,12 @@ static struct board_info __initdata boar #define CFE_OFFSET_64K 0x10000 #define CFE_OFFSET_128K 0x20000 @@ -19,10 +23,10 @@ +#define NB4_SPI_GPIO_CLK 6 +#define NB4_74HC64_GPIO(X) (NB4_74X164_GPIO_BASE + (X)) + - static struct board_info board; - /* -@@ -755,6 +763,601 @@ static struct board_info __initdata boar + .has_ohci0 = 1, + .has_pccard = 1, +@@ -739,6 +751,605 @@ static struct board_info __initdata boar .has_ohci0 = 1, }; @@ -47,11 +51,14 @@ + &nb4_spi_gpio, +}; + ++#if 0 /* FIXME: 3.14 removed non-DT support */ +const struct gen_74x164_chip_platform_data nb4_74x164_platform_data = { + .base = NB4_74X164_GPIO_BASE +}; ++#endif + +static struct spi_board_info nb4_spi_devices[] = { ++#if 0 /* FIXME: 3.14 removed non-DT support */ + { + .modalias = "74x164", + .max_speed_hz = 781000, @@ -60,6 +67,7 @@ + .mode = SPI_MODE_0, + .platform_data = &nb4_74x164_platform_data + } ++#endif +}; + +static struct board_info __initdata board_nb4_ser_r0 = { @@ -624,7 +632,7 @@ #endif /* -@@ -791,6 +1394,11 @@ static const struct board_info __initcon +@@ -775,6 +1386,11 @@ static const struct board_info __initcon &board_96358vw2, &board_AGPFS0, &board_DWVS0, @@ -636,7 +644,7 @@ #endif }; -@@ -845,6 +1453,16 @@ static void __init boardid_fixup(u8 *boo +@@ -783,6 +1399,16 @@ static void __init boardid_fixup(u8 *boo struct bcm_tag *tag = (struct bcm_tag *)(boot_addr + CFE_OFFSET_64K); char *board_name = (char *)bcm63xx_nvram_get_name(); diff --git a/target/linux/brcm63xx/patches-3.10/502-board-96338W2_E7T.patch b/target/linux/brcm63xx/patches-3.10/502-board-96338W2_E7T.patch index 08f856b9db..3a2c1607f4 100644 --- a/target/linux/brcm63xx/patches-3.10/502-board-96338W2_E7T.patch +++ b/target/linux/brcm63xx/patches-3.10/502-board-96338W2_E7T.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -226,6 +226,40 @@ static struct board_info __initdata boar +@@ -205,6 +205,40 @@ static struct board_info __initdata boar }, }, }; @@ -41,7 +41,7 @@ #endif /* -@@ -1373,6 +1407,7 @@ static const struct board_info __initcon +@@ -1365,6 +1399,7 @@ static const struct board_info __initcon #ifdef CONFIG_BCM63XX_CPU_6338 &board_96338gw, &board_96338w, diff --git a/target/linux/brcm63xx/patches-3.10/503-board-CPVA642.patch b/target/linux/brcm63xx/patches-3.10/503-board-CPVA642.patch index fde7f8bacd..9485ad9af8 100644 --- a/target/linux/brcm63xx/patches-3.10/503-board-CPVA642.patch +++ b/target/linux/brcm63xx/patches-3.10/503-board-CPVA642.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -754,6 +754,98 @@ static struct board_info __initdata boar +@@ -742,6 +742,98 @@ static struct board_info __initdata boar }, }; @@ -99,7 +99,7 @@ static struct board_info __initdata board_AGPFS0 = { .name = "AGPF-S0", .expected_cpu_id = 0x6358, -@@ -1428,6 +1520,7 @@ static const struct board_info __initcon +@@ -1420,6 +1512,7 @@ static const struct board_info __initcon &board_96358vw, &board_96358vw2, &board_AGPFS0, diff --git a/target/linux/brcm63xx/patches-3.10/504-board_dsl_274xb_rev_c.patch b/target/linux/brcm63xx/patches-3.10/504-board_dsl_274xb_rev_c.patch index a6fff9bbda..20b838bd8d 100644 --- a/target/linux/brcm63xx/patches-3.10/504-board_dsl_274xb_rev_c.patch +++ b/target/linux/brcm63xx/patches-3.10/504-board_dsl_274xb_rev_c.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -890,6 +890,61 @@ static struct board_info __initdata boar +@@ -878,6 +878,61 @@ static struct board_info __initdata boar .has_ohci0 = 1, }; @@ -62,7 +62,7 @@ struct spi_gpio_platform_data nb4_spi_gpio_data = { .sck = NB4_SPI_GPIO_CLK, .mosi = NB4_SPI_GPIO_MOSI, -@@ -1522,6 +1577,7 @@ static const struct board_info __initcon +@@ -1514,6 +1569,7 @@ static const struct board_info __initcon &board_AGPFS0, &board_CPVA642, &board_DWVS0, diff --git a/target/linux/brcm63xx/patches-3.10/505-board_spw500v.patch b/target/linux/brcm63xx/patches-3.10/505-board_spw500v.patch index 394506bdd5..e9fc8419e2 100644 --- a/target/linux/brcm63xx/patches-3.10/505-board_spw500v.patch +++ b/target/linux/brcm63xx/patches-3.10/505-board_spw500v.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -647,6 +647,67 @@ static struct board_info __initdata boar +@@ -635,6 +635,67 @@ static struct board_info __initdata boar }, }, }; @@ -68,7 +68,7 @@ #endif /* -@@ -1569,6 +1630,7 @@ static const struct board_info __initcon +@@ -1561,6 +1622,7 @@ static const struct board_info __initcon &board_96348gw_a, &board_rta1025w_16, &board_96348_D4PW, diff --git a/target/linux/brcm63xx/patches-3.10/506-board_gw6200_gw6000.patch b/target/linux/brcm63xx/patches-3.10/506-board_gw6200_gw6000.patch index 1f66a2dd9b..a3b305e99a 100644 --- a/target/linux/brcm63xx/patches-3.10/506-board_gw6200_gw6000.patch +++ b/target/linux/brcm63xx/patches-3.10/506-board_gw6200_gw6000.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -514,6 +514,112 @@ static struct board_info __initdata boar +@@ -502,6 +502,112 @@ static struct board_info __initdata boar }, }; @@ -113,7 +113,7 @@ static struct board_info __initdata board_FAST2404 = { .name = "F@ST2404", .expected_cpu_id = 0x6348, -@@ -1623,6 +1729,8 @@ static const struct board_info __initcon +@@ -1615,6 +1721,8 @@ static const struct board_info __initcon #ifdef CONFIG_BCM63XX_CPU_6348 &board_96348r, &board_96348gw, diff --git a/target/linux/brcm63xx/patches-3.10/507-board-MAGIC.patch b/target/linux/brcm63xx/patches-3.10/507-board-MAGIC.patch index 55f976c8ab..4e9d12a0f7 100644 --- a/target/linux/brcm63xx/patches-3.10/507-board-MAGIC.patch +++ b/target/linux/brcm63xx/patches-3.10/507-board-MAGIC.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -814,6 +814,78 @@ static struct board_info __initdata boar +@@ -802,6 +802,78 @@ static struct board_info __initdata boar }, }, }; @@ -79,7 +79,7 @@ #endif /* -@@ -1739,6 +1811,7 @@ static const struct board_info __initcon +@@ -1731,6 +1803,7 @@ static const struct board_info __initcon &board_rta1025w_16, &board_96348_D4PW, &board_spw500v, diff --git a/target/linux/brcm63xx/patches-3.10/508-board_hw553.patch b/target/linux/brcm63xx/patches-3.10/508-board_hw553.patch index b7506e0eca..3627ea5e8c 100644 --- a/target/linux/brcm63xx/patches-3.10/508-board_hw553.patch +++ b/target/linux/brcm63xx/patches-3.10/508-board_hw553.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -1778,6 +1778,83 @@ static struct board_info __initdata boar +@@ -1770,6 +1770,83 @@ static struct board_info __initdata boar .spis = nb4_spi_devices, .num_spis = ARRAY_SIZE(nb4_spi_devices), }; @@ -84,7 +84,7 @@ #endif /* -@@ -1826,6 +1903,7 @@ static const struct board_info __initcon +@@ -1818,6 +1895,7 @@ static const struct board_info __initcon &board_nb4_ser_r2, &board_nb4_fxc_r1, &board_nb4_fxc_r2, diff --git a/target/linux/brcm63xx/patches-3.10/509-board_rta1320_16m.patch b/target/linux/brcm63xx/patches-3.10/509-board_rta1320_16m.patch index 3683825619..01812c66f4 100644 --- a/target/linux/brcm63xx/patches-3.10/509-board_rta1320_16m.patch +++ b/target/linux/brcm63xx/patches-3.10/509-board_rta1320_16m.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -260,6 +260,45 @@ static struct board_info __initdata boar +@@ -239,6 +239,45 @@ static struct board_info __initdata boar }, }, }; @@ -46,7 +46,7 @@ #endif /* -@@ -1871,6 +1910,7 @@ static const struct board_info __initcon +@@ -1863,6 +1902,7 @@ static const struct board_info __initcon &board_96338gw, &board_96338w, &board_96338w2_e7t, diff --git a/target/linux/brcm63xx/patches-3.10/510-board_spw303v.patch b/target/linux/brcm63xx/patches-3.10/510-board_spw303v.patch index 61ab794b4a..19802e78d0 100644 --- a/target/linux/brcm63xx/patches-3.10/510-board_spw303v.patch +++ b/target/linux/brcm63xx/patches-3.10/510-board_spw303v.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -1894,6 +1894,72 @@ static struct board_info __initdata boar +@@ -1886,6 +1886,72 @@ static struct board_info __initdata boar }, }, }; @@ -73,7 +73,7 @@ #endif /* -@@ -1944,6 +2010,7 @@ static const struct board_info __initcon +@@ -1936,6 +2002,7 @@ static const struct board_info __initcon &board_nb4_fxc_r1, &board_nb4_fxc_r2, &board_HW553, diff --git a/target/linux/brcm63xx/patches-3.10/511-board_V2500V.patch b/target/linux/brcm63xx/patches-3.10/511-board_V2500V.patch index f4cfc6e66e..9ff27f3bea 100644 --- a/target/linux/brcm63xx/patches-3.10/511-board_V2500V.patch +++ b/target/linux/brcm63xx/patches-3.10/511-board_V2500V.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -925,6 +925,65 @@ static struct board_info __initdata boar +@@ -913,6 +913,65 @@ static struct board_info __initdata boar }, }, }; @@ -66,7 +66,7 @@ #endif /* -@@ -1995,6 +2054,7 @@ static const struct board_info __initcon +@@ -1987,6 +2046,7 @@ static const struct board_info __initcon &board_96348_D4PW, &board_spw500v, &board_96348sv, @@ -74,7 +74,7 @@ #endif #ifdef CONFIG_BCM63XX_CPU_6358 -@@ -2116,6 +2176,22 @@ void __init board_prom_init(void) +@@ -2062,6 +2122,22 @@ void __init board_bcm963xx_init(void) val &= MPI_CSBASE_BASE_MASK; } boot_addr = (u8 *)KSEG1ADDR(val); @@ -107,17 +107,17 @@ #include #include #include -@@ -207,6 +208,13 @@ int __init bcm63xx_flash_register(int nu - val = bcm_mpi_readl(MPI_CSBASE_REG(0)); - val &= MPI_CSBASE_BASE_MASK; +@@ -215,6 +216,13 @@ int __init bcm63xx_flash_register(int nu + val = bcm_mpi_readl(MPI_CSBASE_REG(0)); + val &= MPI_CSBASE_BASE_MASK; -+ /* BT Voyager 2500V has 8 Meg flash in two 4 Meg banks */ -+ /* Loading from CFE always uses Bank 0 */ -+ if (!strcmp(board_get_name(), "V2500V_BB")) { -+ pr_info("V2500V: Start in Bank 0\n"); -+ val = val + 0x400000; // Select Bank 0 start address -+ } ++ /* BT Voyager 2500V has 8 Meg flash in two 4 Meg banks */ ++ /* Loading from CFE always uses Bank 0 */ ++ if (!strcmp(board_get_name(), "V2500V_BB")) { ++ pr_info("V2500V: Start in Bank 0\n"); ++ val = val + 0x400000; // Select Bank 0 start address ++ } + - mtd_resources[0].start = val; - mtd_resources[0].end = 0x1FFFFFFF; - + mtd_resources[0].start = val; + mtd_resources[0].end = 0x1FFFFFFF; + } diff --git a/target/linux/brcm63xx/patches-3.10/512-board_BTV2110.patch b/target/linux/brcm63xx/patches-3.10/512-board_BTV2110.patch index c68a48bf1b..f3b414beac 100644 --- a/target/linux/brcm63xx/patches-3.10/512-board_BTV2110.patch +++ b/target/linux/brcm63xx/patches-3.10/512-board_BTV2110.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -485,6 +485,64 @@ static struct board_info __initdata boar +@@ -473,6 +473,64 @@ static struct board_info __initdata boar }, }; @@ -65,7 +65,7 @@ static struct board_info __initdata board_96348gw = { .name = "96348GW", .expected_cpu_id = 0x6348, -@@ -2055,6 +2113,7 @@ static const struct board_info __initcon +@@ -2047,6 +2105,7 @@ static const struct board_info __initcon &board_spw500v, &board_96348sv, &board_V2500V_BB, diff --git a/target/linux/brcm63xx/patches-3.10/513-MIPS-BCM63XX-add-inventel-Livebox-support.patch b/target/linux/brcm63xx/patches-3.10/513-MIPS-BCM63XX-add-inventel-Livebox-support.patch new file mode 100644 index 0000000000..1d8b601058 --- /dev/null +++ b/target/linux/brcm63xx/patches-3.10/513-MIPS-BCM63XX-add-inventel-Livebox-support.patch @@ -0,0 +1,257 @@ +From 7e6b22225e16fbb22dbf7f2113d8c6d65333818c Mon Sep 17 00:00:00 2001 +From: Jonas Gorski +Date: Sun, 9 Mar 2014 04:55:52 +0100 +Subject: [PATCH 44/44] MIPS: BCM63XX: add inventel Livebox support + +--- + arch/mips/bcm63xx/boards/Kconfig | 6 + + arch/mips/bcm63xx/boards/Makefile | 1 + + arch/mips/bcm63xx/boards/board_common.c | 2 +- + arch/mips/bcm63xx/boards/board_common.h | 6 + + arch/mips/bcm63xx/boards/board_livebox.c | 193 +++++++++++++++++++++++++++++++ + 5 files changed, 207 insertions(+), 1 deletion(-) + create mode 100644 arch/mips/bcm63xx/boards/board_livebox.c + +--- a/arch/mips/bcm63xx/boards/Kconfig ++++ b/arch/mips/bcm63xx/boards/Kconfig +@@ -7,4 +7,10 @@ config BOARD_BCM963XX + default y + help + ++config BOARD_LIVEBOX ++ bool "Inventel Livebox(es) boards" ++ select SSB ++ help ++ Inventel Livebox boards using the RedBoot bootloader. ++ + endmenu +--- a/arch/mips/bcm63xx/boards/Makefile ++++ b/arch/mips/bcm63xx/boards/Makefile +@@ -1,2 +1,3 @@ + obj-y += board_common.o + obj-$(CONFIG_BOARD_BCM963XX) += board_bcm963xx.o ++obj-$(CONFIG_BOARD_LIVEBOX) += board_livebox.o +--- a/arch/mips/bcm63xx/boards/board_common.c ++++ b/arch/mips/bcm63xx/boards/board_common.c +@@ -96,7 +96,7 @@ void __init board_prom_init(void) + if (fw_arg3 == CFE_EPTSEAL) + board_bcm963xx_init(); + else +- panic("unsupported bootloader detected"); ++ board_livebox_init(); + } + + static int (*board_get_mac_address)(u8 mac[ETH_ALEN]); +--- a/arch/mips/bcm63xx/boards/board_common.h ++++ b/arch/mips/bcm63xx/boards/board_common.h +@@ -12,4 +12,10 @@ void board_bcm963xx_init(void); + static inline void board_bcm963xx_init(void) { } + #endif + ++#if defined(CONFIG_BOARD_LIVEBOX) ++void board_livebox_init(void); ++#else ++static inline void board_livebox_init(void) { } ++#endif ++ + #endif /* __BOARD_COMMON_H */ +--- /dev/null ++++ b/arch/mips/bcm63xx/boards/board_livebox.c +@@ -0,0 +1,197 @@ ++/* ++ * This file is subject to the terms and conditions of the GNU General Public ++ * License. See the file "COPYING" in the main directory of this archive ++ * for more details. ++ * ++ * Copyright (C) 2008 Florian Fainelli ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "board_common.h" ++ ++#define PFX "board_livebox: " ++ ++#define LIVEBOX_KEYS_POLL_INTERVAL 20 ++#define LIVEBOX_KEYS_DEBOUNCE_INTERVAL (LIVEBOX_KEYS_POLL_INTERVAL * 3) ++ ++static unsigned int mac_addr_used = 0; ++ ++/* ++ * known 6348 boards ++ */ ++#ifdef CONFIG_BCM63XX_CPU_6348 ++static struct board_info __initdata board_livebox_blue5g = { ++ .name = "Livebox-blue-5g", ++ .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 = { ++ .has_phy = 1, ++ .phy_id = 31, ++ }, ++ ++ .ephy_reset_gpio = 6, ++ .ephy_reset_gpio_flags = GPIOF_INIT_HIGH, ++ ++ .has_ohci0 = 1, ++ .has_pccard = 1, ++ ++ .has_dsp = 0, /*TODO some Liveboxes have dsp*/ ++ .dsp = { ++ .gpio_rst = 6, /*FIXME eth1 shares gpio6 with dsp?*/ ++ .gpio_int = 35, ++ .cs = 2, ++ .ext_irq = 2, ++ }, ++ ++ .leds = { ++ { ++ .name = "Livebox-blue-5g::adsl-fail", ++ .gpio = 0, ++ .active_low = 0, ++ .default_trigger = "default-on", ++ }, ++ { ++ .name = "Livebox-blue-5g::adsl", ++ .gpio = 1, ++ }, ++ { ++ .name = "Livebox-blue-5g::traffic", ++ .gpio = 2, ++ }, ++ { ++ .name = "Livebox-blue-5g::phone", ++ .gpio = 3, ++ }, ++ { ++ .name = "Livebox-blue-5g::wifi", ++ .gpio = 4, ++ }, ++ }, ++ ++ .buttons = { ++ { ++ .desc = "BTN_1", ++ .gpio = 36, ++ .active_low = 1, ++ .type = EV_KEY, ++ .code = BTN_1, ++ .debounce_interval = LIVEBOX_KEYS_DEBOUNCE_INTERVAL, ++ }, ++ { ++ .desc = "BTN_2", ++ .gpio = 7, ++ .active_low = 1, ++ .type = EV_KEY, ++ .code = BTN_2, ++ .debounce_interval = LIVEBOX_KEYS_DEBOUNCE_INTERVAL, ++ }, ++ ++ }, ++}; ++#endif ++ ++/* ++ * all boards ++ */ ++static const struct board_info __initdata *bcm963xx_boards[] = { ++#ifdef CONFIG_BCM63XX_CPU_6348 ++ &board_livebox_blue5g ++#endif ++}; ++ ++/* ++ * register & return a new board mac address ++ */ ++static int livebox_get_mac_address(u8 *mac) ++{ ++ u8 *p; ++ int count; ++ ++ memcpy(mac, (u8 *)0xBEBFF377, ETH_ALEN); ++ ++ p = mac + ETH_ALEN - 1; ++ count = mac_addr_used; ++ ++ while (count--) { ++ do { ++ (*p)++; ++ if (*p != 0) ++ break; ++ p--; ++ } while (p != mac); ++ } ++ ++ if (p == mac) { ++ printk(KERN_ERR PFX "unable to fetch mac address\n"); ++ return -ENODEV; ++ } ++ mac_addr_used++; ++ ++ return 0; ++} ++ ++/* ++ * early init callback ++ */ ++#define LIVEBOX_GPIO_DETECT_MASK 0x000000ff ++#define LIVEBOX_BOOT_ADDR 0x1e400000 ++ ++#define LIVEBOX_HW_BLUE5G_9 0x90 ++ ++void __init board_livebox_init(void) ++{ ++ u32 val; ++ u8 hw_version; ++ const struct board_info *board; ++ ++ /* Get hardware version */ ++ val = bcm_gpio_readl(GPIO_CTL_LO_REG); ++ val &= ~LIVEBOX_GPIO_DETECT_MASK; ++ bcm_gpio_writel(val, GPIO_CTL_LO_REG); ++ ++ hw_version = bcm_gpio_readl(GPIO_DATA_LO_REG) & LIVEBOX_GPIO_DETECT_MASK; ++ switch (hw_version) { ++ case LIVEBOX_HW_BLUE5G_9: ++ printk(KERN_INFO PFX "Livebox BLUE5G.9\n"); ++ board = bcm963xx_boards[0]; ++ break; ++ default: ++ printk(KERN_INFO PFX "Unknown livebox version: %02x\n", hw_version); ++ /* use default livebox configuration */ ++ board = bcm963xx_boards[0]; ++ break; ++ } ++ ++ /* use default livebox configuration */ ++ board_early_setup(board, livebox_get_mac_address); ++ ++ /* read base address of boot chip select (0) */ ++ val = bcm_mpi_readl(MPI_CSBASE_REG(0)); ++ val &= MPI_CSBASE_BASE_MASK; ++ if (val != LIVEBOX_BOOT_ADDR) { ++ printk(KERN_NOTICE PFX "flash address is: 0x%08x, forcing to: 0x%08x\n", ++ val, LIVEBOX_BOOT_ADDR); ++ bcm63xx_flash_force_phys_base_address(LIVEBOX_BOOT_ADDR, 0x1ebfffff); ++ } ++} diff --git a/target/linux/brcm63xx/patches-3.10/513-board_livebox.patch b/target/linux/brcm63xx/patches-3.10/513-board_livebox.patch deleted file mode 100644 index 2323b5eef7..0000000000 --- a/target/linux/brcm63xx/patches-3.10/513-board_livebox.patch +++ /dev/null @@ -1,390 +0,0 @@ ---- a/arch/mips/bcm63xx/boards/Kconfig -+++ b/arch/mips/bcm63xx/boards/Kconfig -@@ -8,4 +8,10 @@ config BOARD_BCM963XX - select SSB - help - -+config BOARD_LIVEBOX -+ bool "Inventel Livebox(es) boards" -+ select SSB -+ help -+ Inventel Livebox boards using the RedBoot bootloader. -+ - endchoice ---- a/arch/mips/bcm63xx/boards/Makefile -+++ b/arch/mips/bcm63xx/boards/Makefile -@@ -1 +1,2 @@ - obj-$(CONFIG_BOARD_BCM963XX) += board_bcm963xx.o -+obj-$(CONFIG_BOARD_LIVEBOX) += board_livebox.o ---- /dev/null -+++ b/arch/mips/bcm63xx/boards/board_livebox.c -@@ -0,0 +1,369 @@ -+/* -+ * This file is subject to the terms and conditions of the GNU General Public -+ * License. See the file "COPYING" in the main directory of this archive -+ * for more details. -+ * -+ * Copyright (C) 2008 Florian Fainelli -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#define PFX "board_livebox: " -+ -+#define LIVEBOX_KEYS_POLL_INTERVAL 20 -+#define LIVEBOX_KEYS_DEBOUNCE_INTERVAL (LIVEBOX_KEYS_POLL_INTERVAL * 3) -+ -+static unsigned int mac_addr_used = 0; -+static struct board_info board; -+ -+/* -+ * known 6348 boards -+ */ -+#ifdef CONFIG_BCM63XX_CPU_6348 -+static struct board_info __initdata board_livebox_blue5g = { -+ .name = "Livebox-blue-5g", -+ .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 = { -+ .has_phy = 1, -+ .phy_id = 31, -+ }, -+ -+ .has_ohci0 = 1, -+ .has_pccard = 1, -+ -+ .has_dsp = 0, /*TODO some Liveboxes have dsp*/ -+ .dsp = { -+ .gpio_rst = 6, /*FIXME eth1 shares gpio6 with dsp?*/ -+ .gpio_int = 35, -+ .cs = 2, -+ .ext_irq = 2, -+ }, -+ -+ .leds = { -+ { -+ .name = "Livebox-blue-5g::adsl-fail", -+ .gpio = 0, -+ .active_low = 0, -+ .default_trigger = "default-on", -+ }, -+ { -+ .name = "Livebox-blue-5g::adsl", -+ .gpio = 1, -+ }, -+ { -+ .name = "Livebox-blue-5g::traffic", -+ .gpio = 2, -+ }, -+ { -+ .name = "Livebox-blue-5g::phone", -+ .gpio = 3, -+ }, -+ { -+ .name = "Livebox-blue-5g::wifi", -+ .gpio = 4, -+ }, -+ }, -+ -+ .buttons = { -+ { -+ .desc = "BTN_1", -+ .gpio = 36, -+ .active_low = 1, -+ .type = EV_KEY, -+ .code = BTN_1, -+ .debounce_interval = LIVEBOX_KEYS_DEBOUNCE_INTERVAL, -+ }, -+ { -+ .desc = "BTN_2", -+ .gpio = 7, -+ .active_low = 1, -+ .type = EV_KEY, -+ .code = BTN_2, -+ .debounce_interval = LIVEBOX_KEYS_DEBOUNCE_INTERVAL, -+ }, -+ -+ }, -+}; -+#endif -+ -+/* -+ * all boards -+ */ -+static const struct board_info __initdata *bcm963xx_boards[] = { -+#ifdef CONFIG_BCM63XX_CPU_6348 -+ &board_livebox_blue5g -+#endif -+}; -+/* -+ * return board name for /proc/cpuinfo -+ */ -+const char *board_get_name(void) -+{ -+ return board.name; -+} -+ -+/* -+ * register & return a new board mac address -+ */ -+static int board_get_mac_address(u8 *mac) -+{ -+ u8 *p; -+ int count; -+ -+ memcpy(mac, (u8 *)0xBEBFF377, ETH_ALEN); -+ -+ p = mac + ETH_ALEN - 1; -+ count = mac_addr_used; -+ -+ while (count--) { -+ do { -+ (*p)++; -+ if (*p != 0) -+ break; -+ p--; -+ } while (p != mac); -+ } -+ -+ if (p == mac) { -+ printk(KERN_ERR PFX "unable to fetch mac address\n"); -+ return -ENODEV; -+ } -+ mac_addr_used++; -+ -+ return 0; -+} -+ -+/* -+ * early init callback -+ */ -+#define LIVEBOX_GPIO_DETECT_MASK 0x000000ff -+#define LIVEBOX_BOOT_ADDR 0x1e400000 -+ -+#define LIVEBOX_HW_BLUE5G_9 0x90 -+ -+void __init board_prom_init(void) -+{ -+ u32 val; -+ u8 hw_version; -+ -+ /* Get hardware version */ -+ val = bcm_gpio_readl(GPIO_CTL_LO_REG); -+ val &= ~LIVEBOX_GPIO_DETECT_MASK; -+ bcm_gpio_writel(val, GPIO_CTL_LO_REG); -+ -+ hw_version = bcm_gpio_readl(GPIO_DATA_LO_REG) & LIVEBOX_GPIO_DETECT_MASK; -+ switch (hw_version) { -+ case LIVEBOX_HW_BLUE5G_9: -+ printk(KERN_INFO PFX "Livebox BLUE5G.9\n"); -+ memcpy(&board, bcm963xx_boards[0], sizeof(board)); -+ break; -+ default: -+ printk(KERN_INFO PFX "Unknown livebox version: %02x\n", hw_version); -+ break; -+ } -+ -+ /* use default livebox configuration */ -+ memcpy(&board, bcm963xx_boards[0], sizeof(board)); -+ -+ /* setup pin multiplexing depending on board enabled device, -+ * this has to be done this early since PCI init is done -+ * inside arch_initcall */ -+ val = 0; -+ -+#ifdef CONFIG_PCI -+ if (board.has_pci) { -+ bcm63xx_pci_enabled = 1; -+ if (BCMCPU_IS_6348()) -+ val |= GPIO_MODE_6348_G2_PCI; -+ } -+#endif -+ if (board.has_pccard) { -+ if (BCMCPU_IS_6348()) -+ val |= GPIO_MODE_6348_G1_MII_PCCARD; -+ } -+ -+ if (board.has_enet0 && !board.enet0.use_internal_phy) { -+ if (BCMCPU_IS_6348()) -+ val |= GPIO_MODE_6348_G3_EXT_MII | -+ GPIO_MODE_6348_G0_EXT_MII; -+ } -+ -+ if (board.has_enet1 && !board.enet1.use_internal_phy) { -+ if (BCMCPU_IS_6348()) -+ val |= GPIO_MODE_6348_G3_EXT_MII | -+ GPIO_MODE_6348_G0_EXT_MII; -+ printk(KERN_INFO PFX "resetting gpio6 for eth1...\n"); -+ gpio_request(6, "dsp_eth_rst"); -+ gpio_direction_output(6, 0); -+ gpio_set_value(6, 1); -+ } -+ -+ bcm_gpio_writel(val, GPIO_MODE_REG); -+} -+ -+/* -+ * second stage init callback, good time to panic if we couldn't -+ * identify on which board we're running since early printk is working -+ */ -+void __init board_setup(void) -+{ -+ if (!board.name[0]) -+ panic("unable to detect bcm963xx board"); -+ printk(KERN_INFO PFX "board name: %s\n", board.name); -+ -+ /* make sure we're running on expected cpu */ -+ if (bcm63xx_get_cpu_id() != board.expected_cpu_id) -+ panic("unexpected CPU for bcm963xx board"); -+} -+ -+static struct physmap_flash_data flash_data = { -+ .width = 2, -+}; -+ -+static struct resource mtd_resources[] = { -+ { -+ .start = 0, /* filled at runtime */ -+ .end = 0, /* filled at runtime */ -+ .flags = IORESOURCE_MEM, -+ } -+}; -+ -+static struct platform_device mtd_dev = { -+ .name = "physmap-flash", -+ .resource = mtd_resources, -+ .num_resources = ARRAY_SIZE(mtd_resources), -+ .dev = { -+ .platform_data = &flash_data, -+ }, -+}; -+ -+static struct gpio_led_platform_data bcm63xx_led_data; -+ -+static struct platform_device bcm63xx_gpio_leds = { -+ .name = "leds-gpio", -+ .id = 0, -+ .dev.platform_data = &bcm63xx_led_data, -+}; -+ -+static struct gpio_keys_platform_data bcm63xx_gpio_keys_data = { -+ .poll_interval = LIVEBOX_KEYS_POLL_INTERVAL, -+}; -+ -+static struct platform_device bcm63xx_gpio_keys_device = { -+ .name = "gpio-keys-polled", -+ .id = 0, -+ .dev.platform_data = &bcm63xx_gpio_keys_data, -+}; -+ -+/* -+ * third stage init callback, register all board devices. -+ */ -+int __init board_register_devices(void) -+{ -+ u32 val; -+ int led_count = 0; -+ int button_count = 0; -+ -+ if (board.has_uart0) -+ bcm63xx_uart_register(0); -+ -+ if (board.has_uart1) -+ bcm63xx_uart_register(1); -+ -+ if (board.has_pccard) -+ bcm63xx_pcmcia_register(); -+ -+ if (board.has_enet0 && -+ !board_get_mac_address(board.enet0.mac_addr)) -+ bcm63xx_enet_register(0, &board.enet0); -+ -+ if (board.has_enet1 && -+ !board_get_mac_address(board.enet1.mac_addr)) -+ bcm63xx_enet_register(1, &board.enet1); -+ -+ if (board.has_ehci0) -+ bcm63xx_ehci_register(); -+ -+ if (board.has_ohci0) -+ bcm63xx_ohci_register(); -+ -+ if (board.has_dsp) -+ bcm63xx_dsp_register(&board.dsp); -+ -+ bcm63xx_spi_register(); -+ -+ if (board.num_devs) -+ platform_add_devices(board.devs, board.num_devs); -+ -+ if (board.num_spis) -+ spi_register_board_info(board.spis, board.num_spis); -+ -+ -+ /* read base address of boot chip select (0) */ -+ val = bcm_mpi_readl(MPI_CSBASE_REG(0)); -+ val &= MPI_CSBASE_BASE_MASK; -+ if (val != LIVEBOX_BOOT_ADDR) -+ printk(KERN_NOTICE PFX "flash address is: 0x%08x, forcing to: 0x%08x\n", -+ val, LIVEBOX_BOOT_ADDR); -+ mtd_resources[0].start = LIVEBOX_BOOT_ADDR; -+ mtd_resources[0].end = 0x1ebfffff; -+ -+ platform_device_register(&mtd_dev); -+ -+ /* count number of LEDs defined by this device */ -+ while (led_count < ARRAY_SIZE(board.leds) && board.leds[led_count].name) -+ led_count++; -+ -+ bcm63xx_led_data.num_leds = led_count; -+ bcm63xx_led_data.leds = board.leds; -+ -+ platform_device_register(&bcm63xx_gpio_leds); -+ -+ /* count number of BUTTONs defined by this device */ -+ while (button_count < ARRAY_SIZE(board.buttons) && board.buttons[button_count].desc) -+ button_count++; -+ -+ if (button_count) { -+ bcm63xx_gpio_keys_data.nbuttons = button_count; -+ bcm63xx_gpio_keys_data.buttons = board.buttons; -+ -+ platform_device_register(&bcm63xx_gpio_keys_device); -+ } -+ -+ return 0; -+} diff --git a/target/linux/brcm63xx/patches-3.10/514-board_ct536_ct5621.patch b/target/linux/brcm63xx/patches-3.10/514-board_ct536_ct5621.patch index 10d0d47bc8..8e8a64c02d 100644 --- a/target/linux/brcm63xx/patches-3.10/514-board_ct536_ct5621.patch +++ b/target/linux/brcm63xx/patches-3.10/514-board_ct536_ct5621.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -543,6 +543,51 @@ static struct board_info __initdata boar +@@ -531,6 +531,51 @@ static struct board_info __initdata boar }; @@ -52,7 +52,7 @@ static struct board_info __initdata board_96348gw = { .name = "96348GW", .expected_cpu_id = 0x6348, -@@ -2114,6 +2159,7 @@ static const struct board_info __initcon +@@ -2106,6 +2151,7 @@ static const struct board_info __initcon &board_96348sv, &board_V2500V_BB, &board_V2110, diff --git a/target/linux/brcm63xx/patches-3.10/515-board_DWV-S0_fixes.patch b/target/linux/brcm63xx/patches-3.10/515-board_DWV-S0_fixes.patch index c8825c0e35..3dac59a6c9 100644 --- a/target/linux/brcm63xx/patches-3.10/515-board_DWV-S0_fixes.patch +++ b/target/linux/brcm63xx/patches-3.10/515-board_DWV-S0_fixes.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -1313,6 +1313,8 @@ static struct board_info __initdata boar +@@ -1301,6 +1301,8 @@ static struct board_info __initdata boar .name = "DWV-S0", .expected_cpu_id = 0x6358, @@ -9,7 +9,7 @@ .has_enet0 = 1, .has_enet1 = 1, .has_pci = 1, -@@ -1328,6 +1330,7 @@ static struct board_info __initdata boar +@@ -1316,6 +1318,7 @@ static struct board_info __initdata boar }, .has_ohci0 = 1, diff --git a/target/linux/brcm63xx/patches-3.10/516-board_96348A-122.patch b/target/linux/brcm63xx/patches-3.10/516-board_96348A-122.patch index d3017dcaa4..e814407845 100644 --- a/target/linux/brcm63xx/patches-3.10/516-board_96348A-122.patch +++ b/target/linux/brcm63xx/patches-3.10/516-board_96348A-122.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -588,6 +588,69 @@ static struct board_info __initdata boar +@@ -576,6 +576,69 @@ static struct board_info __initdata boar }, }; @@ -70,7 +70,7 @@ static struct board_info __initdata board_96348gw = { .name = "96348GW", .expected_cpu_id = 0x6348, -@@ -2163,6 +2226,7 @@ static const struct board_info __initcon +@@ -2155,6 +2218,7 @@ static const struct board_info __initcon &board_V2500V_BB, &board_V2110, &board_ct536_ct5621, diff --git a/target/linux/brcm63xx/patches-3.10/517-RTA1205W_16_uart_fixes.patch b/target/linux/brcm63xx/patches-3.10/517-RTA1205W_16_uart_fixes.patch index c3756148c2..df532dd43b 100644 --- a/target/linux/brcm63xx/patches-3.10/517-RTA1205W_16_uart_fixes.patch +++ b/target/linux/brcm63xx/patches-3.10/517-RTA1205W_16_uart_fixes.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -853,6 +853,7 @@ static struct board_info __initdata boar +@@ -841,6 +841,7 @@ static struct board_info __initdata boar .name = "RTA1025W_16", .expected_cpu_id = 0x6348, diff --git a/target/linux/brcm63xx/patches-3.10/519_board_CPVA502plus.patch b/target/linux/brcm63xx/patches-3.10/519_board_CPVA502plus.patch index a18d878d0c..4887fb24a7 100644 --- a/target/linux/brcm63xx/patches-3.10/519_board_CPVA502plus.patch +++ b/target/linux/brcm63xx/patches-3.10/519_board_CPVA502plus.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -1151,6 +1151,42 @@ static struct board_info __initdata boar +@@ -1139,6 +1139,42 @@ static struct board_info __initdata boar }, }, }; @@ -43,7 +43,7 @@ #endif /* -@@ -2228,6 +2264,7 @@ static const struct board_info __initcon +@@ -2220,6 +2256,7 @@ static const struct board_info __initcon &board_V2110, &board_ct536_ct5621, &board_96348A_122, diff --git a/target/linux/brcm63xx/patches-3.10/520-bcm63xx-add-support-for-96368MVWG-board.patch b/target/linux/brcm63xx/patches-3.10/520-bcm63xx-add-support-for-96368MVWG-board.patch index 735fe776a8..aa64bff4f1 100644 --- a/target/linux/brcm63xx/patches-3.10/520-bcm63xx-add-support-for-96368MVWG-board.patch +++ b/target/linux/brcm63xx/patches-3.10/520-bcm63xx-add-support-for-96368MVWG-board.patch @@ -10,7 +10,7 @@ Subject: [PATCH 32/63] bcm63xx: add support for 96368MVWG board. --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -2228,6 +2228,85 @@ static struct board_info __initdata boar +@@ -2220,6 +2220,85 @@ static struct board_info __initdata boar #endif /* @@ -96,7 +96,7 @@ Subject: [PATCH 32/63] bcm63xx: add support for 96368MVWG board. * all boards */ static const struct board_info __initconst *bcm963xx_boards[] = { -@@ -2282,6 +2361,10 @@ static const struct board_info __initcon +@@ -2274,6 +2353,10 @@ static const struct board_info __initcon &board_HW553, &board_spw303v, #endif @@ -106,8 +106,10 @@ Subject: [PATCH 32/63] bcm63xx: add support for 96368MVWG board. +#endif }; - /* -@@ -2463,12 +2546,25 @@ void __init board_prom_init(void) + static void __init boardid_fixup(u8 *boot_addr) +--- a/arch/mips/bcm63xx/boards/board_common.c ++++ b/arch/mips/bcm63xx/boards/board_common.c +@@ -123,12 +123,25 @@ void __init board_early_setup(const stru bcm63xx_pci_enabled = 1; if (BCMCPU_IS_6348()) val |= GPIO_MODE_6348_G2_PCI; diff --git a/target/linux/brcm63xx/patches-3.10/521-bcm63xx-add-support-for-96368MVNgr-board.patch b/target/linux/brcm63xx/patches-3.10/521-bcm63xx-add-support-for-96368MVNgr-board.patch index 91b7965a55..93f7872316 100644 --- a/target/linux/brcm63xx/patches-3.10/521-bcm63xx-add-support-for-96368MVNgr-board.patch +++ b/target/linux/brcm63xx/patches-3.10/521-bcm63xx-add-support-for-96368MVNgr-board.patch @@ -9,7 +9,7 @@ Subject: [PATCH 33/63] bcm63xx: add support for 96368MVNgr board. --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -2304,6 +2304,72 @@ static struct board_info __initdata boar +@@ -2296,6 +2296,72 @@ static struct board_info __initdata boar .has_ohci0 = 1, .has_ehci0 = 1, }; @@ -82,7 +82,7 @@ Subject: [PATCH 33/63] bcm63xx: add support for 96368MVNgr board. #endif /* -@@ -2364,6 +2430,7 @@ static const struct board_info __initcon +@@ -2356,6 +2422,7 @@ static const struct board_info __initcon #ifdef CONFIG_BCM63XX_CPU_6368 &board_96368mvwg, diff --git a/target/linux/brcm63xx/patches-3.10/522-MIPS-BCM63XX-add-96328avng-reference-board.patch b/target/linux/brcm63xx/patches-3.10/522-MIPS-BCM63XX-add-96328avng-reference-board.patch index c8c098d9e6..6e2b920080 100644 --- a/target/linux/brcm63xx/patches-3.10/522-MIPS-BCM63XX-add-96328avng-reference-board.patch +++ b/target/linux/brcm63xx/patches-3.10/522-MIPS-BCM63XX-add-96328avng-reference-board.patch @@ -9,7 +9,7 @@ Subject: [PATCH] MIPS: BCM63XX: add 96328avng reference board --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -108,13 +108,45 @@ static struct board_info __initdata boar +@@ -87,13 +87,45 @@ static struct board_info __initdata boar .port_no = 0, }, @@ -56,7 +56,7 @@ Subject: [PATCH] MIPS: BCM63XX: add 96328avng reference board .name = "96328avng::power", .gpio = 4, .active_low = 1, -@@ -131,7 +163,7 @@ static struct board_info __initdata boar +@@ -110,7 +142,7 @@ static struct board_info __initdata boar .active_low = 1, }, { diff --git a/target/linux/brcm63xx/patches-3.10/523-MIPS-BCM63XX-add-963281TAN-reference-board.patch b/target/linux/brcm63xx/patches-3.10/523-MIPS-BCM63XX-add-963281TAN-reference-board.patch index 85df11582d..0ab119ecf4 100644 --- a/target/linux/brcm63xx/patches-3.10/523-MIPS-BCM63XX-add-963281TAN-reference-board.patch +++ b/target/linux/brcm63xx/patches-3.10/523-MIPS-BCM63XX-add-963281TAN-reference-board.patch @@ -9,7 +9,7 @@ Subject: [PATCH] MIPS: BCM63XX: add 963281TAN reference board --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -169,6 +169,76 @@ static struct board_info __initdata boar +@@ -148,6 +148,76 @@ static struct board_info __initdata boar }, }, }; @@ -86,7 +86,7 @@ Subject: [PATCH] MIPS: BCM63XX: add 963281TAN reference board #endif /* -@@ -2413,6 +2483,7 @@ static const struct board_info __initcon +@@ -2405,6 +2475,7 @@ static const struct board_info __initcon #endif #ifdef CONFIG_BCM63XX_CPU_6328 &board_96328avng, diff --git a/target/linux/brcm63xx/patches-3.10/524-board_dsl_274xb_rev_f.patch b/target/linux/brcm63xx/patches-3.10/524-board_dsl_274xb_rev_f.patch index 8e2c0777d2..ca55cc7718 100644 --- a/target/linux/brcm63xx/patches-3.10/524-board_dsl_274xb_rev_f.patch +++ b/target/linux/brcm63xx/patches-3.10/524-board_dsl_274xb_rev_f.patch @@ -10,7 +10,7 @@ Subject: [PATCH 70/79] MIPS: BCM63XX: Add board definition for D-Link --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -239,6 +239,111 @@ static struct board_info __initdata boar +@@ -218,6 +218,111 @@ static struct board_info __initdata boar }, }; @@ -122,7 +122,7 @@ Subject: [PATCH 70/79] MIPS: BCM63XX: Add board definition for D-Link #endif /* -@@ -2484,6 +2589,7 @@ static const struct board_info __initcon +@@ -2476,6 +2581,7 @@ static const struct board_info __initcon #ifdef CONFIG_BCM63XX_CPU_6328 &board_96328avng, &board_963281TAN, diff --git a/target/linux/brcm63xx/patches-3.10/525-board_96348w3.patch b/target/linux/brcm63xx/patches-3.10/525-board_96348w3.patch index 9564720db8..3564428870 100644 --- a/target/linux/brcm63xx/patches-3.10/525-board_96348w3.patch +++ b/target/linux/brcm63xx/patches-3.10/525-board_96348w3.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -1394,6 +1394,59 @@ static struct board_info __initdata boar +@@ -1382,6 +1382,59 @@ static struct board_info __initdata boar .ephy_reset_gpio_flags = GPIOF_INIT_HIGH, }; @@ -60,7 +60,7 @@ #endif /* -@@ -2619,6 +2672,7 @@ static const struct board_info __initcon +@@ -2611,6 +2664,7 @@ static const struct board_info __initcon &board_ct536_ct5621, &board_96348A_122, &board_CPVA502plus, diff --git a/target/linux/brcm63xx/patches-3.10/526-board_CT6373-1.patch b/target/linux/brcm63xx/patches-3.10/526-board_CT6373-1.patch index aad704d3a5..cad29a5d72 100644 --- a/target/linux/brcm63xx/patches-3.10/526-board_CT6373-1.patch +++ b/target/linux/brcm63xx/patches-3.10/526-board_CT6373-1.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -57,6 +57,13 @@ +@@ -635,6 +635,13 @@ static struct board_info __initdata boar #define NB4_SPI_GPIO_CLK 6 #define NB4_74HC64_GPIO(X) (NB4_74X164_GPIO_BASE + (X)) @@ -11,10 +11,10 @@ +#define CT6373_74HC64_GPIO(X) (CT6373_74X164_GPIO_BASE + (X)) + + - static struct board_info board; - /* -@@ -2343,6 +2350,113 @@ static struct board_info __initdata boar + .has_ohci0 = 1, + .has_pccard = 1, +@@ -2335,6 +2342,117 @@ static struct board_info __initdata boar .num_spis = ARRAY_SIZE(nb4_spi_devices), }; @@ -38,11 +38,14 @@ + &ct6373_spi_gpio, +}; + ++#if 0 /* FIXME: 3.14 dropped non-DT support */ +const struct gen_74x164_chip_platform_data ct6373_74x164_platform_data = { + .base = CT6373_74X164_GPIO_BASE +}; ++#endif + +static struct spi_board_info ct6373_spi_devices[] = { ++#if 0 /* FIXME: 3.14 dropped non-DT support */ + { + .modalias = "74x164", + .max_speed_hz = 781000, @@ -51,6 +54,7 @@ + .mode = SPI_MODE_0, + .platform_data = &ct6373_74x164_platform_data + } ++#endif +}; + +static struct board_info __initdata board_ct6373_1 = { @@ -128,7 +132,7 @@ static struct board_info __initdata board_HW553 = { .name = "HW553", .expected_cpu_id = 0x6358, -@@ -2687,6 +2801,7 @@ static const struct board_info __initcon +@@ -2679,6 +2797,7 @@ static const struct board_info __initcon &board_nb4_ser_r2, &board_nb4_fxc_r1, &board_nb4_fxc_r2, diff --git a/target/linux/brcm63xx/patches-3.10/527-board_dva-g3810bn-tl-1.patch b/target/linux/brcm63xx/patches-3.10/527-board_dva-g3810bn-tl-1.patch index 202cf3183d..9cc6777456 100644 --- a/target/linux/brcm63xx/patches-3.10/527-board_dva-g3810bn-tl-1.patch +++ b/target/linux/brcm63xx/patches-3.10/527-board_dva-g3810bn-tl-1.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -2599,6 +2599,73 @@ static struct board_info __initdata boar +@@ -2595,6 +2595,73 @@ static struct board_info __initdata boar }, } }; @@ -74,7 +74,7 @@ #endif /* -@@ -2804,6 +2871,7 @@ static const struct board_info __initcon +@@ -2800,6 +2867,7 @@ static const struct board_info __initcon &board_ct6373_1, &board_HW553, &board_spw303v, diff --git a/target/linux/brcm63xx/patches-3.10/528-board_nb6.patch b/target/linux/brcm63xx/patches-3.10/528-board_nb6.patch index 347b183e4a..67d95f906f 100644 --- a/target/linux/brcm63xx/patches-3.10/528-board_nb6.patch +++ b/target/linux/brcm63xx/patches-3.10/528-board_nb6.patch @@ -1,14 +1,14 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -17,6 +17,7 @@ - #include - #include +@@ -18,6 +18,7 @@ + #if 0 /* FIXME: 3.14 removed non-DT support */ #include + #endif +#include #include #include #include -@@ -56,6 +57,8 @@ +@@ -634,6 +635,8 @@ static struct board_info __initdata boar #define NB4_SPI_GPIO_MOSI 7 #define NB4_SPI_GPIO_CLK 6 #define NB4_74HC64_GPIO(X) (NB4_74X164_GPIO_BASE + (X)) @@ -17,7 +17,7 @@ #define CT6373_PID_OFFSET 0xff80 #define CT6373_74X164_GPIO_BASE 64 -@@ -2668,6 +2671,104 @@ static struct board_info __initdata boar +@@ -2664,6 +2667,104 @@ static struct board_info __initdata boar }; #endif @@ -122,7 +122,7 @@ /* * known 6368 boards */ -@@ -2874,6 +2975,10 @@ static const struct board_info __initcon +@@ -2870,6 +2971,10 @@ static const struct board_info __initcon &board_DVAG3810BN, #endif @@ -133,7 +133,7 @@ #ifdef CONFIG_BCM63XX_CPU_6368 &board_96368mvwg, &board_96368mvngr, -@@ -2941,6 +3046,11 @@ static void __init boardid_fixup(u8 *boo +@@ -2891,6 +2996,11 @@ static void __init boardid_fixup(u8 *boo } } diff --git a/target/linux/brcm63xx/patches-3.10/529-board_fast2604.patch b/target/linux/brcm63xx/patches-3.10/529-board_fast2604.patch index 657eec1ca4..9d27f44c87 100644 --- a/target/linux/brcm63xx/patches-3.10/529-board_fast2604.patch +++ b/target/linux/brcm63xx/patches-3.10/529-board_fast2604.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -1066,6 +1066,57 @@ static struct board_info __initdata boar +@@ -1054,6 +1054,57 @@ static struct board_info __initdata boar .has_ehci0 = 1, }; @@ -58,7 +58,7 @@ static struct board_info __initdata board_rta1025w_16 = { .name = "RTA1025W_16", .expected_cpu_id = 0x6348, -@@ -2943,6 +2994,7 @@ static const struct board_info __initcon +@@ -2939,6 +2990,7 @@ static const struct board_info __initcon &board_96348gw_10, &board_96348gw_11, &board_FAST2404, diff --git a/target/linux/brcm63xx/patches-3.10/530-board_963281T_TEF.patch b/target/linux/brcm63xx/patches-3.10/530-board_963281T_TEF.patch index 545670bad4..f9ea84363a 100644 --- a/target/linux/brcm63xx/patches-3.10/530-board_963281T_TEF.patch +++ b/target/linux/brcm63xx/patches-3.10/530-board_963281T_TEF.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -250,6 +250,126 @@ static struct board_info __initdata boar +@@ -220,6 +220,126 @@ static struct board_info __initdata boar }, }; @@ -127,7 +127,7 @@ static struct board_info __initdata board_dsl_274xb_f1 = { .name = "AW4339U", .expected_cpu_id = 0x6328, -@@ -2975,6 +3095,7 @@ static const struct board_info __initcon +@@ -2971,6 +3091,7 @@ static const struct board_info __initcon #ifdef CONFIG_BCM63XX_CPU_6328 &board_96328avng, &board_963281TAN, diff --git a/target/linux/brcm63xx/patches-3.10/531-board_96328A-1441N1.patch b/target/linux/brcm63xx/patches-3.10/531-board_96328A-1441N1.patch index 218f53082e..74f5183d61 100644 --- a/target/linux/brcm63xx/patches-3.10/531-board_96328A-1441N1.patch +++ b/target/linux/brcm63xx/patches-3.10/531-board_96328A-1441N1.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -180,6 +180,79 @@ static struct board_info __initdata boar +@@ -150,6 +150,79 @@ static struct board_info __initdata boar }, }; @@ -80,7 +80,7 @@ static struct board_info __initdata board_963281TAN = { .name = "963281TAN", .expected_cpu_id = 0x6328, -@@ -3094,6 +3167,7 @@ static const struct board_info __initcon +@@ -3090,6 +3163,7 @@ static const struct board_info __initcon #endif #ifdef CONFIG_BCM63XX_CPU_6328 &board_96328avng, diff --git a/target/linux/brcm63xx/patches-3.10/532-board_96328a-1241N.patch b/target/linux/brcm63xx/patches-3.10/532-board_96328a-1241N.patch index 84cc56bce7..efdf0d2f33 100644 --- a/target/linux/brcm63xx/patches-3.10/532-board_96328a-1241N.patch +++ b/target/linux/brcm63xx/patches-3.10/532-board_96328a-1241N.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -180,6 +180,73 @@ static struct board_info __initdata boar +@@ -150,6 +150,73 @@ static struct board_info __initdata boar }, }; @@ -74,7 +74,7 @@ static struct board_info __initdata board_96328A_1441N1 = { .name = "96328A-1441N1", .expected_cpu_id = 0x6328, -@@ -3167,6 +3234,7 @@ static const struct board_info __initcon +@@ -3163,6 +3230,7 @@ static const struct board_info __initcon #endif #ifdef CONFIG_BCM63XX_CPU_6328 &board_96328avng, diff --git a/target/linux/brcm63xx/patches-3.10/533-board_rta770bw.patch b/target/linux/brcm63xx/patches-3.10/533-board_rta770bw.patch index 95c15b803a..cf26e88a16 100644 --- a/target/linux/brcm63xx/patches-3.10/533-board_rta770bw.patch +++ b/target/linux/brcm63xx/patches-3.10/533-board_rta770bw.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -788,6 +788,55 @@ static struct board_info __initdata boar +@@ -758,6 +758,55 @@ static struct board_info __initdata boar .has_uart0 = 1, }; @@ -56,7 +56,7 @@ #endif /* -@@ -3248,6 +3297,7 @@ static const struct board_info __initcon +@@ -3244,6 +3293,7 @@ static const struct board_info __initcon #endif #ifdef CONFIG_BCM63XX_CPU_6345 &board_96345gw2, diff --git a/target/linux/brcm63xx/patches-3.10/534-board_hw556.patch b/target/linux/brcm63xx/patches-3.10/534-board_hw556.patch index f1e62cc319..baf0266afb 100644 --- a/target/linux/brcm63xx/patches-3.10/534-board_hw556.patch +++ b/target/linux/brcm63xx/patches-3.10/534-board_hw556.patch @@ -1,6 +1,14 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -2897,6 +2897,492 @@ static struct board_info __initdata boar +@@ -12,6 +12,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -2893,6 +2894,492 @@ static struct board_info __initdata boar }, }; @@ -493,7 +501,7 @@ /* T-Home Speedport W 303V Typ B */ static struct board_info __initdata board_spw303v = { .name = "96358-502V", -@@ -3336,6 +3822,10 @@ static const struct board_info __initcon +@@ -3332,6 +3819,10 @@ static const struct board_info __initcon &board_nb4_fxc_r2, &board_ct6373_1, &board_HW553, @@ -504,7 +512,7 @@ &board_spw303v, &board_DVAG3810BN, #endif -@@ -3401,13 +3891,37 @@ static void __init boardid_fixup(u8 *boo +@@ -3351,13 +3842,37 @@ static void __init boardid_fixup(u8 *boo struct bcm_tag *tag = (struct bcm_tag *)(boot_addr + CFE_OFFSET_64K); char *board_name = (char *)bcm63xx_nvram_get_name(); diff --git a/target/linux/brcm63xx/patches-3.10/535-board_rta770w.patch b/target/linux/brcm63xx/patches-3.10/535-board_rta770w.patch index 521c093d11..df414bf2d3 100644 --- a/target/linux/brcm63xx/patches-3.10/535-board_rta770w.patch +++ b/target/linux/brcm63xx/patches-3.10/535-board_rta770w.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -776,6 +776,60 @@ static struct board_info __initdata boar +@@ -747,6 +747,60 @@ static struct board_info __initdata boar }, }, }; @@ -61,7 +61,7 @@ #endif /* -@@ -3784,6 +3838,7 @@ static const struct board_info __initcon +@@ -3781,6 +3835,7 @@ static const struct board_info __initcon #ifdef CONFIG_BCM63XX_CPU_6345 &board_96345gw2, &board_rta770bw, diff --git a/target/linux/brcm63xx/patches-3.10/536-board_fast2704.patch b/target/linux/brcm63xx/patches-3.10/536-board_fast2704.patch index f3d700a4d6..cc7b71c54d 100644 --- a/target/linux/brcm63xx/patches-3.10/536-board_fast2704.patch +++ b/target/linux/brcm63xx/patches-3.10/536-board_fast2704.patch @@ -12,7 +12,7 @@ Signed-off-by: Marcin Jurkowski --- --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -1480,6 +1480,122 @@ static struct board_info __initdata boar +@@ -1469,6 +1469,122 @@ static struct board_info __initdata boar }, }; @@ -135,7 +135,7 @@ Signed-off-by: Marcin Jurkowski static struct board_info __initdata board_rta1025w_16 = { .name = "RTA1025W_16", .expected_cpu_id = 0x6348, -@@ -3828,6 +3944,7 @@ static const struct board_info __initcon +@@ -3825,6 +3941,7 @@ static const struct board_info __initcon &board_963281TAN, &board_963281T_TEF, &board_dsl_274xb_f1, diff --git a/target/linux/brcm63xx/patches-3.10/537-board_fast2504n.patch b/target/linux/brcm63xx/patches-3.10/537-board_fast2504n.patch index bfb2e6608e..79137a757f 100644 --- a/target/linux/brcm63xx/patches-3.10/537-board_fast2504n.patch +++ b/target/linux/brcm63xx/patches-3.10/537-board_fast2504n.patch @@ -6,7 +6,7 @@ Signed-off-by: Max Staudt --- --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -3783,6 +3783,96 @@ static struct board_info __initdata boar +@@ -3780,6 +3780,96 @@ static struct board_info __initdata boar .devs = nb6_devices, .num_devs = ARRAY_SIZE(nb6_devices), }; @@ -103,7 +103,7 @@ Signed-off-by: Max Staudt #endif /* -@@ -4004,6 +4094,7 @@ static const struct board_info __initcon +@@ -4001,6 +4091,7 @@ static const struct board_info __initcon #ifdef CONFIG_BCM63XX_CPU_6362 &board_nb6, diff --git a/target/linux/brcm63xx/patches-3.10/550-alice_gate2_leds.patch b/target/linux/brcm63xx/patches-3.10/550-alice_gate2_leds.patch index 543a97ff52..f0ce9594b6 100644 --- a/target/linux/brcm63xx/patches-3.10/550-alice_gate2_leds.patch +++ b/target/linux/brcm63xx/patches-3.10/550-alice_gate2_leds.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -2207,6 +2207,99 @@ static struct board_info __initdata boar +@@ -2196,6 +2196,99 @@ static struct board_info __initdata boar .has_ohci0 = 1, .has_ehci0 = 1, diff --git a/target/linux/brcm63xx/patches-3.10/551-96348gw_a_leds.patch b/target/linux/brcm63xx/patches-3.10/551-96348gw_a_leds.patch index 07fceaaeb8..d1c1bd895e 100644 --- a/target/linux/brcm63xx/patches-3.10/551-96348gw_a_leds.patch +++ b/target/linux/brcm63xx/patches-3.10/551-96348gw_a_leds.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -1655,6 +1655,19 @@ static struct board_info __initdata boar +@@ -1644,6 +1644,19 @@ static struct board_info __initdata boar }, .has_ohci0 = 1, diff --git a/target/linux/brcm63xx/patches-3.10/552-board_96348gw-10_reset_button.patch b/target/linux/brcm63xx/patches-3.10/552-board_96348gw-10_reset_button.patch index 7a310390e2..25858b7991 100644 --- a/target/linux/brcm63xx/patches-3.10/552-board_96348gw-10_reset_button.patch +++ b/target/linux/brcm63xx/patches-3.10/552-board_96348gw-10_reset_button.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -999,6 +999,17 @@ static struct board_info __initdata boar +@@ -970,6 +970,17 @@ static struct board_info __initdata boar .active_low = 1, }, }, diff --git a/target/linux/brcm63xx/patches-3.10/553-boards_probe_switch.patch b/target/linux/brcm63xx/patches-3.10/553-boards_probe_switch.patch index dfdbc06ddb..07c39b40c6 100644 --- a/target/linux/brcm63xx/patches-3.10/553-boards_probe_switch.patch +++ b/target/linux/brcm63xx/patches-3.10/553-boards_probe_switch.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -627,6 +627,8 @@ static struct board_info __initdata boar +@@ -598,6 +598,8 @@ static struct board_info __initdata boar .has_uart0 = 1, .has_enet0 = 1, .enet0 = { @@ -9,7 +9,7 @@ .force_speed_100 = 1, .force_duplex_full = 1, }, -@@ -670,6 +672,8 @@ static struct board_info __initdata boar +@@ -641,6 +643,8 @@ static struct board_info __initdata boar .has_uart0 = 1, .has_enet0 = 1, .enet0 = { @@ -18,7 +18,7 @@ .force_speed_100 = 1, .force_duplex_full = 1, }, -@@ -955,6 +959,8 @@ static struct board_info __initdata boar +@@ -926,6 +930,8 @@ static struct board_info __initdata boar .use_internal_phy = 1, }, .enet1 = { @@ -27,7 +27,7 @@ .force_speed_100 = 1, .force_duplex_full = 1, }, -@@ -1027,6 +1033,8 @@ static struct board_info __initdata boar +@@ -998,6 +1004,8 @@ static struct board_info __initdata boar }, .enet1 = { @@ -36,7 +36,7 @@ .force_speed_100 = 1, .force_duplex_full = 1, }, -@@ -1256,6 +1264,8 @@ static struct board_info __initdata boar +@@ -1245,6 +1253,8 @@ static struct board_info __initdata boar .use_internal_phy = 1, }, .enet1 = { @@ -45,7 +45,7 @@ .force_speed_100 = 1, .force_duplex_full = 1, }, -@@ -1431,6 +1441,8 @@ static struct board_info __initdata boar +@@ -1420,6 +1430,8 @@ static struct board_info __initdata boar }, .enet1 = { @@ -54,7 +54,7 @@ .force_speed_100 = 1, .force_duplex_full = 1, }, -@@ -1621,6 +1633,8 @@ static struct board_info __initdata boar +@@ -1610,6 +1622,8 @@ static struct board_info __initdata boar .use_internal_phy = 1, }, .enet1 = { @@ -63,7 +63,7 @@ .force_speed_100 = 1, .force_duplex_full = 1, }, -@@ -1642,6 +1656,8 @@ static struct board_info __initdata boar +@@ -1631,6 +1645,8 @@ static struct board_info __initdata boar .use_internal_phy = 1, }, .enet1 = { @@ -72,7 +72,7 @@ .force_speed_100 = 1, .force_duplex_full = 1, }, -@@ -1661,6 +1677,8 @@ static struct board_info __initdata boar +@@ -1650,6 +1666,8 @@ static struct board_info __initdata boar .use_internal_phy = 1, }, .enet1 = { @@ -81,7 +81,7 @@ .force_speed_100 = 1, .force_duplex_full = 1, }, -@@ -2032,6 +2050,8 @@ static struct board_info __initdata boar +@@ -2021,6 +2039,8 @@ static struct board_info __initdata boar }, .enet1 = { @@ -90,7 +90,7 @@ .force_speed_100 = 1, .force_duplex_full = 1, }, -@@ -2084,6 +2104,8 @@ static struct board_info __initdata boar +@@ -2073,6 +2093,8 @@ static struct board_info __initdata boar }, .enet1 = { @@ -99,7 +99,7 @@ .force_speed_100 = 1, .force_duplex_full = 1, }, -@@ -2225,6 +2247,8 @@ static struct board_info __initdata boar +@@ -2214,6 +2236,8 @@ static struct board_info __initdata boar }, .enet1 = { @@ -108,7 +108,7 @@ .force_speed_100 = 1, .force_duplex_full = 1, }, -@@ -2342,6 +2366,8 @@ static struct board_info __initdata boar +@@ -2331,6 +2355,8 @@ static struct board_info __initdata boar }, .enet1 = { diff --git a/target/linux/brcm63xx/patches-3.10/554-board_DWVS0_leds_buttons.patch b/target/linux/brcm63xx/patches-3.10/554-board_DWVS0_leds_buttons.patch index aa160ca772..54c7d5cfc5 100644 --- a/target/linux/brcm63xx/patches-3.10/554-board_DWVS0_leds_buttons.patch +++ b/target/linux/brcm63xx/patches-3.10/554-board_DWVS0_leds_buttons.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -2374,6 +2374,94 @@ static struct board_info __initdata boar +@@ -2363,6 +2363,94 @@ static struct board_info __initdata boar .has_ohci0 = 1, .has_ehci0 = 1, diff --git a/target/linux/brcm63xx/patches-3.10/555-board_96318ref.patch b/target/linux/brcm63xx/patches-3.10/555-board_96318ref.patch index 83ea8933a4..d700093c0d 100644 --- a/target/linux/brcm63xx/patches-3.10/555-board_96318ref.patch +++ b/target/linux/brcm63xx/patches-3.10/555-board_96318ref.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -102,6 +102,93 @@ static struct board_info __initdata boar +@@ -73,6 +73,93 @@ static struct board_info __initdata boar #endif /* @@ -94,7 +94,7 @@ * known 6328 boards */ #ifdef CONFIG_BCM63XX_CPU_6328 -@@ -4258,6 +4345,9 @@ static const struct board_info __initcon +@@ -4255,6 +4342,9 @@ static const struct board_info __initcon #ifdef CONFIG_BCM63XX_CPU_3368 &board_cvg834g, #endif diff --git a/target/linux/brcm63xx/patches-3.10/556-board_96318ref_p300.patch b/target/linux/brcm63xx/patches-3.10/556-board_96318ref_p300.patch index e33b44810e..b31eee8cc0 100644 --- a/target/linux/brcm63xx/patches-3.10/556-board_96318ref_p300.patch +++ b/target/linux/brcm63xx/patches-3.10/556-board_96318ref_p300.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -186,6 +186,94 @@ static struct board_info __initdata boar +@@ -157,6 +157,94 @@ static struct board_info __initdata boar }, }, }; @@ -95,7 +95,7 @@ #endif /* -@@ -4347,6 +4435,7 @@ static const struct board_info __initcon +@@ -4344,6 +4432,7 @@ static const struct board_info __initcon #endif #ifdef CONFIG_BCM63XX_CPU_6318 &board_96318ref, diff --git a/target/linux/brcm63xx/patches-3.10/557-board_bcm963269bhr.patch b/target/linux/brcm63xx/patches-3.10/557-board_bcm963269bhr.patch index 251d1387f1..c340429ede 100644 --- a/target/linux/brcm63xx/patches-3.10/557-board_bcm963269bhr.patch +++ b/target/linux/brcm63xx/patches-3.10/557-board_bcm963269bhr.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -4427,6 +4427,75 @@ static struct board_info __initdata boar +@@ -4424,6 +4424,75 @@ static struct board_info __initdata boar #endif /* @@ -76,7 +76,7 @@ * all boards */ static const struct board_info __initconst *bcm963xx_boards[] = { -@@ -4511,6 +4580,9 @@ static const struct board_info __initcon +@@ -4508,6 +4577,9 @@ static const struct board_info __initcon &board_96368mvwg, &board_96368mvngr, #endif @@ -85,4 +85,4 @@ +#endif }; - /* + static void __init boardid_fixup(u8 *boot_addr) diff --git a/target/linux/brcm63xx/patches-3.10/558-board_AR1004G.patch b/target/linux/brcm63xx/patches-3.10/558-board_AR1004G.patch index 0650289656..97feb37dc1 100644 --- a/target/linux/brcm63xx/patches-3.10/558-board_AR1004G.patch +++ b/target/linux/brcm63xx/patches-3.10/558-board_AR1004G.patch @@ -8,7 +8,7 @@ Signed-off-by: Adrian Feliks --- --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -2204,6 +2204,51 @@ static struct board_info __initdata boar +@@ -2193,6 +2193,51 @@ static struct board_info __initdata boar }, }; @@ -60,7 +60,7 @@ Signed-off-by: Adrian Feliks #endif /* -@@ -4547,6 +4592,7 @@ static const struct board_info __initcon +@@ -4544,6 +4589,7 @@ static const struct board_info __initcon &board_96348A_122, &board_CPVA502plus, &board_96348W3, diff --git a/target/linux/brcm63xx/patches-3.10/559-board_vw6339gu.patch b/target/linux/brcm63xx/patches-3.10/559-board_vw6339gu.patch index 08e404601e..4409f3cfaf 100644 --- a/target/linux/brcm63xx/patches-3.10/559-board_vw6339gu.patch +++ b/target/linux/brcm63xx/patches-3.10/559-board_vw6339gu.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -4538,6 +4538,108 @@ static struct board_info __initdata boar +@@ -4535,6 +4535,108 @@ static struct board_info __initdata boar }, }, }; @@ -109,7 +109,7 @@ #endif /* -@@ -4628,6 +4730,7 @@ static const struct board_info __initcon +@@ -4625,6 +4727,7 @@ static const struct board_info __initcon #endif #ifdef CONFIG_BCM63XX_CPU_63268 &board_963269bhr, diff --git a/target/linux/brcm63xx/patches-3.10/560-board_963268gu_p300.patch b/target/linux/brcm63xx/patches-3.10/560-board_963268gu_p300.patch index b9b4a843e2..b1b49736b5 100644 --- a/target/linux/brcm63xx/patches-3.10/560-board_963268gu_p300.patch +++ b/target/linux/brcm63xx/patches-3.10/560-board_963268gu_p300.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -4475,6 +4475,131 @@ static struct board_info __initdata boar +@@ -4472,6 +4472,131 @@ static struct board_info __initdata boar * known 63268/63269 boards */ #ifdef CONFIG_BCM63XX_CPU_63268 @@ -132,7 +132,7 @@ static struct board_info __initdata board_963269bhr = { .name = "963269BHR", .expected_cpu_id = 0x63268, -@@ -4729,6 +4854,7 @@ static const struct board_info __initcon +@@ -4726,6 +4851,7 @@ static const struct board_info __initcon &board_96368mvngr, #endif #ifdef CONFIG_BCM63XX_CPU_63268 diff --git a/target/linux/brcm63xx/patches-3.10/561-board_WAP-5813n.patch b/target/linux/brcm63xx/patches-3.10/561-board_WAP-5813n.patch index a89878a13a..d70a55aee2 100644 --- a/target/linux/brcm63xx/patches-3.10/561-board_WAP-5813n.patch +++ b/target/linux/brcm63xx/patches-3.10/561-board_WAP-5813n.patch @@ -1,14 +1,14 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -14,6 +14,7 @@ - #include +@@ -13,6 +13,7 @@ #include #include + #include +#include + #include #include #include - #include -@@ -4469,6 +4470,99 @@ static struct board_info __initdata boar +@@ -4466,6 +4467,99 @@ static struct board_info __initdata boar .has_ohci0 = 1, .has_ehci0 = 1, }; @@ -108,7 +108,7 @@ #endif /* -@@ -4852,6 +4946,7 @@ static const struct board_info __initcon +@@ -4849,6 +4943,7 @@ static const struct board_info __initcon #ifdef CONFIG_BCM63XX_CPU_6368 &board_96368mvwg, &board_96368mvngr, diff --git a/target/linux/brcm63xx/patches-3.10/801-ssb_export_fallback_sprom.patch b/target/linux/brcm63xx/patches-3.10/801-ssb_export_fallback_sprom.patch index 2b7fd2fe06..1e75cfe0d6 100644 --- a/target/linux/brcm63xx/patches-3.10/801-ssb_export_fallback_sprom.patch +++ b/target/linux/brcm63xx/patches-3.10/801-ssb_export_fallback_sprom.patch @@ -1,14 +1,14 @@ ---- a/arch/mips/bcm63xx/boards/board_bcm963xx.c -+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -14,6 +14,7 @@ +--- a/arch/mips/bcm63xx/boards/board_common.c ++++ b/arch/mips/bcm63xx/boards/board_common.c +@@ -13,6 +13,7 @@ + #include #include #include - #include +#include - #include #include - #include -@@ -4960,7 +4961,7 @@ static const struct board_info __initcon + #include + #include +@@ -49,7 +50,7 @@ static struct board_info board; * bcm4318 WLAN work */ #ifdef CONFIG_SSB_PCIHOST @@ -17,7 +17,7 @@ .revision = 0x02, .board_rev = 0x17, .country_code = 0x0, -@@ -4980,6 +4981,7 @@ static struct ssb_sprom bcm63xx_sprom = +@@ -69,6 +70,7 @@ static struct ssb_sprom bcm63xx_sprom = .boardflags_lo = 0x2848, .boardflags_hi = 0x0000, };