CONFIG_BCMA_HOST_PCI=y
CONFIG_BCMA_HOST_PCI_POSSIBLE=y
# CONFIG_BCMA_HOST_SOC is not set
+CONFIG_BOARD_BCM63XX_DT=y
CONFIG_BOARD_BCM963XX=y
CONFIG_BOARD_LIVEBOX=y
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_CPU_SUPPORTS_HIGHMEM=y
CONFIG_CSRC_R4K=y
CONFIG_DMA_NONCOHERENT=y
+CONFIG_DTC=y
CONFIG_EARLY_PRINTK=y
-# CONFIG_EARLY_PRINTK_8250 is not set
CONFIG_FIRMWARE_IN_KERNEL=y
CONFIG_GENERIC_ATOMIC64=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_IP_PIMSM_V1=y
CONFIG_IP_PIMSM_V2=y
+CONFIG_IRQCHIP=y
CONFIG_IRQ_CPU=y
+CONFIG_IRQ_DOMAIN=y
CONFIG_IRQ_FORCED_THREADING=y
CONFIG_IRQ_WORK=y
CONFIG_KEXEC=y
CONFIG_LEDS_GPIO=y
CONFIG_MDIO_BOARDINFO=y
CONFIG_MIPS=y
+CONFIG_MIPS_APPENDED_DTB=y
# CONFIG_MIPS_HUGE_TLB_SUPPORT is not set
CONFIG_MIPS_L1_CACHE_SHIFT=4
CONFIG_MIPS_L1_CACHE_SHIFT_4=y
# CONFIG_MIPS_MACHINE is not set
CONFIG_MIPS_MT_DISABLED=y
CONFIG_MIPS_O32_FP64_SUPPORT=y
-# CONFIG_MLX5_CORE is not set
CONFIG_MODULES_USE_ELF_REL=y
CONFIG_MODULE_FORCE_LOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y
CONFIG_NEED_DMA_MAP_STATE=y
CONFIG_NEED_PER_CPU_KM=y
-CONFIG_NET_RX_BUSY_POLL=y
CONFIG_NO_GENERIC_PCI_IOPORT_MAP=y
+CONFIG_OF=y
+CONFIG_OF_ADDRESS=y
+CONFIG_OF_EARLY_FLATTREE=y
+CONFIG_OF_FLATTREE=y
+CONFIG_OF_GPIO=y
+CONFIG_OF_IRQ=y
+CONFIG_OF_MDIO=y
+CONFIG_OF_MTD=y
+CONFIG_OF_NET=y
+CONFIG_OF_PCI=y
+CONFIG_OF_PCI_IRQ=y
CONFIG_PAGEFLAGS_EXTENDED=y
CONFIG_PCI=y
# CONFIG_PCIEAER is not set
CONFIG_POSIX_MQUEUE=y
CONFIG_POSIX_MQUEUE_SYSCTL=y
# CONFIG_PREEMPT_RCU is not set
+CONFIG_PROC_DEVICETREE=y
# CONFIG_RCU_STALL_COMMON is not set
CONFIG_RELAY=y
CONFIG_RTL8366_SMI=y
CONFIG_SYS_SUPPORTS_SMP=y
CONFIG_TICK_CPU_ACCOUNTING=y
CONFIG_USB_SUPPORT=y
+CONFIG_USE_OF=y
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_WATCHDOG_NOWAYOUT=y
CONFIG_WEAK_ORDERING=y
-# CONFIG_ZBUD is not set
CONFIG_ZONE_DMA_FLAG=0
--- /dev/null
+From 318c1fce4aeef298cbb6153416c499c94ad7cda0 Mon Sep 17 00:00:00 2001
+From: Jonas Gorski <jogo@openwrt.org>
+Date: Tue, 24 Jun 2014 10:53:15 +0200
+Subject: [PATCH RFC v3] MIPS: add support for vmlinux.bin appended DTB
+
+Add support for populating initial_boot_params through a dtb
+blob appended to raw vmlinux.bin.
+
+Signed-off-by: Jonas Gorski <jogo@openwrt.org>
+---
+Changes RFC v2 -> v3
+
+* fixed !smp kernels (TODO: move it to its own patch
+
+Changes RFC v1 -> v2
+
+* changed all occurences of vmlinux to vmlinux.bin
+* clarified this applies to the raw vmlinux.bin without decompressor
+* s/initial_device_params/initial_boot_params/
+
+Initial comments by me still valid:
+
+Mostly adapted from how ARM is doing it.
+
+Sent as an RFC PATCH because I am not sure if this is the right way to
+it, and whether storing the pointer in initial_boot_params is a good
+idea, or a new variable should be introduced.
+
+The reasoning for initial_boot_params is that there is no common
+MIPS interface yet, so the next best thing was using that. This also
+has the advantage of keeping the original fw_args intact.
+
+This patch works for me on bcm63xx, where the bootloader expects
+an lzma compressed kernel, so I didn't want to double compress using
+the in-kernel compressed kernel support.
+
+Completely untested on anything except MIPS32 / big endian.
+
+ arch/mips/Kconfig | 18 ++++++++++++++++++
+ arch/mips/kernel/head.S | 19 +++++++++++++++++++
+ arch/mips/kernel/vmlinux.lds.S | 7 +++++++
+ 3 files changed, 43 insertions(+)
+
+--- a/arch/mips/Kconfig
++++ b/arch/mips/Kconfig
+@@ -2519,6 +2519,24 @@ config RAPIDIO
+
+ source "drivers/rapidio/Kconfig"
+
++config MIPS_APPENDED_DTB
++ bool "Use appended device tree blob to vmlinux.bin (EXPERIMENTAL)"
++ depends on OF
++ help
++ With this option, the boot code will look for a device tree binary
++ DTB) appended to raw vmlinux.bin (without decompressor).
++ (e.g. cat vmlinux.bin <filename>.dtb > vmlinux_w_dtb).
++
++ This is meant as a backward compatibility convenience for those
++ systems with a bootloader that can't be upgraded to accommodate
++ the documented boot protocol using a device tree.
++
++ Beware that there is very little in terms of protection against
++ this option being confused by leftover garbage in memory that might
++ look like a DTB header after a reboot if no actual DTB is appended
++ to vmlinux.bin. Do not leave this option active in a production kernel
++ if you don't intend to always append a DTB.
++
+ endmenu
+
+ menu "Executable file formats"
+--- a/arch/mips/kernel/head.S
++++ b/arch/mips/kernel/head.S
+@@ -139,6 +139,22 @@ NESTED(kernel_entry, 16, sp) # kernel
+ mtc0 t0, CP0_STATUS
+ #endif /* CONFIG_MIPS_MT_SMTC */
+
++#ifdef CONFIG_MIPS_APPENDED_DTB
++ PTR_LA t0, __appended_dtb
++ PTR_LI t3, 0
++
++#ifdef CONFIG_CPU_BIG_ENDIAN
++ PTR_LI t1, 0xd00dfeed
++#else
++ PTR_LI t1, 0xedfe0dd0
++#endif
++ LONG_L t2, (t0)
++ bne t1, t2, not_found
++
++ PTR_LA t3, __appended_dtb
++
++not_found:
++#endif
+ PTR_LA t0, __bss_start # clear .bss
+ LONG_S zero, (t0)
+ PTR_LA t1, __bss_stop - LONGSIZE
+@@ -152,6 +168,10 @@ NESTED(kernel_entry, 16, sp) # kernel
+ LONG_S a2, fw_arg2
+ LONG_S a3, fw_arg3
+
++#ifdef CONFIG_MIPS_APPENDED_DTB
++ LONG_S t3, initial_boot_params
++#endif
++
+ MTC0 zero, CP0_CONTEXT # clear context register
+ PTR_LA $28, init_thread_union
+ /* Set the SP after an empty pt_regs. */
+--- a/arch/mips/kernel/vmlinux.lds.S
++++ b/arch/mips/kernel/vmlinux.lds.S
+@@ -125,8 +125,14 @@ SECTIONS
+ .exit.data : {
+ EXIT_DATA
+ }
+-
++#ifdef CONFIG_SMP
+ PERCPU_SECTION(1 << CONFIG_MIPS_L1_CACHE_SHIFT)
++#endif
++#ifdef CONFIG_MIPS_APPENDED_DTB
++ __appended_dtb = .;
++ /* leave space for appended DTB */
++ . = . + 0x100000;
++#endif
+ /*
+ * Align to 64K in attempt to eliminate holes before the
+ * .bss..swapper_pg_dir section at the start of .bss. This
--- /dev/null
+From db896341299cbcb703821228574ba9b79b6a3565 Mon Sep 17 00:00:00 2001
+From: Jonas Gorski <jogo@openwrt.org>
+Date: Tue, 24 Jun 2014 10:57:51 +0200
+Subject: [PATCH 45/48] MIPS: BCM63XX: add support for loading DTB
+
+---
+ arch/mips/bcm63xx/boards/Kconfig | 4 ++++
+ arch/mips/bcm63xx/boards/board_common.c | 34 +++++++++++++++++++++++++++++++++
+ 2 files changed, 38 insertions(+)
+
+--- a/arch/mips/bcm63xx/boards/Kconfig
++++ b/arch/mips/bcm63xx/boards/Kconfig
+@@ -1,6 +1,10 @@
+ menu "Board support"
+ depends on BCM63XX
+
++config BOARD_BCM63XX_DT
++ bool "Device Tree boards (experimential)"
++ select USE_OF
++
+ config BOARD_BCM963XX
+ bool "Generic Broadcom 963xx boards"
+ select SSB
+--- a/arch/mips/bcm63xx/boards/board_common.c
++++ b/arch/mips/bcm63xx/boards/board_common.c
+@@ -10,6 +10,8 @@
+ #include <linux/init.h>
+ #include <linux/kernel.h>
+ #include <linux/string.h>
++#include <linux/of_fdt.h>
++#include <linux/of_platform.h>
+ #include <linux/platform_device.h>
+ #include <linux/ssb/ssb.h>
+ #include <linux/gpio_keys.h>
+@@ -17,6 +19,7 @@
+ #include <asm/addrspace.h>
+ #include <asm/bootinfo.h>
+ #include <asm/fw/cfe/cfe_api.h>
++#include <asm/prom.h>
+ #include <bcm63xx_board.h>
+ #include <bcm63xx_cpu.h>
+ #include <bcm63xx_dev_uart.h>
+@@ -129,8 +132,23 @@ void __init board_setup(void)
+ /* make sure we're running on expected cpu */
+ if (bcm63xx_get_cpu_id() != board.expected_cpu_id)
+ panic("unexpected CPU for bcm963xx board");
++
++#if CONFIG_OF
++ if (initial_boot_params)
++ __dt_setup_arch(initial_boot_params);
++#endif
+ }
+
++#if CONFIG_OF
++void __init device_tree_init(void)
++{
++ if (!initial_boot_params)
++ return;
++
++ unflatten_and_copy_device_tree();
++}
++#endif
++
+ static struct gpio_led_platform_data bcm63xx_led_data;
+
+ static struct platform_device bcm63xx_gpio_leds = {
+@@ -149,6 +167,13 @@ static struct platform_device bcm63xx_gp
+ .dev.platform_data = &bcm63xx_gpio_keys_data,
+ };
+
++#if CONFIG_OF
++static struct of_device_id of_ids[] = {
++ { /* filled at runtime */ },
++ { .compatible = "simple-bus" },
++ { },
++};
++#endif
+ /*
+ * third stage init callback, register all board devices.
+ */
+@@ -158,6 +183,15 @@ int __init board_register_devices(void)
+ int led_count = 0;
+ int usbh_ports = 0;
+
++#if CONFIG_OF
++ if (of_have_populated_dt()) {
++ snprintf(of_ids[0].compatible, sizeof(of_ids[0].compatible),
++ "brcm,bcm%x", bcm63xx_get_cpu_id());
++
++ of_platform_populate(NULL, of_ids, NULL, NULL);
++ }
++#endif
++
+ if (board.has_uart0)
+ bcm63xx_uart_register(0);
+
--- /dev/null
+From e8c11c43a9eb8171d150850c498bc75205681ab8 Mon Sep 17 00:00:00 2001
+From: Jonas Gorski <jogo@openwrt.org>
+Date: Thu, 26 Jun 2014 12:49:33 +0200
+Subject: [PATCH 46/48] MIPS: BCM63XX: expand board_info with an of compatible
+ string
+
+It will be used for matching board_info structs to a passed dtb until
+bcm63xx is fully converted.
+
+Signed-off-by: Jonas Gorski <jogo@openwrt.org>
+---
+ arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+--- a/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h
++++ b/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h
+@@ -21,6 +21,7 @@
+ */
+ struct board_info {
+ u8 name[16];
++ u8 of_board_id[32];
+ unsigned int expected_cpu_id;
+
+ /* enabled feature/device */
--- /dev/null
+From b9bc4eb19007fd35b57a10c4dfd442dd518ee345 Mon Sep 17 00:00:00 2001
+From: Jonas Gorski <jogo@openwrt.org>
+Date: Thu, 26 Jun 2014 12:51:00 +0200
+Subject: [PATCH 47/48] MIPS: BCM63XX: add support for matching the board_info
+ by dtb
+
+Allow using the passed dtb's compatible property to match board_info
+structs instead of nvram's boardname field, which is not unique anyway.
+
+Signed-off-by: Jonas Gorski <jogo@openwrt.org>
+---
+ arch/mips/bcm63xx/boards/board_bcm963xx.c | 4 ++--
+ arch/mips/bcm63xx/boards/board_common.c | 13 +++++++++++++
+ arch/mips/bcm63xx/boards/board_common.h | 3 +++
+ 3 files changed, 18 insertions(+), 2 deletions(-)
+
+--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
+@@ -817,9 +817,9 @@ void __init board_bcm963xx_init(void)
+ }
+ board_name = bcm63xx_nvram_get_name();
+ }
+- /* find board by name */
++ /* find board by name/compat */
+ for (i = 0; i < ARRAY_SIZE(bcm963xx_boards); i++) {
+- if (strncmp(board_name, bcm963xx_boards[i]->name, 16))
++ if (!board_is_compatible(bcm963xx_boards[i], board_name))
+ continue;
+ /* copy, board desc array is marked initdata */
+ board_early_setup(bcm963xx_boards[i],
+--- a/arch/mips/bcm63xx/boards/board_common.c
++++ b/arch/mips/bcm63xx/boards/board_common.c
+@@ -281,3 +281,16 @@ int __init board_register_devices(void)
+
+ return 0;
+ }
++
++int __init board_is_compatible(const struct board_info *board,
++ const char *board_name)
++{
++#ifdef CONFIG_OF
++ if (initial_boot_params) {
++ unsigned long dt_root = of_get_flat_dt_root();
++
++ return of_flat_dt_is_compatible(dt_root, board->of_board_id);
++ }
++#endif
++ return !strncmp(board_name, board->name, 16);
++}
+--- a/arch/mips/bcm63xx/boards/board_common.h
++++ b/arch/mips/bcm63xx/boards/board_common.h
+@@ -6,6 +6,9 @@
+ void board_early_setup(const struct board_info *board,
+ int (*get_mac_address)(u8 mac[ETH_ALEN]));
+
++int board_is_compatible(const struct board_info *board,
++ const char *board_name);
++
+ #if defined(CONFIG_BOARD_BCM963XX)
+ void board_bcm963xx_init(void);
+ #else
--- /dev/null
+From 020faee6d3cef9b3cdda257a255c4007a4b38720 Mon Sep 17 00:00:00 2001
+From: Jonas Gorski <jogo@openwrt.org>
+Date: Tue, 8 Jul 2014 16:17:32 +0200
+Subject: [PATCH 48/48] MIPS: BCM63XX: add of_board_ids for all supported boards
+
+---
+ arch/mips/bcm63xx/boards/board_bcm963xx.c | 18 ++++++++++++++++++
+ 1 file changed, 18 insertions(+)
+
+--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
+@@ -41,6 +41,7 @@
+ #ifdef CONFIG_BCM63XX_CPU_3368
+ static struct board_info __initdata board_cvg834g = {
+ .name = "CVG834G_E15R3921",
++ .of_board_id = "netgear,cvg834g",
+ .expected_cpu_id = 0x3368,
+
+ .has_uart0 = 1,
+@@ -73,6 +74,7 @@ static struct board_info __initdata boar
+ #ifdef CONFIG_BCM63XX_CPU_6328
+ static struct board_info __initdata board_96328avng = {
+ .name = "96328avng",
++ .of_board_id = "brcm,bcm96328avng",
+ .expected_cpu_id = 0x6328,
+
+ .has_uart0 = 1,
+@@ -122,6 +124,7 @@ static struct board_info __initdata boar
+ #ifdef CONFIG_BCM63XX_CPU_6338
+ static struct board_info __initdata board_96338gw = {
+ .name = "96338GW",
++ .of_board_id = "brcm,bcm96338gw",
+ .expected_cpu_id = 0x6338,
+
+ .has_uart0 = 1,
+@@ -165,6 +168,7 @@ static struct board_info __initdata boar
+
+ static struct board_info __initdata board_96338w = {
+ .name = "96338W",
++ .of_board_id = "brcm,96338w",
+ .expected_cpu_id = 0x6338,
+
+ .has_uart0 = 1,
+@@ -211,6 +215,7 @@ static struct board_info __initdata boar
+ #ifdef CONFIG_BCM63XX_CPU_6345
+ static struct board_info __initdata board_96345gw2 = {
+ .name = "96345GW2",
++ .of_board_id = "brcm,bcm96345gw2",
+ .expected_cpu_id = 0x6345,
+
+ .has_uart0 = 1,
+@@ -223,6 +228,7 @@ static struct board_info __initdata boar
+ #ifdef CONFIG_BCM63XX_CPU_6348
+ static struct board_info __initdata board_96348r = {
+ .name = "96348R",
++ .of_board_id = "brcm,bcm96348r",
+ .expected_cpu_id = 0x6348,
+
+ .has_uart0 = 1,
+@@ -268,6 +274,7 @@ static struct board_info __initdata boar
+
+ static struct board_info __initdata board_96348gw_10 = {
+ .name = "96348GW-10",
++ .of_board_id = "brcm,bcm96348gw-10",
+ .expected_cpu_id = 0x6348,
+
+ .has_uart0 = 1,
+@@ -329,6 +336,7 @@ static struct board_info __initdata boar
+
+ static struct board_info __initdata board_96348gw_11 = {
+ .name = "96348GW-11",
++ .of_board_id = "brcm,bcm96348gw-11",
+ .expected_cpu_id = 0x6348,
+
+ .has_uart0 = 1,
+@@ -394,6 +402,7 @@ static struct board_info __initdata boar
+
+ static struct board_info __initdata board_96348gw = {
+ .name = "96348GW",
++ .of_board_id = "brcm,bcm96348gw",
+ .expected_cpu_id = 0x6348,
+
+ .has_uart0 = 1,
+@@ -463,6 +472,7 @@ static struct board_info __initdata boar
+
+ static struct board_info __initdata board_FAST2404 = {
+ .name = "F@ST2404",
++ .of_board_id = "sagem,f@st2404",
+ .expected_cpu_id = 0x6348,
+
+ .has_uart0 = 1,
+@@ -488,6 +498,7 @@ static struct board_info __initdata boar
+
+ static struct board_info __initdata board_rta1025w_16 = {
+ .name = "RTA1025W_16",
++ .of_board_id = "dynalink,rta1025w",
+ .expected_cpu_id = 0x6348,
+
+ .has_enet0 = 1,
+@@ -508,6 +519,7 @@ static struct board_info __initdata boar
+
+ static struct board_info __initdata board_DV201AMR = {
+ .name = "DV201AMR",
++ .of_board_id = "davolink,dv-201amr",
+ .expected_cpu_id = 0x6348,
+
+ .has_uart0 = 1,
+@@ -529,6 +541,7 @@ static struct board_info __initdata boar
+
+ static struct board_info __initdata board_96348gw_a = {
+ .name = "96348GW-A",
++ .of_board_id = "brcm,bcm96348gw-a",
+ .expected_cpu_id = 0x6348,
+
+ .has_uart0 = 1,
+@@ -556,6 +569,7 @@ static struct board_info __initdata boar
+ #ifdef CONFIG_BCM63XX_CPU_6358
+ static struct board_info __initdata board_96358vw = {
+ .name = "96358VW",
++ .of_board_id = "brcm,bcm96358vw",
+ .expected_cpu_id = 0x6358,
+
+ .has_uart0 = 1,
+@@ -609,6 +623,7 @@ static struct board_info __initdata boar
+
+ static struct board_info __initdata board_96358vw2 = {
+ .name = "96358VW2",
++ .of_board_id = "brcm,bcm96358vw2",
+ .expected_cpu_id = 0x6358,
+
+ .has_uart0 = 1,
+@@ -659,6 +674,7 @@ static struct board_info __initdata boar
+
+ static struct board_info __initdata board_AGPFS0 = {
+ .name = "AGPF-S0",
++ .of_board_id = "pirelli,agpf-s0",
+ .expected_cpu_id = 0x6358,
+
+ .has_uart0 = 1,
+@@ -682,6 +698,7 @@ static struct board_info __initdata boar
+
+ static struct board_info __initdata board_DWVS0 = {
+ .name = "DWV-S0",
++ .of_board_id = "pirelli,a226g",
+ .expected_cpu_id = 0x6358,
+
+ .has_enet0 = 1,
--- a/arch/mips/bcm63xx/boards/board_common.c
+++ b/arch/mips/bcm63xx/boards/board_common.c
-@@ -101,6 +101,8 @@ void __init board_early_setup(const stru
+@@ -104,6 +104,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;
--- a/arch/mips/bcm63xx/boards/board_common.c
+++ b/arch/mips/bcm63xx/boards/board_common.c
-@@ -33,6 +33,7 @@
+@@ -36,6 +36,7 @@
#include <bcm63xx_dev_usb_ohci.h>
#include <bcm63xx_dev_usb_usbd.h>
#include <board_bcm963xx.h>
#include "board_common.h"
-@@ -159,6 +160,7 @@ int __init board_register_devices(void)
+@@ -184,6 +185,7 @@ int __init board_register_devices(void)
int button_count = 0;
int led_count = 0;
int usbh_ports = 0;
+ int i;
- if (board.has_uart0)
- bcm63xx_uart_register(0);
-@@ -247,5 +249,9 @@ int __init board_register_devices(void)
+ #if CONFIG_OF
+ if (of_have_populated_dt()) {
+@@ -281,6 +283,10 @@ int __init board_register_devices(void)
platform_device_register(&bcm63xx_gpio_keys_device);
}
+
return 0;
}
+
--- a/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h
+++ b/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h
@@ -9,6 +9,7 @@
/*
* board definition
*/
-@@ -36,6 +42,10 @@ struct board_info {
+@@ -37,6 +43,10 @@ struct board_info {
unsigned int has_uart0:1;
unsigned int has_uart1:1;
unsigned int use_fallback_sprom:1;
--- a/arch/mips/bcm63xx/boards/board_common.c
+++ b/arch/mips/bcm63xx/boards/board_common.c
-@@ -221,7 +221,7 @@ int __init board_register_devices(void)
+@@ -255,7 +255,7 @@ int __init board_register_devices(void)
if (board.num_spis)
spi_register_board_info(board.spis, board.num_spis);
return;
--- a/arch/mips/bcm63xx/boards/board_common.c
+++ b/arch/mips/bcm63xx/boards/board_common.c
-@@ -251,7 +251,8 @@ int __init board_register_devices(void)
+@@ -285,7 +285,8 @@ int __init board_register_devices(void)
/* register any fixups */
for (i = 0; i < board.has_caldata; i++)
--- a/arch/mips/bcm63xx/boards/board_common.c
+++ b/arch/mips/bcm63xx/boards/board_common.c
-@@ -252,7 +252,7 @@ int __init board_register_devices(void)
+@@ -286,7 +286,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,
obj-y += boards/
--- a/arch/mips/bcm63xx/boards/board_common.c
+++ b/arch/mips/bcm63xx/boards/board_common.c
-@@ -34,6 +34,7 @@
+@@ -37,6 +37,7 @@
#include <bcm63xx_dev_usb_usbd.h>
#include <board_bcm963xx.h>
#include <pci_ath9k_fixup.h>
#include "board_common.h"
-@@ -250,9 +251,19 @@ int __init board_register_devices(void)
+@@ -284,9 +285,19 @@ int __init board_register_devices(void)
}
/* register any fixups */
};
/*
-@@ -47,7 +52,7 @@ struct board_info {
+@@ -48,7 +53,7 @@ struct board_info {
unsigned int has_caldata:2;
/* wifi calibration data config */
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -65,7 +65,7 @@ static struct board_info __initdata boar
+@@ -66,7 +66,7 @@ static struct board_info __initdata boar
.ephy_reset_gpio = 36,
.ephy_reset_gpio_flags = GPIOF_INIT_HIGH,
};
/*
* known 6328 boards
-@@ -114,7 +114,7 @@ static struct board_info __initdata boar
+@@ -116,7 +116,7 @@ static struct board_info __initdata boar
},
},
};
/*
* known 6338 boards
-@@ -203,7 +203,7 @@ static struct board_info __initdata boar
+@@ -207,7 +207,7 @@ static struct board_info __initdata boar
},
},
};
/*
* known 6345 boards
-@@ -215,7 +215,7 @@ static struct board_info __initdata boar
+@@ -220,7 +220,7 @@ static struct board_info __initdata boar
.has_uart0 = 1,
};
/*
* known 6348 boards
-@@ -548,7 +548,7 @@ static struct board_info __initdata boar
+@@ -561,7 +561,7 @@ static struct board_info __initdata boar
.has_ohci0 = 1,
};
/*
* known 6358 boards
-@@ -701,7 +701,7 @@ static struct board_info __initdata boar
+@@ -718,7 +718,7 @@ static struct board_info __initdata boar
.has_ohci0 = 1,
};
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -548,6 +548,56 @@ static struct board_info __initdata boar
+@@ -561,6 +561,56 @@ static struct board_info __initdata boar
.has_ohci0 = 1,
};
#endif /* CONFIG_BCM63XX_CPU_6348 */
/*
-@@ -729,6 +779,7 @@ static const struct board_info __initcon
+@@ -746,6 +796,7 @@ static const struct board_info __initcon
&board_DV201AMR,
&board_96348gw_a,
&board_rta1025w_16,
/*
* known 3368 boards
*/
-@@ -751,6 +763,605 @@ static struct board_info __initdata boar
+@@ -768,6 +780,605 @@ static struct board_info __initdata boar
.has_ohci0 = 1,
};
#endif /* CONFIG_BCM63XX_CPU_6358 */
/*
-@@ -787,6 +1398,11 @@ static const struct board_info __initcon
+@@ -804,6 +1415,11 @@ static const struct board_info __initcon
&board_96358vw2,
&board_AGPFS0,
&board_DWVS0,
#endif
};
-@@ -795,6 +1411,16 @@ static void __init boardid_fixup(u8 *boo
+@@ -812,6 +1428,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();
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -215,6 +215,40 @@ static struct board_info __initdata boar
+@@ -219,6 +219,40 @@ static struct board_info __initdata boar
},
},
};
#endif /* CONFIG_BCM63XX_CPU_6338 */
/*
-@@ -1377,6 +1411,7 @@ static const struct board_info __initcon
+@@ -1394,6 +1428,7 @@ static const struct board_info __initcon
#ifdef CONFIG_BCM63XX_CPU_6338
&board_96338gw,
&board_96338w,
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -753,6 +753,98 @@ static struct board_info __initdata boar
+@@ -768,6 +768,98 @@ static struct board_info __initdata boar
},
};
+
static struct board_info __initdata board_AGPFS0 = {
.name = "AGPF-S0",
- .expected_cpu_id = 0x6358,
-@@ -1432,6 +1524,7 @@ static const struct board_info __initcon
+ .of_board_id = "pirelli,agpf-s0",
+@@ -1449,6 +1541,7 @@ static const struct board_info __initcon
&board_96358vw,
&board_96358vw2,
&board_AGPFS0,
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -890,6 +890,61 @@ static struct board_info __initdata boar
+@@ -907,6 +907,61 @@ static struct board_info __initdata boar
.has_ohci0 = 1,
};
struct spi_gpio_platform_data nb4_spi_gpio_data = {
.sck = NB4_SPI_GPIO_CLK,
.mosi = NB4_SPI_GPIO_MOSI,
-@@ -1526,6 +1581,7 @@ static const struct board_info __initcon
+@@ -1543,6 +1598,7 @@ static const struct board_info __initcon
&board_AGPFS0,
&board_CPVA642,
&board_DWVS0,
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -644,6 +644,67 @@ static struct board_info __initdata boar
+@@ -657,6 +657,67 @@ static struct board_info __initdata boar
},
},
};
#endif /* CONFIG_BCM63XX_CPU_6348 */
/*
-@@ -1573,6 +1634,7 @@ static const struct board_info __initcon
+@@ -1590,6 +1651,7 @@ static const struct board_info __initcon
&board_96348gw_a,
&board_rta1025w_16,
&board_96348_D4PW,
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -507,6 +507,112 @@ static struct board_info __initdata boar
+@@ -516,6 +516,112 @@ static struct board_info __initdata boar
},
};
+
static struct board_info __initdata board_FAST2404 = {
.name = "F@ST2404",
- .expected_cpu_id = 0x6348,
-@@ -1627,6 +1733,8 @@ static const struct board_info __initcon
+ .of_board_id = "sagem,f@st2404",
+@@ -1644,6 +1750,8 @@ static const struct board_info __initcon
#ifdef CONFIG_BCM63XX_CPU_6348
&board_96348r,
&board_96348gw,
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -811,6 +811,78 @@ static struct board_info __initdata boar
+@@ -824,6 +824,78 @@ static struct board_info __initdata boar
},
},
};
#endif /* CONFIG_BCM63XX_CPU_6348 */
/*
-@@ -1743,6 +1815,7 @@ static const struct board_info __initcon
+@@ -1760,6 +1832,7 @@ static const struct board_info __initcon
&board_rta1025w_16,
&board_96348_D4PW,
&board_spw500v,
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -1782,6 +1782,83 @@ static struct board_info __initdata boar
+@@ -1799,6 +1799,83 @@ static struct board_info __initdata boar
.spis = nb4_spi_devices,
.num_spis = ARRAY_SIZE(nb4_spi_devices),
};
#endif /* CONFIG_BCM63XX_CPU_6358 */
/*
-@@ -1830,6 +1907,7 @@ static const struct board_info __initcon
+@@ -1847,6 +1924,7 @@ static const struct board_info __initcon
&board_nb4_ser_r2,
&board_nb4_fxc_r1,
&board_nb4_fxc_r2,
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -249,6 +249,45 @@ static struct board_info __initdata boar
+@@ -253,6 +253,45 @@ static struct board_info __initdata boar
},
},
};
#endif /* CONFIG_BCM63XX_CPU_6338 */
/*
-@@ -1875,6 +1914,7 @@ static const struct board_info __initcon
+@@ -1892,6 +1931,7 @@ static const struct board_info __initcon
&board_96338gw,
&board_96338w,
&board_96338w2_e7t,
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -1898,6 +1898,72 @@ static struct board_info __initdata boar
+@@ -1915,6 +1915,72 @@ static struct board_info __initdata boar
.pci_dev = 1,
},
};
#endif /* CONFIG_BCM63XX_CPU_6358 */
/*
-@@ -1948,6 +2014,7 @@ static const struct board_info __initcon
+@@ -1965,6 +2031,7 @@ static const struct board_info __initcon
&board_nb4_fxc_r1,
&board_nb4_fxc_r2,
&board_HW553,
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -922,6 +922,65 @@ static struct board_info __initdata boar
+@@ -935,6 +935,65 @@ static struct board_info __initdata boar
},
},
};
#endif /* CONFIG_BCM63XX_CPU_6348 */
/*
-@@ -1999,6 +2058,7 @@ static const struct board_info __initcon
+@@ -2016,6 +2075,7 @@ static const struct board_info __initcon
&board_96348_D4PW,
&board_spw500v,
&board_96348sv,
#endif
#ifdef CONFIG_BCM63XX_CPU_6358
-@@ -2074,6 +2134,22 @@ void __init board_bcm963xx_init(void)
+@@ -2091,6 +2151,22 @@ void __init board_bcm963xx_init(void)
val &= MPI_CSBASE_BASE_MASK;
}
boot_addr = (u8 *)KSEG1ADDR(val);
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -477,6 +477,64 @@ static struct board_info __initdata boar
+@@ -485,6 +485,64 @@ static struct board_info __initdata boar
},
};
+
static struct board_info __initdata board_96348gw = {
.name = "96348GW",
- .expected_cpu_id = 0x6348,
-@@ -2059,6 +2117,7 @@ static const struct board_info __initcon
+ .of_board_id = "brcm,bcm96348gw",
+@@ -2076,6 +2134,7 @@ static const struct board_info __initcon
&board_spw500v,
&board_96348sv,
&board_V2500V_BB,
--- a/arch/mips/bcm63xx/boards/Kconfig
+++ b/arch/mips/bcm63xx/boards/Kconfig
-@@ -8,4 +8,10 @@ config BOARD_BCM963XX
+@@ -12,4 +12,10 @@ config BOARD_BCM963XX
default y
help
+obj-$(CONFIG_BOARD_LIVEBOX) += board_livebox.o
--- a/arch/mips/bcm63xx/boards/board_common.c
+++ b/arch/mips/bcm63xx/boards/board_common.c
-@@ -58,7 +58,7 @@ void __init board_prom_init(void)
+@@ -61,7 +61,7 @@ void __init board_prom_init(void)
if (fw_arg3 == CFE_EPTSEAL)
board_bcm963xx_init();
else
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);
+@@ -15,4 +15,10 @@ void board_bcm963xx_init(void);
static inline void board_bcm963xx_init(void) { }
#endif
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -535,6 +535,58 @@ static struct board_info __initdata boar
+@@ -543,6 +543,58 @@ static struct board_info __initdata boar
};
+
static struct board_info __initdata board_96348gw = {
.name = "96348GW",
- .expected_cpu_id = 0x6348,
-@@ -2118,6 +2170,7 @@ static const struct board_info __initcon
+ .of_board_id = "brcm,bcm96348gw",
+@@ -2135,6 +2187,7 @@ static const struct board_info __initcon
&board_96348sv,
&board_V2500V_BB,
&board_V2110,
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -1319,6 +1319,8 @@ static struct board_info __initdata boar
- .name = "DWV-S0",
+@@ -1336,6 +1336,8 @@ static struct board_info __initdata boar
+ .of_board_id = "pirelli,a226g",
.expected_cpu_id = 0x6358,
+ .has_uart0 = 1,
.has_enet0 = 1,
.has_enet1 = 1,
.has_pci = 1,
-@@ -1335,6 +1337,7 @@ static struct board_info __initdata boar
+@@ -1352,6 +1354,7 @@ static struct board_info __initdata boar
},
.has_ohci0 = 1,
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -587,6 +587,76 @@ static struct board_info __initdata boar
+@@ -595,6 +595,76 @@ static struct board_info __initdata boar
},
};
+
static struct board_info __initdata board_96348gw = {
.name = "96348GW",
- .expected_cpu_id = 0x6348,
-@@ -2174,6 +2244,7 @@ static const struct board_info __initcon
+ .of_board_id = "brcm,bcm96348gw",
+@@ -2191,6 +2261,7 @@ static const struct board_info __initcon
&board_V2500V_BB,
&board_V2110,
&board_ct536_ct5621,
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -861,6 +861,7 @@ static struct board_info __initdata boar
- .name = "RTA1025W_16",
+@@ -872,6 +872,7 @@ static struct board_info __initdata boar
+ .of_board_id = "dynalink,rta1025w",
.expected_cpu_id = 0x6348,
+ .has_uart0 = 1,
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -534,6 +534,40 @@ static struct board_info __initdata boar
+@@ -542,6 +542,40 @@ static struct board_info __initdata boar
},
};
static struct board_info __initdata board_ct536_ct5621 = {
.name = "CT536_CT5621",
-@@ -2246,6 +2280,7 @@ static const struct board_info __initcon
+@@ -2263,6 +2297,7 @@ static const struct board_info __initcon
&board_V2110,
&board_ct536_ct5621,
&board_96348A_122,
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -2244,6 +2244,85 @@ static struct board_info __initdata boar
+@@ -2261,6 +2261,85 @@ static struct board_info __initdata boar
#endif /* CONFIG_BCM63XX_CPU_6358 */
/*
* all boards
*/
static const struct board_info __initconst *bcm963xx_boards[] = {
-@@ -2298,6 +2377,10 @@ static const struct board_info __initcon
+@@ -2315,6 +2394,10 @@ static const struct board_info __initcon
&board_HW553,
&board_spw303v,
#endif
static void __init boardid_fixup(u8 *boot_addr)
--- a/arch/mips/bcm63xx/boards/board_common.c
+++ b/arch/mips/bcm63xx/boards/board_common.c
-@@ -85,12 +85,25 @@ void __init board_early_setup(const stru
+@@ -88,12 +88,25 @@ void __init board_early_setup(const stru
bcm63xx_pci_enabled = 1;
if (BCMCPU_IS_6348())
val |= GPIO_MODE_6348_G2_PCI;
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -2320,6 +2320,72 @@ static struct board_info __initdata boar
+@@ -2337,6 +2337,72 @@ static struct board_info __initdata boar
.has_ohci0 = 1,
.has_ehci0 = 1,
};
#endif /* CONFIG_BCM63XX_CPU_6368 */
/*
-@@ -2380,6 +2446,7 @@ static const struct board_info __initcon
+@@ -2397,6 +2463,7 @@ static const struct board_info __initcon
#ifdef CONFIG_BCM63XX_CPU_6368
&board_96368mvwg,
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -97,13 +97,45 @@ static struct board_info __initdata boar
+@@ -99,13 +99,45 @@ static struct board_info __initdata boar
.port_no = 0,
},
.name = "96328avng::power",
.gpio = 4,
.active_low = 1,
-@@ -120,7 +152,7 @@ static struct board_info __initdata boar
+@@ -122,7 +154,7 @@ static struct board_info __initdata boar
.active_low = 1,
},
{
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -158,6 +158,76 @@ static struct board_info __initdata boar
+@@ -160,6 +160,76 @@ static struct board_info __initdata boar
},
},
};
#endif /* CONFIG_BCM63XX_CPU_6328 */
/*
-@@ -2429,6 +2499,7 @@ static const struct board_info __initcon
+@@ -2446,6 +2516,7 @@ static const struct board_info __initcon
#endif
#ifdef CONFIG_BCM63XX_CPU_6328
&board_96328avng,
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -228,6 +228,111 @@ static struct board_info __initdata boar
+@@ -230,6 +230,111 @@ static struct board_info __initdata boar
},
};
#endif /* CONFIG_BCM63XX_CPU_6328 */
/*
-@@ -2500,6 +2605,7 @@ static const struct board_info __initcon
+@@ -2517,6 +2622,7 @@ static const struct board_info __initcon
#ifdef CONFIG_BCM63XX_CPU_6328
&board_96328avng,
&board_963281TAN,
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -1162,6 +1162,59 @@ static struct board_info __initdata boar
+@@ -1175,6 +1175,59 @@ static struct board_info __initdata boar
.has_ohci0 = 1,
};
static struct board_info __initdata board_96348_D4PW = {
.name = "D-4P-W",
.expected_cpu_id = 0x6348,
-@@ -2635,6 +2688,7 @@ static const struct board_info __initcon
+@@ -2652,6 +2705,7 @@ static const struct board_info __initcon
&board_ct536_ct5621,
&board_96348A_122,
&board_CPVA502plus,
/*
* known 3368 boards
*/
-@@ -2359,6 +2365,124 @@ static struct board_info __initdata boar
+@@ -2376,6 +2382,124 @@ static struct board_info __initdata boar
.num_spis = ARRAY_SIZE(nb4_spi_devices),
};
static struct board_info __initdata board_HW553 = {
.name = "HW553",
.expected_cpu_id = 0x6358,
-@@ -2703,6 +2827,7 @@ static const struct board_info __initcon
+@@ -2720,6 +2844,7 @@ static const struct board_info __initcon
&board_nb4_ser_r2,
&board_nb4_fxc_r1,
&board_nb4_fxc_r2,
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -2625,6 +2625,73 @@ static struct board_info __initdata boar
+@@ -2642,6 +2642,73 @@ static struct board_info __initdata boar
},
}
};
#endif /* CONFIG_BCM63XX_CPU_6358 */
/*
-@@ -2830,6 +2897,7 @@ static const struct board_info __initcon
+@@ -2847,6 +2914,7 @@ static const struct board_info __initcon
&board_ct6373_1,
&board_HW553,
&board_spw303v,
#define CT6373_PID_OFFSET 0xff80
#define CT6373_74X164_GPIO_BASE 64
-@@ -2694,6 +2697,104 @@ static struct board_info __initdata boar
+@@ -2711,6 +2714,104 @@ static struct board_info __initdata boar
};
#endif /* CONFIG_BCM63XX_CPU_6358 */
/*
* known 6368 boards
*/
-@@ -2900,6 +3001,10 @@ static const struct board_info __initcon
+@@ -2917,6 +3018,10 @@ static const struct board_info __initcon
&board_DVAG3810BN,
#endif
#ifdef CONFIG_BCM63XX_CPU_6368
&board_96368mvwg,
&board_96368mvngr,
-@@ -2921,6 +3026,11 @@ static void __init boardid_fixup(u8 *boo
+@@ -2938,6 +3043,11 @@ static void __init boardid_fixup(u8 *boo
}
}
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -1107,6 +1107,57 @@ static struct board_info __initdata boar
+@@ -1117,6 +1117,57 @@ static struct board_info __initdata boar
.has_ehci0 = 1,
};
+
static struct board_info __initdata board_rta1025w_16 = {
.name = "RTA1025W_16",
- .expected_cpu_id = 0x6348,
-@@ -2969,6 +3020,7 @@ static const struct board_info __initcon
+ .of_board_id = "dynalink,rta1025w",
+@@ -2986,6 +3037,7 @@ static const struct board_info __initcon
&board_96348gw_10,
&board_96348gw_11,
&board_FAST2404,
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -238,6 +238,133 @@ static struct board_info __initdata boar
+@@ -240,6 +240,133 @@ static struct board_info __initdata boar
},
};
static struct board_info __initdata board_dsl_274xb_f1 = {
.name = "AW4339U",
.expected_cpu_id = 0x6328,
-@@ -3001,6 +3128,7 @@ static const struct board_info __initcon
+@@ -3018,6 +3145,7 @@ static const struct board_info __initcon
#ifdef CONFIG_BCM63XX_CPU_6328
&board_96328avng,
&board_963281TAN,
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -168,6 +168,115 @@ static struct board_info __initdata boar
+@@ -170,6 +170,115 @@ static struct board_info __initdata boar
},
};
static struct board_info __initdata board_963281TAN = {
.name = "963281TAN",
.expected_cpu_id = 0x6328,
-@@ -3127,6 +3236,7 @@ static const struct board_info __initcon
+@@ -3144,6 +3253,7 @@ static const struct board_info __initcon
#endif
#ifdef CONFIG_BCM63XX_CPU_6328
&board_96328avng,
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -168,6 +168,91 @@ static struct board_info __initdata boar
+@@ -170,6 +170,91 @@ static struct board_info __initdata boar
},
};
static struct sprom_fixup __initdata ar5387un_fixups[] = {
{ .offset = 2, .value = 0x05bb },
{ .offset = 65, .value = 0x1204 },
-@@ -3236,6 +3321,7 @@ static const struct board_info __initcon
+@@ -3253,6 +3338,7 @@ static const struct board_info __initcon
#endif
#ifdef CONFIG_BCM63XX_CPU_6328
&board_96328avng,
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -837,6 +837,55 @@ static struct board_info __initdata boar
+@@ -842,6 +842,55 @@ static struct board_info __initdata boar
.has_uart0 = 1,
};
#endif /* CONFIG_BCM63XX_CPU_6345 */
/*
-@@ -3335,6 +3384,7 @@ static const struct board_info __initcon
+@@ -3352,6 +3401,7 @@ static const struct board_info __initcon
#endif
#ifdef CONFIG_BCM63XX_CPU_6345
&board_96345gw2,
#include <linux/platform_device.h>
#include <linux/spi/spi.h>
#include <linux/spi/spi_gpio.h>
-@@ -2984,6 +2985,492 @@ static struct board_info __initdata boar
+@@ -3001,6 +3002,492 @@ static struct board_info __initdata boar
},
};
/* T-Home Speedport W 303V Typ B */
static struct board_info __initdata board_spw303v = {
.name = "96358-502V",
-@@ -3423,6 +3910,10 @@ static const struct board_info __initcon
+@@ -3440,6 +3927,10 @@ static const struct board_info __initcon
&board_nb4_fxc_r2,
&board_ct6373_1,
&board_HW553,
&board_spw303v,
&board_DVAG3810BN,
#endif
-@@ -3442,13 +3933,37 @@ static void __init boardid_fixup(u8 *boo
+@@ -3459,13 +3950,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();
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -887,6 +887,60 @@ static struct board_info __initdata boar
+@@ -892,6 +892,60 @@ static struct board_info __initdata boar
},
},
};
#endif /* CONFIG_BCM63XX_CPU_6345 */
/*
-@@ -3872,6 +3926,7 @@ static const struct board_info __initcon
+@@ -3889,6 +3943,7 @@ static const struct board_info __initcon
#ifdef CONFIG_BCM63XX_CPU_6345
&board_96345gw2,
&board_rta770bw,
---
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -664,6 +664,122 @@ static struct board_info __initdata boar
+@@ -666,6 +666,122 @@ static struct board_info __initdata boar
},
},
};
#endif /* CONFIG_BCM63XX_CPU_6328 */
/*
-@@ -3916,6 +4032,7 @@ static const struct board_info __initcon
+@@ -3933,6 +4049,7 @@ static const struct board_info __initcon
&board_963281TAN,
&board_A4001N1,
&board_dsl_274xb_f1,
---
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -3871,6 +3871,96 @@ static struct board_info __initdata boar
+@@ -3888,6 +3888,96 @@ static struct board_info __initdata boar
.devs = nb6_devices,
.num_devs = ARRAY_SIZE(nb6_devices),
};
#endif /* CONFIG_BCM63XX_CPU_6362 */
/*
-@@ -4092,6 +4182,7 @@ static const struct board_info __initcon
+@@ -4109,6 +4199,7 @@ static const struct board_info __initcon
#ifdef CONFIG_BCM63XX_CPU_6362
&board_nb6,
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -2279,6 +2279,99 @@ static struct board_info __initdata boar
+@@ -2295,6 +2295,99 @@ static struct board_info __initdata boar
.has_ohci0 = 1,
.has_ehci0 = 1,
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -1761,6 +1761,19 @@ static struct board_info __initdata boar
+@@ -1774,6 +1774,19 @@ static struct board_info __initdata boar
},
.has_ohci0 = 1,
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -1167,6 +1167,17 @@ static struct board_info __initdata boar
+@@ -1174,6 +1174,17 @@ static struct board_info __initdata boar
.active_low = 1,
},
},
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -793,6 +793,8 @@ static struct board_info __initdata boar
+@@ -796,6 +796,8 @@ static struct board_info __initdata boar
.has_uart0 = 1,
.has_enet0 = 1,
.enet0 = {
.force_speed_100 = 1,
.force_duplex_full = 1,
},
-@@ -836,6 +838,8 @@ static struct board_info __initdata boar
+@@ -840,6 +842,8 @@ static struct board_info __initdata boar
.has_uart0 = 1,
.has_enet0 = 1,
.enet0 = {
.force_speed_100 = 1,
.force_duplex_full = 1,
},
-@@ -1123,6 +1127,8 @@ static struct board_info __initdata boar
+@@ -1130,6 +1134,8 @@ static struct board_info __initdata boar
.use_internal_phy = 1,
},
.enet1 = {
.force_speed_100 = 1,
.force_duplex_full = 1,
},
-@@ -1196,6 +1202,8 @@ static struct board_info __initdata boar
+@@ -1204,6 +1210,8 @@ static struct board_info __initdata boar
},
.enet1 = {
.force_speed_100 = 1,
.force_duplex_full = 1,
},
-@@ -1474,6 +1482,8 @@ static struct board_info __initdata boar
+@@ -1483,6 +1491,8 @@ static struct board_info __initdata boar
.use_internal_phy = 1,
},
.enet1 = {
.force_speed_100 = 1,
.force_duplex_full = 1,
},
-@@ -1650,6 +1660,8 @@ static struct board_info __initdata boar
+@@ -1660,6 +1670,8 @@ static struct board_info __initdata boar
},
.enet1 = {
.force_speed_100 = 1,
.force_duplex_full = 1,
},
-@@ -1725,6 +1737,8 @@ static struct board_info __initdata boar
+@@ -1736,6 +1748,8 @@ static struct board_info __initdata boar
.use_internal_phy = 1,
},
.enet1 = {
.force_speed_100 = 1,
.force_duplex_full = 1,
},
-@@ -1747,6 +1761,8 @@ static struct board_info __initdata boar
+@@ -1759,6 +1773,8 @@ static struct board_info __initdata boar
.use_internal_phy = 1,
},
.enet1 = {
.force_speed_100 = 1,
.force_duplex_full = 1,
},
-@@ -1767,6 +1783,8 @@ static struct board_info __initdata boar
+@@ -1780,6 +1796,8 @@ static struct board_info __initdata boar
.use_internal_phy = 1,
},
.enet1 = {
.force_speed_100 = 1,
.force_duplex_full = 1,
},
-@@ -2103,6 +2121,8 @@ static struct board_info __initdata boar
+@@ -2117,6 +2135,8 @@ static struct board_info __initdata boar
},
.enet1 = {
.force_speed_100 = 1,
.force_duplex_full = 1,
},
-@@ -2156,6 +2176,8 @@ static struct board_info __initdata boar
+@@ -2171,6 +2191,8 @@ static struct board_info __initdata boar
},
.enet1 = {
.force_speed_100 = 1,
.force_duplex_full = 1,
},
-@@ -2297,6 +2319,8 @@ static struct board_info __initdata boar
+@@ -2313,6 +2335,8 @@ static struct board_info __initdata boar
},
.enet1 = {
.force_speed_100 = 1,
.force_duplex_full = 1,
},
-@@ -2415,6 +2439,8 @@ static struct board_info __initdata boar
+@@ -2432,6 +2456,8 @@ static struct board_info __initdata boar
},
.enet1 = {
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -2447,6 +2447,94 @@ static struct board_info __initdata boar
+@@ -2464,6 +2464,94 @@ static struct board_info __initdata boar
.has_ohci0 = 1,
.has_ehci0 = 1,
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -90,6 +90,93 @@ static struct board_info __initdata boar
+@@ -91,6 +91,93 @@ static struct board_info __initdata boar
#endif /* CONFIG_BCM63XX_CPU_3368 */
/*
* known 6328 boards
*/
#ifdef CONFIG_BCM63XX_CPU_6328
-@@ -4346,6 +4433,9 @@ static const struct board_info __initcon
+@@ -4363,6 +4450,9 @@ static const struct board_info __initcon
#ifdef CONFIG_BCM63XX_CPU_3368
&board_cvg834g,
#endif
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -174,6 +174,94 @@ static struct board_info __initdata boar
+@@ -175,6 +175,94 @@ static struct board_info __initdata boar
},
},
};
#endif /* CONFIG_BCM63XX_CPU_6318 */
/*
-@@ -4435,6 +4523,7 @@ static const struct board_info __initcon
+@@ -4452,6 +4540,7 @@ static const struct board_info __initcon
#endif
#ifdef CONFIG_BCM63XX_CPU_6318
&board_96318ref,
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -4515,6 +4515,75 @@ static struct board_info __initdata boar
+@@ -4532,6 +4532,75 @@ static struct board_info __initdata boar
#endif /* CONFIG_BCM63XX_CPU_6368 */
/*
* all boards
*/
static const struct board_info __initconst *bcm963xx_boards[] = {
-@@ -4599,6 +4668,9 @@ static const struct board_info __initcon
+@@ -4616,6 +4685,9 @@ static const struct board_info __initcon
&board_96368mvwg,
&board_96368mvngr,
#endif
---
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -1428,6 +1428,51 @@ static struct board_info __initdata boar
+@@ -1436,6 +1436,51 @@ static struct board_info __initdata boar
},
};
/* BT Voyager 2110 */
static struct board_info __initdata board_V2110 = {
-@@ -4635,6 +4680,7 @@ static const struct board_info __initcon
+@@ -4652,6 +4697,7 @@ static const struct board_info __initcon
&board_96348A_122,
&board_CPVA502plus,
&board_96348W3,
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -4626,6 +4626,108 @@ static struct board_info __initdata boar
+@@ -4643,6 +4643,108 @@ static struct board_info __initdata boar
},
},
};
#endif /* CONFIG_BCM63XX_CPU_63268 */
/*
-@@ -4716,6 +4818,7 @@ static const struct board_info __initcon
+@@ -4733,6 +4835,7 @@ static const struct board_info __initcon
#endif
#ifdef CONFIG_BCM63XX_CPU_63268
&board_963269bhr,
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -4563,6 +4563,131 @@ static struct board_info __initdata boar
+@@ -4580,6 +4580,131 @@ static struct board_info __initdata boar
* known 63268/63269 boards
*/
#ifdef CONFIG_BCM63XX_CPU_63268
static struct board_info __initdata board_963269bhr = {
.name = "963269BHR",
.expected_cpu_id = 0x63268,
-@@ -4817,6 +4942,7 @@ static const struct board_info __initcon
+@@ -4834,6 +4959,7 @@ static const struct board_info __initcon
&board_96368mvngr,
#endif
#ifdef CONFIG_BCM63XX_CPU_63268
#include <linux/platform_device.h>
#include <linux/spi/spi.h>
#include <linux/spi/spi_gpio.h>
-@@ -4557,6 +4558,117 @@ static struct board_info __initdata boar
+@@ -4574,6 +4575,117 @@ static struct board_info __initdata boar
.has_ohci0 = 1,
.has_ehci0 = 1,
};
#endif /* CONFIG_BCM63XX_CPU_6368 */
/*
-@@ -4940,6 +5052,7 @@ static const struct board_info __initcon
+@@ -4957,6 +5069,7 @@ static const struct board_info __initcon
#ifdef CONFIG_BCM63XX_CPU_6368
&board_96368mvwg,
&board_96368mvngr,
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -4559,6 +4559,116 @@ static struct board_info __initdata boar
+@@ -4576,6 +4576,116 @@ static struct board_info __initdata boar
.has_ehci0 = 1,
};
static struct b53_platform_data WAP5813n_b53_pdata = {
.alias = "eth0",
};
-@@ -5052,6 +5162,7 @@ static const struct board_info __initcon
+@@ -5069,6 +5179,7 @@ static const struct board_info __initcon
#ifdef CONFIG_BCM63XX_CPU_6368
&board_96368mvwg,
&board_96368mvngr,
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -4669,6 +4669,116 @@ static struct board_info __initdata boar
+@@ -4686,6 +4686,116 @@ static struct board_info __initdata boar
},
};
static struct b53_platform_data WAP5813n_b53_pdata = {
.alias = "eth0",
};
-@@ -5163,6 +5273,7 @@ static const struct board_info __initcon
+@@ -5180,6 +5290,7 @@ static const struct board_info __initcon
&board_96368mvwg,
&board_96368mvngr,
&board_VR3025u,
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -4568,6 +4568,96 @@ static struct sprom_fixup __initdata vr3
+@@ -4585,6 +4585,96 @@ static struct sprom_fixup __initdata vr3
{ .offset = 115, .value = 0xfad9 },
};
static struct board_info __initdata board_VR3025u = {
.name = "96368M-1541N",
.expected_cpu_id = 0x6368,
-@@ -5272,6 +5362,7 @@ static const struct board_info __initcon
+@@ -5289,6 +5379,7 @@ static const struct board_info __initcon
#ifdef CONFIG_BCM63XX_CPU_6368
&board_96368mvwg,
&board_96368mvngr,
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -3530,6 +3530,56 @@ static struct board_info __initdata boar
+@@ -3547,6 +3547,56 @@ static struct board_info __initdata boar
.num_spis = ARRAY_SIZE(ct6373_spi_devices),
};
static struct board_info __initdata board_HW553 = {
.name = "HW553",
.expected_cpu_id = 0x6358,
-@@ -5345,6 +5395,7 @@ static const struct board_info __initcon
+@@ -5362,6 +5412,7 @@ static const struct board_info __initcon
&board_nb4_fxc_r1,
&board_nb4_fxc_r2,
&board_ct6373_1,
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -609,6 +609,95 @@ static struct board_info __initdata boar
+@@ -611,6 +611,95 @@ static struct board_info __initdata boar
},
};
static struct board_info __initdata board_A4001N1 = {
.name = "963281T_TEF",
.expected_cpu_id = 0x6328,
-@@ -5343,6 +5432,7 @@ static const struct board_info __initcon
+@@ -5360,6 +5449,7 @@ static const struct board_info __initcon
&board_AR5381u,
&board_AR5387un,
&board_963281TAN,
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -263,6 +263,141 @@ static struct board_info __initdata boar
+@@ -264,6 +264,141 @@ static struct board_info __initdata boar
},
},
};
#endif /* CONFIG_BCM63XX_CPU_6318 */
/*
-@@ -5426,6 +5561,7 @@ static const struct board_info __initcon
+@@ -5443,6 +5578,7 @@ static const struct board_info __initcon
#ifdef CONFIG_BCM63XX_CPU_6318
&board_96318ref,
&board_96318ref_p300,