--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -195,6 +195,73 @@ static struct sprom_fixup __initdata ar5
- { .offset = 203, .value = 0x2226 },
+@@ -168,6 +168,91 @@ static struct board_info __initdata boar
+ },
};
++static struct sprom_fixup __initdata ar5381u_fixups[] = {
++ { .offset = 97, .value = 0xfee5 },
++ { .offset = 98, .value = 0x157c },
++ { .offset = 99, .value = 0xfae7 },
++ { .offset = 113, .value = 0xfefa },
++ { .offset = 114, .value = 0x15d6 },
++ { .offset = 115, .value = 0xfaf8 },
++};
++
+static struct board_info __initdata board_AR5381u = {
+ .name = "96328A-1241N",
+ .expected_cpu_id = 0x6328,
+
+ .has_uart0 = 1,
+ .has_pci = 1,
++ .use_fallback_sprom = 1,
+ .has_ohci0 = 1,
+ .has_ehci0 = 1,
+ .num_usbh_ports = 1,
+ .debounce_interval = BCM963XX_KEYS_DEBOUNCE_INTERVAL,
+ },
+ },
++
++ .fallback_sprom = {
++ .type = SPROM_BCM43225,
++ .pci_bus = 1,
++ .pci_dev = 0,
++ .board_fixups = ar5381u_fixups,
++ .num_board_fixups = ARRAY_SIZE(ar5381u_fixups),
++ },
+};
+
- static struct board_info __initdata board_AR5387un = {
- .name = "96328A-1441N1",
- .expected_cpu_id = 0x6328,
-@@ -3238,6 +3305,7 @@ static const struct board_info __initcon
+ static struct sprom_fixup __initdata ar5387un_fixups[] = {
+ { .offset = 2, .value = 0x05bb },
+ { .offset = 65, .value = 0x1204 },
+@@ -3238,6 +3323,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
-@@ -967,6 +967,55 @@ static struct board_info __initdata boar
+@@ -985,6 +985,55 @@ static struct board_info __initdata boar
.has_uart0 = 1,
};
#endif
/*
-@@ -3319,6 +3368,7 @@ static const struct board_info __initcon
+@@ -3337,6 +3386,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>
-@@ -1871,6 +1872,492 @@ static struct board_info __initdata boar
+@@ -1889,6 +1890,492 @@ static struct board_info __initdata boar
},
};
/* T-Home Speedport W 303V Typ B */
static struct board_info __initdata board_spw303v = {
.name = "96358-502V",
-@@ -3407,6 +3894,10 @@ static const struct board_info __initcon
+@@ -3425,6 +3912,10 @@ static const struct board_info __initcon
&board_nb4_fxc_r2,
&board_ct6373_1,
&board_HW553,
&board_spw303v,
&board_DVAG3810BN,
#endif
-@@ -3426,13 +3917,37 @@ static void __init boardid_fixup(u8 *boo
+@@ -3444,13 +3935,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
-@@ -1017,6 +1017,60 @@ static struct board_info __initdata boar
+@@ -1035,6 +1035,60 @@ static struct board_info __initdata boar
},
},
};
#endif
/*
-@@ -3856,6 +3910,7 @@ static const struct board_info __initcon
+@@ -3874,6 +3928,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
-@@ -1679,6 +1679,122 @@ static struct board_info __initdata boar
+@@ -1697,6 +1697,122 @@ static struct board_info __initdata boar
},
};
static struct board_info __initdata board_rta1025w_16 = {
.name = "RTA1025W_16",
.expected_cpu_id = 0x6348,
-@@ -3900,6 +4016,7 @@ static const struct board_info __initcon
+@@ -3918,6 +4034,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
-@@ -3855,6 +3855,96 @@ static struct board_info __initdata boar
+@@ -3873,6 +3873,96 @@ static struct board_info __initdata boar
.devs = nb6_devices,
.num_devs = ARRAY_SIZE(nb6_devices),
};
#endif
/*
-@@ -4076,6 +4166,7 @@ static const struct board_info __initcon
+@@ -4094,6 +4184,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
-@@ -2882,6 +2882,99 @@ static struct board_info __initdata boar
+@@ -2900,6 +2900,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
-@@ -1857,6 +1857,19 @@ static struct board_info __initdata boar
+@@ -1875,6 +1875,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
-@@ -1181,6 +1181,17 @@ static struct board_info __initdata boar
+@@ -1199,6 +1199,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
-@@ -659,6 +659,8 @@ static struct board_info __initdata boar
+@@ -677,6 +677,8 @@ static struct board_info __initdata boar
.has_uart0 = 1,
.has_enet0 = 1,
.enet0 = {
.force_speed_100 = 1,
.force_duplex_full = 1,
},
-@@ -702,6 +704,8 @@ static struct board_info __initdata boar
+@@ -720,6 +722,8 @@ static struct board_info __initdata boar
.has_uart0 = 1,
.has_enet0 = 1,
.enet0 = {
.force_speed_100 = 1,
.force_duplex_full = 1,
},
-@@ -1137,6 +1141,8 @@ static struct board_info __initdata boar
+@@ -1155,6 +1159,8 @@ static struct board_info __initdata boar
.use_internal_phy = 1,
},
.enet1 = {
.force_speed_100 = 1,
.force_duplex_full = 1,
},
-@@ -1210,6 +1216,8 @@ static struct board_info __initdata boar
+@@ -1228,6 +1234,8 @@ static struct board_info __initdata boar
},
.enet1 = {
.force_speed_100 = 1,
.force_duplex_full = 1,
},
-@@ -1454,6 +1462,8 @@ static struct board_info __initdata boar
+@@ -1472,6 +1480,8 @@ static struct board_info __initdata boar
.use_internal_phy = 1,
},
.enet1 = {
.force_speed_100 = 1,
.force_duplex_full = 1,
},
-@@ -1630,6 +1640,8 @@ static struct board_info __initdata boar
+@@ -1648,6 +1658,8 @@ static struct board_info __initdata boar
},
.enet1 = {
.force_speed_100 = 1,
.force_duplex_full = 1,
},
-@@ -1821,6 +1833,8 @@ static struct board_info __initdata boar
+@@ -1839,6 +1851,8 @@ static struct board_info __initdata boar
.use_internal_phy = 1,
},
.enet1 = {
.force_speed_100 = 1,
.force_duplex_full = 1,
},
-@@ -1843,6 +1857,8 @@ static struct board_info __initdata boar
+@@ -1861,6 +1875,8 @@ static struct board_info __initdata boar
.use_internal_phy = 1,
},
.enet1 = {
.force_speed_100 = 1,
.force_duplex_full = 1,
},
-@@ -1863,6 +1879,8 @@ static struct board_info __initdata boar
+@@ -1881,6 +1897,8 @@ static struct board_info __initdata boar
.use_internal_phy = 1,
},
.enet1 = {
.force_speed_100 = 1,
.force_duplex_full = 1,
},
-@@ -2706,6 +2724,8 @@ static struct board_info __initdata boar
+@@ -2724,6 +2742,8 @@ static struct board_info __initdata boar
},
.enet1 = {
.force_speed_100 = 1,
.force_duplex_full = 1,
},
-@@ -2759,6 +2779,8 @@ static struct board_info __initdata boar
+@@ -2777,6 +2797,8 @@ static struct board_info __initdata boar
},
.enet1 = {
.force_speed_100 = 1,
.force_duplex_full = 1,
},
-@@ -2900,6 +2922,8 @@ static struct board_info __initdata boar
+@@ -2918,6 +2940,8 @@ static struct board_info __initdata boar
},
.enet1 = {
.force_speed_100 = 1,
.force_duplex_full = 1,
},
-@@ -3018,6 +3042,8 @@ static struct board_info __initdata boar
+@@ -3036,6 +3060,8 @@ static struct board_info __initdata boar
},
.enet1 = {
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -3050,6 +3050,94 @@ static struct board_info __initdata boar
+@@ -3068,6 +3068,94 @@ static struct board_info __initdata boar
.has_ohci0 = 1,
.has_ehci0 = 1,
* known 6328 boards
*/
#ifdef CONFIG_BCM63XX_CPU_6328
-@@ -4330,6 +4417,9 @@ static const struct board_info __initcon
+@@ -4348,6 +4435,9 @@ static const struct board_info __initcon
#ifdef CONFIG_BCM63XX_CPU_3368
&board_cvg834g,
#endif
#endif
/*
-@@ -4419,6 +4507,7 @@ static const struct board_info __initcon
+@@ -4437,6 +4525,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
-@@ -4499,6 +4499,75 @@ static struct board_info __initdata boar
+@@ -4517,6 +4517,75 @@ static struct board_info __initdata boar
#endif
/*
* all boards
*/
static const struct board_info __initconst *bcm963xx_boards[] = {
-@@ -4583,6 +4652,9 @@ static const struct board_info __initcon
+@@ -4601,6 +4670,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
-@@ -1135,6 +1135,51 @@ static struct board_info __initdata boar
+@@ -1153,6 +1153,51 @@ static struct board_info __initdata boar
},
};
#endif
/*
-@@ -4619,6 +4664,7 @@ static const struct board_info __initcon
+@@ -4637,6 +4682,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
-@@ -4610,6 +4610,108 @@ static struct board_info __initdata boar
+@@ -4628,6 +4628,108 @@ static struct board_info __initdata boar
},
},
};
#endif
/*
-@@ -4700,6 +4802,7 @@ static const struct board_info __initcon
+@@ -4718,6 +4820,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
-@@ -4547,6 +4547,131 @@ static struct board_info __initdata boar
+@@ -4565,6 +4565,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,
-@@ -4801,6 +4926,7 @@ static const struct board_info __initcon
+@@ -4819,6 +4944,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>
-@@ -4541,6 +4542,99 @@ static struct board_info __initdata boar
+@@ -4559,6 +4560,99 @@ static struct board_info __initdata boar
.has_ohci0 = 1,
.has_ehci0 = 1,
};
#endif
/*
-@@ -4924,6 +5018,7 @@ static const struct board_info __initcon
+@@ -4942,6 +5036,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
-@@ -4543,6 +4543,98 @@ static struct board_info __initdata boar
+@@ -4561,6 +4561,98 @@ static struct board_info __initdata boar
.has_ehci0 = 1,
};
static struct b53_platform_data WAP5813n_b53_pdata = {
.alias = "eth0",
};
-@@ -5018,6 +5110,7 @@ static const struct board_info __initcon
+@@ -5036,6 +5128,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
-@@ -4635,6 +4635,98 @@ static struct board_info __initdata boar
+@@ -4653,6 +4653,98 @@ static struct board_info __initdata boar
},
};
static struct b53_platform_data WAP5813n_b53_pdata = {
.alias = "eth0",
};
-@@ -5111,6 +5203,7 @@ static const struct board_info __initcon
+@@ -5129,6 +5221,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
-@@ -4543,6 +4543,89 @@ static struct board_info __initdata boar
+@@ -4561,6 +4561,89 @@ static struct board_info __initdata boar
.has_ehci0 = 1,
};
static struct board_info __initdata board_VR3025u = {
.name = "96368M-1541N",
.expected_cpu_id = 0x6368,
-@@ -5202,6 +5285,7 @@ static const struct board_info __initcon
+@@ -5220,6 +5303,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
-@@ -4133,6 +4133,49 @@ static struct board_info __initdata boar
+@@ -4151,6 +4151,49 @@ 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,
-@@ -5268,6 +5311,7 @@ static const struct board_info __initcon
+@@ -5286,6 +5329,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
-@@ -591,6 +591,88 @@ static struct board_info __initdata boar
+@@ -609,6 +609,88 @@ static struct board_info __initdata boar
},
};
static struct board_info __initdata board_A4001N1 = {
.name = "963281T_TEF",
.expected_cpu_id = 0x6328,
-@@ -5259,6 +5341,7 @@ static const struct board_info __initcon
+@@ -5277,6 +5359,7 @@ static const struct board_info __initcon
&board_AR5381u,
&board_AR5387un,
&board_963281TAN,
#endif
/*
-@@ -5335,6 +5470,7 @@ static const struct board_info __initcon
+@@ -5353,6 +5488,7 @@ static const struct board_info __initcon
#ifdef CONFIG_BCM63XX_CPU_6318
&board_96318ref,
&board_96318ref_p300,