2007-06-21 23:41:09 +00:00
|
|
|
diff -urN linux.old/arch/mips/Kconfig linux.dev/arch/mips/Kconfig
|
|
|
|
--- linux.old/arch/mips/Kconfig 2007-01-26 00:51:33.000000000 +0100
|
|
|
|
+++ linux.dev/arch/mips/Kconfig 2007-01-26 00:51:18.000000000 +0100
|
2007-02-08 02:34:18 +00:00
|
|
|
@@ -4,6 +4,10 @@
|
|
|
|
# Horrible source of confusion. Die, die, die ...
|
|
|
|
select EMBEDDED
|
|
|
|
|
|
|
|
+config CFE
|
|
|
|
+ bool
|
|
|
|
+ # Common Firmware Environment
|
2007-01-07 15:35:36 +00:00
|
|
|
+
|
2007-02-08 02:34:18 +00:00
|
|
|
mainmenu "Linux/MIPS Kernel Configuration"
|
|
|
|
|
|
|
|
menu "Machine selection"
|
2007-06-21 23:41:09 +00:00
|
|
|
@@ -240,6 +240,23 @@
|
2007-02-08 02:34:18 +00:00
|
|
|
Members include the Acer PICA, MIPS Magnum 4000, MIPS Millenium and
|
|
|
|
Olivetti M700-10 workstations.
|
|
|
|
|
|
|
|
+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
|
|
|
|
+ select SSB_SERIAL
|
|
|
|
+ select SSB_DRIVER_PCICORE
|
|
|
|
+ select SSB_PCICORE_HOSTMODE
|
|
|
|
+ select CFE
|
2007-05-20 19:46:50 +00:00
|
|
|
+ select GENERIC_GPIO
|
2007-02-08 02:34:18 +00:00
|
|
|
+ help
|
|
|
|
+ Support for BCM947xx based boards
|
2007-01-07 15:35:36 +00:00
|
|
|
+
|
2007-02-08 02:34:18 +00:00
|
|
|
config LASAT
|
|
|
|
bool "LASAT Networks platforms"
|
|
|
|
select DMA_NONCOHERENT
|
2007-06-21 23:41:09 +00:00
|
|
|
diff -urN linux.old/arch/mips/kernel/cpu-probe.c linux.dev/arch/mips/kernel/cpu-probe.c
|
|
|
|
--- linux.old/arch/mips/kernel/cpu-probe.c 2007-01-26 00:51:33.000000000 +0100
|
|
|
|
+++ linux.dev/arch/mips/kernel/cpu-probe.c 2007-01-25 23:34:01.000000000 +0100
|
2007-05-26 15:54:22 +00:00
|
|
|
@@ -711,6 +711,28 @@
|
2007-02-08 02:34:18 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
+static inline void cpu_probe_broadcom(struct cpuinfo_mips *c)
|
2007-01-07 15:35:36 +00:00
|
|
|
+{
|
2007-02-08 02:34:18 +00:00
|
|
|
+ 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;
|
2007-01-07 15:35:36 +00:00
|
|
|
+ break;
|
2007-02-08 02:34:18 +00:00
|
|
|
+ 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;
|
2007-01-26 20:30:32 +00:00
|
|
|
+ break;
|
2007-01-07 15:35:36 +00:00
|
|
|
+ default:
|
2007-02-08 02:34:18 +00:00
|
|
|
+ c->cputype = CPU_UNKNOWN;
|
2007-01-26 20:30:32 +00:00
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
2007-02-08 02:34:18 +00:00
|
|
|
__init void cpu_probe(void)
|
|
|
|
{
|
|
|
|
struct cpuinfo_mips *c = ¤t_cpu_data;
|
2007-05-26 15:54:22 +00:00
|
|
|
@@ -733,6 +755,9 @@
|
2007-02-08 02:34:18 +00:00
|
|
|
case PRID_COMP_SIBYTE:
|
|
|
|
cpu_probe_sibyte(c);
|
|
|
|
break;
|
|
|
|
+ case PRID_COMP_BROADCOM:
|
|
|
|
+ cpu_probe_broadcom(c);
|
2007-01-26 20:30:32 +00:00
|
|
|
+ break;
|
2007-02-08 02:34:18 +00:00
|
|
|
case PRID_COMP_SANDCRAFT:
|
|
|
|
cpu_probe_sandcraft(c);
|
|
|
|
break;
|
2007-06-21 23:41:09 +00:00
|
|
|
diff -urN linux.old/arch/mips/kernel/proc.c linux.dev/arch/mips/kernel/proc.c
|
|
|
|
--- linux.old/arch/mips/kernel/proc.c 2007-01-26 00:51:33.000000000 +0100
|
|
|
|
+++ linux.dev/arch/mips/kernel/proc.c 2007-01-25 23:34:01.000000000 +0100
|
2007-02-08 02:34:18 +00:00
|
|
|
@@ -83,6 +83,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",
|
|
|
|
};
|
|
|
|
|
2007-06-21 23:41:09 +00:00
|
|
|
diff -urN linux.old/arch/mips/Makefile linux.dev/arch/mips/Makefile
|
|
|
|
--- linux.old/arch/mips/Makefile 2007-01-26 00:51:33.000000000 +0100
|
|
|
|
+++ linux.dev/arch/mips/Makefile 2007-01-25 23:34:01.000000000 +0100
|
|
|
|
@@ -576,6 +576,18 @@
|
2007-02-08 02:34:18 +00:00
|
|
|
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
|
2007-01-07 15:35:36 +00:00
|
|
|
+
|
2007-02-08 02:34:18 +00:00
|
|
|
+#
|
|
|
|
+# Common Firmware Environment
|
|
|
|
+#
|
|
|
|
+core-$(CONFIG_CFE) += arch/mips/cfe/
|
2007-01-07 15:35:36 +00:00
|
|
|
+
|
2007-02-08 02:34:18 +00:00
|
|
|
+#
|
2007-05-26 15:54:22 +00:00
|
|
|
# SNI RM
|
2007-02-08 02:34:18 +00:00
|
|
|
#
|
2007-05-26 15:54:22 +00:00
|
|
|
core-$(CONFIG_SNI_RM) += arch/mips/sni/
|
2007-06-21 23:41:09 +00:00
|
|
|
diff -urN linux.old/arch/mips/mm/tlbex.c linux.dev/arch/mips/mm/tlbex.c
|
|
|
|
--- linux.old/arch/mips/mm/tlbex.c 2007-01-26 00:51:33.000000000 +0100
|
|
|
|
+++ linux.dev/arch/mips/mm/tlbex.c 2007-01-25 23:34:01.000000000 +0100
|
2007-05-26 15:54:22 +00:00
|
|
|
@@ -892,6 +892,8 @@
|
2007-02-08 02:34:18 +00:00
|
|
|
case CPU_4KSC:
|
|
|
|
case CPU_20KC:
|
|
|
|
case CPU_25KF:
|
|
|
|
+ case CPU_BCM3302:
|
|
|
|
+ case CPU_BCM4710:
|
|
|
|
tlbw(p);
|
|
|
|
break;
|
|
|
|
|
2007-06-21 23:41:09 +00:00
|
|
|
diff -urN linux.old/drivers/Kconfig linux.dev/drivers/Kconfig
|
|
|
|
--- linux.old/drivers/Kconfig 2007-01-26 00:51:33.000000000 +0100
|
|
|
|
+++ linux.dev/drivers/Kconfig 2007-01-25 23:34:01.000000000 +0100
|
2007-02-08 02:34:18 +00:00
|
|
|
@@ -56,6 +56,8 @@
|
|
|
|
|
|
|
|
source "drivers/hwmon/Kconfig"
|
|
|
|
|
|
|
|
+source "drivers/ssb/Kconfig"
|
2007-01-07 15:35:36 +00:00
|
|
|
+
|
2007-02-08 02:34:18 +00:00
|
|
|
source "drivers/mfd/Kconfig"
|
|
|
|
|
|
|
|
source "drivers/media/Kconfig"
|
2007-06-21 23:41:09 +00:00
|
|
|
diff -urN linux.old/drivers/Makefile linux.dev/drivers/Makefile
|
|
|
|
--- linux.old/drivers/Makefile 2007-01-26 00:51:33.000000000 +0100
|
|
|
|
+++ linux.dev/drivers/Makefile 2007-01-25 23:34:01.000000000 +0100
|
2007-05-26 15:54:22 +00:00
|
|
|
@@ -81,3 +81,4 @@
|
2007-02-08 02:34:18 +00:00
|
|
|
obj-$(CONFIG_DMA_ENGINE) += dma/
|
2007-05-26 15:54:22 +00:00
|
|
|
obj-$(CONFIG_HID) += hid/
|
|
|
|
obj-$(CONFIG_PPC_PS3) += ps3/
|
2007-02-08 02:34:18 +00:00
|
|
|
+obj-$(CONFIG_SSB) += ssb/
|
2007-06-21 23:41:09 +00:00
|
|
|
diff -urN linux.old/include/asm-mips/bootinfo.h linux.dev/include/asm-mips/bootinfo.h
|
|
|
|
--- linux.old/include/asm-mips/bootinfo.h 2007-01-26 00:51:33.000000000 +0100
|
|
|
|
+++ linux.dev/include/asm-mips/bootinfo.h 2007-01-25 23:34:01.000000000 +0100
|
2007-05-26 15:54:22 +00:00
|
|
|
@@ -213,6 +213,12 @@
|
2007-01-07 15:35:36 +00:00
|
|
|
#define MACH_GROUP_NEC_EMMA2RH 25 /* NEC EMMA2RH (was 23) */
|
|
|
|
#define MACH_NEC_MARKEINS 0 /* NEC EMMA2RH Mark-eins */
|
|
|
|
|
|
|
|
+/*
|
|
|
|
+ * Valid machtype for group Broadcom
|
|
|
|
+ */
|
|
|
|
+#define MACH_GROUP_BRCM 23 /* Broadcom */
|
|
|
|
+#define MACH_BCM47XX 1 /* Broadcom BCM47xx */
|
|
|
|
+
|
|
|
|
#define CL_SIZE COMMAND_LINE_SIZE
|
|
|
|
|
|
|
|
const char *get_system_type(void);
|
2007-06-21 23:41:09 +00:00
|
|
|
diff -urN linux.old/include/asm-mips/cpu.h linux.dev/include/asm-mips/cpu.h
|
|
|
|
--- linux.old/include/asm-mips/cpu.h 2007-01-26 00:51:33.000000000 +0100
|
|
|
|
+++ linux.dev/include/asm-mips/cpu.h 2007-01-25 23:34:01.000000000 +0100
|
2007-01-07 15:35:36 +00:00
|
|
|
@@ -104,6 +104,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
|
|
|
|
*/
|
|
|
|
|
|
|
|
@@ -200,7 +207,9 @@
|
|
|
|
#define CPU_SB1A 62
|
|
|
|
#define CPU_74K 63
|
|
|
|
#define CPU_R14000 64
|
|
|
|
-#define CPU_LAST 64
|
|
|
|
+#define CPU_BCM3302 65
|
|
|
|
+#define CPU_BCM4710 66
|
|
|
|
+#define CPU_LAST 66
|
|
|
|
|
|
|
|
/*
|
|
|
|
* ISA Level encodings
|
2007-06-21 23:41:09 +00:00
|
|
|
diff -urN linux.old/include/linux/pci_ids.h linux.dev/include/linux/pci_ids.h
|
|
|
|
--- linux.old/include/linux/pci_ids.h 2007-01-26 00:51:33.000000000 +0100
|
|
|
|
+++ linux.dev/include/linux/pci_ids.h 2007-01-25 23:34:01.000000000 +0100
|
|
|
|
@@ -1981,6 +1981,7 @@
|
2007-01-07 15:35:36 +00:00
|
|
|
#define PCI_DEVICE_ID_TIGON3_5906M 0x1713
|
|
|
|
#define PCI_DEVICE_ID_BCM4401 0x4401
|
|
|
|
#define PCI_DEVICE_ID_BCM4401B0 0x4402
|
|
|
|
+#define PCI_DEVICE_ID_BCM4713 0x4713
|
|
|
|
|
|
|
|
#define PCI_VENDOR_ID_TOPIC 0x151f
|
|
|
|
#define PCI_DEVICE_ID_TOPIC_TP560 0x0000
|
2007-06-21 23:41:09 +00:00
|
|
|
|