From 43cc8c3ebec4658963d44a6108f8f74e8ccdbb54 Mon Sep 17 00:00:00 2001 From: Jonas Gorski Date: Sat, 21 Jun 2014 19:23:38 +0000 Subject: [PATCH] brcm63xx: allow bcm963xx and livebox support at the same time Use the CFE_EPTSEAL to tell them apart at runtime. Added for now only for the 3.14 until properly tested. Signed-off-by: Jonas Gorski SVN-Revision: 41296 --- target/linux/brcm63xx/config-3.14 | 2 +- ...e-device-registration-code-into-its-.patch | 493 ++++++++++++++++++ ...s-a-mac-addresss-allocator-to-board-.patch | 100 ++++ .../patches-3.14/300-reset_buttons.patch | 39 +- .../brcm63xx/patches-3.14/301-led_count.patch | 8 +- .../302-extended-platform-devices.patch | 6 +- .../patches-3.14/303-spi-board-info.patch | 10 +- .../patches-3.14/304-boardid_fixup.patch | 22 +- .../patches-3.14/308-board_leds_naming.patch | 16 +- .../patches-3.14/309-cfe_version_mod.patch | 2 +- ...IPS-BCM63XX-add-support-for-BCM63268.patch | 2 +- ...MIPS-BCM63XX-add-support-for-BCM6318.patch | 2 +- .../347-MIPS-BCM6318-USB-support.patch | 8 +- ...63XX-support-settings-num-usbh-ports.patch | 10 +- .../351-set-board-usbh-ports.patch | 2 +- ...ow-building-support-for-more-than-on.patch | 95 ++++ ...ow-board-implementations-to-force-fl.patch | 61 +++ .../403-6358-enet1-external-mii-clk.patch | 6 +- ...CM63XX-Register-SPI-flash-if-present.patch | 14 +- ...w-providing-fixup-data-in-board-data.patch | 18 +- ...M63XX-export-the-attached-flash-type.patch | 4 +- ...S-BCM63XX-pass-caldata-info-to-flash.patch | 16 +- ...0-BCM63XX-add-endian-check-for-ath9k.patch | 6 +- .../421-BCM63XX-add-led-pin-for-ath9k.patch | 6 +- ...M63XX-add-a-fixup-for-rt2x00-devices.patch | 16 +- .../patches-3.14/500-board-D4PW.patch | 4 +- .../brcm63xx/patches-3.14/501-board-NB4.patch | 18 +- .../patches-3.14/502-board-96338W2_E7T.patch | 4 +- .../patches-3.14/503-board-CPVA642.patch | 4 +- .../504-board_dsl_274xb_rev_c.patch | 4 +- .../patches-3.14/505-board_spw500v.patch | 4 +- .../506-board_gw6200_gw6000.patch | 4 +- .../patches-3.14/507-board-MAGIC.patch | 4 +- .../patches-3.14/508-board_hw553.patch | 4 +- .../patches-3.14/509-board_rta1320_16m.patch | 4 +- .../patches-3.14/510-board_spw303v.patch | 4 +- .../patches-3.14/511-board_V2500V.patch | 30 +- .../patches-3.14/512-board_BTV2110.patch | 4 +- ...BCM63XX-add-inventel-Livebox-support.patch | 257 +++++++++ .../patches-3.14/513-board_livebox.patch | 390 -------------- .../patches-3.14/514-board_ct536_ct5621.patch | 4 +- .../patches-3.14/515-board_DWV-S0_fixes.patch | 4 +- .../patches-3.14/516-board_96348A-122.patch | 4 +- .../517-RTA1205W_16_uart_fixes.patch | 2 +- .../patches-3.14/519_board_CPVA502plus.patch | 4 +- ...63xx-add-support-for-96368MVWG-board.patch | 10 +- ...3xx-add-support-for-96368MVNgr-board.patch | 4 +- ...CM63XX-add-96328avng-reference-board.patch | 4 +- ...CM63XX-add-963281TAN-reference-board.patch | 4 +- .../524-board_dsl_274xb_rev_f.patch | 4 +- .../patches-3.14/525-board_96348w3.patch | 4 +- .../patches-3.14/526-board_CT6373-1.patch | 10 +- .../527-board_dva-g3810bn-tl-1.patch | 4 +- .../brcm63xx/patches-3.14/528-board_nb6.patch | 10 +- .../patches-3.14/529-board_fast2604.patch | 4 +- .../patches-3.14/530-board_963281T_TEF.patch | 4 +- .../531-board_96328A-1441N1.patch | 4 +- .../patches-3.14/532-board_96328a-1241N.patch | 4 +- .../patches-3.14/533-board_rta770bw.patch | 4 +- .../patches-3.14/534-board_hw556.patch | 14 +- .../patches-3.14/535-board_rta770w.patch | 4 +- .../patches-3.14/536-board_fast2704.patch | 4 +- .../patches-3.14/537-board_fast2504n.patch | 4 +- .../patches-3.14/550-alice_gate2_leds.patch | 2 +- .../patches-3.14/551-96348gw_a_leds.patch | 2 +- .../552-board_96348gw-10_reset_button.patch | 2 +- .../553-boards_probe_switch.patch | 26 +- .../554-board_DWVS0_leds_buttons.patch | 2 +- .../patches-3.14/555-board_96318ref.patch | 4 +- .../556-board_96318ref_p300.patch | 4 +- .../patches-3.14/557-board_bcm963269bhr.patch | 6 +- .../patches-3.14/558-board_AR1004G.patch | 4 +- .../patches-3.14/559-board_vw6339gu.patch | 4 +- .../560-board_963268gu_p300.patch | 4 +- .../801-ssb_export_fallback_sprom.patch | 16 +- 75 files changed, 1272 insertions(+), 625 deletions(-) create mode 100644 target/linux/brcm63xx/patches-3.14/207-MIPS-BCM63XX-move-device-registration-code-into-its-.patch create mode 100644 target/linux/brcm63xx/patches-3.14/208-MIPS-BCM63XX-pass-a-mac-addresss-allocator-to-board-.patch create mode 100644 target/linux/brcm63xx/patches-3.14/354-MIPS-BCM63XX-allow-building-support-for-more-than-on.patch create mode 100644 target/linux/brcm63xx/patches-3.14/355-MIPS-BCM63XX-allow-board-implementations-to-force-fl.patch create mode 100644 target/linux/brcm63xx/patches-3.14/513-MIPS-BCM63XX-add-inventel-Livebox-support.patch delete mode 100644 target/linux/brcm63xx/patches-3.14/513-board_livebox.patch diff --git a/target/linux/brcm63xx/config-3.14 b/target/linux/brcm63xx/config-3.14 index 9a044ec743..ddb12b1bb4 100644 --- a/target/linux/brcm63xx/config-3.14 +++ b/target/linux/brcm63xx/config-3.14 @@ -33,7 +33,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.14/207-MIPS-BCM63XX-move-device-registration-code-into-its-.patch b/target/linux/brcm63xx/patches-3.14/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.14/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.14/208-MIPS-BCM63XX-pass-a-mac-addresss-allocator-to-board-.patch b/target/linux/brcm63xx/patches-3.14/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.14/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.14/300-reset_buttons.patch b/target/linux/brcm63xx/patches-3.14/300-reset_buttons.patch index 0886f6c5fc..c64d405496 100644 --- a/target/linux/brcm63xx/patches-3.14/300-reset_buttons.patch +++ b/target/linux/brcm63xx/patches-3.14/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.14/301-led_count.patch b/target/linux/brcm63xx/patches-3.14/301-led_count.patch index 5b9a12e96e..49a18255d2 100644 --- a/target/linux/brcm63xx/patches-3.14/301-led_count.patch +++ b/target/linux/brcm63xx/patches-3.14/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.14/302-extended-platform-devices.patch b/target/linux/brcm63xx/patches-3.14/302-extended-platform-devices.patch index 2810b6f629..cc61cee477 100644 --- a/target/linux/brcm63xx/patches-3.14/302-extended-platform-devices.patch +++ b/target/linux/brcm63xx/patches-3.14/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.14/303-spi-board-info.patch b/target/linux/brcm63xx/patches-3.14/303-spi-board-info.patch index 0258710f0b..878e6262d4 100644 --- a/target/linux/brcm63xx/patches-3.14/303-spi-board-info.patch +++ b/target/linux/brcm63xx/patches-3.14/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.14/304-boardid_fixup.patch b/target/linux/brcm63xx/patches-3.14/304-boardid_fixup.patch index 937b9d64f3..33744fdab6 100644 --- a/target/linux/brcm63xx/patches-3.14/304-boardid_fixup.patch +++ b/target/linux/brcm63xx/patches-3.14/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.14/308-board_leds_naming.patch b/target/linux/brcm63xx/patches-3.14/308-board_leds_naming.patch index 0064066803..fe4675521b 100644 --- a/target/linux/brcm63xx/patches-3.14/308-board_leds_naming.patch +++ b/target/linux/brcm63xx/patches-3.14/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.14/309-cfe_version_mod.patch b/target/linux/brcm63xx/patches-3.14/309-cfe_version_mod.patch index dfc33841ea..7f2d1ec992 100644 --- a/target/linux/brcm63xx/patches-3.14/309-cfe_version_mod.patch +++ b/target/linux/brcm63xx/patches-3.14/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.14/339-MIPS-BCM63XX-add-support-for-BCM63268.patch b/target/linux/brcm63xx/patches-3.14/339-MIPS-BCM63XX-add-support-for-BCM63268.patch index e1d728db8c..0dc9d7b18c 100644 --- a/target/linux/brcm63xx/patches-3.14/339-MIPS-BCM63XX-add-support-for-BCM63268.patch +++ b/target/linux/brcm63xx/patches-3.14/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.14/341-MIPS-BCM63XX-add-support-for-BCM6318.patch b/target/linux/brcm63xx/patches-3.14/341-MIPS-BCM63XX-add-support-for-BCM6318.patch index c7a222557d..632e2eceff 100644 --- a/target/linux/brcm63xx/patches-3.14/341-MIPS-BCM63XX-add-support-for-BCM6318.patch +++ b/target/linux/brcm63xx/patches-3.14/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.14/347-MIPS-BCM6318-USB-support.patch b/target/linux/brcm63xx/patches-3.14/347-MIPS-BCM6318-USB-support.patch index 5742e2c3c1..c59d4f7466 100644 --- a/target/linux/brcm63xx/patches-3.14/347-MIPS-BCM6318-USB-support.patch +++ b/target/linux/brcm63xx/patches-3.14/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.14/350-MIPS-BCM63XX-support-settings-num-usbh-ports.patch b/target/linux/brcm63xx/patches-3.14/350-MIPS-BCM63XX-support-settings-num-usbh-ports.patch index 43709afd2e..41747da2d9 100644 --- a/target/linux/brcm63xx/patches-3.14/350-MIPS-BCM63XX-support-settings-num-usbh-ports.patch +++ b/target/linux/brcm63xx/patches-3.14/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.14/351-set-board-usbh-ports.patch b/target/linux/brcm63xx/patches-3.14/351-set-board-usbh-ports.patch index e007ddd272..3222fe2557 100644 --- a/target/linux/brcm63xx/patches-3.14/351-set-board-usbh-ports.patch +++ b/target/linux/brcm63xx/patches-3.14/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.14/354-MIPS-BCM63XX-allow-building-support-for-more-than-on.patch b/target/linux/brcm63xx/patches-3.14/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.14/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.14/355-MIPS-BCM63XX-allow-board-implementations-to-force-fl.patch b/target/linux/brcm63xx/patches-3.14/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.14/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.14/403-6358-enet1-external-mii-clk.patch b/target/linux/brcm63xx/patches-3.14/403-6358-enet1-external-mii-clk.patch index 4af96da9e6..b5937e98e9 100644 --- a/target/linux/brcm63xx/patches-3.14/403-6358-enet1-external-mii-clk.patch +++ b/target/linux/brcm63xx/patches-3.14/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.14/411-MIPS-BCM63XX-Register-SPI-flash-if-present.patch b/target/linux/brcm63xx/patches-3.14/411-MIPS-BCM63XX-Register-SPI-flash-if-present.patch index ccad2e8cf7..bc10d96635 100644 --- a/target/linux/brcm63xx/patches-3.14/411-MIPS-BCM63XX-Register-SPI-flash-if-present.patch +++ b/target/linux/brcm63xx/patches-3.14/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.14/413-BCM63XX-allow-providing-fixup-data-in-board-data.patch b/target/linux/brcm63xx/patches-3.14/413-BCM63XX-allow-providing-fixup-data-in-board-data.patch index 7991fad0e3..4a3a4e9f43 100644 --- a/target/linux/brcm63xx/patches-3.14/413-BCM63XX-allow-providing-fixup-data-in-board-data.patch +++ b/target/linux/brcm63xx/patches-3.14/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.14/415-MIPS-BCM63XX-export-the-attached-flash-type.patch b/target/linux/brcm63xx/patches-3.14/415-MIPS-BCM63XX-export-the-attached-flash-type.patch index bde8961ea2..742c735cbe 100644 --- a/target/linux/brcm63xx/patches-3.14/415-MIPS-BCM63XX-export-the-attached-flash-type.patch +++ b/target/linux/brcm63xx/patches-3.14/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.14/418-MIPS-BCM63XX-pass-caldata-info-to-flash.patch b/target/linux/brcm63xx/patches-3.14/418-MIPS-BCM63XX-pass-caldata-info-to-flash.patch index 6f913dd073..9d0626b6ba 100644 --- a/target/linux/brcm63xx/patches-3.14/418-MIPS-BCM63XX-pass-caldata-info-to-flash.patch +++ b/target/linux/brcm63xx/patches-3.14/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.14/420-BCM63XX-add-endian-check-for-ath9k.patch b/target/linux/brcm63xx/patches-3.14/420-BCM63XX-add-endian-check-for-ath9k.patch index cbceaa9c4b..0809d785bd 100644 --- a/target/linux/brcm63xx/patches-3.14/420-BCM63XX-add-endian-check-for-ath9k.patch +++ b/target/linux/brcm63xx/patches-3.14/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.14/421-BCM63XX-add-led-pin-for-ath9k.patch b/target/linux/brcm63xx/patches-3.14/421-BCM63XX-add-led-pin-for-ath9k.patch index f4821b6744..0d4f761308 100644 --- a/target/linux/brcm63xx/patches-3.14/421-BCM63XX-add-led-pin-for-ath9k.patch +++ b/target/linux/brcm63xx/patches-3.14/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.14/422-BCM63XX-add-a-fixup-for-rt2x00-devices.patch b/target/linux/brcm63xx/patches-3.14/422-BCM63XX-add-a-fixup-for-rt2x00-devices.patch index 877b5177b8..a511af03af 100644 --- a/target/linux/brcm63xx/patches-3.14/422-BCM63XX-add-a-fixup-for-rt2x00-devices.patch +++ b/target/linux/brcm63xx/patches-3.14/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.14/500-board-D4PW.patch b/target/linux/brcm63xx/patches-3.14/500-board-D4PW.patch index ffeb8c9c93..49163f199c 100644 --- a/target/linux/brcm63xx/patches-3.14/500-board-D4PW.patch +++ b/target/linux/brcm63xx/patches-3.14/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.14/501-board-NB4.patch b/target/linux/brcm63xx/patches-3.14/501-board-NB4.patch index 3a7fee1e81..ca32c79c9f 100644 --- a/target/linux/brcm63xx/patches-3.14/501-board-NB4.patch +++ b/target/linux/brcm63xx/patches-3.14/501-board-NB4.patch @@ -1,9 +1,11 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -15,6 +15,10 @@ +@@ -12,6 +12,12 @@ + #include #include #include - #include ++#include ++#include +#include +#if 0 /* FIXME: 3.14 removed non-DT support */ +#include @@ -11,7 +13,7 @@ #include #include #include -@@ -49,6 +53,12 @@ +@@ -343,6 +349,12 @@ static struct board_info __initdata boar #define CFE_OFFSET_64K 0x10000 #define CFE_OFFSET_128K 0x20000 @@ -21,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 +765,605 @@ 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, }; @@ -630,7 +632,7 @@ #endif /* -@@ -791,6 +1400,11 @@ static const struct board_info __initcon +@@ -775,6 +1386,11 @@ static const struct board_info __initcon &board_96358vw2, &board_AGPFS0, &board_DWVS0, @@ -642,7 +644,7 @@ #endif }; -@@ -845,6 +1459,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.14/502-board-96338W2_E7T.patch b/target/linux/brcm63xx/patches-3.14/502-board-96338W2_E7T.patch index 7a542cf39d..3a2c1607f4 100644 --- a/target/linux/brcm63xx/patches-3.14/502-board-96338W2_E7T.patch +++ b/target/linux/brcm63xx/patches-3.14/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 -@@ -228,6 +228,40 @@ static struct board_info __initdata boar +@@ -205,6 +205,40 @@ static struct board_info __initdata boar }, }, }; @@ -41,7 +41,7 @@ #endif /* -@@ -1379,6 +1413,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.14/503-board-CPVA642.patch b/target/linux/brcm63xx/patches-3.14/503-board-CPVA642.patch index bc2346330f..9485ad9af8 100644 --- a/target/linux/brcm63xx/patches-3.14/503-board-CPVA642.patch +++ b/target/linux/brcm63xx/patches-3.14/503-board-CPVA642.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -756,6 +756,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, -@@ -1434,6 +1526,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.14/504-board_dsl_274xb_rev_c.patch b/target/linux/brcm63xx/patches-3.14/504-board_dsl_274xb_rev_c.patch index c52e311538..20b838bd8d 100644 --- a/target/linux/brcm63xx/patches-3.14/504-board_dsl_274xb_rev_c.patch +++ b/target/linux/brcm63xx/patches-3.14/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 -@@ -892,6 +892,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, -@@ -1528,6 +1583,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.14/505-board_spw500v.patch b/target/linux/brcm63xx/patches-3.14/505-board_spw500v.patch index 986d4db71b..e9fc8419e2 100644 --- a/target/linux/brcm63xx/patches-3.14/505-board_spw500v.patch +++ b/target/linux/brcm63xx/patches-3.14/505-board_spw500v.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -649,6 +649,67 @@ static struct board_info __initdata boar +@@ -635,6 +635,67 @@ static struct board_info __initdata boar }, }, }; @@ -68,7 +68,7 @@ #endif /* -@@ -1575,6 +1636,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.14/506-board_gw6200_gw6000.patch b/target/linux/brcm63xx/patches-3.14/506-board_gw6200_gw6000.patch index 108a3543f1..a3b305e99a 100644 --- a/target/linux/brcm63xx/patches-3.14/506-board_gw6200_gw6000.patch +++ b/target/linux/brcm63xx/patches-3.14/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 -@@ -516,6 +516,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, -@@ -1629,6 +1735,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.14/507-board-MAGIC.patch b/target/linux/brcm63xx/patches-3.14/507-board-MAGIC.patch index 465f3d3eb6..4e9d12a0f7 100644 --- a/target/linux/brcm63xx/patches-3.14/507-board-MAGIC.patch +++ b/target/linux/brcm63xx/patches-3.14/507-board-MAGIC.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -816,6 +816,78 @@ static struct board_info __initdata boar +@@ -802,6 +802,78 @@ static struct board_info __initdata boar }, }, }; @@ -79,7 +79,7 @@ #endif /* -@@ -1745,6 +1817,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.14/508-board_hw553.patch b/target/linux/brcm63xx/patches-3.14/508-board_hw553.patch index 6247251b1c..3627ea5e8c 100644 --- a/target/linux/brcm63xx/patches-3.14/508-board_hw553.patch +++ b/target/linux/brcm63xx/patches-3.14/508-board_hw553.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -1784,6 +1784,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 /* -@@ -1832,6 +1909,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.14/509-board_rta1320_16m.patch b/target/linux/brcm63xx/patches-3.14/509-board_rta1320_16m.patch index 499922c86f..01812c66f4 100644 --- a/target/linux/brcm63xx/patches-3.14/509-board_rta1320_16m.patch +++ b/target/linux/brcm63xx/patches-3.14/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 -@@ -262,6 +262,45 @@ static struct board_info __initdata boar +@@ -239,6 +239,45 @@ static struct board_info __initdata boar }, }, }; @@ -46,7 +46,7 @@ #endif /* -@@ -1877,6 +1916,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.14/510-board_spw303v.patch b/target/linux/brcm63xx/patches-3.14/510-board_spw303v.patch index dd3366cf8a..19802e78d0 100644 --- a/target/linux/brcm63xx/patches-3.14/510-board_spw303v.patch +++ b/target/linux/brcm63xx/patches-3.14/510-board_spw303v.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -1900,6 +1900,72 @@ static struct board_info __initdata boar +@@ -1886,6 +1886,72 @@ static struct board_info __initdata boar }, }, }; @@ -73,7 +73,7 @@ #endif /* -@@ -1950,6 +2016,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.14/511-board_V2500V.patch b/target/linux/brcm63xx/patches-3.14/511-board_V2500V.patch index 783770e548..9ff27f3bea 100644 --- a/target/linux/brcm63xx/patches-3.14/511-board_V2500V.patch +++ b/target/linux/brcm63xx/patches-3.14/511-board_V2500V.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -927,6 +927,65 @@ static struct board_info __initdata boar +@@ -913,6 +913,65 @@ static struct board_info __initdata boar }, }, }; @@ -66,7 +66,7 @@ #endif /* -@@ -2001,6 +2060,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 -@@ -2122,6 +2182,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.14/512-board_BTV2110.patch b/target/linux/brcm63xx/patches-3.14/512-board_BTV2110.patch index 54a33baca9..f3b414beac 100644 --- a/target/linux/brcm63xx/patches-3.14/512-board_BTV2110.patch +++ b/target/linux/brcm63xx/patches-3.14/512-board_BTV2110.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -487,6 +487,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, -@@ -2061,6 +2119,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.14/513-MIPS-BCM63XX-add-inventel-Livebox-support.patch b/target/linux/brcm63xx/patches-3.14/513-MIPS-BCM63XX-add-inventel-Livebox-support.patch new file mode 100644 index 0000000000..1d8b601058 --- /dev/null +++ b/target/linux/brcm63xx/patches-3.14/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.14/513-board_livebox.patch b/target/linux/brcm63xx/patches-3.14/513-board_livebox.patch deleted file mode 100644 index 2323b5eef7..0000000000 --- a/target/linux/brcm63xx/patches-3.14/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.14/514-board_ct536_ct5621.patch b/target/linux/brcm63xx/patches-3.14/514-board_ct536_ct5621.patch index 5713ed678b..8e8a64c02d 100644 --- a/target/linux/brcm63xx/patches-3.14/514-board_ct536_ct5621.patch +++ b/target/linux/brcm63xx/patches-3.14/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 -@@ -545,6 +545,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, -@@ -2120,6 +2165,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.14/515-board_DWV-S0_fixes.patch b/target/linux/brcm63xx/patches-3.14/515-board_DWV-S0_fixes.patch index 9f011d6d3f..3dac59a6c9 100644 --- a/target/linux/brcm63xx/patches-3.14/515-board_DWV-S0_fixes.patch +++ b/target/linux/brcm63xx/patches-3.14/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 -@@ -1315,6 +1315,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, -@@ -1330,6 +1332,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.14/516-board_96348A-122.patch b/target/linux/brcm63xx/patches-3.14/516-board_96348A-122.patch index 1a295dbcee..e814407845 100644 --- a/target/linux/brcm63xx/patches-3.14/516-board_96348A-122.patch +++ b/target/linux/brcm63xx/patches-3.14/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 -@@ -590,6 +590,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, -@@ -2169,6 +2232,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.14/517-RTA1205W_16_uart_fixes.patch b/target/linux/brcm63xx/patches-3.14/517-RTA1205W_16_uart_fixes.patch index 3a8706c407..df532dd43b 100644 --- a/target/linux/brcm63xx/patches-3.14/517-RTA1205W_16_uart_fixes.patch +++ b/target/linux/brcm63xx/patches-3.14/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 -@@ -855,6 +855,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.14/519_board_CPVA502plus.patch b/target/linux/brcm63xx/patches-3.14/519_board_CPVA502plus.patch index 98086c96c6..e11c613577 100644 --- a/target/linux/brcm63xx/patches-3.14/519_board_CPVA502plus.patch +++ b/target/linux/brcm63xx/patches-3.14/519_board_CPVA502plus.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -1153,6 +1153,46 @@ static struct board_info __initdata boar +@@ -1139,6 +1139,46 @@ static struct board_info __initdata boar }, }, }; @@ -47,7 +47,7 @@ #endif /* -@@ -2234,6 +2274,7 @@ static const struct board_info __initcon +@@ -2220,6 +2260,7 @@ static const struct board_info __initcon &board_V2110, &board_ct536_ct5621, &board_96348A_122, diff --git a/target/linux/brcm63xx/patches-3.14/520-bcm63xx-add-support-for-96368MVWG-board.patch b/target/linux/brcm63xx/patches-3.14/520-bcm63xx-add-support-for-96368MVWG-board.patch index 524cd975b7..19708bb7d1 100644 --- a/target/linux/brcm63xx/patches-3.14/520-bcm63xx-add-support-for-96368MVWG-board.patch +++ b/target/linux/brcm63xx/patches-3.14/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 -@@ -2238,6 +2238,85 @@ static struct board_info __initdata boar +@@ -2224,6 +2224,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[] = { -@@ -2292,6 +2371,10 @@ static const struct board_info __initcon +@@ -2278,6 +2357,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 }; - /* -@@ -2473,12 +2556,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.14/521-bcm63xx-add-support-for-96368MVNgr-board.patch b/target/linux/brcm63xx/patches-3.14/521-bcm63xx-add-support-for-96368MVNgr-board.patch index 9fac033ad9..a8cb12e720 100644 --- a/target/linux/brcm63xx/patches-3.14/521-bcm63xx-add-support-for-96368MVNgr-board.patch +++ b/target/linux/brcm63xx/patches-3.14/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 -@@ -2314,6 +2314,72 @@ static struct board_info __initdata boar +@@ -2300,6 +2300,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 /* -@@ -2374,6 +2440,7 @@ static const struct board_info __initcon +@@ -2360,6 +2426,7 @@ static const struct board_info __initcon #ifdef CONFIG_BCM63XX_CPU_6368 &board_96368mvwg, diff --git a/target/linux/brcm63xx/patches-3.14/522-MIPS-BCM63XX-add-96328avng-reference-board.patch b/target/linux/brcm63xx/patches-3.14/522-MIPS-BCM63XX-add-96328avng-reference-board.patch index 689e370127..6e2b920080 100644 --- a/target/linux/brcm63xx/patches-3.14/522-MIPS-BCM63XX-add-96328avng-reference-board.patch +++ b/target/linux/brcm63xx/patches-3.14/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 -@@ -110,13 +110,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, -@@ -133,7 +165,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.14/523-MIPS-BCM63XX-add-963281TAN-reference-board.patch b/target/linux/brcm63xx/patches-3.14/523-MIPS-BCM63XX-add-963281TAN-reference-board.patch index 92a4347c92..f5b06d5cbc 100644 --- a/target/linux/brcm63xx/patches-3.14/523-MIPS-BCM63XX-add-963281TAN-reference-board.patch +++ b/target/linux/brcm63xx/patches-3.14/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 -@@ -171,6 +171,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 /* -@@ -2423,6 +2493,7 @@ static const struct board_info __initcon +@@ -2409,6 +2479,7 @@ static const struct board_info __initcon #endif #ifdef CONFIG_BCM63XX_CPU_6328 &board_96328avng, diff --git a/target/linux/brcm63xx/patches-3.14/524-board_dsl_274xb_rev_f.patch b/target/linux/brcm63xx/patches-3.14/524-board_dsl_274xb_rev_f.patch index 9d7d96ef71..60d926afa5 100644 --- a/target/linux/brcm63xx/patches-3.14/524-board_dsl_274xb_rev_f.patch +++ b/target/linux/brcm63xx/patches-3.14/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 -@@ -241,6 +241,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 /* -@@ -2494,6 +2599,7 @@ static const struct board_info __initcon +@@ -2480,6 +2585,7 @@ static const struct board_info __initcon #ifdef CONFIG_BCM63XX_CPU_6328 &board_96328avng, &board_963281TAN, diff --git a/target/linux/brcm63xx/patches-3.14/525-board_96348w3.patch b/target/linux/brcm63xx/patches-3.14/525-board_96348w3.patch index 3cec30274b..6faab97e64 100644 --- a/target/linux/brcm63xx/patches-3.14/525-board_96348w3.patch +++ b/target/linux/brcm63xx/patches-3.14/525-board_96348w3.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -1400,6 +1400,59 @@ static struct board_info __initdata boar +@@ -1386,6 +1386,59 @@ static struct board_info __initdata boar }, }; @@ -60,7 +60,7 @@ #endif /* -@@ -2629,6 +2682,7 @@ static const struct board_info __initcon +@@ -2615,6 +2668,7 @@ static const struct board_info __initcon &board_ct536_ct5621, &board_96348A_122, &board_CPVA502plus, diff --git a/target/linux/brcm63xx/patches-3.14/526-board_CT6373-1.patch b/target/linux/brcm63xx/patches-3.14/526-board_CT6373-1.patch index 71c524603f..ad3ec7d421 100644 --- a/target/linux/brcm63xx/patches-3.14/526-board_CT6373-1.patch +++ b/target/linux/brcm63xx/patches-3.14/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 -@@ -59,6 +59,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; - /* -@@ -2353,6 +2360,117 @@ static struct board_info __initdata boar + .has_ohci0 = 1, + .has_pccard = 1, +@@ -2339,6 +2346,117 @@ static struct board_info __initdata boar .num_spis = ARRAY_SIZE(nb4_spi_devices), }; @@ -132,7 +132,7 @@ static struct board_info __initdata board_HW553 = { .name = "HW553", .expected_cpu_id = 0x6358, -@@ -2697,6 +2815,7 @@ static const struct board_info __initcon +@@ -2683,6 +2801,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.14/527-board_dva-g3810bn-tl-1.patch b/target/linux/brcm63xx/patches-3.14/527-board_dva-g3810bn-tl-1.patch index a5d8451e36..202cf3183d 100644 --- a/target/linux/brcm63xx/patches-3.14/527-board_dva-g3810bn-tl-1.patch +++ b/target/linux/brcm63xx/patches-3.14/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 -@@ -2613,6 +2613,73 @@ static struct board_info __initdata boar +@@ -2599,6 +2599,73 @@ static struct board_info __initdata boar }, } }; @@ -74,7 +74,7 @@ #endif /* -@@ -2818,6 +2885,7 @@ static const struct board_info __initcon +@@ -2804,6 +2871,7 @@ static const struct board_info __initcon &board_ct6373_1, &board_HW553, &board_spw303v, diff --git a/target/linux/brcm63xx/patches-3.14/528-board_nb6.patch b/target/linux/brcm63xx/patches-3.14/528-board_nb6.patch index 70cd2b290e..b3455d39c3 100644 --- a/target/linux/brcm63xx/patches-3.14/528-board_nb6.patch +++ b/target/linux/brcm63xx/patches-3.14/528-board_nb6.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -19,6 +19,7 @@ +@@ -18,6 +18,7 @@ #if 0 /* FIXME: 3.14 removed non-DT support */ #include #endif @@ -8,7 +8,7 @@ #include #include #include -@@ -58,6 +59,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 -@@ -2682,6 +2685,104 @@ static struct board_info __initdata boar +@@ -2668,6 +2671,104 @@ static struct board_info __initdata boar }; #endif @@ -122,7 +122,7 @@ /* * known 6368 boards */ -@@ -2888,6 +2989,10 @@ static const struct board_info __initcon +@@ -2874,6 +2975,10 @@ static const struct board_info __initcon &board_DVAG3810BN, #endif @@ -133,7 +133,7 @@ #ifdef CONFIG_BCM63XX_CPU_6368 &board_96368mvwg, &board_96368mvngr, -@@ -2955,6 +3060,11 @@ static void __init boardid_fixup(u8 *boo +@@ -2895,6 +3000,11 @@ static void __init boardid_fixup(u8 *boo } } diff --git a/target/linux/brcm63xx/patches-3.14/529-board_fast2604.patch b/target/linux/brcm63xx/patches-3.14/529-board_fast2604.patch index 81e963ca61..52980da367 100644 --- a/target/linux/brcm63xx/patches-3.14/529-board_fast2604.patch +++ b/target/linux/brcm63xx/patches-3.14/529-board_fast2604.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -1068,6 +1068,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, -@@ -2957,6 +3008,7 @@ static const struct board_info __initcon +@@ -2943,6 +2994,7 @@ static const struct board_info __initcon &board_96348gw_10, &board_96348gw_11, &board_FAST2404, diff --git a/target/linux/brcm63xx/patches-3.14/530-board_963281T_TEF.patch b/target/linux/brcm63xx/patches-3.14/530-board_963281T_TEF.patch index ab2b4f3676..d3628eca39 100644 --- a/target/linux/brcm63xx/patches-3.14/530-board_963281T_TEF.patch +++ b/target/linux/brcm63xx/patches-3.14/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 -@@ -252,6 +252,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, -@@ -2989,6 +3109,7 @@ static const struct board_info __initcon +@@ -2975,6 +3095,7 @@ static const struct board_info __initcon #ifdef CONFIG_BCM63XX_CPU_6328 &board_96328avng, &board_963281TAN, diff --git a/target/linux/brcm63xx/patches-3.14/531-board_96328A-1441N1.patch b/target/linux/brcm63xx/patches-3.14/531-board_96328A-1441N1.patch index 4076184bcf..d7114d355a 100644 --- a/target/linux/brcm63xx/patches-3.14/531-board_96328A-1441N1.patch +++ b/target/linux/brcm63xx/patches-3.14/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 -@@ -182,6 +182,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, -@@ -3108,6 +3181,7 @@ static const struct board_info __initcon +@@ -3094,6 +3167,7 @@ static const struct board_info __initcon #endif #ifdef CONFIG_BCM63XX_CPU_6328 &board_96328avng, diff --git a/target/linux/brcm63xx/patches-3.14/532-board_96328a-1241N.patch b/target/linux/brcm63xx/patches-3.14/532-board_96328a-1241N.patch index d13daf43ac..07161e8f13 100644 --- a/target/linux/brcm63xx/patches-3.14/532-board_96328a-1241N.patch +++ b/target/linux/brcm63xx/patches-3.14/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 -@@ -182,6 +182,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, -@@ -3181,6 +3248,7 @@ static const struct board_info __initcon +@@ -3167,6 +3234,7 @@ static const struct board_info __initcon #endif #ifdef CONFIG_BCM63XX_CPU_6328 &board_96328avng, diff --git a/target/linux/brcm63xx/patches-3.14/533-board_rta770bw.patch b/target/linux/brcm63xx/patches-3.14/533-board_rta770bw.patch index 5e364c947a..3922c78eeb 100644 --- a/target/linux/brcm63xx/patches-3.14/533-board_rta770bw.patch +++ b/target/linux/brcm63xx/patches-3.14/533-board_rta770bw.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -790,6 +790,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 /* -@@ -3262,6 +3311,7 @@ static const struct board_info __initcon +@@ -3248,6 +3297,7 @@ static const struct board_info __initcon #endif #ifdef CONFIG_BCM63XX_CPU_6345 &board_96345gw2, diff --git a/target/linux/brcm63xx/patches-3.14/534-board_hw556.patch b/target/linux/brcm63xx/patches-3.14/534-board_hw556.patch index 2026aec27f..04c6b2b93d 100644 --- a/target/linux/brcm63xx/patches-3.14/534-board_hw556.patch +++ b/target/linux/brcm63xx/patches-3.14/534-board_hw556.patch @@ -1,6 +1,14 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -2911,6 +2911,492 @@ static struct board_info __initdata boar +@@ -12,6 +12,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -2897,6 +2898,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", -@@ -3350,6 +3836,10 @@ static const struct board_info __initcon +@@ -3336,6 +3823,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 -@@ -3415,13 +3905,37 @@ static void __init boardid_fixup(u8 *boo +@@ -3355,13 +3846,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.14/535-board_rta770w.patch b/target/linux/brcm63xx/patches-3.14/535-board_rta770w.patch index 607807a93a..162a920095 100644 --- a/target/linux/brcm63xx/patches-3.14/535-board_rta770w.patch +++ b/target/linux/brcm63xx/patches-3.14/535-board_rta770w.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -778,6 +778,60 @@ static struct board_info __initdata boar +@@ -808,6 +808,60 @@ static struct board_info __initdata boar }, }, }; @@ -61,7 +61,7 @@ #endif /* -@@ -3798,6 +3852,7 @@ static const struct board_info __initcon +@@ -3785,6 +3839,7 @@ static const struct board_info __initcon #ifdef CONFIG_BCM63XX_CPU_6345 &board_96345gw2, &board_rta770bw, diff --git a/target/linux/brcm63xx/patches-3.14/536-board_fast2704.patch b/target/linux/brcm63xx/patches-3.14/536-board_fast2704.patch index c08135c947..1a89e9021a 100644 --- a/target/linux/brcm63xx/patches-3.14/536-board_fast2704.patch +++ b/target/linux/brcm63xx/patches-3.14/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 -@@ -1482,6 +1482,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, -@@ -3842,6 +3958,7 @@ static const struct board_info __initcon +@@ -3829,6 +3945,7 @@ static const struct board_info __initcon &board_963281TAN, &board_963281T_TEF, &board_dsl_274xb_f1, diff --git a/target/linux/brcm63xx/patches-3.14/537-board_fast2504n.patch b/target/linux/brcm63xx/patches-3.14/537-board_fast2504n.patch index 6f6420031d..821a185793 100644 --- a/target/linux/brcm63xx/patches-3.14/537-board_fast2504n.patch +++ b/target/linux/brcm63xx/patches-3.14/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 -@@ -3797,6 +3797,96 @@ static struct board_info __initdata boar +@@ -3784,6 +3784,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 /* -@@ -4018,6 +4108,7 @@ static const struct board_info __initcon +@@ -4005,6 +4095,7 @@ static const struct board_info __initcon #ifdef CONFIG_BCM63XX_CPU_6362 &board_nb6, diff --git a/target/linux/brcm63xx/patches-3.14/550-alice_gate2_leds.patch b/target/linux/brcm63xx/patches-3.14/550-alice_gate2_leds.patch index 9aa175925c..e7b0e63372 100644 --- a/target/linux/brcm63xx/patches-3.14/550-alice_gate2_leds.patch +++ b/target/linux/brcm63xx/patches-3.14/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 -@@ -2213,6 +2213,99 @@ static struct board_info __initdata boar +@@ -2200,6 +2200,99 @@ static struct board_info __initdata boar .has_ohci0 = 1, .has_ehci0 = 1, diff --git a/target/linux/brcm63xx/patches-3.14/551-96348gw_a_leds.patch b/target/linux/brcm63xx/patches-3.14/551-96348gw_a_leds.patch index aff9c4ffa3..d1c1bd895e 100644 --- a/target/linux/brcm63xx/patches-3.14/551-96348gw_a_leds.patch +++ b/target/linux/brcm63xx/patches-3.14/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 -@@ -1657,6 +1657,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.14/552-board_96348gw-10_reset_button.patch b/target/linux/brcm63xx/patches-3.14/552-board_96348gw-10_reset_button.patch index de0a222279..25858b7991 100644 --- a/target/linux/brcm63xx/patches-3.14/552-board_96348gw-10_reset_button.patch +++ b/target/linux/brcm63xx/patches-3.14/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 -@@ -1001,6 +1001,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.14/553-boards_probe_switch.patch b/target/linux/brcm63xx/patches-3.14/553-boards_probe_switch.patch index 447c17df18..32c20c85ce 100644 --- a/target/linux/brcm63xx/patches-3.14/553-boards_probe_switch.patch +++ b/target/linux/brcm63xx/patches-3.14/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 -@@ -629,6 +629,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, }, -@@ -672,6 +674,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, }, -@@ -957,6 +961,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, }, -@@ -1029,6 +1035,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, }, -@@ -1258,6 +1266,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, }, -@@ -1433,6 +1443,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, }, -@@ -1623,6 +1635,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, }, -@@ -1644,6 +1658,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, }, -@@ -1663,6 +1679,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, }, -@@ -2038,6 +2056,8 @@ static struct board_info __initdata boar +@@ -2025,6 +2043,8 @@ static struct board_info __initdata boar }, .enet1 = { @@ -90,7 +90,7 @@ .force_speed_100 = 1, .force_duplex_full = 1, }, -@@ -2090,6 +2110,8 @@ static struct board_info __initdata boar +@@ -2077,6 +2097,8 @@ static struct board_info __initdata boar }, .enet1 = { @@ -99,7 +99,7 @@ .force_speed_100 = 1, .force_duplex_full = 1, }, -@@ -2231,6 +2253,8 @@ static struct board_info __initdata boar +@@ -2218,6 +2240,8 @@ static struct board_info __initdata boar }, .enet1 = { @@ -108,7 +108,7 @@ .force_speed_100 = 1, .force_duplex_full = 1, }, -@@ -2348,6 +2372,8 @@ static struct board_info __initdata boar +@@ -2335,6 +2359,8 @@ static struct board_info __initdata boar }, .enet1 = { diff --git a/target/linux/brcm63xx/patches-3.14/554-board_DWVS0_leds_buttons.patch b/target/linux/brcm63xx/patches-3.14/554-board_DWVS0_leds_buttons.patch index d9c15e24e4..33f9e92f56 100644 --- a/target/linux/brcm63xx/patches-3.14/554-board_DWVS0_leds_buttons.patch +++ b/target/linux/brcm63xx/patches-3.14/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 -@@ -2380,6 +2380,94 @@ static struct board_info __initdata boar +@@ -2367,6 +2367,94 @@ static struct board_info __initdata boar .has_ohci0 = 1, .has_ehci0 = 1, diff --git a/target/linux/brcm63xx/patches-3.14/555-board_96318ref.patch b/target/linux/brcm63xx/patches-3.14/555-board_96318ref.patch index 5192bb539f..dcab01e8ea 100644 --- a/target/linux/brcm63xx/patches-3.14/555-board_96318ref.patch +++ b/target/linux/brcm63xx/patches-3.14/555-board_96318ref.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -104,6 +104,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 -@@ -4272,6 +4359,9 @@ static const struct board_info __initcon +@@ -4259,6 +4346,9 @@ static const struct board_info __initcon #ifdef CONFIG_BCM63XX_CPU_3368 &board_cvg834g, #endif diff --git a/target/linux/brcm63xx/patches-3.14/556-board_96318ref_p300.patch b/target/linux/brcm63xx/patches-3.14/556-board_96318ref_p300.patch index 43a23b55d6..a6d4d00da4 100644 --- a/target/linux/brcm63xx/patches-3.14/556-board_96318ref_p300.patch +++ b/target/linux/brcm63xx/patches-3.14/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 -@@ -188,6 +188,94 @@ static struct board_info __initdata boar +@@ -157,6 +157,94 @@ static struct board_info __initdata boar }, }, }; @@ -95,7 +95,7 @@ #endif /* -@@ -4361,6 +4449,7 @@ static const struct board_info __initcon +@@ -4348,6 +4436,7 @@ static const struct board_info __initcon #endif #ifdef CONFIG_BCM63XX_CPU_6318 &board_96318ref, diff --git a/target/linux/brcm63xx/patches-3.14/557-board_bcm963269bhr.patch b/target/linux/brcm63xx/patches-3.14/557-board_bcm963269bhr.patch index 96d771610c..b9977e2fbf 100644 --- a/target/linux/brcm63xx/patches-3.14/557-board_bcm963269bhr.patch +++ b/target/linux/brcm63xx/patches-3.14/557-board_bcm963269bhr.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -4441,6 +4441,75 @@ static struct board_info __initdata boar +@@ -4428,6 +4428,75 @@ static struct board_info __initdata boar #endif /* @@ -76,7 +76,7 @@ * all boards */ static const struct board_info __initconst *bcm963xx_boards[] = { -@@ -4525,6 +4594,9 @@ static const struct board_info __initcon +@@ -4512,6 +4581,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.14/558-board_AR1004G.patch b/target/linux/brcm63xx/patches-3.14/558-board_AR1004G.patch index ec25b9ec00..2b7a094fc0 100644 --- a/target/linux/brcm63xx/patches-3.14/558-board_AR1004G.patch +++ b/target/linux/brcm63xx/patches-3.14/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 -@@ -2210,6 +2210,51 @@ static struct board_info __initdata boar +@@ -2197,6 +2197,51 @@ static struct board_info __initdata boar }, }; @@ -60,7 +60,7 @@ Signed-off-by: Adrian Feliks #endif /* -@@ -4561,6 +4606,7 @@ static const struct board_info __initcon +@@ -4548,6 +4593,7 @@ static const struct board_info __initcon &board_96348A_122, &board_CPVA502plus, &board_96348W3, diff --git a/target/linux/brcm63xx/patches-3.14/559-board_vw6339gu.patch b/target/linux/brcm63xx/patches-3.14/559-board_vw6339gu.patch index 4f9ef7930b..5b8da2bbd8 100644 --- a/target/linux/brcm63xx/patches-3.14/559-board_vw6339gu.patch +++ b/target/linux/brcm63xx/patches-3.14/559-board_vw6339gu.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -4552,6 +4552,108 @@ static struct board_info __initdata boar +@@ -4539,6 +4539,108 @@ static struct board_info __initdata boar }, }, }; @@ -109,7 +109,7 @@ #endif /* -@@ -4642,6 +4744,7 @@ static const struct board_info __initcon +@@ -4629,6 +4731,7 @@ static const struct board_info __initcon #endif #ifdef CONFIG_BCM63XX_CPU_63268 &board_963269bhr, diff --git a/target/linux/brcm63xx/patches-3.14/560-board_963268gu_p300.patch b/target/linux/brcm63xx/patches-3.14/560-board_963268gu_p300.patch index 6a70077831..e15c0933f7 100644 --- a/target/linux/brcm63xx/patches-3.14/560-board_963268gu_p300.patch +++ b/target/linux/brcm63xx/patches-3.14/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 -@@ -4489,6 +4489,131 @@ static struct board_info __initdata boar +@@ -4476,6 +4476,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, -@@ -4743,6 +4868,7 @@ static const struct board_info __initcon +@@ -4730,6 +4855,7 @@ static const struct board_info __initcon &board_96368mvngr, #endif #ifdef CONFIG_BCM63XX_CPU_63268 diff --git a/target/linux/brcm63xx/patches-3.14/801-ssb_export_fallback_sprom.patch b/target/linux/brcm63xx/patches-3.14/801-ssb_export_fallback_sprom.patch index 3c0faba8ae..1e75cfe0d6 100644 --- a/target/linux/brcm63xx/patches-3.14/801-ssb_export_fallback_sprom.patch +++ b/target/linux/brcm63xx/patches-3.14/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 - #if 0 /* FIXME: 3.14 removed non-DT support */ -@@ -4879,7 +4880,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, -@@ -4899,6 +4900,7 @@ static struct ssb_sprom bcm63xx_sprom = +@@ -69,6 +70,7 @@ static struct ssb_sprom bcm63xx_sprom = .boardflags_lo = 0x2848, .boardflags_hi = 0x0000, };