-Index: linux-2.6.23/arch/mips/Kconfig
-===================================================================
---- linux-2.6.23.orig/arch/mips/Kconfig 2007-10-13 02:23:06.662507926 +0200
-+++ linux-2.6.23/arch/mips/Kconfig 2007-10-13 02:23:41.484492317 +0200
-@@ -4,6 +4,10 @@
- # Horrible source of confusion. Die, die, die ...
- select EMBEDDED
-
-+config CFE
-+ bool
-+ # Common Firmware Environment
-+
- mainmenu "Linux/MIPS Kernel Configuration"
-
- menu "Machine selection"
-@@ -44,6 +48,23 @@
- note that a kernel built with this option selected will not be
- able to run on normal units.
-
-+config BCM947XX
-+ bool "Support for BCM947xx based boards"
-+ select DMA_NONCOHERENT
-+ select HW_HAS_PCI
-+ select IRQ_CPU
-+ select SYS_HAS_CPU_MIPS32_R1
-+ select SYS_SUPPORTS_32BIT_KERNEL
-+ select SYS_SUPPORTS_LITTLE_ENDIAN
-+ select SSB
+Index: linux-2.6.25/arch/mips/Kconfig
+===================================================================
+--- linux-2.6.25.orig/arch/mips/Kconfig 2008-04-26 21:56:21.000000000 +0100
++++ linux-2.6.25/arch/mips/Kconfig 2008-04-26 22:08:17.000000000 +0100
+@@ -50,8 +50,10 @@ config BCM47XX
+ select SYS_SUPPORTS_32BIT_KERNEL
+ select SYS_SUPPORTS_LITTLE_ENDIAN
+ select SSB
+ select SSB_SERIAL
+ select SSB_DRIVER_MIPS
+ select SSB_DRIVER_EXTIF
+ select SSB_DRIVER_PCICORE
-+ select SSB_PCICORE_HOSTMODE
-+ select CFE
-+ select GENERIC_GPIO
-+ help
-+ Support for BCM947xx based boards
-+
- config MIPS_COBALT
- bool "Cobalt Server"
- select DMA_NONCOHERENT
-Index: linux-2.6.23/arch/mips/kernel/cpu-probe.c
-===================================================================
---- linux-2.6.23.orig/arch/mips/kernel/cpu-probe.c 2007-10-13 02:23:06.666508151 +0200
-+++ linux-2.6.23/arch/mips/kernel/cpu-probe.c 2007-10-13 02:23:11.210767122 +0200
-@@ -793,6 +793,28 @@
- }
+ select SSB_PCICORE_HOSTMODE if PCI
+ select GENERIC_GPIO
+ select SYS_HAS_EARLY_PRINTK
+@@ -790,6 +792,7 @@ config CSRC_SB1250
+ config CFE
+ bool
++ # Common Firmware Environment
-+static inline void cpu_probe_broadcom(struct cpuinfo_mips *c)
-+{
-+ decode_config1(c);
-+ switch (c->processor_id & 0xff00) {
-+ case PRID_IMP_BCM3302:
-+ c->cputype = CPU_BCM3302;
-+ c->isa_level = MIPS_CPU_ISA_M32R1;
-+ c->options = MIPS_CPU_TLB | MIPS_CPU_4KEX |
-+ MIPS_CPU_4K_CACHE | MIPS_CPU_COUNTER;
-+ break;
-+ case PRID_IMP_BCM4710:
-+ c->cputype = CPU_BCM4710;
-+ c->isa_level = MIPS_CPU_ISA_M32R1;
-+ c->options = MIPS_CPU_TLB | MIPS_CPU_4KEX |
-+ MIPS_CPU_4K_CACHE | MIPS_CPU_COUNTER;
-+ break;
-+ default:
-+ c->cputype = CPU_UNKNOWN;
-+ break;
-+ }
-+}
-+
- __init void cpu_probe(void)
- {
- struct cpuinfo_mips *c = ¤t_cpu_data;
-@@ -815,6 +837,9 @@
- case PRID_COMP_SIBYTE:
- cpu_probe_sibyte(c);
- break;
-+ case PRID_COMP_BROADCOM:
-+ cpu_probe_broadcom(c);
-+ break;
- case PRID_COMP_SANDCRAFT:
- cpu_probe_sandcraft(c);
- break;
-Index: linux-2.6.23/arch/mips/kernel/proc.c
-===================================================================
---- linux-2.6.23.orig/arch/mips/kernel/proc.c 2007-10-13 02:23:06.678508839 +0200
-+++ linux-2.6.23/arch/mips/kernel/proc.c 2007-10-13 02:23:11.210767122 +0200
-@@ -82,6 +82,8 @@
- [CPU_VR4181] = "NEC VR4181",
- [CPU_VR4181A] = "NEC VR4181A",
- [CPU_SR71000] = "Sandcraft SR71000",
-+ [CPU_BCM3302] = "Broadcom BCM3302",
-+ [CPU_BCM4710] = "Broadcom BCM4710",
- [CPU_PR4450] = "Philips PR4450",
- [CPU_LOONGSON2] = "ICT Loongson-2",
- };
-Index: linux-2.6.23/arch/mips/Makefile
-===================================================================
---- linux-2.6.23.orig/arch/mips/Makefile 2007-10-13 02:23:06.682509066 +0200
-+++ linux-2.6.23/arch/mips/Makefile 2007-10-13 02:23:11.210767122 +0200
-@@ -533,6 +533,18 @@
- load-$(CONFIG_SIBYTE_BIGSUR) := 0xffffffff80100000
-
- #
-+# Broadcom BCM47XX boards
-+#
-+core-$(CONFIG_BCM947XX) += arch/mips/bcm947xx/
-+cflags-$(CONFIG_BCM947XX) += -Iarch/mips/bcm947xx/include -Iinclude/asm-mips/mach-bcm947xx
-+load-$(CONFIG_BCM947XX) := 0xffffffff80001000
-+
-+#
-+# Common Firmware Environment
-+#
-+core-$(CONFIG_CFE) += arch/mips/cfe/
-+
-+#
- # SNI RM
- #
- core-$(CONFIG_SNI_RM) += arch/mips/sni/
-Index: linux-2.6.23/arch/mips/mm/tlbex.c
-===================================================================
---- linux-2.6.23.orig/arch/mips/mm/tlbex.c 2007-10-13 02:23:06.694509748 +0200
-+++ linux-2.6.23/arch/mips/mm/tlbex.c 2007-10-13 02:26:00.272401391 +0200
-@@ -895,6 +895,8 @@
- case CPU_AU1550:
- case CPU_AU1200:
- case CPU_PR4450:
-+ case CPU_BCM3302:
-+ case CPU_BCM4710:
- i_nop(p);
- tlbw(p);
- break;
-Index: linux-2.6.23/drivers/Kconfig
-===================================================================
---- linux-2.6.23.orig/drivers/Kconfig 2007-10-13 02:23:06.702510206 +0200
-+++ linux-2.6.23/drivers/Kconfig 2007-10-13 02:23:11.214767346 +0200
-@@ -58,6 +58,8 @@
-
- source "drivers/hwmon/Kconfig"
-
-+source "drivers/ssb/Kconfig"
-+
- source "drivers/mfd/Kconfig"
-
- source "drivers/media/Kconfig"
-Index: linux-2.6.23/include/asm-mips/bootinfo.h
+ config DMA_COHERENT
+ bool
+Index: linux-2.6.25/include/asm-mips/bootinfo.h
===================================================================
---- linux-2.6.23.orig/include/asm-mips/bootinfo.h 2007-10-13 02:23:06.718511119 +0200
-+++ linux-2.6.23/include/asm-mips/bootinfo.h 2007-10-13 02:23:11.214767346 +0200
-@@ -208,6 +208,12 @@
- #define MACH_GROUP_WINDRIVER 28 /* Windriver boards */
- #define MACH_WRPPMC 1
+--- linux-2.6.25.orig/include/asm-mips/bootinfo.h 2008-04-26 21:56:21.000000000 +0100
++++ linux-2.6.25/include/asm-mips/bootinfo.h 2008-04-26 21:57:10.000000000 +0100
+@@ -94,6 +94,12 @@
+ #define MACH_MSP7120_FPGA 5 /* PMC-Sierra MSP7120 Emulation */
+ #define MACH_MSP_OTHER 255 /* PMC-Sierra unknown board type */
+/*
+ * Valid machtype for group Broadcom
+
#define CL_SIZE COMMAND_LINE_SIZE
- const char *get_system_type(void);
-Index: linux-2.6.23/include/asm-mips/cpu.h
-===================================================================
---- linux-2.6.23.orig/include/asm-mips/cpu.h 2007-10-13 02:23:06.726511570 +0200
-+++ linux-2.6.23/include/asm-mips/cpu.h 2007-10-13 02:27:43.994312161 +0200
-@@ -106,6 +106,13 @@
- #define PRID_IMP_SR71000 0x0400
-
- /*
-+ * These are the PRID's for when 23:16 == PRID_COMP_BROADCOM
-+ */
-+
-+#define PRID_IMP_BCM4710 0x4000
-+#define PRID_IMP_BCM3302 0x9000
-+
-+/*
- * Definitions for 7:0 on legacy processors
- */
-
-@@ -217,8 +224,10 @@
- #define CPU_R14000 64
- #define CPU_LOONGSON1 65
- #define CPU_LOONGSON2 66
-+#define CPU_BCM3302 67
-+#define CPU_BCM4710 68
-
--#define CPU_LAST 66
-+#define CPU_LAST 68
-
- /*
- * ISA Level encodings
-Index: linux-2.6.23.1/drivers/Makefile
-===================================================================
---- linux-2.6.23.1.orig/drivers/Makefile 2008-01-27 04:34:31.000000000 +0100
-+++ linux-2.6.23.1/drivers/Makefile 2008-01-27 04:39:57.000000000 +0100
-@@ -89,3 +89,4 @@
- obj-$(CONFIG_PPC_PS3) += ps3/
- obj-$(CONFIG_OF) += of/
- obj-$(CONFIG_GPIO_DEVICE) += gpio/
-+obj-$(CONFIG_SSB) += ssb/
-Index: linux-2.6.23.1/include/linux/pci_ids.h
+ extern char *system_type;
+Index: linux-2.6.25/include/linux/pci_ids.h
===================================================================
---- linux-2.6.23.1.orig/include/linux/pci_ids.h 2008-01-27 04:55:18.000000000 +0100
-+++ linux-2.6.23.1/include/linux/pci_ids.h 2008-01-27 04:55:22.000000000 +0100
-@@ -1972,6 +1972,7 @@
+--- linux-2.6.25.orig/include/linux/pci_ids.h 2008-04-26 21:56:21.000000000 +0100
++++ linux-2.6.25/include/linux/pci_ids.h 2008-04-26 21:57:10.000000000 +0100
+@@ -2000,6 +2000,7 @@
#define PCI_DEVICE_ID_TIGON3_5906M 0x1713
#define PCI_DEVICE_ID_BCM4401 0x4401
#define PCI_DEVICE_ID_BCM4401B0 0x4402