1 Index: linux-2.6.23/arch/mips/Kconfig
2 ===================================================================
3 --- linux-2.6.23.orig/arch/mips/Kconfig 2007-10-13 02:23:06.662507926 +0200
4 +++ linux-2.6.23/arch/mips/Kconfig 2007-10-13 02:23:41.484492317 +0200
6 # Horrible source of confusion. Die, die, die ...
11 + # Common Firmware Environment
13 mainmenu "Linux/MIPS Kernel Configuration"
15 menu "Machine selection"
17 note that a kernel built with this option selected will not be
18 able to run on normal units.
21 + bool "Support for BCM947xx based boards"
22 + select DMA_NONCOHERENT
25 + select SYS_HAS_CPU_MIPS32_R1
26 + select SYS_SUPPORTS_32BIT_KERNEL
27 + select SYS_SUPPORTS_LITTLE_ENDIAN
30 + select SSB_DRIVER_PCICORE
31 + select SSB_PCICORE_HOSTMODE
35 + Support for BCM947xx based boards
39 select DMA_NONCOHERENT
40 Index: linux-2.6.23/arch/mips/kernel/cpu-probe.c
41 ===================================================================
42 --- linux-2.6.23.orig/arch/mips/kernel/cpu-probe.c 2007-10-13 02:23:06.666508151 +0200
43 +++ linux-2.6.23/arch/mips/kernel/cpu-probe.c 2007-10-13 02:23:11.210767122 +0200
48 +static inline void cpu_probe_broadcom(struct cpuinfo_mips *c)
51 + switch (c->processor_id & 0xff00) {
52 + case PRID_IMP_BCM3302:
53 + c->cputype = CPU_BCM3302;
54 + c->isa_level = MIPS_CPU_ISA_M32R1;
55 + c->options = MIPS_CPU_TLB | MIPS_CPU_4KEX |
56 + MIPS_CPU_4K_CACHE | MIPS_CPU_COUNTER;
58 + case PRID_IMP_BCM4710:
59 + c->cputype = CPU_BCM4710;
60 + c->isa_level = MIPS_CPU_ISA_M32R1;
61 + c->options = MIPS_CPU_TLB | MIPS_CPU_4KEX |
62 + MIPS_CPU_4K_CACHE | MIPS_CPU_COUNTER;
65 + c->cputype = CPU_UNKNOWN;
70 __init void cpu_probe(void)
72 struct cpuinfo_mips *c = ¤t_cpu_data;
74 case PRID_COMP_SIBYTE:
77 + case PRID_COMP_BROADCOM:
78 + cpu_probe_broadcom(c);
80 case PRID_COMP_SANDCRAFT:
81 cpu_probe_sandcraft(c);
83 Index: linux-2.6.23/arch/mips/kernel/proc.c
84 ===================================================================
85 --- linux-2.6.23.orig/arch/mips/kernel/proc.c 2007-10-13 02:23:06.678508839 +0200
86 +++ linux-2.6.23/arch/mips/kernel/proc.c 2007-10-13 02:23:11.210767122 +0200
88 [CPU_VR4181] = "NEC VR4181",
89 [CPU_VR4181A] = "NEC VR4181A",
90 [CPU_SR71000] = "Sandcraft SR71000",
91 + [CPU_BCM3302] = "Broadcom BCM3302",
92 + [CPU_BCM4710] = "Broadcom BCM4710",
93 [CPU_PR4450] = "Philips PR4450",
94 [CPU_LOONGSON2] = "ICT Loongson-2",
96 Index: linux-2.6.23/arch/mips/Makefile
97 ===================================================================
98 --- linux-2.6.23.orig/arch/mips/Makefile 2007-10-13 02:23:06.682509066 +0200
99 +++ linux-2.6.23/arch/mips/Makefile 2007-10-13 02:23:11.210767122 +0200
101 load-$(CONFIG_SIBYTE_BIGSUR) := 0xffffffff80100000
104 +# Broadcom BCM47XX boards
106 +core-$(CONFIG_BCM947XX) += arch/mips/bcm947xx/
107 +cflags-$(CONFIG_BCM947XX) += -Iarch/mips/bcm947xx/include -Iinclude/asm-mips/mach-bcm947xx
108 +load-$(CONFIG_BCM947XX) := 0xffffffff80001000
111 +# Common Firmware Environment
113 +core-$(CONFIG_CFE) += arch/mips/cfe/
118 core-$(CONFIG_SNI_RM) += arch/mips/sni/
119 Index: linux-2.6.23/arch/mips/mm/tlbex.c
120 ===================================================================
121 --- linux-2.6.23.orig/arch/mips/mm/tlbex.c 2007-10-13 02:23:06.694509748 +0200
122 +++ linux-2.6.23/arch/mips/mm/tlbex.c 2007-10-13 02:26:00.272401391 +0200
132 Index: linux-2.6.23/drivers/Kconfig
133 ===================================================================
134 --- linux-2.6.23.orig/drivers/Kconfig 2007-10-13 02:23:06.702510206 +0200
135 +++ linux-2.6.23/drivers/Kconfig 2007-10-13 02:23:11.214767346 +0200
138 source "drivers/hwmon/Kconfig"
140 +source "drivers/ssb/Kconfig"
142 source "drivers/mfd/Kconfig"
144 source "drivers/media/Kconfig"
145 Index: linux-2.6.23/include/asm-mips/bootinfo.h
146 ===================================================================
147 --- linux-2.6.23.orig/include/asm-mips/bootinfo.h 2007-10-13 02:23:06.718511119 +0200
148 +++ linux-2.6.23/include/asm-mips/bootinfo.h 2007-10-13 02:23:11.214767346 +0200
150 #define MACH_GROUP_WINDRIVER 28 /* Windriver boards */
151 #define MACH_WRPPMC 1
154 + * Valid machtype for group Broadcom
156 +#define MACH_GROUP_BRCM 23 /* Broadcom */
157 +#define MACH_BCM47XX 1 /* Broadcom BCM47xx */
159 #define CL_SIZE COMMAND_LINE_SIZE
161 const char *get_system_type(void);
162 Index: linux-2.6.23/include/asm-mips/cpu.h
163 ===================================================================
164 --- linux-2.6.23.orig/include/asm-mips/cpu.h 2007-10-13 02:23:06.726511570 +0200
165 +++ linux-2.6.23/include/asm-mips/cpu.h 2007-10-13 02:27:43.994312161 +0200
167 #define PRID_IMP_SR71000 0x0400
170 + * These are the PRID's for when 23:16 == PRID_COMP_BROADCOM
173 +#define PRID_IMP_BCM4710 0x4000
174 +#define PRID_IMP_BCM3302 0x9000
177 * Definitions for 7:0 on legacy processors
181 #define CPU_R14000 64
182 #define CPU_LOONGSON1 65
183 #define CPU_LOONGSON2 66
184 +#define CPU_BCM3302 67
185 +#define CPU_BCM4710 68
191 * ISA Level encodings
192 Index: linux-2.6.23.1/drivers/Makefile
193 ===================================================================
194 --- linux-2.6.23.1.orig/drivers/Makefile 2008-01-27 04:34:31.000000000 +0100
195 +++ linux-2.6.23.1/drivers/Makefile 2008-01-27 04:39:57.000000000 +0100
197 obj-$(CONFIG_PPC_PS3) += ps3/
198 obj-$(CONFIG_OF) += of/
199 obj-$(CONFIG_GPIO_DEVICE) += gpio/
200 +obj-$(CONFIG_SSB) += ssb/
201 Index: linux-2.6.23.1/include/linux/pci_ids.h
202 ===================================================================
203 --- linux-2.6.23.1.orig/include/linux/pci_ids.h 2008-01-27 04:55:18.000000000 +0100
204 +++ linux-2.6.23.1/include/linux/pci_ids.h 2008-01-27 04:55:22.000000000 +0100
205 @@ -1972,6 +1972,7 @@
206 #define PCI_DEVICE_ID_TIGON3_5906M 0x1713
207 #define PCI_DEVICE_ID_BCM4401 0x4401
208 #define PCI_DEVICE_ID_BCM4401B0 0x4402
209 +#define PCI_DEVICE_ID_BCM4713 0x4713
211 #define PCI_VENDOR_ID_TOPIC 0x151f
212 #define PCI_DEVICE_ID_TOPIC_TP560 0x0000