kernel build cleanup
[openwrt.git] / target / linux / brcm47xx-2.6 / patches / 100-board_support.patch
1 diff -urN linux.old/arch/mips/Kconfig linux.dev/arch/mips/Kconfig
2 --- linux.old/arch/mips/Kconfig 2007-01-26 00:51:33.000000000 +0100
3 +++ linux.dev/arch/mips/Kconfig 2007-01-26 00:51:18.000000000 +0100
4 @@ -4,6 +4,10 @@
5         # Horrible source of confusion.  Die, die, die ...
6         select EMBEDDED
7  
8 +config CFE
9 +       bool
10 +       # Common Firmware Environment
11 +
12  mainmenu "Linux/MIPS Kernel Configuration"
13  
14  menu "Machine selection"
15 @@ -222,6 +226,22 @@
16          Members include the Acer PICA, MIPS Magnum 4000, MIPS Millenium and
17          Olivetti M700-10 workstations.
18  
19 +config BCM947XX
20 +       bool "Support for BCM947xx based boards"
21 +       select DMA_NONCOHERENT
22 +       select HW_HAS_PCI
23 +       select IRQ_CPU
24 +       select SYS_HAS_CPU_MIPS32_R1
25 +       select SYS_SUPPORTS_32BIT_KERNEL
26 +       select SYS_SUPPORTS_LITTLE_ENDIAN
27 +       select SSB
28 +       select SSB_SERIAL
29 +       select SSB_DRIVER_PCICORE
30 +       select SSB_PCICORE_HOSTMODE
31 +       select CFE
32 +       help
33 +        Support for BCM947xx based boards
34 +
35  config LASAT
36         bool "LASAT Networks platforms"
37         select DMA_NONCOHERENT
38 diff -urN linux.old/arch/mips/kernel/cpu-probe.c linux.dev/arch/mips/kernel/cpu-probe.c
39 --- linux.old/arch/mips/kernel/cpu-probe.c      2007-01-26 00:51:33.000000000 +0100
40 +++ linux.dev/arch/mips/kernel/cpu-probe.c      2007-01-25 23:34:01.000000000 +0100
41 @@ -723,6 +723,28 @@
42  }
43  
44  
45 +static inline void cpu_probe_broadcom(struct cpuinfo_mips *c)
46 +{
47 +       decode_config1(c);
48 +       switch (c->processor_id & 0xff00) {
49 +               case PRID_IMP_BCM3302:
50 +                       c->cputype = CPU_BCM3302;
51 +                       c->isa_level = MIPS_CPU_ISA_M32R1;
52 +                       c->options = MIPS_CPU_TLB | MIPS_CPU_4KEX |
53 +                                       MIPS_CPU_4K_CACHE | MIPS_CPU_COUNTER;
54 +               break;
55 +               case PRID_IMP_BCM4710:
56 +                       c->cputype = CPU_BCM4710;
57 +                       c->isa_level = MIPS_CPU_ISA_M32R1;
58 +                       c->options = MIPS_CPU_TLB | MIPS_CPU_4KEX |
59 +                                       MIPS_CPU_4K_CACHE | MIPS_CPU_COUNTER;
60 +               break;
61 +       default:
62 +               c->cputype = CPU_UNKNOWN;
63 +               break;
64 +       }
65 +}
66 +
67  __init void cpu_probe(void)
68  {
69         struct cpuinfo_mips *c = &current_cpu_data;
70 @@ -745,6 +767,9 @@
71         case PRID_COMP_SIBYTE:
72                 cpu_probe_sibyte(c);
73                 break;
74 +       case PRID_COMP_BROADCOM:
75 +               cpu_probe_broadcom(c);
76 +               break;
77         case PRID_COMP_SANDCRAFT:
78                 cpu_probe_sandcraft(c);
79                 break;
80 diff -urN linux.old/arch/mips/kernel/proc.c linux.dev/arch/mips/kernel/proc.c
81 --- linux.old/arch/mips/kernel/proc.c   2007-01-26 00:51:33.000000000 +0100
82 +++ linux.dev/arch/mips/kernel/proc.c   2007-01-25 23:34:01.000000000 +0100
83 @@ -83,6 +83,8 @@
84         [CPU_VR4181]    = "NEC VR4181",
85         [CPU_VR4181A]   = "NEC VR4181A",
86         [CPU_SR71000]   = "Sandcraft SR71000",
87 +       [CPU_BCM3302]   = "Broadcom BCM3302",
88 +       [CPU_BCM4710]   = "Broadcom BCM4710",
89         [CPU_PR4450]    = "Philips PR4450",
90  };
91  
92 diff -urN linux.old/arch/mips/Makefile linux.dev/arch/mips/Makefile
93 --- linux.old/arch/mips/Makefile        2007-01-26 00:51:33.000000000 +0100
94 +++ linux.dev/arch/mips/Makefile        2007-01-25 23:34:01.000000000 +0100
95 @@ -571,6 +571,18 @@
96  load-$(CONFIG_SIBYTE_BIGSUR)   := 0xffffffff80100000
97  
98  #
99 +# Broadcom BCM47XX boards
100 +#
101 +core-$(CONFIG_BCM947XX)                += arch/mips/bcm947xx/
102 +cflags-$(CONFIG_BCM947XX)      += -Iarch/mips/bcm947xx/include -Iinclude/asm-mips/mach-bcm947xx
103 +load-$(CONFIG_BCM947XX)                := 0xffffffff80001000
104 +
105 +#
106 +# Common Firmware Environment
107 +#
108 +core-$(CONFIG_CFE)             += arch/mips/cfe/
109 +
110 +#
111  # SNI RM200 PCI
112  #
113  core-$(CONFIG_SNI_RM200_PCI)   += arch/mips/sni/
114 diff -urN linux.old/arch/mips/mm/tlbex.c linux.dev/arch/mips/mm/tlbex.c
115 --- linux.old/arch/mips/mm/tlbex.c      2007-01-26 00:51:33.000000000 +0100
116 +++ linux.dev/arch/mips/mm/tlbex.c      2007-01-25 23:34:01.000000000 +0100
117 @@ -880,6 +880,8 @@
118         case CPU_4KSC:
119         case CPU_20KC:
120         case CPU_25KF:
121 +       case CPU_BCM3302:
122 +       case CPU_BCM4710:
123                 tlbw(p);
124                 break;
125  
126 diff -urN linux.old/drivers/Kconfig linux.dev/drivers/Kconfig
127 --- linux.old/drivers/Kconfig   2007-01-26 00:51:33.000000000 +0100
128 +++ linux.dev/drivers/Kconfig   2007-01-25 23:34:01.000000000 +0100
129 @@ -56,6 +56,8 @@
130  
131  source "drivers/hwmon/Kconfig"
132  
133 +source "drivers/ssb/Kconfig"
134 +
135  source "drivers/mfd/Kconfig"
136  
137  source "drivers/media/Kconfig"
138 diff -urN linux.old/drivers/Makefile linux.dev/drivers/Makefile
139 --- linux.old/drivers/Makefile  2007-01-26 00:51:33.000000000 +0100
140 +++ linux.dev/drivers/Makefile  2007-01-25 23:34:01.000000000 +0100
141 @@ -77,3 +77,4 @@
142  obj-$(CONFIG_SUPERH)           += sh/
143  obj-$(CONFIG_GENERIC_TIME)     += clocksource/
144  obj-$(CONFIG_DMA_ENGINE)       += dma/
145 +obj-$(CONFIG_SSB)              += ssb/
146 diff -urN linux.old/include/asm-mips/bootinfo.h linux.dev/include/asm-mips/bootinfo.h
147 --- linux.old/include/asm-mips/bootinfo.h       2007-01-26 00:51:33.000000000 +0100
148 +++ linux.dev/include/asm-mips/bootinfo.h       2007-01-25 23:34:01.000000000 +0100
149 @@ -212,6 +212,12 @@
150  #define MACH_GROUP_NEC_EMMA2RH 25      /* NEC EMMA2RH (was 23)         */
151  #define  MACH_NEC_MARKEINS     0       /* NEC EMMA2RH Mark-eins        */
152  
153 +/*
154 + * Valid machtype for group Broadcom
155 + */
156 +#define MACH_GROUP_BRCM                23      /* Broadcom                     */
157 +#define MACH_BCM47XX           1       /* Broadcom BCM47xx             */
158 +
159  #define CL_SIZE                        COMMAND_LINE_SIZE
160  
161  const char *get_system_type(void);
162 diff -urN linux.old/include/asm-mips/cpu.h linux.dev/include/asm-mips/cpu.h
163 --- linux.old/include/asm-mips/cpu.h    2007-01-26 00:51:33.000000000 +0100
164 +++ linux.dev/include/asm-mips/cpu.h    2007-01-25 23:34:01.000000000 +0100
165 @@ -104,6 +104,13 @@
166  #define PRID_IMP_SR71000        0x0400
167  
168  /*
169 + * These are the PRID's for when 23:16 == PRID_COMP_BROADCOM
170 + */
171 +
172 +#define PRID_IMP_BCM4710       0x4000
173 +#define PRID_IMP_BCM3302       0x9000
174 +
175 +/*
176   * Definitions for 7:0 on legacy processors
177   */
178  
179 @@ -200,7 +207,9 @@
180  #define CPU_SB1A               62
181  #define CPU_74K                        63
182  #define CPU_R14000             64
183 -#define CPU_LAST               64
184 +#define CPU_BCM3302            65
185 +#define CPU_BCM4710            66
186 +#define CPU_LAST               66
187  
188  /*
189   * ISA Level encodings
190 diff -urN linux.old/include/linux/pci_ids.h linux.dev/include/linux/pci_ids.h
191 --- linux.old/include/linux/pci_ids.h   2007-01-26 00:51:33.000000000 +0100
192 +++ linux.dev/include/linux/pci_ids.h   2007-01-25 23:34:01.000000000 +0100
193 @@ -1950,6 +1950,7 @@
194  #define PCI_DEVICE_ID_TIGON3_5906M     0x1713
195  #define PCI_DEVICE_ID_BCM4401          0x4401
196  #define PCI_DEVICE_ID_BCM4401B0                0x4402
197 +#define PCI_DEVICE_ID_BCM4713          0x4713
198  
199  #define PCI_VENDOR_ID_TOPIC            0x151f
200  #define PCI_DEVICE_ID_TOPIC_TP560      0x0000
201