aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2007-12-20 23:39:26 -0500
committerJosh Boyer <jwboyer@linux.vnet.ibm.com>2007-12-23 14:13:14 -0500
commit619740384cebe2601a8d307654a22d9ed85f2fcb (patch)
treea354c4b83554f2c718afea3ba6aa91d50702e03d /arch
parent9dae8afdf212d39bc7c25f1b1ca9b10f10f6beaa (diff)
[POWERPC] 4xx: EP405 boards support for arch/powerpc
Brings EP405 support to arch/powerpc. The IRQ routing for the CPLD comes from a device-tree property, PCI is working to the point where I can see the video card, USB device, and south bridge. This should work with both EP405 and EP405PC. I've not totally figured out how IRQs are wired on this hardware though, thus at this stage, expect only USB interrupts working, pretty much the same as what arch/ppc did. Also, the flash, nvram, rtc and temp control still have to be wired. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/powerpc/boot/4xx.c55
-rw-r--r--arch/powerpc/boot/4xx.h1
-rw-r--r--arch/powerpc/boot/Makefile3
-rw-r--r--arch/powerpc/boot/dts/ep405.dts221
-rw-r--r--arch/powerpc/boot/ep405.c74
-rw-r--r--arch/powerpc/boot/treeboot-walnut.c49
-rwxr-xr-xarch/powerpc/boot/wrapper2
-rw-r--r--arch/powerpc/configs/ep405_defconfig951
-rw-r--r--arch/powerpc/platforms/40x/Kconfig22
-rw-r--r--arch/powerpc/platforms/40x/Makefile1
-rw-r--r--arch/powerpc/platforms/40x/ep405.c124
11 files changed, 1437 insertions, 66 deletions
diff --git a/arch/powerpc/boot/4xx.c b/arch/powerpc/boot/4xx.c
index 3d0e4f921f1d..852992b146e3 100644
--- a/arch/powerpc/boot/4xx.c
+++ b/arch/powerpc/boot/4xx.c
@@ -179,13 +179,16 @@ void ibm40x_dbcr_reset(void)
179#define EMAC_RESET 0x20000000 179#define EMAC_RESET 0x20000000
180void ibm4xx_quiesce_eth(u32 *emac0, u32 *emac1) 180void ibm4xx_quiesce_eth(u32 *emac0, u32 *emac1)
181{ 181{
182 /* Quiesce the MAL and EMAC(s) since PIBS/OpenBIOS don't do this for us */ 182 /* Quiesce the MAL and EMAC(s) since PIBS/OpenBIOS don't
183 * do this for us
184 */
183 if (emac0) 185 if (emac0)
184 *emac0 = EMAC_RESET; 186 *emac0 = EMAC_RESET;
185 if (emac1) 187 if (emac1)
186 *emac1 = EMAC_RESET; 188 *emac1 = EMAC_RESET;
187 189
188 mtdcr(DCRN_MAL0_CFG, MAL_RESET); 190 mtdcr(DCRN_MAL0_CFG, MAL_RESET);
191 while (mfdcr(DCRN_MAL0_CFG) & MAL_RESET) {};
189} 192}
190 193
191/* Read 4xx EBC bus bridge registers to get mappings of the peripheral 194/* Read 4xx EBC bus bridge registers to get mappings of the peripheral
@@ -298,3 +301,53 @@ void ibm440ep_fixup_clocks(unsigned int sysclk, unsigned int ser_clk)
298 dt_fixup_clock("/plb/opb/serial@ef600500", uart0); 301 dt_fixup_clock("/plb/opb/serial@ef600500", uart0);
299 dt_fixup_clock("/plb/opb/serial@ef600600", uart0); 302 dt_fixup_clock("/plb/opb/serial@ef600600", uart0);
300} 303}
304
305void ibm405gp_fixup_clocks(unsigned int sysclk, unsigned int ser_clk)
306{
307 u32 pllmr = mfdcr(DCRN_CPC0_PLLMR);
308 u32 cpc0_cr0 = mfdcr(DCRN_405_CPC0_CR0);
309 u32 cpc0_cr1 = mfdcr(DCRN_405_CPC0_CR1);
310 u32 cpu, plb, opb, ebc, tb, uart0, uart1, m;
311 u32 fwdv, fbdv, cbdv, opdv, epdv, udiv;
312
313 fwdv = (8 - ((pllmr & 0xe0000000) >> 29));
314 fbdv = (pllmr & 0x1e000000) >> 25;
315 cbdv = ((pllmr & 0x00060000) >> 17) + 1;
316 opdv = ((pllmr & 0x00018000) >> 15) + 1;
317 epdv = ((pllmr & 0x00001800) >> 13) + 2;
318 udiv = ((cpc0_cr0 & 0x3e) >> 1) + 1;
319
320 m = fwdv * fbdv * cbdv;
321
322 cpu = sysclk * m / fwdv;
323 plb = cpu / cbdv;
324 opb = plb / opdv;
325 ebc = plb / epdv;
326
327 if (cpc0_cr0 & 0x80) {
328 /* uart0 uses the external clock */
329 uart0 = ser_clk;
330 } else {
331 uart0 = cpu / udiv;
332 }
333
334 if (cpc0_cr0 & 0x40) {
335 /* uart1 uses the external clock */
336 uart1 = ser_clk;
337 } else {
338 uart1 = cpu / udiv;
339 }
340
341 /* setup the timebase clock to tick at the cpu frequency */
342 cpc0_cr1 = cpc0_cr1 & ~0x00800000;
343 mtdcr(DCRN_405_CPC0_CR1, cpc0_cr1);
344 tb = cpu;
345
346 dt_fixup_cpu_clocks(cpu, tb, 0);
347 dt_fixup_clock("/plb", plb);
348 dt_fixup_clock("/plb/opb", opb);
349 dt_fixup_clock("/plb/ebc", ebc);
350 dt_fixup_clock("/plb/opb/serial@ef600300", uart0);
351 dt_fixup_clock("/plb/opb/serial@ef600400", uart1);
352}
353
diff --git a/arch/powerpc/boot/4xx.h b/arch/powerpc/boot/4xx.h
index adba6a599a93..6af14a01c7f0 100644
--- a/arch/powerpc/boot/4xx.h
+++ b/arch/powerpc/boot/4xx.h
@@ -18,5 +18,6 @@ void ibm40x_dbcr_reset(void);
18void ibm4xx_quiesce_eth(u32 *emac0, u32 *emac1); 18void ibm4xx_quiesce_eth(u32 *emac0, u32 *emac1);
19void ibm4xx_fixup_ebc_ranges(const char *ebc); 19void ibm4xx_fixup_ebc_ranges(const char *ebc);
20void ibm440ep_fixup_clocks(unsigned int sysclk, unsigned int ser_clk); 20void ibm440ep_fixup_clocks(unsigned int sysclk, unsigned int ser_clk);
21void ibm405gp_fixup_clocks(unsigned int sysclk, unsigned int ser_clk);
21 22
22#endif /* _POWERPC_BOOT_4XX_H_ */ 23#endif /* _POWERPC_BOOT_4XX_H_ */
diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
index 9149bb8ed03c..8e5bdd35fd48 100644
--- a/arch/powerpc/boot/Makefile
+++ b/arch/powerpc/boot/Makefile
@@ -58,7 +58,7 @@ src-plat := of.c cuboot-52xx.c cuboot-83xx.c cuboot-85xx.c holly.c \
58 cuboot-ebony.c treeboot-ebony.c prpmc2800.c \ 58 cuboot-ebony.c treeboot-ebony.c prpmc2800.c \
59 ps3-head.S ps3-hvcall.S ps3.c treeboot-bamboo.c cuboot-8xx.c \ 59 ps3-head.S ps3-hvcall.S ps3.c treeboot-bamboo.c cuboot-8xx.c \
60 cuboot-pq2.c cuboot-sequoia.c treeboot-walnut.c cuboot-bamboo.c \ 60 cuboot-pq2.c cuboot-sequoia.c treeboot-walnut.c cuboot-bamboo.c \
61 fixed-head.S ep88xc.c cuboot-hpc2.c 61 fixed-head.S ep88xc.c cuboot-hpc2.c ep405.c
62src-boot := $(src-wlib) $(src-plat) empty.c 62src-boot := $(src-wlib) $(src-plat) empty.c
63 63
64src-boot := $(addprefix $(obj)/, $(src-boot)) 64src-boot := $(addprefix $(obj)/, $(src-boot))
@@ -189,6 +189,7 @@ image-$(CONFIG_DEFAULT_UIMAGE) += uImage
189ifneq ($(CONFIG_DEVICE_TREE),"") 189ifneq ($(CONFIG_DEVICE_TREE),"")
190image-$(CONFIG_PPC_8xx) += cuImage.8xx 190image-$(CONFIG_PPC_8xx) += cuImage.8xx
191image-$(CONFIG_PPC_EP88XC) += zImage.ep88xc 191image-$(CONFIG_PPC_EP88XC) += zImage.ep88xc
192image-$(CONFIG_EP405) += zImage.ep405
192image-$(CONFIG_8260) += cuImage.pq2 193image-$(CONFIG_8260) += cuImage.pq2
193image-$(CONFIG_PPC_MPC52xx) += cuImage.52xx 194image-$(CONFIG_PPC_MPC52xx) += cuImage.52xx
194image-$(CONFIG_PPC_83xx) += cuImage.83xx 195image-$(CONFIG_PPC_83xx) += cuImage.83xx
diff --git a/arch/powerpc/boot/dts/ep405.dts b/arch/powerpc/boot/dts/ep405.dts
new file mode 100644
index 000000000000..007f3c24d3f2
--- /dev/null
+++ b/arch/powerpc/boot/dts/ep405.dts
@@ -0,0 +1,221 @@
1/*
2 * Device Tree Source for EP405
3 *
4 * Copyright 2007 IBM Corp.
5 * Benjamin Herrenschmidt <benh@kernel.crashing.org>
6 *
7 * This file is licensed under the terms of the GNU General Public
8 * License version 2. This program is licensed "as is" without
9 * any warranty of any kind, whether express or implied.
10 */
11
12/ {
13 #address-cells = <1>;
14 #size-cells = <1>;
15 model = "ep405";
16 compatible = "ep405";
17 dcr-parent = <&/cpus/PowerPC,405GP@0>;
18
19 cpus {
20 #address-cells = <1>;
21 #size-cells = <0>;
22
23 PowerPC,405GP@0 {
24 device_type = "cpu";
25 reg = <0>;
26 clock-frequency = <bebc200>; /* Filled in by zImage */
27 timebase-frequency = <0>; /* Filled in by zImage */
28 i-cache-line-size = <20>;
29 d-cache-line-size = <20>;
30 i-cache-size = <4000>;
31 d-cache-size = <4000>;
32 dcr-controller;
33 dcr-access-method = "native";
34 };
35 };
36
37 memory {
38 device_type = "memory";
39 reg = <0 0>; /* Filled in by zImage */
40 };
41
42 UIC0: interrupt-controller {
43 compatible = "ibm,uic";
44 interrupt-controller;
45 cell-index = <0>;
46 dcr-reg = <0c0 9>;
47 #address-cells = <0>;
48 #size-cells = <0>;
49 #interrupt-cells = <2>;
50 };
51
52 plb {
53 compatible = "ibm,plb3";
54 #address-cells = <1>;
55 #size-cells = <1>;
56 ranges;
57 clock-frequency = <0>; /* Filled in by zImage */
58
59 SDRAM0: memory-controller {
60 compatible = "ibm,sdram-405gp";
61 dcr-reg = <010 2>;
62 };
63
64 MAL: mcmal {
65 compatible = "ibm,mcmal-405gp", "ibm,mcmal";
66 dcr-reg = <180 62>;
67 num-tx-chans = <1>;
68 num-rx-chans = <1>;
69 interrupt-parent = <&UIC0>;
70 interrupts = <
71 b 4 /* TXEOB */
72 c 4 /* RXEOB */
73 a 4 /* SERR */
74 d 4 /* TXDE */
75 e 4 /* RXDE */>;
76 };
77
78 POB0: opb {
79 compatible = "ibm,opb-405gp", "ibm,opb";
80 #address-cells = <1>;
81 #size-cells = <1>;
82 ranges = <ef600000 ef600000 a00000>;
83 dcr-reg = <0a0 5>;
84 clock-frequency = <0>; /* Filled in by zImage */
85
86 UART0: serial@ef600300 {
87 device_type = "serial";
88 compatible = "ns16550";
89 reg = <ef600300 8>;
90 virtual-reg = <ef600300>;
91 clock-frequency = <0>; /* Filled in by zImage */
92 current-speed = <2580>;
93 interrupt-parent = <&UIC0>;
94 interrupts = <0 4>;
95 };
96
97 UART1: serial@ef600400 {
98 device_type = "serial";
99 compatible = "ns16550";
100 reg = <ef600400 8>;
101 virtual-reg = <ef600400>;
102 clock-frequency = <0>; /* Filled in by zImage */
103 current-speed = <2580>;
104 interrupt-parent = <&UIC0>;
105 interrupts = <1 4>;
106 };
107
108 IIC: i2c@ef600500 {
109 compatible = "ibm,iic-405gp", "ibm,iic";
110 reg = <ef600500 11>;
111 interrupt-parent = <&UIC0>;
112 interrupts = <2 4>;
113 };
114
115 GPIO: gpio@ef600700 {
116 compatible = "ibm,gpio-405gp";
117 reg = <ef600700 20>;
118 };
119
120 EMAC: ethernet@ef600800 {
121 linux,network-index = <0>;
122 device_type = "network";
123 compatible = "ibm,emac-405gp", "ibm,emac";
124 interrupt-parent = <&UIC0>;
125 interrupts = <
126 f 4 /* Ethernet */
127 9 4 /* Ethernet Wake Up */>;
128 local-mac-address = [000000000000]; /* Filled in by zImage */
129 reg = <ef600800 70>;
130 mal-device = <&MAL>;
131 mal-tx-channel = <0>;
132 mal-rx-channel = <0>;
133 cell-index = <0>;
134 max-frame-size = <5dc>;
135 rx-fifo-size = <1000>;
136 tx-fifo-size = <800>;
137 phy-mode = "rmii";
138 phy-map = <00000000>;
139 };
140
141 };
142
143 EBC0: ebc {
144 compatible = "ibm,ebc-405gp", "ibm,ebc";
145 dcr-reg = <012 2>;
146 #address-cells = <2>;
147 #size-cells = <1>;
148
149
150 /* The ranges property is supplied by the bootwrapper
151 * and is based on the firmware's configuration of the
152 * EBC bridge
153 */
154 clock-frequency = <0>; /* Filled in by zImage */
155
156 /* NVRAM and RTC */
157 nvrtc@4,200000 {
158 compatible = "ds1742";
159 reg = <4 200000 0>; /* size fixed up by zImage */
160 };
161
162 /* "BCSR" CPLD contains a PCI irq controller */
163 bcsr@4,0 {
164 compatible = "ep405-bcsr";
165 reg = <4 0 10>;
166 interrupt-controller;
167 /* Routing table */
168 irq-routing = [ 00 /* SYSERR */
169 01 /* STTM */
170 01 /* RTC */
171 01 /* FENET */
172 02 /* NB PCIIRQ mux ? */
173 03 /* SB Winbond 8259 ? */
174 04 /* Serial Ring */
175 05 /* USB (ep405pc) */
176 06 /* XIRQ 0 */
177 06 /* XIRQ 1 */
178 06 /* XIRQ 2 */
179 06 /* XIRQ 3 */
180 06 /* XIRQ 4 */
181 06 /* XIRQ 5 */
182 06 /* XIRQ 6 */
183 07]; /* Reserved */
184 };
185 };
186
187 PCI0: pci@ec000000 {
188 device_type = "pci";
189 #interrupt-cells = <1>;
190 #size-cells = <2>;
191 #address-cells = <3>;
192 compatible = "ibm,plb405gp-pci", "ibm,plb-pci";
193 primary;
194 reg = <eec00000 8 /* Config space access */
195 eed80000 4 /* IACK */
196 eed80000 4 /* Special cycle */
197 ef480000 40>; /* Internal registers */
198
199 /* Outbound ranges, one memory and one IO,
200 * later cannot be changed. Chip supports a second
201 * IO range but we don't use it for now
202 */
203 ranges = <02000000 0 80000000 80000000 0 20000000
204 01000000 0 00000000 e8000000 0 00010000>;
205
206 /* Inbound 2GB range starting at 0 */
207 dma-ranges = <42000000 0 0 0 0 80000000>;
208
209 /* That's all I know about IRQs on that thing ... */
210 interrupt-map-mask = <f800 0 0 0>;
211 interrupt-map = <
212 /* USB */
213 7000 0 0 0 &UIC0 1e 8 /* IRQ5 */
214 >;
215 };
216 };
217
218 chosen {
219 linux,stdout-path = "/plb/opb/serial@ef600300";
220 };
221};
diff --git a/arch/powerpc/boot/ep405.c b/arch/powerpc/boot/ep405.c
new file mode 100644
index 000000000000..2d08a862cbea
--- /dev/null
+++ b/arch/powerpc/boot/ep405.c
@@ -0,0 +1,74 @@
1/*
2 * Embedded Planet EP405 with PlanetCore firmware
3 *
4 * (c) Benjamin Herrenschmidt <benh@kernel.crashing.org>, IBM Corp,\
5 *
6 * Based on ep88xc.c by
7 *
8 * Scott Wood <scottwood@freescale.com>
9 *
10 * Copyright (c) 2007 Freescale Semiconductor, Inc.
11 *
12 * This program is free software; you can redistribute it and/or modify it
13 * under the terms of the GNU General Public License version 2 as published
14 * by the Free Software Foundation.
15 */
16
17#include "ops.h"
18#include "stdio.h"
19#include "planetcore.h"
20#include "dcr.h"
21#include "4xx.h"
22#include "io.h"
23
24static char *table;
25static u64 mem_size;
26
27static void platform_fixups(void)
28{
29 u64 val;
30 void *nvrtc;
31
32 dt_fixup_memory(0, mem_size);
33 planetcore_set_mac_addrs(table);
34
35 if (!planetcore_get_decimal(table, PLANETCORE_KEY_CRYSTAL_HZ, &val)) {
36 printf("No PlanetCore crystal frequency key.\r\n");
37 return;
38 }
39 ibm405gp_fixup_clocks(val, 0xa8c000);
40 ibm4xx_quiesce_eth((u32 *)0xef600800, NULL);
41 ibm4xx_fixup_ebc_ranges("/plb/ebc");
42
43 if (!planetcore_get_decimal(table, PLANETCORE_KEY_KB_NVRAM, &val)) {
44 printf("No PlanetCore NVRAM size key.\r\n");
45 return;
46 }
47 nvrtc = finddevice("/plb/ebc/nvrtc@4,200000");
48 if (nvrtc != NULL) {
49 u32 reg[3] = { 4, 0x200000, 0};
50 getprop(nvrtc, "reg", reg, 3);
51 reg[2] = (val << 10) & 0xffffffff;
52 setprop(nvrtc, "reg", reg, 3);
53 }
54}
55
56void platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
57 unsigned long r6, unsigned long r7)
58{
59 table = (char *)r3;
60 planetcore_prepare_table(table);
61
62 if (!planetcore_get_decimal(table, PLANETCORE_KEY_MB_RAM, &mem_size))
63 return;
64
65 mem_size *= 1024 * 1024;
66 simple_alloc_init(_end, mem_size - (unsigned long)_end, 32, 64);
67
68 fdt_init(_dtb_start);
69
70 planetcore_set_stdout_path(table);
71
72 serial_console_init();
73 platform_ops.fixups = platform_fixups;
74}
diff --git a/arch/powerpc/boot/treeboot-walnut.c b/arch/powerpc/boot/treeboot-walnut.c
index 70ffce343c0a..330485f47825 100644
--- a/arch/powerpc/boot/treeboot-walnut.c
+++ b/arch/powerpc/boot/treeboot-walnut.c
@@ -20,55 +20,6 @@
20 20
21BSS_STACK(4096); 21BSS_STACK(4096);
22 22
23void ibm405gp_fixup_clocks(unsigned int sysclk, unsigned int ser_clk)
24{
25 u32 pllmr = mfdcr(DCRN_CPC0_PLLMR);
26 u32 cpc0_cr0 = mfdcr(DCRN_405_CPC0_CR0);
27 u32 cpc0_cr1 = mfdcr(DCRN_405_CPC0_CR1);
28 u32 cpu, plb, opb, ebc, tb, uart0, uart1, m;
29 u32 fwdv, fbdv, cbdv, opdv, epdv, udiv;
30
31 fwdv = (8 - ((pllmr & 0xe0000000) >> 29));
32 fbdv = (pllmr & 0x1e000000) >> 25;
33 cbdv = ((pllmr & 0x00060000) >> 17) + 1;
34 opdv = ((pllmr & 0x00018000) >> 15) + 1;
35 epdv = ((pllmr & 0x00001800) >> 13) + 2;
36 udiv = ((cpc0_cr0 & 0x3e) >> 1) + 1;
37
38 m = fwdv * fbdv * cbdv;
39
40 cpu = sysclk * m / fwdv;
41 plb = cpu / cbdv;
42 opb = plb / opdv;
43 ebc = plb / epdv;
44
45 if (cpc0_cr0 & 0x80) {
46 /* uart0 uses the external clock */
47 uart0 = ser_clk;
48 } else {
49 uart0 = cpu / udiv;
50 }
51
52 if (cpc0_cr0 & 0x40) {
53 /* uart1 uses the external clock */
54 uart1 = ser_clk;
55 } else {
56 uart1 = cpu / udiv;
57 }
58
59 /* setup the timebase clock to tick at the cpu frequency */
60 cpc0_cr1 = cpc0_cr1 & ~0x00800000;
61 mtdcr(DCRN_405_CPC0_CR1, cpc0_cr1);
62 tb = cpu;
63
64 dt_fixup_cpu_clocks(cpu, tb, 0);
65 dt_fixup_clock("/plb", plb);
66 dt_fixup_clock("/plb/opb", opb);
67 dt_fixup_clock("/plb/ebc", ebc);
68 dt_fixup_clock("/plb/opb/serial@ef600300", uart0);
69 dt_fixup_clock("/plb/opb/serial@ef600400", uart1);
70}
71
72static void walnut_flashsel_fixup(void) 23static void walnut_flashsel_fixup(void)
73{ 24{
74 void *devp, *sram; 25 void *devp, *sram;
diff --git a/arch/powerpc/boot/wrapper b/arch/powerpc/boot/wrapper
index f961cdeb97a2..154df055aad2 100755
--- a/arch/powerpc/boot/wrapper
+++ b/arch/powerpc/boot/wrapper
@@ -168,7 +168,7 @@ ps3)
168 ksection=.kernel:vmlinux.bin 168 ksection=.kernel:vmlinux.bin
169 isection=.kernel:initrd 169 isection=.kernel:initrd
170 ;; 170 ;;
171ep88xc) 171ep88xc|ep405)
172 platformo="$object/fixed-head.o $object/$platform.o" 172 platformo="$object/fixed-head.o $object/$platform.o"
173 binary=y 173 binary=y
174 ;; 174 ;;
diff --git a/arch/powerpc/configs/ep405_defconfig b/arch/powerpc/configs/ep405_defconfig
new file mode 100644
index 000000000000..5ddd9d5ec698
--- /dev/null
+++ b/arch/powerpc/configs/ep405_defconfig
@@ -0,0 +1,951 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc2
4# Wed Nov 21 16:44:30 2007
5#
6# CONFIG_PPC64 is not set
7
8#
9# Processor support
10#
11# CONFIG_6xx is not set
12# CONFIG_PPC_85xx is not set
13# CONFIG_PPC_8xx is not set
14CONFIG_40x=y
15# CONFIG_44x is not set
16# CONFIG_E200 is not set
17CONFIG_4xx=y
18# CONFIG_PPC_MM_SLICES is not set
19CONFIG_NOT_COHERENT_CACHE=y
20CONFIG_PPC32=y
21CONFIG_WORD_SIZE=32
22CONFIG_PPC_MERGE=y
23CONFIG_MMU=y
24CONFIG_GENERIC_CMOS_UPDATE=y
25CONFIG_GENERIC_TIME=y
26CONFIG_GENERIC_TIME_VSYSCALL=y
27CONFIG_GENERIC_CLOCKEVENTS=y
28CONFIG_GENERIC_HARDIRQS=y
29CONFIG_IRQ_PER_CPU=y
30CONFIG_STACKTRACE_SUPPORT=y
31CONFIG_LOCKDEP_SUPPORT=y
32CONFIG_RWSEM_XCHGADD_ALGORITHM=y
33CONFIG_ARCH_HAS_ILOG2_U32=y
34CONFIG_GENERIC_HWEIGHT=y
35CONFIG_GENERIC_CALIBRATE_DELAY=y
36CONFIG_GENERIC_FIND_NEXT_BIT=y
37# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
38CONFIG_PPC=y
39CONFIG_EARLY_PRINTK=y
40CONFIG_GENERIC_NVRAM=y
41CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
42CONFIG_ARCH_MAY_HAVE_PC_FDC=y
43CONFIG_PPC_OF=y
44CONFIG_OF=y
45CONFIG_PPC_UDBG_16550=y
46# CONFIG_GENERIC_TBSYNC is not set
47CONFIG_AUDIT_ARCH=y
48CONFIG_GENERIC_BUG=y
49# CONFIG_DEFAULT_UIMAGE is not set
50CONFIG_PPC_DCR_NATIVE=y
51# CONFIG_PPC_DCR_MMIO is not set
52CONFIG_PPC_DCR=y
53CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
54
55#
56# General setup
57#
58CONFIG_EXPERIMENTAL=y
59CONFIG_BROKEN_ON_SMP=y
60CONFIG_INIT_ENV_ARG_LIMIT=32
61CONFIG_LOCALVERSION=""
62CONFIG_LOCALVERSION_AUTO=y
63CONFIG_SWAP=y
64CONFIG_SYSVIPC=y
65CONFIG_SYSVIPC_SYSCTL=y
66CONFIG_POSIX_MQUEUE=y
67# CONFIG_BSD_PROCESS_ACCT is not set
68# CONFIG_TASKSTATS is not set
69# CONFIG_USER_NS is not set
70# CONFIG_AUDIT is not set
71# CONFIG_IKCONFIG is not set
72CONFIG_LOG_BUF_SHIFT=14
73# CONFIG_CGROUPS is not set
74CONFIG_FAIR_GROUP_SCHED=y
75CONFIG_FAIR_USER_SCHED=y
76# CONFIG_FAIR_CGROUP_SCHED is not set
77CONFIG_SYSFS_DEPRECATED=y
78# CONFIG_RELAY is not set
79CONFIG_BLK_DEV_INITRD=y
80CONFIG_INITRAMFS_SOURCE=""
81# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
82CONFIG_SYSCTL=y
83CONFIG_EMBEDDED=y
84CONFIG_SYSCTL_SYSCALL=y
85CONFIG_KALLSYMS=y
86CONFIG_KALLSYMS_ALL=y
87CONFIG_KALLSYMS_EXTRA_PASS=y
88CONFIG_HOTPLUG=y
89CONFIG_PRINTK=y
90CONFIG_BUG=y
91CONFIG_ELF_CORE=y
92CONFIG_BASE_FULL=y
93CONFIG_FUTEX=y
94CONFIG_ANON_INODES=y
95CONFIG_EPOLL=y
96CONFIG_SIGNALFD=y
97CONFIG_EVENTFD=y
98CONFIG_SHMEM=y
99CONFIG_VM_EVENT_COUNTERS=y
100CONFIG_SLUB_DEBUG=y
101# CONFIG_SLAB is not set
102CONFIG_SLUB=y
103# CONFIG_SLOB is not set
104CONFIG_RT_MUTEXES=y
105# CONFIG_TINY_SHMEM is not set
106CONFIG_BASE_SMALL=0
107CONFIG_MODULES=y
108CONFIG_MODULE_UNLOAD=y
109# CONFIG_MODULE_FORCE_UNLOAD is not set
110# CONFIG_MODVERSIONS is not set
111# CONFIG_MODULE_SRCVERSION_ALL is not set
112CONFIG_KMOD=y
113CONFIG_BLOCK=y
114CONFIG_LBD=y
115# CONFIG_BLK_DEV_IO_TRACE is not set
116# CONFIG_LSF is not set
117# CONFIG_BLK_DEV_BSG is not set
118
119#
120# IO Schedulers
121#
122CONFIG_IOSCHED_NOOP=y
123CONFIG_IOSCHED_AS=y
124CONFIG_IOSCHED_DEADLINE=y
125CONFIG_IOSCHED_CFQ=y
126CONFIG_DEFAULT_AS=y
127# CONFIG_DEFAULT_DEADLINE is not set
128# CONFIG_DEFAULT_CFQ is not set
129# CONFIG_DEFAULT_NOOP is not set
130CONFIG_DEFAULT_IOSCHED="anticipatory"
131
132#
133# Platform support
134#
135# CONFIG_PPC_MPC52xx is not set
136# CONFIG_PPC_MPC5200 is not set
137# CONFIG_PPC_CELL is not set
138# CONFIG_PPC_CELL_NATIVE is not set
139# CONFIG_PQ2ADS is not set
140CONFIG_EP405=y
141# CONFIG_KILAUEA is not set
142# CONFIG_WALNUT is not set
143# CONFIG_XILINX_VIRTEX_GENERIC_BOARD is not set
144CONFIG_405GP=y
145CONFIG_IBM405_ERR77=y
146CONFIG_IBM405_ERR51=y
147# CONFIG_MPIC is not set
148# CONFIG_MPIC_WEIRD is not set
149# CONFIG_PPC_I8259 is not set
150# CONFIG_PPC_RTAS is not set
151# CONFIG_MMIO_NVRAM is not set
152# CONFIG_PPC_MPC106 is not set
153# CONFIG_PPC_970_NAP is not set
154# CONFIG_PPC_INDIRECT_IO is not set
155# CONFIG_GENERIC_IOMAP is not set
156# CONFIG_CPU_FREQ is not set
157# CONFIG_CPM2 is not set
158# CONFIG_FSL_ULI1575 is not set
159
160#
161# Kernel options
162#
163# CONFIG_HIGHMEM is not set
164# CONFIG_TICK_ONESHOT is not set
165# CONFIG_NO_HZ is not set
166# CONFIG_HIGH_RES_TIMERS is not set
167CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
168# CONFIG_HZ_100 is not set
169CONFIG_HZ_250=y
170# CONFIG_HZ_300 is not set
171# CONFIG_HZ_1000 is not set
172CONFIG_HZ=250
173CONFIG_PREEMPT_NONE=y
174# CONFIG_PREEMPT_VOLUNTARY is not set
175# CONFIG_PREEMPT is not set
176CONFIG_BINFMT_ELF=y
177# CONFIG_BINFMT_MISC is not set
178# CONFIG_MATH_EMULATION is not set
179CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
180CONFIG_ARCH_FLATMEM_ENABLE=y
181CONFIG_ARCH_POPULATES_NODE_MAP=y
182CONFIG_SELECT_MEMORY_MODEL=y
183CONFIG_FLATMEM_MANUAL=y
184# CONFIG_DISCONTIGMEM_MANUAL is not set
185# CONFIG_SPARSEMEM_MANUAL is not set
186CONFIG_FLATMEM=y
187CONFIG_FLAT_NODE_MEM_MAP=y
188# CONFIG_SPARSEMEM_STATIC is not set
189# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
190CONFIG_SPLIT_PTLOCK_CPUS=4
191# CONFIG_RESOURCES_64BIT is not set
192CONFIG_ZONE_DMA_FLAG=1
193CONFIG_BOUNCE=y
194CONFIG_VIRT_TO_BUS=y
195CONFIG_PROC_DEVICETREE=y
196# CONFIG_CMDLINE_BOOL is not set
197# CONFIG_PM is not set
198CONFIG_SUSPEND_UP_POSSIBLE=y
199CONFIG_HIBERNATION_UP_POSSIBLE=y
200CONFIG_SECCOMP=y
201CONFIG_WANT_DEVICE_TREE=y
202CONFIG_DEVICE_TREE="ep405.dts"
203CONFIG_ISA_DMA_API=y
204
205#
206# Bus options
207#
208CONFIG_ZONE_DMA=y
209CONFIG_PPC_INDIRECT_PCI=y
210CONFIG_PCI=y
211CONFIG_PCI_DOMAINS=y
212CONFIG_PCI_SYSCALL=y
213# CONFIG_PCIEPORTBUS is not set
214CONFIG_ARCH_SUPPORTS_MSI=y
215# CONFIG_PCI_MSI is not set
216CONFIG_PCI_LEGACY=y
217# CONFIG_PCI_DEBUG is not set
218# CONFIG_PCCARD is not set
219# CONFIG_HOTPLUG_PCI is not set
220
221#
222# Advanced setup
223#
224# CONFIG_ADVANCED_OPTIONS is not set
225
226#
227# Default settings for advanced configuration options are used
228#
229CONFIG_HIGHMEM_START=0xfe000000
230CONFIG_LOWMEM_SIZE=0x30000000
231CONFIG_KERNEL_START=0xc0000000
232CONFIG_TASK_SIZE=0xc0000000
233CONFIG_CONSISTENT_START=0xff100000
234CONFIG_CONSISTENT_SIZE=0x00200000
235CONFIG_BOOT_LOAD=0x00400000
236
237#
238# Networking
239#
240CONFIG_NET=y
241
242#
243# Networking options
244#
245CONFIG_PACKET=y
246# CONFIG_PACKET_MMAP is not set
247CONFIG_UNIX=y
248# CONFIG_NET_KEY is not set
249CONFIG_INET=y
250# CONFIG_IP_MULTICAST is not set
251# CONFIG_IP_ADVANCED_ROUTER is not set
252CONFIG_IP_FIB_HASH=y
253CONFIG_IP_PNP=y
254CONFIG_IP_PNP_DHCP=y
255CONFIG_IP_PNP_BOOTP=y
256# CONFIG_IP_PNP_RARP is not set
257# CONFIG_NET_IPIP is not set
258# CONFIG_NET_IPGRE is not set
259# CONFIG_ARPD is not set
260# CONFIG_SYN_COOKIES is not set
261# CONFIG_INET_AH is not set
262# CONFIG_INET_ESP is not set
263# CONFIG_INET_IPCOMP is not set
264# CONFIG_INET_XFRM_TUNNEL is not set
265# CONFIG_INET_TUNNEL is not set
266# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
267# CONFIG_INET_XFRM_MODE_TUNNEL is not set
268# CONFIG_INET_XFRM_MODE_BEET is not set
269# CONFIG_INET_LRO is not set
270CONFIG_INET_DIAG=y
271CONFIG_INET_TCP_DIAG=y
272# CONFIG_TCP_CONG_ADVANCED is not set
273CONFIG_TCP_CONG_CUBIC=y
274CONFIG_DEFAULT_TCP_CONG="cubic"
275# CONFIG_TCP_MD5SIG is not set
276# CONFIG_IPV6 is not set
277# CONFIG_INET6_XFRM_TUNNEL is not set
278# CONFIG_INET6_TUNNEL is not set
279# CONFIG_NETWORK_SECMARK is not set
280# CONFIG_NETFILTER is not set
281# CONFIG_IP_DCCP is not set
282# CONFIG_IP_SCTP is not set
283# CONFIG_TIPC is not set
284# CONFIG_ATM is not set
285# CONFIG_BRIDGE is not set
286# CONFIG_VLAN_8021Q is not set
287# CONFIG_DECNET is not set
288# CONFIG_LLC2 is not set
289# CONFIG_IPX is not set
290# CONFIG_ATALK is not set
291# CONFIG_X25 is not set
292# CONFIG_LAPB is not set
293# CONFIG_ECONET is not set
294# CONFIG_WAN_ROUTER is not set
295# CONFIG_NET_SCHED is not set
296
297#
298# Network testing
299#
300# CONFIG_NET_PKTGEN is not set
301# CONFIG_HAMRADIO is not set
302# CONFIG_IRDA is not set
303# CONFIG_BT is not set
304# CONFIG_AF_RXRPC is not set
305
306#
307# Wireless
308#
309# CONFIG_CFG80211 is not set
310# CONFIG_WIRELESS_EXT is not set
311# CONFIG_MAC80211 is not set
312# CONFIG_IEEE80211 is not set
313# CONFIG_RFKILL is not set
314# CONFIG_NET_9P is not set
315
316#
317# Device Drivers
318#
319
320#
321# Generic Driver Options
322#
323CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
324CONFIG_STANDALONE=y
325CONFIG_PREVENT_FIRMWARE_BUILD=y
326CONFIG_FW_LOADER=y
327# CONFIG_DEBUG_DRIVER is not set
328# CONFIG_DEBUG_DEVRES is not set
329# CONFIG_SYS_HYPERVISOR is not set
330CONFIG_CONNECTOR=y
331CONFIG_PROC_EVENTS=y
332CONFIG_MTD=y
333# CONFIG_MTD_DEBUG is not set
334# CONFIG_MTD_CONCAT is not set
335CONFIG_MTD_PARTITIONS=y
336# CONFIG_MTD_REDBOOT_PARTS is not set
337CONFIG_MTD_CMDLINE_PARTS=y
338
339#
340# User Modules And Translation Layers
341#
342CONFIG_MTD_CHAR=y
343CONFIG_MTD_BLKDEVS=m
344CONFIG_MTD_BLOCK=m
345# CONFIG_MTD_BLOCK_RO is not set
346# CONFIG_FTL is not set
347# CONFIG_NFTL is not set
348# CONFIG_INFTL is not set
349# CONFIG_RFD_FTL is not set
350# CONFIG_SSFDC is not set
351# CONFIG_MTD_OOPS is not set
352
353#
354# RAM/ROM/Flash chip drivers
355#
356CONFIG_MTD_CFI=y
357CONFIG_MTD_JEDECPROBE=y
358CONFIG_MTD_GEN_PROBE=y
359# CONFIG_MTD_CFI_ADV_OPTIONS is not set
360CONFIG_MTD_MAP_BANK_WIDTH_1=y
361CONFIG_MTD_MAP_BANK_WIDTH_2=y
362CONFIG_MTD_MAP_BANK_WIDTH_4=y
363# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
364# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
365# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
366CONFIG_MTD_CFI_I1=y
367CONFIG_MTD_CFI_I2=y
368# CONFIG_MTD_CFI_I4 is not set
369# CONFIG_MTD_CFI_I8 is not set
370# CONFIG_MTD_CFI_INTELEXT is not set
371CONFIG_MTD_CFI_AMDSTD=y
372# CONFIG_MTD_CFI_STAA is not set
373CONFIG_MTD_CFI_UTIL=y
374# CONFIG_MTD_RAM is not set
375# CONFIG_MTD_ROM is not set
376# CONFIG_MTD_ABSENT is not set
377
378#
379# Mapping drivers for chip access
380#
381# CONFIG_MTD_COMPLEX_MAPPINGS is not set
382# CONFIG_MTD_PHYSMAP is not set
383CONFIG_MTD_PHYSMAP_OF=y
384# CONFIG_MTD_INTEL_VR_NOR is not set
385# CONFIG_MTD_PLATRAM is not set
386
387#
388# Self-contained MTD device drivers
389#
390# CONFIG_MTD_PMC551 is not set
391# CONFIG_MTD_SLRAM is not set
392# CONFIG_MTD_PHRAM is not set
393# CONFIG_MTD_MTDRAM is not set
394# CONFIG_MTD_BLOCK2MTD is not set
395
396#
397# Disk-On-Chip Device Drivers
398#
399# CONFIG_MTD_DOC2000 is not set
400# CONFIG_MTD_DOC2001 is not set
401# CONFIG_MTD_DOC2001PLUS is not set
402# CONFIG_MTD_NAND is not set
403# CONFIG_MTD_ONENAND is not set
404
405#
406# UBI - Unsorted block images
407#
408# CONFIG_MTD_UBI is not set
409CONFIG_OF_DEVICE=y
410# CONFIG_PARPORT is not set
411CONFIG_BLK_DEV=y
412# CONFIG_BLK_DEV_FD is not set
413# CONFIG_BLK_CPQ_DA is not set
414# CONFIG_BLK_CPQ_CISS_DA is not set
415# CONFIG_BLK_DEV_DAC960 is not set
416# CONFIG_BLK_DEV_UMEM is not set
417# CONFIG_BLK_DEV_COW_COMMON is not set
418# CONFIG_BLK_DEV_LOOP is not set
419# CONFIG_BLK_DEV_NBD is not set
420# CONFIG_BLK_DEV_SX8 is not set
421# CONFIG_BLK_DEV_UB is not set
422CONFIG_BLK_DEV_RAM=y
423CONFIG_BLK_DEV_RAM_COUNT=16
424CONFIG_BLK_DEV_RAM_SIZE=35000
425CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
426# CONFIG_CDROM_PKTCDVD is not set
427# CONFIG_ATA_OVER_ETH is not set
428# CONFIG_XILINX_SYSACE is not set
429CONFIG_MISC_DEVICES=y
430# CONFIG_PHANTOM is not set
431# CONFIG_EEPROM_93CX6 is not set
432# CONFIG_SGI_IOC4 is not set
433# CONFIG_TIFM_CORE is not set
434# CONFIG_IDE is not set
435
436#
437# SCSI device support
438#
439# CONFIG_RAID_ATTRS is not set
440# CONFIG_SCSI is not set
441# CONFIG_SCSI_DMA is not set
442# CONFIG_SCSI_NETLINK is not set
443# CONFIG_ATA is not set
444# CONFIG_MD is not set
445# CONFIG_FUSION is not set
446
447#
448# IEEE 1394 (FireWire) support
449#
450# CONFIG_FIREWIRE is not set
451# CONFIG_IEEE1394 is not set
452# CONFIG_I2O is not set
453# CONFIG_MACINTOSH_DRIVERS is not set
454CONFIG_NETDEVICES=y
455# CONFIG_NETDEVICES_MULTIQUEUE is not set
456# CONFIG_DUMMY is not set
457# CONFIG_BONDING is not set
458# CONFIG_MACVLAN is not set
459# CONFIG_EQUALIZER is not set
460# CONFIG_TUN is not set
461# CONFIG_VETH is not set
462# CONFIG_IP1000 is not set
463# CONFIG_ARCNET is not set
464# CONFIG_PHYLIB is not set
465CONFIG_NET_ETHERNET=y
466# CONFIG_MII is not set
467# CONFIG_HAPPYMEAL is not set
468# CONFIG_SUNGEM is not set
469# CONFIG_CASSINI is not set
470# CONFIG_NET_VENDOR_3COM is not set
471# CONFIG_NET_TULIP is not set
472# CONFIG_HP100 is not set
473CONFIG_IBM_NEW_EMAC=y
474CONFIG_IBM_NEW_EMAC_RXB=128
475CONFIG_IBM_NEW_EMAC_TXB=64
476CONFIG_IBM_NEW_EMAC_POLL_WEIGHT=32
477CONFIG_IBM_NEW_EMAC_RX_COPY_THRESHOLD=256
478CONFIG_IBM_NEW_EMAC_RX_SKB_HEADROOM=0
479# CONFIG_IBM_NEW_EMAC_DEBUG is not set
480CONFIG_IBM_NEW_EMAC_ZMII=y
481# CONFIG_IBM_NEW_EMAC_RGMII is not set
482# CONFIG_IBM_NEW_EMAC_TAH is not set
483# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
484# CONFIG_NET_PCI is not set
485# CONFIG_B44 is not set
486CONFIG_NETDEV_1000=y
487# CONFIG_ACENIC is not set
488# CONFIG_DL2K is not set
489# CONFIG_E1000 is not set
490# CONFIG_E1000E is not set
491# CONFIG_NS83820 is not set
492# CONFIG_HAMACHI is not set
493# CONFIG_YELLOWFIN is not set
494# CONFIG_R8169 is not set
495# CONFIG_SIS190 is not set
496# CONFIG_SKGE is not set
497# CONFIG_SKY2 is not set
498# CONFIG_SK98LIN is not set
499# CONFIG_VIA_VELOCITY is not set
500# CONFIG_TIGON3 is not set
501# CONFIG_BNX2 is not set
502# CONFIG_QLA3XXX is not set
503# CONFIG_ATL1 is not set
504CONFIG_NETDEV_10000=y
505# CONFIG_CHELSIO_T1 is not set
506# CONFIG_CHELSIO_T3 is not set
507# CONFIG_IXGBE is not set
508# CONFIG_IXGB is not set
509# CONFIG_S2IO is not set
510# CONFIG_MYRI10GE is not set
511# CONFIG_NETXEN_NIC is not set
512# CONFIG_NIU is not set
513# CONFIG_MLX4_CORE is not set
514# CONFIG_TEHUTI is not set
515# CONFIG_TR is not set
516
517#
518# Wireless LAN
519#
520# CONFIG_WLAN_PRE80211 is not set
521# CONFIG_WLAN_80211 is not set
522
523#
524# USB Network Adapters
525#
526# CONFIG_USB_CATC is not set
527# CONFIG_USB_KAWETH is not set
528# CONFIG_USB_PEGASUS is not set
529# CONFIG_USB_RTL8150 is not set
530# CONFIG_USB_USBNET is not set
531# CONFIG_WAN is not set
532# CONFIG_FDDI is not set
533# CONFIG_HIPPI is not set
534# CONFIG_PPP is not set
535# CONFIG_SLIP is not set
536# CONFIG_SHAPER is not set
537# CONFIG_NETCONSOLE is not set
538# CONFIG_NETPOLL is not set
539# CONFIG_NET_POLL_CONTROLLER is not set
540# CONFIG_ISDN is not set
541# CONFIG_PHONE is not set
542
543#
544# Input device support
545#
546# CONFIG_INPUT is not set
547
548#
549# Hardware I/O ports
550#
551# CONFIG_SERIO is not set
552# CONFIG_GAMEPORT is not set
553
554#
555# Character devices
556#
557# CONFIG_VT is not set
558# CONFIG_SERIAL_NONSTANDARD is not set
559
560#
561# Serial drivers
562#
563CONFIG_SERIAL_8250=y
564CONFIG_SERIAL_8250_CONSOLE=y
565CONFIG_SERIAL_8250_PCI=y
566CONFIG_SERIAL_8250_NR_UARTS=4
567CONFIG_SERIAL_8250_RUNTIME_UARTS=4
568CONFIG_SERIAL_8250_EXTENDED=y
569# CONFIG_SERIAL_8250_MANY_PORTS is not set
570CONFIG_SERIAL_8250_SHARE_IRQ=y
571# CONFIG_SERIAL_8250_DETECT_IRQ is not set
572# CONFIG_SERIAL_8250_RSA is not set
573
574#
575# Non-8250 serial port support
576#
577# CONFIG_SERIAL_UARTLITE is not set
578CONFIG_SERIAL_CORE=y
579CONFIG_SERIAL_CORE_CONSOLE=y
580# CONFIG_SERIAL_JSM is not set
581CONFIG_SERIAL_OF_PLATFORM=y
582CONFIG_UNIX98_PTYS=y
583CONFIG_LEGACY_PTYS=y
584CONFIG_LEGACY_PTY_COUNT=256
585# CONFIG_IPMI_HANDLER is not set
586# CONFIG_HW_RANDOM is not set
587# CONFIG_NVRAM is not set
588# CONFIG_GEN_RTC is not set
589# CONFIG_R3964 is not set
590# CONFIG_APPLICOM is not set
591# CONFIG_RAW_DRIVER is not set
592# CONFIG_TCG_TPM is not set
593CONFIG_DEVPORT=y
594# CONFIG_I2C is not set
595
596#
597# SPI support
598#
599# CONFIG_SPI is not set
600# CONFIG_SPI_MASTER is not set
601# CONFIG_W1 is not set
602# CONFIG_POWER_SUPPLY is not set
603# CONFIG_HWMON is not set
604# CONFIG_WATCHDOG is not set
605
606#
607# Sonics Silicon Backplane
608#
609CONFIG_SSB_POSSIBLE=y
610# CONFIG_SSB is not set
611
612#
613# Multifunction device drivers
614#
615# CONFIG_MFD_SM501 is not set
616
617#
618# Multimedia devices
619#
620# CONFIG_VIDEO_DEV is not set
621# CONFIG_DVB_CORE is not set
622# CONFIG_DAB is not set
623
624#
625# Graphics support
626#
627# CONFIG_AGP is not set
628# CONFIG_DRM is not set
629# CONFIG_VGASTATE is not set
630CONFIG_VIDEO_OUTPUT_CONTROL=m
631# CONFIG_FB is not set
632# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
633
634#
635# Display device support
636#
637# CONFIG_DISPLAY_SUPPORT is not set
638
639#
640# Sound
641#
642# CONFIG_SOUND is not set
643CONFIG_USB_SUPPORT=y
644CONFIG_USB_ARCH_HAS_HCD=y
645CONFIG_USB_ARCH_HAS_OHCI=y
646CONFIG_USB_ARCH_HAS_EHCI=y
647CONFIG_USB=y
648# CONFIG_USB_DEBUG is not set
649
650#
651# Miscellaneous USB options
652#
653CONFIG_USB_DEVICEFS=y
654CONFIG_USB_DEVICE_CLASS=y
655# CONFIG_USB_DYNAMIC_MINORS is not set
656# CONFIG_USB_OTG is not set
657
658#
659# USB Host Controller Drivers
660#
661# CONFIG_USB_EHCI_HCD is not set
662# CONFIG_USB_ISP116X_HCD is not set
663CONFIG_USB_OHCI_HCD=y
664CONFIG_USB_OHCI_HCD_PPC_OF=y
665CONFIG_USB_OHCI_HCD_PPC_OF_BE=y
666CONFIG_USB_OHCI_HCD_PPC_OF_LE=y
667CONFIG_USB_OHCI_HCD_PCI=y
668CONFIG_USB_OHCI_BIG_ENDIAN_DESC=y
669CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y
670CONFIG_USB_OHCI_LITTLE_ENDIAN=y
671# CONFIG_USB_UHCI_HCD is not set
672# CONFIG_USB_SL811_HCD is not set
673# CONFIG_USB_R8A66597_HCD is not set
674
675#
676# USB Device Class drivers
677#
678# CONFIG_USB_ACM is not set
679# CONFIG_USB_PRINTER is not set
680
681#
682# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
683#
684
685#
686# may also be needed; see USB_STORAGE Help for more information
687#
688# CONFIG_USB_LIBUSUAL is not set
689
690#
691# USB Imaging devices
692#
693# CONFIG_USB_MDC800 is not set
694CONFIG_USB_MON=y
695
696#
697# USB port drivers
698#
699
700#
701# USB Serial Converter support
702#
703# CONFIG_USB_SERIAL is not set
704
705#
706# USB Miscellaneous drivers
707#
708# CONFIG_USB_EMI62 is not set
709# CONFIG_USB_EMI26 is not set
710# CONFIG_USB_ADUTUX is not set
711# CONFIG_USB_AUERSWALD is not set
712# CONFIG_USB_RIO500 is not set
713# CONFIG_USB_LEGOTOWER is not set
714# CONFIG_USB_LCD is not set
715# CONFIG_USB_BERRY_CHARGE is not set
716# CONFIG_USB_LED is not set
717# CONFIG_USB_CYPRESS_CY7C63 is not set
718# CONFIG_USB_CYTHERM is not set
719# CONFIG_USB_PHIDGET is not set
720# CONFIG_USB_IDMOUSE is not set
721# CONFIG_USB_FTDI_ELAN is not set
722# CONFIG_USB_APPLEDISPLAY is not set
723# CONFIG_USB_LD is not set
724# CONFIG_USB_TRANCEVIBRATOR is not set
725# CONFIG_USB_IOWARRIOR is not set
726# CONFIG_USB_TEST is not set
727
728#
729# USB DSL modem support
730#
731
732#
733# USB Gadget Support
734#
735# CONFIG_USB_GADGET is not set
736# CONFIG_MMC is not set
737# CONFIG_NEW_LEDS is not set
738# CONFIG_INFINIBAND is not set
739# CONFIG_EDAC is not set
740# CONFIG_RTC_CLASS is not set
741
742#
743# Userspace I/O
744#
745# CONFIG_UIO is not set
746
747#
748# File systems
749#
750CONFIG_EXT2_FS=y
751# CONFIG_EXT2_FS_XATTR is not set
752# CONFIG_EXT2_FS_XIP is not set
753# CONFIG_EXT3_FS is not set
754# CONFIG_EXT4DEV_FS is not set
755# CONFIG_REISERFS_FS is not set
756# CONFIG_JFS_FS is not set
757# CONFIG_FS_POSIX_ACL is not set
758# CONFIG_XFS_FS is not set
759# CONFIG_GFS2_FS is not set
760# CONFIG_OCFS2_FS is not set
761# CONFIG_MINIX_FS is not set
762# CONFIG_ROMFS_FS is not set
763CONFIG_INOTIFY=y
764CONFIG_INOTIFY_USER=y
765# CONFIG_QUOTA is not set
766CONFIG_DNOTIFY=y
767# CONFIG_AUTOFS_FS is not set
768# CONFIG_AUTOFS4_FS is not set
769# CONFIG_FUSE_FS is not set
770
771#
772# CD-ROM/DVD Filesystems
773#
774# CONFIG_ISO9660_FS is not set
775# CONFIG_UDF_FS is not set
776
777#
778# DOS/FAT/NT Filesystems
779#
780# CONFIG_MSDOS_FS is not set
781# CONFIG_VFAT_FS is not set
782# CONFIG_NTFS_FS is not set
783
784#
785# Pseudo filesystems
786#
787CONFIG_PROC_FS=y
788CONFIG_PROC_KCORE=y
789CONFIG_PROC_SYSCTL=y
790CONFIG_SYSFS=y
791CONFIG_TMPFS=y
792# CONFIG_TMPFS_POSIX_ACL is not set
793# CONFIG_HUGETLB_PAGE is not set
794# CONFIG_CONFIGFS_FS is not set
795
796#
797# Miscellaneous filesystems
798#
799# CONFIG_ADFS_FS is not set
800# CONFIG_AFFS_FS is not set
801# CONFIG_HFS_FS is not set
802# CONFIG_HFSPLUS_FS is not set
803# CONFIG_BEFS_FS is not set
804# CONFIG_BFS_FS is not set
805# CONFIG_EFS_FS is not set
806# CONFIG_JFFS2_FS is not set
807CONFIG_CRAMFS=y
808# CONFIG_VXFS_FS is not set
809# CONFIG_HPFS_FS is not set
810# CONFIG_QNX4FS_FS is not set
811# CONFIG_SYSV_FS is not set
812# CONFIG_UFS_FS is not set
813CONFIG_NETWORK_FILESYSTEMS=y
814CONFIG_NFS_FS=y
815CONFIG_NFS_V3=y
816# CONFIG_NFS_V3_ACL is not set
817# CONFIG_NFS_V4 is not set
818# CONFIG_NFS_DIRECTIO is not set
819# CONFIG_NFSD is not set
820CONFIG_ROOT_NFS=y
821CONFIG_LOCKD=y
822CONFIG_LOCKD_V4=y
823CONFIG_NFS_COMMON=y
824CONFIG_SUNRPC=y
825# CONFIG_SUNRPC_BIND34 is not set
826# CONFIG_RPCSEC_GSS_KRB5 is not set
827# CONFIG_RPCSEC_GSS_SPKM3 is not set
828# CONFIG_SMB_FS is not set
829# CONFIG_CIFS is not set
830# CONFIG_NCP_FS is not set
831# CONFIG_CODA_FS is not set
832# CONFIG_AFS_FS is not set
833
834#
835# Partition Types
836#
837# CONFIG_PARTITION_ADVANCED is not set
838CONFIG_MSDOS_PARTITION=y
839# CONFIG_NLS is not set
840# CONFIG_DLM is not set
841# CONFIG_UCC_SLOW is not set
842
843#
844# Library routines
845#
846CONFIG_BITREVERSE=y
847# CONFIG_CRC_CCITT is not set
848# CONFIG_CRC16 is not set
849# CONFIG_CRC_ITU_T is not set
850CONFIG_CRC32=y
851# CONFIG_CRC7 is not set
852# CONFIG_LIBCRC32C is not set
853CONFIG_ZLIB_INFLATE=y
854CONFIG_PLIST=y
855CONFIG_HAS_IOMEM=y
856CONFIG_HAS_IOPORT=y
857CONFIG_HAS_DMA=y
858CONFIG_INSTRUMENTATION=y
859# CONFIG_PROFILING is not set
860# CONFIG_KPROBES is not set
861# CONFIG_MARKERS is not set
862
863#
864# Kernel hacking
865#
866# CONFIG_PRINTK_TIME is not set
867CONFIG_ENABLE_WARN_DEPRECATED=y
868CONFIG_ENABLE_MUST_CHECK=y
869CONFIG_MAGIC_SYSRQ=y
870# CONFIG_UNUSED_SYMBOLS is not set
871# CONFIG_DEBUG_FS is not set
872# CONFIG_HEADERS_CHECK is not set
873CONFIG_DEBUG_KERNEL=y
874# CONFIG_DEBUG_SHIRQ is not set
875CONFIG_DETECT_SOFTLOCKUP=y
876CONFIG_SCHED_DEBUG=y
877# CONFIG_SCHEDSTATS is not set
878# CONFIG_TIMER_STATS is not set
879# CONFIG_SLUB_DEBUG_ON is not set
880# CONFIG_DEBUG_RT_MUTEXES is not set
881# CONFIG_RT_MUTEX_TESTER is not set
882# CONFIG_DEBUG_SPINLOCK is not set
883# CONFIG_DEBUG_MUTEXES is not set
884# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
885# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
886# CONFIG_DEBUG_KOBJECT is not set
887CONFIG_DEBUG_BUGVERBOSE=y
888# CONFIG_DEBUG_INFO is not set
889# CONFIG_DEBUG_VM is not set
890# CONFIG_DEBUG_LIST is not set
891# CONFIG_DEBUG_SG is not set
892CONFIG_FORCED_INLINING=y
893# CONFIG_BOOT_PRINTK_DELAY is not set
894# CONFIG_RCU_TORTURE_TEST is not set
895# CONFIG_FAULT_INJECTION is not set
896# CONFIG_SAMPLES is not set
897# CONFIG_DEBUG_STACKOVERFLOW is not set
898# CONFIG_DEBUG_STACK_USAGE is not set
899# CONFIG_DEBUG_PAGEALLOC is not set
900# CONFIG_DEBUGGER is not set
901# CONFIG_BDI_SWITCH is not set
902# CONFIG_PPC_EARLY_DEBUG is not set
903
904#
905# Security options
906#
907# CONFIG_KEYS is not set
908# CONFIG_SECURITY is not set
909# CONFIG_SECURITY_FILE_CAPABILITIES is not set
910CONFIG_CRYPTO=y
911CONFIG_CRYPTO_ALGAPI=y
912CONFIG_CRYPTO_BLKCIPHER=y
913CONFIG_CRYPTO_MANAGER=y
914# CONFIG_CRYPTO_HMAC is not set
915# CONFIG_CRYPTO_XCBC is not set
916# CONFIG_CRYPTO_NULL is not set
917# CONFIG_CRYPTO_MD4 is not set
918CONFIG_CRYPTO_MD5=y
919# CONFIG_CRYPTO_SHA1 is not set
920# CONFIG_CRYPTO_SHA256 is not set
921# CONFIG_CRYPTO_SHA512 is not set
922# CONFIG_CRYPTO_WP512 is not set
923# CONFIG_CRYPTO_TGR192 is not set
924# CONFIG_CRYPTO_GF128MUL is not set
925CONFIG_CRYPTO_ECB=y
926CONFIG_CRYPTO_CBC=y
927CONFIG_CRYPTO_PCBC=y
928# CONFIG_CRYPTO_LRW is not set
929# CONFIG_CRYPTO_XTS is not set
930# CONFIG_CRYPTO_CRYPTD is not set
931CONFIG_CRYPTO_DES=y
932# CONFIG_CRYPTO_FCRYPT is not set
933# CONFIG_CRYPTO_BLOWFISH is not set
934# CONFIG_CRYPTO_TWOFISH is not set
935# CONFIG_CRYPTO_SERPENT is not set
936# CONFIG_CRYPTO_AES is not set
937# CONFIG_CRYPTO_CAST5 is not set
938# CONFIG_CRYPTO_CAST6 is not set
939# CONFIG_CRYPTO_TEA is not set
940# CONFIG_CRYPTO_ARC4 is not set
941# CONFIG_CRYPTO_KHAZAD is not set
942# CONFIG_CRYPTO_ANUBIS is not set
943# CONFIG_CRYPTO_SEED is not set
944# CONFIG_CRYPTO_DEFLATE is not set
945# CONFIG_CRYPTO_MICHAEL_MIC is not set
946# CONFIG_CRYPTO_CRC32C is not set
947# CONFIG_CRYPTO_CAMELLIA is not set
948# CONFIG_CRYPTO_TEST is not set
949# CONFIG_CRYPTO_AUTHENC is not set
950CONFIG_CRYPTO_HW=y
951# CONFIG_PPC_CLOCK is not set
diff --git a/arch/powerpc/platforms/40x/Kconfig b/arch/powerpc/platforms/40x/Kconfig
index 8f6699fcc145..b8f0a6c16486 100644
--- a/arch/powerpc/platforms/40x/Kconfig
+++ b/arch/powerpc/platforms/40x/Kconfig
@@ -14,20 +14,14 @@
14# help 14# help
15# This option enables support for the CPCI405 board. 15# This option enables support for the CPCI405 board.
16 16
17#config EP405 17config EP405
18# bool "EP405/EP405PC" 18 bool "EP405/EP405PC"
19# depends on 40x 19 depends on 40x
20# default n 20 default n
21# select 405GP 21 select 405GP
22# help 22 select PCI
23# This option enables support for the EP405/EP405PC boards. 23 help
24 24 This option enables support for the EP405/EP405PC boards.
25#config EP405PC
26# bool "EP405PC Support"
27# depends on EP405
28# default y
29# help
30# This option enables support for the extra features of the EP405PC board.
31 25
32config KILAUEA 26config KILAUEA
33 bool "Kilauea" 27 bool "Kilauea"
diff --git a/arch/powerpc/platforms/40x/Makefile b/arch/powerpc/platforms/40x/Makefile
index 51dadeee6fc6..0f42fd481c77 100644
--- a/arch/powerpc/platforms/40x/Makefile
+++ b/arch/powerpc/platforms/40x/Makefile
@@ -1,3 +1,4 @@
1obj-$(CONFIG_KILAUEA) += kilauea.o 1obj-$(CONFIG_KILAUEA) += kilauea.o
2obj-$(CONFIG_WALNUT) += walnut.o 2obj-$(CONFIG_WALNUT) += walnut.o
3obj-$(CONFIG_XILINX_VIRTEX_GENERIC_BOARD) += virtex.o 3obj-$(CONFIG_XILINX_VIRTEX_GENERIC_BOARD) += virtex.o
4obj-$(CONFIG_EP405) += ep405.o
diff --git a/arch/powerpc/platforms/40x/ep405.c b/arch/powerpc/platforms/40x/ep405.c
new file mode 100644
index 000000000000..ba84a41e63e6
--- /dev/null
+++ b/arch/powerpc/platforms/40x/ep405.c
@@ -0,0 +1,124 @@
1/*
2 * Architecture- / platform-specific boot-time initialization code for
3 * IBM PowerPC 4xx based boards. Adapted from original
4 * code by Gary Thomas, Cort Dougan <cort@fsmlabs.com>, and Dan Malek
5 * <dan@net4x.com>.
6 *
7 * Copyright(c) 1999-2000 Grant Erickson <grant@lcse.umn.edu>
8 *
9 * Rewritten and ported to the merged powerpc tree:
10 * Copyright 2007 IBM Corporation
11 * Josh Boyer <jwboyer@linux.vnet.ibm.com>
12 *
13 * Adapted to EP405 by Ben. Herrenschmidt <benh@kernel.crashing.org>
14 *
15 * TODO: Wire up the PCI IRQ mux and the southbridge interrupts
16 *
17 * 2002 (c) MontaVista, Software, Inc. This file is licensed under
18 * the terms of the GNU General Public License version 2. This program
19 * is licensed "as is" without any warranty of any kind, whether express
20 * or implied.
21 */
22
23#include <linux/init.h>
24#include <linux/of_platform.h>
25
26#include <asm/machdep.h>
27#include <asm/prom.h>
28#include <asm/udbg.h>
29#include <asm/time.h>
30#include <asm/uic.h>
31#include <asm/pci-bridge.h>
32
33static struct device_node *bcsr_node;
34static void __iomem *bcsr_regs;
35
36/* BCSR registers */
37#define BCSR_ID 0
38#define BCSR_PCI_CTRL 1
39#define BCSR_FLASH_NV_POR_CTRL 2
40#define BCSR_FENET_UART_CTRL 3
41#define BCSR_PCI_IRQ 4
42#define BCSR_XIRQ_SELECT 5
43#define BCSR_XIRQ_ROUTING 6
44#define BCSR_XIRQ_STATUS 7
45#define BCSR_XIRQ_STATUS2 8
46#define BCSR_SW_STAT_LED_CTRL 9
47#define BCSR_GPIO_IRQ_PAR_CTRL 10
48/* there's more, can't be bothered typing them tho */
49
50
51static struct of_device_id ep405_of_bus[] = {
52 { .compatible = "ibm,plb3", },
53 { .compatible = "ibm,opb", },
54 { .compatible = "ibm,ebc", },
55 {},
56};
57
58static int __init ep405_device_probe(void)
59{
60 if (!machine_is(ep405))
61 return 0;
62
63 of_platform_bus_probe(NULL, ep405_of_bus, NULL);
64
65 return 0;
66}
67device_initcall(ep405_device_probe);
68
69static void __init ep405_init_bcsr(void)
70{
71 const u8 *irq_routing;
72 int i;
73
74 /* Find the bloody thing & map it */
75 bcsr_node = of_find_compatible_node(NULL, NULL, "ep405-bcsr");
76 if (bcsr_node == NULL) {
77 printk(KERN_ERR "EP405 BCSR not found !\n");
78 return;
79 }
80 bcsr_regs = of_iomap(bcsr_node, 0);
81 if (bcsr_regs == NULL) {
82 printk(KERN_ERR "EP405 BCSR failed to map !\n");
83 return;
84 }
85
86 /* Get the irq-routing property and apply the routing to the CPLD */
87 irq_routing = of_get_property(bcsr_node, "irq-routing", NULL);
88 if (irq_routing == NULL)
89 return;
90 for (i = 0; i < 16; i++) {
91 u8 irq = irq_routing[i];
92 out_8(bcsr_regs + BCSR_XIRQ_SELECT, i);
93 out_8(bcsr_regs + BCSR_XIRQ_ROUTING, irq);
94 }
95 in_8(bcsr_regs + BCSR_XIRQ_SELECT);
96 mb();
97 out_8(bcsr_regs + BCSR_GPIO_IRQ_PAR_CTRL, 0xfe);
98}
99
100static void __init ep405_setup_arch(void)
101{
102 /* Find & init the BCSR CPLD */
103 ep405_init_bcsr();
104}
105
106static int __init ep405_probe(void)
107{
108 unsigned long root = of_get_flat_dt_root();
109
110 if (!of_flat_dt_is_compatible(root, "ep405"))
111 return 0;
112
113 return 1;
114}
115
116define_machine(ep405) {
117 .name = "EP405",
118 .probe = ep405_probe,
119 .setup_arch = ep405_setup_arch,
120 .progress = udbg_progress,
121 .init_IRQ = uic_init_tree,
122 .get_irq = uic_get_irq,
123 .calibrate_decr = generic_calibrate_decr,
124};