summaryrefslogtreecommitdiff
path: root/target/linux/brcm47xx/patches-2.6.25/100-board_support.patch
diff options
context:
space:
mode:
authorPeter Denison <openwrt@marshadder.org>2008-04-25 20:49:40 +0000
committerPeter Denison <openwrt@marshadder.org>2008-04-25 20:49:40 +0000
commitb6b6155ec81c704cd70157753b38f90fd506e708 (patch)
tree0e3521dc9f267b5f130bb1ac1bcdae91c4be11cb /target/linux/brcm47xx/patches-2.6.25/100-board_support.patch
parent5f13c4844e0784ff40c1d15f5077d945ebf17f9b (diff)
downloadmtk-20170518-b6b6155ec81c704cd70157753b38f90fd506e708.zip
mtk-20170518-b6b6155ec81c704cd70157753b38f90fd506e708.tar.gz
mtk-20170518-b6b6155ec81c704cd70157753b38f90fd506e708.tar.bz2
First step to upgrade of brcm47xx to kernel version 2.6.25
SVN-Revision: 10939
Diffstat (limited to 'target/linux/brcm47xx/patches-2.6.25/100-board_support.patch')
-rw-r--r--target/linux/brcm47xx/patches-2.6.25/100-board_support.patch212
1 files changed, 212 insertions, 0 deletions
diff --git a/target/linux/brcm47xx/patches-2.6.25/100-board_support.patch b/target/linux/brcm47xx/patches-2.6.25/100-board_support.patch
new file mode 100644
index 0000000..7f28f34
--- /dev/null
+++ b/target/linux/brcm47xx/patches-2.6.25/100-board_support.patch
@@ -0,0 +1,212 @@
+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
++ select SSB_SERIAL
++ 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 @@
+ }
+
+
++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 = &current_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
+===================================================================
+--- 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
+
++/*
++ * 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);
+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
+===================================================================
+--- 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 @@
+ #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