diff options
Diffstat (limited to 'arch/powerpc')
83 files changed, 8297 insertions, 317 deletions
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index 53d0955abf11..9ae800d81f89 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig | |||
@@ -140,6 +140,9 @@ config DEFAULT_UIMAGE | |||
140 | Used to allow a board to specify it wants a uImage built by default | 140 | Used to allow a board to specify it wants a uImage built by default |
141 | default n | 141 | default n |
142 | 142 | ||
143 | config REDBOOT | ||
144 | bool | ||
145 | |||
143 | config PPC64_SWSUSP | 146 | config PPC64_SWSUSP |
144 | bool | 147 | bool |
145 | depends on PPC64 && (BROKEN || (PPC_PMAC64 && EXPERIMENTAL)) | 148 | depends on PPC64 && (BROKEN || (PPC_PMAC64 && EXPERIMENTAL)) |
diff --git a/arch/powerpc/boot/.gitignore b/arch/powerpc/boot/.gitignore index b160322a87ad..5ef2bdf8d189 100644 --- a/arch/powerpc/boot/.gitignore +++ b/arch/powerpc/boot/.gitignore | |||
@@ -31,6 +31,7 @@ zImage.*lds | |||
31 | zImage.miboot | 31 | zImage.miboot |
32 | zImage.pmac | 32 | zImage.pmac |
33 | zImage.pseries | 33 | zImage.pseries |
34 | zImage.redboot* | ||
34 | zImage.sandpoint | 35 | zImage.sandpoint |
35 | zImage.vmode | 36 | zImage.vmode |
36 | zconf.h | 37 | zconf.h |
diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile index d1e625c073bb..1e20aca48f45 100644 --- a/arch/powerpc/boot/Makefile +++ b/arch/powerpc/boot/Makefile | |||
@@ -57,12 +57,12 @@ src-wlib := string.S crt0.S stdio.c main.c \ | |||
57 | 4xx.c ebony.c mv64x60.c mpsc.c mv64x60_i2c.c cuboot.c bamboo.c \ | 57 | 4xx.c ebony.c mv64x60.c mpsc.c mv64x60_i2c.c cuboot.c bamboo.c \ |
58 | cpm-serial.c stdlib.c mpc52xx-psc.c planetcore.c uartlite.c \ | 58 | cpm-serial.c stdlib.c mpc52xx-psc.c planetcore.c uartlite.c \ |
59 | fsl-soc.c mpc8xx.c pq2.c | 59 | fsl-soc.c mpc8xx.c pq2.c |
60 | src-plat := of.c cuboot-52xx.c cuboot-83xx.c cuboot-85xx.c holly.c \ | 60 | src-plat := of.c cuboot-52xx.c cuboot-824x.c cuboot-83xx.c cuboot-85xx.c holly.c \ |
61 | cuboot-ebony.c treeboot-ebony.c prpmc2800.c \ | 61 | cuboot-ebony.c treeboot-ebony.c prpmc2800.c \ |
62 | ps3-head.S ps3-hvcall.S ps3.c treeboot-bamboo.c cuboot-8xx.c \ | 62 | ps3-head.S ps3-hvcall.S ps3.c treeboot-bamboo.c cuboot-8xx.c \ |
63 | cuboot-pq2.c cuboot-sequoia.c treeboot-walnut.c cuboot-bamboo.c \ | 63 | cuboot-pq2.c cuboot-sequoia.c treeboot-walnut.c cuboot-bamboo.c \ |
64 | fixed-head.S ep88xc.c cuboot-hpc2.c ep405.c cuboot-taishan.c \ | 64 | fixed-head.S ep88xc.c cuboot-hpc2.c ep405.c cuboot-taishan.c \ |
65 | cuboot-katmai.c cuboot-rainier.c | 65 | cuboot-katmai.c cuboot-rainier.c redboot-8xx.c ep8248e.c |
66 | src-boot := $(src-wlib) $(src-plat) empty.c | 66 | src-boot := $(src-wlib) $(src-plat) empty.c |
67 | 67 | ||
68 | src-boot := $(addprefix $(obj)/, $(src-boot)) | 68 | src-boot := $(addprefix $(obj)/, $(src-boot)) |
@@ -195,7 +195,9 @@ image-$(CONFIG_PPC_8xx) += cuImage.8xx | |||
195 | image-$(CONFIG_PPC_EP88XC) += zImage.ep88xc | 195 | image-$(CONFIG_PPC_EP88XC) += zImage.ep88xc |
196 | image-$(CONFIG_EP405) += zImage.ep405 | 196 | image-$(CONFIG_EP405) += zImage.ep405 |
197 | image-$(CONFIG_8260) += cuImage.pq2 | 197 | image-$(CONFIG_8260) += cuImage.pq2 |
198 | image-$(CONFIG_EP8248E) += zImage.ep8248e | ||
198 | image-$(CONFIG_PPC_MPC52xx) += cuImage.52xx | 199 | image-$(CONFIG_PPC_MPC52xx) += cuImage.52xx |
200 | image-$(CONFIG_STORCENTER) += cuImage.824x | ||
199 | image-$(CONFIG_PPC_83xx) += cuImage.83xx | 201 | image-$(CONFIG_PPC_83xx) += cuImage.83xx |
200 | image-$(CONFIG_PPC_85xx) += cuImage.85xx | 202 | image-$(CONFIG_PPC_85xx) += cuImage.85xx |
201 | image-$(CONFIG_MPC7448HPC2) += cuImage.hpc2 | 203 | image-$(CONFIG_MPC7448HPC2) += cuImage.hpc2 |
@@ -208,6 +210,10 @@ image-$(CONFIG_TAISHAN) += cuImage.taishan | |||
208 | image-$(CONFIG_KATMAI) += cuImage.katmai | 210 | image-$(CONFIG_KATMAI) += cuImage.katmai |
209 | endif | 211 | endif |
210 | 212 | ||
213 | ifneq ($(CONFIG_REDBOOT),"") | ||
214 | image-$(CONFIG_PPC_8xx) += zImage.redboot-8xx | ||
215 | endif | ||
216 | |||
211 | # For 32-bit powermacs, build the COFF and miboot images | 217 | # For 32-bit powermacs, build the COFF and miboot images |
212 | # as well as the ELF images. | 218 | # as well as the ELF images. |
213 | ifeq ($(CONFIG_PPC32),y) | 219 | ifeq ($(CONFIG_PPC32),y) |
diff --git a/arch/powerpc/boot/cuboot-824x.c b/arch/powerpc/boot/cuboot-824x.c new file mode 100644 index 000000000000..ced90c53de48 --- /dev/null +++ b/arch/powerpc/boot/cuboot-824x.c | |||
@@ -0,0 +1,53 @@ | |||
1 | /* | ||
2 | * Old U-boot compatibility for 824x | ||
3 | * | ||
4 | * Copyright (c) 2007 Freescale Semiconductor, Inc. | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify it | ||
7 | * under the terms of the GNU General Public License version 2 as published | ||
8 | * by the Free Software Foundation. | ||
9 | */ | ||
10 | |||
11 | #include "ops.h" | ||
12 | #include "stdio.h" | ||
13 | #include "cuboot.h" | ||
14 | |||
15 | #define TARGET_824x | ||
16 | #include "ppcboot.h" | ||
17 | |||
18 | static bd_t bd; | ||
19 | |||
20 | |||
21 | static void platform_fixups(void) | ||
22 | { | ||
23 | void *soc; | ||
24 | |||
25 | dt_fixup_memory(bd.bi_memstart, bd.bi_memsize); | ||
26 | dt_fixup_mac_addresses(bd.bi_enetaddr); | ||
27 | dt_fixup_cpu_clocks(bd.bi_intfreq, bd.bi_busfreq / 4, bd.bi_busfreq); | ||
28 | |||
29 | soc = find_node_by_devtype(NULL, "soc"); | ||
30 | if (soc) { | ||
31 | void *serial = NULL; | ||
32 | |||
33 | setprop(soc, "bus-frequency", &bd.bi_busfreq, | ||
34 | sizeof(bd.bi_busfreq)); | ||
35 | |||
36 | while ((serial = find_node_by_devtype(serial, "serial"))) { | ||
37 | if (get_parent(serial) != soc) | ||
38 | continue; | ||
39 | |||
40 | setprop(serial, "clock-frequency", &bd.bi_busfreq, | ||
41 | sizeof(bd.bi_busfreq)); | ||
42 | } | ||
43 | } | ||
44 | } | ||
45 | |||
46 | void platform_init(unsigned long r3, unsigned long r4, unsigned long r5, | ||
47 | unsigned long r6, unsigned long r7) | ||
48 | { | ||
49 | CUBOOT_INIT(); | ||
50 | fdt_init(_dtb_start); | ||
51 | serial_console_init(); | ||
52 | platform_ops.fixups = platform_fixups; | ||
53 | } | ||
diff --git a/arch/powerpc/boot/cuboot-83xx.c b/arch/powerpc/boot/cuboot-83xx.c index acd860ed7393..61af1c1e8255 100644 --- a/arch/powerpc/boot/cuboot-83xx.c +++ b/arch/powerpc/boot/cuboot-83xx.c | |||
@@ -24,7 +24,8 @@ static void platform_fixups(void) | |||
24 | void *soc; | 24 | void *soc; |
25 | 25 | ||
26 | dt_fixup_memory(bd.bi_memstart, bd.bi_memsize); | 26 | dt_fixup_memory(bd.bi_memstart, bd.bi_memsize); |
27 | dt_fixup_mac_addresses(bd.bi_enetaddr, bd.bi_enet1addr); | 27 | dt_fixup_mac_address_by_alias("ethernet0", bd.bi_enetaddr); |
28 | dt_fixup_mac_address_by_alias("ethernet1", bd.bi_enet1addr); | ||
28 | dt_fixup_cpu_clocks(bd.bi_intfreq, bd.bi_busfreq / 4, bd.bi_busfreq); | 29 | dt_fixup_cpu_clocks(bd.bi_intfreq, bd.bi_busfreq / 4, bd.bi_busfreq); |
29 | 30 | ||
30 | /* Unfortunately, the specific model number is encoded in the | 31 | /* Unfortunately, the specific model number is encoded in the |
diff --git a/arch/powerpc/boot/cuboot-85xx.c b/arch/powerpc/boot/cuboot-85xx.c index 943779ed19be..6776a1a29f13 100644 --- a/arch/powerpc/boot/cuboot-85xx.c +++ b/arch/powerpc/boot/cuboot-85xx.c | |||
@@ -24,8 +24,9 @@ static void platform_fixups(void) | |||
24 | void *soc; | 24 | void *soc; |
25 | 25 | ||
26 | dt_fixup_memory(bd.bi_memstart, bd.bi_memsize); | 26 | dt_fixup_memory(bd.bi_memstart, bd.bi_memsize); |
27 | dt_fixup_mac_addresses(bd.bi_enetaddr, bd.bi_enet1addr, | 27 | dt_fixup_mac_address_by_alias("ethernet0", bd.bi_enetaddr); |
28 | bd.bi_enet2addr); | 28 | dt_fixup_mac_address_by_alias("ethernet1", bd.bi_enet1addr); |
29 | dt_fixup_mac_address_by_alias("ethernet2", bd.bi_enet2addr); | ||
29 | dt_fixup_cpu_clocks(bd.bi_intfreq, bd.bi_busfreq / 8, bd.bi_busfreq); | 30 | dt_fixup_cpu_clocks(bd.bi_intfreq, bd.bi_busfreq / 8, bd.bi_busfreq); |
30 | 31 | ||
31 | /* Unfortunately, the specific model number is encoded in the | 32 | /* Unfortunately, the specific model number is encoded in the |
diff --git a/arch/powerpc/boot/devtree.c b/arch/powerpc/boot/devtree.c index e5dfe4497313..60f561e307a9 100644 --- a/arch/powerpc/boot/devtree.c +++ b/arch/powerpc/boot/devtree.c | |||
@@ -88,6 +88,20 @@ void dt_fixup_clock(const char *path, u32 freq) | |||
88 | } | 88 | } |
89 | } | 89 | } |
90 | 90 | ||
91 | void dt_fixup_mac_address_by_alias(const char *alias, const u8 *addr) | ||
92 | { | ||
93 | void *devp = find_node_by_alias(alias); | ||
94 | |||
95 | if (devp) { | ||
96 | printf("%s: local-mac-address <-" | ||
97 | " %02x:%02x:%02x:%02x:%02x:%02x\n\r", alias, | ||
98 | addr[0], addr[1], addr[2], | ||
99 | addr[3], addr[4], addr[5]); | ||
100 | |||
101 | setprop(devp, "local-mac-address", addr, 6); | ||
102 | } | ||
103 | } | ||
104 | |||
91 | void dt_fixup_mac_address(u32 index, const u8 *addr) | 105 | void dt_fixup_mac_address(u32 index, const u8 *addr) |
92 | { | 106 | { |
93 | void *devp = find_node_by_prop_value(NULL, "linux,network-index", | 107 | void *devp = find_node_by_prop_value(NULL, "linux,network-index", |
diff --git a/arch/powerpc/boot/dts/adder875-redboot.dts b/arch/powerpc/boot/dts/adder875-redboot.dts new file mode 100644 index 000000000000..930bfb3894eb --- /dev/null +++ b/arch/powerpc/boot/dts/adder875-redboot.dts | |||
@@ -0,0 +1,184 @@ | |||
1 | /* | ||
2 | * Device Tree Source for MPC885 ADS running RedBoot | ||
3 | * | ||
4 | * Copyright 2006 MontaVista Software, Inc. | ||
5 | * Copyright 2007 Freescale Semiconductor, Inc. | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify it | ||
8 | * under the terms of the GNU General Public License as published by the | ||
9 | * Free Software Foundation; either version 2 of the License, or (at your | ||
10 | * option) any later version. | ||
11 | */ | ||
12 | |||
13 | /dts-v1/; | ||
14 | / { | ||
15 | model = "Analogue & Micro Adder MPC875"; | ||
16 | compatible = "analogue-and-micro,adder875"; | ||
17 | #address-cells = <1>; | ||
18 | #size-cells = <1>; | ||
19 | |||
20 | aliases { | ||
21 | console = &console; | ||
22 | ethernet0 = ð0; | ||
23 | ethernet1 = ð1; | ||
24 | }; | ||
25 | |||
26 | cpus { | ||
27 | #address-cells = <1>; | ||
28 | #size-cells = <0>; | ||
29 | |||
30 | PowerPC,875@0 { | ||
31 | device_type = "cpu"; | ||
32 | reg = <0>; | ||
33 | d-cache-line-size = <16>; | ||
34 | i-cache-line-size = <16>; | ||
35 | d-cache-size = <8192>; | ||
36 | i-cache-size = <8192>; | ||
37 | timebase-frequency = <0>; | ||
38 | bus-frequency = <0>; | ||
39 | clock-frequency = <0>; | ||
40 | interrupts = <15 2>; // decrementer interrupt | ||
41 | interrupt-parent = <&PIC>; | ||
42 | }; | ||
43 | }; | ||
44 | |||
45 | memory { | ||
46 | device_type = "memory"; | ||
47 | reg = <0 0x01000000>; | ||
48 | }; | ||
49 | |||
50 | localbus@fa200100 { | ||
51 | compatible = "fsl,mpc885-localbus", "fsl,pq1-localbus", | ||
52 | "simple-bus"; | ||
53 | #address-cells = <2>; | ||
54 | #size-cells = <1>; | ||
55 | reg = <0xfa200100 0x40>; | ||
56 | |||
57 | ranges = < | ||
58 | 0 0 0xfe000000 0x00800000 | ||
59 | 2 0 0xfa100000 0x00008000 | ||
60 | >; | ||
61 | |||
62 | flash@0,0 { | ||
63 | compatible = "cfi-flash"; | ||
64 | reg = <0 0 0x800000>; | ||
65 | bank-width = <2>; | ||
66 | device-width = <2>; | ||
67 | }; | ||
68 | }; | ||
69 | |||
70 | soc@fa200000 { | ||
71 | compatible = "fsl,mpc875-immr", "fsl,pq1-soc", "simple-bus"; | ||
72 | #address-cells = <1>; | ||
73 | #size-cells = <1>; | ||
74 | ranges = <0 0xfa200000 0x00004000>; | ||
75 | |||
76 | // Temporary until code stops depending on it. | ||
77 | device_type = "soc"; | ||
78 | |||
79 | // Temporary until get_immrbase() is fixed. | ||
80 | reg = <0xfa200000 0x4000>; | ||
81 | |||
82 | mdio@e00 { | ||
83 | compatible = "fsl,mpc875-fec-mdio", "fsl,pq1-fec-mdio"; | ||
84 | reg = <0xe00 0x188>; | ||
85 | #address-cells = <1>; | ||
86 | #size-cells = <0>; | ||
87 | |||
88 | PHY0: ethernet-phy@0 { | ||
89 | reg = <0>; | ||
90 | device_type = "ethernet-phy"; | ||
91 | }; | ||
92 | |||
93 | PHY1: ethernet-phy@1 { | ||
94 | reg = <1>; | ||
95 | device_type = "ethernet-phy"; | ||
96 | }; | ||
97 | }; | ||
98 | |||
99 | eth0: ethernet@e00 { | ||
100 | device_type = "network"; | ||
101 | compatible = "fsl,mpc875-fec-enet", | ||
102 | "fsl,pq1-fec-enet"; | ||
103 | reg = <0xe00 0x188>; | ||
104 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
105 | interrupts = <3 1>; | ||
106 | interrupt-parent = <&PIC>; | ||
107 | phy-handle = <&PHY0>; | ||
108 | linux,network-index = <0>; | ||
109 | }; | ||
110 | |||
111 | eth1: ethernet@1e00 { | ||
112 | device_type = "network"; | ||
113 | compatible = "fsl,mpc875-fec-enet", | ||
114 | "fsl,pq1-fec-enet"; | ||
115 | reg = <0x1e00 0x188>; | ||
116 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
117 | interrupts = <7 1>; | ||
118 | interrupt-parent = <&PIC>; | ||
119 | phy-handle = <&PHY1>; | ||
120 | linux,network-index = <1>; | ||
121 | }; | ||
122 | |||
123 | PIC: interrupt-controller@0 { | ||
124 | interrupt-controller; | ||
125 | #interrupt-cells = <2>; | ||
126 | reg = <0 0x24>; | ||
127 | compatible = "fsl,mpc875-pic", "fsl,pq1-pic"; | ||
128 | }; | ||
129 | |||
130 | cpm@9c0 { | ||
131 | #address-cells = <1>; | ||
132 | #size-cells = <1>; | ||
133 | compatible = "fsl,mpc875-cpm", "fsl,cpm1", "simple-bus"; | ||
134 | interrupts = <0>; // cpm error interrupt | ||
135 | interrupt-parent = <&CPM_PIC>; | ||
136 | reg = <0x9c0 0x40>; | ||
137 | ranges; | ||
138 | |||
139 | muram { | ||
140 | #address-cells = <1>; | ||
141 | #size-cells = <1>; | ||
142 | ranges = <0 0x2000 0x2000>; | ||
143 | |||
144 | data@0 { | ||
145 | compatible = "fsl,cpm-muram-data"; | ||
146 | reg = <0 0x1c00>; | ||
147 | }; | ||
148 | }; | ||
149 | |||
150 | brg@9f0 { | ||
151 | compatible = "fsl,mpc875-brg", | ||
152 | "fsl,cpm1-brg", | ||
153 | "fsl,cpm-brg"; | ||
154 | reg = <0x9f0 0x10>; | ||
155 | }; | ||
156 | |||
157 | CPM_PIC: interrupt-controller@930 { | ||
158 | interrupt-controller; | ||
159 | #interrupt-cells = <1>; | ||
160 | interrupts = <5 2 0 2>; | ||
161 | interrupt-parent = <&PIC>; | ||
162 | reg = <0x930 0x20>; | ||
163 | compatible = "fsl,mpc875-cpm-pic", | ||
164 | "fsl,cpm1-pic"; | ||
165 | }; | ||
166 | |||
167 | console: serial@a80 { | ||
168 | device_type = "serial"; | ||
169 | compatible = "fsl,mpc875-smc-uart", | ||
170 | "fsl,cpm1-smc-uart"; | ||
171 | reg = <0xa80 0x10 0x3e80 0x40>; | ||
172 | interrupts = <4>; | ||
173 | interrupt-parent = <&CPM_PIC>; | ||
174 | fsl,cpm-brg = <1>; | ||
175 | fsl,cpm-command = <0x0090>; | ||
176 | current-speed = <115200>; | ||
177 | }; | ||
178 | }; | ||
179 | }; | ||
180 | |||
181 | chosen { | ||
182 | linux,stdout-path = &console; | ||
183 | }; | ||
184 | }; | ||
diff --git a/arch/powerpc/boot/dts/adder875-uboot.dts b/arch/powerpc/boot/dts/adder875-uboot.dts new file mode 100644 index 000000000000..0197242dacfb --- /dev/null +++ b/arch/powerpc/boot/dts/adder875-uboot.dts | |||
@@ -0,0 +1,183 @@ | |||
1 | /* | ||
2 | * Device Tree Source for MPC885 ADS running U-Boot | ||
3 | * | ||
4 | * Copyright 2006 MontaVista Software, Inc. | ||
5 | * Copyright 2007 Freescale Semiconductor, Inc. | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify it | ||
8 | * under the terms of the GNU General Public License as published by the | ||
9 | * Free Software Foundation; either version 2 of the License, or (at your | ||
10 | * option) any later version. | ||
11 | */ | ||
12 | |||
13 | /dts-v1/; | ||
14 | / { | ||
15 | model = "Analogue & Micro Adder MPC875"; | ||
16 | compatible = "analogue-and-micro,adder875"; | ||
17 | #address-cells = <1>; | ||
18 | #size-cells = <1>; | ||
19 | |||
20 | aliases { | ||
21 | console = &console; | ||
22 | ethernet0 = ð0; | ||
23 | ethernet1 = ð1; | ||
24 | }; | ||
25 | |||
26 | cpus { | ||
27 | #address-cells = <1>; | ||
28 | #size-cells = <0>; | ||
29 | |||
30 | PowerPC,875@0 { | ||
31 | device_type = "cpu"; | ||
32 | reg = <0>; | ||
33 | d-cache-line-size = <16>; | ||
34 | i-cache-line-size = <16>; | ||
35 | d-cache-size = <8192>; | ||
36 | i-cache-size = <8192>; | ||
37 | timebase-frequency = <0>; | ||
38 | bus-frequency = <0>; | ||
39 | clock-frequency = <0>; | ||
40 | interrupts = <15 2>; // decrementer interrupt | ||
41 | interrupt-parent = <&PIC>; | ||
42 | }; | ||
43 | }; | ||
44 | |||
45 | memory { | ||
46 | device_type = "memory"; | ||
47 | reg = <0 0x01000000>; | ||
48 | }; | ||
49 | |||
50 | localbus@ff000100 { | ||
51 | compatible = "fsl,mpc885-localbus", "fsl,pq1-localbus", | ||
52 | "simple-bus"; | ||
53 | #address-cells = <2>; | ||
54 | #size-cells = <1>; | ||
55 | reg = <0xff000100 0x40>; | ||
56 | |||
57 | ranges = < | ||
58 | 0 0 0xfe000000 0x01000000 | ||
59 | >; | ||
60 | |||
61 | flash@0,0 { | ||
62 | compatible = "cfi-flash"; | ||
63 | reg = <0 0 0x800000>; | ||
64 | bank-width = <2>; | ||
65 | device-width = <2>; | ||
66 | }; | ||
67 | }; | ||
68 | |||
69 | soc@ff000000 { | ||
70 | compatible = "fsl,mpc875-immr", "fsl,pq1-soc", "simple-bus"; | ||
71 | #address-cells = <1>; | ||
72 | #size-cells = <1>; | ||
73 | ranges = <0 0xff000000 0x00004000>; | ||
74 | |||
75 | // Temporary until code stops depending on it. | ||
76 | device_type = "soc"; | ||
77 | |||
78 | // Temporary until get_immrbase() is fixed. | ||
79 | reg = <0xff000000 0x4000>; | ||
80 | |||
81 | mdio@e00 { | ||
82 | compatible = "fsl,mpc875-fec-mdio", "fsl,pq1-fec-mdio"; | ||
83 | reg = <0xe00 0x188>; | ||
84 | #address-cells = <1>; | ||
85 | #size-cells = <0>; | ||
86 | |||
87 | PHY0: ethernet-phy@0 { | ||
88 | reg = <0>; | ||
89 | device_type = "ethernet-phy"; | ||
90 | }; | ||
91 | |||
92 | PHY1: ethernet-phy@1 { | ||
93 | reg = <1>; | ||
94 | device_type = "ethernet-phy"; | ||
95 | }; | ||
96 | }; | ||
97 | |||
98 | eth0: ethernet@e00 { | ||
99 | device_type = "network"; | ||
100 | compatible = "fsl,mpc875-fec-enet", | ||
101 | "fsl,pq1-fec-enet"; | ||
102 | reg = <0xe00 0x188>; | ||
103 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
104 | interrupts = <3 1>; | ||
105 | interrupt-parent = <&PIC>; | ||
106 | phy-handle = <&PHY0>; | ||
107 | linux,network-index = <0>; | ||
108 | }; | ||
109 | |||
110 | eth1: ethernet@1e00 { | ||
111 | device_type = "network"; | ||
112 | compatible = "fsl,mpc875-fec-enet", | ||
113 | "fsl,pq1-fec-enet"; | ||
114 | reg = <0x1e00 0x188>; | ||
115 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
116 | interrupts = <7 1>; | ||
117 | interrupt-parent = <&PIC>; | ||
118 | phy-handle = <&PHY1>; | ||
119 | linux,network-index = <1>; | ||
120 | }; | ||
121 | |||
122 | PIC: interrupt-controller@0 { | ||
123 | interrupt-controller; | ||
124 | #interrupt-cells = <2>; | ||
125 | reg = <0 0x24>; | ||
126 | compatible = "fsl,mpc875-pic", "fsl,pq1-pic"; | ||
127 | }; | ||
128 | |||
129 | cpm@9c0 { | ||
130 | #address-cells = <1>; | ||
131 | #size-cells = <1>; | ||
132 | compatible = "fsl,mpc875-cpm", "fsl,cpm1", "simple-bus"; | ||
133 | interrupts = <0>; // cpm error interrupt | ||
134 | interrupt-parent = <&CPM_PIC>; | ||
135 | reg = <0x9c0 0x40>; | ||
136 | ranges; | ||
137 | |||
138 | muram { | ||
139 | #address-cells = <1>; | ||
140 | #size-cells = <1>; | ||
141 | ranges = <0 0x2000 0x2000>; | ||
142 | |||
143 | data@0 { | ||
144 | compatible = "fsl,cpm-muram-data"; | ||
145 | reg = <0 0x1c00>; | ||
146 | }; | ||
147 | }; | ||
148 | |||
149 | brg@9f0 { | ||
150 | compatible = "fsl,mpc875-brg", | ||
151 | "fsl,cpm1-brg", | ||
152 | "fsl,cpm-brg"; | ||
153 | reg = <0x9f0 0x10>; | ||
154 | }; | ||
155 | |||
156 | CPM_PIC: interrupt-controller@930 { | ||
157 | interrupt-controller; | ||
158 | #interrupt-cells = <1>; | ||
159 | interrupts = <5 2 0 2>; | ||
160 | interrupt-parent = <&PIC>; | ||
161 | reg = <0x930 0x20>; | ||
162 | compatible = "fsl,mpc875-cpm-pic", | ||
163 | "fsl,cpm1-pic"; | ||
164 | }; | ||
165 | |||
166 | console: serial@a80 { | ||
167 | device_type = "serial"; | ||
168 | compatible = "fsl,mpc875-smc-uart", | ||
169 | "fsl,cpm1-smc-uart"; | ||
170 | reg = <0xa80 0x10 0x3e80 0x40>; | ||
171 | interrupts = <4>; | ||
172 | interrupt-parent = <&CPM_PIC>; | ||
173 | fsl,cpm-brg = <1>; | ||
174 | fsl,cpm-command = <0x0090>; | ||
175 | current-speed = <115200>; | ||
176 | }; | ||
177 | }; | ||
178 | }; | ||
179 | |||
180 | chosen { | ||
181 | linux,stdout-path = &console; | ||
182 | }; | ||
183 | }; | ||
diff --git a/arch/powerpc/boot/dts/ep8248e.dts b/arch/powerpc/boot/dts/ep8248e.dts new file mode 100644 index 000000000000..5d2fb76a72c1 --- /dev/null +++ b/arch/powerpc/boot/dts/ep8248e.dts | |||
@@ -0,0 +1,207 @@ | |||
1 | /* | ||
2 | * Device Tree for the Embedded Planet EP8248E board running PlanetCore. | ||
3 | * | ||
4 | * Copyright 2007 Freescale Semiconductor Inc. | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify it | ||
7 | * under the terms of the GNU General Public License as published by the | ||
8 | * Free Software Foundation; either version 2 of the License, or (at your | ||
9 | * option) any later version. | ||
10 | */ | ||
11 | |||
12 | /dts-v1/; | ||
13 | / { | ||
14 | model = "EP8248E"; | ||
15 | compatible = "fsl,ep8248e"; | ||
16 | #address-cells = <1>; | ||
17 | #size-cells = <1>; | ||
18 | |||
19 | aliases { | ||
20 | planetcore-SMC1 = &smc1; | ||
21 | planetcore-SCC1 = &scc1; | ||
22 | ethernet0 = ð0; | ||
23 | ethernet1 = ð1; | ||
24 | serial0 = &smc1; | ||
25 | serial1 = &scc1; | ||
26 | }; | ||
27 | |||
28 | cpus { | ||
29 | #address-cells = <1>; | ||
30 | #size-cells = <0>; | ||
31 | |||
32 | PowerPC,8248@0 { | ||
33 | device_type = "cpu"; | ||
34 | reg = <0>; | ||
35 | d-cache-line-size = <32>; | ||
36 | i-cache-line-size = <32>; | ||
37 | d-cache-size = <16384>; | ||
38 | i-cache-size = <16384>; | ||
39 | timebase-frequency = <0>; | ||
40 | clock-frequency = <0>; | ||
41 | }; | ||
42 | }; | ||
43 | |||
44 | localbus@f0010100 { | ||
45 | compatible = "fsl,mpc8248-localbus", | ||
46 | "fsl,pq2-localbus", | ||
47 | "simple-bus"; | ||
48 | #address-cells = <2>; | ||
49 | #size-cells = <1>; | ||
50 | reg = <0xf0010100 0x40>; | ||
51 | |||
52 | ranges = <0 0 0xfc000000 0x04000000 | ||
53 | 1 0 0xfa000000 0x00008000>; | ||
54 | |||
55 | flash@0,3800000 { | ||
56 | compatible = "cfi-flash"; | ||
57 | reg = <0 0x3800000 0x800000>; | ||
58 | bank-width = <4>; | ||
59 | device-width = <2>; | ||
60 | }; | ||
61 | |||
62 | bcsr@1,0 { | ||
63 | #address-cells = <2>; | ||
64 | #size-cells = <1>; | ||
65 | reg = <1 0 0x10>; | ||
66 | compatible = "fsl,ep8248e-bcsr"; | ||
67 | ranges; | ||
68 | |||
69 | mdio { | ||
70 | device_type = "mdio"; | ||
71 | compatible = "fsl,ep8248e-mdio-bitbang"; | ||
72 | #address-cells = <1>; | ||
73 | #size-cells = <0>; | ||
74 | reg = <1 8 1>; | ||
75 | |||
76 | PHY0: ethernet-phy@0 { | ||
77 | interrupt-parent = <&PIC>; | ||
78 | reg = <0>; | ||
79 | device_type = "ethernet-phy"; | ||
80 | }; | ||
81 | |||
82 | PHY1: ethernet-phy@1 { | ||
83 | interrupt-parent = <&PIC>; | ||
84 | reg = <1>; | ||
85 | device_type = "ethernet-phy"; | ||
86 | }; | ||
87 | }; | ||
88 | }; | ||
89 | }; | ||
90 | |||
91 | memory { | ||
92 | device_type = "memory"; | ||
93 | reg = <0 0>; | ||
94 | }; | ||
95 | |||
96 | soc@f0000000 { | ||
97 | #address-cells = <1>; | ||
98 | #size-cells = <1>; | ||
99 | compatible = "fsl,mpc8248-immr", "fsl,pq2-soc", "simple-bus"; | ||
100 | ranges = <0x00000000 0xf0000000 0x00053000>; | ||
101 | |||
102 | // Temporary until code stops depending on it. | ||
103 | device_type = "soc"; | ||
104 | |||
105 | // Temporary -- will go away once kernel uses ranges for get_immrbase(). | ||
106 | reg = <0xf0000000 0x00053000>; | ||
107 | |||
108 | cpm@119c0 { | ||
109 | #address-cells = <1>; | ||
110 | #size-cells = <1>; | ||
111 | #interrupt-cells = <2>; | ||
112 | compatible = "fsl,mpc8248-cpm", "fsl,cpm2", | ||
113 | "simple-bus"; | ||
114 | reg = <0x119c0 0x30>; | ||
115 | ranges; | ||
116 | |||
117 | muram { | ||
118 | #address-cells = <1>; | ||
119 | #size-cells = <1>; | ||
120 | ranges = <0 0 0x10000>; | ||
121 | |||
122 | data@0 { | ||
123 | compatible = "fsl,cpm-muram-data"; | ||
124 | reg = <0 0x1100 0x1140 | ||
125 | 0xec0 0x9800 0x800>; | ||
126 | }; | ||
127 | }; | ||
128 | |||
129 | brg@119f0 { | ||
130 | compatible = "fsl,mpc8248-brg", | ||
131 | "fsl,cpm2-brg", | ||
132 | "fsl,cpm-brg"; | ||
133 | reg = <0x119f0 0x10 0x115f0 0x10>; | ||
134 | }; | ||
135 | |||
136 | /* Monitor port/SMC1 */ | ||
137 | smc1: serial@11a80 { | ||
138 | device_type = "serial"; | ||
139 | compatible = "fsl,mpc8248-smc-uart", | ||
140 | "fsl,cpm2-smc-uart"; | ||
141 | reg = <0x11a80 0x20 0x1100 0x40>; | ||
142 | interrupts = <4 8>; | ||
143 | interrupt-parent = <&PIC>; | ||
144 | fsl,cpm-brg = <7>; | ||
145 | fsl,cpm-command = <0x1d000000>; | ||
146 | linux,planetcore-label = "SMC1"; | ||
147 | }; | ||
148 | |||
149 | /* "Serial" port/SCC1 */ | ||
150 | scc1: serial@11a00 { | ||
151 | device_type = "serial"; | ||
152 | compatible = "fsl,mpc8248-scc-uart", | ||
153 | "fsl,cpm2-scc-uart"; | ||
154 | reg = <0x11a00 0x20 0x8000 0x100>; | ||
155 | interrupts = <40 8>; | ||
156 | interrupt-parent = <&PIC>; | ||
157 | fsl,cpm-brg = <1>; | ||
158 | fsl,cpm-command = <0x00800000>; | ||
159 | linux,planetcore-label = "SCC1"; | ||
160 | }; | ||
161 | |||
162 | eth0: ethernet@11300 { | ||
163 | device_type = "network"; | ||
164 | compatible = "fsl,mpc8248-fcc-enet", | ||
165 | "fsl,cpm2-fcc-enet"; | ||
166 | reg = <0x11300 0x20 0x8400 0x100 0x11390 1>; | ||
167 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
168 | interrupts = <32 8>; | ||
169 | interrupt-parent = <&PIC>; | ||
170 | phy-handle = <&PHY0>; | ||
171 | linux,network-index = <0>; | ||
172 | fsl,cpm-command = <0x12000300>; | ||
173 | }; | ||
174 | |||
175 | eth1: ethernet@11320 { | ||
176 | device_type = "network"; | ||
177 | compatible = "fsl,mpc8248-fcc-enet", | ||
178 | "fsl,cpm2-fcc-enet"; | ||
179 | reg = <0x11320 0x20 0x8500 0x100 0x113b0 1>; | ||
180 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
181 | interrupts = <33 8>; | ||
182 | interrupt-parent = <&PIC>; | ||
183 | phy-handle = <&PHY1>; | ||
184 | linux,network-index = <1>; | ||
185 | fsl,cpm-command = <0x16200300>; | ||
186 | }; | ||
187 | |||
188 | usb@11b60 { | ||
189 | #address-cells = <1>; | ||
190 | #size-cells = <0>; | ||
191 | compatible = "fsl,mpc8248-usb", | ||
192 | "fsl,cpm2-usb"; | ||
193 | reg = <0x11b60 0x18 0x8b00 0x100>; | ||
194 | interrupt-parent = <&PIC>; | ||
195 | interrupts = <11 8>; | ||
196 | fsl,cpm-command = <0x2e600000>; | ||
197 | }; | ||
198 | }; | ||
199 | |||
200 | PIC: interrupt-controller@10c00 { | ||
201 | #interrupt-cells = <2>; | ||
202 | interrupt-controller; | ||
203 | reg = <0x10c00 0x80>; | ||
204 | compatible = "fsl,mpc8248-pic", "fsl,pq2-pic"; | ||
205 | }; | ||
206 | }; | ||
207 | }; | ||
diff --git a/arch/powerpc/boot/dts/mpc8313erdb.dts b/arch/powerpc/boot/dts/mpc8313erdb.dts index c5b6665a8209..9bcf2c92541f 100644 --- a/arch/powerpc/boot/dts/mpc8313erdb.dts +++ b/arch/powerpc/boot/dts/mpc8313erdb.dts | |||
@@ -45,10 +45,58 @@ | |||
45 | reg = <00000000 08000000>; // 128MB at 0 | 45 | reg = <00000000 08000000>; // 128MB at 0 |
46 | }; | 46 | }; |
47 | 47 | ||
48 | localbus@e0005000 { | ||
49 | #address-cells = <2>; | ||
50 | #size-cells = <1>; | ||
51 | compatible = "fsl,mpc8313-elbc", "fsl,elbc", "simple-bus"; | ||
52 | reg = <e0005000 1000>; | ||
53 | interrupts = <d#77 8>; | ||
54 | interrupt-parent = <&ipic>; | ||
55 | |||
56 | // CS0 and CS1 are swapped when | ||
57 | // booting from nand, but the | ||
58 | // addresses are the same. | ||
59 | ranges = <0 0 fe000000 00800000 | ||
60 | 1 0 e2800000 00008000 | ||
61 | 2 0 f0000000 00020000 | ||
62 | 3 0 fa000000 00008000>; | ||
63 | |||
64 | flash@0,0 { | ||
65 | #address-cells = <1>; | ||
66 | #size-cells = <1>; | ||
67 | compatible = "cfi-flash"; | ||
68 | reg = <0 0 800000>; | ||
69 | bank-width = <2>; | ||
70 | device-width = <1>; | ||
71 | }; | ||
72 | |||
73 | nand@1,0 { | ||
74 | #address-cells = <1>; | ||
75 | #size-cells = <1>; | ||
76 | compatible = "fsl,mpc8313-fcm-nand", | ||
77 | "fsl,elbc-fcm-nand"; | ||
78 | reg = <1 0 2000>; | ||
79 | |||
80 | u-boot@0 { | ||
81 | reg = <0 100000>; | ||
82 | read-only; | ||
83 | }; | ||
84 | |||
85 | kernel@100000 { | ||
86 | reg = <100000 300000>; | ||
87 | }; | ||
88 | |||
89 | fs@400000 { | ||
90 | reg = <400000 1c00000>; | ||
91 | }; | ||
92 | }; | ||
93 | }; | ||
94 | |||
48 | soc8313@e0000000 { | 95 | soc8313@e0000000 { |
49 | #address-cells = <1>; | 96 | #address-cells = <1>; |
50 | #size-cells = <1>; | 97 | #size-cells = <1>; |
51 | device_type = "soc"; | 98 | device_type = "soc"; |
99 | compatible = "simple-bus"; | ||
52 | ranges = <0 e0000000 00100000>; | 100 | ranges = <0 e0000000 00100000>; |
53 | reg = <e0000000 00000200>; | 101 | reg = <e0000000 00000200>; |
54 | bus-frequency = <0>; | 102 | bus-frequency = <0>; |
@@ -92,7 +140,6 @@ | |||
92 | 140 | ||
93 | /* phy type (ULPI, UTMI, UTMI_WIDE, SERIAL) */ | 141 | /* phy type (ULPI, UTMI, UTMI_WIDE, SERIAL) */ |
94 | usb@23000 { | 142 | usb@23000 { |
95 | device_type = "usb"; | ||
96 | compatible = "fsl-usb2-dr"; | 143 | compatible = "fsl-usb2-dr"; |
97 | reg = <23000 1000>; | 144 | reg = <23000 1000>; |
98 | #address-cells = <1>; | 145 | #address-cells = <1>; |
diff --git a/arch/powerpc/boot/dts/mpc832x_mds.dts b/arch/powerpc/boot/dts/mpc832x_mds.dts index 26ac467b10ea..690252456d3d 100644 --- a/arch/powerpc/boot/dts/mpc832x_mds.dts +++ b/arch/powerpc/boot/dts/mpc832x_mds.dts | |||
@@ -7,6 +7,18 @@ | |||
7 | * under the terms of the GNU General Public License as published by the | 7 | * under the terms of the GNU General Public License as published by the |
8 | * Free Software Foundation; either version 2 of the License, or (at your | 8 | * Free Software Foundation; either version 2 of the License, or (at your |
9 | * option) any later version. | 9 | * option) any later version. |
10 | |||
11 | * To enable external serial I/O on a Freescale MPC 8323 SYS/MDS board, do | ||
12 | * this: | ||
13 | * | ||
14 | * 1) On chip U61, lift (disconnect) pins 21 (TXD) and 22 (RXD) from the board. | ||
15 | * 2) Solder a wire from U61-21 to P19A-23. P19 is a grid of pins on the board | ||
16 | * next to the serial ports. | ||
17 | * 3) Solder a wire from U61-22 to P19K-22. | ||
18 | * | ||
19 | * Note that there's a typo in the schematic. The board labels the last column | ||
20 | * of pins "P19K", but in the schematic, that column is called "P19J". So if | ||
21 | * you're going by the schematic, the pin is called "P19J-K22". | ||
10 | */ | 22 | */ |
11 | 23 | ||
12 | / { | 24 | / { |
@@ -169,6 +181,23 @@ | |||
169 | 1 1e 1 0 1 0 /* TX_EN */ | 181 | 1 1e 1 0 1 0 /* TX_EN */ |
170 | 1 1f 2 0 1 0>;/* CRS */ | 182 | 1 1f 2 0 1 0>;/* CRS */ |
171 | }; | 183 | }; |
184 | pio5: ucc_pin@05 { | ||
185 | pio-map = < | ||
186 | /* | ||
187 | * open has | ||
188 | * port pin dir drain sel irq | ||
189 | */ | ||
190 | 2 0 1 0 2 0 /* TxD5 */ | ||
191 | 2 8 2 0 2 0 /* RxD5 */ | ||
192 | |||
193 | 2 1d 2 0 0 0 /* CTS5 */ | ||
194 | 2 1f 1 0 2 0 /* RTS5 */ | ||
195 | |||
196 | 2 18 2 0 0 0 /* CD */ | ||
197 | |||
198 | >; | ||
199 | }; | ||
200 | |||
172 | }; | 201 | }; |
173 | }; | 202 | }; |
174 | 203 | ||
@@ -176,6 +205,7 @@ | |||
176 | #address-cells = <1>; | 205 | #address-cells = <1>; |
177 | #size-cells = <1>; | 206 | #size-cells = <1>; |
178 | device_type = "qe"; | 207 | device_type = "qe"; |
208 | compatible = "fsl,qe"; | ||
179 | model = "QE"; | 209 | model = "QE"; |
180 | ranges = <0 e0100000 00100000>; | 210 | ranges = <0 e0100000 00100000>; |
181 | reg = <e0100000 480>; | 211 | reg = <e0100000 480>; |
@@ -210,7 +240,6 @@ | |||
210 | }; | 240 | }; |
211 | 241 | ||
212 | usb@6c0 { | 242 | usb@6c0 { |
213 | device_type = "usb"; | ||
214 | compatible = "qe_udc"; | 243 | compatible = "qe_udc"; |
215 | reg = <6c0 40 8B00 100>; | 244 | reg = <6c0 40 8B00 100>; |
216 | interrupts = <b>; | 245 | interrupts = <b>; |
@@ -250,6 +279,26 @@ | |||
250 | pio-handle = < &pio4 >; | 279 | pio-handle = < &pio4 >; |
251 | }; | 280 | }; |
252 | 281 | ||
282 | ucc@2400 { | ||
283 | device_type = "serial"; | ||
284 | compatible = "ucc_uart"; | ||
285 | model = "UCC"; | ||
286 | device-id = <5>; /* The UCC number, 1-7*/ | ||
287 | port-number = <0>; /* Which ttyQEx device */ | ||
288 | soft-uart; /* We need Soft-UART */ | ||
289 | reg = <2400 200>; | ||
290 | interrupts = <28>; /* From Table 18-12 */ | ||
291 | interrupt-parent = < &qeic >; | ||
292 | /* | ||
293 | * For Soft-UART, we need to set TX to 1X, which | ||
294 | * means specifying separate clock sources. | ||
295 | */ | ||
296 | rx-clock-name = "brg5"; | ||
297 | tx-clock-name = "brg6"; | ||
298 | pio-handle = < &pio5 >; | ||
299 | }; | ||
300 | |||
301 | |||
253 | mdio@2320 { | 302 | mdio@2320 { |
254 | #address-cells = <1>; | 303 | #address-cells = <1>; |
255 | #size-cells = <0>; | 304 | #size-cells = <0>; |
diff --git a/arch/powerpc/boot/dts/mpc8349emitx.dts b/arch/powerpc/boot/dts/mpc8349emitx.dts index e354f2634246..04b8da4deb60 100644 --- a/arch/powerpc/boot/dts/mpc8349emitx.dts +++ b/arch/powerpc/boot/dts/mpc8349emitx.dts | |||
@@ -91,7 +91,6 @@ | |||
91 | }; | 91 | }; |
92 | 92 | ||
93 | usb@22000 { | 93 | usb@22000 { |
94 | device_type = "usb"; | ||
95 | compatible = "fsl-usb2-mph"; | 94 | compatible = "fsl-usb2-mph"; |
96 | reg = <22000 1000>; | 95 | reg = <22000 1000>; |
97 | #address-cells = <1>; | 96 | #address-cells = <1>; |
@@ -103,7 +102,6 @@ | |||
103 | }; | 102 | }; |
104 | 103 | ||
105 | usb@23000 { | 104 | usb@23000 { |
106 | device_type = "usb"; | ||
107 | compatible = "fsl-usb2-dr"; | 105 | compatible = "fsl-usb2-dr"; |
108 | reg = <23000 1000>; | 106 | reg = <23000 1000>; |
109 | #address-cells = <1>; | 107 | #address-cells = <1>; |
@@ -127,14 +125,6 @@ | |||
127 | reg = <1c>; | 125 | reg = <1c>; |
128 | device_type = "ethernet-phy"; | 126 | device_type = "ethernet-phy"; |
129 | }; | 127 | }; |
130 | |||
131 | /* Vitesse 7385 */ | ||
132 | phy1f: ethernet-phy@1f { | ||
133 | interrupt-parent = < &ipic >; | ||
134 | interrupts = <12 8>; | ||
135 | reg = <1f>; | ||
136 | device_type = "ethernet-phy"; | ||
137 | }; | ||
138 | }; | 128 | }; |
139 | 129 | ||
140 | enet0: ethernet@24000 { | 130 | enet0: ethernet@24000 { |
@@ -159,7 +149,8 @@ | |||
159 | local-mac-address = [ 00 00 00 00 00 00 ]; | 149 | local-mac-address = [ 00 00 00 00 00 00 ]; |
160 | interrupts = <23 8 24 8 25 8>; | 150 | interrupts = <23 8 24 8 25 8>; |
161 | interrupt-parent = < &ipic >; | 151 | interrupt-parent = < &ipic >; |
162 | phy-handle = < &phy1f >; | 152 | /* Vitesse 7385 isn't on the MDIO bus */ |
153 | fixed-link = <1 1 d#1000 0 0>; | ||
163 | linux,network-index = <1>; | 154 | linux,network-index = <1>; |
164 | }; | 155 | }; |
165 | 156 | ||
@@ -253,6 +244,21 @@ | |||
253 | device_type = "pci"; | 244 | device_type = "pci"; |
254 | }; | 245 | }; |
255 | 246 | ||
247 | localbus@e0005000 { | ||
248 | #address-cells = <2>; | ||
249 | #size-cells = <1>; | ||
250 | compatible = "fsl,mpc8349e-localbus", | ||
251 | "fsl,pq2pro-localbus"; | ||
252 | reg = <e0005000 d8>; | ||
253 | ranges = <3 0 f0000000 210>; | ||
256 | 254 | ||
257 | 255 | pata@3,0 { | |
256 | compatible = "fsl,mpc8349emitx-pata", "ata-generic"; | ||
257 | reg = <3 0 10 3 20c 4>; | ||
258 | reg-shift = <1>; | ||
259 | pio-mode = <6>; | ||
260 | interrupts = <17 8>; | ||
261 | interrupt-parent = <&ipic>; | ||
262 | }; | ||
263 | }; | ||
258 | }; | 264 | }; |
diff --git a/arch/powerpc/boot/dts/mpc8349emitxgp.dts b/arch/powerpc/boot/dts/mpc8349emitxgp.dts index ebdf0b750086..a06ff92cf0b1 100644 --- a/arch/powerpc/boot/dts/mpc8349emitxgp.dts +++ b/arch/powerpc/boot/dts/mpc8349emitxgp.dts | |||
@@ -89,7 +89,6 @@ | |||
89 | }; | 89 | }; |
90 | 90 | ||
91 | usb@23000 { | 91 | usb@23000 { |
92 | device_type = "usb"; | ||
93 | compatible = "fsl-usb2-dr"; | 92 | compatible = "fsl-usb2-dr"; |
94 | reg = <23000 1000>; | 93 | reg = <23000 1000>; |
95 | #address-cells = <1>; | 94 | #address-cells = <1>; |
diff --git a/arch/powerpc/boot/dts/mpc834x_mds.dts b/arch/powerpc/boot/dts/mpc834x_mds.dts index 0ba13ebcea68..4120e92fcecf 100644 --- a/arch/powerpc/boot/dts/mpc834x_mds.dts +++ b/arch/powerpc/boot/dts/mpc834x_mds.dts | |||
@@ -104,7 +104,6 @@ | |||
104 | /* phy type (ULPI or SERIAL) are only types supportted for MPH */ | 104 | /* phy type (ULPI or SERIAL) are only types supportted for MPH */ |
105 | /* port = 0 or 1 */ | 105 | /* port = 0 or 1 */ |
106 | usb@22000 { | 106 | usb@22000 { |
107 | device_type = "usb"; | ||
108 | compatible = "fsl-usb2-mph"; | 107 | compatible = "fsl-usb2-mph"; |
109 | reg = <22000 1000>; | 108 | reg = <22000 1000>; |
110 | #address-cells = <1>; | 109 | #address-cells = <1>; |
@@ -116,7 +115,6 @@ | |||
116 | }; | 115 | }; |
117 | /* phy type (ULPI, UTMI, UTMI_WIDE, SERIAL) */ | 116 | /* phy type (ULPI, UTMI, UTMI_WIDE, SERIAL) */ |
118 | usb@23000 { | 117 | usb@23000 { |
119 | device_type = "usb"; | ||
120 | compatible = "fsl-usb2-dr"; | 118 | compatible = "fsl-usb2-dr"; |
121 | reg = <23000 1000>; | 119 | reg = <23000 1000>; |
122 | #address-cells = <1>; | 120 | #address-cells = <1>; |
diff --git a/arch/powerpc/boot/dts/mpc836x_mds.dts b/arch/powerpc/boot/dts/mpc836x_mds.dts index fd841b2fddd0..2181d2cdbff2 100644 --- a/arch/powerpc/boot/dts/mpc836x_mds.dts +++ b/arch/powerpc/boot/dts/mpc836x_mds.dts | |||
@@ -241,7 +241,6 @@ | |||
241 | }; | 241 | }; |
242 | 242 | ||
243 | usb@6c0 { | 243 | usb@6c0 { |
244 | device_type = "usb"; | ||
245 | compatible = "qe_udc"; | 244 | compatible = "qe_udc"; |
246 | reg = <6c0 40 8B00 100>; | 245 | reg = <6c0 40 8B00 100>; |
247 | interrupts = <b>; | 246 | interrupts = <b>; |
diff --git a/arch/powerpc/boot/dts/mpc8377_mds.dts b/arch/powerpc/boot/dts/mpc8377_mds.dts new file mode 100644 index 000000000000..98b46065f45a --- /dev/null +++ b/arch/powerpc/boot/dts/mpc8377_mds.dts | |||
@@ -0,0 +1,279 @@ | |||
1 | /* | ||
2 | * MPC8377E MDS Device Tree Source | ||
3 | * | ||
4 | * Copyright 2007 Freescale Semiconductor Inc. | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify it | ||
7 | * under the terms of the GNU General Public License as published by the | ||
8 | * Free Software Foundation; either version 2 of the License, or (at your | ||
9 | * option) any later version. | ||
10 | */ | ||
11 | |||
12 | /dts-v1/; | ||
13 | |||
14 | / { | ||
15 | model = "fsl,mpc8377emds"; | ||
16 | compatible = "fsl,mpc8377emds","fsl,mpc837xmds"; | ||
17 | #address-cells = <1>; | ||
18 | #size-cells = <1>; | ||
19 | |||
20 | aliases { | ||
21 | ethernet0 = &enet0; | ||
22 | ethernet1 = &enet1; | ||
23 | serial0 = &serial0; | ||
24 | serial1 = &serial1; | ||
25 | pci0 = &pci0; | ||
26 | }; | ||
27 | |||
28 | cpus { | ||
29 | #address-cells = <1>; | ||
30 | #size-cells = <0>; | ||
31 | |||
32 | PowerPC,8377@0 { | ||
33 | device_type = "cpu"; | ||
34 | reg = <0>; | ||
35 | d-cache-line-size = <0x20>; | ||
36 | i-cache-line-size = <0x20>; | ||
37 | d-cache-size = <0x8000>; // L1, 32K | ||
38 | i-cache-size = <0x8000>; // L1, 32K | ||
39 | timebase-frequency = <0>; | ||
40 | bus-frequency = <0>; | ||
41 | clock-frequency = <0>; | ||
42 | }; | ||
43 | }; | ||
44 | |||
45 | memory { | ||
46 | device_type = "memory"; | ||
47 | reg = <0x00000000 0x20000000>; // 512MB at 0 | ||
48 | }; | ||
49 | |||
50 | soc@e0000000 { | ||
51 | #address-cells = <1>; | ||
52 | #size-cells = <1>; | ||
53 | device_type = "soc"; | ||
54 | ranges = <0x0 0xe0000000 0x00100000>; | ||
55 | reg = <0xe0000000 0x00000200>; | ||
56 | bus-frequency = <0>; | ||
57 | |||
58 | wdt@200 { | ||
59 | compatible = "mpc83xx_wdt"; | ||
60 | reg = <0x200 0x100>; | ||
61 | }; | ||
62 | |||
63 | i2c@3000 { | ||
64 | #address-cells = <1>; | ||
65 | #size-cells = <0>; | ||
66 | cell-index = <0>; | ||
67 | compatible = "fsl-i2c"; | ||
68 | reg = <0x3000 0x100>; | ||
69 | interrupts = <0xe 0x8>; | ||
70 | interrupt-parent = < &ipic >; | ||
71 | dfsrr; | ||
72 | }; | ||
73 | |||
74 | i2c@3100 { | ||
75 | #address-cells = <1>; | ||
76 | #size-cells = <0>; | ||
77 | cell-index = <1>; | ||
78 | compatible = "fsl-i2c"; | ||
79 | reg = <0x3100 0x100>; | ||
80 | interrupts = <0xf 0x8>; | ||
81 | interrupt-parent = < &ipic >; | ||
82 | dfsrr; | ||
83 | }; | ||
84 | |||
85 | spi@7000 { | ||
86 | compatible = "fsl_spi"; | ||
87 | reg = <0x7000 0x1000>; | ||
88 | interrupts = <0x10 0x8>; | ||
89 | interrupt-parent = < &ipic >; | ||
90 | mode = "cpu"; | ||
91 | }; | ||
92 | |||
93 | /* phy type (ULPI, UTMI, UTMI_WIDE, SERIAL) */ | ||
94 | usb@23000 { | ||
95 | compatible = "fsl-usb2-dr"; | ||
96 | reg = <0x23000 0x1000>; | ||
97 | #address-cells = <1>; | ||
98 | #size-cells = <0>; | ||
99 | interrupt-parent = < &ipic >; | ||
100 | interrupts = <0x26 0x8>; | ||
101 | phy_type = "utmi_wide"; | ||
102 | }; | ||
103 | |||
104 | mdio@24520 { | ||
105 | #address-cells = <1>; | ||
106 | #size-cells = <0>; | ||
107 | compatible = "fsl,gianfar-mdio"; | ||
108 | reg = <0x24520 0x20>; | ||
109 | phy2: ethernet-phy@2 { | ||
110 | interrupt-parent = < &ipic >; | ||
111 | interrupts = <0x11 0x8>; | ||
112 | reg = <2>; | ||
113 | device_type = "ethernet-phy"; | ||
114 | }; | ||
115 | phy3: ethernet-phy@3 { | ||
116 | interrupt-parent = < &ipic >; | ||
117 | interrupts = <0x12 0x8>; | ||
118 | reg = <3>; | ||
119 | device_type = "ethernet-phy"; | ||
120 | }; | ||
121 | }; | ||
122 | |||
123 | enet0: ethernet@24000 { | ||
124 | cell-index = <0>; | ||
125 | device_type = "network"; | ||
126 | model = "eTSEC"; | ||
127 | compatible = "gianfar"; | ||
128 | reg = <0x24000 0x1000>; | ||
129 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
130 | interrupts = <0x20 0x8 0x21 0x8 0x22 0x8>; | ||
131 | phy-connection-type = "mii"; | ||
132 | interrupt-parent = < &ipic >; | ||
133 | phy-handle = < &phy2 >; | ||
134 | }; | ||
135 | |||
136 | enet1: ethernet@25000 { | ||
137 | cell-index = <1>; | ||
138 | device_type = "network"; | ||
139 | model = "eTSEC"; | ||
140 | compatible = "gianfar"; | ||
141 | reg = <0x25000 0x1000>; | ||
142 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
143 | interrupts = <0x23 0x8 0x24 0x8 0x25 0x8>; | ||
144 | phy-connection-type = "mii"; | ||
145 | interrupt-parent = < &ipic >; | ||
146 | phy-handle = < &phy3 >; | ||
147 | }; | ||
148 | |||
149 | serial0: serial@4500 { | ||
150 | cell-index = <0>; | ||
151 | device_type = "serial"; | ||
152 | compatible = "ns16550"; | ||
153 | reg = <0x4500 0x100>; | ||
154 | clock-frequency = <0>; | ||
155 | interrupts = <0x9 0x8>; | ||
156 | interrupt-parent = < &ipic >; | ||
157 | }; | ||
158 | |||
159 | serial1: serial@4600 { | ||
160 | cell-index = <1>; | ||
161 | device_type = "serial"; | ||
162 | compatible = "ns16550"; | ||
163 | reg = <0x4600 0x100>; | ||
164 | clock-frequency = <0>; | ||
165 | interrupts = <0xa 0x8>; | ||
166 | interrupt-parent = < &ipic >; | ||
167 | }; | ||
168 | |||
169 | crypto@30000 { | ||
170 | model = "SEC3"; | ||
171 | compatible = "talitos"; | ||
172 | reg = <0x30000 0x10000>; | ||
173 | interrupts = <0xb 0x8>; | ||
174 | interrupt-parent = < &ipic >; | ||
175 | /* Rev. 3.0 geometry */ | ||
176 | num-channels = <4>; | ||
177 | channel-fifo-len = <0x18>; | ||
178 | exec-units-mask = <0x000001fe>; | ||
179 | descriptor-types-mask = <0x03ab0ebf>; | ||
180 | }; | ||
181 | |||
182 | sdhc@2e000 { | ||
183 | model = "eSDHC"; | ||
184 | compatible = "fsl,esdhc"; | ||
185 | reg = <0x2e000 0x1000>; | ||
186 | interrupts = <0x2a 0x8>; | ||
187 | interrupt-parent = < &ipic >; | ||
188 | }; | ||
189 | |||
190 | sata@18000 { | ||
191 | compatible = "fsl,mpc8379-sata"; | ||
192 | reg = <0x18000 0x1000>; | ||
193 | interrupts = <0x2c 0x8>; | ||
194 | interrupt-parent = < &ipic >; | ||
195 | }; | ||
196 | |||
197 | sata@19000 { | ||
198 | compatible = "fsl,mpc8379-sata"; | ||
199 | reg = <0x19000 0x1000>; | ||
200 | interrupts = <0x2d 0x8>; | ||
201 | interrupt-parent = < &ipic >; | ||
202 | }; | ||
203 | |||
204 | /* IPIC | ||
205 | * interrupts cell = <intr #, sense> | ||
206 | * sense values match linux IORESOURCE_IRQ_* defines: | ||
207 | * sense == 8: Level, low assertion | ||
208 | * sense == 2: Edge, high-to-low change | ||
209 | */ | ||
210 | ipic: pic@700 { | ||
211 | compatible = "fsl,ipic"; | ||
212 | interrupt-controller; | ||
213 | #address-cells = <0>; | ||
214 | #interrupt-cells = <2>; | ||
215 | reg = <0x700 0x100>; | ||
216 | }; | ||
217 | }; | ||
218 | |||
219 | pci0: pci@e0008500 { | ||
220 | cell-index = <0>; | ||
221 | interrupt-map-mask = <0xf800 0x0 0x0 0x7>; | ||
222 | interrupt-map = < | ||
223 | |||
224 | /* IDSEL 0x11 */ | ||
225 | 0x8800 0x0 0x0 0x1 &ipic 0x14 0x8 | ||
226 | 0x8800 0x0 0x0 0x2 &ipic 0x15 0x8 | ||
227 | 0x8800 0x0 0x0 0x3 &ipic 0x16 0x8 | ||
228 | 0x8800 0x0 0x0 0x4 &ipic 0x17 0x8 | ||
229 | |||
230 | /* IDSEL 0x12 */ | ||
231 | 0x9000 0x0 0x0 0x1 &ipic 0x16 0x8 | ||
232 | 0x9000 0x0 0x0 0x2 &ipic 0x17 0x8 | ||
233 | 0x9000 0x0 0x0 0x3 &ipic 0x14 0x8 | ||
234 | 0x9000 0x0 0x0 0x4 &ipic 0x15 0x8 | ||
235 | |||
236 | /* IDSEL 0x13 */ | ||
237 | 0x9800 0x0 0x0 0x1 &ipic 0x17 0x8 | ||
238 | 0x9800 0x0 0x0 0x2 &ipic 0x14 0x8 | ||
239 | 0x9800 0x0 0x0 0x3 &ipic 0x15 0x8 | ||
240 | 0x9800 0x0 0x0 0x4 &ipic 0x16 0x8 | ||
241 | |||
242 | /* IDSEL 0x15 */ | ||
243 | 0xa800 0x0 0x0 0x1 &ipic 0x14 0x8 | ||
244 | 0xa800 0x0 0x0 0x2 &ipic 0x15 0x8 | ||
245 | 0xa800 0x0 0x0 0x3 &ipic 0x16 0x8 | ||
246 | 0xa800 0x0 0x0 0x4 &ipic 0x17 0x8 | ||
247 | |||
248 | /* IDSEL 0x16 */ | ||
249 | 0xb000 0x0 0x0 0x1 &ipic 0x17 0x8 | ||
250 | 0xb000 0x0 0x0 0x2 &ipic 0x14 0x8 | ||
251 | 0xb000 0x0 0x0 0x3 &ipic 0x15 0x8 | ||
252 | 0xb000 0x0 0x0 0x4 &ipic 0x16 0x8 | ||
253 | |||
254 | /* IDSEL 0x17 */ | ||
255 | 0xb800 0x0 0x0 0x1 &ipic 0x16 0x8 | ||
256 | 0xb800 0x0 0x0 0x2 &ipic 0x17 0x8 | ||
257 | 0xb800 0x0 0x0 0x3 &ipic 0x14 0x8 | ||
258 | 0xb800 0x0 0x0 0x4 &ipic 0x15 0x8 | ||
259 | |||
260 | /* IDSEL 0x18 */ | ||
261 | 0xc000 0x0 0x0 0x1 &ipic 0x15 0x8 | ||
262 | 0xc000 0x0 0x0 0x2 &ipic 0x16 0x8 | ||
263 | 0xc000 0x0 0x0 0x3 &ipic 0x17 0x8 | ||
264 | 0xc000 0x0 0x0 0x4 &ipic 0x14 0x8>; | ||
265 | interrupt-parent = < &ipic >; | ||
266 | interrupts = <0x42 0x8>; | ||
267 | bus-range = <0 0>; | ||
268 | ranges = <0x02000000 0x0 0x90000000 0x90000000 0x0 0x10000000 | ||
269 | 0x42000000 0x0 0x80000000 0x80000000 0x0 0x10000000 | ||
270 | 0x01000000 0x0 0x00000000 0xe0300000 0x0 0x00100000>; | ||
271 | clock-frequency = <0>; | ||
272 | #interrupt-cells = <1>; | ||
273 | #size-cells = <2>; | ||
274 | #address-cells = <3>; | ||
275 | reg = <0xe0008500 0x100>; | ||
276 | compatible = "fsl,mpc8349-pci"; | ||
277 | device_type = "pci"; | ||
278 | }; | ||
279 | }; | ||
diff --git a/arch/powerpc/boot/dts/mpc8378_mds.dts b/arch/powerpc/boot/dts/mpc8378_mds.dts new file mode 100644 index 000000000000..c117a6a3a8e6 --- /dev/null +++ b/arch/powerpc/boot/dts/mpc8378_mds.dts | |||
@@ -0,0 +1,265 @@ | |||
1 | /* | ||
2 | * MPC8378E MDS Device Tree Source | ||
3 | * | ||
4 | * Copyright 2007 Freescale Semiconductor Inc. | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify it | ||
7 | * under the terms of the GNU General Public License as published by the | ||
8 | * Free Software Foundation; either version 2 of the License, or (at your | ||
9 | * option) any later version. | ||
10 | */ | ||
11 | |||
12 | /dts-v1/; | ||
13 | |||
14 | / { | ||
15 | model = "fsl,mpc8378emds"; | ||
16 | compatible = "fsl,mpc8378emds","fsl,mpc837xmds"; | ||
17 | #address-cells = <1>; | ||
18 | #size-cells = <1>; | ||
19 | |||
20 | aliases { | ||
21 | ethernet0 = &enet0; | ||
22 | ethernet1 = &enet1; | ||
23 | serial0 = &serial0; | ||
24 | serial1 = &serial1; | ||
25 | pci0 = &pci0; | ||
26 | }; | ||
27 | |||
28 | cpus { | ||
29 | #address-cells = <1>; | ||
30 | #size-cells = <0>; | ||
31 | |||
32 | PowerPC,8378@0 { | ||
33 | device_type = "cpu"; | ||
34 | reg = <0>; | ||
35 | d-cache-line-size = <0x20>; | ||
36 | i-cache-line-size = <0x20>; | ||
37 | d-cache-size = <0x8000>; // L1, 32K | ||
38 | i-cache-size = <0x8000>; // L1, 32K | ||
39 | timebase-frequency = <0>; | ||
40 | bus-frequency = <0>; | ||
41 | clock-frequency = <0>; | ||
42 | }; | ||
43 | }; | ||
44 | |||
45 | memory { | ||
46 | device_type = "memory"; | ||
47 | reg = <0x00000000 0x20000000>; // 512MB at 0 | ||
48 | }; | ||
49 | |||
50 | soc@e0000000 { | ||
51 | #address-cells = <1>; | ||
52 | #size-cells = <1>; | ||
53 | device_type = "soc"; | ||
54 | ranges = <0x0 0xe0000000 0x00100000>; | ||
55 | reg = <0xe0000000 0x00000200>; | ||
56 | bus-frequency = <0>; | ||
57 | |||
58 | wdt@200 { | ||
59 | compatible = "mpc83xx_wdt"; | ||
60 | reg = <0x200 0x100>; | ||
61 | }; | ||
62 | |||
63 | i2c@3000 { | ||
64 | #address-cells = <1>; | ||
65 | #size-cells = <0>; | ||
66 | cell-index = <0>; | ||
67 | compatible = "fsl-i2c"; | ||
68 | reg = <0x3000 0x100>; | ||
69 | interrupts = <0xe 0x8>; | ||
70 | interrupt-parent = < &ipic >; | ||
71 | dfsrr; | ||
72 | }; | ||
73 | |||
74 | i2c@3100 { | ||
75 | #address-cells = <1>; | ||
76 | #size-cells = <0>; | ||
77 | cell-index = <1>; | ||
78 | compatible = "fsl-i2c"; | ||
79 | reg = <0x3100 0x100>; | ||
80 | interrupts = <0xf 0x8>; | ||
81 | interrupt-parent = < &ipic >; | ||
82 | dfsrr; | ||
83 | }; | ||
84 | |||
85 | spi@7000 { | ||
86 | compatible = "fsl_spi"; | ||
87 | reg = <0x7000 0x1000>; | ||
88 | interrupts = <0x10 0x8>; | ||
89 | interrupt-parent = < &ipic >; | ||
90 | mode = "cpu"; | ||
91 | }; | ||
92 | |||
93 | /* phy type (ULPI, UTMI, UTMI_WIDE, SERIAL) */ | ||
94 | usb@23000 { | ||
95 | compatible = "fsl-usb2-dr"; | ||
96 | reg = <0x23000 0x1000>; | ||
97 | #address-cells = <1>; | ||
98 | #size-cells = <0>; | ||
99 | interrupt-parent = < &ipic >; | ||
100 | interrupts = <0x26 0x8>; | ||
101 | phy_type = "utmi_wide"; | ||
102 | }; | ||
103 | |||
104 | mdio@24520 { | ||
105 | #address-cells = <1>; | ||
106 | #size-cells = <0>; | ||
107 | compatible = "fsl,gianfar-mdio"; | ||
108 | reg = <0x24520 0x20>; | ||
109 | phy2: ethernet-phy@2 { | ||
110 | interrupt-parent = < &ipic >; | ||
111 | interrupts = <0x11 0x8>; | ||
112 | reg = <2>; | ||
113 | device_type = "ethernet-phy"; | ||
114 | }; | ||
115 | phy3: ethernet-phy@3 { | ||
116 | interrupt-parent = < &ipic >; | ||
117 | interrupts = <0x12 0x8>; | ||
118 | reg = <3>; | ||
119 | device_type = "ethernet-phy"; | ||
120 | }; | ||
121 | }; | ||
122 | |||
123 | enet0: ethernet@24000 { | ||
124 | cell-index = <0>; | ||
125 | device_type = "network"; | ||
126 | model = "eTSEC"; | ||
127 | compatible = "gianfar"; | ||
128 | reg = <0x24000 0x1000>; | ||
129 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
130 | interrupts = <0x20 0x8 0x21 0x8 0x22 0x8>; | ||
131 | phy-connection-type = "mii"; | ||
132 | interrupt-parent = < &ipic >; | ||
133 | phy-handle = < &phy2 >; | ||
134 | }; | ||
135 | |||
136 | enet1: ethernet@25000 { | ||
137 | cell-index = <1>; | ||
138 | device_type = "network"; | ||
139 | model = "eTSEC"; | ||
140 | compatible = "gianfar"; | ||
141 | reg = <0x25000 0x1000>; | ||
142 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
143 | interrupts = <0x23 0x8 0x24 0x8 0x25 0x8>; | ||
144 | phy-connection-type = "mii"; | ||
145 | interrupt-parent = < &ipic >; | ||
146 | phy-handle = < &phy3 >; | ||
147 | }; | ||
148 | |||
149 | serial0: serial@4500 { | ||
150 | cell-index = <0>; | ||
151 | device_type = "serial"; | ||
152 | compatible = "ns16550"; | ||
153 | reg = <0x4500 0x100>; | ||
154 | clock-frequency = <0>; | ||
155 | interrupts = <0x9 0x8>; | ||
156 | interrupt-parent = < &ipic >; | ||
157 | }; | ||
158 | |||
159 | serial1: serial@4600 { | ||
160 | cell-index = <1>; | ||
161 | device_type = "serial"; | ||
162 | compatible = "ns16550"; | ||
163 | reg = <0x4600 0x100>; | ||
164 | clock-frequency = <0>; | ||
165 | interrupts = <0xa 0x8>; | ||
166 | interrupt-parent = < &ipic >; | ||
167 | }; | ||
168 | |||
169 | crypto@30000 { | ||
170 | model = "SEC3"; | ||
171 | compatible = "talitos"; | ||
172 | reg = <0x30000 0x10000>; | ||
173 | interrupts = <0xb 0x8>; | ||
174 | interrupt-parent = < &ipic >; | ||
175 | /* Rev. 3.0 geometry */ | ||
176 | num-channels = <4>; | ||
177 | channel-fifo-len = <0x18>; | ||
178 | exec-units-mask = <0x000001fe>; | ||
179 | descriptor-types-mask = <0x03ab0ebf>; | ||
180 | }; | ||
181 | |||
182 | sdhc@2e000 { | ||
183 | model = "eSDHC"; | ||
184 | compatible = "fsl,esdhc"; | ||
185 | reg = <0x2e000 0x1000>; | ||
186 | interrupts = <0x2a 0x8>; | ||
187 | interrupt-parent = < &ipic >; | ||
188 | }; | ||
189 | |||
190 | /* IPIC | ||
191 | * interrupts cell = <intr #, sense> | ||
192 | * sense values match linux IORESOURCE_IRQ_* defines: | ||
193 | * sense == 8: Level, low assertion | ||
194 | * sense == 2: Edge, high-to-low change | ||
195 | */ | ||
196 | ipic: pic@700 { | ||
197 | compatible = "fsl,ipic"; | ||
198 | interrupt-controller; | ||
199 | #address-cells = <0>; | ||
200 | #interrupt-cells = <2>; | ||
201 | reg = <0x700 0x100>; | ||
202 | }; | ||
203 | }; | ||
204 | |||
205 | pci0: pci@e0008500 { | ||
206 | cell-index = <0>; | ||
207 | interrupt-map-mask = <0xf800 0x0 0x0 0x7>; | ||
208 | interrupt-map = < | ||
209 | |||
210 | /* IDSEL 0x11 */ | ||
211 | 0x8800 0x0 0x0 0x1 &ipic 0x14 0x8 | ||
212 | 0x8800 0x0 0x0 0x2 &ipic 0x15 0x8 | ||
213 | 0x8800 0x0 0x0 0x3 &ipic 0x16 0x8 | ||
214 | 0x8800 0x0 0x0 0x4 &ipic 0x17 0x8 | ||
215 | |||
216 | /* IDSEL 0x12 */ | ||
217 | 0x9000 0x0 0x0 0x1 &ipic 0x16 0x8 | ||
218 | 0x9000 0x0 0x0 0x2 &ipic 0x17 0x8 | ||
219 | 0x9000 0x0 0x0 0x3 &ipic 0x14 0x8 | ||
220 | 0x9000 0x0 0x0 0x4 &ipic 0x15 0x8 | ||
221 | |||
222 | /* IDSEL 0x13 */ | ||
223 | 0x9800 0x0 0x0 0x1 &ipic 0x17 0x8 | ||
224 | 0x9800 0x0 0x0 0x2 &ipic 0x14 0x8 | ||
225 | 0x9800 0x0 0x0 0x3 &ipic 0x15 0x8 | ||
226 | 0x9800 0x0 0x0 0x4 &ipic 0x16 0x8 | ||
227 | |||
228 | /* IDSEL 0x15 */ | ||
229 | 0xa800 0x0 0x0 0x1 &ipic 0x14 0x8 | ||
230 | 0xa800 0x0 0x0 0x2 &ipic 0x15 0x8 | ||
231 | 0xa800 0x0 0x0 0x3 &ipic 0x16 0x8 | ||
232 | 0xa800 0x0 0x0 0x4 &ipic 0x17 0x8 | ||
233 | |||
234 | /* IDSEL 0x16 */ | ||
235 | 0xb000 0x0 0x0 0x1 &ipic 0x17 0x8 | ||
236 | 0xb000 0x0 0x0 0x2 &ipic 0x14 0x8 | ||
237 | 0xb000 0x0 0x0 0x3 &ipic 0x15 0x8 | ||
238 | 0xb000 0x0 0x0 0x4 &ipic 0x16 0x8 | ||
239 | |||
240 | /* IDSEL 0x17 */ | ||
241 | 0xb800 0x0 0x0 0x1 &ipic 0x16 0x8 | ||
242 | 0xb800 0x0 0x0 0x2 &ipic 0x17 0x8 | ||
243 | 0xb800 0x0 0x0 0x3 &ipic 0x14 0x8 | ||
244 | 0xb800 0x0 0x0 0x4 &ipic 0x15 0x8 | ||
245 | |||
246 | /* IDSEL 0x18 */ | ||
247 | 0xc000 0x0 0x0 0x1 &ipic 0x15 0x8 | ||
248 | 0xc000 0x0 0x0 0x2 &ipic 0x16 0x8 | ||
249 | 0xc000 0x0 0x0 0x3 &ipic 0x17 0x8 | ||
250 | 0xc000 0x0 0x0 0x4 &ipic 0x14 0x8>; | ||
251 | interrupt-parent = < &ipic >; | ||
252 | interrupts = <0x42 0x8>; | ||
253 | bus-range = <0 0>; | ||
254 | ranges = <0x02000000 0x0 0x90000000 0x90000000 0x0 0x10000000 | ||
255 | 0x42000000 0x0 0x80000000 0x80000000 0x0 0x10000000 | ||
256 | 0x01000000 0x0 0x00000000 0xe0300000 0x0 0x00100000>; | ||
257 | clock-frequency = <0>; | ||
258 | #interrupt-cells = <1>; | ||
259 | #size-cells = <2>; | ||
260 | #address-cells = <3>; | ||
261 | reg = <0xe0008500 0x100>; | ||
262 | compatible = "fsl,mpc8349-pci"; | ||
263 | device_type = "pci"; | ||
264 | }; | ||
265 | }; | ||
diff --git a/arch/powerpc/boot/dts/mpc8379_mds.dts b/arch/powerpc/boot/dts/mpc8379_mds.dts new file mode 100644 index 000000000000..fc3ba79fb684 --- /dev/null +++ b/arch/powerpc/boot/dts/mpc8379_mds.dts | |||
@@ -0,0 +1,293 @@ | |||
1 | /* | ||
2 | * MPC8379E MDS Device Tree Source | ||
3 | * | ||
4 | * Copyright 2007 Freescale Semiconductor Inc. | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify it | ||
7 | * under the terms of the GNU General Public License as published by the | ||
8 | * Free Software Foundation; either version 2 of the License, or (at your | ||
9 | * option) any later version. | ||
10 | */ | ||
11 | |||
12 | /dts-v1/; | ||
13 | |||
14 | / { | ||
15 | model = "fsl,mpc8379emds"; | ||
16 | compatible = "fsl,mpc8379emds","fsl,mpc837xmds"; | ||
17 | #address-cells = <1>; | ||
18 | #size-cells = <1>; | ||
19 | |||
20 | aliases { | ||
21 | ethernet0 = &enet0; | ||
22 | ethernet1 = &enet1; | ||
23 | serial0 = &serial0; | ||
24 | serial1 = &serial1; | ||
25 | pci0 = &pci0; | ||
26 | }; | ||
27 | |||
28 | cpus { | ||
29 | #address-cells = <1>; | ||
30 | #size-cells = <0>; | ||
31 | |||
32 | PowerPC,8379@0 { | ||
33 | device_type = "cpu"; | ||
34 | reg = <0>; | ||
35 | d-cache-line-size = <0x20>; | ||
36 | i-cache-line-size = <0x20>; | ||
37 | d-cache-size = <0x8000>; // L1, 32K | ||
38 | i-cache-size = <0x8000>; // L1, 32K | ||
39 | timebase-frequency = <0>; | ||
40 | bus-frequency = <0>; | ||
41 | clock-frequency = <0>; | ||
42 | }; | ||
43 | }; | ||
44 | |||
45 | memory { | ||
46 | device_type = "memory"; | ||
47 | reg = <0x00000000 0x20000000>; // 512MB at 0 | ||
48 | }; | ||
49 | |||
50 | soc@e0000000 { | ||
51 | #address-cells = <1>; | ||
52 | #size-cells = <1>; | ||
53 | device_type = "soc"; | ||
54 | ranges = <0x0 0xe0000000 0x00100000>; | ||
55 | reg = <0xe0000000 0x00000200>; | ||
56 | bus-frequency = <0>; | ||
57 | |||
58 | wdt@200 { | ||
59 | compatible = "mpc83xx_wdt"; | ||
60 | reg = <0x200 0x100>; | ||
61 | }; | ||
62 | |||
63 | i2c@3000 { | ||
64 | #address-cells = <1>; | ||
65 | #size-cells = <0>; | ||
66 | cell-index = <0>; | ||
67 | compatible = "fsl-i2c"; | ||
68 | reg = <0x3000 0x100>; | ||
69 | interrupts = <0xe 0x8>; | ||
70 | interrupt-parent = < &ipic >; | ||
71 | dfsrr; | ||
72 | }; | ||
73 | |||
74 | i2c@3100 { | ||
75 | #address-cells = <1>; | ||
76 | #size-cells = <0>; | ||
77 | cell-index = <1>; | ||
78 | compatible = "fsl-i2c"; | ||
79 | reg = <0x3100 0x100>; | ||
80 | interrupts = <0xf 0x8>; | ||
81 | interrupt-parent = < &ipic >; | ||
82 | dfsrr; | ||
83 | }; | ||
84 | |||
85 | spi@7000 { | ||
86 | compatible = "fsl_spi"; | ||
87 | reg = <0x7000 0x1000>; | ||
88 | interrupts = <0x10 0x8>; | ||
89 | interrupt-parent = < &ipic >; | ||
90 | mode = "cpu"; | ||
91 | }; | ||
92 | |||
93 | /* phy type (ULPI, UTMI, UTMI_WIDE, SERIAL) */ | ||
94 | usb@23000 { | ||
95 | compatible = "fsl-usb2-dr"; | ||
96 | reg = <0x23000 0x1000>; | ||
97 | #address-cells = <1>; | ||
98 | #size-cells = <0>; | ||
99 | interrupt-parent = < &ipic >; | ||
100 | interrupts = <0x26 0x8>; | ||
101 | phy_type = "utmi_wide"; | ||
102 | }; | ||
103 | |||
104 | mdio@24520 { | ||
105 | #address-cells = <1>; | ||
106 | #size-cells = <0>; | ||
107 | compatible = "fsl,gianfar-mdio"; | ||
108 | reg = <0x24520 0x20>; | ||
109 | phy2: ethernet-phy@2 { | ||
110 | interrupt-parent = < &ipic >; | ||
111 | interrupts = <0x11 0x8>; | ||
112 | reg = <2>; | ||
113 | device_type = "ethernet-phy"; | ||
114 | }; | ||
115 | phy3: ethernet-phy@3 { | ||
116 | interrupt-parent = < &ipic >; | ||
117 | interrupts = <0x12 0x8>; | ||
118 | reg = <3>; | ||
119 | device_type = "ethernet-phy"; | ||
120 | }; | ||
121 | }; | ||
122 | |||
123 | enet0: ethernet@24000 { | ||
124 | cell-index = <0>; | ||
125 | device_type = "network"; | ||
126 | model = "eTSEC"; | ||
127 | compatible = "gianfar"; | ||
128 | reg = <0x24000 0x1000>; | ||
129 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
130 | interrupts = <0x20 0x8 0x21 0x8 0x22 0x8>; | ||
131 | phy-connection-type = "mii"; | ||
132 | interrupt-parent = < &ipic >; | ||
133 | phy-handle = < &phy2 >; | ||
134 | }; | ||
135 | |||
136 | enet1: ethernet@25000 { | ||
137 | cell-index = <1>; | ||
138 | device_type = "network"; | ||
139 | model = "eTSEC"; | ||
140 | compatible = "gianfar"; | ||
141 | reg = <0x25000 0x1000>; | ||
142 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
143 | interrupts = <0x23 0x8 0x24 0x8 0x25 0x8>; | ||
144 | phy-connection-type = "mii"; | ||
145 | interrupt-parent = < &ipic >; | ||
146 | phy-handle = < &phy3 >; | ||
147 | }; | ||
148 | |||
149 | serial0: serial@4500 { | ||
150 | cell-index = <0>; | ||
151 | device_type = "serial"; | ||
152 | compatible = "ns16550"; | ||
153 | reg = <0x4500 0x100>; | ||
154 | clock-frequency = <0>; | ||
155 | interrupts = <0x9 0x8>; | ||
156 | interrupt-parent = < &ipic >; | ||
157 | }; | ||
158 | |||
159 | serial1: serial@4600 { | ||
160 | cell-index = <1>; | ||
161 | device_type = "serial"; | ||
162 | compatible = "ns16550"; | ||
163 | reg = <0x4600 0x100>; | ||
164 | clock-frequency = <0>; | ||
165 | interrupts = <0xa 0x8>; | ||
166 | interrupt-parent = < &ipic >; | ||
167 | }; | ||
168 | |||
169 | crypto@30000 { | ||
170 | model = "SEC3"; | ||
171 | compatible = "talitos"; | ||
172 | reg = <0x30000 0x10000>; | ||
173 | interrupts = <0xb 0x8>; | ||
174 | interrupt-parent = < &ipic >; | ||
175 | /* Rev. 3.0 geometry */ | ||
176 | num-channels = <4>; | ||
177 | channel-fifo-len = <0x18>; | ||
178 | exec-units-mask = <0x000001fe>; | ||
179 | descriptor-types-mask = <0x03ab0ebf>; | ||
180 | }; | ||
181 | |||
182 | sdhc@2e000 { | ||
183 | model = "eSDHC"; | ||
184 | compatible = "fsl,esdhc"; | ||
185 | reg = <0x2e000 0x1000>; | ||
186 | interrupts = <0x2a 0x8>; | ||
187 | interrupt-parent = < &ipic >; | ||
188 | }; | ||
189 | |||
190 | sata@18000 { | ||
191 | compatible = "fsl,mpc8379-sata"; | ||
192 | reg = <0x18000 0x1000>; | ||
193 | interrupts = <0x2c 0x8>; | ||
194 | interrupt-parent = < &ipic >; | ||
195 | }; | ||
196 | |||
197 | sata@19000 { | ||
198 | compatible = "fsl,mpc8379-sata"; | ||
199 | reg = <0x19000 0x1000>; | ||
200 | interrupts = <0x2d 0x8>; | ||
201 | interrupt-parent = < &ipic >; | ||
202 | }; | ||
203 | |||
204 | sata@1a000 { | ||
205 | compatible = "fsl,mpc8379-sata"; | ||
206 | reg = <0x1a000 0x1000>; | ||
207 | interrupts = <0x2e 0x8>; | ||
208 | interrupt-parent = < &ipic >; | ||
209 | }; | ||
210 | |||
211 | sata@1b000 { | ||
212 | compatible = "fsl,mpc8379-sata"; | ||
213 | reg = <0x1b000 0x1000>; | ||
214 | interrupts = <0x2f 0x8>; | ||
215 | interrupt-parent = < &ipic >; | ||
216 | }; | ||
217 | |||
218 | /* IPIC | ||
219 | * interrupts cell = <intr #, sense> | ||
220 | * sense values match linux IORESOURCE_IRQ_* defines: | ||
221 | * sense == 8: Level, low assertion | ||
222 | * sense == 2: Edge, high-to-low change | ||
223 | */ | ||
224 | ipic: pic@700 { | ||
225 | compatible = "fsl,ipic"; | ||
226 | interrupt-controller; | ||
227 | #address-cells = <0>; | ||
228 | #interrupt-cells = <2>; | ||
229 | reg = <0x700 0x100>; | ||
230 | }; | ||
231 | }; | ||
232 | |||
233 | pci0: pci@e0008500 { | ||
234 | cell-index = <0>; | ||
235 | interrupt-map-mask = <0xf800 0x0 0x0 0x7>; | ||
236 | interrupt-map = < | ||
237 | |||
238 | /* IDSEL 0x11 */ | ||
239 | 0x8800 0x0 0x0 0x1 &ipic 0x14 0x8 | ||
240 | 0x8800 0x0 0x0 0x2 &ipic 0x15 0x8 | ||
241 | 0x8800 0x0 0x0 0x3 &ipic 0x16 0x8 | ||
242 | 0x8800 0x0 0x0 0x4 &ipic 0x17 0x8 | ||
243 | |||
244 | /* IDSEL 0x12 */ | ||
245 | 0x9000 0x0 0x0 0x1 &ipic 0x16 0x8 | ||
246 | 0x9000 0x0 0x0 0x2 &ipic 0x17 0x8 | ||
247 | 0x9000 0x0 0x0 0x3 &ipic 0x14 0x8 | ||
248 | 0x9000 0x0 0x0 0x4 &ipic 0x15 0x8 | ||
249 | |||
250 | /* IDSEL 0x13 */ | ||
251 | 0x9800 0x0 0x0 0x1 &ipic 0x17 0x8 | ||
252 | 0x9800 0x0 0x0 0x2 &ipic 0x14 0x8 | ||
253 | 0x9800 0x0 0x0 0x3 &ipic 0x15 0x8 | ||
254 | 0x9800 0x0 0x0 0x4 &ipic 0x16 0x8 | ||
255 | |||
256 | /* IDSEL 0x15 */ | ||
257 | 0xa800 0x0 0x0 0x1 &ipic 0x14 0x8 | ||
258 | 0xa800 0x0 0x0 0x2 &ipic 0x15 0x8 | ||
259 | 0xa800 0x0 0x0 0x3 &ipic 0x16 0x8 | ||
260 | 0xa800 0x0 0x0 0x4 &ipic 0x17 0x8 | ||
261 | |||
262 | /* IDSEL 0x16 */ | ||
263 | 0xb000 0x0 0x0 0x1 &ipic 0x17 0x8 | ||
264 | 0xb000 0x0 0x0 0x2 &ipic 0x14 0x8 | ||
265 | 0xb000 0x0 0x0 0x3 &ipic 0x15 0x8 | ||
266 | 0xb000 0x0 0x0 0x4 &ipic 0x16 0x8 | ||
267 | |||
268 | /* IDSEL 0x17 */ | ||
269 | 0xb800 0x0 0x0 0x1 &ipic 0x16 0x8 | ||
270 | 0xb800 0x0 0x0 0x2 &ipic 0x17 0x8 | ||
271 | 0xb800 0x0 0x0 0x3 &ipic 0x14 0x8 | ||
272 | 0xb800 0x0 0x0 0x4 &ipic 0x15 0x8 | ||
273 | |||
274 | /* IDSEL 0x18 */ | ||
275 | 0xc000 0x0 0x0 0x1 &ipic 0x15 0x8 | ||
276 | 0xc000 0x0 0x0 0x2 &ipic 0x16 0x8 | ||
277 | 0xc000 0x0 0x0 0x3 &ipic 0x17 0x8 | ||
278 | 0xc000 0x0 0x0 0x4 &ipic 0x14 0x8>; | ||
279 | interrupt-parent = < &ipic >; | ||
280 | interrupts = <0x42 0x8>; | ||
281 | bus-range = <0 0>; | ||
282 | ranges = <0x02000000 0x0 0x90000000 0x90000000 0x0 0x10000000 | ||
283 | 0x42000000 0x0 0x80000000 0x80000000 0x0 0x10000000 | ||
284 | 0x01000000 0x0 0x00000000 0xe0300000 0x0 0x00100000>; | ||
285 | clock-frequency = <0>; | ||
286 | #interrupt-cells = <1>; | ||
287 | #size-cells = <2>; | ||
288 | #address-cells = <3>; | ||
289 | reg = <0xe0008500 0x100>; | ||
290 | compatible = "fsl,mpc8349-pci"; | ||
291 | device_type = "pci"; | ||
292 | }; | ||
293 | }; | ||
diff --git a/arch/powerpc/boot/dts/mpc8544ds.dts b/arch/powerpc/boot/dts/mpc8544ds.dts index 54b3bdf7fc97..688af9d06382 100644 --- a/arch/powerpc/boot/dts/mpc8544ds.dts +++ b/arch/powerpc/boot/dts/mpc8544ds.dts | |||
@@ -304,9 +304,9 @@ | |||
304 | interrupt-map = < | 304 | interrupt-map = < |
305 | // IDSEL 0x1c USB | 305 | // IDSEL 0x1c USB |
306 | e000 0 0 1 &i8259 c 2 | 306 | e000 0 0 1 &i8259 c 2 |
307 | e100 0 0 1 &i8259 9 2 | 307 | e100 0 0 2 &i8259 9 2 |
308 | e200 0 0 1 &i8259 a 2 | 308 | e200 0 0 3 &i8259 a 2 |
309 | e300 0 0 1 &i8259 b 2 | 309 | e300 0 0 4 &i8259 b 2 |
310 | 310 | ||
311 | // IDSEL 0x1d Audio | 311 | // IDSEL 0x1d Audio |
312 | e800 0 0 1 &i8259 6 2 | 312 | e800 0 0 1 &i8259 6 2 |
diff --git a/arch/powerpc/boot/dts/mpc8572ds.dts b/arch/powerpc/boot/dts/mpc8572ds.dts index 233e0d5a8b9d..813c259abbe5 100644 --- a/arch/powerpc/boot/dts/mpc8572ds.dts +++ b/arch/powerpc/boot/dts/mpc8572ds.dts | |||
@@ -334,9 +334,9 @@ | |||
334 | 334 | ||
335 | // IDSEL 0x1c USB | 335 | // IDSEL 0x1c USB |
336 | e000 0 0 1 &i8259 c 2 | 336 | e000 0 0 1 &i8259 c 2 |
337 | e100 0 0 1 &i8259 9 2 | 337 | e100 0 0 2 &i8259 9 2 |
338 | e200 0 0 1 &i8259 a 2 | 338 | e200 0 0 3 &i8259 a 2 |
339 | e300 0 0 1 &i8259 b 2 | 339 | e300 0 0 4 &i8259 b 2 |
340 | 340 | ||
341 | // IDSEL 0x1d Audio | 341 | // IDSEL 0x1d Audio |
342 | e800 0 0 1 &i8259 6 2 | 342 | e800 0 0 1 &i8259 6 2 |
@@ -481,6 +481,7 @@ | |||
481 | clock-frequency = <1fca055>; | 481 | clock-frequency = <1fca055>; |
482 | interrupt-parent = <&mpic>; | 482 | interrupt-parent = <&mpic>; |
483 | interrupts = <1b 2>; | 483 | interrupts = <1b 2>; |
484 | interrupt-map-mask = <f800 0 0 7>; | ||
484 | interrupt-map = < | 485 | interrupt-map = < |
485 | /* IDSEL 0x0 */ | 486 | /* IDSEL 0x0 */ |
486 | 0000 0 0 1 &mpic 0 1 | 487 | 0000 0 0 1 &mpic 0 1 |
diff --git a/arch/powerpc/boot/dts/mpc8610_hpcd.dts b/arch/powerpc/boot/dts/mpc8610_hpcd.dts index 01040a752c82..d98715cbda28 100644 --- a/arch/powerpc/boot/dts/mpc8610_hpcd.dts +++ b/arch/powerpc/boot/dts/mpc8610_hpcd.dts | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * MPC8610 HPCD Device Tree Source | 2 | * MPC8610 HPCD Device Tree Source |
3 | * | 3 | * |
4 | * Copyright 2007 Freescale Semiconductor Inc. | 4 | * Copyright 2007-2008 Freescale Semiconductor Inc. |
5 | * | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify it | 6 | * This program is free software; you can redistribute it and/or modify it |
7 | * under the terms of the GNU General Public License Version 2 as published | 7 | * under the terms of the GNU General Public License Version 2 as published |
@@ -49,6 +49,7 @@ | |||
49 | #size-cells = <1>; | 49 | #size-cells = <1>; |
50 | #interrupt-cells = <2>; | 50 | #interrupt-cells = <2>; |
51 | device_type = "soc"; | 51 | device_type = "soc"; |
52 | compatible = "fsl,mpc8610-immr", "simple-bus"; | ||
52 | ranges = <0 e0000000 00100000>; | 53 | ranges = <0 e0000000 00100000>; |
53 | reg = <e0000000 1000>; | 54 | reg = <e0000000 1000>; |
54 | bus-frequency = <0>; | 55 | bus-frequency = <0>; |
@@ -62,6 +63,13 @@ | |||
62 | interrupts = <2b 2>; | 63 | interrupts = <2b 2>; |
63 | interrupt-parent = <&mpic>; | 64 | interrupt-parent = <&mpic>; |
64 | dfsrr; | 65 | dfsrr; |
66 | |||
67 | cs4270:codec@4f { | ||
68 | compatible = "cirrus,cs4270"; | ||
69 | reg = <4f>; | ||
70 | /* MCLK source is a stand-alone oscillator */ | ||
71 | clock-frequency = <bb8000>; | ||
72 | }; | ||
65 | }; | 73 | }; |
66 | 74 | ||
67 | i2c@3100 { | 75 | i2c@3100 { |
@@ -111,6 +119,109 @@ | |||
111 | reg = <e0000 1000>; | 119 | reg = <e0000 1000>; |
112 | fsl,has-rstcr; | 120 | fsl,has-rstcr; |
113 | }; | 121 | }; |
122 | |||
123 | i2s@16000 { | ||
124 | compatible = "fsl,mpc8610-ssi"; | ||
125 | cell-index = <0>; | ||
126 | reg = <16000 100>; | ||
127 | interrupt-parent = <&mpic>; | ||
128 | interrupts = <3e 2>; | ||
129 | fsl,mode = "i2s-slave"; | ||
130 | codec-handle = <&cs4270>; | ||
131 | }; | ||
132 | |||
133 | ssi@16100 { | ||
134 | compatible = "fsl,mpc8610-ssi"; | ||
135 | cell-index = <1>; | ||
136 | reg = <16100 100>; | ||
137 | interrupt-parent = <&mpic>; | ||
138 | interrupts = <3f 2>; | ||
139 | }; | ||
140 | |||
141 | dma@21300 { | ||
142 | #address-cells = <1>; | ||
143 | #size-cells = <1>; | ||
144 | compatible = "fsl,mpc8610-dma", "fsl,eloplus-dma"; | ||
145 | cell-index = <0>; | ||
146 | reg = <21300 4>; /* DMA general status register */ | ||
147 | ranges = <0 21100 200>; | ||
148 | |||
149 | dma-channel@0 { | ||
150 | compatible = "fsl,mpc8610-dma-channel", | ||
151 | "fsl,eloplus-dma-channel"; | ||
152 | cell-index = <0>; | ||
153 | reg = <0 80>; | ||
154 | interrupt-parent = <&mpic>; | ||
155 | interrupts = <14 2>; | ||
156 | }; | ||
157 | dma-channel@1 { | ||
158 | compatible = "fsl,mpc8610-dma-channel", | ||
159 | "fsl,eloplus-dma-channel"; | ||
160 | cell-index = <1>; | ||
161 | reg = <80 80>; | ||
162 | interrupt-parent = <&mpic>; | ||
163 | interrupts = <15 2>; | ||
164 | }; | ||
165 | dma-channel@2 { | ||
166 | compatible = "fsl,mpc8610-dma-channel", | ||
167 | "fsl,eloplus-dma-channel"; | ||
168 | cell-index = <2>; | ||
169 | reg = <100 80>; | ||
170 | interrupt-parent = <&mpic>; | ||
171 | interrupts = <16 2>; | ||
172 | }; | ||
173 | dma-channel@3 { | ||
174 | compatible = "fsl,mpc8610-dma-channel", | ||
175 | "fsl,eloplus-dma-channel"; | ||
176 | cell-index = <3>; | ||
177 | reg = <180 80>; | ||
178 | interrupt-parent = <&mpic>; | ||
179 | interrupts = <17 2>; | ||
180 | }; | ||
181 | }; | ||
182 | |||
183 | dma@c300 { | ||
184 | #address-cells = <1>; | ||
185 | #size-cells = <1>; | ||
186 | compatible = "fsl,mpc8610-dma", "fsl,mpc8540-dma"; | ||
187 | cell-index = <1>; | ||
188 | reg = <c300 4>; /* DMA general status register */ | ||
189 | ranges = <0 c100 200>; | ||
190 | |||
191 | dma-channel@0 { | ||
192 | compatible = "fsl,mpc8610-dma-channel", | ||
193 | "fsl,mpc8540-dma-channel"; | ||
194 | cell-index = <0>; | ||
195 | reg = <0 80>; | ||
196 | interrupt-parent = <&mpic>; | ||
197 | interrupts = <3c 2>; | ||
198 | }; | ||
199 | dma-channel@1 { | ||
200 | compatible = "fsl,mpc8610-dma-channel", | ||
201 | "fsl,mpc8540-dma-channel"; | ||
202 | cell-index = <1>; | ||
203 | reg = <80 80>; | ||
204 | interrupt-parent = <&mpic>; | ||
205 | interrupts = <3d 2>; | ||
206 | }; | ||
207 | dma-channel@2 { | ||
208 | compatible = "fsl,mpc8610-dma-channel", | ||
209 | "fsl,mpc8540-dma-channel"; | ||
210 | cell-index = <2>; | ||
211 | reg = <100 80>; | ||
212 | interrupt-parent = <&mpic>; | ||
213 | interrupts = <3e 2>; | ||
214 | }; | ||
215 | dma-channel@3 { | ||
216 | compatible = "fsl,mpc8610-dma-channel", | ||
217 | "fsl,mpc8540-dma-channel"; | ||
218 | cell-index = <3>; | ||
219 | reg = <180 80>; | ||
220 | interrupt-parent = <&mpic>; | ||
221 | interrupts = <3f 2>; | ||
222 | }; | ||
223 | }; | ||
224 | |||
114 | }; | 225 | }; |
115 | 226 | ||
116 | pci0: pci@e0008000 { | 227 | pci0: pci@e0008000 { |
diff --git a/arch/powerpc/boot/dts/mpc8641_hpcn.dts b/arch/powerpc/boot/dts/mpc8641_hpcn.dts index 86fc2280c16d..556a9cac0793 100644 --- a/arch/powerpc/boot/dts/mpc8641_hpcn.dts +++ b/arch/powerpc/boot/dts/mpc8641_hpcn.dts | |||
@@ -60,10 +60,52 @@ | |||
60 | reg = <00000000 40000000>; // 1G at 0x0 | 60 | reg = <00000000 40000000>; // 1G at 0x0 |
61 | }; | 61 | }; |
62 | 62 | ||
63 | localbus@f8005000 { | ||
64 | #address-cells = <2>; | ||
65 | #size-cells = <1>; | ||
66 | compatible = "fsl,mpc8641-localbus", "simple-bus"; | ||
67 | reg = <f8005000 1000>; | ||
68 | interrupts = <13 2>; | ||
69 | interrupt-parent = <&mpic>; | ||
70 | |||
71 | ranges = <0 0 ff800000 00800000 | ||
72 | 1 0 fe000000 01000000 | ||
73 | 2 0 f8200000 00100000 | ||
74 | 3 0 f8100000 00100000>; | ||
75 | |||
76 | flash@0,0 { | ||
77 | compatible = "cfi-flash"; | ||
78 | reg = <0 0 00800000>; | ||
79 | bank-width = <2>; | ||
80 | device-width = <2>; | ||
81 | #address-cells = <1>; | ||
82 | #size-cells = <1>; | ||
83 | partition@0 { | ||
84 | label = "kernel"; | ||
85 | reg = <00000000 00300000>; | ||
86 | }; | ||
87 | partition@300000 { | ||
88 | label = "firmware b"; | ||
89 | reg = <00300000 00100000>; | ||
90 | read-only; | ||
91 | }; | ||
92 | partition@400000 { | ||
93 | label = "fs"; | ||
94 | reg = <00400000 00300000>; | ||
95 | }; | ||
96 | partition@700000 { | ||
97 | label = "firmware a"; | ||
98 | reg = <00700000 00100000>; | ||
99 | read-only; | ||
100 | }; | ||
101 | }; | ||
102 | }; | ||
103 | |||
63 | soc8641@f8000000 { | 104 | soc8641@f8000000 { |
64 | #address-cells = <1>; | 105 | #address-cells = <1>; |
65 | #size-cells = <1>; | 106 | #size-cells = <1>; |
66 | device_type = "soc"; | 107 | device_type = "soc"; |
108 | compatible = "simple-bus"; | ||
67 | ranges = <00000000 f8000000 00100000>; | 109 | ranges = <00000000 f8000000 00100000>; |
68 | reg = <f8000000 00001000>; // CCSRBAR | 110 | reg = <f8000000 00001000>; // CCSRBAR |
69 | bus-frequency = <0>; | 111 | bus-frequency = <0>; |
@@ -326,9 +368,9 @@ | |||
326 | 368 | ||
327 | // IDSEL 0x1c USB | 369 | // IDSEL 0x1c USB |
328 | e000 0 0 1 &i8259 c 2 | 370 | e000 0 0 1 &i8259 c 2 |
329 | e100 0 0 1 &i8259 9 2 | 371 | e100 0 0 2 &i8259 9 2 |
330 | e200 0 0 1 &i8259 a 2 | 372 | e200 0 0 3 &i8259 a 2 |
331 | e300 0 0 1 &i8259 b 2 | 373 | e300 0 0 4 &i8259 b 2 |
332 | 374 | ||
333 | // IDSEL 0x1d Audio | 375 | // IDSEL 0x1d Audio |
334 | e800 0 0 1 &i8259 6 2 | 376 | e800 0 0 1 &i8259 6 2 |
diff --git a/arch/powerpc/boot/dts/storcenter.dts b/arch/powerpc/boot/dts/storcenter.dts new file mode 100644 index 000000000000..6aa1d695e644 --- /dev/null +++ b/arch/powerpc/boot/dts/storcenter.dts | |||
@@ -0,0 +1,138 @@ | |||
1 | /* | ||
2 | * Device Tree Source for IOMEGA StorCenter | ||
3 | * | ||
4 | * Copyright 2007 Oyvind Repvik | ||
5 | * Copyright 2007 Jon Loeliger | ||
6 | * | ||
7 | * Based on the Kurobox DTS by G. Liakhovetski <g.liakhovetski@gmx.de> | ||
8 | * | ||
9 | * This file is licensed under the terms of the GNU General Public | ||
10 | * License version 2. This program is licensed "as is" without any | ||
11 | * warranty of any kind, whether express or implied. | ||
12 | */ | ||
13 | |||
14 | / { | ||
15 | model = "StorCenter"; | ||
16 | compatible = "storcenter"; | ||
17 | #address-cells = <1>; | ||
18 | #size-cells = <1>; | ||
19 | |||
20 | aliases { | ||
21 | serial0 = &serial0; | ||
22 | serial1 = &serial1; | ||
23 | pci0 = &pci0; | ||
24 | }; | ||
25 | |||
26 | cpus { | ||
27 | #address-cells = <1>; | ||
28 | #size-cells = <0>; | ||
29 | |||
30 | PowerPC,8241@0 { | ||
31 | device_type = "cpu"; | ||
32 | reg = <0>; | ||
33 | clock-frequency = <d# 200000000>; /* Hz */ | ||
34 | timebase-frequency = <d# 25000000>; /* Hz */ | ||
35 | bus-frequency = <0>; /* from bootwrapper */ | ||
36 | i-cache-line-size = <d# 32>; /* bytes */ | ||
37 | d-cache-line-size = <d# 32>; /* bytes */ | ||
38 | i-cache-size = <4000>; | ||
39 | d-cache-size = <4000>; | ||
40 | }; | ||
41 | }; | ||
42 | |||
43 | memory { | ||
44 | device_type = "memory"; | ||
45 | reg = <00000000 04000000>; /* 64MB @ 0x0 */ | ||
46 | }; | ||
47 | |||
48 | soc@fc000000 { | ||
49 | #address-cells = <1>; | ||
50 | #size-cells = <1>; | ||
51 | device_type = "soc"; | ||
52 | compatible = "fsl,mpc8241", "mpc10x"; | ||
53 | store-gathering = <0>; /* 0 == off, !0 == on */ | ||
54 | ranges = <0 fc000000 100000>; | ||
55 | reg = <fc000000 100000>; /* EUMB */ | ||
56 | bus-frequency = <0>; /* fixed by loader */ | ||
57 | |||
58 | i2c@3000 { | ||
59 | #address-cells = <1>; | ||
60 | #size-cells = <0>; | ||
61 | compatible = "fsl-i2c"; | ||
62 | reg = <3000 100>; | ||
63 | interrupts = <5 2>; | ||
64 | interrupt-parent = <&mpic>; | ||
65 | |||
66 | rtc@68 { | ||
67 | compatible = "dallas,ds1337"; | ||
68 | reg = <68>; | ||
69 | }; | ||
70 | }; | ||
71 | |||
72 | serial0: serial@4500 { | ||
73 | cell-index = <0>; | ||
74 | device_type = "serial"; | ||
75 | compatible = "ns16550"; | ||
76 | reg = <4500 20>; | ||
77 | clock-frequency = <d# 97553800>; /* Hz */ | ||
78 | current-speed = <d# 115200>; | ||
79 | interrupts = <9 2>; | ||
80 | interrupt-parent = <&mpic>; | ||
81 | }; | ||
82 | |||
83 | serial1: serial@4600 { | ||
84 | cell-index = <1>; | ||
85 | device_type = "serial"; | ||
86 | compatible = "ns16550"; | ||
87 | reg = <4600 20>; | ||
88 | clock-frequency = <d# 97553800>; /* Hz */ | ||
89 | current-speed = <d# 9600>; | ||
90 | interrupts = <a 2>; | ||
91 | interrupt-parent = <&mpic>; | ||
92 | }; | ||
93 | |||
94 | mpic: interrupt-controller@40000 { | ||
95 | #interrupt-cells = <2>; | ||
96 | device_type = "open-pic"; | ||
97 | compatible = "chrp,open-pic"; | ||
98 | interrupt-controller; | ||
99 | reg = <40000 40000>; | ||
100 | }; | ||
101 | |||
102 | }; | ||
103 | |||
104 | pci0: pci@fe800000 { | ||
105 | #address-cells = <3>; | ||
106 | #size-cells = <2>; | ||
107 | #interrupt-cells = <1>; | ||
108 | device_type = "pci"; | ||
109 | compatible = "mpc10x-pci"; | ||
110 | reg = <fe800000 1000>; | ||
111 | ranges = <01000000 0 0 fe000000 0 00c00000 | ||
112 | 02000000 0 80000000 80000000 0 70000000>; | ||
113 | bus-range = <0 ff>; | ||
114 | clock-frequency = <d# 97553800>; /* Hz */ | ||
115 | interrupt-parent = <&mpic>; | ||
116 | interrupt-map-mask = <f800 0 0 7>; | ||
117 | interrupt-map = < | ||
118 | /* IDSEL 13 - IDE */ | ||
119 | 6800 0 0 1 &mpic 0 1 | ||
120 | 6800 0 0 2 &mpic 0 1 | ||
121 | 6800 0 0 3 &mpic 0 1 | ||
122 | /* IDSEL 14 - USB */ | ||
123 | 7000 0 0 1 &mpic 0 1 | ||
124 | 7000 0 0 2 &mpic 0 1 | ||
125 | 7000 0 0 3 &mpic 0 1 | ||
126 | 7000 0 0 4 &mpic 0 1 | ||
127 | /* IDSEL 15 - ETH */ | ||
128 | 7800 0 0 1 &mpic 0 1 | ||
129 | 7800 0 0 2 &mpic 0 1 | ||
130 | 7800 0 0 3 &mpic 0 1 | ||
131 | 7800 0 0 4 &mpic 0 1 | ||
132 | >; | ||
133 | }; | ||
134 | |||
135 | chosen { | ||
136 | linux,stdout-path = "/soc/serial@4500"; | ||
137 | }; | ||
138 | }; | ||
diff --git a/arch/powerpc/boot/ep8248e.c b/arch/powerpc/boot/ep8248e.c new file mode 100644 index 000000000000..f57d14d0272b --- /dev/null +++ b/arch/powerpc/boot/ep8248e.c | |||
@@ -0,0 +1,55 @@ | |||
1 | /* | ||
2 | * Embedded Planet EP8248E with PlanetCore firmware | ||
3 | * | ||
4 | * Author: Scott Wood <scottwood@freescale.com> | ||
5 | * | ||
6 | * Copyright (c) 2007 Freescale Semiconductor, Inc. | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify it | ||
9 | * under the terms of the GNU General Public License version 2 as published | ||
10 | * by the Free Software Foundation. | ||
11 | */ | ||
12 | |||
13 | #include "ops.h" | ||
14 | #include "stdio.h" | ||
15 | #include "planetcore.h" | ||
16 | #include "pq2.h" | ||
17 | |||
18 | static char *table; | ||
19 | static u64 mem_size; | ||
20 | |||
21 | #include <io.h> | ||
22 | |||
23 | static void platform_fixups(void) | ||
24 | { | ||
25 | u64 val; | ||
26 | |||
27 | dt_fixup_memory(0, mem_size); | ||
28 | planetcore_set_mac_addrs(table); | ||
29 | |||
30 | if (!planetcore_get_decimal(table, PLANETCORE_KEY_CRYSTAL_HZ, &val)) { | ||
31 | printf("No PlanetCore crystal frequency key.\r\n"); | ||
32 | return; | ||
33 | } | ||
34 | |||
35 | pq2_fixup_clocks(val); | ||
36 | } | ||
37 | |||
38 | void platform_init(unsigned long r3, unsigned long r4, unsigned long r5, | ||
39 | unsigned long r6, unsigned long r7) | ||
40 | { | ||
41 | table = (char *)r3; | ||
42 | planetcore_prepare_table(table); | ||
43 | |||
44 | if (!planetcore_get_decimal(table, PLANETCORE_KEY_MB_RAM, &mem_size)) | ||
45 | return; | ||
46 | |||
47 | mem_size *= 1024 * 1024; | ||
48 | simple_alloc_init(_end, mem_size - (unsigned long)_end, 32, 64); | ||
49 | |||
50 | fdt_init(_dtb_start); | ||
51 | |||
52 | planetcore_set_stdout_path(table); | ||
53 | serial_console_init(); | ||
54 | platform_ops.fixups = platform_fixups; | ||
55 | } | ||
diff --git a/arch/powerpc/boot/ops.h b/arch/powerpc/boot/ops.h index 6036a98e646a..5872ef1779ae 100644 --- a/arch/powerpc/boot/ops.h +++ b/arch/powerpc/boot/ops.h | |||
@@ -159,9 +159,23 @@ static inline void *find_node_by_devtype(const void *prev, | |||
159 | return find_node_by_prop_value_str(prev, "device_type", type); | 159 | return find_node_by_prop_value_str(prev, "device_type", type); |
160 | } | 160 | } |
161 | 161 | ||
162 | static inline void *find_node_by_alias(const char *alias) | ||
163 | { | ||
164 | void *devp = finddevice("/aliases"); | ||
165 | |||
166 | if (devp) { | ||
167 | char path[MAX_PATH_LEN]; | ||
168 | if (getprop(devp, alias, path, MAX_PATH_LEN) > 0) | ||
169 | return finddevice(path); | ||
170 | } | ||
171 | |||
172 | return NULL; | ||
173 | } | ||
174 | |||
162 | void dt_fixup_memory(u64 start, u64 size); | 175 | void dt_fixup_memory(u64 start, u64 size); |
163 | void dt_fixup_cpu_clocks(u32 cpufreq, u32 tbfreq, u32 busfreq); | 176 | void dt_fixup_cpu_clocks(u32 cpufreq, u32 tbfreq, u32 busfreq); |
164 | void dt_fixup_clock(const char *path, u32 freq); | 177 | void dt_fixup_clock(const char *path, u32 freq); |
178 | void dt_fixup_mac_address_by_alias(const char *alias, const u8 *addr); | ||
165 | void dt_fixup_mac_address(u32 index, const u8 *addr); | 179 | void dt_fixup_mac_address(u32 index, const u8 *addr); |
166 | void __dt_fixup_mac_addresses(u32 startindex, ...); | 180 | void __dt_fixup_mac_addresses(u32 startindex, ...); |
167 | #define dt_fixup_mac_addresses(...) \ | 181 | #define dt_fixup_mac_addresses(...) \ |
diff --git a/arch/powerpc/boot/redboot-8xx.c b/arch/powerpc/boot/redboot-8xx.c new file mode 100644 index 000000000000..f7945adc8004 --- /dev/null +++ b/arch/powerpc/boot/redboot-8xx.c | |||
@@ -0,0 +1,58 @@ | |||
1 | /* | ||
2 | * RedBoot firmware support | ||
3 | * | ||
4 | * Author: Scott Wood <scottwood@freescale.com> | ||
5 | * | ||
6 | * Copyright (c) 2007 Freescale Semiconductor, Inc. | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify it | ||
9 | * under the terms of the GNU General Public License version 2 as published | ||
10 | * by the Free Software Foundation. | ||
11 | */ | ||
12 | |||
13 | #include "ops.h" | ||
14 | #include "stdio.h" | ||
15 | #include "redboot.h" | ||
16 | #include "fsl-soc.h" | ||
17 | #include "io.h" | ||
18 | |||
19 | static bd_t bd; | ||
20 | BSS_STACK(4096); | ||
21 | |||
22 | #define MHZ(x) ((x + 500000) / 1000000) | ||
23 | |||
24 | static void platform_fixups(void) | ||
25 | { | ||
26 | void *node; | ||
27 | |||
28 | dt_fixup_memory(bd.bi_memstart, bd.bi_memsize); | ||
29 | dt_fixup_mac_addresses(bd.bi_enetaddr); | ||
30 | dt_fixup_cpu_clocks(bd.bi_intfreq, bd.bi_busfreq / 16, bd.bi_busfreq); | ||
31 | |||
32 | node = finddevice("/soc/cpm/brg"); | ||
33 | if (node) { | ||
34 | printf("BRG clock-frequency <- 0x%x (%dMHz)\r\n", | ||
35 | bd.bi_busfreq, MHZ(bd.bi_busfreq)); | ||
36 | setprop(node, "clock-frequency", &bd.bi_busfreq, 4); | ||
37 | } | ||
38 | } | ||
39 | |||
40 | void platform_init(unsigned long r3, unsigned long r4, unsigned long r5, | ||
41 | unsigned long r6, unsigned long r7) | ||
42 | { | ||
43 | memcpy(&bd, (char *)r3, sizeof(bd)); | ||
44 | |||
45 | if (bd.bi_tag != 0x42444944) | ||
46 | return; | ||
47 | |||
48 | simple_alloc_init(_end, | ||
49 | bd.bi_memstart + bd.bi_memsize - (unsigned long)_end, | ||
50 | 32, 64); | ||
51 | |||
52 | fdt_init(_dtb_start); | ||
53 | serial_console_init(); | ||
54 | platform_ops.fixups = platform_fixups; | ||
55 | |||
56 | loader_info.cmdline = (char *)bd.bi_cmdline; | ||
57 | loader_info.cmdline_len = strlen((char *)bd.bi_cmdline); | ||
58 | } | ||
diff --git a/arch/powerpc/boot/redboot.h b/arch/powerpc/boot/redboot.h new file mode 100644 index 000000000000..ace0b7fed8eb --- /dev/null +++ b/arch/powerpc/boot/redboot.h | |||
@@ -0,0 +1,56 @@ | |||
1 | #ifndef _PPC_REDBOOT_H | ||
2 | #define _PPC_REDBOOT_H | ||
3 | |||
4 | //========================================================================= | ||
5 | // include/asm-ppc/redboot.h | ||
6 | // Copyright (c) 2002, 2003 Gary Thomas (<gary@mlbassoc.com> | ||
7 | // Copyright (c) 1997 Dan Malek (dmalek@jlc.net) | ||
8 | |||
9 | // | ||
10 | // Board specific details, as provided by RedBoot | ||
11 | // | ||
12 | |||
13 | /* A Board Information structure that is given to a program when | ||
14 | * RedBoot starts it up. Note: not all fields make sense for all | ||
15 | * architectures and it's up to the platform specific code to fill | ||
16 | * in the details. | ||
17 | */ | ||
18 | typedef struct bd_info { | ||
19 | unsigned int bi_tag; /* Should be 0x42444944 "BDID" */ | ||
20 | unsigned int bi_size; /* Size of this structure */ | ||
21 | unsigned int bi_revision; /* revision of this structure */ | ||
22 | unsigned int bi_bdate; /* bootstrap date, i.e. 0x19971106 */ | ||
23 | unsigned int bi_memstart; /* Memory start address */ | ||
24 | unsigned int bi_memsize; /* Memory (end) size in bytes */ | ||
25 | unsigned int bi_intfreq; /* Internal Freq, in Hz */ | ||
26 | unsigned int bi_busfreq; /* Bus Freq, in Hz */ | ||
27 | unsigned int bi_cpmfreq; /* CPM Freq, in Hz */ | ||
28 | unsigned int bi_brgfreq; /* BRG Freq, in Hz */ | ||
29 | unsigned int bi_vco; /* VCO Out from PLL */ | ||
30 | unsigned int bi_pci_freq; /* PCI Freq, in Hz */ | ||
31 | unsigned int bi_baudrate; /* Default console baud rate */ | ||
32 | unsigned int bi_immr; /* IMMR when called from boot rom */ | ||
33 | unsigned char bi_enetaddr[6]; | ||
34 | unsigned int bi_flashbase; /* Physical address of FLASH memory */ | ||
35 | unsigned int bi_flashsize; /* Length of FLASH memory */ | ||
36 | int bi_flashwidth; /* Width (8,16,32,64) */ | ||
37 | unsigned char *bi_cmdline; /* Pointer to command line */ | ||
38 | unsigned char bi_esa[3][6]; /* Ethernet station addresses */ | ||
39 | unsigned int bi_ramdisk_begin, bi_ramdisk_end; | ||
40 | struct { /* Information about [main] video screen */ | ||
41 | short x_res; /* Horizontal resolution in pixels */ | ||
42 | short y_res; /* Vertical resolution in pixels */ | ||
43 | short bpp; /* Bits/pixel */ | ||
44 | short mode; /* Type of pixels (packed, indexed) */ | ||
45 | unsigned long fb; /* Pointer to frame buffer (pixel) memory */ | ||
46 | } bi_video; | ||
47 | void (*bi_cputc)(char); /* Write a character to the RedBoot console */ | ||
48 | char (*bi_cgetc)(void); /* Read a character from the RedBoot console */ | ||
49 | int (*bi_ctstc)(void); /* Test for input on the RedBoot console */ | ||
50 | } bd_t; | ||
51 | |||
52 | #define BI_REV 0x0102 /* Version 1.02 */ | ||
53 | |||
54 | #define bi_pci_busfreq bi_pci_freq | ||
55 | #define bi_immr_base bi_immr | ||
56 | #endif | ||
diff --git a/arch/powerpc/boot/wrapper b/arch/powerpc/boot/wrapper index 154df055aad2..763a0c46f441 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 | ;; |
171 | ep88xc|ep405) | 171 | ep88xc|ep405|redboot*|ep8248e) |
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/adder875-redboot_defconfig b/arch/powerpc/configs/adder875-redboot_defconfig new file mode 100644 index 000000000000..cab5f9b64567 --- /dev/null +++ b/arch/powerpc/configs/adder875-redboot_defconfig | |||
@@ -0,0 +1,798 @@ | |||
1 | # | ||
2 | # Automatically generated make config: don't edit | ||
3 | # Linux kernel version: 2.6.24-rc6 | ||
4 | # Thu Jan 17 16:17:38 2008 | ||
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=y | ||
14 | # CONFIG_40x is not set | ||
15 | # CONFIG_44x is not set | ||
16 | # CONFIG_E200 is not set | ||
17 | CONFIG_8xx=y | ||
18 | # CONFIG_PPC_MM_SLICES is not set | ||
19 | CONFIG_NOT_COHERENT_CACHE=y | ||
20 | CONFIG_PPC32=y | ||
21 | CONFIG_WORD_SIZE=32 | ||
22 | CONFIG_PPC_MERGE=y | ||
23 | CONFIG_MMU=y | ||
24 | CONFIG_GENERIC_CMOS_UPDATE=y | ||
25 | CONFIG_GENERIC_TIME=y | ||
26 | CONFIG_GENERIC_TIME_VSYSCALL=y | ||
27 | CONFIG_GENERIC_CLOCKEVENTS=y | ||
28 | CONFIG_GENERIC_HARDIRQS=y | ||
29 | CONFIG_IRQ_PER_CPU=y | ||
30 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | ||
31 | CONFIG_ARCH_HAS_ILOG2_U32=y | ||
32 | CONFIG_GENERIC_HWEIGHT=y | ||
33 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
34 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
35 | # CONFIG_ARCH_NO_VIRT_TO_BUS is not set | ||
36 | CONFIG_PPC=y | ||
37 | CONFIG_EARLY_PRINTK=y | ||
38 | CONFIG_GENERIC_NVRAM=y | ||
39 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | ||
40 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y | ||
41 | CONFIG_PPC_OF=y | ||
42 | CONFIG_OF=y | ||
43 | # CONFIG_PPC_UDBG_16550 is not set | ||
44 | # CONFIG_GENERIC_TBSYNC is not set | ||
45 | CONFIG_AUDIT_ARCH=y | ||
46 | CONFIG_GENERIC_BUG=y | ||
47 | # CONFIG_DEFAULT_UIMAGE is not set | ||
48 | CONFIG_REDBOOT=y | ||
49 | # CONFIG_PPC_DCR_NATIVE is not set | ||
50 | # CONFIG_PPC_DCR_MMIO is not set | ||
51 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | ||
52 | |||
53 | # | ||
54 | # General setup | ||
55 | # | ||
56 | CONFIG_EXPERIMENTAL=y | ||
57 | CONFIG_BROKEN_ON_SMP=y | ||
58 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
59 | CONFIG_LOCALVERSION="" | ||
60 | CONFIG_LOCALVERSION_AUTO=y | ||
61 | # CONFIG_SWAP is not set | ||
62 | CONFIG_SYSVIPC=y | ||
63 | CONFIG_SYSVIPC_SYSCTL=y | ||
64 | # CONFIG_POSIX_MQUEUE is not set | ||
65 | # CONFIG_BSD_PROCESS_ACCT is not set | ||
66 | # CONFIG_TASKSTATS is not set | ||
67 | # CONFIG_USER_NS is not set | ||
68 | # CONFIG_PID_NS is not set | ||
69 | # CONFIG_AUDIT is not set | ||
70 | # CONFIG_IKCONFIG is not set | ||
71 | CONFIG_LOG_BUF_SHIFT=14 | ||
72 | # CONFIG_CGROUPS is not set | ||
73 | CONFIG_FAIR_GROUP_SCHED=y | ||
74 | CONFIG_FAIR_USER_SCHED=y | ||
75 | # CONFIG_FAIR_CGROUP_SCHED is not set | ||
76 | CONFIG_SYSFS_DEPRECATED=y | ||
77 | # CONFIG_RELAY is not set | ||
78 | # CONFIG_BLK_DEV_INITRD is not set | ||
79 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||
80 | CONFIG_SYSCTL=y | ||
81 | CONFIG_EMBEDDED=y | ||
82 | # CONFIG_SYSCTL_SYSCALL is not set | ||
83 | CONFIG_KALLSYMS=y | ||
84 | # CONFIG_KALLSYMS_ALL is not set | ||
85 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | ||
86 | CONFIG_HOTPLUG=y | ||
87 | CONFIG_PRINTK=y | ||
88 | CONFIG_BUG=y | ||
89 | # CONFIG_ELF_CORE is not set | ||
90 | # CONFIG_BASE_FULL is not set | ||
91 | # CONFIG_FUTEX is not set | ||
92 | CONFIG_ANON_INODES=y | ||
93 | CONFIG_EPOLL=y | ||
94 | CONFIG_SIGNALFD=y | ||
95 | CONFIG_EVENTFD=y | ||
96 | CONFIG_SHMEM=y | ||
97 | # CONFIG_VM_EVENT_COUNTERS is not set | ||
98 | CONFIG_SLUB_DEBUG=y | ||
99 | # CONFIG_SLAB is not set | ||
100 | CONFIG_SLUB=y | ||
101 | # CONFIG_SLOB is not set | ||
102 | # CONFIG_TINY_SHMEM is not set | ||
103 | CONFIG_BASE_SMALL=1 | ||
104 | # CONFIG_MODULES is not set | ||
105 | CONFIG_BLOCK=y | ||
106 | # CONFIG_LBD is not set | ||
107 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
108 | # CONFIG_LSF is not set | ||
109 | # CONFIG_BLK_DEV_BSG is not set | ||
110 | |||
111 | # | ||
112 | # IO Schedulers | ||
113 | # | ||
114 | CONFIG_IOSCHED_NOOP=y | ||
115 | # CONFIG_IOSCHED_AS is not set | ||
116 | CONFIG_IOSCHED_DEADLINE=y | ||
117 | # CONFIG_IOSCHED_CFQ is not set | ||
118 | # CONFIG_DEFAULT_AS is not set | ||
119 | CONFIG_DEFAULT_DEADLINE=y | ||
120 | # CONFIG_DEFAULT_CFQ is not set | ||
121 | # CONFIG_DEFAULT_NOOP is not set | ||
122 | CONFIG_DEFAULT_IOSCHED="deadline" | ||
123 | |||
124 | # | ||
125 | # Platform support | ||
126 | # | ||
127 | # CONFIG_PPC_MPC52xx is not set | ||
128 | # CONFIG_PPC_MPC5200 is not set | ||
129 | # CONFIG_PPC_CELL is not set | ||
130 | # CONFIG_PPC_CELL_NATIVE is not set | ||
131 | CONFIG_CPM1=y | ||
132 | # CONFIG_MPC8XXFADS is not set | ||
133 | # CONFIG_MPC86XADS is not set | ||
134 | # CONFIG_MPC885ADS is not set | ||
135 | # CONFIG_PPC_EP88XC is not set | ||
136 | CONFIG_PPC_ADDER875=y | ||
137 | |||
138 | # | ||
139 | # MPC8xx CPM Options | ||
140 | # | ||
141 | |||
142 | # | ||
143 | # Generic MPC8xx Options | ||
144 | # | ||
145 | CONFIG_8xx_COPYBACK=y | ||
146 | # CONFIG_8xx_CPU6 is not set | ||
147 | CONFIG_8xx_CPU15=y | ||
148 | CONFIG_NO_UCODE_PATCH=y | ||
149 | # CONFIG_USB_SOF_UCODE_PATCH is not set | ||
150 | # CONFIG_I2C_SPI_UCODE_PATCH is not set | ||
151 | # CONFIG_I2C_SPI_SMC1_UCODE_PATCH is not set | ||
152 | # CONFIG_PQ2ADS is not set | ||
153 | # CONFIG_MPIC is not set | ||
154 | # CONFIG_MPIC_WEIRD is not set | ||
155 | # CONFIG_PPC_I8259 is not set | ||
156 | # CONFIG_PPC_RTAS is not set | ||
157 | # CONFIG_MMIO_NVRAM is not set | ||
158 | # CONFIG_PPC_MPC106 is not set | ||
159 | # CONFIG_PPC_970_NAP is not set | ||
160 | # CONFIG_PPC_INDIRECT_IO is not set | ||
161 | # CONFIG_GENERIC_IOMAP is not set | ||
162 | # CONFIG_CPU_FREQ is not set | ||
163 | # CONFIG_CPM2 is not set | ||
164 | CONFIG_PPC_CPM_NEW_BINDING=y | ||
165 | # CONFIG_FSL_ULI1575 is not set | ||
166 | CONFIG_CPM=y | ||
167 | |||
168 | # | ||
169 | # Kernel options | ||
170 | # | ||
171 | # CONFIG_HIGHMEM is not set | ||
172 | # CONFIG_TICK_ONESHOT is not set | ||
173 | # CONFIG_NO_HZ is not set | ||
174 | # CONFIG_HIGH_RES_TIMERS is not set | ||
175 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | ||
176 | # CONFIG_HZ_100 is not set | ||
177 | # CONFIG_HZ_250 is not set | ||
178 | # CONFIG_HZ_300 is not set | ||
179 | CONFIG_HZ_1000=y | ||
180 | CONFIG_HZ=1000 | ||
181 | CONFIG_PREEMPT_NONE=y | ||
182 | # CONFIG_PREEMPT_VOLUNTARY is not set | ||
183 | # CONFIG_PREEMPT is not set | ||
184 | CONFIG_BINFMT_ELF=y | ||
185 | # CONFIG_BINFMT_MISC is not set | ||
186 | # CONFIG_MATH_EMULATION is not set | ||
187 | # CONFIG_8XX_MINIMAL_FPEMU is not set | ||
188 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | ||
189 | CONFIG_ARCH_FLATMEM_ENABLE=y | ||
190 | CONFIG_ARCH_POPULATES_NODE_MAP=y | ||
191 | CONFIG_SELECT_MEMORY_MODEL=y | ||
192 | CONFIG_FLATMEM_MANUAL=y | ||
193 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
194 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
195 | CONFIG_FLATMEM=y | ||
196 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
197 | # CONFIG_SPARSEMEM_STATIC is not set | ||
198 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | ||
199 | CONFIG_SPLIT_PTLOCK_CPUS=4 | ||
200 | # CONFIG_RESOURCES_64BIT is not set | ||
201 | CONFIG_ZONE_DMA_FLAG=1 | ||
202 | CONFIG_BOUNCE=y | ||
203 | CONFIG_VIRT_TO_BUS=y | ||
204 | # CONFIG_PROC_DEVICETREE is not set | ||
205 | # CONFIG_CMDLINE_BOOL is not set | ||
206 | # CONFIG_PM is not set | ||
207 | CONFIG_SUSPEND_UP_POSSIBLE=y | ||
208 | CONFIG_HIBERNATION_UP_POSSIBLE=y | ||
209 | # CONFIG_SECCOMP is not set | ||
210 | CONFIG_WANT_DEVICE_TREE=y | ||
211 | CONFIG_DEVICE_TREE="adder875-redboot.dts" | ||
212 | CONFIG_ISA_DMA_API=y | ||
213 | |||
214 | # | ||
215 | # Bus options | ||
216 | # | ||
217 | CONFIG_ZONE_DMA=y | ||
218 | CONFIG_FSL_SOC=y | ||
219 | # CONFIG_PCI is not set | ||
220 | # CONFIG_PCI_DOMAINS is not set | ||
221 | # CONFIG_PCI_SYSCALL is not set | ||
222 | # CONFIG_PCI_QSPAN is not set | ||
223 | # CONFIG_ARCH_SUPPORTS_MSI is not set | ||
224 | # CONFIG_PCCARD is not set | ||
225 | |||
226 | # | ||
227 | # Advanced setup | ||
228 | # | ||
229 | # CONFIG_ADVANCED_OPTIONS is not set | ||
230 | |||
231 | # | ||
232 | # Default settings for advanced configuration options are used | ||
233 | # | ||
234 | CONFIG_HIGHMEM_START=0xfe000000 | ||
235 | CONFIG_LOWMEM_SIZE=0x30000000 | ||
236 | CONFIG_KERNEL_START=0xc0000000 | ||
237 | CONFIG_TASK_SIZE=0x80000000 | ||
238 | CONFIG_CONSISTENT_START=0xfd000000 | ||
239 | CONFIG_CONSISTENT_SIZE=0x00200000 | ||
240 | CONFIG_BOOT_LOAD=0x00400000 | ||
241 | |||
242 | # | ||
243 | # Networking | ||
244 | # | ||
245 | CONFIG_NET=y | ||
246 | |||
247 | # | ||
248 | # Networking options | ||
249 | # | ||
250 | CONFIG_PACKET=y | ||
251 | # CONFIG_PACKET_MMAP is not set | ||
252 | CONFIG_UNIX=y | ||
253 | # CONFIG_NET_KEY is not set | ||
254 | CONFIG_INET=y | ||
255 | CONFIG_IP_MULTICAST=y | ||
256 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
257 | CONFIG_IP_FIB_HASH=y | ||
258 | CONFIG_IP_PNP=y | ||
259 | # CONFIG_IP_PNP_DHCP is not set | ||
260 | # CONFIG_IP_PNP_BOOTP is not set | ||
261 | # CONFIG_IP_PNP_RARP is not set | ||
262 | # CONFIG_NET_IPIP is not set | ||
263 | # CONFIG_NET_IPGRE is not set | ||
264 | # CONFIG_IP_MROUTE is not set | ||
265 | # CONFIG_ARPD is not set | ||
266 | CONFIG_SYN_COOKIES=y | ||
267 | # CONFIG_INET_AH is not set | ||
268 | # CONFIG_INET_ESP is not set | ||
269 | # CONFIG_INET_IPCOMP is not set | ||
270 | # CONFIG_INET_XFRM_TUNNEL is not set | ||
271 | # CONFIG_INET_TUNNEL is not set | ||
272 | # CONFIG_INET_XFRM_MODE_TRANSPORT is not set | ||
273 | # CONFIG_INET_XFRM_MODE_TUNNEL is not set | ||
274 | # CONFIG_INET_XFRM_MODE_BEET is not set | ||
275 | # CONFIG_INET_LRO is not set | ||
276 | CONFIG_INET_DIAG=y | ||
277 | CONFIG_INET_TCP_DIAG=y | ||
278 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
279 | CONFIG_TCP_CONG_CUBIC=y | ||
280 | CONFIG_DEFAULT_TCP_CONG="cubic" | ||
281 | # CONFIG_TCP_MD5SIG is not set | ||
282 | # CONFIG_IPV6 is not set | ||
283 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
284 | # CONFIG_INET6_TUNNEL is not set | ||
285 | # CONFIG_NETWORK_SECMARK is not set | ||
286 | # CONFIG_NETFILTER is not set | ||
287 | # CONFIG_IP_DCCP is not set | ||
288 | # CONFIG_IP_SCTP is not set | ||
289 | # CONFIG_TIPC is not set | ||
290 | # CONFIG_ATM is not set | ||
291 | # CONFIG_BRIDGE is not set | ||
292 | # CONFIG_VLAN_8021Q is not set | ||
293 | # CONFIG_DECNET is not set | ||
294 | # CONFIG_LLC2 is not set | ||
295 | # CONFIG_IPX is not set | ||
296 | # CONFIG_ATALK is not set | ||
297 | # CONFIG_X25 is not set | ||
298 | # CONFIG_LAPB is not set | ||
299 | # CONFIG_ECONET is not set | ||
300 | # CONFIG_WAN_ROUTER is not set | ||
301 | # CONFIG_NET_SCHED is not set | ||
302 | |||
303 | # | ||
304 | # Network testing | ||
305 | # | ||
306 | # CONFIG_NET_PKTGEN is not set | ||
307 | # CONFIG_HAMRADIO is not set | ||
308 | # CONFIG_IRDA is not set | ||
309 | # CONFIG_BT is not set | ||
310 | # CONFIG_AF_RXRPC is not set | ||
311 | |||
312 | # | ||
313 | # Wireless | ||
314 | # | ||
315 | # CONFIG_CFG80211 is not set | ||
316 | # CONFIG_WIRELESS_EXT is not set | ||
317 | # CONFIG_MAC80211 is not set | ||
318 | # CONFIG_IEEE80211 is not set | ||
319 | # CONFIG_RFKILL is not set | ||
320 | # CONFIG_NET_9P is not set | ||
321 | |||
322 | # | ||
323 | # Device Drivers | ||
324 | # | ||
325 | |||
326 | # | ||
327 | # Generic Driver Options | ||
328 | # | ||
329 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | ||
330 | CONFIG_STANDALONE=y | ||
331 | CONFIG_PREVENT_FIRMWARE_BUILD=y | ||
332 | # CONFIG_FW_LOADER is not set | ||
333 | # CONFIG_DEBUG_DRIVER is not set | ||
334 | # CONFIG_DEBUG_DEVRES is not set | ||
335 | # CONFIG_SYS_HYPERVISOR is not set | ||
336 | # CONFIG_CONNECTOR is not set | ||
337 | CONFIG_MTD=y | ||
338 | # CONFIG_MTD_DEBUG is not set | ||
339 | # CONFIG_MTD_CONCAT is not set | ||
340 | # CONFIG_MTD_PARTITIONS is not set | ||
341 | |||
342 | # | ||
343 | # User Modules And Translation Layers | ||
344 | # | ||
345 | CONFIG_MTD_CHAR=y | ||
346 | CONFIG_MTD_BLKDEVS=y | ||
347 | CONFIG_MTD_BLOCK=y | ||
348 | # CONFIG_FTL is not set | ||
349 | # CONFIG_NFTL is not set | ||
350 | # CONFIG_INFTL is not set | ||
351 | # CONFIG_RFD_FTL is not set | ||
352 | # CONFIG_SSFDC is not set | ||
353 | # CONFIG_MTD_OOPS is not set | ||
354 | |||
355 | # | ||
356 | # RAM/ROM/Flash chip drivers | ||
357 | # | ||
358 | CONFIG_MTD_CFI=y | ||
359 | # CONFIG_MTD_JEDECPROBE is not set | ||
360 | CONFIG_MTD_GEN_PROBE=y | ||
361 | # CONFIG_MTD_CFI_ADV_OPTIONS is not set | ||
362 | CONFIG_MTD_MAP_BANK_WIDTH_1=y | ||
363 | CONFIG_MTD_MAP_BANK_WIDTH_2=y | ||
364 | CONFIG_MTD_MAP_BANK_WIDTH_4=y | ||
365 | # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set | ||
366 | # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set | ||
367 | # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set | ||
368 | CONFIG_MTD_CFI_I1=y | ||
369 | CONFIG_MTD_CFI_I2=y | ||
370 | # CONFIG_MTD_CFI_I4 is not set | ||
371 | # CONFIG_MTD_CFI_I8 is not set | ||
372 | # CONFIG_MTD_CFI_INTELEXT is not set | ||
373 | CONFIG_MTD_CFI_AMDSTD=y | ||
374 | # CONFIG_MTD_CFI_STAA is not set | ||
375 | CONFIG_MTD_CFI_UTIL=y | ||
376 | # CONFIG_MTD_RAM is not set | ||
377 | # CONFIG_MTD_ROM is not set | ||
378 | # CONFIG_MTD_ABSENT is not set | ||
379 | |||
380 | # | ||
381 | # Mapping drivers for chip access | ||
382 | # | ||
383 | # CONFIG_MTD_COMPLEX_MAPPINGS is not set | ||
384 | # CONFIG_MTD_PHYSMAP is not set | ||
385 | CONFIG_MTD_PHYSMAP_OF=y | ||
386 | # CONFIG_MTD_CFI_FLAGADM is not set | ||
387 | # CONFIG_MTD_PLATRAM is not set | ||
388 | |||
389 | # | ||
390 | # Self-contained MTD device drivers | ||
391 | # | ||
392 | # CONFIG_MTD_SLRAM is not set | ||
393 | # CONFIG_MTD_PHRAM is not set | ||
394 | # CONFIG_MTD_MTDRAM is not set | ||
395 | # CONFIG_MTD_BLOCK2MTD is not set | ||
396 | |||
397 | # | ||
398 | # Disk-On-Chip Device Drivers | ||
399 | # | ||
400 | # CONFIG_MTD_DOC2000 is not set | ||
401 | # CONFIG_MTD_DOC2001 is not set | ||
402 | # CONFIG_MTD_DOC2001PLUS is not set | ||
403 | # CONFIG_MTD_NAND is not set | ||
404 | # CONFIG_MTD_ONENAND is not set | ||
405 | |||
406 | # | ||
407 | # UBI - Unsorted block images | ||
408 | # | ||
409 | # CONFIG_MTD_UBI is not set | ||
410 | CONFIG_OF_DEVICE=y | ||
411 | # CONFIG_PARPORT is not set | ||
412 | # CONFIG_BLK_DEV is not set | ||
413 | # CONFIG_MISC_DEVICES is not set | ||
414 | # CONFIG_IDE is not set | ||
415 | |||
416 | # | ||
417 | # SCSI device support | ||
418 | # | ||
419 | # CONFIG_RAID_ATTRS is not set | ||
420 | # CONFIG_SCSI is not set | ||
421 | # CONFIG_SCSI_DMA is not set | ||
422 | # CONFIG_SCSI_NETLINK is not set | ||
423 | # CONFIG_ATA is not set | ||
424 | # CONFIG_MD is not set | ||
425 | # CONFIG_MACINTOSH_DRIVERS is not set | ||
426 | CONFIG_NETDEVICES=y | ||
427 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
428 | # CONFIG_DUMMY is not set | ||
429 | # CONFIG_BONDING is not set | ||
430 | # CONFIG_MACVLAN is not set | ||
431 | # CONFIG_EQUALIZER is not set | ||
432 | # CONFIG_TUN is not set | ||
433 | # CONFIG_VETH is not set | ||
434 | CONFIG_PHYLIB=y | ||
435 | |||
436 | # | ||
437 | # MII PHY device drivers | ||
438 | # | ||
439 | # CONFIG_MARVELL_PHY is not set | ||
440 | CONFIG_DAVICOM_PHY=y | ||
441 | # CONFIG_QSEMI_PHY is not set | ||
442 | # CONFIG_LXT_PHY is not set | ||
443 | # CONFIG_CICADA_PHY is not set | ||
444 | # CONFIG_VITESSE_PHY is not set | ||
445 | # CONFIG_SMSC_PHY is not set | ||
446 | # CONFIG_BROADCOM_PHY is not set | ||
447 | # CONFIG_ICPLUS_PHY is not set | ||
448 | # CONFIG_FIXED_PHY is not set | ||
449 | # CONFIG_MDIO_BITBANG is not set | ||
450 | CONFIG_NET_ETHERNET=y | ||
451 | CONFIG_MII=y | ||
452 | # CONFIG_IBM_NEW_EMAC_ZMII is not set | ||
453 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | ||
454 | # CONFIG_IBM_NEW_EMAC_TAH is not set | ||
455 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | ||
456 | # CONFIG_B44 is not set | ||
457 | CONFIG_FS_ENET=y | ||
458 | # CONFIG_FS_ENET_HAS_SCC is not set | ||
459 | CONFIG_FS_ENET_HAS_FEC=y | ||
460 | CONFIG_FS_ENET_MDIO_FEC=y | ||
461 | # CONFIG_NETDEV_1000 is not set | ||
462 | # CONFIG_NETDEV_10000 is not set | ||
463 | |||
464 | # | ||
465 | # Wireless LAN | ||
466 | # | ||
467 | # CONFIG_WLAN_PRE80211 is not set | ||
468 | # CONFIG_WLAN_80211 is not set | ||
469 | # CONFIG_WAN is not set | ||
470 | # CONFIG_PPP is not set | ||
471 | # CONFIG_SLIP is not set | ||
472 | # CONFIG_SHAPER is not set | ||
473 | # CONFIG_NETCONSOLE is not set | ||
474 | # CONFIG_NETPOLL is not set | ||
475 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
476 | # CONFIG_ISDN is not set | ||
477 | # CONFIG_PHONE is not set | ||
478 | |||
479 | # | ||
480 | # Input device support | ||
481 | # | ||
482 | CONFIG_INPUT=y | ||
483 | # CONFIG_INPUT_FF_MEMLESS is not set | ||
484 | # CONFIG_INPUT_POLLDEV is not set | ||
485 | |||
486 | # | ||
487 | # Userland interfaces | ||
488 | # | ||
489 | CONFIG_INPUT_MOUSEDEV=y | ||
490 | CONFIG_INPUT_MOUSEDEV_PSAUX=y | ||
491 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 | ||
492 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | ||
493 | # CONFIG_INPUT_JOYDEV is not set | ||
494 | # CONFIG_INPUT_EVDEV is not set | ||
495 | # CONFIG_INPUT_EVBUG is not set | ||
496 | |||
497 | # | ||
498 | # Input Device Drivers | ||
499 | # | ||
500 | CONFIG_INPUT_KEYBOARD=y | ||
501 | CONFIG_KEYBOARD_ATKBD=y | ||
502 | # CONFIG_KEYBOARD_SUNKBD is not set | ||
503 | # CONFIG_KEYBOARD_LKKBD is not set | ||
504 | # CONFIG_KEYBOARD_XTKBD is not set | ||
505 | # CONFIG_KEYBOARD_NEWTON is not set | ||
506 | # CONFIG_KEYBOARD_STOWAWAY is not set | ||
507 | CONFIG_INPUT_MOUSE=y | ||
508 | CONFIG_MOUSE_PS2=y | ||
509 | CONFIG_MOUSE_PS2_ALPS=y | ||
510 | CONFIG_MOUSE_PS2_LOGIPS2PP=y | ||
511 | CONFIG_MOUSE_PS2_SYNAPTICS=y | ||
512 | CONFIG_MOUSE_PS2_LIFEBOOK=y | ||
513 | CONFIG_MOUSE_PS2_TRACKPOINT=y | ||
514 | # CONFIG_MOUSE_PS2_TOUCHKIT is not set | ||
515 | # CONFIG_MOUSE_SERIAL is not set | ||
516 | # CONFIG_MOUSE_VSXXXAA is not set | ||
517 | # CONFIG_INPUT_JOYSTICK is not set | ||
518 | # CONFIG_INPUT_TABLET is not set | ||
519 | # CONFIG_INPUT_TOUCHSCREEN is not set | ||
520 | # CONFIG_INPUT_MISC is not set | ||
521 | |||
522 | # | ||
523 | # Hardware I/O ports | ||
524 | # | ||
525 | CONFIG_SERIO=y | ||
526 | CONFIG_SERIO_I8042=y | ||
527 | CONFIG_SERIO_SERPORT=y | ||
528 | CONFIG_SERIO_LIBPS2=y | ||
529 | # CONFIG_SERIO_RAW is not set | ||
530 | # CONFIG_GAMEPORT is not set | ||
531 | |||
532 | # | ||
533 | # Character devices | ||
534 | # | ||
535 | # CONFIG_VT is not set | ||
536 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
537 | |||
538 | # | ||
539 | # Serial drivers | ||
540 | # | ||
541 | # CONFIG_SERIAL_8250 is not set | ||
542 | |||
543 | # | ||
544 | # Non-8250 serial port support | ||
545 | # | ||
546 | # CONFIG_SERIAL_UARTLITE is not set | ||
547 | CONFIG_SERIAL_CORE=y | ||
548 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
549 | CONFIG_SERIAL_CPM=y | ||
550 | CONFIG_SERIAL_CPM_CONSOLE=y | ||
551 | # CONFIG_SERIAL_CPM_SCC1 is not set | ||
552 | # CONFIG_SERIAL_CPM_SCC2 is not set | ||
553 | # CONFIG_SERIAL_CPM_SCC3 is not set | ||
554 | # CONFIG_SERIAL_CPM_SCC4 is not set | ||
555 | CONFIG_SERIAL_CPM_SMC1=y | ||
556 | CONFIG_SERIAL_CPM_SMC2=y | ||
557 | CONFIG_UNIX98_PTYS=y | ||
558 | # CONFIG_LEGACY_PTYS is not set | ||
559 | # CONFIG_IPMI_HANDLER is not set | ||
560 | CONFIG_HW_RANDOM=y | ||
561 | # CONFIG_NVRAM is not set | ||
562 | CONFIG_GEN_RTC=y | ||
563 | # CONFIG_GEN_RTC_X is not set | ||
564 | # CONFIG_R3964 is not set | ||
565 | # CONFIG_RAW_DRIVER is not set | ||
566 | # CONFIG_TCG_TPM is not set | ||
567 | # CONFIG_I2C is not set | ||
568 | |||
569 | # | ||
570 | # SPI support | ||
571 | # | ||
572 | # CONFIG_SPI is not set | ||
573 | # CONFIG_SPI_MASTER is not set | ||
574 | # CONFIG_W1 is not set | ||
575 | # CONFIG_POWER_SUPPLY is not set | ||
576 | # CONFIG_HWMON is not set | ||
577 | # CONFIG_WATCHDOG is not set | ||
578 | |||
579 | # | ||
580 | # Sonics Silicon Backplane | ||
581 | # | ||
582 | CONFIG_SSB_POSSIBLE=y | ||
583 | # CONFIG_SSB is not set | ||
584 | |||
585 | # | ||
586 | # Multifunction device drivers | ||
587 | # | ||
588 | # CONFIG_MFD_SM501 is not set | ||
589 | |||
590 | # | ||
591 | # Multimedia devices | ||
592 | # | ||
593 | # CONFIG_VIDEO_DEV is not set | ||
594 | # CONFIG_DVB_CORE is not set | ||
595 | CONFIG_DAB=y | ||
596 | |||
597 | # | ||
598 | # Graphics support | ||
599 | # | ||
600 | # CONFIG_VGASTATE is not set | ||
601 | CONFIG_VIDEO_OUTPUT_CONTROL=y | ||
602 | # CONFIG_FB is not set | ||
603 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
604 | |||
605 | # | ||
606 | # Display device support | ||
607 | # | ||
608 | # CONFIG_DISPLAY_SUPPORT is not set | ||
609 | |||
610 | # | ||
611 | # Sound | ||
612 | # | ||
613 | # CONFIG_SOUND is not set | ||
614 | # CONFIG_HID_SUPPORT is not set | ||
615 | # CONFIG_USB_SUPPORT is not set | ||
616 | # CONFIG_MMC is not set | ||
617 | # CONFIG_NEW_LEDS is not set | ||
618 | # CONFIG_EDAC is not set | ||
619 | # CONFIG_RTC_CLASS is not set | ||
620 | |||
621 | # | ||
622 | # Userspace I/O | ||
623 | # | ||
624 | # CONFIG_UIO is not set | ||
625 | |||
626 | # | ||
627 | # File systems | ||
628 | # | ||
629 | # CONFIG_EXT2_FS is not set | ||
630 | # CONFIG_EXT3_FS is not set | ||
631 | # CONFIG_EXT4DEV_FS is not set | ||
632 | # CONFIG_REISERFS_FS is not set | ||
633 | # CONFIG_JFS_FS is not set | ||
634 | # CONFIG_FS_POSIX_ACL is not set | ||
635 | # CONFIG_XFS_FS is not set | ||
636 | # CONFIG_GFS2_FS is not set | ||
637 | # CONFIG_OCFS2_FS is not set | ||
638 | # CONFIG_MINIX_FS is not set | ||
639 | # CONFIG_ROMFS_FS is not set | ||
640 | # CONFIG_INOTIFY is not set | ||
641 | # CONFIG_QUOTA is not set | ||
642 | # CONFIG_DNOTIFY is not set | ||
643 | # CONFIG_AUTOFS_FS is not set | ||
644 | # CONFIG_AUTOFS4_FS is not set | ||
645 | # CONFIG_FUSE_FS is not set | ||
646 | |||
647 | # | ||
648 | # CD-ROM/DVD Filesystems | ||
649 | # | ||
650 | # CONFIG_ISO9660_FS is not set | ||
651 | # CONFIG_UDF_FS is not set | ||
652 | |||
653 | # | ||
654 | # DOS/FAT/NT Filesystems | ||
655 | # | ||
656 | # CONFIG_MSDOS_FS is not set | ||
657 | # CONFIG_VFAT_FS is not set | ||
658 | # CONFIG_NTFS_FS is not set | ||
659 | |||
660 | # | ||
661 | # Pseudo filesystems | ||
662 | # | ||
663 | CONFIG_PROC_FS=y | ||
664 | # CONFIG_PROC_KCORE is not set | ||
665 | CONFIG_PROC_SYSCTL=y | ||
666 | CONFIG_SYSFS=y | ||
667 | CONFIG_TMPFS=y | ||
668 | # CONFIG_TMPFS_POSIX_ACL is not set | ||
669 | # CONFIG_HUGETLB_PAGE is not set | ||
670 | # CONFIG_CONFIGFS_FS is not set | ||
671 | |||
672 | # | ||
673 | # Miscellaneous filesystems | ||
674 | # | ||
675 | # CONFIG_ADFS_FS is not set | ||
676 | # CONFIG_AFFS_FS is not set | ||
677 | # CONFIG_HFS_FS is not set | ||
678 | # CONFIG_HFSPLUS_FS is not set | ||
679 | # CONFIG_BEFS_FS is not set | ||
680 | # CONFIG_BFS_FS is not set | ||
681 | # CONFIG_EFS_FS is not set | ||
682 | # CONFIG_JFFS2_FS is not set | ||
683 | CONFIG_CRAMFS=y | ||
684 | # CONFIG_VXFS_FS is not set | ||
685 | # CONFIG_HPFS_FS is not set | ||
686 | # CONFIG_QNX4FS_FS is not set | ||
687 | # CONFIG_SYSV_FS is not set | ||
688 | # CONFIG_UFS_FS is not set | ||
689 | CONFIG_NETWORK_FILESYSTEMS=y | ||
690 | CONFIG_NFS_FS=y | ||
691 | CONFIG_NFS_V3=y | ||
692 | # CONFIG_NFS_V3_ACL is not set | ||
693 | # CONFIG_NFS_V4 is not set | ||
694 | # CONFIG_NFS_DIRECTIO is not set | ||
695 | # CONFIG_NFSD is not set | ||
696 | CONFIG_ROOT_NFS=y | ||
697 | CONFIG_LOCKD=y | ||
698 | CONFIG_LOCKD_V4=y | ||
699 | CONFIG_NFS_COMMON=y | ||
700 | CONFIG_SUNRPC=y | ||
701 | # CONFIG_SUNRPC_BIND34 is not set | ||
702 | # CONFIG_RPCSEC_GSS_KRB5 is not set | ||
703 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | ||
704 | # CONFIG_SMB_FS is not set | ||
705 | # CONFIG_CIFS is not set | ||
706 | # CONFIG_NCP_FS is not set | ||
707 | # CONFIG_CODA_FS is not set | ||
708 | # CONFIG_AFS_FS is not set | ||
709 | |||
710 | # | ||
711 | # Partition Types | ||
712 | # | ||
713 | CONFIG_PARTITION_ADVANCED=y | ||
714 | # CONFIG_ACORN_PARTITION is not set | ||
715 | # CONFIG_OSF_PARTITION is not set | ||
716 | # CONFIG_AMIGA_PARTITION is not set | ||
717 | # CONFIG_ATARI_PARTITION is not set | ||
718 | # CONFIG_MAC_PARTITION is not set | ||
719 | CONFIG_MSDOS_PARTITION=y | ||
720 | # CONFIG_BSD_DISKLABEL is not set | ||
721 | # CONFIG_MINIX_SUBPARTITION is not set | ||
722 | # CONFIG_SOLARIS_X86_PARTITION is not set | ||
723 | # CONFIG_UNIXWARE_DISKLABEL is not set | ||
724 | # CONFIG_LDM_PARTITION is not set | ||
725 | # CONFIG_SGI_PARTITION is not set | ||
726 | # CONFIG_ULTRIX_PARTITION is not set | ||
727 | # CONFIG_SUN_PARTITION is not set | ||
728 | # CONFIG_KARMA_PARTITION is not set | ||
729 | # CONFIG_EFI_PARTITION is not set | ||
730 | # CONFIG_SYSV68_PARTITION is not set | ||
731 | # CONFIG_NLS is not set | ||
732 | # CONFIG_DLM is not set | ||
733 | # CONFIG_UCC_SLOW is not set | ||
734 | |||
735 | # | ||
736 | # Library routines | ||
737 | # | ||
738 | # CONFIG_CRC_CCITT is not set | ||
739 | # CONFIG_CRC16 is not set | ||
740 | # CONFIG_CRC_ITU_T is not set | ||
741 | # CONFIG_CRC32 is not set | ||
742 | # CONFIG_CRC7 is not set | ||
743 | # CONFIG_LIBCRC32C is not set | ||
744 | CONFIG_ZLIB_INFLATE=y | ||
745 | CONFIG_HAS_IOMEM=y | ||
746 | CONFIG_HAS_IOPORT=y | ||
747 | CONFIG_HAS_DMA=y | ||
748 | CONFIG_INSTRUMENTATION=y | ||
749 | # CONFIG_PROFILING is not set | ||
750 | # CONFIG_MARKERS is not set | ||
751 | |||
752 | # | ||
753 | # Kernel hacking | ||
754 | # | ||
755 | # CONFIG_PRINTK_TIME is not set | ||
756 | CONFIG_ENABLE_WARN_DEPRECATED=y | ||
757 | CONFIG_ENABLE_MUST_CHECK=y | ||
758 | CONFIG_MAGIC_SYSRQ=y | ||
759 | # CONFIG_UNUSED_SYMBOLS is not set | ||
760 | # CONFIG_DEBUG_FS is not set | ||
761 | # CONFIG_HEADERS_CHECK is not set | ||
762 | CONFIG_DEBUG_KERNEL=y | ||
763 | # CONFIG_DEBUG_SHIRQ is not set | ||
764 | CONFIG_DETECT_SOFTLOCKUP=y | ||
765 | CONFIG_SCHED_DEBUG=y | ||
766 | # CONFIG_SCHEDSTATS is not set | ||
767 | # CONFIG_TIMER_STATS is not set | ||
768 | # CONFIG_SLUB_DEBUG_ON is not set | ||
769 | # CONFIG_DEBUG_SPINLOCK is not set | ||
770 | # CONFIG_DEBUG_MUTEXES is not set | ||
771 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | ||
772 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | ||
773 | # CONFIG_DEBUG_KOBJECT is not set | ||
774 | CONFIG_DEBUG_BUGVERBOSE=y | ||
775 | CONFIG_DEBUG_INFO=y | ||
776 | # CONFIG_DEBUG_VM is not set | ||
777 | # CONFIG_DEBUG_LIST is not set | ||
778 | # CONFIG_DEBUG_SG is not set | ||
779 | CONFIG_FORCED_INLINING=y | ||
780 | # CONFIG_BOOT_PRINTK_DELAY is not set | ||
781 | # CONFIG_FAULT_INJECTION is not set | ||
782 | # CONFIG_SAMPLES is not set | ||
783 | # CONFIG_DEBUG_STACKOVERFLOW is not set | ||
784 | # CONFIG_DEBUG_STACK_USAGE is not set | ||
785 | # CONFIG_DEBUG_PAGEALLOC is not set | ||
786 | # CONFIG_DEBUGGER is not set | ||
787 | # CONFIG_BDI_SWITCH is not set | ||
788 | # CONFIG_PPC_EARLY_DEBUG is not set | ||
789 | |||
790 | # | ||
791 | # Security options | ||
792 | # | ||
793 | # CONFIG_KEYS is not set | ||
794 | # CONFIG_SECURITY is not set | ||
795 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | ||
796 | # CONFIG_CRYPTO is not set | ||
797 | # CONFIG_PPC_CLOCK is not set | ||
798 | CONFIG_PPC_LIB_RHEAP=y | ||
diff --git a/arch/powerpc/configs/adder875-uboot_defconfig b/arch/powerpc/configs/adder875-uboot_defconfig new file mode 100644 index 000000000000..1faf7ef59a23 --- /dev/null +++ b/arch/powerpc/configs/adder875-uboot_defconfig | |||
@@ -0,0 +1,798 @@ | |||
1 | # | ||
2 | # Automatically generated make config: don't edit | ||
3 | # Linux kernel version: 2.6.24-rc6 | ||
4 | # Thu Jan 17 16:17:18 2008 | ||
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=y | ||
14 | # CONFIG_40x is not set | ||
15 | # CONFIG_44x is not set | ||
16 | # CONFIG_E200 is not set | ||
17 | CONFIG_8xx=y | ||
18 | # CONFIG_PPC_MM_SLICES is not set | ||
19 | CONFIG_NOT_COHERENT_CACHE=y | ||
20 | CONFIG_PPC32=y | ||
21 | CONFIG_WORD_SIZE=32 | ||
22 | CONFIG_PPC_MERGE=y | ||
23 | CONFIG_MMU=y | ||
24 | CONFIG_GENERIC_CMOS_UPDATE=y | ||
25 | CONFIG_GENERIC_TIME=y | ||
26 | CONFIG_GENERIC_TIME_VSYSCALL=y | ||
27 | CONFIG_GENERIC_CLOCKEVENTS=y | ||
28 | CONFIG_GENERIC_HARDIRQS=y | ||
29 | CONFIG_IRQ_PER_CPU=y | ||
30 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | ||
31 | CONFIG_ARCH_HAS_ILOG2_U32=y | ||
32 | CONFIG_GENERIC_HWEIGHT=y | ||
33 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
34 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
35 | # CONFIG_ARCH_NO_VIRT_TO_BUS is not set | ||
36 | CONFIG_PPC=y | ||
37 | CONFIG_EARLY_PRINTK=y | ||
38 | CONFIG_GENERIC_NVRAM=y | ||
39 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | ||
40 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y | ||
41 | CONFIG_PPC_OF=y | ||
42 | CONFIG_OF=y | ||
43 | # CONFIG_PPC_UDBG_16550 is not set | ||
44 | # CONFIG_GENERIC_TBSYNC is not set | ||
45 | CONFIG_AUDIT_ARCH=y | ||
46 | CONFIG_GENERIC_BUG=y | ||
47 | # CONFIG_DEFAULT_UIMAGE is not set | ||
48 | CONFIG_REDBOOT=y | ||
49 | # CONFIG_PPC_DCR_NATIVE is not set | ||
50 | # CONFIG_PPC_DCR_MMIO is not set | ||
51 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | ||
52 | |||
53 | # | ||
54 | # General setup | ||
55 | # | ||
56 | CONFIG_EXPERIMENTAL=y | ||
57 | CONFIG_BROKEN_ON_SMP=y | ||
58 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
59 | CONFIG_LOCALVERSION="" | ||
60 | CONFIG_LOCALVERSION_AUTO=y | ||
61 | # CONFIG_SWAP is not set | ||
62 | CONFIG_SYSVIPC=y | ||
63 | CONFIG_SYSVIPC_SYSCTL=y | ||
64 | # CONFIG_POSIX_MQUEUE is not set | ||
65 | # CONFIG_BSD_PROCESS_ACCT is not set | ||
66 | # CONFIG_TASKSTATS is not set | ||
67 | # CONFIG_USER_NS is not set | ||
68 | # CONFIG_PID_NS is not set | ||
69 | # CONFIG_AUDIT is not set | ||
70 | # CONFIG_IKCONFIG is not set | ||
71 | CONFIG_LOG_BUF_SHIFT=14 | ||
72 | # CONFIG_CGROUPS is not set | ||
73 | CONFIG_FAIR_GROUP_SCHED=y | ||
74 | CONFIG_FAIR_USER_SCHED=y | ||
75 | # CONFIG_FAIR_CGROUP_SCHED is not set | ||
76 | CONFIG_SYSFS_DEPRECATED=y | ||
77 | # CONFIG_RELAY is not set | ||
78 | # CONFIG_BLK_DEV_INITRD is not set | ||
79 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||
80 | CONFIG_SYSCTL=y | ||
81 | CONFIG_EMBEDDED=y | ||
82 | # CONFIG_SYSCTL_SYSCALL is not set | ||
83 | CONFIG_KALLSYMS=y | ||
84 | # CONFIG_KALLSYMS_ALL is not set | ||
85 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | ||
86 | CONFIG_HOTPLUG=y | ||
87 | CONFIG_PRINTK=y | ||
88 | CONFIG_BUG=y | ||
89 | # CONFIG_ELF_CORE is not set | ||
90 | # CONFIG_BASE_FULL is not set | ||
91 | # CONFIG_FUTEX is not set | ||
92 | CONFIG_ANON_INODES=y | ||
93 | CONFIG_EPOLL=y | ||
94 | CONFIG_SIGNALFD=y | ||
95 | CONFIG_EVENTFD=y | ||
96 | CONFIG_SHMEM=y | ||
97 | # CONFIG_VM_EVENT_COUNTERS is not set | ||
98 | CONFIG_SLUB_DEBUG=y | ||
99 | # CONFIG_SLAB is not set | ||
100 | CONFIG_SLUB=y | ||
101 | # CONFIG_SLOB is not set | ||
102 | # CONFIG_TINY_SHMEM is not set | ||
103 | CONFIG_BASE_SMALL=1 | ||
104 | # CONFIG_MODULES is not set | ||
105 | CONFIG_BLOCK=y | ||
106 | # CONFIG_LBD is not set | ||
107 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
108 | # CONFIG_LSF is not set | ||
109 | # CONFIG_BLK_DEV_BSG is not set | ||
110 | |||
111 | # | ||
112 | # IO Schedulers | ||
113 | # | ||
114 | CONFIG_IOSCHED_NOOP=y | ||
115 | # CONFIG_IOSCHED_AS is not set | ||
116 | CONFIG_IOSCHED_DEADLINE=y | ||
117 | # CONFIG_IOSCHED_CFQ is not set | ||
118 | # CONFIG_DEFAULT_AS is not set | ||
119 | CONFIG_DEFAULT_DEADLINE=y | ||
120 | # CONFIG_DEFAULT_CFQ is not set | ||
121 | # CONFIG_DEFAULT_NOOP is not set | ||
122 | CONFIG_DEFAULT_IOSCHED="deadline" | ||
123 | |||
124 | # | ||
125 | # Platform support | ||
126 | # | ||
127 | # CONFIG_PPC_MPC52xx is not set | ||
128 | # CONFIG_PPC_MPC5200 is not set | ||
129 | # CONFIG_PPC_CELL is not set | ||
130 | # CONFIG_PPC_CELL_NATIVE is not set | ||
131 | CONFIG_CPM1=y | ||
132 | # CONFIG_MPC8XXFADS is not set | ||
133 | # CONFIG_MPC86XADS is not set | ||
134 | # CONFIG_MPC885ADS is not set | ||
135 | # CONFIG_PPC_EP88XC is not set | ||
136 | CONFIG_PPC_ADDER875=y | ||
137 | |||
138 | # | ||
139 | # MPC8xx CPM Options | ||
140 | # | ||
141 | |||
142 | # | ||
143 | # Generic MPC8xx Options | ||
144 | # | ||
145 | CONFIG_8xx_COPYBACK=y | ||
146 | # CONFIG_8xx_CPU6 is not set | ||
147 | CONFIG_8xx_CPU15=y | ||
148 | CONFIG_NO_UCODE_PATCH=y | ||
149 | # CONFIG_USB_SOF_UCODE_PATCH is not set | ||
150 | # CONFIG_I2C_SPI_UCODE_PATCH is not set | ||
151 | # CONFIG_I2C_SPI_SMC1_UCODE_PATCH is not set | ||
152 | # CONFIG_PQ2ADS is not set | ||
153 | # CONFIG_MPIC is not set | ||
154 | # CONFIG_MPIC_WEIRD is not set | ||
155 | # CONFIG_PPC_I8259 is not set | ||
156 | # CONFIG_PPC_RTAS is not set | ||
157 | # CONFIG_MMIO_NVRAM is not set | ||
158 | # CONFIG_PPC_MPC106 is not set | ||
159 | # CONFIG_PPC_970_NAP is not set | ||
160 | # CONFIG_PPC_INDIRECT_IO is not set | ||
161 | # CONFIG_GENERIC_IOMAP is not set | ||
162 | # CONFIG_CPU_FREQ is not set | ||
163 | # CONFIG_CPM2 is not set | ||
164 | CONFIG_PPC_CPM_NEW_BINDING=y | ||
165 | # CONFIG_FSL_ULI1575 is not set | ||
166 | CONFIG_CPM=y | ||
167 | |||
168 | # | ||
169 | # Kernel options | ||
170 | # | ||
171 | # CONFIG_HIGHMEM is not set | ||
172 | # CONFIG_TICK_ONESHOT is not set | ||
173 | # CONFIG_NO_HZ is not set | ||
174 | # CONFIG_HIGH_RES_TIMERS is not set | ||
175 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | ||
176 | # CONFIG_HZ_100 is not set | ||
177 | # CONFIG_HZ_250 is not set | ||
178 | # CONFIG_HZ_300 is not set | ||
179 | CONFIG_HZ_1000=y | ||
180 | CONFIG_HZ=1000 | ||
181 | CONFIG_PREEMPT_NONE=y | ||
182 | # CONFIG_PREEMPT_VOLUNTARY is not set | ||
183 | # CONFIG_PREEMPT is not set | ||
184 | CONFIG_BINFMT_ELF=y | ||
185 | # CONFIG_BINFMT_MISC is not set | ||
186 | # CONFIG_MATH_EMULATION is not set | ||
187 | # CONFIG_8XX_MINIMAL_FPEMU is not set | ||
188 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | ||
189 | CONFIG_ARCH_FLATMEM_ENABLE=y | ||
190 | CONFIG_ARCH_POPULATES_NODE_MAP=y | ||
191 | CONFIG_SELECT_MEMORY_MODEL=y | ||
192 | CONFIG_FLATMEM_MANUAL=y | ||
193 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
194 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
195 | CONFIG_FLATMEM=y | ||
196 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
197 | # CONFIG_SPARSEMEM_STATIC is not set | ||
198 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | ||
199 | CONFIG_SPLIT_PTLOCK_CPUS=4 | ||
200 | # CONFIG_RESOURCES_64BIT is not set | ||
201 | CONFIG_ZONE_DMA_FLAG=1 | ||
202 | CONFIG_BOUNCE=y | ||
203 | CONFIG_VIRT_TO_BUS=y | ||
204 | # CONFIG_PROC_DEVICETREE is not set | ||
205 | # CONFIG_CMDLINE_BOOL is not set | ||
206 | # CONFIG_PM is not set | ||
207 | CONFIG_SUSPEND_UP_POSSIBLE=y | ||
208 | CONFIG_HIBERNATION_UP_POSSIBLE=y | ||
209 | # CONFIG_SECCOMP is not set | ||
210 | CONFIG_WANT_DEVICE_TREE=y | ||
211 | CONFIG_DEVICE_TREE="adder875-uboot.dts" | ||
212 | CONFIG_ISA_DMA_API=y | ||
213 | |||
214 | # | ||
215 | # Bus options | ||
216 | # | ||
217 | CONFIG_ZONE_DMA=y | ||
218 | CONFIG_FSL_SOC=y | ||
219 | # CONFIG_PCI is not set | ||
220 | # CONFIG_PCI_DOMAINS is not set | ||
221 | # CONFIG_PCI_SYSCALL is not set | ||
222 | # CONFIG_PCI_QSPAN is not set | ||
223 | # CONFIG_ARCH_SUPPORTS_MSI is not set | ||
224 | # CONFIG_PCCARD is not set | ||
225 | |||
226 | # | ||
227 | # Advanced setup | ||
228 | # | ||
229 | # CONFIG_ADVANCED_OPTIONS is not set | ||
230 | |||
231 | # | ||
232 | # Default settings for advanced configuration options are used | ||
233 | # | ||
234 | CONFIG_HIGHMEM_START=0xfe000000 | ||
235 | CONFIG_LOWMEM_SIZE=0x30000000 | ||
236 | CONFIG_KERNEL_START=0xc0000000 | ||
237 | CONFIG_TASK_SIZE=0x80000000 | ||
238 | CONFIG_CONSISTENT_START=0xfd000000 | ||
239 | CONFIG_CONSISTENT_SIZE=0x00200000 | ||
240 | CONFIG_BOOT_LOAD=0x00400000 | ||
241 | |||
242 | # | ||
243 | # Networking | ||
244 | # | ||
245 | CONFIG_NET=y | ||
246 | |||
247 | # | ||
248 | # Networking options | ||
249 | # | ||
250 | CONFIG_PACKET=y | ||
251 | # CONFIG_PACKET_MMAP is not set | ||
252 | CONFIG_UNIX=y | ||
253 | # CONFIG_NET_KEY is not set | ||
254 | CONFIG_INET=y | ||
255 | CONFIG_IP_MULTICAST=y | ||
256 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
257 | CONFIG_IP_FIB_HASH=y | ||
258 | CONFIG_IP_PNP=y | ||
259 | # CONFIG_IP_PNP_DHCP is not set | ||
260 | # CONFIG_IP_PNP_BOOTP is not set | ||
261 | # CONFIG_IP_PNP_RARP is not set | ||
262 | # CONFIG_NET_IPIP is not set | ||
263 | # CONFIG_NET_IPGRE is not set | ||
264 | # CONFIG_IP_MROUTE is not set | ||
265 | # CONFIG_ARPD is not set | ||
266 | CONFIG_SYN_COOKIES=y | ||
267 | # CONFIG_INET_AH is not set | ||
268 | # CONFIG_INET_ESP is not set | ||
269 | # CONFIG_INET_IPCOMP is not set | ||
270 | # CONFIG_INET_XFRM_TUNNEL is not set | ||
271 | # CONFIG_INET_TUNNEL is not set | ||
272 | # CONFIG_INET_XFRM_MODE_TRANSPORT is not set | ||
273 | # CONFIG_INET_XFRM_MODE_TUNNEL is not set | ||
274 | # CONFIG_INET_XFRM_MODE_BEET is not set | ||
275 | # CONFIG_INET_LRO is not set | ||
276 | CONFIG_INET_DIAG=y | ||
277 | CONFIG_INET_TCP_DIAG=y | ||
278 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
279 | CONFIG_TCP_CONG_CUBIC=y | ||
280 | CONFIG_DEFAULT_TCP_CONG="cubic" | ||
281 | # CONFIG_TCP_MD5SIG is not set | ||
282 | # CONFIG_IPV6 is not set | ||
283 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
284 | # CONFIG_INET6_TUNNEL is not set | ||
285 | # CONFIG_NETWORK_SECMARK is not set | ||
286 | # CONFIG_NETFILTER is not set | ||
287 | # CONFIG_IP_DCCP is not set | ||
288 | # CONFIG_IP_SCTP is not set | ||
289 | # CONFIG_TIPC is not set | ||
290 | # CONFIG_ATM is not set | ||
291 | # CONFIG_BRIDGE is not set | ||
292 | # CONFIG_VLAN_8021Q is not set | ||
293 | # CONFIG_DECNET is not set | ||
294 | # CONFIG_LLC2 is not set | ||
295 | # CONFIG_IPX is not set | ||
296 | # CONFIG_ATALK is not set | ||
297 | # CONFIG_X25 is not set | ||
298 | # CONFIG_LAPB is not set | ||
299 | # CONFIG_ECONET is not set | ||
300 | # CONFIG_WAN_ROUTER is not set | ||
301 | # CONFIG_NET_SCHED is not set | ||
302 | |||
303 | # | ||
304 | # Network testing | ||
305 | # | ||
306 | # CONFIG_NET_PKTGEN is not set | ||
307 | # CONFIG_HAMRADIO is not set | ||
308 | # CONFIG_IRDA is not set | ||
309 | # CONFIG_BT is not set | ||
310 | # CONFIG_AF_RXRPC is not set | ||
311 | |||
312 | # | ||
313 | # Wireless | ||
314 | # | ||
315 | # CONFIG_CFG80211 is not set | ||
316 | # CONFIG_WIRELESS_EXT is not set | ||
317 | # CONFIG_MAC80211 is not set | ||
318 | # CONFIG_IEEE80211 is not set | ||
319 | # CONFIG_RFKILL is not set | ||
320 | # CONFIG_NET_9P is not set | ||
321 | |||
322 | # | ||
323 | # Device Drivers | ||
324 | # | ||
325 | |||
326 | # | ||
327 | # Generic Driver Options | ||
328 | # | ||
329 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | ||
330 | CONFIG_STANDALONE=y | ||
331 | CONFIG_PREVENT_FIRMWARE_BUILD=y | ||
332 | # CONFIG_FW_LOADER is not set | ||
333 | # CONFIG_DEBUG_DRIVER is not set | ||
334 | # CONFIG_DEBUG_DEVRES is not set | ||
335 | # CONFIG_SYS_HYPERVISOR is not set | ||
336 | # CONFIG_CONNECTOR is not set | ||
337 | CONFIG_MTD=y | ||
338 | # CONFIG_MTD_DEBUG is not set | ||
339 | # CONFIG_MTD_CONCAT is not set | ||
340 | # CONFIG_MTD_PARTITIONS is not set | ||
341 | |||
342 | # | ||
343 | # User Modules And Translation Layers | ||
344 | # | ||
345 | CONFIG_MTD_CHAR=y | ||
346 | CONFIG_MTD_BLKDEVS=y | ||
347 | CONFIG_MTD_BLOCK=y | ||
348 | # CONFIG_FTL is not set | ||
349 | # CONFIG_NFTL is not set | ||
350 | # CONFIG_INFTL is not set | ||
351 | # CONFIG_RFD_FTL is not set | ||
352 | # CONFIG_SSFDC is not set | ||
353 | # CONFIG_MTD_OOPS is not set | ||
354 | |||
355 | # | ||
356 | # RAM/ROM/Flash chip drivers | ||
357 | # | ||
358 | CONFIG_MTD_CFI=y | ||
359 | # CONFIG_MTD_JEDECPROBE is not set | ||
360 | CONFIG_MTD_GEN_PROBE=y | ||
361 | # CONFIG_MTD_CFI_ADV_OPTIONS is not set | ||
362 | CONFIG_MTD_MAP_BANK_WIDTH_1=y | ||
363 | CONFIG_MTD_MAP_BANK_WIDTH_2=y | ||
364 | CONFIG_MTD_MAP_BANK_WIDTH_4=y | ||
365 | # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set | ||
366 | # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set | ||
367 | # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set | ||
368 | CONFIG_MTD_CFI_I1=y | ||
369 | CONFIG_MTD_CFI_I2=y | ||
370 | # CONFIG_MTD_CFI_I4 is not set | ||
371 | # CONFIG_MTD_CFI_I8 is not set | ||
372 | # CONFIG_MTD_CFI_INTELEXT is not set | ||
373 | CONFIG_MTD_CFI_AMDSTD=y | ||
374 | # CONFIG_MTD_CFI_STAA is not set | ||
375 | CONFIG_MTD_CFI_UTIL=y | ||
376 | # CONFIG_MTD_RAM is not set | ||
377 | # CONFIG_MTD_ROM is not set | ||
378 | # CONFIG_MTD_ABSENT is not set | ||
379 | |||
380 | # | ||
381 | # Mapping drivers for chip access | ||
382 | # | ||
383 | # CONFIG_MTD_COMPLEX_MAPPINGS is not set | ||
384 | # CONFIG_MTD_PHYSMAP is not set | ||
385 | CONFIG_MTD_PHYSMAP_OF=y | ||
386 | # CONFIG_MTD_CFI_FLAGADM is not set | ||
387 | # CONFIG_MTD_PLATRAM is not set | ||
388 | |||
389 | # | ||
390 | # Self-contained MTD device drivers | ||
391 | # | ||
392 | # CONFIG_MTD_SLRAM is not set | ||
393 | # CONFIG_MTD_PHRAM is not set | ||
394 | # CONFIG_MTD_MTDRAM is not set | ||
395 | # CONFIG_MTD_BLOCK2MTD is not set | ||
396 | |||
397 | # | ||
398 | # Disk-On-Chip Device Drivers | ||
399 | # | ||
400 | # CONFIG_MTD_DOC2000 is not set | ||
401 | # CONFIG_MTD_DOC2001 is not set | ||
402 | # CONFIG_MTD_DOC2001PLUS is not set | ||
403 | # CONFIG_MTD_NAND is not set | ||
404 | # CONFIG_MTD_ONENAND is not set | ||
405 | |||
406 | # | ||
407 | # UBI - Unsorted block images | ||
408 | # | ||
409 | # CONFIG_MTD_UBI is not set | ||
410 | CONFIG_OF_DEVICE=y | ||
411 | # CONFIG_PARPORT is not set | ||
412 | # CONFIG_BLK_DEV is not set | ||
413 | # CONFIG_MISC_DEVICES is not set | ||
414 | # CONFIG_IDE is not set | ||
415 | |||
416 | # | ||
417 | # SCSI device support | ||
418 | # | ||
419 | # CONFIG_RAID_ATTRS is not set | ||
420 | # CONFIG_SCSI is not set | ||
421 | # CONFIG_SCSI_DMA is not set | ||
422 | # CONFIG_SCSI_NETLINK is not set | ||
423 | # CONFIG_ATA is not set | ||
424 | # CONFIG_MD is not set | ||
425 | # CONFIG_MACINTOSH_DRIVERS is not set | ||
426 | CONFIG_NETDEVICES=y | ||
427 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
428 | # CONFIG_DUMMY is not set | ||
429 | # CONFIG_BONDING is not set | ||
430 | # CONFIG_MACVLAN is not set | ||
431 | # CONFIG_EQUALIZER is not set | ||
432 | # CONFIG_TUN is not set | ||
433 | # CONFIG_VETH is not set | ||
434 | CONFIG_PHYLIB=y | ||
435 | |||
436 | # | ||
437 | # MII PHY device drivers | ||
438 | # | ||
439 | # CONFIG_MARVELL_PHY is not set | ||
440 | CONFIG_DAVICOM_PHY=y | ||
441 | # CONFIG_QSEMI_PHY is not set | ||
442 | # CONFIG_LXT_PHY is not set | ||
443 | # CONFIG_CICADA_PHY is not set | ||
444 | # CONFIG_VITESSE_PHY is not set | ||
445 | # CONFIG_SMSC_PHY is not set | ||
446 | # CONFIG_BROADCOM_PHY is not set | ||
447 | # CONFIG_ICPLUS_PHY is not set | ||
448 | # CONFIG_FIXED_PHY is not set | ||
449 | # CONFIG_MDIO_BITBANG is not set | ||
450 | CONFIG_NET_ETHERNET=y | ||
451 | CONFIG_MII=y | ||
452 | # CONFIG_IBM_NEW_EMAC_ZMII is not set | ||
453 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | ||
454 | # CONFIG_IBM_NEW_EMAC_TAH is not set | ||
455 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | ||
456 | # CONFIG_B44 is not set | ||
457 | CONFIG_FS_ENET=y | ||
458 | # CONFIG_FS_ENET_HAS_SCC is not set | ||
459 | CONFIG_FS_ENET_HAS_FEC=y | ||
460 | CONFIG_FS_ENET_MDIO_FEC=y | ||
461 | # CONFIG_NETDEV_1000 is not set | ||
462 | # CONFIG_NETDEV_10000 is not set | ||
463 | |||
464 | # | ||
465 | # Wireless LAN | ||
466 | # | ||
467 | # CONFIG_WLAN_PRE80211 is not set | ||
468 | # CONFIG_WLAN_80211 is not set | ||
469 | # CONFIG_WAN is not set | ||
470 | # CONFIG_PPP is not set | ||
471 | # CONFIG_SLIP is not set | ||
472 | # CONFIG_SHAPER is not set | ||
473 | # CONFIG_NETCONSOLE is not set | ||
474 | # CONFIG_NETPOLL is not set | ||
475 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
476 | # CONFIG_ISDN is not set | ||
477 | # CONFIG_PHONE is not set | ||
478 | |||
479 | # | ||
480 | # Input device support | ||
481 | # | ||
482 | CONFIG_INPUT=y | ||
483 | # CONFIG_INPUT_FF_MEMLESS is not set | ||
484 | # CONFIG_INPUT_POLLDEV is not set | ||
485 | |||
486 | # | ||
487 | # Userland interfaces | ||
488 | # | ||
489 | CONFIG_INPUT_MOUSEDEV=y | ||
490 | CONFIG_INPUT_MOUSEDEV_PSAUX=y | ||
491 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 | ||
492 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | ||
493 | # CONFIG_INPUT_JOYDEV is not set | ||
494 | # CONFIG_INPUT_EVDEV is not set | ||
495 | # CONFIG_INPUT_EVBUG is not set | ||
496 | |||
497 | # | ||
498 | # Input Device Drivers | ||
499 | # | ||
500 | CONFIG_INPUT_KEYBOARD=y | ||
501 | CONFIG_KEYBOARD_ATKBD=y | ||
502 | # CONFIG_KEYBOARD_SUNKBD is not set | ||
503 | # CONFIG_KEYBOARD_LKKBD is not set | ||
504 | # CONFIG_KEYBOARD_XTKBD is not set | ||
505 | # CONFIG_KEYBOARD_NEWTON is not set | ||
506 | # CONFIG_KEYBOARD_STOWAWAY is not set | ||
507 | CONFIG_INPUT_MOUSE=y | ||
508 | CONFIG_MOUSE_PS2=y | ||
509 | CONFIG_MOUSE_PS2_ALPS=y | ||
510 | CONFIG_MOUSE_PS2_LOGIPS2PP=y | ||
511 | CONFIG_MOUSE_PS2_SYNAPTICS=y | ||
512 | CONFIG_MOUSE_PS2_LIFEBOOK=y | ||
513 | CONFIG_MOUSE_PS2_TRACKPOINT=y | ||
514 | # CONFIG_MOUSE_PS2_TOUCHKIT is not set | ||
515 | # CONFIG_MOUSE_SERIAL is not set | ||
516 | # CONFIG_MOUSE_VSXXXAA is not set | ||
517 | # CONFIG_INPUT_JOYSTICK is not set | ||
518 | # CONFIG_INPUT_TABLET is not set | ||
519 | # CONFIG_INPUT_TOUCHSCREEN is not set | ||
520 | # CONFIG_INPUT_MISC is not set | ||
521 | |||
522 | # | ||
523 | # Hardware I/O ports | ||
524 | # | ||
525 | CONFIG_SERIO=y | ||
526 | CONFIG_SERIO_I8042=y | ||
527 | CONFIG_SERIO_SERPORT=y | ||
528 | CONFIG_SERIO_LIBPS2=y | ||
529 | # CONFIG_SERIO_RAW is not set | ||
530 | # CONFIG_GAMEPORT is not set | ||
531 | |||
532 | # | ||
533 | # Character devices | ||
534 | # | ||
535 | # CONFIG_VT is not set | ||
536 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
537 | |||
538 | # | ||
539 | # Serial drivers | ||
540 | # | ||
541 | # CONFIG_SERIAL_8250 is not set | ||
542 | |||
543 | # | ||
544 | # Non-8250 serial port support | ||
545 | # | ||
546 | # CONFIG_SERIAL_UARTLITE is not set | ||
547 | CONFIG_SERIAL_CORE=y | ||
548 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
549 | CONFIG_SERIAL_CPM=y | ||
550 | CONFIG_SERIAL_CPM_CONSOLE=y | ||
551 | # CONFIG_SERIAL_CPM_SCC1 is not set | ||
552 | # CONFIG_SERIAL_CPM_SCC2 is not set | ||
553 | # CONFIG_SERIAL_CPM_SCC3 is not set | ||
554 | # CONFIG_SERIAL_CPM_SCC4 is not set | ||
555 | CONFIG_SERIAL_CPM_SMC1=y | ||
556 | CONFIG_SERIAL_CPM_SMC2=y | ||
557 | CONFIG_UNIX98_PTYS=y | ||
558 | # CONFIG_LEGACY_PTYS is not set | ||
559 | # CONFIG_IPMI_HANDLER is not set | ||
560 | CONFIG_HW_RANDOM=y | ||
561 | # CONFIG_NVRAM is not set | ||
562 | CONFIG_GEN_RTC=y | ||
563 | # CONFIG_GEN_RTC_X is not set | ||
564 | # CONFIG_R3964 is not set | ||
565 | # CONFIG_RAW_DRIVER is not set | ||
566 | # CONFIG_TCG_TPM is not set | ||
567 | # CONFIG_I2C is not set | ||
568 | |||
569 | # | ||
570 | # SPI support | ||
571 | # | ||
572 | # CONFIG_SPI is not set | ||
573 | # CONFIG_SPI_MASTER is not set | ||
574 | # CONFIG_W1 is not set | ||
575 | # CONFIG_POWER_SUPPLY is not set | ||
576 | # CONFIG_HWMON is not set | ||
577 | # CONFIG_WATCHDOG is not set | ||
578 | |||
579 | # | ||
580 | # Sonics Silicon Backplane | ||
581 | # | ||
582 | CONFIG_SSB_POSSIBLE=y | ||
583 | # CONFIG_SSB is not set | ||
584 | |||
585 | # | ||
586 | # Multifunction device drivers | ||
587 | # | ||
588 | # CONFIG_MFD_SM501 is not set | ||
589 | |||
590 | # | ||
591 | # Multimedia devices | ||
592 | # | ||
593 | # CONFIG_VIDEO_DEV is not set | ||
594 | # CONFIG_DVB_CORE is not set | ||
595 | CONFIG_DAB=y | ||
596 | |||
597 | # | ||
598 | # Graphics support | ||
599 | # | ||
600 | # CONFIG_VGASTATE is not set | ||
601 | CONFIG_VIDEO_OUTPUT_CONTROL=y | ||
602 | # CONFIG_FB is not set | ||
603 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
604 | |||
605 | # | ||
606 | # Display device support | ||
607 | # | ||
608 | # CONFIG_DISPLAY_SUPPORT is not set | ||
609 | |||
610 | # | ||
611 | # Sound | ||
612 | # | ||
613 | # CONFIG_SOUND is not set | ||
614 | # CONFIG_HID_SUPPORT is not set | ||
615 | # CONFIG_USB_SUPPORT is not set | ||
616 | # CONFIG_MMC is not set | ||
617 | # CONFIG_NEW_LEDS is not set | ||
618 | # CONFIG_EDAC is not set | ||
619 | # CONFIG_RTC_CLASS is not set | ||
620 | |||
621 | # | ||
622 | # Userspace I/O | ||
623 | # | ||
624 | # CONFIG_UIO is not set | ||
625 | |||
626 | # | ||
627 | # File systems | ||
628 | # | ||
629 | # CONFIG_EXT2_FS is not set | ||
630 | # CONFIG_EXT3_FS is not set | ||
631 | # CONFIG_EXT4DEV_FS is not set | ||
632 | # CONFIG_REISERFS_FS is not set | ||
633 | # CONFIG_JFS_FS is not set | ||
634 | # CONFIG_FS_POSIX_ACL is not set | ||
635 | # CONFIG_XFS_FS is not set | ||
636 | # CONFIG_GFS2_FS is not set | ||
637 | # CONFIG_OCFS2_FS is not set | ||
638 | # CONFIG_MINIX_FS is not set | ||
639 | # CONFIG_ROMFS_FS is not set | ||
640 | # CONFIG_INOTIFY is not set | ||
641 | # CONFIG_QUOTA is not set | ||
642 | # CONFIG_DNOTIFY is not set | ||
643 | # CONFIG_AUTOFS_FS is not set | ||
644 | # CONFIG_AUTOFS4_FS is not set | ||
645 | # CONFIG_FUSE_FS is not set | ||
646 | |||
647 | # | ||
648 | # CD-ROM/DVD Filesystems | ||
649 | # | ||
650 | # CONFIG_ISO9660_FS is not set | ||
651 | # CONFIG_UDF_FS is not set | ||
652 | |||
653 | # | ||
654 | # DOS/FAT/NT Filesystems | ||
655 | # | ||
656 | # CONFIG_MSDOS_FS is not set | ||
657 | # CONFIG_VFAT_FS is not set | ||
658 | # CONFIG_NTFS_FS is not set | ||
659 | |||
660 | # | ||
661 | # Pseudo filesystems | ||
662 | # | ||
663 | CONFIG_PROC_FS=y | ||
664 | # CONFIG_PROC_KCORE is not set | ||
665 | CONFIG_PROC_SYSCTL=y | ||
666 | CONFIG_SYSFS=y | ||
667 | CONFIG_TMPFS=y | ||
668 | # CONFIG_TMPFS_POSIX_ACL is not set | ||
669 | # CONFIG_HUGETLB_PAGE is not set | ||
670 | # CONFIG_CONFIGFS_FS is not set | ||
671 | |||
672 | # | ||
673 | # Miscellaneous filesystems | ||
674 | # | ||
675 | # CONFIG_ADFS_FS is not set | ||
676 | # CONFIG_AFFS_FS is not set | ||
677 | # CONFIG_HFS_FS is not set | ||
678 | # CONFIG_HFSPLUS_FS is not set | ||
679 | # CONFIG_BEFS_FS is not set | ||
680 | # CONFIG_BFS_FS is not set | ||
681 | # CONFIG_EFS_FS is not set | ||
682 | # CONFIG_JFFS2_FS is not set | ||
683 | CONFIG_CRAMFS=y | ||
684 | # CONFIG_VXFS_FS is not set | ||
685 | # CONFIG_HPFS_FS is not set | ||
686 | # CONFIG_QNX4FS_FS is not set | ||
687 | # CONFIG_SYSV_FS is not set | ||
688 | # CONFIG_UFS_FS is not set | ||
689 | CONFIG_NETWORK_FILESYSTEMS=y | ||
690 | CONFIG_NFS_FS=y | ||
691 | CONFIG_NFS_V3=y | ||
692 | # CONFIG_NFS_V3_ACL is not set | ||
693 | # CONFIG_NFS_V4 is not set | ||
694 | # CONFIG_NFS_DIRECTIO is not set | ||
695 | # CONFIG_NFSD is not set | ||
696 | CONFIG_ROOT_NFS=y | ||
697 | CONFIG_LOCKD=y | ||
698 | CONFIG_LOCKD_V4=y | ||
699 | CONFIG_NFS_COMMON=y | ||
700 | CONFIG_SUNRPC=y | ||
701 | # CONFIG_SUNRPC_BIND34 is not set | ||
702 | # CONFIG_RPCSEC_GSS_KRB5 is not set | ||
703 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | ||
704 | # CONFIG_SMB_FS is not set | ||
705 | # CONFIG_CIFS is not set | ||
706 | # CONFIG_NCP_FS is not set | ||
707 | # CONFIG_CODA_FS is not set | ||
708 | # CONFIG_AFS_FS is not set | ||
709 | |||
710 | # | ||
711 | # Partition Types | ||
712 | # | ||
713 | CONFIG_PARTITION_ADVANCED=y | ||
714 | # CONFIG_ACORN_PARTITION is not set | ||
715 | # CONFIG_OSF_PARTITION is not set | ||
716 | # CONFIG_AMIGA_PARTITION is not set | ||
717 | # CONFIG_ATARI_PARTITION is not set | ||
718 | # CONFIG_MAC_PARTITION is not set | ||
719 | CONFIG_MSDOS_PARTITION=y | ||
720 | # CONFIG_BSD_DISKLABEL is not set | ||
721 | # CONFIG_MINIX_SUBPARTITION is not set | ||
722 | # CONFIG_SOLARIS_X86_PARTITION is not set | ||
723 | # CONFIG_UNIXWARE_DISKLABEL is not set | ||
724 | # CONFIG_LDM_PARTITION is not set | ||
725 | # CONFIG_SGI_PARTITION is not set | ||
726 | # CONFIG_ULTRIX_PARTITION is not set | ||
727 | # CONFIG_SUN_PARTITION is not set | ||
728 | # CONFIG_KARMA_PARTITION is not set | ||
729 | # CONFIG_EFI_PARTITION is not set | ||
730 | # CONFIG_SYSV68_PARTITION is not set | ||
731 | # CONFIG_NLS is not set | ||
732 | # CONFIG_DLM is not set | ||
733 | # CONFIG_UCC_SLOW is not set | ||
734 | |||
735 | # | ||
736 | # Library routines | ||
737 | # | ||
738 | # CONFIG_CRC_CCITT is not set | ||
739 | # CONFIG_CRC16 is not set | ||
740 | # CONFIG_CRC_ITU_T is not set | ||
741 | # CONFIG_CRC32 is not set | ||
742 | # CONFIG_CRC7 is not set | ||
743 | # CONFIG_LIBCRC32C is not set | ||
744 | CONFIG_ZLIB_INFLATE=y | ||
745 | CONFIG_HAS_IOMEM=y | ||
746 | CONFIG_HAS_IOPORT=y | ||
747 | CONFIG_HAS_DMA=y | ||
748 | CONFIG_INSTRUMENTATION=y | ||
749 | # CONFIG_PROFILING is not set | ||
750 | # CONFIG_MARKERS is not set | ||
751 | |||
752 | # | ||
753 | # Kernel hacking | ||
754 | # | ||
755 | # CONFIG_PRINTK_TIME is not set | ||
756 | CONFIG_ENABLE_WARN_DEPRECATED=y | ||
757 | CONFIG_ENABLE_MUST_CHECK=y | ||
758 | CONFIG_MAGIC_SYSRQ=y | ||
759 | # CONFIG_UNUSED_SYMBOLS is not set | ||
760 | # CONFIG_DEBUG_FS is not set | ||
761 | # CONFIG_HEADERS_CHECK is not set | ||
762 | CONFIG_DEBUG_KERNEL=y | ||
763 | # CONFIG_DEBUG_SHIRQ is not set | ||
764 | CONFIG_DETECT_SOFTLOCKUP=y | ||
765 | CONFIG_SCHED_DEBUG=y | ||
766 | # CONFIG_SCHEDSTATS is not set | ||
767 | # CONFIG_TIMER_STATS is not set | ||
768 | # CONFIG_SLUB_DEBUG_ON is not set | ||
769 | # CONFIG_DEBUG_SPINLOCK is not set | ||
770 | # CONFIG_DEBUG_MUTEXES is not set | ||
771 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | ||
772 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | ||
773 | # CONFIG_DEBUG_KOBJECT is not set | ||
774 | CONFIG_DEBUG_BUGVERBOSE=y | ||
775 | CONFIG_DEBUG_INFO=y | ||
776 | # CONFIG_DEBUG_VM is not set | ||
777 | # CONFIG_DEBUG_LIST is not set | ||
778 | # CONFIG_DEBUG_SG is not set | ||
779 | CONFIG_FORCED_INLINING=y | ||
780 | # CONFIG_BOOT_PRINTK_DELAY is not set | ||
781 | # CONFIG_FAULT_INJECTION is not set | ||
782 | # CONFIG_SAMPLES is not set | ||
783 | # CONFIG_DEBUG_STACKOVERFLOW is not set | ||
784 | # CONFIG_DEBUG_STACK_USAGE is not set | ||
785 | # CONFIG_DEBUG_PAGEALLOC is not set | ||
786 | # CONFIG_DEBUGGER is not set | ||
787 | # CONFIG_BDI_SWITCH is not set | ||
788 | # CONFIG_PPC_EARLY_DEBUG is not set | ||
789 | |||
790 | # | ||
791 | # Security options | ||
792 | # | ||
793 | # CONFIG_KEYS is not set | ||
794 | # CONFIG_SECURITY is not set | ||
795 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | ||
796 | # CONFIG_CRYPTO is not set | ||
797 | # CONFIG_PPC_CLOCK is not set | ||
798 | CONFIG_PPC_LIB_RHEAP=y | ||
diff --git a/arch/powerpc/configs/ep8248e_defconfig b/arch/powerpc/configs/ep8248e_defconfig new file mode 100644 index 000000000000..01ad5951ade9 --- /dev/null +++ b/arch/powerpc/configs/ep8248e_defconfig | |||
@@ -0,0 +1,821 @@ | |||
1 | # | ||
2 | # Automatically generated make config: don't edit | ||
3 | # Linux kernel version: 2.6.24-rc6 | ||
4 | # Fri Jan 11 14:02:06 2008 | ||
5 | # | ||
6 | # CONFIG_PPC64 is not set | ||
7 | |||
8 | # | ||
9 | # Processor support | ||
10 | # | ||
11 | CONFIG_6xx=y | ||
12 | # CONFIG_PPC_85xx is not set | ||
13 | # CONFIG_PPC_8xx is not set | ||
14 | # CONFIG_40x is not set | ||
15 | # CONFIG_44x is not set | ||
16 | # CONFIG_E200 is not set | ||
17 | CONFIG_PPC_FPU=y | ||
18 | CONFIG_PPC_STD_MMU=y | ||
19 | CONFIG_PPC_STD_MMU_32=y | ||
20 | # CONFIG_PPC_MM_SLICES is not set | ||
21 | # CONFIG_SMP is not set | ||
22 | CONFIG_PPC32=y | ||
23 | CONFIG_WORD_SIZE=32 | ||
24 | CONFIG_PPC_MERGE=y | ||
25 | CONFIG_MMU=y | ||
26 | CONFIG_GENERIC_CMOS_UPDATE=y | ||
27 | CONFIG_GENERIC_TIME=y | ||
28 | CONFIG_GENERIC_TIME_VSYSCALL=y | ||
29 | CONFIG_GENERIC_CLOCKEVENTS=y | ||
30 | CONFIG_GENERIC_HARDIRQS=y | ||
31 | CONFIG_IRQ_PER_CPU=y | ||
32 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | ||
33 | CONFIG_ARCH_HAS_ILOG2_U32=y | ||
34 | CONFIG_GENERIC_HWEIGHT=y | ||
35 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
36 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
37 | # CONFIG_ARCH_NO_VIRT_TO_BUS is not set | ||
38 | CONFIG_PPC=y | ||
39 | CONFIG_EARLY_PRINTK=y | ||
40 | CONFIG_GENERIC_NVRAM=y | ||
41 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | ||
42 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y | ||
43 | CONFIG_PPC_OF=y | ||
44 | CONFIG_OF=y | ||
45 | # CONFIG_PPC_UDBG_16550 is not set | ||
46 | # CONFIG_GENERIC_TBSYNC is not set | ||
47 | CONFIG_AUDIT_ARCH=y | ||
48 | CONFIG_GENERIC_BUG=y | ||
49 | # CONFIG_DEFAULT_UIMAGE is not set | ||
50 | # CONFIG_PPC_DCR_NATIVE is not set | ||
51 | # CONFIG_PPC_DCR_MMIO is not set | ||
52 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | ||
53 | |||
54 | # | ||
55 | # General setup | ||
56 | # | ||
57 | # CONFIG_EXPERIMENTAL is not set | ||
58 | CONFIG_BROKEN_ON_SMP=y | ||
59 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
60 | CONFIG_LOCALVERSION="" | ||
61 | CONFIG_LOCALVERSION_AUTO=y | ||
62 | CONFIG_SWAP=y | ||
63 | CONFIG_SYSVIPC=y | ||
64 | CONFIG_SYSVIPC_SYSCTL=y | ||
65 | # CONFIG_BSD_PROCESS_ACCT is not set | ||
66 | # CONFIG_TASKSTATS is not set | ||
67 | # CONFIG_AUDIT is not set | ||
68 | CONFIG_IKCONFIG=y | ||
69 | CONFIG_IKCONFIG_PROC=y | ||
70 | CONFIG_LOG_BUF_SHIFT=14 | ||
71 | # CONFIG_CGROUPS is not set | ||
72 | CONFIG_FAIR_GROUP_SCHED=y | ||
73 | CONFIG_FAIR_USER_SCHED=y | ||
74 | # CONFIG_FAIR_CGROUP_SCHED is not set | ||
75 | CONFIG_SYSFS_DEPRECATED=y | ||
76 | # CONFIG_RELAY is not set | ||
77 | # CONFIG_BLK_DEV_INITRD is not set | ||
78 | CONFIG_SYSCTL=y | ||
79 | CONFIG_EMBEDDED=y | ||
80 | CONFIG_SYSCTL_SYSCALL=y | ||
81 | CONFIG_KALLSYMS=y | ||
82 | CONFIG_KALLSYMS_ALL=y | ||
83 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | ||
84 | CONFIG_HOTPLUG=y | ||
85 | CONFIG_PRINTK=y | ||
86 | CONFIG_BUG=y | ||
87 | CONFIG_ELF_CORE=y | ||
88 | CONFIG_BASE_FULL=y | ||
89 | CONFIG_FUTEX=y | ||
90 | CONFIG_ANON_INODES=y | ||
91 | CONFIG_EPOLL=y | ||
92 | CONFIG_SIGNALFD=y | ||
93 | CONFIG_EVENTFD=y | ||
94 | CONFIG_SHMEM=y | ||
95 | CONFIG_VM_EVENT_COUNTERS=y | ||
96 | CONFIG_SLAB=y | ||
97 | # CONFIG_SLUB is not set | ||
98 | # CONFIG_SLOB is not set | ||
99 | CONFIG_RT_MUTEXES=y | ||
100 | # CONFIG_TINY_SHMEM is not set | ||
101 | CONFIG_BASE_SMALL=0 | ||
102 | # CONFIG_MODULES is not set | ||
103 | CONFIG_BLOCK=y | ||
104 | # CONFIG_LBD is not set | ||
105 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
106 | # CONFIG_LSF is not set | ||
107 | |||
108 | # | ||
109 | # IO Schedulers | ||
110 | # | ||
111 | CONFIG_IOSCHED_NOOP=y | ||
112 | # CONFIG_IOSCHED_AS is not set | ||
113 | CONFIG_IOSCHED_DEADLINE=y | ||
114 | # CONFIG_IOSCHED_CFQ is not set | ||
115 | # CONFIG_DEFAULT_AS is not set | ||
116 | CONFIG_DEFAULT_DEADLINE=y | ||
117 | # CONFIG_DEFAULT_CFQ is not set | ||
118 | # CONFIG_DEFAULT_NOOP is not set | ||
119 | CONFIG_DEFAULT_IOSCHED="deadline" | ||
120 | |||
121 | # | ||
122 | # Platform support | ||
123 | # | ||
124 | # CONFIG_PPC_MULTIPLATFORM is not set | ||
125 | CONFIG_PPC_82xx=y | ||
126 | # CONFIG_PPC_83xx is not set | ||
127 | # CONFIG_PPC_86xx is not set | ||
128 | # CONFIG_PPC_MPC52xx is not set | ||
129 | # CONFIG_PPC_MPC5200 is not set | ||
130 | # CONFIG_PPC_CELL is not set | ||
131 | # CONFIG_PPC_CELL_NATIVE is not set | ||
132 | # CONFIG_MPC8272_ADS is not set | ||
133 | # CONFIG_PQ2FADS is not set | ||
134 | CONFIG_EP8248E=y | ||
135 | # CONFIG_PQ2ADS is not set | ||
136 | CONFIG_8260=y | ||
137 | CONFIG_8272=y | ||
138 | # CONFIG_MPIC is not set | ||
139 | # CONFIG_MPIC_WEIRD is not set | ||
140 | # CONFIG_PPC_I8259 is not set | ||
141 | # CONFIG_PPC_RTAS is not set | ||
142 | # CONFIG_MMIO_NVRAM is not set | ||
143 | # CONFIG_PPC_MPC106 is not set | ||
144 | # CONFIG_PPC_970_NAP is not set | ||
145 | # CONFIG_PPC_INDIRECT_IO is not set | ||
146 | # CONFIG_GENERIC_IOMAP is not set | ||
147 | # CONFIG_CPU_FREQ is not set | ||
148 | CONFIG_CPM2=y | ||
149 | CONFIG_PPC_CPM_NEW_BINDING=y | ||
150 | # CONFIG_FSL_ULI1575 is not set | ||
151 | CONFIG_CPM=y | ||
152 | |||
153 | # | ||
154 | # Kernel options | ||
155 | # | ||
156 | # CONFIG_HIGHMEM is not set | ||
157 | # CONFIG_TICK_ONESHOT is not set | ||
158 | # CONFIG_NO_HZ is not set | ||
159 | # CONFIG_HIGH_RES_TIMERS is not set | ||
160 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | ||
161 | # CONFIG_HZ_100 is not set | ||
162 | CONFIG_HZ_250=y | ||
163 | # CONFIG_HZ_300 is not set | ||
164 | # CONFIG_HZ_1000 is not set | ||
165 | CONFIG_HZ=250 | ||
166 | CONFIG_PREEMPT_NONE=y | ||
167 | # CONFIG_PREEMPT_VOLUNTARY is not set | ||
168 | # CONFIG_PREEMPT is not set | ||
169 | CONFIG_BINFMT_ELF=y | ||
170 | CONFIG_BINFMT_MISC=y | ||
171 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | ||
172 | CONFIG_ARCH_FLATMEM_ENABLE=y | ||
173 | CONFIG_ARCH_POPULATES_NODE_MAP=y | ||
174 | CONFIG_FLATMEM=y | ||
175 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
176 | # CONFIG_SPARSEMEM_STATIC is not set | ||
177 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | ||
178 | CONFIG_SPLIT_PTLOCK_CPUS=4 | ||
179 | # CONFIG_RESOURCES_64BIT is not set | ||
180 | CONFIG_ZONE_DMA_FLAG=1 | ||
181 | CONFIG_BOUNCE=y | ||
182 | CONFIG_VIRT_TO_BUS=y | ||
183 | CONFIG_PROC_DEVICETREE=y | ||
184 | # CONFIG_CMDLINE_BOOL is not set | ||
185 | # CONFIG_PM is not set | ||
186 | CONFIG_SUSPEND_UP_POSSIBLE=y | ||
187 | CONFIG_HIBERNATION_UP_POSSIBLE=y | ||
188 | # CONFIG_SECCOMP is not set | ||
189 | CONFIG_WANT_DEVICE_TREE=y | ||
190 | CONFIG_DEVICE_TREE="ep8248e.dts" | ||
191 | CONFIG_ISA_DMA_API=y | ||
192 | |||
193 | # | ||
194 | # Bus options | ||
195 | # | ||
196 | CONFIG_ZONE_DMA=y | ||
197 | CONFIG_FSL_SOC=y | ||
198 | # CONFIG_PCI is not set | ||
199 | # CONFIG_PCI_DOMAINS is not set | ||
200 | # CONFIG_PCI_SYSCALL is not set | ||
201 | # CONFIG_ARCH_SUPPORTS_MSI is not set | ||
202 | # CONFIG_PCCARD is not set | ||
203 | |||
204 | # | ||
205 | # Advanced setup | ||
206 | # | ||
207 | # CONFIG_ADVANCED_OPTIONS is not set | ||
208 | |||
209 | # | ||
210 | # Default settings for advanced configuration options are used | ||
211 | # | ||
212 | CONFIG_HIGHMEM_START=0xfe000000 | ||
213 | CONFIG_LOWMEM_SIZE=0x30000000 | ||
214 | CONFIG_KERNEL_START=0xc0000000 | ||
215 | CONFIG_TASK_SIZE=0xc0000000 | ||
216 | CONFIG_BOOT_LOAD=0x00400000 | ||
217 | |||
218 | # | ||
219 | # Networking | ||
220 | # | ||
221 | CONFIG_NET=y | ||
222 | |||
223 | # | ||
224 | # Networking options | ||
225 | # | ||
226 | CONFIG_PACKET=y | ||
227 | # CONFIG_PACKET_MMAP is not set | ||
228 | CONFIG_UNIX=y | ||
229 | CONFIG_XFRM=y | ||
230 | # CONFIG_XFRM_USER is not set | ||
231 | # CONFIG_NET_KEY is not set | ||
232 | CONFIG_INET=y | ||
233 | CONFIG_IP_MULTICAST=y | ||
234 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
235 | CONFIG_IP_FIB_HASH=y | ||
236 | CONFIG_IP_PNP=y | ||
237 | CONFIG_IP_PNP_DHCP=y | ||
238 | CONFIG_IP_PNP_BOOTP=y | ||
239 | # CONFIG_IP_PNP_RARP is not set | ||
240 | # CONFIG_NET_IPIP is not set | ||
241 | # CONFIG_NET_IPGRE is not set | ||
242 | # CONFIG_IP_MROUTE is not set | ||
243 | CONFIG_SYN_COOKIES=y | ||
244 | # CONFIG_INET_AH is not set | ||
245 | # CONFIG_INET_ESP is not set | ||
246 | # CONFIG_INET_IPCOMP is not set | ||
247 | # CONFIG_INET_XFRM_TUNNEL is not set | ||
248 | CONFIG_INET_TUNNEL=y | ||
249 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | ||
250 | CONFIG_INET_XFRM_MODE_TUNNEL=y | ||
251 | CONFIG_INET_XFRM_MODE_BEET=y | ||
252 | # CONFIG_INET_LRO is not set | ||
253 | CONFIG_INET_DIAG=y | ||
254 | CONFIG_INET_TCP_DIAG=y | ||
255 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
256 | CONFIG_TCP_CONG_CUBIC=y | ||
257 | CONFIG_DEFAULT_TCP_CONG="cubic" | ||
258 | # CONFIG_IP_VS is not set | ||
259 | CONFIG_IPV6=y | ||
260 | # CONFIG_IPV6_PRIVACY is not set | ||
261 | # CONFIG_IPV6_ROUTER_PREF is not set | ||
262 | # CONFIG_INET6_AH is not set | ||
263 | # CONFIG_INET6_ESP is not set | ||
264 | # CONFIG_INET6_IPCOMP is not set | ||
265 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
266 | # CONFIG_INET6_TUNNEL is not set | ||
267 | CONFIG_INET6_XFRM_MODE_TRANSPORT=y | ||
268 | CONFIG_INET6_XFRM_MODE_TUNNEL=y | ||
269 | CONFIG_INET6_XFRM_MODE_BEET=y | ||
270 | CONFIG_IPV6_SIT=y | ||
271 | # CONFIG_IPV6_TUNNEL is not set | ||
272 | # CONFIG_NETWORK_SECMARK is not set | ||
273 | CONFIG_NETFILTER=y | ||
274 | # CONFIG_NETFILTER_DEBUG is not set | ||
275 | |||
276 | # | ||
277 | # Core Netfilter Configuration | ||
278 | # | ||
279 | # CONFIG_NETFILTER_NETLINK is not set | ||
280 | # CONFIG_NF_CONNTRACK_ENABLED is not set | ||
281 | # CONFIG_NF_CONNTRACK is not set | ||
282 | # CONFIG_NETFILTER_XTABLES is not set | ||
283 | |||
284 | # | ||
285 | # IP: Netfilter Configuration | ||
286 | # | ||
287 | # CONFIG_IP_NF_QUEUE is not set | ||
288 | # CONFIG_IP_NF_IPTABLES is not set | ||
289 | # CONFIG_IP_NF_ARPTABLES is not set | ||
290 | # CONFIG_BRIDGE is not set | ||
291 | # CONFIG_VLAN_8021Q is not set | ||
292 | # CONFIG_DECNET is not set | ||
293 | # CONFIG_LLC2 is not set | ||
294 | # CONFIG_IPX is not set | ||
295 | # CONFIG_ATALK is not set | ||
296 | # CONFIG_NET_SCHED is not set | ||
297 | |||
298 | # | ||
299 | # Network testing | ||
300 | # | ||
301 | # CONFIG_NET_PKTGEN is not set | ||
302 | # CONFIG_HAMRADIO is not set | ||
303 | # CONFIG_IRDA is not set | ||
304 | # CONFIG_BT is not set | ||
305 | |||
306 | # | ||
307 | # Wireless | ||
308 | # | ||
309 | # CONFIG_CFG80211 is not set | ||
310 | # CONFIG_WIRELESS_EXT is not set | ||
311 | # CONFIG_IEEE80211 is not set | ||
312 | # CONFIG_RFKILL is not set | ||
313 | |||
314 | # | ||
315 | # Device Drivers | ||
316 | # | ||
317 | |||
318 | # | ||
319 | # Generic Driver Options | ||
320 | # | ||
321 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | ||
322 | CONFIG_STANDALONE=y | ||
323 | CONFIG_PREVENT_FIRMWARE_BUILD=y | ||
324 | # CONFIG_FW_LOADER is not set | ||
325 | # CONFIG_DEBUG_DRIVER is not set | ||
326 | # CONFIG_DEBUG_DEVRES is not set | ||
327 | # CONFIG_SYS_HYPERVISOR is not set | ||
328 | # CONFIG_CONNECTOR is not set | ||
329 | CONFIG_MTD=y | ||
330 | # CONFIG_MTD_DEBUG is not set | ||
331 | # CONFIG_MTD_CONCAT is not set | ||
332 | # CONFIG_MTD_PARTITIONS is not set | ||
333 | |||
334 | # | ||
335 | # User Modules And Translation Layers | ||
336 | # | ||
337 | CONFIG_MTD_CHAR=y | ||
338 | CONFIG_MTD_BLKDEVS=y | ||
339 | CONFIG_MTD_BLOCK=y | ||
340 | # CONFIG_FTL is not set | ||
341 | # CONFIG_NFTL is not set | ||
342 | # CONFIG_INFTL is not set | ||
343 | # CONFIG_RFD_FTL is not set | ||
344 | # CONFIG_SSFDC is not set | ||
345 | # CONFIG_MTD_OOPS is not set | ||
346 | |||
347 | # | ||
348 | # RAM/ROM/Flash chip drivers | ||
349 | # | ||
350 | CONFIG_MTD_CFI=y | ||
351 | # CONFIG_MTD_JEDECPROBE is not set | ||
352 | CONFIG_MTD_GEN_PROBE=y | ||
353 | CONFIG_MTD_CFI_ADV_OPTIONS=y | ||
354 | CONFIG_MTD_CFI_NOSWAP=y | ||
355 | # CONFIG_MTD_CFI_BE_BYTE_SWAP is not set | ||
356 | # CONFIG_MTD_CFI_LE_BYTE_SWAP is not set | ||
357 | CONFIG_MTD_CFI_GEOMETRY=y | ||
358 | # CONFIG_MTD_MAP_BANK_WIDTH_1 is not set | ||
359 | # CONFIG_MTD_MAP_BANK_WIDTH_2 is not set | ||
360 | CONFIG_MTD_MAP_BANK_WIDTH_4=y | ||
361 | # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set | ||
362 | # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set | ||
363 | # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set | ||
364 | # CONFIG_MTD_CFI_I1 is not set | ||
365 | CONFIG_MTD_CFI_I2=y | ||
366 | # CONFIG_MTD_CFI_I4 is not set | ||
367 | # CONFIG_MTD_CFI_I8 is not set | ||
368 | # CONFIG_MTD_OTP is not set | ||
369 | # CONFIG_MTD_CFI_INTELEXT is not set | ||
370 | CONFIG_MTD_CFI_AMDSTD=y | ||
371 | # CONFIG_MTD_CFI_STAA is not set | ||
372 | CONFIG_MTD_CFI_UTIL=y | ||
373 | # CONFIG_MTD_RAM is not set | ||
374 | # CONFIG_MTD_ROM is not set | ||
375 | # CONFIG_MTD_ABSENT is not set | ||
376 | |||
377 | # | ||
378 | # Mapping drivers for chip access | ||
379 | # | ||
380 | # CONFIG_MTD_COMPLEX_MAPPINGS is not set | ||
381 | # CONFIG_MTD_PHYSMAP is not set | ||
382 | CONFIG_MTD_PHYSMAP_OF=y | ||
383 | # CONFIG_MTD_PLATRAM is not set | ||
384 | |||
385 | # | ||
386 | # Self-contained MTD device drivers | ||
387 | # | ||
388 | # CONFIG_MTD_SLRAM is not set | ||
389 | # CONFIG_MTD_PHRAM is not set | ||
390 | # CONFIG_MTD_MTDRAM is not set | ||
391 | # CONFIG_MTD_BLOCK2MTD is not set | ||
392 | |||
393 | # | ||
394 | # Disk-On-Chip Device Drivers | ||
395 | # | ||
396 | # CONFIG_MTD_DOC2000 is not set | ||
397 | # CONFIG_MTD_DOC2001 is not set | ||
398 | # CONFIG_MTD_DOC2001PLUS is not set | ||
399 | # CONFIG_MTD_NAND is not set | ||
400 | # CONFIG_MTD_ONENAND is not set | ||
401 | |||
402 | # | ||
403 | # UBI - Unsorted block images | ||
404 | # | ||
405 | # CONFIG_MTD_UBI is not set | ||
406 | CONFIG_OF_DEVICE=y | ||
407 | # CONFIG_PARPORT is not set | ||
408 | CONFIG_BLK_DEV=y | ||
409 | # CONFIG_BLK_DEV_FD is not set | ||
410 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
411 | CONFIG_BLK_DEV_LOOP=y | ||
412 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | ||
413 | # CONFIG_BLK_DEV_NBD is not set | ||
414 | # CONFIG_BLK_DEV_RAM is not set | ||
415 | # CONFIG_CDROM_PKTCDVD is not set | ||
416 | # CONFIG_ATA_OVER_ETH is not set | ||
417 | # CONFIG_MISC_DEVICES is not set | ||
418 | # CONFIG_IDE is not set | ||
419 | |||
420 | # | ||
421 | # SCSI device support | ||
422 | # | ||
423 | # CONFIG_RAID_ATTRS is not set | ||
424 | # CONFIG_SCSI is not set | ||
425 | # CONFIG_SCSI_DMA is not set | ||
426 | # CONFIG_SCSI_NETLINK is not set | ||
427 | # CONFIG_ATA is not set | ||
428 | # CONFIG_MD is not set | ||
429 | # CONFIG_MACINTOSH_DRIVERS is not set | ||
430 | CONFIG_NETDEVICES=y | ||
431 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
432 | # CONFIG_DUMMY is not set | ||
433 | # CONFIG_BONDING is not set | ||
434 | # CONFIG_EQUALIZER is not set | ||
435 | # CONFIG_TUN is not set | ||
436 | # CONFIG_VETH is not set | ||
437 | CONFIG_PHYLIB=y | ||
438 | |||
439 | # | ||
440 | # MII PHY device drivers | ||
441 | # | ||
442 | # CONFIG_MARVELL_PHY is not set | ||
443 | CONFIG_DAVICOM_PHY=y | ||
444 | # CONFIG_QSEMI_PHY is not set | ||
445 | # CONFIG_LXT_PHY is not set | ||
446 | # CONFIG_CICADA_PHY is not set | ||
447 | # CONFIG_VITESSE_PHY is not set | ||
448 | # CONFIG_SMSC_PHY is not set | ||
449 | # CONFIG_BROADCOM_PHY is not set | ||
450 | # CONFIG_ICPLUS_PHY is not set | ||
451 | # CONFIG_FIXED_PHY is not set | ||
452 | CONFIG_MDIO_BITBANG=y | ||
453 | CONFIG_NET_ETHERNET=y | ||
454 | CONFIG_MII=y | ||
455 | # CONFIG_IBM_NEW_EMAC_ZMII is not set | ||
456 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | ||
457 | # CONFIG_IBM_NEW_EMAC_TAH is not set | ||
458 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | ||
459 | # CONFIG_B44 is not set | ||
460 | CONFIG_FS_ENET=y | ||
461 | # CONFIG_FS_ENET_HAS_SCC is not set | ||
462 | CONFIG_FS_ENET_HAS_FCC=y | ||
463 | # CONFIG_FS_ENET_MDIO_FCC is not set | ||
464 | CONFIG_NETDEV_1000=y | ||
465 | CONFIG_NETDEV_10000=y | ||
466 | |||
467 | # | ||
468 | # Wireless LAN | ||
469 | # | ||
470 | # CONFIG_WLAN_PRE80211 is not set | ||
471 | # CONFIG_WLAN_80211 is not set | ||
472 | # CONFIG_WAN is not set | ||
473 | # CONFIG_PPP is not set | ||
474 | # CONFIG_SLIP is not set | ||
475 | # CONFIG_NETPOLL is not set | ||
476 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
477 | # CONFIG_ISDN is not set | ||
478 | # CONFIG_PHONE is not set | ||
479 | |||
480 | # | ||
481 | # Input device support | ||
482 | # | ||
483 | # CONFIG_INPUT is not set | ||
484 | |||
485 | # | ||
486 | # Hardware I/O ports | ||
487 | # | ||
488 | # CONFIG_SERIO is not set | ||
489 | # CONFIG_GAMEPORT is not set | ||
490 | |||
491 | # | ||
492 | # Character devices | ||
493 | # | ||
494 | # CONFIG_VT is not set | ||
495 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
496 | |||
497 | # | ||
498 | # Serial drivers | ||
499 | # | ||
500 | # CONFIG_SERIAL_8250 is not set | ||
501 | |||
502 | # | ||
503 | # Non-8250 serial port support | ||
504 | # | ||
505 | # CONFIG_SERIAL_UARTLITE is not set | ||
506 | CONFIG_SERIAL_CORE=y | ||
507 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
508 | CONFIG_SERIAL_CPM=y | ||
509 | CONFIG_SERIAL_CPM_CONSOLE=y | ||
510 | CONFIG_SERIAL_CPM_SCC1=y | ||
511 | # CONFIG_SERIAL_CPM_SCC2 is not set | ||
512 | # CONFIG_SERIAL_CPM_SCC3 is not set | ||
513 | CONFIG_SERIAL_CPM_SCC4=y | ||
514 | # CONFIG_SERIAL_CPM_SMC1 is not set | ||
515 | # CONFIG_SERIAL_CPM_SMC2 is not set | ||
516 | CONFIG_UNIX98_PTYS=y | ||
517 | CONFIG_LEGACY_PTYS=y | ||
518 | CONFIG_LEGACY_PTY_COUNT=256 | ||
519 | # CONFIG_IPMI_HANDLER is not set | ||
520 | CONFIG_HW_RANDOM=y | ||
521 | # CONFIG_NVRAM is not set | ||
522 | # CONFIG_GEN_RTC is not set | ||
523 | # CONFIG_R3964 is not set | ||
524 | # CONFIG_RAW_DRIVER is not set | ||
525 | # CONFIG_I2C is not set | ||
526 | |||
527 | # | ||
528 | # SPI support | ||
529 | # | ||
530 | # CONFIG_SPI is not set | ||
531 | # CONFIG_SPI_MASTER is not set | ||
532 | # CONFIG_W1 is not set | ||
533 | # CONFIG_POWER_SUPPLY is not set | ||
534 | # CONFIG_HWMON is not set | ||
535 | # CONFIG_WATCHDOG is not set | ||
536 | |||
537 | # | ||
538 | # Sonics Silicon Backplane | ||
539 | # | ||
540 | CONFIG_SSB_POSSIBLE=y | ||
541 | # CONFIG_SSB is not set | ||
542 | |||
543 | # | ||
544 | # Multifunction device drivers | ||
545 | # | ||
546 | # CONFIG_MFD_SM501 is not set | ||
547 | |||
548 | # | ||
549 | # Multimedia devices | ||
550 | # | ||
551 | # CONFIG_VIDEO_DEV is not set | ||
552 | # CONFIG_DVB_CORE is not set | ||
553 | CONFIG_DAB=y | ||
554 | |||
555 | # | ||
556 | # Graphics support | ||
557 | # | ||
558 | # CONFIG_VGASTATE is not set | ||
559 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | ||
560 | # CONFIG_FB is not set | ||
561 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
562 | |||
563 | # | ||
564 | # Display device support | ||
565 | # | ||
566 | # CONFIG_DISPLAY_SUPPORT is not set | ||
567 | |||
568 | # | ||
569 | # Sound | ||
570 | # | ||
571 | # CONFIG_SOUND is not set | ||
572 | # CONFIG_USB_SUPPORT is not set | ||
573 | # CONFIG_MMC is not set | ||
574 | # CONFIG_NEW_LEDS is not set | ||
575 | # CONFIG_RTC_CLASS is not set | ||
576 | |||
577 | # | ||
578 | # Userspace I/O | ||
579 | # | ||
580 | # CONFIG_UIO is not set | ||
581 | |||
582 | # | ||
583 | # File systems | ||
584 | # | ||
585 | CONFIG_EXT2_FS=y | ||
586 | # CONFIG_EXT2_FS_XATTR is not set | ||
587 | # CONFIG_EXT2_FS_XIP is not set | ||
588 | CONFIG_EXT3_FS=y | ||
589 | # CONFIG_EXT3_FS_XATTR is not set | ||
590 | CONFIG_JBD=y | ||
591 | # CONFIG_REISERFS_FS is not set | ||
592 | # CONFIG_JFS_FS is not set | ||
593 | # CONFIG_FS_POSIX_ACL is not set | ||
594 | # CONFIG_XFS_FS is not set | ||
595 | # CONFIG_OCFS2_FS is not set | ||
596 | # CONFIG_MINIX_FS is not set | ||
597 | # CONFIG_ROMFS_FS is not set | ||
598 | CONFIG_INOTIFY=y | ||
599 | CONFIG_INOTIFY_USER=y | ||
600 | # CONFIG_QUOTA is not set | ||
601 | CONFIG_DNOTIFY=y | ||
602 | # CONFIG_AUTOFS_FS is not set | ||
603 | CONFIG_AUTOFS4_FS=y | ||
604 | # CONFIG_FUSE_FS is not set | ||
605 | |||
606 | # | ||
607 | # CD-ROM/DVD Filesystems | ||
608 | # | ||
609 | # CONFIG_ISO9660_FS is not set | ||
610 | # CONFIG_UDF_FS is not set | ||
611 | |||
612 | # | ||
613 | # DOS/FAT/NT Filesystems | ||
614 | # | ||
615 | # CONFIG_MSDOS_FS is not set | ||
616 | # CONFIG_VFAT_FS is not set | ||
617 | # CONFIG_NTFS_FS is not set | ||
618 | |||
619 | # | ||
620 | # Pseudo filesystems | ||
621 | # | ||
622 | CONFIG_PROC_FS=y | ||
623 | CONFIG_PROC_KCORE=y | ||
624 | CONFIG_PROC_SYSCTL=y | ||
625 | CONFIG_SYSFS=y | ||
626 | CONFIG_TMPFS=y | ||
627 | # CONFIG_TMPFS_POSIX_ACL is not set | ||
628 | # CONFIG_HUGETLB_PAGE is not set | ||
629 | |||
630 | # | ||
631 | # Miscellaneous filesystems | ||
632 | # | ||
633 | # CONFIG_HFSPLUS_FS is not set | ||
634 | # CONFIG_JFFS2_FS is not set | ||
635 | CONFIG_CRAMFS=y | ||
636 | # CONFIG_VXFS_FS is not set | ||
637 | # CONFIG_HPFS_FS is not set | ||
638 | # CONFIG_QNX4FS_FS is not set | ||
639 | # CONFIG_SYSV_FS is not set | ||
640 | # CONFIG_UFS_FS is not set | ||
641 | CONFIG_NETWORK_FILESYSTEMS=y | ||
642 | CONFIG_NFS_FS=y | ||
643 | CONFIG_NFS_V3=y | ||
644 | # CONFIG_NFS_V3_ACL is not set | ||
645 | # CONFIG_NFS_DIRECTIO is not set | ||
646 | # CONFIG_NFSD is not set | ||
647 | CONFIG_ROOT_NFS=y | ||
648 | CONFIG_LOCKD=y | ||
649 | CONFIG_LOCKD_V4=y | ||
650 | CONFIG_NFS_COMMON=y | ||
651 | CONFIG_SUNRPC=y | ||
652 | # CONFIG_SMB_FS is not set | ||
653 | # CONFIG_CIFS is not set | ||
654 | # CONFIG_NCP_FS is not set | ||
655 | # CONFIG_CODA_FS is not set | ||
656 | |||
657 | # | ||
658 | # Partition Types | ||
659 | # | ||
660 | CONFIG_PARTITION_ADVANCED=y | ||
661 | # CONFIG_ACORN_PARTITION is not set | ||
662 | # CONFIG_OSF_PARTITION is not set | ||
663 | # CONFIG_AMIGA_PARTITION is not set | ||
664 | # CONFIG_ATARI_PARTITION is not set | ||
665 | # CONFIG_MAC_PARTITION is not set | ||
666 | CONFIG_MSDOS_PARTITION=y | ||
667 | # CONFIG_BSD_DISKLABEL is not set | ||
668 | # CONFIG_MINIX_SUBPARTITION is not set | ||
669 | # CONFIG_SOLARIS_X86_PARTITION is not set | ||
670 | # CONFIG_UNIXWARE_DISKLABEL is not set | ||
671 | # CONFIG_LDM_PARTITION is not set | ||
672 | # CONFIG_SGI_PARTITION is not set | ||
673 | # CONFIG_ULTRIX_PARTITION is not set | ||
674 | # CONFIG_SUN_PARTITION is not set | ||
675 | # CONFIG_KARMA_PARTITION is not set | ||
676 | # CONFIG_EFI_PARTITION is not set | ||
677 | # CONFIG_SYSV68_PARTITION is not set | ||
678 | CONFIG_NLS=y | ||
679 | CONFIG_NLS_DEFAULT="iso8859-1" | ||
680 | CONFIG_NLS_CODEPAGE_437=y | ||
681 | # CONFIG_NLS_CODEPAGE_737 is not set | ||
682 | # CONFIG_NLS_CODEPAGE_775 is not set | ||
683 | # CONFIG_NLS_CODEPAGE_850 is not set | ||
684 | # CONFIG_NLS_CODEPAGE_852 is not set | ||
685 | # CONFIG_NLS_CODEPAGE_855 is not set | ||
686 | # CONFIG_NLS_CODEPAGE_857 is not set | ||
687 | # CONFIG_NLS_CODEPAGE_860 is not set | ||
688 | # CONFIG_NLS_CODEPAGE_861 is not set | ||
689 | # CONFIG_NLS_CODEPAGE_862 is not set | ||
690 | # CONFIG_NLS_CODEPAGE_863 is not set | ||
691 | # CONFIG_NLS_CODEPAGE_864 is not set | ||
692 | # CONFIG_NLS_CODEPAGE_865 is not set | ||
693 | # CONFIG_NLS_CODEPAGE_866 is not set | ||
694 | # CONFIG_NLS_CODEPAGE_869 is not set | ||
695 | # CONFIG_NLS_CODEPAGE_936 is not set | ||
696 | # CONFIG_NLS_CODEPAGE_950 is not set | ||
697 | # CONFIG_NLS_CODEPAGE_932 is not set | ||
698 | # CONFIG_NLS_CODEPAGE_949 is not set | ||
699 | # CONFIG_NLS_CODEPAGE_874 is not set | ||
700 | # CONFIG_NLS_ISO8859_8 is not set | ||
701 | # CONFIG_NLS_CODEPAGE_1250 is not set | ||
702 | # CONFIG_NLS_CODEPAGE_1251 is not set | ||
703 | CONFIG_NLS_ASCII=y | ||
704 | CONFIG_NLS_ISO8859_1=y | ||
705 | # CONFIG_NLS_ISO8859_2 is not set | ||
706 | # CONFIG_NLS_ISO8859_3 is not set | ||
707 | # CONFIG_NLS_ISO8859_4 is not set | ||
708 | # CONFIG_NLS_ISO8859_5 is not set | ||
709 | # CONFIG_NLS_ISO8859_6 is not set | ||
710 | # CONFIG_NLS_ISO8859_7 is not set | ||
711 | # CONFIG_NLS_ISO8859_9 is not set | ||
712 | # CONFIG_NLS_ISO8859_13 is not set | ||
713 | # CONFIG_NLS_ISO8859_14 is not set | ||
714 | # CONFIG_NLS_ISO8859_15 is not set | ||
715 | # CONFIG_NLS_KOI8_R is not set | ||
716 | # CONFIG_NLS_KOI8_U is not set | ||
717 | CONFIG_NLS_UTF8=y | ||
718 | # CONFIG_UCC_SLOW is not set | ||
719 | |||
720 | # | ||
721 | # Library routines | ||
722 | # | ||
723 | # CONFIG_CRC_CCITT is not set | ||
724 | # CONFIG_CRC16 is not set | ||
725 | # CONFIG_CRC_ITU_T is not set | ||
726 | # CONFIG_CRC32 is not set | ||
727 | # CONFIG_CRC7 is not set | ||
728 | # CONFIG_LIBCRC32C is not set | ||
729 | CONFIG_ZLIB_INFLATE=y | ||
730 | CONFIG_PLIST=y | ||
731 | CONFIG_HAS_IOMEM=y | ||
732 | CONFIG_HAS_IOPORT=y | ||
733 | CONFIG_HAS_DMA=y | ||
734 | CONFIG_INSTRUMENTATION=y | ||
735 | # CONFIG_PROFILING is not set | ||
736 | # CONFIG_MARKERS is not set | ||
737 | |||
738 | # | ||
739 | # Kernel hacking | ||
740 | # | ||
741 | # CONFIG_PRINTK_TIME is not set | ||
742 | CONFIG_ENABLE_WARN_DEPRECATED=y | ||
743 | CONFIG_ENABLE_MUST_CHECK=y | ||
744 | CONFIG_MAGIC_SYSRQ=y | ||
745 | # CONFIG_UNUSED_SYMBOLS is not set | ||
746 | # CONFIG_DEBUG_FS is not set | ||
747 | # CONFIG_HEADERS_CHECK is not set | ||
748 | CONFIG_DEBUG_KERNEL=y | ||
749 | # CONFIG_DEBUG_SHIRQ is not set | ||
750 | # CONFIG_DETECT_SOFTLOCKUP is not set | ||
751 | # CONFIG_SCHED_DEBUG is not set | ||
752 | # CONFIG_SCHEDSTATS is not set | ||
753 | # CONFIG_TIMER_STATS is not set | ||
754 | # CONFIG_DEBUG_SLAB is not set | ||
755 | # CONFIG_DEBUG_RT_MUTEXES is not set | ||
756 | # CONFIG_RT_MUTEX_TESTER is not set | ||
757 | # CONFIG_DEBUG_SPINLOCK is not set | ||
758 | # CONFIG_DEBUG_MUTEXES is not set | ||
759 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | ||
760 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | ||
761 | # CONFIG_DEBUG_KOBJECT is not set | ||
762 | CONFIG_DEBUG_BUGVERBOSE=y | ||
763 | CONFIG_DEBUG_INFO=y | ||
764 | # CONFIG_DEBUG_VM is not set | ||
765 | # CONFIG_DEBUG_LIST is not set | ||
766 | # CONFIG_DEBUG_SG is not set | ||
767 | CONFIG_FORCED_INLINING=y | ||
768 | # CONFIG_BOOT_PRINTK_DELAY is not set | ||
769 | # CONFIG_FAULT_INJECTION is not set | ||
770 | # CONFIG_SAMPLES is not set | ||
771 | # CONFIG_DEBUG_STACKOVERFLOW is not set | ||
772 | # CONFIG_DEBUG_STACK_USAGE is not set | ||
773 | # CONFIG_DEBUG_PAGEALLOC is not set | ||
774 | # CONFIG_DEBUGGER is not set | ||
775 | # CONFIG_KGDB_CONSOLE is not set | ||
776 | CONFIG_BDI_SWITCH=y | ||
777 | # CONFIG_PPC_EARLY_DEBUG is not set | ||
778 | |||
779 | # | ||
780 | # Security options | ||
781 | # | ||
782 | # CONFIG_KEYS is not set | ||
783 | # CONFIG_SECURITY is not set | ||
784 | CONFIG_CRYPTO=y | ||
785 | CONFIG_CRYPTO_ALGAPI=y | ||
786 | CONFIG_CRYPTO_BLKCIPHER=y | ||
787 | CONFIG_CRYPTO_MANAGER=y | ||
788 | # CONFIG_CRYPTO_HMAC is not set | ||
789 | # CONFIG_CRYPTO_NULL is not set | ||
790 | # CONFIG_CRYPTO_MD4 is not set | ||
791 | CONFIG_CRYPTO_MD5=y | ||
792 | # CONFIG_CRYPTO_SHA1 is not set | ||
793 | # CONFIG_CRYPTO_SHA256 is not set | ||
794 | # CONFIG_CRYPTO_SHA512 is not set | ||
795 | # CONFIG_CRYPTO_WP512 is not set | ||
796 | # CONFIG_CRYPTO_TGR192 is not set | ||
797 | CONFIG_CRYPTO_ECB=y | ||
798 | CONFIG_CRYPTO_CBC=y | ||
799 | CONFIG_CRYPTO_PCBC=y | ||
800 | # CONFIG_CRYPTO_CRYPTD is not set | ||
801 | CONFIG_CRYPTO_DES=y | ||
802 | # CONFIG_CRYPTO_FCRYPT is not set | ||
803 | # CONFIG_CRYPTO_BLOWFISH is not set | ||
804 | # CONFIG_CRYPTO_TWOFISH is not set | ||
805 | # CONFIG_CRYPTO_SERPENT is not set | ||
806 | # CONFIG_CRYPTO_AES is not set | ||
807 | # CONFIG_CRYPTO_CAST5 is not set | ||
808 | # CONFIG_CRYPTO_CAST6 is not set | ||
809 | # CONFIG_CRYPTO_TEA is not set | ||
810 | # CONFIG_CRYPTO_ARC4 is not set | ||
811 | # CONFIG_CRYPTO_KHAZAD is not set | ||
812 | # CONFIG_CRYPTO_ANUBIS is not set | ||
813 | # CONFIG_CRYPTO_SEED is not set | ||
814 | # CONFIG_CRYPTO_DEFLATE is not set | ||
815 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | ||
816 | # CONFIG_CRYPTO_CRC32C is not set | ||
817 | # CONFIG_CRYPTO_CAMELLIA is not set | ||
818 | # CONFIG_CRYPTO_AUTHENC is not set | ||
819 | # CONFIG_CRYPTO_HW is not set | ||
820 | # CONFIG_PPC_CLOCK is not set | ||
821 | CONFIG_PPC_LIB_RHEAP=y | ||
diff --git a/arch/powerpc/configs/mpc8313_rdb_defconfig b/arch/powerpc/configs/mpc8313_rdb_defconfig index c9af905bbb1d..db08e736c0ac 100644 --- a/arch/powerpc/configs/mpc8313_rdb_defconfig +++ b/arch/powerpc/configs/mpc8313_rdb_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.24-rc4 | 3 | # Linux kernel version: 2.6.24-rc6 |
4 | # Thu Dec 6 16:48:31 2007 | 4 | # Thu Jan 17 16:35:55 2008 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -144,6 +144,7 @@ CONFIG_MPC8313_RDB=y | |||
144 | # CONFIG_MPC834x_MDS is not set | 144 | # CONFIG_MPC834x_MDS is not set |
145 | # CONFIG_MPC834x_ITX is not set | 145 | # CONFIG_MPC834x_ITX is not set |
146 | # CONFIG_MPC836x_MDS is not set | 146 | # CONFIG_MPC836x_MDS is not set |
147 | # CONFIG_MPC837x_MDS is not set | ||
147 | CONFIG_PPC_MPC831x=y | 148 | CONFIG_PPC_MPC831x=y |
148 | # CONFIG_MPIC is not set | 149 | # CONFIG_MPIC is not set |
149 | # CONFIG_MPIC_WEIRD is not set | 150 | # CONFIG_MPIC_WEIRD is not set |
@@ -336,15 +337,16 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y | |||
336 | CONFIG_MTD=y | 337 | CONFIG_MTD=y |
337 | # CONFIG_MTD_DEBUG is not set | 338 | # CONFIG_MTD_DEBUG is not set |
338 | # CONFIG_MTD_CONCAT is not set | 339 | # CONFIG_MTD_CONCAT is not set |
339 | # CONFIG_MTD_PARTITIONS is not set | 340 | CONFIG_MTD_PARTITIONS=y |
341 | # CONFIG_MTD_REDBOOT_PARTS is not set | ||
342 | # CONFIG_MTD_CMDLINE_PARTS is not set | ||
340 | 343 | ||
341 | # | 344 | # |
342 | # User Modules And Translation Layers | 345 | # User Modules And Translation Layers |
343 | # | 346 | # |
344 | CONFIG_MTD_CHAR=y | 347 | CONFIG_MTD_CHAR=y |
345 | # CONFIG_MTD_BLKDEVS is not set | 348 | CONFIG_MTD_BLKDEVS=y |
346 | # CONFIG_MTD_BLOCK is not set | 349 | CONFIG_MTD_BLOCK=y |
347 | # CONFIG_MTD_BLOCK_RO is not set | ||
348 | # CONFIG_FTL is not set | 350 | # CONFIG_FTL is not set |
349 | # CONFIG_NFTL is not set | 351 | # CONFIG_NFTL is not set |
350 | # CONFIG_INFTL is not set | 352 | # CONFIG_INFTL is not set |
@@ -381,11 +383,8 @@ CONFIG_MTD_CFI_UTIL=y | |||
381 | # Mapping drivers for chip access | 383 | # Mapping drivers for chip access |
382 | # | 384 | # |
383 | # CONFIG_MTD_COMPLEX_MAPPINGS is not set | 385 | # CONFIG_MTD_COMPLEX_MAPPINGS is not set |
384 | CONFIG_MTD_PHYSMAP=y | 386 | # CONFIG_MTD_PHYSMAP is not set |
385 | CONFIG_MTD_PHYSMAP_START=0xfe000000 | 387 | CONFIG_MTD_PHYSMAP_OF=y |
386 | CONFIG_MTD_PHYSMAP_LEN=0x1000000 | ||
387 | CONFIG_MTD_PHYSMAP_BANKWIDTH=2 | ||
388 | # CONFIG_MTD_PHYSMAP_OF is not set | ||
389 | # CONFIG_MTD_INTEL_VR_NOR is not set | 388 | # CONFIG_MTD_INTEL_VR_NOR is not set |
390 | # CONFIG_MTD_PLATRAM is not set | 389 | # CONFIG_MTD_PLATRAM is not set |
391 | 390 | ||
@@ -406,7 +405,16 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=2 | |||
406 | # CONFIG_MTD_DOC2000 is not set | 405 | # CONFIG_MTD_DOC2000 is not set |
407 | # CONFIG_MTD_DOC2001 is not set | 406 | # CONFIG_MTD_DOC2001 is not set |
408 | # CONFIG_MTD_DOC2001PLUS is not set | 407 | # CONFIG_MTD_DOC2001PLUS is not set |
409 | # CONFIG_MTD_NAND is not set | 408 | CONFIG_MTD_NAND=y |
409 | CONFIG_MTD_NAND_VERIFY_WRITE=y | ||
410 | # CONFIG_MTD_NAND_ECC_SMC is not set | ||
411 | # CONFIG_MTD_NAND_MUSEUM_IDS is not set | ||
412 | CONFIG_MTD_NAND_IDS=y | ||
413 | # CONFIG_MTD_NAND_DISKONCHIP is not set | ||
414 | # CONFIG_MTD_NAND_CAFE is not set | ||
415 | # CONFIG_MTD_NAND_NANDSIM is not set | ||
416 | # CONFIG_MTD_NAND_PLATFORM is not set | ||
417 | # CONFIG_MTD_ALAUDA is not set | ||
410 | # CONFIG_MTD_ONENAND is not set | 418 | # CONFIG_MTD_ONENAND is not set |
411 | 419 | ||
412 | # | 420 | # |
@@ -1178,7 +1186,17 @@ CONFIG_TMPFS=y | |||
1178 | # CONFIG_BEFS_FS is not set | 1186 | # CONFIG_BEFS_FS is not set |
1179 | # CONFIG_BFS_FS is not set | 1187 | # CONFIG_BFS_FS is not set |
1180 | # CONFIG_EFS_FS is not set | 1188 | # CONFIG_EFS_FS is not set |
1181 | # CONFIG_JFFS2_FS is not set | 1189 | CONFIG_JFFS2_FS=y |
1190 | CONFIG_JFFS2_FS_DEBUG=0 | ||
1191 | CONFIG_JFFS2_FS_WRITEBUFFER=y | ||
1192 | # CONFIG_JFFS2_FS_WBUF_VERIFY is not set | ||
1193 | # CONFIG_JFFS2_SUMMARY is not set | ||
1194 | # CONFIG_JFFS2_FS_XATTR is not set | ||
1195 | # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set | ||
1196 | CONFIG_JFFS2_ZLIB=y | ||
1197 | # CONFIG_JFFS2_LZO is not set | ||
1198 | CONFIG_JFFS2_RTIME=y | ||
1199 | # CONFIG_JFFS2_RUBIN is not set | ||
1182 | # CONFIG_CRAMFS is not set | 1200 | # CONFIG_CRAMFS is not set |
1183 | # CONFIG_VXFS_FS is not set | 1201 | # CONFIG_VXFS_FS is not set |
1184 | # CONFIG_HPFS_FS is not set | 1202 | # CONFIG_HPFS_FS is not set |
@@ -1242,6 +1260,8 @@ CONFIG_BITREVERSE=y | |||
1242 | CONFIG_CRC32=y | 1260 | CONFIG_CRC32=y |
1243 | # CONFIG_CRC7 is not set | 1261 | # CONFIG_CRC7 is not set |
1244 | # CONFIG_LIBCRC32C is not set | 1262 | # CONFIG_LIBCRC32C is not set |
1263 | CONFIG_ZLIB_INFLATE=y | ||
1264 | CONFIG_ZLIB_DEFLATE=y | ||
1245 | CONFIG_PLIST=y | 1265 | CONFIG_PLIST=y |
1246 | CONFIG_HAS_IOMEM=y | 1266 | CONFIG_HAS_IOMEM=y |
1247 | CONFIG_HAS_IOPORT=y | 1267 | CONFIG_HAS_IOPORT=y |
diff --git a/arch/powerpc/configs/mpc834x_itx_defconfig b/arch/powerpc/configs/mpc834x_itx_defconfig index 6feb86e2b786..2fbe4e5344f7 100644 --- a/arch/powerpc/configs/mpc834x_itx_defconfig +++ b/arch/powerpc/configs/mpc834x_itx_defconfig | |||
@@ -570,7 +570,8 @@ CONFIG_SATA_SIL=y | |||
570 | # CONFIG_PATA_SIS is not set | 570 | # CONFIG_PATA_SIS is not set |
571 | # CONFIG_PATA_VIA is not set | 571 | # CONFIG_PATA_VIA is not set |
572 | # CONFIG_PATA_WINBOND is not set | 572 | # CONFIG_PATA_WINBOND is not set |
573 | # CONFIG_PATA_PLATFORM is not set | 573 | CONFIG_PATA_PLATFORM=y |
574 | CONFIG_PATA_OF_PLATFORM=y | ||
574 | CONFIG_MD=y | 575 | CONFIG_MD=y |
575 | CONFIG_BLK_DEV_MD=y | 576 | CONFIG_BLK_DEV_MD=y |
576 | CONFIG_MD_LINEAR=y | 577 | CONFIG_MD_LINEAR=y |
diff --git a/arch/powerpc/configs/mpc8610_hpcd_defconfig b/arch/powerpc/configs/mpc8610_hpcd_defconfig index 9614d24f832a..2500ef42959d 100644 --- a/arch/powerpc/configs/mpc8610_hpcd_defconfig +++ b/arch/powerpc/configs/mpc8610_hpcd_defconfig | |||
@@ -696,7 +696,7 @@ CONFIG_SERIAL_8250_RSA=y | |||
696 | CONFIG_SERIAL_CORE=y | 696 | CONFIG_SERIAL_CORE=y |
697 | CONFIG_SERIAL_CORE_CONSOLE=y | 697 | CONFIG_SERIAL_CORE_CONSOLE=y |
698 | # CONFIG_SERIAL_JSM is not set | 698 | # CONFIG_SERIAL_JSM is not set |
699 | CONFIG_SERIAL_OF_PLATFORM=y | 699 | # CONFIG_SERIAL_OF_PLATFORM is not set |
700 | CONFIG_UNIX98_PTYS=y | 700 | CONFIG_UNIX98_PTYS=y |
701 | # CONFIG_LEGACY_PTYS is not set | 701 | # CONFIG_LEGACY_PTYS is not set |
702 | # CONFIG_IPMI_HANDLER is not set | 702 | # CONFIG_IPMI_HANDLER is not set |
@@ -708,7 +708,60 @@ CONFIG_UNIX98_PTYS=y | |||
708 | # CONFIG_RAW_DRIVER is not set | 708 | # CONFIG_RAW_DRIVER is not set |
709 | # CONFIG_TCG_TPM is not set | 709 | # CONFIG_TCG_TPM is not set |
710 | CONFIG_DEVPORT=y | 710 | CONFIG_DEVPORT=y |
711 | # CONFIG_I2C is not set | 711 | CONFIG_I2C=y |
712 | CONFIG_I2C_BOARDINFO=y | ||
713 | # CONFIG_I2C_CHARDEV is not set | ||
714 | |||
715 | # | ||
716 | # I2C Algorithms | ||
717 | # | ||
718 | # CONFIG_I2C_ALGOBIT is not set | ||
719 | # CONFIG_I2C_ALGOPCF is not set | ||
720 | # CONFIG_I2C_ALGOPCA is not set | ||
721 | |||
722 | # | ||
723 | # I2C Hardware Bus support | ||
724 | # | ||
725 | # CONFIG_I2C_ALI1535 is not set | ||
726 | # CONFIG_I2C_ALI1563 is not set | ||
727 | # CONFIG_I2C_ALI15X3 is not set | ||
728 | # CONFIG_I2C_AMD756 is not set | ||
729 | # CONFIG_I2C_AMD8111 is not set | ||
730 | # CONFIG_I2C_I801 is not set | ||
731 | # CONFIG_I2C_I810 is not set | ||
732 | # CONFIG_I2C_PIIX4 is not set | ||
733 | CONFIG_I2C_MPC=y | ||
734 | # CONFIG_I2C_NFORCE2 is not set | ||
735 | # CONFIG_I2C_OCORES is not set | ||
736 | # CONFIG_I2C_PARPORT_LIGHT is not set | ||
737 | # CONFIG_I2C_PROSAVAGE is not set | ||
738 | # CONFIG_I2C_SAVAGE4 is not set | ||
739 | # CONFIG_I2C_SIMTEC is not set | ||
740 | # CONFIG_I2C_SIS5595 is not set | ||
741 | # CONFIG_I2C_SIS630 is not set | ||
742 | # CONFIG_I2C_SIS96X is not set | ||
743 | # CONFIG_I2C_TAOS_EVM is not set | ||
744 | # CONFIG_I2C_VIA is not set | ||
745 | # CONFIG_I2C_VIAPRO is not set | ||
746 | # CONFIG_I2C_VOODOO3 is not set | ||
747 | |||
748 | # | ||
749 | # Miscellaneous I2C Chip support | ||
750 | # | ||
751 | # CONFIG_SENSORS_DS1337 is not set | ||
752 | # CONFIG_SENSORS_DS1374 is not set | ||
753 | # CONFIG_DS1682 is not set | ||
754 | # CONFIG_SENSORS_EEPROM is not set | ||
755 | # CONFIG_SENSORS_PCF8574 is not set | ||
756 | # CONFIG_SENSORS_PCA9539 is not set | ||
757 | # CONFIG_SENSORS_PCF8591 is not set | ||
758 | # CONFIG_SENSORS_M41T00 is not set | ||
759 | # CONFIG_SENSORS_MAX6875 is not set | ||
760 | # CONFIG_SENSORS_TSL2550 is not set | ||
761 | # CONFIG_I2C_DEBUG_CORE is not set | ||
762 | # CONFIG_I2C_DEBUG_ALGO is not set | ||
763 | # CONFIG_I2C_DEBUG_BUS is not set | ||
764 | # CONFIG_I2C_DEBUG_CHIP is not set | ||
712 | 765 | ||
713 | # | 766 | # |
714 | # SPI support | 767 | # SPI support |
@@ -763,7 +816,119 @@ CONFIG_DUMMY_CONSOLE=y | |||
763 | # | 816 | # |
764 | # Sound | 817 | # Sound |
765 | # | 818 | # |
766 | # CONFIG_SOUND is not set | 819 | CONFIG_SOUND=y |
820 | |||
821 | # | ||
822 | # Advanced Linux Sound Architecture | ||
823 | # | ||
824 | CONFIG_SND=y | ||
825 | CONFIG_SND_TIMER=y | ||
826 | CONFIG_SND_PCM=y | ||
827 | # CONFIG_SND_SEQUENCER is not set | ||
828 | CONFIG_SND_OSSEMUL=y | ||
829 | CONFIG_SND_MIXER_OSS=y | ||
830 | CONFIG_SND_PCM_OSS=y | ||
831 | # CONFIG_SND_PCM_OSS_PLUGINS is not set | ||
832 | # CONFIG_SND_DYNAMIC_MINORS is not set | ||
833 | # CONFIG_SND_SUPPORT_OLD_API is not set | ||
834 | CONFIG_SND_VERBOSE_PROCFS=y | ||
835 | # CONFIG_SND_VERBOSE_PRINTK is not set | ||
836 | # CONFIG_SND_DEBUG is not set | ||
837 | |||
838 | # | ||
839 | # Generic devices | ||
840 | # | ||
841 | # CONFIG_SND_DUMMY is not set | ||
842 | # CONFIG_SND_MTPAV is not set | ||
843 | # CONFIG_SND_SERIAL_U16550 is not set | ||
844 | # CONFIG_SND_MPU401 is not set | ||
845 | |||
846 | # | ||
847 | # PCI devices | ||
848 | # | ||
849 | # CONFIG_SND_AD1889 is not set | ||
850 | # CONFIG_SND_ALS300 is not set | ||
851 | # CONFIG_SND_ALS4000 is not set | ||
852 | # CONFIG_SND_ALI5451 is not set | ||
853 | # CONFIG_SND_ATIIXP is not set | ||
854 | # CONFIG_SND_ATIIXP_MODEM is not set | ||
855 | # CONFIG_SND_AU8810 is not set | ||
856 | # CONFIG_SND_AU8820 is not set | ||
857 | # CONFIG_SND_AU8830 is not set | ||
858 | # CONFIG_SND_AZT3328 is not set | ||
859 | # CONFIG_SND_BT87X is not set | ||
860 | # CONFIG_SND_CA0106 is not set | ||
861 | # CONFIG_SND_CMIPCI is not set | ||
862 | # CONFIG_SND_CS4281 is not set | ||
863 | # CONFIG_SND_CS46XX is not set | ||
864 | # CONFIG_SND_CS5530 is not set | ||
865 | # CONFIG_SND_DARLA20 is not set | ||
866 | # CONFIG_SND_GINA20 is not set | ||
867 | # CONFIG_SND_LAYLA20 is not set | ||
868 | # CONFIG_SND_DARLA24 is not set | ||
869 | # CONFIG_SND_GINA24 is not set | ||
870 | # CONFIG_SND_LAYLA24 is not set | ||
871 | # CONFIG_SND_MONA is not set | ||
872 | # CONFIG_SND_MIA is not set | ||
873 | # CONFIG_SND_ECHO3G is not set | ||
874 | # CONFIG_SND_INDIGO is not set | ||
875 | # CONFIG_SND_INDIGOIO is not set | ||
876 | # CONFIG_SND_INDIGODJ is not set | ||
877 | # CONFIG_SND_EMU10K1 is not set | ||
878 | # CONFIG_SND_EMU10K1X is not set | ||
879 | # CONFIG_SND_ENS1370 is not set | ||
880 | # CONFIG_SND_ENS1371 is not set | ||
881 | # CONFIG_SND_ES1938 is not set | ||
882 | # CONFIG_SND_ES1968 is not set | ||
883 | # CONFIG_SND_FM801 is not set | ||
884 | # CONFIG_SND_HDA_INTEL is not set | ||
885 | # CONFIG_SND_HDSP is not set | ||
886 | # CONFIG_SND_HDSPM is not set | ||
887 | # CONFIG_SND_ICE1712 is not set | ||
888 | # CONFIG_SND_ICE1724 is not set | ||
889 | # CONFIG_SND_INTEL8X0 is not set | ||
890 | # CONFIG_SND_INTEL8X0M is not set | ||
891 | # CONFIG_SND_KORG1212 is not set | ||
892 | # CONFIG_SND_MAESTRO3 is not set | ||
893 | # CONFIG_SND_MIXART is not set | ||
894 | # CONFIG_SND_NM256 is not set | ||
895 | # CONFIG_SND_PCXHR is not set | ||
896 | # CONFIG_SND_RIPTIDE is not set | ||
897 | # CONFIG_SND_RME32 is not set | ||
898 | # CONFIG_SND_RME96 is not set | ||
899 | # CONFIG_SND_RME9652 is not set | ||
900 | # CONFIG_SND_SONICVIBES is not set | ||
901 | # CONFIG_SND_TRIDENT is not set | ||
902 | # CONFIG_SND_VIA82XX is not set | ||
903 | # CONFIG_SND_VIA82XX_MODEM is not set | ||
904 | # CONFIG_SND_VX222 is not set | ||
905 | # CONFIG_SND_YMFPCI is not set | ||
906 | |||
907 | # | ||
908 | # ALSA PowerMac devices | ||
909 | # | ||
910 | |||
911 | # | ||
912 | # ALSA PowerPC devices | ||
913 | # | ||
914 | |||
915 | # | ||
916 | # System on Chip audio support | ||
917 | # | ||
918 | CONFIG_SND_SOC=y | ||
919 | |||
920 | # | ||
921 | # SoC Audio support for SuperH | ||
922 | # | ||
923 | |||
924 | # | ||
925 | # ALSA SoC audio for Freescale SOCs | ||
926 | # | ||
927 | CONFIG_SND_SOC_MPC8610=y | ||
928 | CONFIG_SND_SOC_MPC8610_HPCD=y | ||
929 | CONFIG_SND_SOC_CS4270=y | ||
930 | CONFIG_SND_SOC_CS4270_VD33_ERRATA=y | ||
931 | |||
767 | CONFIG_HID_SUPPORT=y | 932 | CONFIG_HID_SUPPORT=y |
768 | CONFIG_HID=y | 933 | CONFIG_HID=y |
769 | # CONFIG_HID_DEBUG is not set | 934 | # CONFIG_HID_DEBUG is not set |
diff --git a/arch/powerpc/configs/storcenter_defconfig b/arch/powerpc/configs/storcenter_defconfig new file mode 100644 index 000000000000..a034a5e452ef --- /dev/null +++ b/arch/powerpc/configs/storcenter_defconfig | |||
@@ -0,0 +1,1174 @@ | |||
1 | # | ||
2 | # Automatically generated make config: don't edit | ||
3 | # Linux kernel version: 2.6.24-rc6 | ||
4 | # Tue Jan 8 09:33:54 2008 | ||
5 | # | ||
6 | # CONFIG_PPC64 is not set | ||
7 | |||
8 | # | ||
9 | # Processor support | ||
10 | # | ||
11 | CONFIG_6xx=y | ||
12 | # CONFIG_PPC_85xx is not set | ||
13 | # CONFIG_PPC_8xx is not set | ||
14 | # CONFIG_40x is not set | ||
15 | # CONFIG_44x is not set | ||
16 | # CONFIG_E200 is not set | ||
17 | CONFIG_PPC_FPU=y | ||
18 | # CONFIG_ALTIVEC is not set | ||
19 | CONFIG_PPC_STD_MMU=y | ||
20 | CONFIG_PPC_STD_MMU_32=y | ||
21 | # CONFIG_PPC_MM_SLICES is not set | ||
22 | # CONFIG_SMP is not set | ||
23 | CONFIG_PPC32=y | ||
24 | CONFIG_WORD_SIZE=32 | ||
25 | CONFIG_PPC_MERGE=y | ||
26 | CONFIG_MMU=y | ||
27 | CONFIG_GENERIC_CMOS_UPDATE=y | ||
28 | CONFIG_GENERIC_TIME=y | ||
29 | CONFIG_GENERIC_TIME_VSYSCALL=y | ||
30 | CONFIG_GENERIC_CLOCKEVENTS=y | ||
31 | CONFIG_GENERIC_HARDIRQS=y | ||
32 | CONFIG_IRQ_PER_CPU=y | ||
33 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | ||
34 | CONFIG_ARCH_HAS_ILOG2_U32=y | ||
35 | CONFIG_GENERIC_HWEIGHT=y | ||
36 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
37 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
38 | # CONFIG_ARCH_NO_VIRT_TO_BUS is not set | ||
39 | CONFIG_PPC=y | ||
40 | CONFIG_EARLY_PRINTK=y | ||
41 | CONFIG_GENERIC_NVRAM=y | ||
42 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | ||
43 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y | ||
44 | CONFIG_PPC_OF=y | ||
45 | CONFIG_OF=y | ||
46 | CONFIG_PPC_UDBG_16550=y | ||
47 | # CONFIG_GENERIC_TBSYNC is not set | ||
48 | CONFIG_AUDIT_ARCH=y | ||
49 | CONFIG_GENERIC_BUG=y | ||
50 | # CONFIG_DEFAULT_UIMAGE is not set | ||
51 | # CONFIG_PPC_DCR_NATIVE is not set | ||
52 | # CONFIG_PPC_DCR_MMIO is not set | ||
53 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | ||
54 | |||
55 | # | ||
56 | # General setup | ||
57 | # | ||
58 | CONFIG_EXPERIMENTAL=y | ||
59 | CONFIG_BROKEN_ON_SMP=y | ||
60 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
61 | CONFIG_LOCALVERSION="" | ||
62 | CONFIG_LOCALVERSION_AUTO=y | ||
63 | CONFIG_SWAP=y | ||
64 | CONFIG_SYSVIPC=y | ||
65 | CONFIG_SYSVIPC_SYSCTL=y | ||
66 | # CONFIG_POSIX_MQUEUE is not set | ||
67 | # CONFIG_BSD_PROCESS_ACCT is not set | ||
68 | # CONFIG_TASKSTATS is not set | ||
69 | # CONFIG_USER_NS is not set | ||
70 | # CONFIG_PID_NS is not set | ||
71 | # CONFIG_AUDIT is not set | ||
72 | # CONFIG_IKCONFIG is not set | ||
73 | CONFIG_LOG_BUF_SHIFT=14 | ||
74 | # CONFIG_CGROUPS is not set | ||
75 | CONFIG_FAIR_GROUP_SCHED=y | ||
76 | CONFIG_FAIR_USER_SCHED=y | ||
77 | # CONFIG_FAIR_CGROUP_SCHED is not set | ||
78 | CONFIG_SYSFS_DEPRECATED=y | ||
79 | # CONFIG_RELAY is not set | ||
80 | # CONFIG_BLK_DEV_INITRD is not set | ||
81 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | ||
82 | CONFIG_SYSCTL=y | ||
83 | CONFIG_EMBEDDED=y | ||
84 | CONFIG_SYSCTL_SYSCALL=y | ||
85 | # CONFIG_KALLSYMS is not set | ||
86 | CONFIG_HOTPLUG=y | ||
87 | CONFIG_PRINTK=y | ||
88 | CONFIG_BUG=y | ||
89 | CONFIG_ELF_CORE=y | ||
90 | CONFIG_BASE_FULL=y | ||
91 | CONFIG_FUTEX=y | ||
92 | CONFIG_ANON_INODES=y | ||
93 | CONFIG_EPOLL=y | ||
94 | CONFIG_SIGNALFD=y | ||
95 | CONFIG_EVENTFD=y | ||
96 | CONFIG_SHMEM=y | ||
97 | CONFIG_VM_EVENT_COUNTERS=y | ||
98 | CONFIG_SLUB_DEBUG=y | ||
99 | # CONFIG_SLAB is not set | ||
100 | CONFIG_SLUB=y | ||
101 | # CONFIG_SLOB is not set | ||
102 | CONFIG_RT_MUTEXES=y | ||
103 | # CONFIG_TINY_SHMEM is not set | ||
104 | CONFIG_BASE_SMALL=0 | ||
105 | CONFIG_MODULES=y | ||
106 | CONFIG_MODULE_UNLOAD=y | ||
107 | # CONFIG_MODULE_FORCE_UNLOAD is not set | ||
108 | # CONFIG_MODVERSIONS is not set | ||
109 | # CONFIG_MODULE_SRCVERSION_ALL is not set | ||
110 | CONFIG_KMOD=y | ||
111 | CONFIG_BLOCK=y | ||
112 | CONFIG_LBD=y | ||
113 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
114 | # CONFIG_LSF is not set | ||
115 | # CONFIG_BLK_DEV_BSG is not set | ||
116 | |||
117 | # | ||
118 | # IO Schedulers | ||
119 | # | ||
120 | CONFIG_IOSCHED_NOOP=y | ||
121 | CONFIG_IOSCHED_AS=y | ||
122 | CONFIG_IOSCHED_DEADLINE=y | ||
123 | CONFIG_IOSCHED_CFQ=y | ||
124 | # CONFIG_DEFAULT_AS is not set | ||
125 | # CONFIG_DEFAULT_DEADLINE is not set | ||
126 | CONFIG_DEFAULT_CFQ=y | ||
127 | # CONFIG_DEFAULT_NOOP is not set | ||
128 | CONFIG_DEFAULT_IOSCHED="cfq" | ||
129 | |||
130 | # | ||
131 | # Platform support | ||
132 | # | ||
133 | CONFIG_PPC_MULTIPLATFORM=y | ||
134 | # CONFIG_PPC_82xx is not set | ||
135 | # CONFIG_PPC_83xx is not set | ||
136 | # CONFIG_PPC_86xx is not set | ||
137 | CONFIG_CLASSIC32=y | ||
138 | # CONFIG_PPC_CHRP is not set | ||
139 | # CONFIG_PPC_MPC52xx is not set | ||
140 | # CONFIG_PPC_MPC5200 is not set | ||
141 | # CONFIG_PPC_EFIKA is not set | ||
142 | # CONFIG_PPC_LITE5200 is not set | ||
143 | # CONFIG_PPC_PMAC is not set | ||
144 | # CONFIG_PPC_CELL is not set | ||
145 | # CONFIG_PPC_CELL_NATIVE is not set | ||
146 | # CONFIG_PQ2ADS is not set | ||
147 | CONFIG_EMBEDDED6xx=y | ||
148 | # CONFIG_LINKSTATION is not set | ||
149 | CONFIG_STORCENTER=y | ||
150 | # CONFIG_MPC7448HPC2 is not set | ||
151 | # CONFIG_PPC_HOLLY is not set | ||
152 | # CONFIG_PPC_PRPMC2800 is not set | ||
153 | CONFIG_MPC10X_BRIDGE=y | ||
154 | CONFIG_MPC10X_OPENPIC=y | ||
155 | # CONFIG_MPC10X_STORE_GATHERING is not set | ||
156 | CONFIG_MPIC=y | ||
157 | # CONFIG_MPIC_WEIRD is not set | ||
158 | # CONFIG_PPC_I8259 is not set | ||
159 | # CONFIG_PPC_RTAS is not set | ||
160 | # CONFIG_MMIO_NVRAM is not set | ||
161 | # CONFIG_PPC_MPC106 is not set | ||
162 | # CONFIG_PPC_970_NAP is not set | ||
163 | # CONFIG_PPC_INDIRECT_IO is not set | ||
164 | # CONFIG_GENERIC_IOMAP is not set | ||
165 | # CONFIG_CPU_FREQ is not set | ||
166 | # CONFIG_TAU is not set | ||
167 | # CONFIG_CPM2 is not set | ||
168 | # CONFIG_FSL_ULI1575 is not set | ||
169 | |||
170 | # | ||
171 | # Kernel options | ||
172 | # | ||
173 | # CONFIG_HIGHMEM is not set | ||
174 | # CONFIG_TICK_ONESHOT is not set | ||
175 | # CONFIG_NO_HZ is not set | ||
176 | # CONFIG_HIGH_RES_TIMERS is not set | ||
177 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | ||
178 | CONFIG_HZ_100=y | ||
179 | # CONFIG_HZ_250 is not set | ||
180 | # CONFIG_HZ_300 is not set | ||
181 | # CONFIG_HZ_1000 is not set | ||
182 | CONFIG_HZ=100 | ||
183 | CONFIG_PREEMPT_NONE=y | ||
184 | # CONFIG_PREEMPT_VOLUNTARY is not set | ||
185 | # CONFIG_PREEMPT is not set | ||
186 | CONFIG_BINFMT_ELF=y | ||
187 | CONFIG_BINFMT_MISC=y | ||
188 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | ||
189 | # CONFIG_KEXEC is not set | ||
190 | CONFIG_ARCH_FLATMEM_ENABLE=y | ||
191 | CONFIG_ARCH_POPULATES_NODE_MAP=y | ||
192 | CONFIG_SELECT_MEMORY_MODEL=y | ||
193 | CONFIG_FLATMEM_MANUAL=y | ||
194 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
195 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
196 | CONFIG_FLATMEM=y | ||
197 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
198 | # CONFIG_SPARSEMEM_STATIC is not set | ||
199 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | ||
200 | CONFIG_SPLIT_PTLOCK_CPUS=4 | ||
201 | # CONFIG_RESOURCES_64BIT is not set | ||
202 | CONFIG_ZONE_DMA_FLAG=1 | ||
203 | CONFIG_BOUNCE=y | ||
204 | CONFIG_VIRT_TO_BUS=y | ||
205 | CONFIG_PROC_DEVICETREE=y | ||
206 | CONFIG_CMDLINE_BOOL=y | ||
207 | CONFIG_CMDLINE="console=ttyS0,115200" | ||
208 | # CONFIG_PM is not set | ||
209 | CONFIG_SUSPEND_UP_POSSIBLE=y | ||
210 | CONFIG_HIBERNATION_UP_POSSIBLE=y | ||
211 | # CONFIG_SECCOMP is not set | ||
212 | CONFIG_WANT_DEVICE_TREE=y | ||
213 | CONFIG_DEVICE_TREE="storcenter.dts" | ||
214 | CONFIG_ISA_DMA_API=y | ||
215 | |||
216 | # | ||
217 | # Bus options | ||
218 | # | ||
219 | CONFIG_ZONE_DMA=y | ||
220 | CONFIG_GENERIC_ISA_DMA=y | ||
221 | CONFIG_PPC_INDIRECT_PCI=y | ||
222 | CONFIG_FSL_SOC=y | ||
223 | CONFIG_PCI=y | ||
224 | CONFIG_PCI_DOMAINS=y | ||
225 | CONFIG_PCI_SYSCALL=y | ||
226 | # CONFIG_PCIEPORTBUS is not set | ||
227 | CONFIG_ARCH_SUPPORTS_MSI=y | ||
228 | # CONFIG_PCI_MSI is not set | ||
229 | CONFIG_PCI_LEGACY=y | ||
230 | # CONFIG_PCCARD is not set | ||
231 | # CONFIG_HOTPLUG_PCI is not set | ||
232 | |||
233 | # | ||
234 | # Advanced setup | ||
235 | # | ||
236 | # CONFIG_ADVANCED_OPTIONS is not set | ||
237 | |||
238 | # | ||
239 | # Default settings for advanced configuration options are used | ||
240 | # | ||
241 | CONFIG_HIGHMEM_START=0xfe000000 | ||
242 | CONFIG_LOWMEM_SIZE=0x30000000 | ||
243 | CONFIG_KERNEL_START=0xc0000000 | ||
244 | CONFIG_TASK_SIZE=0xc0000000 | ||
245 | CONFIG_BOOT_LOAD=0x00800000 | ||
246 | |||
247 | # | ||
248 | # Networking | ||
249 | # | ||
250 | CONFIG_NET=y | ||
251 | |||
252 | # | ||
253 | # Networking options | ||
254 | # | ||
255 | CONFIG_PACKET=m | ||
256 | # CONFIG_PACKET_MMAP is not set | ||
257 | CONFIG_UNIX=y | ||
258 | # CONFIG_NET_KEY is not set | ||
259 | CONFIG_INET=y | ||
260 | CONFIG_IP_MULTICAST=y | ||
261 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
262 | CONFIG_IP_FIB_HASH=y | ||
263 | CONFIG_IP_PNP=y | ||
264 | CONFIG_IP_PNP_DHCP=y | ||
265 | # CONFIG_IP_PNP_BOOTP is not set | ||
266 | # CONFIG_IP_PNP_RARP is not set | ||
267 | # CONFIG_NET_IPIP is not set | ||
268 | # CONFIG_NET_IPGRE is not set | ||
269 | # CONFIG_IP_MROUTE is not set | ||
270 | # CONFIG_ARPD is not set | ||
271 | # CONFIG_SYN_COOKIES is not set | ||
272 | # CONFIG_INET_AH is not set | ||
273 | # CONFIG_INET_ESP is not set | ||
274 | # CONFIG_INET_IPCOMP is not set | ||
275 | # CONFIG_INET_XFRM_TUNNEL is not set | ||
276 | # CONFIG_INET_TUNNEL is not set | ||
277 | # CONFIG_INET_XFRM_MODE_TRANSPORT is not set | ||
278 | # CONFIG_INET_XFRM_MODE_TUNNEL is not set | ||
279 | # CONFIG_INET_XFRM_MODE_BEET is not set | ||
280 | # CONFIG_INET_LRO is not set | ||
281 | CONFIG_INET_DIAG=y | ||
282 | CONFIG_INET_TCP_DIAG=y | ||
283 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
284 | CONFIG_TCP_CONG_CUBIC=y | ||
285 | CONFIG_DEFAULT_TCP_CONG="cubic" | ||
286 | # CONFIG_TCP_MD5SIG is not set | ||
287 | # CONFIG_IPV6 is not set | ||
288 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
289 | # CONFIG_INET6_TUNNEL is not set | ||
290 | # CONFIG_NETWORK_SECMARK is not set | ||
291 | # CONFIG_NETFILTER is not set | ||
292 | # CONFIG_IP_DCCP is not set | ||
293 | # CONFIG_IP_SCTP is not set | ||
294 | # CONFIG_TIPC is not set | ||
295 | # CONFIG_ATM is not set | ||
296 | # CONFIG_BRIDGE is not set | ||
297 | # CONFIG_VLAN_8021Q is not set | ||
298 | # CONFIG_DECNET is not set | ||
299 | # CONFIG_LLC2 is not set | ||
300 | # CONFIG_IPX is not set | ||
301 | # CONFIG_ATALK is not set | ||
302 | # CONFIG_X25 is not set | ||
303 | # CONFIG_LAPB is not set | ||
304 | # CONFIG_ECONET is not set | ||
305 | # CONFIG_WAN_ROUTER is not set | ||
306 | # CONFIG_NET_SCHED is not set | ||
307 | |||
308 | # | ||
309 | # Network testing | ||
310 | # | ||
311 | # CONFIG_NET_PKTGEN is not set | ||
312 | # CONFIG_HAMRADIO is not set | ||
313 | # CONFIG_IRDA is not set | ||
314 | # CONFIG_BT is not set | ||
315 | # CONFIG_AF_RXRPC is not set | ||
316 | |||
317 | # | ||
318 | # Wireless | ||
319 | # | ||
320 | # CONFIG_CFG80211 is not set | ||
321 | # CONFIG_WIRELESS_EXT is not set | ||
322 | # CONFIG_MAC80211 is not set | ||
323 | # CONFIG_IEEE80211 is not set | ||
324 | # CONFIG_RFKILL is not set | ||
325 | # CONFIG_NET_9P is not set | ||
326 | |||
327 | # | ||
328 | # Device Drivers | ||
329 | # | ||
330 | |||
331 | # | ||
332 | # Generic Driver Options | ||
333 | # | ||
334 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | ||
335 | CONFIG_STANDALONE=y | ||
336 | CONFIG_PREVENT_FIRMWARE_BUILD=y | ||
337 | # CONFIG_FW_LOADER is not set | ||
338 | # CONFIG_SYS_HYPERVISOR is not set | ||
339 | # CONFIG_CONNECTOR is not set | ||
340 | CONFIG_MTD=y | ||
341 | # CONFIG_MTD_DEBUG is not set | ||
342 | # CONFIG_MTD_CONCAT is not set | ||
343 | CONFIG_MTD_PARTITIONS=y | ||
344 | # CONFIG_MTD_REDBOOT_PARTS is not set | ||
345 | # CONFIG_MTD_CMDLINE_PARTS is not set | ||
346 | |||
347 | # | ||
348 | # User Modules And Translation Layers | ||
349 | # | ||
350 | CONFIG_MTD_CHAR=y | ||
351 | CONFIG_MTD_BLKDEVS=y | ||
352 | CONFIG_MTD_BLOCK=y | ||
353 | CONFIG_FTL=y | ||
354 | CONFIG_NFTL=y | ||
355 | CONFIG_NFTL_RW=y | ||
356 | # CONFIG_INFTL is not set | ||
357 | # CONFIG_RFD_FTL is not set | ||
358 | # CONFIG_SSFDC is not set | ||
359 | # CONFIG_MTD_OOPS is not set | ||
360 | |||
361 | # | ||
362 | # RAM/ROM/Flash chip drivers | ||
363 | # | ||
364 | CONFIG_MTD_CFI=y | ||
365 | # CONFIG_MTD_JEDECPROBE is not set | ||
366 | CONFIG_MTD_GEN_PROBE=y | ||
367 | # CONFIG_MTD_CFI_ADV_OPTIONS is not set | ||
368 | CONFIG_MTD_MAP_BANK_WIDTH_1=y | ||
369 | CONFIG_MTD_MAP_BANK_WIDTH_2=y | ||
370 | CONFIG_MTD_MAP_BANK_WIDTH_4=y | ||
371 | # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set | ||
372 | # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set | ||
373 | # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set | ||
374 | CONFIG_MTD_CFI_I1=y | ||
375 | CONFIG_MTD_CFI_I2=y | ||
376 | # CONFIG_MTD_CFI_I4 is not set | ||
377 | # CONFIG_MTD_CFI_I8 is not set | ||
378 | # CONFIG_MTD_CFI_INTELEXT is not set | ||
379 | CONFIG_MTD_CFI_AMDSTD=y | ||
380 | # CONFIG_MTD_CFI_STAA is not set | ||
381 | CONFIG_MTD_CFI_UTIL=y | ||
382 | # CONFIG_MTD_RAM is not set | ||
383 | # CONFIG_MTD_ROM is not set | ||
384 | # CONFIG_MTD_ABSENT is not set | ||
385 | |||
386 | # | ||
387 | # Mapping drivers for chip access | ||
388 | # | ||
389 | # CONFIG_MTD_COMPLEX_MAPPINGS is not set | ||
390 | CONFIG_MTD_PHYSMAP=y | ||
391 | CONFIG_MTD_PHYSMAP_START=0xFF800000 | ||
392 | CONFIG_MTD_PHYSMAP_LEN=0x00800000 | ||
393 | CONFIG_MTD_PHYSMAP_BANKWIDTH=1 | ||
394 | # CONFIG_MTD_PHYSMAP_OF is not set | ||
395 | # CONFIG_MTD_INTEL_VR_NOR is not set | ||
396 | # CONFIG_MTD_PLATRAM is not set | ||
397 | |||
398 | # | ||
399 | # Self-contained MTD device drivers | ||
400 | # | ||
401 | # CONFIG_MTD_PMC551 is not set | ||
402 | # CONFIG_MTD_SLRAM is not set | ||
403 | # CONFIG_MTD_PHRAM is not set | ||
404 | # CONFIG_MTD_MTDRAM is not set | ||
405 | # CONFIG_MTD_BLOCK2MTD is not set | ||
406 | |||
407 | # | ||
408 | # Disk-On-Chip Device Drivers | ||
409 | # | ||
410 | # CONFIG_MTD_DOC2000 is not set | ||
411 | # CONFIG_MTD_DOC2001 is not set | ||
412 | # CONFIG_MTD_DOC2001PLUS is not set | ||
413 | # CONFIG_MTD_NAND is not set | ||
414 | # CONFIG_MTD_ONENAND is not set | ||
415 | |||
416 | # | ||
417 | # UBI - Unsorted block images | ||
418 | # | ||
419 | # CONFIG_MTD_UBI is not set | ||
420 | CONFIG_OF_DEVICE=y | ||
421 | # CONFIG_PARPORT is not set | ||
422 | CONFIG_BLK_DEV=y | ||
423 | # CONFIG_BLK_DEV_FD is not set | ||
424 | # CONFIG_BLK_CPQ_DA is not set | ||
425 | # CONFIG_BLK_CPQ_CISS_DA is not set | ||
426 | # CONFIG_BLK_DEV_DAC960 is not set | ||
427 | # CONFIG_BLK_DEV_UMEM is not set | ||
428 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
429 | # CONFIG_BLK_DEV_LOOP is not set | ||
430 | # CONFIG_BLK_DEV_NBD is not set | ||
431 | # CONFIG_BLK_DEV_SX8 is not set | ||
432 | # CONFIG_BLK_DEV_UB is not set | ||
433 | # CONFIG_BLK_DEV_RAM is not set | ||
434 | # CONFIG_CDROM_PKTCDVD is not set | ||
435 | # CONFIG_ATA_OVER_ETH is not set | ||
436 | CONFIG_MISC_DEVICES=y | ||
437 | # CONFIG_PHANTOM is not set | ||
438 | # CONFIG_EEPROM_93CX6 is not set | ||
439 | # CONFIG_SGI_IOC4 is not set | ||
440 | # CONFIG_TIFM_CORE is not set | ||
441 | CONFIG_IDE=y | ||
442 | CONFIG_IDE_MAX_HWIFS=4 | ||
443 | CONFIG_BLK_DEV_IDE=y | ||
444 | |||
445 | # | ||
446 | # Please see Documentation/ide.txt for help/info on IDE drives | ||
447 | # | ||
448 | # CONFIG_BLK_DEV_IDE_SATA is not set | ||
449 | CONFIG_BLK_DEV_IDEDISK=y | ||
450 | CONFIG_IDEDISK_MULTI_MODE=y | ||
451 | # CONFIG_BLK_DEV_IDECD is not set | ||
452 | # CONFIG_BLK_DEV_IDETAPE is not set | ||
453 | # CONFIG_BLK_DEV_IDEFLOPPY is not set | ||
454 | # CONFIG_BLK_DEV_IDESCSI is not set | ||
455 | # CONFIG_IDE_TASK_IOCTL is not set | ||
456 | CONFIG_IDE_PROC_FS=y | ||
457 | |||
458 | # | ||
459 | # IDE chipset support/bugfixes | ||
460 | # | ||
461 | CONFIG_IDE_GENERIC=y | ||
462 | # CONFIG_BLK_DEV_PLATFORM is not set | ||
463 | |||
464 | # | ||
465 | # PCI IDE chipsets support | ||
466 | # | ||
467 | CONFIG_BLK_DEV_IDEPCI=y | ||
468 | # CONFIG_IDEPCI_SHARE_IRQ is not set | ||
469 | CONFIG_IDEPCI_PCIBUS_ORDER=y | ||
470 | # CONFIG_BLK_DEV_GENERIC is not set | ||
471 | # CONFIG_BLK_DEV_OPTI621 is not set | ||
472 | CONFIG_BLK_DEV_IDEDMA_PCI=y | ||
473 | # CONFIG_BLK_DEV_AEC62XX is not set | ||
474 | # CONFIG_BLK_DEV_ALI15X3 is not set | ||
475 | # CONFIG_BLK_DEV_AMD74XX is not set | ||
476 | # CONFIG_BLK_DEV_CMD64X is not set | ||
477 | # CONFIG_BLK_DEV_TRIFLEX is not set | ||
478 | # CONFIG_BLK_DEV_CY82C693 is not set | ||
479 | # CONFIG_BLK_DEV_CS5520 is not set | ||
480 | # CONFIG_BLK_DEV_CS5530 is not set | ||
481 | # CONFIG_BLK_DEV_HPT34X is not set | ||
482 | # CONFIG_BLK_DEV_HPT366 is not set | ||
483 | # CONFIG_BLK_DEV_JMICRON is not set | ||
484 | # CONFIG_BLK_DEV_SC1200 is not set | ||
485 | # CONFIG_BLK_DEV_PIIX is not set | ||
486 | # CONFIG_BLK_DEV_IT8213 is not set | ||
487 | # CONFIG_BLK_DEV_IT821X is not set | ||
488 | # CONFIG_BLK_DEV_NS87415 is not set | ||
489 | # CONFIG_BLK_DEV_PDC202XX_OLD is not set | ||
490 | # CONFIG_BLK_DEV_PDC202XX_NEW is not set | ||
491 | # CONFIG_BLK_DEV_SVWKS is not set | ||
492 | # CONFIG_BLK_DEV_SIIMAGE is not set | ||
493 | # CONFIG_BLK_DEV_SL82C105 is not set | ||
494 | # CONFIG_BLK_DEV_SLC90E66 is not set | ||
495 | # CONFIG_BLK_DEV_TRM290 is not set | ||
496 | CONFIG_BLK_DEV_VIA82CXXX=y | ||
497 | # CONFIG_BLK_DEV_TC86C001 is not set | ||
498 | # CONFIG_IDE_ARM is not set | ||
499 | CONFIG_BLK_DEV_IDEDMA=y | ||
500 | CONFIG_IDE_ARCH_OBSOLETE_INIT=y | ||
501 | # CONFIG_BLK_DEV_HD is not set | ||
502 | |||
503 | # | ||
504 | # SCSI device support | ||
505 | # | ||
506 | # CONFIG_RAID_ATTRS is not set | ||
507 | CONFIG_SCSI=y | ||
508 | CONFIG_SCSI_DMA=y | ||
509 | # CONFIG_SCSI_TGT is not set | ||
510 | # CONFIG_SCSI_NETLINK is not set | ||
511 | CONFIG_SCSI_PROC_FS=y | ||
512 | |||
513 | # | ||
514 | # SCSI support type (disk, tape, CD-ROM) | ||
515 | # | ||
516 | CONFIG_BLK_DEV_SD=y | ||
517 | # CONFIG_CHR_DEV_ST is not set | ||
518 | # CONFIG_CHR_DEV_OSST is not set | ||
519 | CONFIG_BLK_DEV_SR=y | ||
520 | # CONFIG_BLK_DEV_SR_VENDOR is not set | ||
521 | # CONFIG_CHR_DEV_SG is not set | ||
522 | # CONFIG_CHR_DEV_SCH is not set | ||
523 | |||
524 | # | ||
525 | # Some SCSI devices (e.g. CD jukebox) support multiple LUNs | ||
526 | # | ||
527 | # CONFIG_SCSI_MULTI_LUN is not set | ||
528 | # CONFIG_SCSI_CONSTANTS is not set | ||
529 | # CONFIG_SCSI_LOGGING is not set | ||
530 | # CONFIG_SCSI_SCAN_ASYNC is not set | ||
531 | CONFIG_SCSI_WAIT_SCAN=m | ||
532 | |||
533 | # | ||
534 | # SCSI Transports | ||
535 | # | ||
536 | CONFIG_SCSI_SPI_ATTRS=y | ||
537 | # CONFIG_SCSI_FC_ATTRS is not set | ||
538 | # CONFIG_SCSI_ISCSI_ATTRS is not set | ||
539 | # CONFIG_SCSI_SAS_LIBSAS is not set | ||
540 | # CONFIG_SCSI_SRP_ATTRS is not set | ||
541 | CONFIG_SCSI_LOWLEVEL=y | ||
542 | # CONFIG_ISCSI_TCP is not set | ||
543 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | ||
544 | # CONFIG_SCSI_3W_9XXX is not set | ||
545 | # CONFIG_SCSI_ACARD is not set | ||
546 | # CONFIG_SCSI_AACRAID is not set | ||
547 | # CONFIG_SCSI_AIC7XXX is not set | ||
548 | # CONFIG_SCSI_AIC7XXX_OLD is not set | ||
549 | # CONFIG_SCSI_AIC79XX is not set | ||
550 | # CONFIG_SCSI_AIC94XX is not set | ||
551 | # CONFIG_SCSI_DPT_I2O is not set | ||
552 | # CONFIG_SCSI_ADVANSYS is not set | ||
553 | # CONFIG_SCSI_ARCMSR is not set | ||
554 | # CONFIG_MEGARAID_NEWGEN is not set | ||
555 | # CONFIG_MEGARAID_LEGACY is not set | ||
556 | # CONFIG_MEGARAID_SAS is not set | ||
557 | # CONFIG_SCSI_HPTIOP is not set | ||
558 | # CONFIG_SCSI_BUSLOGIC is not set | ||
559 | # CONFIG_SCSI_DMX3191D is not set | ||
560 | # CONFIG_SCSI_EATA is not set | ||
561 | # CONFIG_SCSI_FUTURE_DOMAIN is not set | ||
562 | # CONFIG_SCSI_GDTH is not set | ||
563 | # CONFIG_SCSI_IPS is not set | ||
564 | # CONFIG_SCSI_INITIO is not set | ||
565 | # CONFIG_SCSI_INIA100 is not set | ||
566 | # CONFIG_SCSI_STEX is not set | ||
567 | # CONFIG_SCSI_SYM53C8XX_2 is not set | ||
568 | # CONFIG_SCSI_QLOGIC_1280 is not set | ||
569 | # CONFIG_SCSI_QLA_FC is not set | ||
570 | # CONFIG_SCSI_QLA_ISCSI is not set | ||
571 | # CONFIG_SCSI_LPFC is not set | ||
572 | # CONFIG_SCSI_DC395x is not set | ||
573 | # CONFIG_SCSI_DC390T is not set | ||
574 | # CONFIG_SCSI_NSP32 is not set | ||
575 | # CONFIG_SCSI_DEBUG is not set | ||
576 | # CONFIG_SCSI_SRP is not set | ||
577 | # CONFIG_ATA is not set | ||
578 | CONFIG_MD=y | ||
579 | CONFIG_BLK_DEV_MD=y | ||
580 | CONFIG_MD_LINEAR=y | ||
581 | CONFIG_MD_RAID0=y | ||
582 | CONFIG_MD_RAID1=y | ||
583 | # CONFIG_MD_RAID10 is not set | ||
584 | CONFIG_MD_RAID456=y | ||
585 | CONFIG_MD_RAID5_RESHAPE=y | ||
586 | # CONFIG_MD_MULTIPATH is not set | ||
587 | # CONFIG_MD_FAULTY is not set | ||
588 | # CONFIG_BLK_DEV_DM is not set | ||
589 | # CONFIG_FUSION is not set | ||
590 | |||
591 | # | ||
592 | # IEEE 1394 (FireWire) support | ||
593 | # | ||
594 | # CONFIG_FIREWIRE is not set | ||
595 | # CONFIG_IEEE1394 is not set | ||
596 | # CONFIG_I2O is not set | ||
597 | # CONFIG_MACINTOSH_DRIVERS is not set | ||
598 | CONFIG_NETDEVICES=y | ||
599 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
600 | CONFIG_DUMMY=m | ||
601 | # CONFIG_BONDING is not set | ||
602 | # CONFIG_MACVLAN is not set | ||
603 | # CONFIG_EQUALIZER is not set | ||
604 | # CONFIG_TUN is not set | ||
605 | # CONFIG_VETH is not set | ||
606 | # CONFIG_IP1000 is not set | ||
607 | # CONFIG_ARCNET is not set | ||
608 | # CONFIG_NET_ETHERNET is not set | ||
609 | CONFIG_NETDEV_1000=y | ||
610 | # CONFIG_ACENIC is not set | ||
611 | # CONFIG_DL2K is not set | ||
612 | # CONFIG_E1000 is not set | ||
613 | # CONFIG_E1000E is not set | ||
614 | # CONFIG_NS83820 is not set | ||
615 | # CONFIG_HAMACHI is not set | ||
616 | # CONFIG_YELLOWFIN is not set | ||
617 | CONFIG_R8169=y | ||
618 | # CONFIG_R8169_NAPI is not set | ||
619 | # CONFIG_SIS190 is not set | ||
620 | # CONFIG_SKGE is not set | ||
621 | # CONFIG_SKY2 is not set | ||
622 | # CONFIG_SK98LIN is not set | ||
623 | # CONFIG_VIA_VELOCITY is not set | ||
624 | # CONFIG_TIGON3 is not set | ||
625 | # CONFIG_BNX2 is not set | ||
626 | # CONFIG_MV643XX_ETH is not set | ||
627 | # CONFIG_QLA3XXX is not set | ||
628 | # CONFIG_ATL1 is not set | ||
629 | # CONFIG_NETDEV_10000 is not set | ||
630 | # CONFIG_TR is not set | ||
631 | |||
632 | # | ||
633 | # Wireless LAN | ||
634 | # | ||
635 | # CONFIG_WLAN_PRE80211 is not set | ||
636 | # CONFIG_WLAN_80211 is not set | ||
637 | |||
638 | # | ||
639 | # USB Network Adapters | ||
640 | # | ||
641 | # CONFIG_USB_CATC is not set | ||
642 | # CONFIG_USB_KAWETH is not set | ||
643 | # CONFIG_USB_PEGASUS is not set | ||
644 | # CONFIG_USB_RTL8150 is not set | ||
645 | # CONFIG_USB_USBNET is not set | ||
646 | # CONFIG_WAN is not set | ||
647 | # CONFIG_FDDI is not set | ||
648 | # CONFIG_HIPPI is not set | ||
649 | # CONFIG_PPP is not set | ||
650 | # CONFIG_SLIP is not set | ||
651 | # CONFIG_NET_FC is not set | ||
652 | # CONFIG_SHAPER is not set | ||
653 | # CONFIG_NETCONSOLE is not set | ||
654 | # CONFIG_NETPOLL is not set | ||
655 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
656 | # CONFIG_ISDN is not set | ||
657 | # CONFIG_PHONE is not set | ||
658 | |||
659 | # | ||
660 | # Input device support | ||
661 | # | ||
662 | # CONFIG_INPUT is not set | ||
663 | |||
664 | # | ||
665 | # Hardware I/O ports | ||
666 | # | ||
667 | # CONFIG_SERIO is not set | ||
668 | # CONFIG_GAMEPORT is not set | ||
669 | |||
670 | # | ||
671 | # Character devices | ||
672 | # | ||
673 | # CONFIG_VT is not set | ||
674 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
675 | |||
676 | # | ||
677 | # Serial drivers | ||
678 | # | ||
679 | CONFIG_SERIAL_8250=y | ||
680 | CONFIG_SERIAL_8250_CONSOLE=y | ||
681 | # CONFIG_SERIAL_8250_PCI is not set | ||
682 | CONFIG_SERIAL_8250_NR_UARTS=2 | ||
683 | CONFIG_SERIAL_8250_RUNTIME_UARTS=2 | ||
684 | # CONFIG_SERIAL_8250_EXTENDED is not set | ||
685 | |||
686 | # | ||
687 | # Non-8250 serial port support | ||
688 | # | ||
689 | # CONFIG_SERIAL_UARTLITE is not set | ||
690 | CONFIG_SERIAL_CORE=y | ||
691 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
692 | # CONFIG_SERIAL_JSM is not set | ||
693 | # CONFIG_SERIAL_OF_PLATFORM is not set | ||
694 | CONFIG_UNIX98_PTYS=y | ||
695 | CONFIG_LEGACY_PTYS=y | ||
696 | CONFIG_LEGACY_PTY_COUNT=256 | ||
697 | # CONFIG_IPMI_HANDLER is not set | ||
698 | CONFIG_HW_RANDOM=m | ||
699 | CONFIG_NVRAM=y | ||
700 | CONFIG_GEN_RTC=y | ||
701 | # CONFIG_GEN_RTC_X is not set | ||
702 | # CONFIG_R3964 is not set | ||
703 | # CONFIG_APPLICOM is not set | ||
704 | # CONFIG_RAW_DRIVER is not set | ||
705 | # CONFIG_TCG_TPM is not set | ||
706 | CONFIG_DEVPORT=y | ||
707 | CONFIG_I2C=y | ||
708 | CONFIG_I2C_BOARDINFO=y | ||
709 | CONFIG_I2C_CHARDEV=y | ||
710 | |||
711 | # | ||
712 | # I2C Algorithms | ||
713 | # | ||
714 | # CONFIG_I2C_ALGOBIT is not set | ||
715 | # CONFIG_I2C_ALGOPCF is not set | ||
716 | # CONFIG_I2C_ALGOPCA is not set | ||
717 | |||
718 | # | ||
719 | # I2C Hardware Bus support | ||
720 | # | ||
721 | # CONFIG_I2C_ALI1535 is not set | ||
722 | # CONFIG_I2C_ALI1563 is not set | ||
723 | # CONFIG_I2C_ALI15X3 is not set | ||
724 | # CONFIG_I2C_AMD756 is not set | ||
725 | # CONFIG_I2C_AMD8111 is not set | ||
726 | # CONFIG_I2C_I801 is not set | ||
727 | # CONFIG_I2C_I810 is not set | ||
728 | # CONFIG_I2C_PIIX4 is not set | ||
729 | CONFIG_I2C_MPC=y | ||
730 | # CONFIG_I2C_NFORCE2 is not set | ||
731 | # CONFIG_I2C_OCORES is not set | ||
732 | # CONFIG_I2C_PARPORT_LIGHT is not set | ||
733 | # CONFIG_I2C_PROSAVAGE is not set | ||
734 | # CONFIG_I2C_SAVAGE4 is not set | ||
735 | # CONFIG_I2C_SIMTEC is not set | ||
736 | # CONFIG_I2C_SIS5595 is not set | ||
737 | # CONFIG_I2C_SIS630 is not set | ||
738 | # CONFIG_I2C_SIS96X is not set | ||
739 | # CONFIG_I2C_TAOS_EVM is not set | ||
740 | # CONFIG_I2C_STUB is not set | ||
741 | # CONFIG_I2C_TINY_USB is not set | ||
742 | # CONFIG_I2C_VIA is not set | ||
743 | # CONFIG_I2C_VIAPRO is not set | ||
744 | # CONFIG_I2C_VOODOO3 is not set | ||
745 | |||
746 | # | ||
747 | # Miscellaneous I2C Chip support | ||
748 | # | ||
749 | # CONFIG_SENSORS_DS1337 is not set | ||
750 | # CONFIG_SENSORS_DS1374 is not set | ||
751 | # CONFIG_DS1682 is not set | ||
752 | # CONFIG_SENSORS_EEPROM is not set | ||
753 | # CONFIG_SENSORS_PCF8574 is not set | ||
754 | # CONFIG_SENSORS_PCA9539 is not set | ||
755 | # CONFIG_SENSORS_PCF8591 is not set | ||
756 | # CONFIG_SENSORS_M41T00 is not set | ||
757 | # CONFIG_SENSORS_MAX6875 is not set | ||
758 | # CONFIG_SENSORS_TSL2550 is not set | ||
759 | # CONFIG_I2C_DEBUG_CORE is not set | ||
760 | # CONFIG_I2C_DEBUG_ALGO is not set | ||
761 | # CONFIG_I2C_DEBUG_BUS is not set | ||
762 | # CONFIG_I2C_DEBUG_CHIP is not set | ||
763 | |||
764 | # | ||
765 | # SPI support | ||
766 | # | ||
767 | # CONFIG_SPI is not set | ||
768 | # CONFIG_SPI_MASTER is not set | ||
769 | # CONFIG_W1 is not set | ||
770 | # CONFIG_POWER_SUPPLY is not set | ||
771 | # CONFIG_HWMON is not set | ||
772 | # CONFIG_WATCHDOG is not set | ||
773 | |||
774 | # | ||
775 | # Sonics Silicon Backplane | ||
776 | # | ||
777 | CONFIG_SSB_POSSIBLE=y | ||
778 | # CONFIG_SSB is not set | ||
779 | |||
780 | # | ||
781 | # Multifunction device drivers | ||
782 | # | ||
783 | # CONFIG_MFD_SM501 is not set | ||
784 | |||
785 | # | ||
786 | # Multimedia devices | ||
787 | # | ||
788 | # CONFIG_VIDEO_DEV is not set | ||
789 | # CONFIG_DVB_CORE is not set | ||
790 | # CONFIG_DAB is not set | ||
791 | |||
792 | # | ||
793 | # Graphics support | ||
794 | # | ||
795 | # CONFIG_AGP is not set | ||
796 | # CONFIG_DRM is not set | ||
797 | # CONFIG_VGASTATE is not set | ||
798 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | ||
799 | # CONFIG_FB is not set | ||
800 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
801 | |||
802 | # | ||
803 | # Display device support | ||
804 | # | ||
805 | # CONFIG_DISPLAY_SUPPORT is not set | ||
806 | |||
807 | # | ||
808 | # Sound | ||
809 | # | ||
810 | # CONFIG_SOUND is not set | ||
811 | CONFIG_USB_SUPPORT=y | ||
812 | CONFIG_USB_ARCH_HAS_HCD=y | ||
813 | CONFIG_USB_ARCH_HAS_OHCI=y | ||
814 | CONFIG_USB_ARCH_HAS_EHCI=y | ||
815 | CONFIG_USB=y | ||
816 | # CONFIG_USB_DEBUG is not set | ||
817 | |||
818 | # | ||
819 | # Miscellaneous USB options | ||
820 | # | ||
821 | CONFIG_USB_DEVICEFS=y | ||
822 | CONFIG_USB_DEVICE_CLASS=y | ||
823 | # CONFIG_USB_DYNAMIC_MINORS is not set | ||
824 | # CONFIG_USB_OTG is not set | ||
825 | |||
826 | # | ||
827 | # USB Host Controller Drivers | ||
828 | # | ||
829 | CONFIG_USB_EHCI_HCD=y | ||
830 | # CONFIG_USB_EHCI_SPLIT_ISO is not set | ||
831 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set | ||
832 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set | ||
833 | # CONFIG_USB_ISP116X_HCD is not set | ||
834 | CONFIG_USB_OHCI_HCD=y | ||
835 | # CONFIG_USB_OHCI_HCD_PPC_OF is not set | ||
836 | # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set | ||
837 | # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set | ||
838 | CONFIG_USB_OHCI_LITTLE_ENDIAN=y | ||
839 | # CONFIG_USB_UHCI_HCD is not set | ||
840 | # CONFIG_USB_SL811_HCD is not set | ||
841 | # CONFIG_USB_R8A66597_HCD is not set | ||
842 | |||
843 | # | ||
844 | # USB Device Class drivers | ||
845 | # | ||
846 | # CONFIG_USB_ACM is not set | ||
847 | # CONFIG_USB_PRINTER is not set | ||
848 | |||
849 | # | ||
850 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | ||
851 | # | ||
852 | |||
853 | # | ||
854 | # may also be needed; see USB_STORAGE Help for more information | ||
855 | # | ||
856 | CONFIG_USB_STORAGE=y | ||
857 | # CONFIG_USB_STORAGE_DEBUG is not set | ||
858 | # CONFIG_USB_STORAGE_DATAFAB is not set | ||
859 | # CONFIG_USB_STORAGE_FREECOM is not set | ||
860 | # CONFIG_USB_STORAGE_ISD200 is not set | ||
861 | # CONFIG_USB_STORAGE_DPCM is not set | ||
862 | # CONFIG_USB_STORAGE_USBAT is not set | ||
863 | # CONFIG_USB_STORAGE_SDDR09 is not set | ||
864 | # CONFIG_USB_STORAGE_SDDR55 is not set | ||
865 | # CONFIG_USB_STORAGE_JUMPSHOT is not set | ||
866 | # CONFIG_USB_STORAGE_ALAUDA is not set | ||
867 | # CONFIG_USB_STORAGE_KARMA is not set | ||
868 | # CONFIG_USB_LIBUSUAL is not set | ||
869 | |||
870 | # | ||
871 | # USB Imaging devices | ||
872 | # | ||
873 | # CONFIG_USB_MDC800 is not set | ||
874 | # CONFIG_USB_MICROTEK is not set | ||
875 | # CONFIG_USB_MON is not set | ||
876 | |||
877 | # | ||
878 | # USB port drivers | ||
879 | # | ||
880 | |||
881 | # | ||
882 | # USB Serial Converter support | ||
883 | # | ||
884 | # CONFIG_USB_SERIAL is not set | ||
885 | |||
886 | # | ||
887 | # USB Miscellaneous drivers | ||
888 | # | ||
889 | # CONFIG_USB_EMI62 is not set | ||
890 | # CONFIG_USB_EMI26 is not set | ||
891 | # CONFIG_USB_ADUTUX is not set | ||
892 | # CONFIG_USB_AUERSWALD is not set | ||
893 | # CONFIG_USB_RIO500 is not set | ||
894 | # CONFIG_USB_LEGOTOWER is not set | ||
895 | # CONFIG_USB_LCD is not set | ||
896 | # CONFIG_USB_BERRY_CHARGE is not set | ||
897 | # CONFIG_USB_LED is not set | ||
898 | # CONFIG_USB_CYPRESS_CY7C63 is not set | ||
899 | # CONFIG_USB_CYTHERM is not set | ||
900 | # CONFIG_USB_PHIDGET is not set | ||
901 | # CONFIG_USB_IDMOUSE is not set | ||
902 | # CONFIG_USB_FTDI_ELAN is not set | ||
903 | # CONFIG_USB_APPLEDISPLAY is not set | ||
904 | # CONFIG_USB_SISUSBVGA is not set | ||
905 | # CONFIG_USB_LD is not set | ||
906 | # CONFIG_USB_TRANCEVIBRATOR is not set | ||
907 | # CONFIG_USB_IOWARRIOR is not set | ||
908 | # CONFIG_USB_TEST is not set | ||
909 | |||
910 | # | ||
911 | # USB DSL modem support | ||
912 | # | ||
913 | |||
914 | # | ||
915 | # USB Gadget Support | ||
916 | # | ||
917 | # CONFIG_USB_GADGET is not set | ||
918 | # CONFIG_MMC is not set | ||
919 | # CONFIG_NEW_LEDS is not set | ||
920 | # CONFIG_INFINIBAND is not set | ||
921 | # CONFIG_EDAC is not set | ||
922 | CONFIG_RTC_LIB=y | ||
923 | CONFIG_RTC_CLASS=y | ||
924 | CONFIG_RTC_HCTOSYS=y | ||
925 | CONFIG_RTC_HCTOSYS_DEVICE="rtc0" | ||
926 | # CONFIG_RTC_DEBUG is not set | ||
927 | |||
928 | # | ||
929 | # RTC interfaces | ||
930 | # | ||
931 | CONFIG_RTC_INTF_SYSFS=y | ||
932 | CONFIG_RTC_INTF_PROC=y | ||
933 | CONFIG_RTC_INTF_DEV=y | ||
934 | # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set | ||
935 | # CONFIG_RTC_DRV_TEST is not set | ||
936 | |||
937 | # | ||
938 | # I2C RTC drivers | ||
939 | # | ||
940 | CONFIG_RTC_DRV_DS1307=y | ||
941 | # CONFIG_RTC_DRV_DS1374 is not set | ||
942 | # CONFIG_RTC_DRV_DS1672 is not set | ||
943 | # CONFIG_RTC_DRV_MAX6900 is not set | ||
944 | # CONFIG_RTC_DRV_RS5C372 is not set | ||
945 | # CONFIG_RTC_DRV_ISL1208 is not set | ||
946 | # CONFIG_RTC_DRV_X1205 is not set | ||
947 | # CONFIG_RTC_DRV_PCF8563 is not set | ||
948 | # CONFIG_RTC_DRV_PCF8583 is not set | ||
949 | # CONFIG_RTC_DRV_M41T80 is not set | ||
950 | |||
951 | # | ||
952 | # SPI RTC drivers | ||
953 | # | ||
954 | |||
955 | # | ||
956 | # Platform RTC drivers | ||
957 | # | ||
958 | # CONFIG_RTC_DRV_CMOS is not set | ||
959 | # CONFIG_RTC_DRV_DS1553 is not set | ||
960 | # CONFIG_RTC_DRV_STK17TA8 is not set | ||
961 | # CONFIG_RTC_DRV_DS1742 is not set | ||
962 | # CONFIG_RTC_DRV_M48T86 is not set | ||
963 | # CONFIG_RTC_DRV_M48T59 is not set | ||
964 | # CONFIG_RTC_DRV_V3020 is not set | ||
965 | |||
966 | # | ||
967 | # on-CPU RTC drivers | ||
968 | # | ||
969 | |||
970 | # | ||
971 | # Userspace I/O | ||
972 | # | ||
973 | # CONFIG_UIO is not set | ||
974 | |||
975 | # | ||
976 | # File systems | ||
977 | # | ||
978 | CONFIG_EXT2_FS=y | ||
979 | # CONFIG_EXT2_FS_XATTR is not set | ||
980 | # CONFIG_EXT2_FS_XIP is not set | ||
981 | CONFIG_EXT3_FS=y | ||
982 | CONFIG_EXT3_FS_XATTR=y | ||
983 | # CONFIG_EXT3_FS_POSIX_ACL is not set | ||
984 | # CONFIG_EXT3_FS_SECURITY is not set | ||
985 | # CONFIG_EXT4DEV_FS is not set | ||
986 | CONFIG_JBD=y | ||
987 | CONFIG_FS_MBCACHE=y | ||
988 | # CONFIG_REISERFS_FS is not set | ||
989 | # CONFIG_JFS_FS is not set | ||
990 | # CONFIG_FS_POSIX_ACL is not set | ||
991 | CONFIG_XFS_FS=m | ||
992 | # CONFIG_XFS_QUOTA is not set | ||
993 | # CONFIG_XFS_SECURITY is not set | ||
994 | # CONFIG_XFS_POSIX_ACL is not set | ||
995 | # CONFIG_XFS_RT is not set | ||
996 | # CONFIG_GFS2_FS is not set | ||
997 | # CONFIG_OCFS2_FS is not set | ||
998 | # CONFIG_MINIX_FS is not set | ||
999 | # CONFIG_ROMFS_FS is not set | ||
1000 | CONFIG_INOTIFY=y | ||
1001 | CONFIG_INOTIFY_USER=y | ||
1002 | # CONFIG_QUOTA is not set | ||
1003 | CONFIG_DNOTIFY=y | ||
1004 | # CONFIG_AUTOFS_FS is not set | ||
1005 | # CONFIG_AUTOFS4_FS is not set | ||
1006 | # CONFIG_FUSE_FS is not set | ||
1007 | |||
1008 | # | ||
1009 | # CD-ROM/DVD Filesystems | ||
1010 | # | ||
1011 | # CONFIG_ISO9660_FS is not set | ||
1012 | # CONFIG_UDF_FS is not set | ||
1013 | |||
1014 | # | ||
1015 | # DOS/FAT/NT Filesystems | ||
1016 | # | ||
1017 | # CONFIG_MSDOS_FS is not set | ||
1018 | # CONFIG_VFAT_FS is not set | ||
1019 | # CONFIG_NTFS_FS is not set | ||
1020 | |||
1021 | # | ||
1022 | # Pseudo filesystems | ||
1023 | # | ||
1024 | CONFIG_PROC_FS=y | ||
1025 | CONFIG_PROC_KCORE=y | ||
1026 | CONFIG_PROC_SYSCTL=y | ||
1027 | CONFIG_SYSFS=y | ||
1028 | CONFIG_TMPFS=y | ||
1029 | # CONFIG_TMPFS_POSIX_ACL is not set | ||
1030 | # CONFIG_HUGETLB_PAGE is not set | ||
1031 | # CONFIG_CONFIGFS_FS is not set | ||
1032 | |||
1033 | # | ||
1034 | # Miscellaneous filesystems | ||
1035 | # | ||
1036 | # CONFIG_ADFS_FS is not set | ||
1037 | # CONFIG_AFFS_FS is not set | ||
1038 | # CONFIG_HFS_FS is not set | ||
1039 | # CONFIG_HFSPLUS_FS is not set | ||
1040 | # CONFIG_BEFS_FS is not set | ||
1041 | # CONFIG_BFS_FS is not set | ||
1042 | # CONFIG_EFS_FS is not set | ||
1043 | CONFIG_JFFS2_FS=y | ||
1044 | CONFIG_JFFS2_FS_DEBUG=0 | ||
1045 | CONFIG_JFFS2_FS_WRITEBUFFER=y | ||
1046 | # CONFIG_JFFS2_FS_WBUF_VERIFY is not set | ||
1047 | # CONFIG_JFFS2_SUMMARY is not set | ||
1048 | # CONFIG_JFFS2_FS_XATTR is not set | ||
1049 | # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set | ||
1050 | CONFIG_JFFS2_ZLIB=y | ||
1051 | # CONFIG_JFFS2_LZO is not set | ||
1052 | CONFIG_JFFS2_RTIME=y | ||
1053 | # CONFIG_JFFS2_RUBIN is not set | ||
1054 | # CONFIG_CRAMFS is not set | ||
1055 | # CONFIG_VXFS_FS is not set | ||
1056 | # CONFIG_HPFS_FS is not set | ||
1057 | # CONFIG_QNX4FS_FS is not set | ||
1058 | # CONFIG_SYSV_FS is not set | ||
1059 | # CONFIG_UFS_FS is not set | ||
1060 | # CONFIG_NETWORK_FILESYSTEMS is not set | ||
1061 | |||
1062 | # | ||
1063 | # Partition Types | ||
1064 | # | ||
1065 | CONFIG_PARTITION_ADVANCED=y | ||
1066 | # CONFIG_ACORN_PARTITION is not set | ||
1067 | # CONFIG_OSF_PARTITION is not set | ||
1068 | # CONFIG_AMIGA_PARTITION is not set | ||
1069 | # CONFIG_ATARI_PARTITION is not set | ||
1070 | # CONFIG_MAC_PARTITION is not set | ||
1071 | CONFIG_MSDOS_PARTITION=y | ||
1072 | # CONFIG_BSD_DISKLABEL is not set | ||
1073 | # CONFIG_MINIX_SUBPARTITION is not set | ||
1074 | # CONFIG_SOLARIS_X86_PARTITION is not set | ||
1075 | # CONFIG_UNIXWARE_DISKLABEL is not set | ||
1076 | # CONFIG_LDM_PARTITION is not set | ||
1077 | # CONFIG_SGI_PARTITION is not set | ||
1078 | # CONFIG_ULTRIX_PARTITION is not set | ||
1079 | # CONFIG_SUN_PARTITION is not set | ||
1080 | # CONFIG_KARMA_PARTITION is not set | ||
1081 | # CONFIG_EFI_PARTITION is not set | ||
1082 | # CONFIG_SYSV68_PARTITION is not set | ||
1083 | CONFIG_NLS=y | ||
1084 | CONFIG_NLS_DEFAULT="utf8" | ||
1085 | CONFIG_NLS_CODEPAGE_437=y | ||
1086 | # CONFIG_NLS_CODEPAGE_737 is not set | ||
1087 | # CONFIG_NLS_CODEPAGE_775 is not set | ||
1088 | # CONFIG_NLS_CODEPAGE_850 is not set | ||
1089 | # CONFIG_NLS_CODEPAGE_852 is not set | ||
1090 | # CONFIG_NLS_CODEPAGE_855 is not set | ||
1091 | # CONFIG_NLS_CODEPAGE_857 is not set | ||
1092 | # CONFIG_NLS_CODEPAGE_860 is not set | ||
1093 | # CONFIG_NLS_CODEPAGE_861 is not set | ||
1094 | # CONFIG_NLS_CODEPAGE_862 is not set | ||
1095 | # CONFIG_NLS_CODEPAGE_863 is not set | ||
1096 | # CONFIG_NLS_CODEPAGE_864 is not set | ||
1097 | # CONFIG_NLS_CODEPAGE_865 is not set | ||
1098 | # CONFIG_NLS_CODEPAGE_866 is not set | ||
1099 | # CONFIG_NLS_CODEPAGE_869 is not set | ||
1100 | # CONFIG_NLS_CODEPAGE_936 is not set | ||
1101 | # CONFIG_NLS_CODEPAGE_950 is not set | ||
1102 | # CONFIG_NLS_CODEPAGE_932 is not set | ||
1103 | # CONFIG_NLS_CODEPAGE_949 is not set | ||
1104 | # CONFIG_NLS_CODEPAGE_874 is not set | ||
1105 | # CONFIG_NLS_ISO8859_8 is not set | ||
1106 | # CONFIG_NLS_CODEPAGE_1250 is not set | ||
1107 | # CONFIG_NLS_CODEPAGE_1251 is not set | ||
1108 | # CONFIG_NLS_ASCII is not set | ||
1109 | CONFIG_NLS_ISO8859_1=y | ||
1110 | # CONFIG_NLS_ISO8859_2 is not set | ||
1111 | # CONFIG_NLS_ISO8859_3 is not set | ||
1112 | # CONFIG_NLS_ISO8859_4 is not set | ||
1113 | # CONFIG_NLS_ISO8859_5 is not set | ||
1114 | # CONFIG_NLS_ISO8859_6 is not set | ||
1115 | # CONFIG_NLS_ISO8859_7 is not set | ||
1116 | # CONFIG_NLS_ISO8859_9 is not set | ||
1117 | # CONFIG_NLS_ISO8859_13 is not set | ||
1118 | # CONFIG_NLS_ISO8859_14 is not set | ||
1119 | # CONFIG_NLS_ISO8859_15 is not set | ||
1120 | # CONFIG_NLS_KOI8_R is not set | ||
1121 | # CONFIG_NLS_KOI8_U is not set | ||
1122 | CONFIG_NLS_UTF8=y | ||
1123 | # CONFIG_DLM is not set | ||
1124 | # CONFIG_UCC_SLOW is not set | ||
1125 | |||
1126 | # | ||
1127 | # Library routines | ||
1128 | # | ||
1129 | CONFIG_BITREVERSE=y | ||
1130 | # CONFIG_CRC_CCITT is not set | ||
1131 | # CONFIG_CRC16 is not set | ||
1132 | # CONFIG_CRC_ITU_T is not set | ||
1133 | CONFIG_CRC32=y | ||
1134 | # CONFIG_CRC7 is not set | ||
1135 | # CONFIG_LIBCRC32C is not set | ||
1136 | CONFIG_ZLIB_INFLATE=y | ||
1137 | CONFIG_ZLIB_DEFLATE=y | ||
1138 | CONFIG_PLIST=y | ||
1139 | CONFIG_HAS_IOMEM=y | ||
1140 | CONFIG_HAS_IOPORT=y | ||
1141 | CONFIG_HAS_DMA=y | ||
1142 | CONFIG_INSTRUMENTATION=y | ||
1143 | # CONFIG_PROFILING is not set | ||
1144 | # CONFIG_MARKERS is not set | ||
1145 | |||
1146 | # | ||
1147 | # Kernel hacking | ||
1148 | # | ||
1149 | # CONFIG_PRINTK_TIME is not set | ||
1150 | # CONFIG_ENABLE_WARN_DEPRECATED is not set | ||
1151 | # CONFIG_ENABLE_MUST_CHECK is not set | ||
1152 | # CONFIG_MAGIC_SYSRQ is not set | ||
1153 | # CONFIG_UNUSED_SYMBOLS is not set | ||
1154 | # CONFIG_DEBUG_FS is not set | ||
1155 | # CONFIG_HEADERS_CHECK is not set | ||
1156 | # CONFIG_DEBUG_KERNEL is not set | ||
1157 | # CONFIG_SLUB_DEBUG_ON is not set | ||
1158 | # CONFIG_DEBUG_BUGVERBOSE is not set | ||
1159 | # CONFIG_SAMPLES is not set | ||
1160 | # CONFIG_BOOTX_TEXT is not set | ||
1161 | # CONFIG_PPC_EARLY_DEBUG is not set | ||
1162 | |||
1163 | # | ||
1164 | # Security options | ||
1165 | # | ||
1166 | # CONFIG_KEYS is not set | ||
1167 | # CONFIG_SECURITY is not set | ||
1168 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | ||
1169 | CONFIG_XOR_BLOCKS=y | ||
1170 | CONFIG_ASYNC_CORE=y | ||
1171 | CONFIG_ASYNC_MEMCPY=y | ||
1172 | CONFIG_ASYNC_XOR=y | ||
1173 | # CONFIG_CRYPTO is not set | ||
1174 | # CONFIG_PPC_CLOCK is not set | ||
diff --git a/arch/powerpc/kernel/Makefile b/arch/powerpc/kernel/Makefile index d9b377070caa..58dbfeff9b4d 100644 --- a/arch/powerpc/kernel/Makefile +++ b/arch/powerpc/kernel/Makefile | |||
@@ -70,6 +70,7 @@ pci64-$(CONFIG_PPC64) += pci_dn.o isa-bridge.o | |||
70 | obj-$(CONFIG_PCI) += pci_$(CONFIG_WORD_SIZE).o $(pci64-y) \ | 70 | obj-$(CONFIG_PCI) += pci_$(CONFIG_WORD_SIZE).o $(pci64-y) \ |
71 | pci-common.o | 71 | pci-common.o |
72 | obj-$(CONFIG_PCI_MSI) += msi.o | 72 | obj-$(CONFIG_PCI_MSI) += msi.o |
73 | obj-$(CONFIG_RAPIDIO) += rio.o | ||
73 | obj-$(CONFIG_KEXEC) += machine_kexec.o crash.o \ | 74 | obj-$(CONFIG_KEXEC) += machine_kexec.o crash.o \ |
74 | machine_kexec_$(CONFIG_WORD_SIZE).o | 75 | machine_kexec_$(CONFIG_WORD_SIZE).o |
75 | obj-$(CONFIG_AUDIT) += audit.o | 76 | obj-$(CONFIG_AUDIT) += audit.o |
diff --git a/arch/powerpc/kernel/head_fsl_booke.S b/arch/powerpc/kernel/head_fsl_booke.S index 7aecb39a5a45..d9cc2c288d9e 100644 --- a/arch/powerpc/kernel/head_fsl_booke.S +++ b/arch/powerpc/kernel/head_fsl_booke.S | |||
@@ -73,8 +73,8 @@ _ENTRY(_start); | |||
73 | /* We try to not make any assumptions about how the boot loader | 73 | /* We try to not make any assumptions about how the boot loader |
74 | * setup or used the TLBs. We invalidate all mappings from the | 74 | * setup or used the TLBs. We invalidate all mappings from the |
75 | * boot loader and load a single entry in TLB1[0] to map the | 75 | * boot loader and load a single entry in TLB1[0] to map the |
76 | * first 16M of kernel memory. Any boot info passed from the | 76 | * first 64M of kernel memory. Any boot info passed from the |
77 | * bootloader needs to live in this first 16M. | 77 | * bootloader needs to live in this first 64M. |
78 | * | 78 | * |
79 | * Requirement on bootloader: | 79 | * Requirement on bootloader: |
80 | * - The page we're executing in needs to reside in TLB1 and | 80 | * - The page we're executing in needs to reside in TLB1 and |
@@ -167,7 +167,7 @@ skpinv: addi r6,r6,1 /* Increment */ | |||
167 | mtspr SPRN_MAS0,r7 | 167 | mtspr SPRN_MAS0,r7 |
168 | tlbre | 168 | tlbre |
169 | 169 | ||
170 | /* Just modify the entry ID and EPN for the temp mapping */ | 170 | /* Just modify the entry ID, EPN and RPN for the temp mapping */ |
171 | lis r7,0x1000 /* Set MAS0(TLBSEL) = 1 */ | 171 | lis r7,0x1000 /* Set MAS0(TLBSEL) = 1 */ |
172 | rlwimi r7,r5,16,4,15 /* Setup MAS0 = TLBSEL | ESEL(r5) */ | 172 | rlwimi r7,r5,16,4,15 /* Setup MAS0 = TLBSEL | ESEL(r5) */ |
173 | mtspr SPRN_MAS0,r7 | 173 | mtspr SPRN_MAS0,r7 |
@@ -177,9 +177,12 @@ skpinv: addi r6,r6,1 /* Increment */ | |||
177 | ori r6,r6,(MAS1_TSIZE(BOOKE_PAGESZ_4K))@l | 177 | ori r6,r6,(MAS1_TSIZE(BOOKE_PAGESZ_4K))@l |
178 | mtspr SPRN_MAS1,r6 | 178 | mtspr SPRN_MAS1,r6 |
179 | mfspr r6,SPRN_MAS2 | 179 | mfspr r6,SPRN_MAS2 |
180 | li r7,0 /* temp EPN = 0 */ | 180 | lis r7,PHYSICAL_START@h |
181 | rlwimi r7,r6,0,20,31 | 181 | rlwimi r7,r6,0,20,31 |
182 | mtspr SPRN_MAS2,r7 | 182 | mtspr SPRN_MAS2,r7 |
183 | mfspr r6,SPRN_MAS3 | ||
184 | rlwimi r7,r6,0,20,31 | ||
185 | mtspr SPRN_MAS3,r7 | ||
183 | tlbwe | 186 | tlbwe |
184 | 187 | ||
185 | xori r6,r4,1 | 188 | xori r6,r4,1 |
@@ -222,11 +225,11 @@ skpinv: addi r6,r6,1 /* Increment */ | |||
222 | lis r6,0x1000 /* Set MAS0(TLBSEL) = TLB1(1), ESEL = 0 */ | 225 | lis r6,0x1000 /* Set MAS0(TLBSEL) = TLB1(1), ESEL = 0 */ |
223 | mtspr SPRN_MAS0,r6 | 226 | mtspr SPRN_MAS0,r6 |
224 | lis r6,(MAS1_VALID|MAS1_IPROT)@h | 227 | lis r6,(MAS1_VALID|MAS1_IPROT)@h |
225 | ori r6,r6,(MAS1_TSIZE(BOOKE_PAGESZ_16M))@l | 228 | ori r6,r6,(MAS1_TSIZE(BOOKE_PAGESZ_64M))@l |
226 | mtspr SPRN_MAS1,r6 | 229 | mtspr SPRN_MAS1,r6 |
227 | li r7,0 | 230 | li r7,0 |
228 | lis r6,KERNELBASE@h | 231 | lis r6,PAGE_OFFSET@h |
229 | ori r6,r6,KERNELBASE@l | 232 | ori r6,r6,PAGE_OFFSET@l |
230 | rlwimi r6,r7,0,20,31 | 233 | rlwimi r6,r7,0,20,31 |
231 | mtspr SPRN_MAS2,r6 | 234 | mtspr SPRN_MAS2,r6 |
232 | li r7,(MAS3_SX|MAS3_SW|MAS3_SR) | 235 | li r7,(MAS3_SX|MAS3_SW|MAS3_SR) |
@@ -234,6 +237,9 @@ skpinv: addi r6,r6,1 /* Increment */ | |||
234 | tlbwe | 237 | tlbwe |
235 | 238 | ||
236 | /* 7. Jump to KERNELBASE mapping */ | 239 | /* 7. Jump to KERNELBASE mapping */ |
240 | lis r6,KERNELBASE@h | ||
241 | ori r6,r6,KERNELBASE@l | ||
242 | rlwimi r6,r7,0,20,31 | ||
237 | lis r7,MSR_KERNEL@h | 243 | lis r7,MSR_KERNEL@h |
238 | ori r7,r7,MSR_KERNEL@l | 244 | ori r7,r7,MSR_KERNEL@l |
239 | bl 1f /* Find our address */ | 245 | bl 1f /* Find our address */ |
diff --git a/arch/powerpc/kernel/pci-common.c b/arch/powerpc/kernel/pci-common.c index d394d41b61d5..980fe32895c0 100644 --- a/arch/powerpc/kernel/pci-common.c +++ b/arch/powerpc/kernel/pci-common.c | |||
@@ -792,9 +792,10 @@ static void __devinit __pcibios_fixup_bus(struct pci_bus *bus) | |||
792 | for (i = 0; i < PCI_BUS_NUM_RESOURCES; ++i) { | 792 | for (i = 0; i < PCI_BUS_NUM_RESOURCES; ++i) { |
793 | if ((res = bus->resource[i]) == NULL) | 793 | if ((res = bus->resource[i]) == NULL) |
794 | continue; | 794 | continue; |
795 | if (!res->flags || bus->self->transparent) | 795 | if (!res->flags) |
796 | continue; | ||
797 | if (i >= 3 && bus->self->transparent) | ||
796 | continue; | 798 | continue; |
797 | |||
798 | /* On PowerMac, Apple leaves bridge windows open over | 799 | /* On PowerMac, Apple leaves bridge windows open over |
799 | * an inaccessible region of memory space (0...fffff) | 800 | * an inaccessible region of memory space (0...fffff) |
800 | * which is somewhat bogus, but that's what they think | 801 | * which is somewhat bogus, but that's what they think |
@@ -806,7 +807,8 @@ static void __devinit __pcibios_fixup_bus(struct pci_bus *bus) | |||
806 | * equal to the pci_mem_offset of the host bridge and | 807 | * equal to the pci_mem_offset of the host bridge and |
807 | * their size is smaller than 1M. | 808 | * their size is smaller than 1M. |
808 | */ | 809 | */ |
809 | if (res->start == hose->pci_mem_offset && | 810 | if (res->flags & IORESOURCE_MEM && |
811 | res->start == hose->pci_mem_offset && | ||
810 | res->end < 0x100000) { | 812 | res->end < 0x100000) { |
811 | printk(KERN_INFO | 813 | printk(KERN_INFO |
812 | "PCI: Closing bogus Apple Firmware" | 814 | "PCI: Closing bogus Apple Firmware" |
diff --git a/arch/powerpc/kernel/pci_32.c b/arch/powerpc/kernel/pci_32.c index 14e300f85ce4..88db4ffaf11c 100644 --- a/arch/powerpc/kernel/pci_32.c +++ b/arch/powerpc/kernel/pci_32.c | |||
@@ -94,64 +94,6 @@ fixup_cpc710_pci64(struct pci_dev* dev) | |||
94 | } | 94 | } |
95 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_IBM, PCI_DEVICE_ID_IBM_CPC710_PCI64, fixup_cpc710_pci64); | 95 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_IBM, PCI_DEVICE_ID_IBM_CPC710_PCI64, fixup_cpc710_pci64); |
96 | 96 | ||
97 | |||
98 | void __init | ||
99 | update_bridge_resource(struct pci_dev *dev, struct resource *res) | ||
100 | { | ||
101 | u8 io_base_lo, io_limit_lo; | ||
102 | u16 mem_base, mem_limit; | ||
103 | u16 cmd; | ||
104 | resource_size_t start, end, off; | ||
105 | struct pci_controller *hose = dev->sysdata; | ||
106 | |||
107 | if (!hose) { | ||
108 | printk("update_bridge_base: no hose?\n"); | ||
109 | return; | ||
110 | } | ||
111 | pci_read_config_word(dev, PCI_COMMAND, &cmd); | ||
112 | pci_write_config_word(dev, PCI_COMMAND, | ||
113 | cmd & ~(PCI_COMMAND_IO | PCI_COMMAND_MEMORY)); | ||
114 | if (res->flags & IORESOURCE_IO) { | ||
115 | off = (unsigned long) hose->io_base_virt - isa_io_base; | ||
116 | start = res->start - off; | ||
117 | end = res->end - off; | ||
118 | io_base_lo = (start >> 8) & PCI_IO_RANGE_MASK; | ||
119 | io_limit_lo = (end >> 8) & PCI_IO_RANGE_MASK; | ||
120 | if (end > 0xffff) | ||
121 | io_base_lo |= PCI_IO_RANGE_TYPE_32; | ||
122 | else | ||
123 | io_base_lo |= PCI_IO_RANGE_TYPE_16; | ||
124 | pci_write_config_word(dev, PCI_IO_BASE_UPPER16, | ||
125 | start >> 16); | ||
126 | pci_write_config_word(dev, PCI_IO_LIMIT_UPPER16, | ||
127 | end >> 16); | ||
128 | pci_write_config_byte(dev, PCI_IO_BASE, io_base_lo); | ||
129 | pci_write_config_byte(dev, PCI_IO_LIMIT, io_limit_lo); | ||
130 | |||
131 | } else if ((res->flags & (IORESOURCE_MEM | IORESOURCE_PREFETCH)) | ||
132 | == IORESOURCE_MEM) { | ||
133 | off = hose->pci_mem_offset; | ||
134 | mem_base = ((res->start - off) >> 16) & PCI_MEMORY_RANGE_MASK; | ||
135 | mem_limit = ((res->end - off) >> 16) & PCI_MEMORY_RANGE_MASK; | ||
136 | pci_write_config_word(dev, PCI_MEMORY_BASE, mem_base); | ||
137 | pci_write_config_word(dev, PCI_MEMORY_LIMIT, mem_limit); | ||
138 | |||
139 | } else if ((res->flags & (IORESOURCE_MEM | IORESOURCE_PREFETCH)) | ||
140 | == (IORESOURCE_MEM | IORESOURCE_PREFETCH)) { | ||
141 | off = hose->pci_mem_offset; | ||
142 | mem_base = ((res->start - off) >> 16) & PCI_PREF_RANGE_MASK; | ||
143 | mem_limit = ((res->end - off) >> 16) & PCI_PREF_RANGE_MASK; | ||
144 | pci_write_config_word(dev, PCI_PREF_MEMORY_BASE, mem_base); | ||
145 | pci_write_config_word(dev, PCI_PREF_MEMORY_LIMIT, mem_limit); | ||
146 | |||
147 | } else { | ||
148 | DBG(KERN_ERR "PCI: ugh, bridge %s res has flags=%lx\n", | ||
149 | pci_name(dev), res->flags); | ||
150 | } | ||
151 | pci_write_config_word(dev, PCI_COMMAND, cmd); | ||
152 | } | ||
153 | |||
154 | |||
155 | #ifdef CONFIG_PPC_OF | 97 | #ifdef CONFIG_PPC_OF |
156 | /* | 98 | /* |
157 | * Functions below are used on OpenFirmware machines. | 99 | * Functions below are used on OpenFirmware machines. |
diff --git a/arch/powerpc/kernel/rio.c b/arch/powerpc/kernel/rio.c new file mode 100644 index 000000000000..29487fedfc76 --- /dev/null +++ b/arch/powerpc/kernel/rio.c | |||
@@ -0,0 +1,52 @@ | |||
1 | /* | ||
2 | * RapidIO PPC32 support | ||
3 | * | ||
4 | * Copyright 2005 MontaVista Software, Inc. | ||
5 | * Matt Porter <mporter@kernel.crashing.org> | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify it | ||
8 | * under the terms of the GNU General Public License as published by the | ||
9 | * Free Software Foundation; either version 2 of the License, or (at your | ||
10 | * option) any later version. | ||
11 | */ | ||
12 | |||
13 | #include <linux/init.h> | ||
14 | #include <linux/kernel.h> | ||
15 | #include <linux/rio.h> | ||
16 | |||
17 | #include <asm/rio.h> | ||
18 | |||
19 | /** | ||
20 | * platform_rio_init - Do platform specific RIO init | ||
21 | * | ||
22 | * Any platform specific initialization of RapdIO | ||
23 | * hardware is done here as well as registration | ||
24 | * of any active master ports in the system. | ||
25 | */ | ||
26 | void __attribute__ ((weak)) | ||
27 | platform_rio_init(void) | ||
28 | { | ||
29 | printk(KERN_WARNING "RIO: No platform_rio_init() present\n"); | ||
30 | } | ||
31 | |||
32 | /** | ||
33 | * ppc_rio_init - Do PPC32 RIO init | ||
34 | * | ||
35 | * Calls platform-specific RIO init code and then calls | ||
36 | * rio_init_mports() to initialize any master ports that | ||
37 | * have been registered with the RIO subsystem. | ||
38 | */ | ||
39 | static int __init ppc_rio_init(void) | ||
40 | { | ||
41 | printk(KERN_INFO "RIO: RapidIO init\n"); | ||
42 | |||
43 | /* Platform specific initialization */ | ||
44 | platform_rio_init(); | ||
45 | |||
46 | /* Enumerate all registered ports */ | ||
47 | rio_init_mports(); | ||
48 | |||
49 | return 0; | ||
50 | } | ||
51 | |||
52 | subsys_initcall(ppc_rio_init); | ||
diff --git a/arch/powerpc/math-emu/op-4.h b/arch/powerpc/math-emu/op-4.h index fcdd6d064c54..c9ae626070da 100644 --- a/arch/powerpc/math-emu/op-4.h +++ b/arch/powerpc/math-emu/op-4.h | |||
@@ -194,19 +194,39 @@ | |||
194 | (X##_f[3] = I3, X##_f[2] = I2, X##_f[1] = I1, X##_f[0] = I0) | 194 | (X##_f[3] = I3, X##_f[2] = I2, X##_f[1] = I1, X##_f[0] = I0) |
195 | 195 | ||
196 | #ifndef __FP_FRAC_ADD_4 | 196 | #ifndef __FP_FRAC_ADD_4 |
197 | #define __FP_FRAC_ADD_4(r3,r2,r1,r0,x3,x2,x1,x0,y3,y2,y1,y0) \ | 197 | #define __FP_FRAC_ADD_4(r3,r2,r1,r0,x3,x2,x1,x0,y3,y2,y1,y0) \ |
198 | (r0 = x0 + y0, \ | 198 | do { \ |
199 | r1 = x1 + y1 + (r0 < x0), \ | 199 | int _c1, _c2, _c3; \ |
200 | r2 = x2 + y2 + (r1 < x1), \ | 200 | r0 = x0 + y0; \ |
201 | r3 = x3 + y3 + (r2 < x2)) | 201 | _c1 = r0 < x0; \ |
202 | r1 = x1 + y1; \ | ||
203 | _c2 = r1 < x1; \ | ||
204 | r1 += _c1; \ | ||
205 | _c2 |= r1 < _c1; \ | ||
206 | r2 = x2 + y2; \ | ||
207 | _c3 = r2 < x2; \ | ||
208 | r2 += _c2; \ | ||
209 | _c3 |= r2 < _c2; \ | ||
210 | r3 = x3 + y3 + _c3; \ | ||
211 | } while (0) | ||
202 | #endif | 212 | #endif |
203 | 213 | ||
204 | #ifndef __FP_FRAC_SUB_4 | 214 | #ifndef __FP_FRAC_SUB_4 |
205 | #define __FP_FRAC_SUB_4(r3,r2,r1,r0,x3,x2,x1,x0,y3,y2,y1,y0) \ | 215 | #define __FP_FRAC_SUB_4(r3,r2,r1,r0,x3,x2,x1,x0,y3,y2,y1,y0) \ |
206 | (r0 = x0 - y0, \ | 216 | do { \ |
207 | r1 = x1 - y1 - (r0 > x0), \ | 217 | int _c1, _c2, _c3; \ |
208 | r2 = x2 - y2 - (r1 > x1), \ | 218 | r0 = x0 - y0; \ |
209 | r3 = x3 - y3 - (r2 > x2)) | 219 | _c1 = r0 > x0; \ |
220 | r1 = x1 - y1; \ | ||
221 | _c2 = r1 > x1; \ | ||
222 | r1 -= _c1; \ | ||
223 | _c2 |= r1 > _c1; \ | ||
224 | r2 = x2 - y2; \ | ||
225 | _c3 = r2 > x2; \ | ||
226 | r2 -= _c2; \ | ||
227 | _c3 |= r2 > _c2; \ | ||
228 | r3 = x3 - y3 - _c3; \ | ||
229 | } while (0) | ||
210 | #endif | 230 | #endif |
211 | 231 | ||
212 | #ifndef __FP_FRAC_ADDI_4 | 232 | #ifndef __FP_FRAC_ADDI_4 |
diff --git a/arch/powerpc/mm/fsl_booke_mmu.c b/arch/powerpc/mm/fsl_booke_mmu.c index 17139daeaff4..c93a966b7e4b 100644 --- a/arch/powerpc/mm/fsl_booke_mmu.c +++ b/arch/powerpc/mm/fsl_booke_mmu.c | |||
@@ -165,15 +165,15 @@ void invalidate_tlbcam_entry(int index) | |||
165 | void __init cam_mapin_ram(unsigned long cam0, unsigned long cam1, | 165 | void __init cam_mapin_ram(unsigned long cam0, unsigned long cam1, |
166 | unsigned long cam2) | 166 | unsigned long cam2) |
167 | { | 167 | { |
168 | settlbcam(0, KERNELBASE, PPC_MEMSTART, cam0, _PAGE_KERNEL, 0); | 168 | settlbcam(0, PAGE_OFFSET, PPC_MEMSTART, cam0, _PAGE_KERNEL, 0); |
169 | tlbcam_index++; | 169 | tlbcam_index++; |
170 | if (cam1) { | 170 | if (cam1) { |
171 | tlbcam_index++; | 171 | tlbcam_index++; |
172 | settlbcam(1, KERNELBASE+cam0, PPC_MEMSTART+cam0, cam1, _PAGE_KERNEL, 0); | 172 | settlbcam(1, PAGE_OFFSET+cam0, PPC_MEMSTART+cam0, cam1, _PAGE_KERNEL, 0); |
173 | } | 173 | } |
174 | if (cam2) { | 174 | if (cam2) { |
175 | tlbcam_index++; | 175 | tlbcam_index++; |
176 | settlbcam(2, KERNELBASE+cam0+cam1, PPC_MEMSTART+cam0+cam1, cam2, _PAGE_KERNEL, 0); | 176 | settlbcam(2, PAGE_OFFSET+cam0+cam1, PPC_MEMSTART+cam0+cam1, cam2, _PAGE_KERNEL, 0); |
177 | } | 177 | } |
178 | } | 178 | } |
179 | 179 | ||
diff --git a/arch/powerpc/mm/lmb.c b/arch/powerpc/mm/lmb.c index 8f4d2dc4cafb..4ce23bcf8a57 100644 --- a/arch/powerpc/mm/lmb.c +++ b/arch/powerpc/mm/lmb.c | |||
@@ -342,3 +342,16 @@ void __init lmb_enforce_memory_limit(unsigned long memory_limit) | |||
342 | } | 342 | } |
343 | } | 343 | } |
344 | } | 344 | } |
345 | |||
346 | int __init lmb_is_reserved(unsigned long addr) | ||
347 | { | ||
348 | int i; | ||
349 | |||
350 | for (i = 0; i < lmb.reserved.cnt; i++) { | ||
351 | unsigned long upper = lmb.reserved.region[i].base + | ||
352 | lmb.reserved.region[i].size - 1; | ||
353 | if ((addr >= lmb.reserved.region[i].base) && (addr <= upper)) | ||
354 | return 1; | ||
355 | } | ||
356 | return 0; | ||
357 | } | ||
diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c index 5402fb6b3aae..e8122447f019 100644 --- a/arch/powerpc/mm/mem.c +++ b/arch/powerpc/mm/mem.c | |||
@@ -213,15 +213,30 @@ void __init do_init_bootmem(void) | |||
213 | */ | 213 | */ |
214 | #ifdef CONFIG_HIGHMEM | 214 | #ifdef CONFIG_HIGHMEM |
215 | free_bootmem_with_active_regions(0, total_lowmem >> PAGE_SHIFT); | 215 | free_bootmem_with_active_regions(0, total_lowmem >> PAGE_SHIFT); |
216 | |||
217 | /* reserve the sections we're already using */ | ||
218 | for (i = 0; i < lmb.reserved.cnt; i++) { | ||
219 | unsigned long addr = lmb.reserved.region[i].base + | ||
220 | lmb_size_bytes(&lmb.reserved, i) - 1; | ||
221 | if (addr < total_lowmem) | ||
222 | reserve_bootmem(lmb.reserved.region[i].base, | ||
223 | lmb_size_bytes(&lmb.reserved, i)); | ||
224 | else if (lmb.reserved.region[i].base < total_lowmem) { | ||
225 | unsigned long adjusted_size = total_lowmem - | ||
226 | lmb.reserved.region[i].base; | ||
227 | reserve_bootmem(lmb.reserved.region[i].base, | ||
228 | adjusted_size); | ||
229 | } | ||
230 | } | ||
216 | #else | 231 | #else |
217 | free_bootmem_with_active_regions(0, max_pfn); | 232 | free_bootmem_with_active_regions(0, max_pfn); |
218 | #endif | ||
219 | 233 | ||
220 | /* reserve the sections we're already using */ | 234 | /* reserve the sections we're already using */ |
221 | for (i = 0; i < lmb.reserved.cnt; i++) | 235 | for (i = 0; i < lmb.reserved.cnt; i++) |
222 | reserve_bootmem(lmb.reserved.region[i].base, | 236 | reserve_bootmem(lmb.reserved.region[i].base, |
223 | lmb_size_bytes(&lmb.reserved, i)); | 237 | lmb_size_bytes(&lmb.reserved, i)); |
224 | 238 | ||
239 | #endif | ||
225 | /* XXX need to clip this if using highmem? */ | 240 | /* XXX need to clip this if using highmem? */ |
226 | sparse_memory_present_with_active_regions(0); | 241 | sparse_memory_present_with_active_regions(0); |
227 | 242 | ||
@@ -334,11 +349,13 @@ void __init mem_init(void) | |||
334 | highmem_mapnr = total_lowmem >> PAGE_SHIFT; | 349 | highmem_mapnr = total_lowmem >> PAGE_SHIFT; |
335 | for (pfn = highmem_mapnr; pfn < max_mapnr; ++pfn) { | 350 | for (pfn = highmem_mapnr; pfn < max_mapnr; ++pfn) { |
336 | struct page *page = pfn_to_page(pfn); | 351 | struct page *page = pfn_to_page(pfn); |
337 | 352 | if (lmb_is_reserved(pfn << PAGE_SHIFT)) | |
353 | continue; | ||
338 | ClearPageReserved(page); | 354 | ClearPageReserved(page); |
339 | init_page_count(page); | 355 | init_page_count(page); |
340 | __free_page(page); | 356 | __free_page(page); |
341 | totalhigh_pages++; | 357 | totalhigh_pages++; |
358 | reservedpages--; | ||
342 | } | 359 | } |
343 | totalram_pages += totalhigh_pages; | 360 | totalram_pages += totalhigh_pages; |
344 | printk(KERN_DEBUG "High memory: %luk\n", | 361 | printk(KERN_DEBUG "High memory: %luk\n", |
diff --git a/arch/powerpc/platforms/82xx/Kconfig b/arch/powerpc/platforms/82xx/Kconfig index 541fbb815631..4fad6c7bf9f1 100644 --- a/arch/powerpc/platforms/82xx/Kconfig +++ b/arch/powerpc/platforms/82xx/Kconfig | |||
@@ -26,6 +26,19 @@ config PQ2FADS | |||
26 | help | 26 | help |
27 | This option enables support for the PQ2FADS board | 27 | This option enables support for the PQ2FADS board |
28 | 28 | ||
29 | config EP8248E | ||
30 | bool "Embedded Planet EP8248E (a.k.a. CWH-PPC-8248N-VE)" | ||
31 | select 8272 | ||
32 | select 8260 | ||
33 | select FSL_SOC | ||
34 | select PPC_CPM_NEW_BINDING | ||
35 | select MDIO_BITBANG | ||
36 | help | ||
37 | This enables support for the Embedded Planet EP8248E board. | ||
38 | |||
39 | This board is also resold by Freescale as the QUICCStart | ||
40 | MPC8248 Evaluation System and/or the CWH-PPC-8248N-VE. | ||
41 | |||
29 | endchoice | 42 | endchoice |
30 | 43 | ||
31 | config PQ2ADS | 44 | config PQ2ADS |
diff --git a/arch/powerpc/platforms/82xx/Makefile b/arch/powerpc/platforms/82xx/Makefile index 68c8b0c9772b..6cd5cd59bf2a 100644 --- a/arch/powerpc/platforms/82xx/Makefile +++ b/arch/powerpc/platforms/82xx/Makefile | |||
@@ -5,3 +5,4 @@ obj-$(CONFIG_MPC8272_ADS) += mpc8272_ads.o | |||
5 | obj-$(CONFIG_CPM2) += pq2.o | 5 | obj-$(CONFIG_CPM2) += pq2.o |
6 | obj-$(CONFIG_PQ2_ADS_PCI_PIC) += pq2ads-pci-pic.o | 6 | obj-$(CONFIG_PQ2_ADS_PCI_PIC) += pq2ads-pci-pic.o |
7 | obj-$(CONFIG_PQ2FADS) += pq2fads.o | 7 | obj-$(CONFIG_PQ2FADS) += pq2fads.o |
8 | obj-$(CONFIG_EP8248E) += ep8248e.o | ||
diff --git a/arch/powerpc/platforms/82xx/ep8248e.c b/arch/powerpc/platforms/82xx/ep8248e.c new file mode 100644 index 000000000000..ba93d8ae9b0c --- /dev/null +++ b/arch/powerpc/platforms/82xx/ep8248e.c | |||
@@ -0,0 +1,324 @@ | |||
1 | /* | ||
2 | * Embedded Planet EP8248E support | ||
3 | * | ||
4 | * Copyright 2007 Freescale Semiconductor, Inc. | ||
5 | * Author: Scott Wood <scottwood@freescale.com> | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify it | ||
8 | * under the terms of the GNU General Public License as published by the | ||
9 | * Free Software Foundation; either version 2 of the License, or (at your | ||
10 | * option) any later version. | ||
11 | */ | ||
12 | |||
13 | #include <linux/init.h> | ||
14 | #include <linux/interrupt.h> | ||
15 | #include <linux/fsl_devices.h> | ||
16 | #include <linux/mdio-bitbang.h> | ||
17 | #include <linux/of_platform.h> | ||
18 | |||
19 | #include <asm/io.h> | ||
20 | #include <asm/cpm2.h> | ||
21 | #include <asm/udbg.h> | ||
22 | #include <asm/machdep.h> | ||
23 | #include <asm/time.h> | ||
24 | #include <asm/mpc8260.h> | ||
25 | #include <asm/prom.h> | ||
26 | |||
27 | #include <sysdev/fsl_soc.h> | ||
28 | #include <sysdev/cpm2_pic.h> | ||
29 | |||
30 | #include "pq2.h" | ||
31 | |||
32 | static u8 __iomem *ep8248e_bcsr; | ||
33 | static struct device_node *ep8248e_bcsr_node; | ||
34 | |||
35 | #define BCSR7_SCC2_ENABLE 0x10 | ||
36 | |||
37 | #define BCSR8_PHY1_ENABLE 0x80 | ||
38 | #define BCSR8_PHY1_POWER 0x40 | ||
39 | #define BCSR8_PHY2_ENABLE 0x20 | ||
40 | #define BCSR8_PHY2_POWER 0x10 | ||
41 | #define BCSR8_MDIO_READ 0x04 | ||
42 | #define BCSR8_MDIO_CLOCK 0x02 | ||
43 | #define BCSR8_MDIO_DATA 0x01 | ||
44 | |||
45 | #define BCSR9_USB_ENABLE 0x80 | ||
46 | #define BCSR9_USB_POWER 0x40 | ||
47 | #define BCSR9_USB_HOST 0x20 | ||
48 | #define BCSR9_USB_FULL_SPEED_TARGET 0x10 | ||
49 | |||
50 | static void __init ep8248e_pic_init(void) | ||
51 | { | ||
52 | struct device_node *np = of_find_compatible_node(NULL, NULL, "fsl,pq2-pic"); | ||
53 | if (!np) { | ||
54 | printk(KERN_ERR "PIC init: can not find cpm-pic node\n"); | ||
55 | return; | ||
56 | } | ||
57 | |||
58 | cpm2_pic_init(np); | ||
59 | of_node_put(np); | ||
60 | } | ||
61 | |||
62 | static void ep8248e_set_mdc(struct mdiobb_ctrl *ctrl, int level) | ||
63 | { | ||
64 | if (level) | ||
65 | setbits8(&ep8248e_bcsr[8], BCSR8_MDIO_CLOCK); | ||
66 | else | ||
67 | clrbits8(&ep8248e_bcsr[8], BCSR8_MDIO_CLOCK); | ||
68 | |||
69 | /* Read back to flush the write. */ | ||
70 | in_8(&ep8248e_bcsr[8]); | ||
71 | } | ||
72 | |||
73 | static void ep8248e_set_mdio_dir(struct mdiobb_ctrl *ctrl, int output) | ||
74 | { | ||
75 | if (output) | ||
76 | clrbits8(&ep8248e_bcsr[8], BCSR8_MDIO_READ); | ||
77 | else | ||
78 | setbits8(&ep8248e_bcsr[8], BCSR8_MDIO_READ); | ||
79 | |||
80 | /* Read back to flush the write. */ | ||
81 | in_8(&ep8248e_bcsr[8]); | ||
82 | } | ||
83 | |||
84 | static void ep8248e_set_mdio_data(struct mdiobb_ctrl *ctrl, int data) | ||
85 | { | ||
86 | if (data) | ||
87 | setbits8(&ep8248e_bcsr[8], BCSR8_MDIO_DATA); | ||
88 | else | ||
89 | clrbits8(&ep8248e_bcsr[8], BCSR8_MDIO_DATA); | ||
90 | |||
91 | /* Read back to flush the write. */ | ||
92 | in_8(&ep8248e_bcsr[8]); | ||
93 | } | ||
94 | |||
95 | static int ep8248e_get_mdio_data(struct mdiobb_ctrl *ctrl) | ||
96 | { | ||
97 | return in_8(&ep8248e_bcsr[8]) & BCSR8_MDIO_DATA; | ||
98 | } | ||
99 | |||
100 | static const struct mdiobb_ops ep8248e_mdio_ops = { | ||
101 | .set_mdc = ep8248e_set_mdc, | ||
102 | .set_mdio_dir = ep8248e_set_mdio_dir, | ||
103 | .set_mdio_data = ep8248e_set_mdio_data, | ||
104 | .get_mdio_data = ep8248e_get_mdio_data, | ||
105 | .owner = THIS_MODULE, | ||
106 | }; | ||
107 | |||
108 | static struct mdiobb_ctrl ep8248e_mdio_ctrl = { | ||
109 | .ops = &ep8248e_mdio_ops, | ||
110 | }; | ||
111 | |||
112 | static int __devinit ep8248e_mdio_probe(struct of_device *ofdev, | ||
113 | const struct of_device_id *match) | ||
114 | { | ||
115 | struct mii_bus *bus; | ||
116 | struct resource res; | ||
117 | struct device_node *node; | ||
118 | int ret, i; | ||
119 | |||
120 | node = of_get_parent(ofdev->node); | ||
121 | of_node_put(node); | ||
122 | if (node != ep8248e_bcsr_node) | ||
123 | return -ENODEV; | ||
124 | |||
125 | ret = of_address_to_resource(ofdev->node, 0, &res); | ||
126 | if (ret) | ||
127 | return ret; | ||
128 | |||
129 | bus = alloc_mdio_bitbang(&ep8248e_mdio_ctrl); | ||
130 | if (!bus) | ||
131 | return -ENOMEM; | ||
132 | |||
133 | bus->phy_mask = 0; | ||
134 | bus->irq = kmalloc(sizeof(int) * PHY_MAX_ADDR, GFP_KERNEL); | ||
135 | |||
136 | for (i = 0; i < PHY_MAX_ADDR; i++) | ||
137 | bus->irq[i] = -1; | ||
138 | |||
139 | bus->name = "ep8248e-mdio-bitbang"; | ||
140 | bus->dev = &ofdev->dev; | ||
141 | bus->id = res.start; | ||
142 | |||
143 | return mdiobus_register(bus); | ||
144 | } | ||
145 | |||
146 | static int ep8248e_mdio_remove(struct of_device *ofdev) | ||
147 | { | ||
148 | BUG(); | ||
149 | return 0; | ||
150 | } | ||
151 | |||
152 | static const struct of_device_id ep8248e_mdio_match[] = { | ||
153 | { | ||
154 | .compatible = "fsl,ep8248e-mdio-bitbang", | ||
155 | }, | ||
156 | {}, | ||
157 | }; | ||
158 | |||
159 | static struct of_platform_driver ep8248e_mdio_driver = { | ||
160 | .driver = { | ||
161 | .name = "ep8248e-mdio-bitbang", | ||
162 | }, | ||
163 | .match_table = ep8248e_mdio_match, | ||
164 | .probe = ep8248e_mdio_probe, | ||
165 | .remove = ep8248e_mdio_remove, | ||
166 | }; | ||
167 | |||
168 | struct cpm_pin { | ||
169 | int port, pin, flags; | ||
170 | }; | ||
171 | |||
172 | static __initdata struct cpm_pin ep8248e_pins[] = { | ||
173 | /* SMC1 */ | ||
174 | {2, 4, CPM_PIN_INPUT | CPM_PIN_PRIMARY}, | ||
175 | {2, 5, CPM_PIN_OUTPUT | CPM_PIN_PRIMARY}, | ||
176 | |||
177 | /* SCC1 */ | ||
178 | {2, 14, CPM_PIN_INPUT | CPM_PIN_PRIMARY}, | ||
179 | {2, 15, CPM_PIN_INPUT | CPM_PIN_PRIMARY}, | ||
180 | {3, 29, CPM_PIN_OUTPUT | CPM_PIN_PRIMARY}, | ||
181 | {3, 30, CPM_PIN_OUTPUT | CPM_PIN_SECONDARY}, | ||
182 | {3, 31, CPM_PIN_INPUT | CPM_PIN_PRIMARY}, | ||
183 | |||
184 | /* FCC1 */ | ||
185 | {0, 14, CPM_PIN_INPUT | CPM_PIN_PRIMARY}, | ||
186 | {0, 15, CPM_PIN_INPUT | CPM_PIN_PRIMARY}, | ||
187 | {0, 16, CPM_PIN_INPUT | CPM_PIN_PRIMARY}, | ||
188 | {0, 17, CPM_PIN_INPUT | CPM_PIN_PRIMARY}, | ||
189 | {0, 18, CPM_PIN_OUTPUT | CPM_PIN_PRIMARY}, | ||
190 | {0, 19, CPM_PIN_OUTPUT | CPM_PIN_PRIMARY}, | ||
191 | {0, 20, CPM_PIN_OUTPUT | CPM_PIN_PRIMARY}, | ||
192 | {0, 21, CPM_PIN_OUTPUT | CPM_PIN_PRIMARY}, | ||
193 | {0, 26, CPM_PIN_INPUT | CPM_PIN_SECONDARY}, | ||
194 | {0, 27, CPM_PIN_INPUT | CPM_PIN_SECONDARY}, | ||
195 | {0, 28, CPM_PIN_OUTPUT | CPM_PIN_SECONDARY}, | ||
196 | {0, 29, CPM_PIN_OUTPUT | CPM_PIN_SECONDARY}, | ||
197 | {0, 30, CPM_PIN_INPUT | CPM_PIN_SECONDARY}, | ||
198 | {0, 31, CPM_PIN_INPUT | CPM_PIN_SECONDARY}, | ||
199 | {2, 21, CPM_PIN_INPUT | CPM_PIN_PRIMARY}, | ||
200 | {2, 22, CPM_PIN_INPUT | CPM_PIN_PRIMARY}, | ||
201 | |||
202 | /* FCC2 */ | ||
203 | {1, 18, CPM_PIN_INPUT | CPM_PIN_PRIMARY}, | ||
204 | {1, 19, CPM_PIN_INPUT | CPM_PIN_PRIMARY}, | ||
205 | {1, 20, CPM_PIN_INPUT | CPM_PIN_PRIMARY}, | ||
206 | {1, 21, CPM_PIN_INPUT | CPM_PIN_PRIMARY}, | ||
207 | {1, 22, CPM_PIN_OUTPUT | CPM_PIN_PRIMARY}, | ||
208 | {1, 23, CPM_PIN_OUTPUT | CPM_PIN_PRIMARY}, | ||
209 | {1, 24, CPM_PIN_OUTPUT | CPM_PIN_PRIMARY}, | ||
210 | {1, 25, CPM_PIN_OUTPUT | CPM_PIN_PRIMARY}, | ||
211 | {1, 26, CPM_PIN_INPUT | CPM_PIN_PRIMARY}, | ||
212 | {1, 27, CPM_PIN_INPUT | CPM_PIN_PRIMARY}, | ||
213 | {1, 28, CPM_PIN_INPUT | CPM_PIN_PRIMARY}, | ||
214 | {1, 29, CPM_PIN_OUTPUT | CPM_PIN_SECONDARY}, | ||
215 | {1, 30, CPM_PIN_INPUT | CPM_PIN_PRIMARY}, | ||
216 | {1, 31, CPM_PIN_OUTPUT | CPM_PIN_PRIMARY}, | ||
217 | {2, 18, CPM_PIN_INPUT | CPM_PIN_PRIMARY}, | ||
218 | {2, 19, CPM_PIN_INPUT | CPM_PIN_PRIMARY}, | ||
219 | |||
220 | /* I2C */ | ||
221 | {4, 14, CPM_PIN_INPUT | CPM_PIN_SECONDARY}, | ||
222 | {4, 15, CPM_PIN_INPUT | CPM_PIN_SECONDARY}, | ||
223 | |||
224 | /* USB */ | ||
225 | {2, 10, CPM_PIN_INPUT | CPM_PIN_PRIMARY}, | ||
226 | {2, 11, CPM_PIN_INPUT | CPM_PIN_PRIMARY}, | ||
227 | {2, 20, CPM_PIN_OUTPUT | CPM_PIN_PRIMARY}, | ||
228 | {2, 24, CPM_PIN_INPUT | CPM_PIN_PRIMARY}, | ||
229 | {3, 23, CPM_PIN_OUTPUT | CPM_PIN_PRIMARY}, | ||
230 | {3, 24, CPM_PIN_OUTPUT | CPM_PIN_PRIMARY}, | ||
231 | {3, 25, CPM_PIN_INPUT | CPM_PIN_PRIMARY}, | ||
232 | }; | ||
233 | |||
234 | static void __init init_ioports(void) | ||
235 | { | ||
236 | int i; | ||
237 | |||
238 | for (i = 0; i < ARRAY_SIZE(ep8248e_pins); i++) { | ||
239 | const struct cpm_pin *pin = &ep8248e_pins[i]; | ||
240 | cpm2_set_pin(pin->port, pin->pin, pin->flags); | ||
241 | } | ||
242 | |||
243 | cpm2_smc_clk_setup(CPM_CLK_SMC1, CPM_BRG7); | ||
244 | cpm2_clk_setup(CPM_CLK_SCC1, CPM_BRG1, CPM_CLK_RX); | ||
245 | cpm2_clk_setup(CPM_CLK_SCC1, CPM_BRG1, CPM_CLK_TX); | ||
246 | cpm2_clk_setup(CPM_CLK_SCC3, CPM_CLK8, CPM_CLK_TX); /* USB */ | ||
247 | cpm2_clk_setup(CPM_CLK_FCC1, CPM_CLK11, CPM_CLK_RX); | ||
248 | cpm2_clk_setup(CPM_CLK_FCC1, CPM_CLK10, CPM_CLK_TX); | ||
249 | cpm2_clk_setup(CPM_CLK_FCC2, CPM_CLK13, CPM_CLK_RX); | ||
250 | cpm2_clk_setup(CPM_CLK_FCC2, CPM_CLK14, CPM_CLK_TX); | ||
251 | } | ||
252 | |||
253 | static void __init ep8248e_setup_arch(void) | ||
254 | { | ||
255 | if (ppc_md.progress) | ||
256 | ppc_md.progress("ep8248e_setup_arch()", 0); | ||
257 | |||
258 | cpm2_reset(); | ||
259 | |||
260 | /* When this is set, snooping CPM DMA from RAM causes | ||
261 | * machine checks. See erratum SIU18. | ||
262 | */ | ||
263 | clrbits32(&cpm2_immr->im_siu_conf.siu_82xx.sc_bcr, MPC82XX_BCR_PLDP); | ||
264 | |||
265 | ep8248e_bcsr_node = | ||
266 | of_find_compatible_node(NULL, NULL, "fsl,ep8248e-bcsr"); | ||
267 | if (!ep8248e_bcsr_node) { | ||
268 | printk(KERN_ERR "No bcsr in device tree\n"); | ||
269 | return; | ||
270 | } | ||
271 | |||
272 | ep8248e_bcsr = of_iomap(ep8248e_bcsr_node, 0); | ||
273 | if (!ep8248e_bcsr) { | ||
274 | printk(KERN_ERR "Cannot map BCSR registers\n"); | ||
275 | of_node_put(ep8248e_bcsr_node); | ||
276 | ep8248e_bcsr_node = NULL; | ||
277 | return; | ||
278 | } | ||
279 | |||
280 | setbits8(&ep8248e_bcsr[7], BCSR7_SCC2_ENABLE); | ||
281 | setbits8(&ep8248e_bcsr[8], BCSR8_PHY1_ENABLE | BCSR8_PHY1_POWER | | ||
282 | BCSR8_PHY2_ENABLE | BCSR8_PHY2_POWER); | ||
283 | |||
284 | init_ioports(); | ||
285 | |||
286 | if (ppc_md.progress) | ||
287 | ppc_md.progress("ep8248e_setup_arch(), finish", 0); | ||
288 | } | ||
289 | |||
290 | static __initdata struct of_device_id of_bus_ids[] = { | ||
291 | { .compatible = "simple-bus", }, | ||
292 | { .compatible = "fsl,ep8248e-bcsr", }, | ||
293 | {}, | ||
294 | }; | ||
295 | |||
296 | static int __init declare_of_platform_devices(void) | ||
297 | { | ||
298 | of_platform_bus_probe(NULL, of_bus_ids, NULL); | ||
299 | of_register_platform_driver(&ep8248e_mdio_driver); | ||
300 | |||
301 | return 0; | ||
302 | } | ||
303 | machine_device_initcall(ep8248e, declare_of_platform_devices); | ||
304 | |||
305 | /* | ||
306 | * Called very early, device-tree isn't unflattened | ||
307 | */ | ||
308 | static int __init ep8248e_probe(void) | ||
309 | { | ||
310 | unsigned long root = of_get_flat_dt_root(); | ||
311 | return of_flat_dt_is_compatible(root, "fsl,ep8248e"); | ||
312 | } | ||
313 | |||
314 | define_machine(ep8248e) | ||
315 | { | ||
316 | .name = "Embedded Planet EP8248E", | ||
317 | .probe = ep8248e_probe, | ||
318 | .setup_arch = ep8248e_setup_arch, | ||
319 | .init_IRQ = ep8248e_pic_init, | ||
320 | .get_irq = cpm2_get_irq, | ||
321 | .calibrate_decr = generic_calibrate_decr, | ||
322 | .restart = pq2_restart, | ||
323 | .progress = udbg_progress, | ||
324 | }; | ||
diff --git a/arch/powerpc/platforms/83xx/mpc8313_rdb.c b/arch/powerpc/platforms/83xx/mpc8313_rdb.c index 6fb82993967c..4996b7dfdf1d 100644 --- a/arch/powerpc/platforms/83xx/mpc8313_rdb.c +++ b/arch/powerpc/platforms/83xx/mpc8313_rdb.c | |||
@@ -14,6 +14,7 @@ | |||
14 | */ | 14 | */ |
15 | 15 | ||
16 | #include <linux/pci.h> | 16 | #include <linux/pci.h> |
17 | #include <linux/of_platform.h> | ||
17 | 18 | ||
18 | #include <asm/time.h> | 19 | #include <asm/time.h> |
19 | #include <asm/ipic.h> | 20 | #include <asm/ipic.h> |
@@ -75,6 +76,18 @@ static int __init mpc8313_rdb_probe(void) | |||
75 | return of_flat_dt_is_compatible(root, "MPC8313ERDB"); | 76 | return of_flat_dt_is_compatible(root, "MPC8313ERDB"); |
76 | } | 77 | } |
77 | 78 | ||
79 | static struct of_device_id __initdata of_bus_ids[] = { | ||
80 | { .compatible = "simple-bus" }, | ||
81 | {}, | ||
82 | }; | ||
83 | |||
84 | static int __init declare_of_platform_devices(void) | ||
85 | { | ||
86 | of_platform_bus_probe(NULL, of_bus_ids, NULL); | ||
87 | return 0; | ||
88 | } | ||
89 | machine_device_initcall(mpc8313_rdb, declare_of_platform_devices); | ||
90 | |||
78 | define_machine(mpc8313_rdb) { | 91 | define_machine(mpc8313_rdb) { |
79 | .name = "MPC8313 RDB", | 92 | .name = "MPC8313 RDB", |
80 | .probe = mpc8313_rdb_probe, | 93 | .probe = mpc8313_rdb_probe, |
diff --git a/arch/powerpc/platforms/83xx/mpc832x_mds.c b/arch/powerpc/platforms/83xx/mpc832x_mds.c index 1e570bb947fc..dbdd4adef645 100644 --- a/arch/powerpc/platforms/83xx/mpc832x_mds.c +++ b/arch/powerpc/platforms/83xx/mpc832x_mds.c | |||
@@ -110,15 +110,12 @@ static struct of_device_id mpc832x_ids[] = { | |||
110 | 110 | ||
111 | static int __init mpc832x_declare_of_platform_devices(void) | 111 | static int __init mpc832x_declare_of_platform_devices(void) |
112 | { | 112 | { |
113 | if (!machine_is(mpc832x_mds)) | ||
114 | return 0; | ||
115 | |||
116 | /* Publish the QE devices */ | 113 | /* Publish the QE devices */ |
117 | of_platform_bus_probe(NULL, mpc832x_ids, NULL); | 114 | of_platform_bus_probe(NULL, mpc832x_ids, NULL); |
118 | 115 | ||
119 | return 0; | 116 | return 0; |
120 | } | 117 | } |
121 | device_initcall(mpc832x_declare_of_platform_devices); | 118 | machine_device_initcall(mpc832x_mds, mpc832x_declare_of_platform_devices); |
122 | 119 | ||
123 | static void __init mpc832x_sys_init_IRQ(void) | 120 | static void __init mpc832x_sys_init_IRQ(void) |
124 | { | 121 | { |
diff --git a/arch/powerpc/platforms/83xx/mpc832x_rdb.c b/arch/powerpc/platforms/83xx/mpc832x_rdb.c index ffb2e9361ce3..5fddd2285abb 100644 --- a/arch/powerpc/platforms/83xx/mpc832x_rdb.c +++ b/arch/powerpc/platforms/83xx/mpc832x_rdb.c | |||
@@ -63,9 +63,6 @@ static struct spi_board_info mpc832x_spi_boardinfo = { | |||
63 | 63 | ||
64 | static int __init mpc832x_spi_init(void) | 64 | static int __init mpc832x_spi_init(void) |
65 | { | 65 | { |
66 | if (!machine_is(mpc832x_rdb)) | ||
67 | return 0; | ||
68 | |||
69 | par_io_config_pin(3, 0, 3, 0, 1, 0); /* SPI1 MOSI, I/O */ | 66 | par_io_config_pin(3, 0, 3, 0, 1, 0); /* SPI1 MOSI, I/O */ |
70 | par_io_config_pin(3, 1, 3, 0, 1, 0); /* SPI1 MISO, I/O */ | 67 | par_io_config_pin(3, 1, 3, 0, 1, 0); /* SPI1 MISO, I/O */ |
71 | par_io_config_pin(3, 2, 3, 0, 1, 0); /* SPI1 CLK, I/O */ | 68 | par_io_config_pin(3, 2, 3, 0, 1, 0); /* SPI1 CLK, I/O */ |
@@ -80,7 +77,7 @@ static int __init mpc832x_spi_init(void) | |||
80 | mpc83xx_spi_deactivate_cs); | 77 | mpc83xx_spi_deactivate_cs); |
81 | } | 78 | } |
82 | 79 | ||
83 | device_initcall(mpc832x_spi_init); | 80 | machine_device_initcall(mpc832x_rdb, mpc832x_spi_init); |
84 | 81 | ||
85 | /* ************************************************************************ | 82 | /* ************************************************************************ |
86 | * | 83 | * |
@@ -123,15 +120,12 @@ static struct of_device_id mpc832x_ids[] = { | |||
123 | 120 | ||
124 | static int __init mpc832x_declare_of_platform_devices(void) | 121 | static int __init mpc832x_declare_of_platform_devices(void) |
125 | { | 122 | { |
126 | if (!machine_is(mpc832x_rdb)) | ||
127 | return 0; | ||
128 | |||
129 | /* Publish the QE devices */ | 123 | /* Publish the QE devices */ |
130 | of_platform_bus_probe(NULL, mpc832x_ids, NULL); | 124 | of_platform_bus_probe(NULL, mpc832x_ids, NULL); |
131 | 125 | ||
132 | return 0; | 126 | return 0; |
133 | } | 127 | } |
134 | device_initcall(mpc832x_declare_of_platform_devices); | 128 | machine_device_initcall(mpc832x_rdb, mpc832x_declare_of_platform_devices); |
135 | 129 | ||
136 | void __init mpc832x_rdb_init_IRQ(void) | 130 | void __init mpc832x_rdb_init_IRQ(void) |
137 | { | 131 | { |
diff --git a/arch/powerpc/platforms/83xx/mpc834x_itx.c b/arch/powerpc/platforms/83xx/mpc834x_itx.c index aa768199432d..50e8f632061c 100644 --- a/arch/powerpc/platforms/83xx/mpc834x_itx.c +++ b/arch/powerpc/platforms/83xx/mpc834x_itx.c | |||
@@ -23,6 +23,7 @@ | |||
23 | #include <linux/delay.h> | 23 | #include <linux/delay.h> |
24 | #include <linux/seq_file.h> | 24 | #include <linux/seq_file.h> |
25 | #include <linux/root_dev.h> | 25 | #include <linux/root_dev.h> |
26 | #include <linux/of_platform.h> | ||
26 | 27 | ||
27 | #include <asm/system.h> | 28 | #include <asm/system.h> |
28 | #include <asm/atomic.h> | 29 | #include <asm/atomic.h> |
@@ -37,6 +38,17 @@ | |||
37 | 38 | ||
38 | #include "mpc83xx.h" | 39 | #include "mpc83xx.h" |
39 | 40 | ||
41 | static struct of_device_id __initdata mpc834x_itx_ids[] = { | ||
42 | { .compatible = "fsl,pq2pro-localbus", }, | ||
43 | {}, | ||
44 | }; | ||
45 | |||
46 | static int __init mpc834x_itx_declare_of_platform_devices(void) | ||
47 | { | ||
48 | return of_platform_bus_probe(NULL, mpc834x_itx_ids, NULL); | ||
49 | } | ||
50 | machine_device_initcall(mpc834x_itx, mpc834x_itx_declare_of_platform_devices); | ||
51 | |||
40 | /* ************************************************************************ | 52 | /* ************************************************************************ |
41 | * | 53 | * |
42 | * Setup the architecture | 54 | * Setup the architecture |
diff --git a/arch/powerpc/platforms/83xx/mpc834x_mds.c b/arch/powerpc/platforms/83xx/mpc834x_mds.c index 459fb7227e76..2b8a0a3f8557 100644 --- a/arch/powerpc/platforms/83xx/mpc834x_mds.c +++ b/arch/powerpc/platforms/83xx/mpc834x_mds.c | |||
@@ -115,13 +115,10 @@ static struct of_device_id mpc834x_ids[] = { | |||
115 | 115 | ||
116 | static int __init mpc834x_declare_of_platform_devices(void) | 116 | static int __init mpc834x_declare_of_platform_devices(void) |
117 | { | 117 | { |
118 | if (!machine_is(mpc834x_mds)) | ||
119 | return 0; | ||
120 | |||
121 | of_platform_bus_probe(NULL, mpc834x_ids, NULL); | 118 | of_platform_bus_probe(NULL, mpc834x_ids, NULL); |
122 | return 0; | 119 | return 0; |
123 | } | 120 | } |
124 | device_initcall(mpc834x_declare_of_platform_devices); | 121 | machine_device_initcall(mpc834x_mds, mpc834x_declare_of_platform_devices); |
125 | 122 | ||
126 | /* | 123 | /* |
127 | * Called very early, MMU is off, device-tree isn't unflattened | 124 | * Called very early, MMU is off, device-tree isn't unflattened |
diff --git a/arch/powerpc/platforms/83xx/mpc836x_mds.c b/arch/powerpc/platforms/83xx/mpc836x_mds.c index 2ac9890b763c..db491ec006e0 100644 --- a/arch/powerpc/platforms/83xx/mpc836x_mds.c +++ b/arch/powerpc/platforms/83xx/mpc836x_mds.c | |||
@@ -141,15 +141,12 @@ static struct of_device_id mpc836x_ids[] = { | |||
141 | 141 | ||
142 | static int __init mpc836x_declare_of_platform_devices(void) | 142 | static int __init mpc836x_declare_of_platform_devices(void) |
143 | { | 143 | { |
144 | if (!machine_is(mpc836x_mds)) | ||
145 | return 0; | ||
146 | |||
147 | /* Publish the QE devices */ | 144 | /* Publish the QE devices */ |
148 | of_platform_bus_probe(NULL, mpc836x_ids, NULL); | 145 | of_platform_bus_probe(NULL, mpc836x_ids, NULL); |
149 | 146 | ||
150 | return 0; | 147 | return 0; |
151 | } | 148 | } |
152 | device_initcall(mpc836x_declare_of_platform_devices); | 149 | machine_device_initcall(mpc836x_mds, mpc836x_declare_of_platform_devices); |
153 | 150 | ||
154 | static void __init mpc836x_mds_init_IRQ(void) | 151 | static void __init mpc836x_mds_init_IRQ(void) |
155 | { | 152 | { |
diff --git a/arch/powerpc/platforms/83xx/mpc837x_mds.c b/arch/powerpc/platforms/83xx/mpc837x_mds.c index 9cdc32b4fa18..8a9c26973605 100644 --- a/arch/powerpc/platforms/83xx/mpc837x_mds.c +++ b/arch/powerpc/platforms/83xx/mpc837x_mds.c | |||
@@ -22,6 +22,56 @@ | |||
22 | 22 | ||
23 | #include "mpc83xx.h" | 23 | #include "mpc83xx.h" |
24 | 24 | ||
25 | #define BCSR12_USB_SER_MASK 0x8a | ||
26 | #define BCSR12_USB_SER_PIN 0x80 | ||
27 | #define BCSR12_USB_SER_DEVICE 0x02 | ||
28 | extern int mpc837x_usb_cfg(void); | ||
29 | |||
30 | static int mpc837xmds_usb_cfg(void) | ||
31 | { | ||
32 | struct device_node *np; | ||
33 | const void *phy_type, *mode; | ||
34 | void __iomem *bcsr_regs = NULL; | ||
35 | u8 bcsr12; | ||
36 | int ret; | ||
37 | |||
38 | ret = mpc837x_usb_cfg(); | ||
39 | if (ret) | ||
40 | return ret; | ||
41 | /* Map BCSR area */ | ||
42 | np = of_find_node_by_name(NULL, "bcsr"); | ||
43 | if (np) { | ||
44 | struct resource res; | ||
45 | |||
46 | of_address_to_resource(np, 0, &res); | ||
47 | bcsr_regs = ioremap(res.start, res.end - res.start + 1); | ||
48 | of_node_put(np); | ||
49 | } | ||
50 | if (!bcsr_regs) | ||
51 | return -1; | ||
52 | |||
53 | np = of_find_node_by_name(NULL, "usb"); | ||
54 | if (!np) | ||
55 | return -ENODEV; | ||
56 | phy_type = of_get_property(np, "phy_type", NULL); | ||
57 | if (phy_type && !strcmp(phy_type, "ulpi")) { | ||
58 | clrbits8(bcsr_regs + 12, BCSR12_USB_SER_PIN); | ||
59 | } else if (phy_type && !strcmp(phy_type, "serial")) { | ||
60 | mode = of_get_property(np, "dr_mode", NULL); | ||
61 | bcsr12 = in_8(bcsr_regs + 12) & ~BCSR12_USB_SER_MASK; | ||
62 | bcsr12 |= BCSR12_USB_SER_PIN; | ||
63 | if (mode && !strcmp(mode, "peripheral")) | ||
64 | bcsr12 |= BCSR12_USB_SER_DEVICE; | ||
65 | out_8(bcsr_regs + 12, bcsr12); | ||
66 | } else { | ||
67 | printk(KERN_ERR "USB DR: unsupported PHY\n"); | ||
68 | } | ||
69 | |||
70 | of_node_put(np); | ||
71 | iounmap(bcsr_regs); | ||
72 | return 0; | ||
73 | } | ||
74 | |||
25 | /* ************************************************************************ | 75 | /* ************************************************************************ |
26 | * | 76 | * |
27 | * Setup the architecture | 77 | * Setup the architecture |
@@ -40,6 +90,7 @@ static void __init mpc837x_mds_setup_arch(void) | |||
40 | for_each_compatible_node(np, "pci", "fsl,mpc8349-pci") | 90 | for_each_compatible_node(np, "pci", "fsl,mpc8349-pci") |
41 | mpc83xx_add_bridge(np); | 91 | mpc83xx_add_bridge(np); |
42 | #endif | 92 | #endif |
93 | mpc837xmds_usb_cfg(); | ||
43 | } | 94 | } |
44 | 95 | ||
45 | static struct of_device_id mpc837x_ids[] = { | 96 | static struct of_device_id mpc837x_ids[] = { |
@@ -50,15 +101,12 @@ static struct of_device_id mpc837x_ids[] = { | |||
50 | 101 | ||
51 | static int __init mpc837x_declare_of_platform_devices(void) | 102 | static int __init mpc837x_declare_of_platform_devices(void) |
52 | { | 103 | { |
53 | if (!machine_is(mpc837x_mds)) | ||
54 | return 0; | ||
55 | |||
56 | /* Publish of_device */ | 104 | /* Publish of_device */ |
57 | of_platform_bus_probe(NULL, mpc837x_ids, NULL); | 105 | of_platform_bus_probe(NULL, mpc837x_ids, NULL); |
58 | 106 | ||
59 | return 0; | 107 | return 0; |
60 | } | 108 | } |
61 | device_initcall(mpc837x_declare_of_platform_devices); | 109 | machine_device_initcall(mpc837x_mds, mpc837x_declare_of_platform_devices); |
62 | 110 | ||
63 | static void __init mpc837x_mds_init_IRQ(void) | 111 | static void __init mpc837x_mds_init_IRQ(void) |
64 | { | 112 | { |
diff --git a/arch/powerpc/platforms/83xx/mpc83xx.h b/arch/powerpc/platforms/83xx/mpc83xx.h index b778cb4f3fb5..88bb748aff0d 100644 --- a/arch/powerpc/platforms/83xx/mpc83xx.h +++ b/arch/powerpc/platforms/83xx/mpc83xx.h | |||
@@ -14,6 +14,7 @@ | |||
14 | #define MPC83XX_SCCR_USB_DRCM_11 0x00300000 | 14 | #define MPC83XX_SCCR_USB_DRCM_11 0x00300000 |
15 | #define MPC83XX_SCCR_USB_DRCM_01 0x00100000 | 15 | #define MPC83XX_SCCR_USB_DRCM_01 0x00100000 |
16 | #define MPC83XX_SCCR_USB_DRCM_10 0x00200000 | 16 | #define MPC83XX_SCCR_USB_DRCM_10 0x00200000 |
17 | #define MPC837X_SCCR_USB_DRCM_11 0x00c00000 | ||
17 | 18 | ||
18 | /* system i/o configuration register low */ | 19 | /* system i/o configuration register low */ |
19 | #define MPC83XX_SICRL_OFFS 0x114 | 20 | #define MPC83XX_SICRL_OFFS 0x114 |
@@ -22,6 +23,8 @@ | |||
22 | #define MPC834X_SICRL_USB1 0x20000000 | 23 | #define MPC834X_SICRL_USB1 0x20000000 |
23 | #define MPC831X_SICRL_USB_MASK 0x00000c00 | 24 | #define MPC831X_SICRL_USB_MASK 0x00000c00 |
24 | #define MPC831X_SICRL_USB_ULPI 0x00000800 | 25 | #define MPC831X_SICRL_USB_ULPI 0x00000800 |
26 | #define MPC837X_SICRL_USB_MASK 0xf0000000 | ||
27 | #define MPC837X_SICRL_USB_ULPI 0x50000000 | ||
25 | 28 | ||
26 | /* system i/o configuration register high */ | 29 | /* system i/o configuration register high */ |
27 | #define MPC83XX_SICRH_OFFS 0x118 | 30 | #define MPC83XX_SICRH_OFFS 0x118 |
diff --git a/arch/powerpc/platforms/83xx/usb.c b/arch/powerpc/platforms/83xx/usb.c index b45160f8d084..6a454a4087c8 100644 --- a/arch/powerpc/platforms/83xx/usb.c +++ b/arch/powerpc/platforms/83xx/usb.c | |||
@@ -41,7 +41,7 @@ int mpc834x_usb_cfg(void) | |||
41 | sicrl = in_be32(immap + MPC83XX_SICRL_OFFS) & ~MPC834X_SICRL_USB_MASK; | 41 | sicrl = in_be32(immap + MPC83XX_SICRL_OFFS) & ~MPC834X_SICRL_USB_MASK; |
42 | sicrh = in_be32(immap + MPC83XX_SICRH_OFFS) & ~MPC834X_SICRH_USB_UTMI; | 42 | sicrh = in_be32(immap + MPC83XX_SICRH_OFFS) & ~MPC834X_SICRH_USB_UTMI; |
43 | 43 | ||
44 | np = of_find_compatible_node(NULL, "usb", "fsl-usb2-dr"); | 44 | np = of_find_compatible_node(NULL, NULL, "fsl-usb2-dr"); |
45 | if (np) { | 45 | if (np) { |
46 | sccr |= MPC83XX_SCCR_USB_DRCM_11; /* 1:3 */ | 46 | sccr |= MPC83XX_SCCR_USB_DRCM_11; /* 1:3 */ |
47 | 47 | ||
@@ -67,7 +67,7 @@ int mpc834x_usb_cfg(void) | |||
67 | port0_is_dr = 1; | 67 | port0_is_dr = 1; |
68 | of_node_put(np); | 68 | of_node_put(np); |
69 | } | 69 | } |
70 | np = of_find_compatible_node(NULL, "usb", "fsl-usb2-mph"); | 70 | np = of_find_compatible_node(NULL, NULL, "fsl-usb2-mph"); |
71 | if (np) { | 71 | if (np) { |
72 | sccr |= MPC83XX_SCCR_USB_MPHCM_11; /* 1:3 */ | 72 | sccr |= MPC83XX_SCCR_USB_MPHCM_11; /* 1:3 */ |
73 | 73 | ||
@@ -111,7 +111,7 @@ int mpc831x_usb_cfg(void) | |||
111 | const void *dr_mode; | 111 | const void *dr_mode; |
112 | #endif | 112 | #endif |
113 | 113 | ||
114 | np = of_find_compatible_node(NULL, "usb", "fsl-usb2-dr"); | 114 | np = of_find_compatible_node(NULL, NULL, "fsl-usb2-dr"); |
115 | if (!np) | 115 | if (!np) |
116 | return -ENODEV; | 116 | return -ENODEV; |
117 | prop = of_get_property(np, "phy_type", NULL); | 117 | prop = of_get_property(np, "phy_type", NULL); |
@@ -179,3 +179,43 @@ int mpc831x_usb_cfg(void) | |||
179 | return ret; | 179 | return ret; |
180 | } | 180 | } |
181 | #endif /* CONFIG_PPC_MPC831x */ | 181 | #endif /* CONFIG_PPC_MPC831x */ |
182 | |||
183 | #ifdef CONFIG_PPC_MPC837x | ||
184 | int mpc837x_usb_cfg(void) | ||
185 | { | ||
186 | void __iomem *immap; | ||
187 | struct device_node *np = NULL; | ||
188 | const void *prop; | ||
189 | int ret = 0; | ||
190 | |||
191 | np = of_find_compatible_node(NULL, NULL, "fsl-usb2-dr"); | ||
192 | if (!np) | ||
193 | return -ENODEV; | ||
194 | prop = of_get_property(np, "phy_type", NULL); | ||
195 | |||
196 | if (!prop || (strcmp(prop, "ulpi") && strcmp(prop, "serial"))) { | ||
197 | printk(KERN_WARNING "837x USB PHY type not supported\n"); | ||
198 | of_node_put(np); | ||
199 | return -EINVAL; | ||
200 | } | ||
201 | |||
202 | /* Map IMMR space for pin and clock settings */ | ||
203 | immap = ioremap(get_immrbase(), 0x1000); | ||
204 | if (!immap) { | ||
205 | of_node_put(np); | ||
206 | return -ENOMEM; | ||
207 | } | ||
208 | |||
209 | /* Configure clock */ | ||
210 | clrsetbits_be32(immap + MPC83XX_SCCR_OFFS, MPC837X_SCCR_USB_DRCM_11, | ||
211 | MPC837X_SCCR_USB_DRCM_11); | ||
212 | |||
213 | /* Configure pin mux for ULPI/serial */ | ||
214 | clrsetbits_be32(immap + MPC83XX_SICRL_OFFS, MPC837X_SICRL_USB_MASK, | ||
215 | MPC837X_SICRL_USB_ULPI); | ||
216 | |||
217 | iounmap(immap); | ||
218 | of_node_put(np); | ||
219 | return ret; | ||
220 | } | ||
221 | #endif /* CONFIG_PPC_MPC837x */ | ||
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_ads.c b/arch/powerpc/platforms/85xx/mpc85xx_ads.c index bccdc25f83a2..4e0305096114 100644 --- a/arch/powerpc/platforms/85xx/mpc85xx_ads.c +++ b/arch/powerpc/platforms/85xx/mpc85xx_ads.c | |||
@@ -52,9 +52,9 @@ static void cpm2_cascade(unsigned int irq, struct irq_desc *desc) | |||
52 | { | 52 | { |
53 | int cascade_irq; | 53 | int cascade_irq; |
54 | 54 | ||
55 | while ((cascade_irq = cpm2_get_irq()) >= 0) { | 55 | while ((cascade_irq = cpm2_get_irq()) >= 0) |
56 | generic_handle_irq(cascade_irq); | 56 | generic_handle_irq(cascade_irq); |
57 | } | 57 | |
58 | desc->chip->eoi(irq); | 58 | desc->chip->eoi(irq); |
59 | } | 59 | } |
60 | 60 | ||
@@ -70,13 +70,12 @@ static void __init mpc85xx_ads_pic_init(void) | |||
70 | #endif | 70 | #endif |
71 | 71 | ||
72 | np = of_find_node_by_type(np, "open-pic"); | 72 | np = of_find_node_by_type(np, "open-pic"); |
73 | 73 | if (!np) { | |
74 | if (np == NULL) { | ||
75 | printk(KERN_ERR "Could not find open-pic node\n"); | 74 | printk(KERN_ERR "Could not find open-pic node\n"); |
76 | return; | 75 | return; |
77 | } | 76 | } |
78 | 77 | ||
79 | if(of_address_to_resource(np, 0, &r)) { | 78 | if (of_address_to_resource(np, 0, &r)) { |
80 | printk(KERN_ERR "Could not map mpic register space\n"); | 79 | printk(KERN_ERR "Could not map mpic register space\n"); |
81 | of_node_put(np); | 80 | of_node_put(np); |
82 | return; | 81 | return; |
@@ -100,6 +99,7 @@ static void __init mpc85xx_ads_pic_init(void) | |||
100 | irq = irq_of_parse_and_map(np, 0); | 99 | irq = irq_of_parse_and_map(np, 0); |
101 | 100 | ||
102 | cpm2_pic_init(np); | 101 | cpm2_pic_init(np); |
102 | of_node_put(np); | ||
103 | set_irq_chained_handler(irq, cpm2_cascade); | 103 | set_irq_chained_handler(irq, cpm2_cascade); |
104 | #endif | 104 | #endif |
105 | } | 105 | } |
@@ -112,7 +112,7 @@ struct cpm_pin { | |||
112 | int port, pin, flags; | 112 | int port, pin, flags; |
113 | }; | 113 | }; |
114 | 114 | ||
115 | static struct cpm_pin mpc8560_ads_pins[] = { | 115 | static const struct cpm_pin mpc8560_ads_pins[] = { |
116 | /* SCC1 */ | 116 | /* SCC1 */ |
117 | {3, 29, CPM_PIN_OUTPUT | CPM_PIN_PRIMARY}, | 117 | {3, 29, CPM_PIN_OUTPUT | CPM_PIN_PRIMARY}, |
118 | {3, 30, CPM_PIN_OUTPUT | CPM_PIN_SECONDARY}, | 118 | {3, 30, CPM_PIN_OUTPUT | CPM_PIN_SECONDARY}, |
@@ -233,13 +233,11 @@ static struct of_device_id __initdata of_bus_ids[] = { | |||
233 | 233 | ||
234 | static int __init declare_of_platform_devices(void) | 234 | static int __init declare_of_platform_devices(void) |
235 | { | 235 | { |
236 | if (!machine_is(mpc85xx_ads)) | ||
237 | return 0; | ||
238 | |||
239 | of_platform_bus_probe(NULL, of_bus_ids, NULL); | 236 | of_platform_bus_probe(NULL, of_bus_ids, NULL); |
237 | |||
240 | return 0; | 238 | return 0; |
241 | } | 239 | } |
242 | device_initcall(declare_of_platform_devices); | 240 | machine_device_initcall(mpc85xx_ads, declare_of_platform_devices); |
243 | 241 | ||
244 | /* | 242 | /* |
245 | * Called very early, device-tree isn't unflattened | 243 | * Called very early, device-tree isn't unflattened |
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_cds.c b/arch/powerpc/platforms/85xx/mpc85xx_cds.c index 4d063eec6210..8b1de7884be6 100644 --- a/arch/powerpc/platforms/85xx/mpc85xx_cds.c +++ b/arch/powerpc/platforms/85xx/mpc85xx_cds.c | |||
@@ -222,9 +222,6 @@ static int mpc85xx_cds_8259_attach(void) | |||
222 | struct device_node *cascade_node = NULL; | 222 | struct device_node *cascade_node = NULL; |
223 | int cascade_irq; | 223 | int cascade_irq; |
224 | 224 | ||
225 | if (!machine_is(mpc85xx_cds)) | ||
226 | return 0; | ||
227 | |||
228 | /* Initialize the i8259 controller */ | 225 | /* Initialize the i8259 controller */ |
229 | for_each_node_by_type(np, "interrupt-controller") | 226 | for_each_node_by_type(np, "interrupt-controller") |
230 | if (of_device_is_compatible(np, "chrp,iic")) { | 227 | if (of_device_is_compatible(np, "chrp,iic")) { |
@@ -262,8 +259,7 @@ static int mpc85xx_cds_8259_attach(void) | |||
262 | 259 | ||
263 | return 0; | 260 | return 0; |
264 | } | 261 | } |
265 | 262 | machine_device_initcall(mpc85xx_cds, mpc85xx_cds_8259_attach); | |
266 | device_initcall(mpc85xx_cds_8259_attach); | ||
267 | 263 | ||
268 | #endif /* CONFIG_PPC_I8259 */ | 264 | #endif /* CONFIG_PPC_I8259 */ |
269 | 265 | ||
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_mds.c b/arch/powerpc/platforms/85xx/mpc85xx_mds.c index e6c63a5b1efb..4fdf5abefffd 100644 --- a/arch/powerpc/platforms/85xx/mpc85xx_mds.c +++ b/arch/powerpc/platforms/85xx/mpc85xx_mds.c | |||
@@ -144,15 +144,12 @@ static struct of_device_id mpc85xx_ids[] = { | |||
144 | 144 | ||
145 | static int __init mpc85xx_publish_devices(void) | 145 | static int __init mpc85xx_publish_devices(void) |
146 | { | 146 | { |
147 | if (!machine_is(mpc85xx_mds)) | ||
148 | return 0; | ||
149 | |||
150 | /* Publish the QE devices */ | 147 | /* Publish the QE devices */ |
151 | of_platform_bus_probe(NULL,mpc85xx_ids,NULL); | 148 | of_platform_bus_probe(NULL, mpc85xx_ids, NULL); |
152 | 149 | ||
153 | return 0; | 150 | return 0; |
154 | } | 151 | } |
155 | device_initcall(mpc85xx_publish_devices); | 152 | machine_device_initcall(mpc85xx_mds, mpc85xx_publish_devices); |
156 | 153 | ||
157 | static void __init mpc85xx_mds_pic_init(void) | 154 | static void __init mpc85xx_mds_pic_init(void) |
158 | { | 155 | { |
diff --git a/arch/powerpc/platforms/86xx/mpc8610_hpcd.c b/arch/powerpc/platforms/86xx/mpc8610_hpcd.c index c6d2f48f8f3d..0b07485641fe 100644 --- a/arch/powerpc/platforms/86xx/mpc8610_hpcd.c +++ b/arch/powerpc/platforms/86xx/mpc8610_hpcd.c | |||
@@ -34,9 +34,24 @@ | |||
34 | 34 | ||
35 | #include <asm/mpic.h> | 35 | #include <asm/mpic.h> |
36 | 36 | ||
37 | #include <linux/of_platform.h> | ||
37 | #include <sysdev/fsl_pci.h> | 38 | #include <sysdev/fsl_pci.h> |
38 | #include <sysdev/fsl_soc.h> | 39 | #include <sysdev/fsl_soc.h> |
39 | 40 | ||
41 | static struct of_device_id __initdata mpc8610_ids[] = { | ||
42 | { .compatible = "fsl,mpc8610-immr", }, | ||
43 | {} | ||
44 | }; | ||
45 | |||
46 | static int __init mpc8610_declare_of_platform_devices(void) | ||
47 | { | ||
48 | /* Without this call, the SSI device driver won't get probed. */ | ||
49 | of_platform_bus_probe(NULL, mpc8610_ids, NULL); | ||
50 | |||
51 | return 0; | ||
52 | } | ||
53 | machine_device_initcall(mpc86xx_hpcd, mpc8610_declare_of_platform_devices); | ||
54 | |||
40 | void __init | 55 | void __init |
41 | mpc86xx_hpcd_init_irq(void) | 56 | mpc86xx_hpcd_init_irq(void) |
42 | { | 57 | { |
diff --git a/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c b/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c index 14f4e527e7ac..cfbe8c52e263 100644 --- a/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c +++ b/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c | |||
@@ -18,6 +18,7 @@ | |||
18 | #include <linux/kdev_t.h> | 18 | #include <linux/kdev_t.h> |
19 | #include <linux/delay.h> | 19 | #include <linux/delay.h> |
20 | #include <linux/seq_file.h> | 20 | #include <linux/seq_file.h> |
21 | #include <linux/of_platform.h> | ||
21 | 22 | ||
22 | #include <asm/system.h> | 23 | #include <asm/system.h> |
23 | #include <asm/time.h> | 24 | #include <asm/time.h> |
@@ -212,6 +213,19 @@ mpc86xx_time_init(void) | |||
212 | return 0; | 213 | return 0; |
213 | } | 214 | } |
214 | 215 | ||
216 | static __initdata struct of_device_id of_bus_ids[] = { | ||
217 | { .compatible = "simple-bus", }, | ||
218 | {}, | ||
219 | }; | ||
220 | |||
221 | static int __init declare_of_platform_devices(void) | ||
222 | { | ||
223 | of_platform_bus_probe(NULL, of_bus_ids, NULL); | ||
224 | |||
225 | return 0; | ||
226 | } | ||
227 | machine_device_initcall(mpc86xx_hpcn, declare_of_platform_devices); | ||
228 | |||
215 | define_machine(mpc86xx_hpcn) { | 229 | define_machine(mpc86xx_hpcn) { |
216 | .name = "MPC86xx HPCN", | 230 | .name = "MPC86xx HPCN", |
217 | .probe = mpc86xx_hpcn_probe, | 231 | .probe = mpc86xx_hpcn_probe, |
diff --git a/arch/powerpc/platforms/8xx/Kconfig b/arch/powerpc/platforms/8xx/Kconfig index 91fbe4241918..7fd224ca233d 100644 --- a/arch/powerpc/platforms/8xx/Kconfig +++ b/arch/powerpc/platforms/8xx/Kconfig | |||
@@ -44,6 +44,15 @@ config PPC_EP88XC | |||
44 | This board is also resold by Freescale as the QUICCStart | 44 | This board is also resold by Freescale as the QUICCStart |
45 | MPC885 Evaluation System and/or the CWH-PPC-885XN-VE. | 45 | MPC885 Evaluation System and/or the CWH-PPC-885XN-VE. |
46 | 46 | ||
47 | config PPC_ADDER875 | ||
48 | bool "Analogue & Micro Adder 875" | ||
49 | select CPM1 | ||
50 | select PPC_CPM_NEW_BINDING | ||
51 | select REDBOOT | ||
52 | help | ||
53 | This enables support for the Analogue & Micro Adder 875 | ||
54 | board. | ||
55 | |||
47 | endchoice | 56 | endchoice |
48 | 57 | ||
49 | menu "Freescale Ethernet driver platform-specific options" | 58 | menu "Freescale Ethernet driver platform-specific options" |
diff --git a/arch/powerpc/platforms/8xx/Makefile b/arch/powerpc/platforms/8xx/Makefile index 8b7098018b59..7b71d9c8fb45 100644 --- a/arch/powerpc/platforms/8xx/Makefile +++ b/arch/powerpc/platforms/8xx/Makefile | |||
@@ -5,3 +5,4 @@ obj-$(CONFIG_PPC_8xx) += m8xx_setup.o | |||
5 | obj-$(CONFIG_MPC885ADS) += mpc885ads_setup.o | 5 | obj-$(CONFIG_MPC885ADS) += mpc885ads_setup.o |
6 | obj-$(CONFIG_MPC86XADS) += mpc86xads_setup.o | 6 | obj-$(CONFIG_MPC86XADS) += mpc86xads_setup.o |
7 | obj-$(CONFIG_PPC_EP88XC) += ep88xc.o | 7 | obj-$(CONFIG_PPC_EP88XC) += ep88xc.o |
8 | obj-$(CONFIG_PPC_ADDER875) += adder875.o | ||
diff --git a/arch/powerpc/platforms/8xx/adder875.c b/arch/powerpc/platforms/8xx/adder875.c new file mode 100644 index 000000000000..c6bc0783c3b0 --- /dev/null +++ b/arch/powerpc/platforms/8xx/adder875.c | |||
@@ -0,0 +1,118 @@ | |||
1 | /* Analogue & Micro Adder MPC875 board support | ||
2 | * | ||
3 | * Author: Scott Wood <scottwood@freescale.com> | ||
4 | * | ||
5 | * Copyright (c) 2007 Freescale Semiconductor, Inc. | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify | ||
8 | * it under the terms of the GNU General Public License, version 2, as | ||
9 | * published by the Free Software Foundation. | ||
10 | */ | ||
11 | |||
12 | #include <linux/init.h> | ||
13 | #include <linux/fs_enet_pd.h> | ||
14 | #include <linux/of_platform.h> | ||
15 | |||
16 | #include <asm/time.h> | ||
17 | #include <asm/machdep.h> | ||
18 | #include <asm/commproc.h> | ||
19 | #include <asm/fs_pd.h> | ||
20 | #include <asm/udbg.h> | ||
21 | #include <asm/prom.h> | ||
22 | |||
23 | #include <sysdev/commproc.h> | ||
24 | |||
25 | struct cpm_pin { | ||
26 | int port, pin, flags; | ||
27 | }; | ||
28 | |||
29 | static __initdata struct cpm_pin adder875_pins[] = { | ||
30 | /* SMC1 */ | ||
31 | {CPM_PORTB, 24, CPM_PIN_INPUT}, /* RX */ | ||
32 | {CPM_PORTB, 25, CPM_PIN_INPUT | CPM_PIN_SECONDARY}, /* TX */ | ||
33 | |||
34 | /* MII1 */ | ||
35 | {CPM_PORTA, 0, CPM_PIN_INPUT}, | ||
36 | {CPM_PORTA, 1, CPM_PIN_INPUT}, | ||
37 | {CPM_PORTA, 2, CPM_PIN_INPUT}, | ||
38 | {CPM_PORTA, 3, CPM_PIN_INPUT}, | ||
39 | {CPM_PORTA, 4, CPM_PIN_OUTPUT}, | ||
40 | {CPM_PORTA, 10, CPM_PIN_OUTPUT}, | ||
41 | {CPM_PORTA, 11, CPM_PIN_OUTPUT}, | ||
42 | {CPM_PORTB, 19, CPM_PIN_INPUT}, | ||
43 | {CPM_PORTB, 31, CPM_PIN_INPUT}, | ||
44 | {CPM_PORTC, 12, CPM_PIN_INPUT}, | ||
45 | {CPM_PORTC, 13, CPM_PIN_INPUT}, | ||
46 | {CPM_PORTE, 30, CPM_PIN_OUTPUT}, | ||
47 | {CPM_PORTE, 31, CPM_PIN_OUTPUT}, | ||
48 | |||
49 | /* MII2 */ | ||
50 | {CPM_PORTE, 14, CPM_PIN_OUTPUT | CPM_PIN_SECONDARY}, | ||
51 | {CPM_PORTE, 15, CPM_PIN_OUTPUT | CPM_PIN_SECONDARY}, | ||
52 | {CPM_PORTE, 16, CPM_PIN_OUTPUT}, | ||
53 | {CPM_PORTE, 17, CPM_PIN_OUTPUT | CPM_PIN_SECONDARY}, | ||
54 | {CPM_PORTE, 18, CPM_PIN_OUTPUT | CPM_PIN_SECONDARY}, | ||
55 | {CPM_PORTE, 19, CPM_PIN_OUTPUT | CPM_PIN_SECONDARY}, | ||
56 | {CPM_PORTE, 20, CPM_PIN_OUTPUT | CPM_PIN_SECONDARY}, | ||
57 | {CPM_PORTE, 21, CPM_PIN_OUTPUT}, | ||
58 | {CPM_PORTE, 22, CPM_PIN_OUTPUT}, | ||
59 | {CPM_PORTE, 23, CPM_PIN_OUTPUT}, | ||
60 | {CPM_PORTE, 24, CPM_PIN_OUTPUT}, | ||
61 | {CPM_PORTE, 25, CPM_PIN_OUTPUT}, | ||
62 | {CPM_PORTE, 26, CPM_PIN_OUTPUT}, | ||
63 | {CPM_PORTE, 27, CPM_PIN_OUTPUT}, | ||
64 | {CPM_PORTE, 28, CPM_PIN_OUTPUT}, | ||
65 | {CPM_PORTE, 29, CPM_PIN_OUTPUT}, | ||
66 | }; | ||
67 | |||
68 | static void __init init_ioports(void) | ||
69 | { | ||
70 | int i; | ||
71 | |||
72 | for (i = 0; i < ARRAY_SIZE(adder875_pins); i++) { | ||
73 | const struct cpm_pin *pin = &adder875_pins[i]; | ||
74 | cpm1_set_pin(pin->port, pin->pin, pin->flags); | ||
75 | } | ||
76 | |||
77 | cpm1_clk_setup(CPM_CLK_SMC1, CPM_BRG1, CPM_CLK_RTX); | ||
78 | |||
79 | /* Set FEC1 and FEC2 to MII mode */ | ||
80 | clrbits32(&mpc8xx_immr->im_cpm.cp_cptr, 0x00000180); | ||
81 | } | ||
82 | |||
83 | static void __init adder875_setup(void) | ||
84 | { | ||
85 | cpm_reset(); | ||
86 | init_ioports(); | ||
87 | } | ||
88 | |||
89 | static int __init adder875_probe(void) | ||
90 | { | ||
91 | unsigned long root = of_get_flat_dt_root(); | ||
92 | return of_flat_dt_is_compatible(root, "analogue-and-micro,adder875"); | ||
93 | } | ||
94 | |||
95 | static __initdata struct of_device_id of_bus_ids[] = { | ||
96 | { .compatible = "simple-bus", }, | ||
97 | {}, | ||
98 | }; | ||
99 | |||
100 | static int __init declare_of_platform_devices(void) | ||
101 | { | ||
102 | of_platform_bus_probe(NULL, of_bus_ids, NULL); | ||
103 | return 0; | ||
104 | } | ||
105 | machine_device_initcall(adder875, declare_of_platform_devices); | ||
106 | |||
107 | define_machine(adder875) { | ||
108 | .name = "Adder MPC875", | ||
109 | .probe = adder875_probe, | ||
110 | .setup_arch = adder875_setup, | ||
111 | .init_IRQ = m8xx_pic_init, | ||
112 | .get_irq = mpc8xx_get_irq, | ||
113 | .restart = mpc8xx_restart, | ||
114 | .calibrate_decr = generic_calibrate_decr, | ||
115 | .set_rtc_time = mpc8xx_set_rtc_time, | ||
116 | .get_rtc_time = mpc8xx_get_rtc_time, | ||
117 | .progress = udbg_progress, | ||
118 | }; | ||
diff --git a/arch/powerpc/platforms/8xx/ep88xc.c b/arch/powerpc/platforms/8xx/ep88xc.c index c518b6cc5fab..88afa353f1d2 100644 --- a/arch/powerpc/platforms/8xx/ep88xc.c +++ b/arch/powerpc/platforms/8xx/ep88xc.c | |||
@@ -155,12 +155,11 @@ static struct of_device_id __initdata of_bus_ids[] = { | |||
155 | static int __init declare_of_platform_devices(void) | 155 | static int __init declare_of_platform_devices(void) |
156 | { | 156 | { |
157 | /* Publish the QE devices */ | 157 | /* Publish the QE devices */ |
158 | if (machine_is(ep88xc)) | 158 | of_platform_bus_probe(NULL, of_bus_ids, NULL); |
159 | of_platform_bus_probe(NULL, of_bus_ids, NULL); | ||
160 | 159 | ||
161 | return 0; | 160 | return 0; |
162 | } | 161 | } |
163 | device_initcall(declare_of_platform_devices); | 162 | machine_device_initcall(ep88xc, declare_of_platform_devices); |
164 | 163 | ||
165 | define_machine(ep88xc) { | 164 | define_machine(ep88xc) { |
166 | .name = "Embedded Planet EP88xC", | 165 | .name = "Embedded Planet EP88xC", |
diff --git a/arch/powerpc/platforms/8xx/mpc86xads_setup.c b/arch/powerpc/platforms/8xx/mpc86xads_setup.c index d2927a434aef..d7965f885209 100644 --- a/arch/powerpc/platforms/8xx/mpc86xads_setup.c +++ b/arch/powerpc/platforms/8xx/mpc86xads_setup.c | |||
@@ -128,12 +128,11 @@ static struct of_device_id __initdata of_bus_ids[] = { | |||
128 | 128 | ||
129 | static int __init declare_of_platform_devices(void) | 129 | static int __init declare_of_platform_devices(void) |
130 | { | 130 | { |
131 | if (machine_is(mpc86x_ads)) | 131 | of_platform_bus_probe(NULL, of_bus_ids, NULL); |
132 | of_platform_bus_probe(NULL, of_bus_ids, NULL); | ||
133 | 132 | ||
134 | return 0; | 133 | return 0; |
135 | } | 134 | } |
136 | device_initcall(declare_of_platform_devices); | 135 | machine_device_initcall(mpc86x_ads, declare_of_platform_devices); |
137 | 136 | ||
138 | define_machine(mpc86x_ads) { | 137 | define_machine(mpc86x_ads) { |
139 | .name = "MPC86x ADS", | 138 | .name = "MPC86x ADS", |
diff --git a/arch/powerpc/platforms/8xx/mpc885ads_setup.c b/arch/powerpc/platforms/8xx/mpc885ads_setup.c index 2cf1b6a75173..6ef8e9e6b8c3 100644 --- a/arch/powerpc/platforms/8xx/mpc885ads_setup.c +++ b/arch/powerpc/platforms/8xx/mpc885ads_setup.c | |||
@@ -264,12 +264,11 @@ static struct of_device_id __initdata of_bus_ids[] = { | |||
264 | static int __init declare_of_platform_devices(void) | 264 | static int __init declare_of_platform_devices(void) |
265 | { | 265 | { |
266 | /* Publish the QE devices */ | 266 | /* Publish the QE devices */ |
267 | if (machine_is(mpc885_ads)) | 267 | of_platform_bus_probe(NULL, of_bus_ids, NULL); |
268 | of_platform_bus_probe(NULL, of_bus_ids, NULL); | ||
269 | 268 | ||
270 | return 0; | 269 | return 0; |
271 | } | 270 | } |
272 | device_initcall(declare_of_platform_devices); | 271 | machine_device_initcall(mpc885_ads, declare_of_platform_devices); |
273 | 272 | ||
274 | define_machine(mpc885_ads) { | 273 | define_machine(mpc885_ads) { |
275 | .name = "Freescale MPC885 ADS", | 274 | .name = "Freescale MPC885 ADS", |
diff --git a/arch/powerpc/platforms/Kconfig b/arch/powerpc/platforms/Kconfig index ea22cad2cd0a..2cec34314d2e 100644 --- a/arch/powerpc/platforms/Kconfig +++ b/arch/powerpc/platforms/Kconfig | |||
@@ -22,6 +22,7 @@ config PPC_83xx | |||
22 | depends on 6xx | 22 | depends on 6xx |
23 | select FSL_SOC | 23 | select FSL_SOC |
24 | select 83xx | 24 | select 83xx |
25 | select IPIC | ||
25 | select WANT_DEVICE_TREE | 26 | select WANT_DEVICE_TREE |
26 | 27 | ||
27 | config PPC_86xx | 28 | config PPC_86xx |
@@ -80,6 +81,10 @@ config XICS | |||
80 | bool | 81 | bool |
81 | default y | 82 | default y |
82 | 83 | ||
84 | config IPIC | ||
85 | bool | ||
86 | default n | ||
87 | |||
83 | config MPIC | 88 | config MPIC |
84 | bool | 89 | bool |
85 | default n | 90 | default n |
@@ -265,6 +270,7 @@ config TAU_AVERAGE | |||
265 | config QUICC_ENGINE | 270 | config QUICC_ENGINE |
266 | bool | 271 | bool |
267 | select PPC_LIB_RHEAP | 272 | select PPC_LIB_RHEAP |
273 | select CRC32 | ||
268 | help | 274 | help |
269 | The QUICC Engine (QE) is a new generation of communications | 275 | The QUICC Engine (QE) is a new generation of communications |
270 | coprocessors on Freescale embedded CPUs (akin to CPM in older chips). | 276 | coprocessors on Freescale embedded CPUs (akin to CPM in older chips). |
diff --git a/arch/powerpc/platforms/embedded6xx/Kconfig b/arch/powerpc/platforms/embedded6xx/Kconfig index 8924095a7928..6c8083757938 100644 --- a/arch/powerpc/platforms/embedded6xx/Kconfig +++ b/arch/powerpc/platforms/embedded6xx/Kconfig | |||
@@ -9,6 +9,8 @@ config LINKSTATION | |||
9 | select FSL_SOC | 9 | select FSL_SOC |
10 | select PPC_UDBG_16550 if SERIAL_8250 | 10 | select PPC_UDBG_16550 if SERIAL_8250 |
11 | select DEFAULT_UIMAGE | 11 | select DEFAULT_UIMAGE |
12 | select MPC10X_OPENPIC | ||
13 | select MPC10X_BRIDGE | ||
12 | help | 14 | help |
13 | Select LINKSTATION if configuring for one of PPC- (MPC8241) | 15 | Select LINKSTATION if configuring for one of PPC- (MPC8241) |
14 | based NAS systems from Buffalo Technology. So far only | 16 | based NAS systems from Buffalo Technology. So far only |
@@ -16,6 +18,19 @@ config LINKSTATION | |||
16 | Linkstation-I HD-HLAN and HD-HGLAN versions, and PPC-based | 18 | Linkstation-I HD-HLAN and HD-HGLAN versions, and PPC-based |
17 | Terastation systems should be supported too. | 19 | Terastation systems should be supported too. |
18 | 20 | ||
21 | config STORCENTER | ||
22 | bool "IOMEGA StorCenter" | ||
23 | depends on EMBEDDED6xx | ||
24 | select MPIC | ||
25 | select FSL_SOC | ||
26 | select PPC_UDBG_16550 if SERIAL_8250 | ||
27 | select WANT_DEVICE_TREE | ||
28 | select MPC10X_OPENPIC | ||
29 | select MPC10X_BRIDGE | ||
30 | help | ||
31 | Select STORCENTER if configuring for the iomega StorCenter | ||
32 | with an 8241 CPU in it. | ||
33 | |||
19 | config MPC7448HPC2 | 34 | config MPC7448HPC2 |
20 | bool "Freescale MPC7448HPC2(Taiga)" | 35 | bool "Freescale MPC7448HPC2(Taiga)" |
21 | depends on EMBEDDED6xx | 36 | depends on EMBEDDED6xx |
@@ -23,6 +38,7 @@ config MPC7448HPC2 | |||
23 | select DEFAULT_UIMAGE | 38 | select DEFAULT_UIMAGE |
24 | select PPC_UDBG_16550 | 39 | select PPC_UDBG_16550 |
25 | select WANT_DEVICE_TREE | 40 | select WANT_DEVICE_TREE |
41 | select TSI108_BRIDGE | ||
26 | help | 42 | help |
27 | Select MPC7448HPC2 if configuring for Freescale MPC7448HPC2 (Taiga) | 43 | Select MPC7448HPC2 if configuring for Freescale MPC7448HPC2 (Taiga) |
28 | platform | 44 | platform |
@@ -33,6 +49,7 @@ config PPC_HOLLY | |||
33 | select TSI108_BRIDGE | 49 | select TSI108_BRIDGE |
34 | select PPC_UDBG_16550 | 50 | select PPC_UDBG_16550 |
35 | select WANT_DEVICE_TREE | 51 | select WANT_DEVICE_TREE |
52 | select TSI108_BRIDGE | ||
36 | help | 53 | help |
37 | Select PPC_HOLLY if configuring for an IBM 750GX/CL Eval | 54 | Select PPC_HOLLY if configuring for an IBM 750GX/CL Eval |
38 | Board with TSI108/9 bridge (Hickory/Holly) | 55 | Board with TSI108/9 bridge (Hickory/Holly) |
@@ -48,17 +65,13 @@ config PPC_PRPMC2800 | |||
48 | 65 | ||
49 | config TSI108_BRIDGE | 66 | config TSI108_BRIDGE |
50 | bool | 67 | bool |
51 | depends on MPC7448HPC2 || PPC_HOLLY | ||
52 | select PCI | 68 | select PCI |
53 | select MPIC | 69 | select MPIC |
54 | select MPIC_WEIRD | 70 | select MPIC_WEIRD |
55 | default y | ||
56 | 71 | ||
57 | config MPC10X_BRIDGE | 72 | config MPC10X_BRIDGE |
58 | bool | 73 | bool |
59 | depends on LINKSTATION | ||
60 | select PPC_INDIRECT_PCI | 74 | select PPC_INDIRECT_PCI |
61 | default y | ||
62 | 75 | ||
63 | config MV64X60 | 76 | config MV64X60 |
64 | bool | 77 | bool |
@@ -67,8 +80,6 @@ config MV64X60 | |||
67 | 80 | ||
68 | config MPC10X_OPENPIC | 81 | config MPC10X_OPENPIC |
69 | bool | 82 | bool |
70 | depends on LINKSTATION | ||
71 | default y | ||
72 | 83 | ||
73 | config MPC10X_STORE_GATHERING | 84 | config MPC10X_STORE_GATHERING |
74 | bool "Enable MPC10x store gathering" | 85 | bool "Enable MPC10x store gathering" |
diff --git a/arch/powerpc/platforms/embedded6xx/Makefile b/arch/powerpc/platforms/embedded6xx/Makefile index 844947cfc5db..06524d3ffd2e 100644 --- a/arch/powerpc/platforms/embedded6xx/Makefile +++ b/arch/powerpc/platforms/embedded6xx/Makefile | |||
@@ -3,5 +3,6 @@ | |||
3 | # | 3 | # |
4 | obj-$(CONFIG_MPC7448HPC2) += mpc7448_hpc2.o | 4 | obj-$(CONFIG_MPC7448HPC2) += mpc7448_hpc2.o |
5 | obj-$(CONFIG_LINKSTATION) += linkstation.o ls_uart.o | 5 | obj-$(CONFIG_LINKSTATION) += linkstation.o ls_uart.o |
6 | obj-$(CONFIG_STORCENTER) += storcenter.o | ||
6 | obj-$(CONFIG_PPC_HOLLY) += holly.o | 7 | obj-$(CONFIG_PPC_HOLLY) += holly.o |
7 | obj-$(CONFIG_PPC_PRPMC2800) += prpmc2800.o | 8 | obj-$(CONFIG_PPC_PRPMC2800) += prpmc2800.o |
diff --git a/arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c b/arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c index a2c04b9d42b1..d4f8bf581e3a 100644 --- a/arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c +++ b/arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c | |||
@@ -53,8 +53,6 @@ | |||
53 | 53 | ||
54 | #define MPC7448HPC2_PCI_CFG_PHYS 0xfb000000 | 54 | #define MPC7448HPC2_PCI_CFG_PHYS 0xfb000000 |
55 | 55 | ||
56 | extern void _nmask_and_or_msr(unsigned long nmask, unsigned long or_val); | ||
57 | |||
58 | int mpc7448_hpc2_exclude_device(struct pci_controller *hose, | 56 | int mpc7448_hpc2_exclude_device(struct pci_controller *hose, |
59 | u_char bus, u_char devfn) | 57 | u_char bus, u_char devfn) |
60 | { | 58 | { |
diff --git a/arch/powerpc/platforms/embedded6xx/storcenter.c b/arch/powerpc/platforms/embedded6xx/storcenter.c new file mode 100644 index 000000000000..e12e9d298716 --- /dev/null +++ b/arch/powerpc/platforms/embedded6xx/storcenter.c | |||
@@ -0,0 +1,192 @@ | |||
1 | /* | ||
2 | * Board setup routines for the storcenter | ||
3 | * | ||
4 | * Copyright 2007 (C) Oyvind Repvik (nail@nslu2-linux.org) | ||
5 | * Copyright 2007 Andy Wilcox, Jon Loeliger | ||
6 | * | ||
7 | * Based on linkstation.c by G. Liakhovetski | ||
8 | * | ||
9 | * This file is licensed under the terms of the GNU General Public License | ||
10 | * version 2. This program is licensed "as is" without any warranty of | ||
11 | * any kind, whether express or implied. | ||
12 | */ | ||
13 | |||
14 | #include <linux/kernel.h> | ||
15 | #include <linux/pci.h> | ||
16 | #include <linux/initrd.h> | ||
17 | #include <linux/mtd/physmap.h> | ||
18 | #include <linux/of_platform.h> | ||
19 | |||
20 | #include <asm/system.h> | ||
21 | #include <asm/time.h> | ||
22 | #include <asm/prom.h> | ||
23 | #include <asm/mpic.h> | ||
24 | #include <asm/pci-bridge.h> | ||
25 | |||
26 | #include "mpc10x.h" | ||
27 | |||
28 | |||
29 | #ifdef CONFIG_MTD_PHYSMAP | ||
30 | static struct mtd_partition storcenter_physmap_partitions[] = { | ||
31 | { | ||
32 | .name = "kernel", | ||
33 | .offset = 0x000000, | ||
34 | .size = 0x170000, | ||
35 | }, | ||
36 | { | ||
37 | .name = "rootfs", | ||
38 | .offset = 0x170000, | ||
39 | .size = 0x590000, | ||
40 | }, | ||
41 | { | ||
42 | .name = "uboot", | ||
43 | .offset = 0x700000, | ||
44 | .size = 0x040000, | ||
45 | }, | ||
46 | { | ||
47 | .name = "config", | ||
48 | .offset = 0x740000, | ||
49 | .size = 0x0c0000, | ||
50 | }, | ||
51 | }; | ||
52 | #endif | ||
53 | |||
54 | |||
55 | static __initdata struct of_device_id storcenter_of_bus[] = { | ||
56 | { .name = "soc", }, | ||
57 | {}, | ||
58 | }; | ||
59 | |||
60 | static int __init storcenter_device_probe(void) | ||
61 | { | ||
62 | of_platform_bus_probe(NULL, storcenter_of_bus, NULL); | ||
63 | return 0; | ||
64 | } | ||
65 | machine_device_initcall(storcenter, storcenter_device_probe); | ||
66 | |||
67 | |||
68 | static int __init storcenter_add_bridge(struct device_node *dev) | ||
69 | { | ||
70 | #ifdef CONFIG_PCI | ||
71 | int len; | ||
72 | struct pci_controller *hose; | ||
73 | const int *bus_range; | ||
74 | |||
75 | printk("Adding PCI host bridge %s\n", dev->full_name); | ||
76 | |||
77 | hose = pcibios_alloc_controller(dev); | ||
78 | if (hose == NULL) | ||
79 | return -ENOMEM; | ||
80 | |||
81 | bus_range = of_get_property(dev, "bus-range", &len); | ||
82 | hose->first_busno = bus_range ? bus_range[0] : 0; | ||
83 | hose->last_busno = bus_range ? bus_range[1] : 0xff; | ||
84 | |||
85 | setup_indirect_pci(hose, MPC10X_MAPB_CNFG_ADDR, MPC10X_MAPB_CNFG_DATA, 0); | ||
86 | |||
87 | /* Interpret the "ranges" property */ | ||
88 | /* This also maps the I/O region and sets isa_io/mem_base */ | ||
89 | pci_process_bridge_OF_ranges(hose, dev, 1); | ||
90 | #endif | ||
91 | |||
92 | return 0; | ||
93 | } | ||
94 | |||
95 | static void __init storcenter_setup_arch(void) | ||
96 | { | ||
97 | struct device_node *np; | ||
98 | |||
99 | #ifdef CONFIG_MTD_PHYSMAP | ||
100 | physmap_set_partitions(storcenter_physmap_partitions, | ||
101 | ARRAY_SIZE(storcenter_physmap_partitions)); | ||
102 | #endif | ||
103 | |||
104 | /* Lookup PCI host bridges */ | ||
105 | for_each_compatible_node(np, "pci", "mpc10x-pci") | ||
106 | storcenter_add_bridge(np); | ||
107 | |||
108 | printk(KERN_INFO "IOMEGA StorCenter\n"); | ||
109 | } | ||
110 | |||
111 | /* | ||
112 | * Interrupt setup and service. Interrrupts on the turbostation come | ||
113 | * from the four PCI slots plus onboard 8241 devices: I2C, DUART. | ||
114 | */ | ||
115 | static void __init storcenter_init_IRQ(void) | ||
116 | { | ||
117 | struct mpic *mpic; | ||
118 | struct device_node *dnp; | ||
119 | const void *prop; | ||
120 | int size; | ||
121 | phys_addr_t paddr; | ||
122 | |||
123 | dnp = of_find_node_by_type(NULL, "open-pic"); | ||
124 | if (dnp == NULL) | ||
125 | return; | ||
126 | |||
127 | prop = of_get_property(dnp, "reg", &size); | ||
128 | if (prop == NULL) { | ||
129 | of_node_put(dnp); | ||
130 | return; | ||
131 | } | ||
132 | |||
133 | paddr = (phys_addr_t)of_translate_address(dnp, prop); | ||
134 | mpic = mpic_alloc(dnp, paddr, MPIC_PRIMARY | MPIC_WANTS_RESET, | ||
135 | 4, 32, " EPIC "); | ||
136 | |||
137 | of_node_put(dnp); | ||
138 | |||
139 | BUG_ON(mpic == NULL); | ||
140 | |||
141 | /* PCI IRQs */ | ||
142 | /* | ||
143 | * 2.6.12 patch: | ||
144 | * openpic_set_sources(0, 5, OpenPIC_Addr + 0x10200); | ||
145 | * openpic_set_sources(5, 2, OpenPIC_Addr + 0x11120); | ||
146 | * first_irq, num_irqs, __iomem first_ISR | ||
147 | * o_ss: i, src: 0, fdf50200 | ||
148 | * o_ss: i, src: 1, fdf50220 | ||
149 | * o_ss: i, src: 2, fdf50240 | ||
150 | * o_ss: i, src: 3, fdf50260 | ||
151 | * o_ss: i, src: 4, fdf50280 | ||
152 | * o_ss: i, src: 5, fdf51120 | ||
153 | * o_ss: i, src: 6, fdf51140 | ||
154 | */ | ||
155 | mpic_assign_isu(mpic, 0, paddr + 0x10200); | ||
156 | mpic_assign_isu(mpic, 1, paddr + 0x10220); | ||
157 | mpic_assign_isu(mpic, 2, paddr + 0x10240); | ||
158 | mpic_assign_isu(mpic, 3, paddr + 0x10260); | ||
159 | mpic_assign_isu(mpic, 4, paddr + 0x10280); | ||
160 | mpic_assign_isu(mpic, 5, paddr + 0x11120); | ||
161 | mpic_assign_isu(mpic, 6, paddr + 0x11140); | ||
162 | |||
163 | mpic_init(mpic); | ||
164 | } | ||
165 | |||
166 | static void storcenter_restart(char *cmd) | ||
167 | { | ||
168 | local_irq_disable(); | ||
169 | |||
170 | /* Set exception prefix high - to the firmware */ | ||
171 | _nmask_and_or_msr(0, MSR_IP); | ||
172 | |||
173 | /* Wait for reset to happen */ | ||
174 | for (;;) ; | ||
175 | } | ||
176 | |||
177 | static int __init storcenter_probe(void) | ||
178 | { | ||
179 | unsigned long root = of_get_flat_dt_root(); | ||
180 | |||
181 | return of_flat_dt_is_compatible(root, "storcenter"); | ||
182 | } | ||
183 | |||
184 | define_machine(storcenter){ | ||
185 | .name = "IOMEGA StorCenter", | ||
186 | .probe = storcenter_probe, | ||
187 | .setup_arch = storcenter_setup_arch, | ||
188 | .init_IRQ = storcenter_init_IRQ, | ||
189 | .get_irq = mpic_get_irq, | ||
190 | .restart = storcenter_restart, | ||
191 | .calibrate_decr = generic_calibrate_decr, | ||
192 | }; | ||
diff --git a/arch/powerpc/sysdev/Makefile b/arch/powerpc/sysdev/Makefile index 9a20ef4f0ea4..f17e7b885f60 100644 --- a/arch/powerpc/sysdev/Makefile +++ b/arch/powerpc/sysdev/Makefile | |||
@@ -12,6 +12,7 @@ obj-$(CONFIG_U3_DART) += dart_iommu.o | |||
12 | obj-$(CONFIG_MMIO_NVRAM) += mmio_nvram.o | 12 | obj-$(CONFIG_MMIO_NVRAM) += mmio_nvram.o |
13 | obj-$(CONFIG_FSL_SOC) += fsl_soc.o | 13 | obj-$(CONFIG_FSL_SOC) += fsl_soc.o |
14 | obj-$(CONFIG_FSL_PCI) += fsl_pci.o | 14 | obj-$(CONFIG_FSL_PCI) += fsl_pci.o |
15 | obj-$(CONFIG_RAPIDIO) += fsl_rio.o | ||
15 | obj-$(CONFIG_TSI108_BRIDGE) += tsi108_pci.o tsi108_dev.o | 16 | obj-$(CONFIG_TSI108_BRIDGE) += tsi108_pci.o tsi108_dev.o |
16 | obj-$(CONFIG_QUICC_ENGINE) += qe_lib/ | 17 | obj-$(CONFIG_QUICC_ENGINE) += qe_lib/ |
17 | obj-$(CONFIG_PPC_BESTCOMM) += bestcomm/ | 18 | obj-$(CONFIG_PPC_BESTCOMM) += bestcomm/ |
@@ -24,7 +25,7 @@ obj-$(CONFIG_AXON_RAM) += axonram.o | |||
24 | ifeq ($(CONFIG_PPC_MERGE),y) | 25 | ifeq ($(CONFIG_PPC_MERGE),y) |
25 | obj-$(CONFIG_PPC_INDIRECT_PCI) += indirect_pci.o | 26 | obj-$(CONFIG_PPC_INDIRECT_PCI) += indirect_pci.o |
26 | obj-$(CONFIG_PPC_I8259) += i8259.o | 27 | obj-$(CONFIG_PPC_I8259) += i8259.o |
27 | obj-$(CONFIG_PPC_83xx) += ipic.o | 28 | obj-$(CONFIG_IPIC) += ipic.o |
28 | obj-$(CONFIG_4xx) += uic.o | 29 | obj-$(CONFIG_4xx) += uic.o |
29 | obj-$(CONFIG_XILINX_VIRTEX) += xilinx_intc.o | 30 | obj-$(CONFIG_XILINX_VIRTEX) += xilinx_intc.o |
30 | ifeq ($(CONFIG_PCI),y) | 31 | ifeq ($(CONFIG_PCI),y) |
diff --git a/arch/powerpc/sysdev/fsl_pci.c b/arch/powerpc/sysdev/fsl_pci.c index 4b1d5120c122..bf13c2174a4e 100644 --- a/arch/powerpc/sysdev/fsl_pci.c +++ b/arch/powerpc/sysdev/fsl_pci.c | |||
@@ -33,8 +33,8 @@ void __init setup_pci_atmu(struct pci_controller *hose, struct resource *rsrc) | |||
33 | struct ccsr_pci __iomem *pci; | 33 | struct ccsr_pci __iomem *pci; |
34 | int i; | 34 | int i; |
35 | 35 | ||
36 | pr_debug("PCI memory map start 0x%x, size 0x%x\n", rsrc->start, | 36 | pr_debug("PCI memory map start 0x%016llx, size 0x%016llx\n", |
37 | rsrc->end - rsrc->start + 1); | 37 | (u64)rsrc->start, (u64)rsrc->end - (u64)rsrc->start + 1); |
38 | pci = ioremap(rsrc->start, rsrc->end - rsrc->start + 1); | 38 | pci = ioremap(rsrc->start, rsrc->end - rsrc->start + 1); |
39 | 39 | ||
40 | /* Disable all windows (except powar0 since its ignored) */ | 40 | /* Disable all windows (except powar0 since its ignored) */ |
@@ -46,17 +46,17 @@ void __init setup_pci_atmu(struct pci_controller *hose, struct resource *rsrc) | |||
46 | /* Setup outbound MEM window */ | 46 | /* Setup outbound MEM window */ |
47 | for(i = 0; i < 3; i++) | 47 | for(i = 0; i < 3; i++) |
48 | if (hose->mem_resources[i].flags & IORESOURCE_MEM){ | 48 | if (hose->mem_resources[i].flags & IORESOURCE_MEM){ |
49 | pr_debug("PCI MEM resource start 0x%08x, size 0x%08x.\n", | 49 | resource_size_t pci_addr_start = |
50 | hose->mem_resources[i].start, | 50 | hose->mem_resources[i].start - |
51 | hose->mem_resources[i].end | 51 | hose->pci_mem_offset; |
52 | - hose->mem_resources[i].start + 1); | 52 | pr_debug("PCI MEM resource start 0x%016llx, size 0x%016llx.\n", |
53 | out_be32(&pci->pow[i+1].potar, | 53 | (u64)hose->mem_resources[i].start, |
54 | (hose->mem_resources[i].start >> 12) | 54 | (u64)hose->mem_resources[i].end |
55 | & 0x000fffff); | 55 | - (u64)hose->mem_resources[i].start + 1); |
56 | out_be32(&pci->pow[i+1].potar, (pci_addr_start >> 12)); | ||
56 | out_be32(&pci->pow[i+1].potear, 0); | 57 | out_be32(&pci->pow[i+1].potear, 0); |
57 | out_be32(&pci->pow[i+1].powbar, | 58 | out_be32(&pci->pow[i+1].powbar, |
58 | (hose->mem_resources[i].start >> 12) | 59 | (hose->mem_resources[i].start >> 12)); |
59 | & 0x000fffff); | ||
60 | /* Enable, Mem R/W */ | 60 | /* Enable, Mem R/W */ |
61 | out_be32(&pci->pow[i+1].powar, 0x80044000 | 61 | out_be32(&pci->pow[i+1].powar, 0x80044000 |
62 | | (__ilog2(hose->mem_resources[i].end | 62 | | (__ilog2(hose->mem_resources[i].end |
@@ -65,15 +65,14 @@ void __init setup_pci_atmu(struct pci_controller *hose, struct resource *rsrc) | |||
65 | 65 | ||
66 | /* Setup outbound IO window */ | 66 | /* Setup outbound IO window */ |
67 | if (hose->io_resource.flags & IORESOURCE_IO){ | 67 | if (hose->io_resource.flags & IORESOURCE_IO){ |
68 | pr_debug("PCI IO resource start 0x%08x, size 0x%08x, phy base 0x%08x.\n", | 68 | pr_debug("PCI IO resource start 0x%016llx, size 0x%016llx, " |
69 | hose->io_resource.start, | 69 | "phy base 0x%016llx.\n", |
70 | hose->io_resource.end - hose->io_resource.start + 1, | 70 | (u64)hose->io_resource.start, |
71 | hose->io_base_phys); | 71 | (u64)hose->io_resource.end - (u64)hose->io_resource.start + 1, |
72 | out_be32(&pci->pow[i+1].potar, (hose->io_resource.start >> 12) | 72 | (u64)hose->io_base_phys); |
73 | & 0x000fffff); | 73 | out_be32(&pci->pow[i+1].potar, (hose->io_resource.start >> 12)); |
74 | out_be32(&pci->pow[i+1].potear, 0); | 74 | out_be32(&pci->pow[i+1].potear, 0); |
75 | out_be32(&pci->pow[i+1].powbar, (hose->io_base_phys >> 12) | 75 | out_be32(&pci->pow[i+1].powbar, (hose->io_base_phys >> 12)); |
76 | & 0x000fffff); | ||
77 | /* Enable, IO R/W */ | 76 | /* Enable, IO R/W */ |
78 | out_be32(&pci->pow[i+1].powar, 0x80088000 | 77 | out_be32(&pci->pow[i+1].powar, 0x80088000 |
79 | | (__ilog2(hose->io_resource.end | 78 | | (__ilog2(hose->io_resource.end |
@@ -107,55 +106,17 @@ void __init setup_pci_cmd(struct pci_controller *hose) | |||
107 | } | 106 | } |
108 | } | 107 | } |
109 | 108 | ||
110 | static void __init quirk_fsl_pcie_transparent(struct pci_dev *dev) | 109 | static int fsl_pcie_bus_fixup; |
111 | { | ||
112 | struct resource *res; | ||
113 | int i, res_idx = PCI_BRIDGE_RESOURCES; | ||
114 | struct pci_controller *hose; | ||
115 | 110 | ||
111 | static void __init quirk_fsl_pcie_header(struct pci_dev *dev) | ||
112 | { | ||
116 | /* if we aren't a PCIe don't bother */ | 113 | /* if we aren't a PCIe don't bother */ |
117 | if (!pci_find_capability(dev, PCI_CAP_ID_EXP)) | 114 | if (!pci_find_capability(dev, PCI_CAP_ID_EXP)) |
118 | return ; | 115 | return ; |
119 | 116 | ||
120 | /* | 117 | dev->class = PCI_CLASS_BRIDGE_PCI << 8; |
121 | * Make the bridge be transparent. | 118 | fsl_pcie_bus_fixup = 1; |
122 | */ | 119 | return ; |
123 | dev->transparent = 1; | ||
124 | |||
125 | hose = pci_bus_to_host(dev->bus); | ||
126 | if (!hose) { | ||
127 | printk(KERN_ERR "Can't find hose for bus %d\n", | ||
128 | dev->bus->number); | ||
129 | return; | ||
130 | } | ||
131 | |||
132 | /* Clear out any of the virtual P2P bridge registers */ | ||
133 | pci_write_config_word(dev, PCI_IO_BASE_UPPER16, 0); | ||
134 | pci_write_config_word(dev, PCI_IO_LIMIT_UPPER16, 0); | ||
135 | pci_write_config_byte(dev, PCI_IO_BASE, 0x10); | ||
136 | pci_write_config_byte(dev, PCI_IO_LIMIT, 0); | ||
137 | pci_write_config_word(dev, PCI_MEMORY_BASE, 0x10); | ||
138 | pci_write_config_word(dev, PCI_MEMORY_LIMIT, 0); | ||
139 | pci_write_config_word(dev, PCI_PREF_BASE_UPPER32, 0x0); | ||
140 | pci_write_config_word(dev, PCI_PREF_LIMIT_UPPER32, 0x0); | ||
141 | pci_write_config_word(dev, PCI_PREF_MEMORY_BASE, 0x10); | ||
142 | pci_write_config_word(dev, PCI_PREF_MEMORY_LIMIT, 0); | ||
143 | |||
144 | if (hose->io_resource.flags) { | ||
145 | res = &dev->resource[res_idx++]; | ||
146 | res->start = hose->io_resource.start; | ||
147 | res->end = hose->io_resource.end; | ||
148 | res->flags = hose->io_resource.flags; | ||
149 | update_bridge_resource(dev, res); | ||
150 | } | ||
151 | |||
152 | for (i = 0; i < 3; i++) { | ||
153 | res = &dev->resource[res_idx + i]; | ||
154 | res->start = hose->mem_resources[i].start; | ||
155 | res->end = hose->mem_resources[i].end; | ||
156 | res->flags = hose->mem_resources[i].flags; | ||
157 | update_bridge_resource(dev, res); | ||
158 | } | ||
159 | } | 120 | } |
160 | 121 | ||
161 | int __init fsl_pcie_check_link(struct pci_controller *hose) | 122 | int __init fsl_pcie_check_link(struct pci_controller *hose) |
@@ -172,11 +133,24 @@ void fsl_pcibios_fixup_bus(struct pci_bus *bus) | |||
172 | struct pci_controller *hose = (struct pci_controller *) bus->sysdata; | 133 | struct pci_controller *hose = (struct pci_controller *) bus->sysdata; |
173 | int i; | 134 | int i; |
174 | 135 | ||
175 | /* deal with bogus pci_bus when we don't have anything connected on PCIe */ | 136 | if ((bus->parent == hose->bus) && |
176 | if (hose->indirect_type & PPC_INDIRECT_TYPE_NO_PCIE_LINK) { | 137 | ((fsl_pcie_bus_fixup && |
177 | if (bus->parent) { | 138 | early_find_capability(hose, 0, 0, PCI_CAP_ID_EXP)) || |
178 | for (i = 0; i < 4; ++i) | 139 | (hose->indirect_type & PPC_INDIRECT_TYPE_NO_PCIE_LINK))) |
179 | bus->resource[i] = bus->parent->resource[i]; | 140 | { |
141 | for (i = 0; i < 4; ++i) { | ||
142 | struct resource *res = bus->resource[i]; | ||
143 | struct resource *par = bus->parent->resource[i]; | ||
144 | if (res) { | ||
145 | res->start = 0; | ||
146 | res->end = 0; | ||
147 | res->flags = 0; | ||
148 | } | ||
149 | if (res && par) { | ||
150 | res->start = par->start; | ||
151 | res->end = par->end; | ||
152 | res->flags = par->flags; | ||
153 | } | ||
180 | } | 154 | } |
181 | } | 155 | } |
182 | } | 156 | } |
@@ -240,23 +214,23 @@ int __init fsl_add_bridge(struct device_node *dev, int is_primary) | |||
240 | return 0; | 214 | return 0; |
241 | } | 215 | } |
242 | 216 | ||
243 | DECLARE_PCI_FIXUP_EARLY(0x1957, PCI_DEVICE_ID_MPC8548E, quirk_fsl_pcie_transparent); | 217 | DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_MPC8548E, quirk_fsl_pcie_header); |
244 | DECLARE_PCI_FIXUP_EARLY(0x1957, PCI_DEVICE_ID_MPC8548, quirk_fsl_pcie_transparent); | 218 | DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_MPC8548, quirk_fsl_pcie_header); |
245 | DECLARE_PCI_FIXUP_EARLY(0x1957, PCI_DEVICE_ID_MPC8543E, quirk_fsl_pcie_transparent); | 219 | DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_MPC8543E, quirk_fsl_pcie_header); |
246 | DECLARE_PCI_FIXUP_EARLY(0x1957, PCI_DEVICE_ID_MPC8543, quirk_fsl_pcie_transparent); | 220 | DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_MPC8543, quirk_fsl_pcie_header); |
247 | DECLARE_PCI_FIXUP_EARLY(0x1957, PCI_DEVICE_ID_MPC8547E, quirk_fsl_pcie_transparent); | 221 | DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_MPC8547E, quirk_fsl_pcie_header); |
248 | DECLARE_PCI_FIXUP_EARLY(0x1957, PCI_DEVICE_ID_MPC8545E, quirk_fsl_pcie_transparent); | 222 | DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_MPC8545E, quirk_fsl_pcie_header); |
249 | DECLARE_PCI_FIXUP_EARLY(0x1957, PCI_DEVICE_ID_MPC8545, quirk_fsl_pcie_transparent); | 223 | DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_MPC8545, quirk_fsl_pcie_header); |
250 | DECLARE_PCI_FIXUP_EARLY(0x1957, PCI_DEVICE_ID_MPC8568E, quirk_fsl_pcie_transparent); | 224 | DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_MPC8568E, quirk_fsl_pcie_header); |
251 | DECLARE_PCI_FIXUP_EARLY(0x1957, PCI_DEVICE_ID_MPC8568, quirk_fsl_pcie_transparent); | 225 | DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_MPC8568, quirk_fsl_pcie_header); |
252 | DECLARE_PCI_FIXUP_EARLY(0x1957, PCI_DEVICE_ID_MPC8567E, quirk_fsl_pcie_transparent); | 226 | DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_MPC8567E, quirk_fsl_pcie_header); |
253 | DECLARE_PCI_FIXUP_EARLY(0x1957, PCI_DEVICE_ID_MPC8567, quirk_fsl_pcie_transparent); | 227 | DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_MPC8567, quirk_fsl_pcie_header); |
254 | DECLARE_PCI_FIXUP_EARLY(0x1957, PCI_DEVICE_ID_MPC8533E, quirk_fsl_pcie_transparent); | 228 | DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_MPC8533E, quirk_fsl_pcie_header); |
255 | DECLARE_PCI_FIXUP_EARLY(0x1957, PCI_DEVICE_ID_MPC8533, quirk_fsl_pcie_transparent); | 229 | DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_MPC8533, quirk_fsl_pcie_header); |
256 | DECLARE_PCI_FIXUP_EARLY(0x1957, PCI_DEVICE_ID_MPC8544E, quirk_fsl_pcie_transparent); | 230 | DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_MPC8544E, quirk_fsl_pcie_header); |
257 | DECLARE_PCI_FIXUP_EARLY(0x1957, PCI_DEVICE_ID_MPC8544, quirk_fsl_pcie_transparent); | 231 | DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_MPC8544, quirk_fsl_pcie_header); |
258 | DECLARE_PCI_FIXUP_EARLY(0x1957, PCI_DEVICE_ID_MPC8572E, quirk_fsl_pcie_transparent); | 232 | DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_MPC8572E, quirk_fsl_pcie_header); |
259 | DECLARE_PCI_FIXUP_EARLY(0x1957, PCI_DEVICE_ID_MPC8572, quirk_fsl_pcie_transparent); | 233 | DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_MPC8572, quirk_fsl_pcie_header); |
260 | DECLARE_PCI_FIXUP_EARLY(0x1957, PCI_DEVICE_ID_MPC8641, quirk_fsl_pcie_transparent); | 234 | DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_MPC8641, quirk_fsl_pcie_header); |
261 | DECLARE_PCI_FIXUP_EARLY(0x1957, PCI_DEVICE_ID_MPC8641D, quirk_fsl_pcie_transparent); | 235 | DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_MPC8641D, quirk_fsl_pcie_header); |
262 | DECLARE_PCI_FIXUP_EARLY(0x1957, PCI_DEVICE_ID_MPC8610, quirk_fsl_pcie_transparent); | 236 | DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_MPC8610, quirk_fsl_pcie_header); |
diff --git a/arch/powerpc/sysdev/fsl_rio.c b/arch/powerpc/sysdev/fsl_rio.c new file mode 100644 index 000000000000..af2425e4655f --- /dev/null +++ b/arch/powerpc/sysdev/fsl_rio.c | |||
@@ -0,0 +1,932 @@ | |||
1 | /* | ||
2 | * MPC85xx RapidIO support | ||
3 | * | ||
4 | * Copyright 2005 MontaVista Software, Inc. | ||
5 | * Matt Porter <mporter@kernel.crashing.org> | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify it | ||
8 | * under the terms of the GNU General Public License as published by the | ||
9 | * Free Software Foundation; either version 2 of the License, or (at your | ||
10 | * option) any later version. | ||
11 | */ | ||
12 | |||
13 | #include <linux/init.h> | ||
14 | #include <linux/module.h> | ||
15 | #include <linux/types.h> | ||
16 | #include <linux/dma-mapping.h> | ||
17 | #include <linux/interrupt.h> | ||
18 | #include <linux/rio.h> | ||
19 | #include <linux/rio_drv.h> | ||
20 | |||
21 | #include <asm/io.h> | ||
22 | |||
23 | #define RIO_REGS_BASE (CCSRBAR + 0xc0000) | ||
24 | #define RIO_ATMU_REGS_OFFSET 0x10c00 | ||
25 | #define RIO_MSG_REGS_OFFSET 0x11000 | ||
26 | #define RIO_MAINT_WIN_SIZE 0x400000 | ||
27 | #define RIO_DBELL_WIN_SIZE 0x1000 | ||
28 | |||
29 | #define RIO_MSG_OMR_MUI 0x00000002 | ||
30 | #define RIO_MSG_OSR_TE 0x00000080 | ||
31 | #define RIO_MSG_OSR_QOI 0x00000020 | ||
32 | #define RIO_MSG_OSR_QFI 0x00000010 | ||
33 | #define RIO_MSG_OSR_MUB 0x00000004 | ||
34 | #define RIO_MSG_OSR_EOMI 0x00000002 | ||
35 | #define RIO_MSG_OSR_QEI 0x00000001 | ||
36 | |||
37 | #define RIO_MSG_IMR_MI 0x00000002 | ||
38 | #define RIO_MSG_ISR_TE 0x00000080 | ||
39 | #define RIO_MSG_ISR_QFI 0x00000010 | ||
40 | #define RIO_MSG_ISR_DIQI 0x00000001 | ||
41 | |||
42 | #define RIO_MSG_DESC_SIZE 32 | ||
43 | #define RIO_MSG_BUFFER_SIZE 4096 | ||
44 | #define RIO_MIN_TX_RING_SIZE 2 | ||
45 | #define RIO_MAX_TX_RING_SIZE 2048 | ||
46 | #define RIO_MIN_RX_RING_SIZE 2 | ||
47 | #define RIO_MAX_RX_RING_SIZE 2048 | ||
48 | |||
49 | #define DOORBELL_DMR_DI 0x00000002 | ||
50 | #define DOORBELL_DSR_TE 0x00000080 | ||
51 | #define DOORBELL_DSR_QFI 0x00000010 | ||
52 | #define DOORBELL_DSR_DIQI 0x00000001 | ||
53 | #define DOORBELL_TID_OFFSET 0x03 | ||
54 | #define DOORBELL_SID_OFFSET 0x05 | ||
55 | #define DOORBELL_INFO_OFFSET 0x06 | ||
56 | |||
57 | #define DOORBELL_MESSAGE_SIZE 0x08 | ||
58 | #define DBELL_SID(x) (*(u8 *)(x + DOORBELL_SID_OFFSET)) | ||
59 | #define DBELL_TID(x) (*(u8 *)(x + DOORBELL_TID_OFFSET)) | ||
60 | #define DBELL_INF(x) (*(u16 *)(x + DOORBELL_INFO_OFFSET)) | ||
61 | |||
62 | struct rio_atmu_regs { | ||
63 | u32 rowtar; | ||
64 | u32 pad1; | ||
65 | u32 rowbar; | ||
66 | u32 pad2; | ||
67 | u32 rowar; | ||
68 | u32 pad3[3]; | ||
69 | }; | ||
70 | |||
71 | struct rio_msg_regs { | ||
72 | u32 omr; | ||
73 | u32 osr; | ||
74 | u32 pad1; | ||
75 | u32 odqdpar; | ||
76 | u32 pad2; | ||
77 | u32 osar; | ||
78 | u32 odpr; | ||
79 | u32 odatr; | ||
80 | u32 odcr; | ||
81 | u32 pad3; | ||
82 | u32 odqepar; | ||
83 | u32 pad4[13]; | ||
84 | u32 imr; | ||
85 | u32 isr; | ||
86 | u32 pad5; | ||
87 | u32 ifqdpar; | ||
88 | u32 pad6; | ||
89 | u32 ifqepar; | ||
90 | u32 pad7[250]; | ||
91 | u32 dmr; | ||
92 | u32 dsr; | ||
93 | u32 pad8; | ||
94 | u32 dqdpar; | ||
95 | u32 pad9; | ||
96 | u32 dqepar; | ||
97 | u32 pad10[26]; | ||
98 | u32 pwmr; | ||
99 | u32 pwsr; | ||
100 | u32 pad11; | ||
101 | u32 pwqbar; | ||
102 | }; | ||
103 | |||
104 | struct rio_tx_desc { | ||
105 | u32 res1; | ||
106 | u32 saddr; | ||
107 | u32 dport; | ||
108 | u32 dattr; | ||
109 | u32 res2; | ||
110 | u32 res3; | ||
111 | u32 dwcnt; | ||
112 | u32 res4; | ||
113 | }; | ||
114 | |||
115 | static u32 regs_win; | ||
116 | static struct rio_atmu_regs *atmu_regs; | ||
117 | static struct rio_atmu_regs *maint_atmu_regs; | ||
118 | static struct rio_atmu_regs *dbell_atmu_regs; | ||
119 | static u32 dbell_win; | ||
120 | static u32 maint_win; | ||
121 | static struct rio_msg_regs *msg_regs; | ||
122 | |||
123 | static struct rio_dbell_ring { | ||
124 | void *virt; | ||
125 | dma_addr_t phys; | ||
126 | } dbell_ring; | ||
127 | |||
128 | static struct rio_msg_tx_ring { | ||
129 | void *virt; | ||
130 | dma_addr_t phys; | ||
131 | void *virt_buffer[RIO_MAX_TX_RING_SIZE]; | ||
132 | dma_addr_t phys_buffer[RIO_MAX_TX_RING_SIZE]; | ||
133 | int tx_slot; | ||
134 | int size; | ||
135 | void *dev_id; | ||
136 | } msg_tx_ring; | ||
137 | |||
138 | static struct rio_msg_rx_ring { | ||
139 | void *virt; | ||
140 | dma_addr_t phys; | ||
141 | void *virt_buffer[RIO_MAX_RX_RING_SIZE]; | ||
142 | int rx_slot; | ||
143 | int size; | ||
144 | void *dev_id; | ||
145 | } msg_rx_ring; | ||
146 | |||
147 | /** | ||
148 | * mpc85xx_rio_doorbell_send - Send a MPC85xx doorbell message | ||
149 | * @index: ID of RapidIO interface | ||
150 | * @destid: Destination ID of target device | ||
151 | * @data: 16-bit info field of RapidIO doorbell message | ||
152 | * | ||
153 | * Sends a MPC85xx doorbell message. Returns %0 on success or | ||
154 | * %-EINVAL on failure. | ||
155 | */ | ||
156 | static int mpc85xx_rio_doorbell_send(int index, u16 destid, u16 data) | ||
157 | { | ||
158 | pr_debug("mpc85xx_doorbell_send: index %d destid %4.4x data %4.4x\n", | ||
159 | index, destid, data); | ||
160 | out_be32((void *)&dbell_atmu_regs->rowtar, destid << 22); | ||
161 | out_be16((void *)(dbell_win), data); | ||
162 | |||
163 | return 0; | ||
164 | } | ||
165 | |||
166 | /** | ||
167 | * mpc85xx_local_config_read - Generate a MPC85xx local config space read | ||
168 | * @index: ID of RapdiIO interface | ||
169 | * @offset: Offset into configuration space | ||
170 | * @len: Length (in bytes) of the maintenance transaction | ||
171 | * @data: Value to be read into | ||
172 | * | ||
173 | * Generates a MPC85xx local configuration space read. Returns %0 on | ||
174 | * success or %-EINVAL on failure. | ||
175 | */ | ||
176 | static int mpc85xx_local_config_read(int index, u32 offset, int len, u32 * data) | ||
177 | { | ||
178 | pr_debug("mpc85xx_local_config_read: index %d offset %8.8x\n", index, | ||
179 | offset); | ||
180 | *data = in_be32((void *)(regs_win + offset)); | ||
181 | |||
182 | return 0; | ||
183 | } | ||
184 | |||
185 | /** | ||
186 | * mpc85xx_local_config_write - Generate a MPC85xx local config space write | ||
187 | * @index: ID of RapdiIO interface | ||
188 | * @offset: Offset into configuration space | ||
189 | * @len: Length (in bytes) of the maintenance transaction | ||
190 | * @data: Value to be written | ||
191 | * | ||
192 | * Generates a MPC85xx local configuration space write. Returns %0 on | ||
193 | * success or %-EINVAL on failure. | ||
194 | */ | ||
195 | static int mpc85xx_local_config_write(int index, u32 offset, int len, u32 data) | ||
196 | { | ||
197 | pr_debug | ||
198 | ("mpc85xx_local_config_write: index %d offset %8.8x data %8.8x\n", | ||
199 | index, offset, data); | ||
200 | out_be32((void *)(regs_win + offset), data); | ||
201 | |||
202 | return 0; | ||
203 | } | ||
204 | |||
205 | /** | ||
206 | * mpc85xx_rio_config_read - Generate a MPC85xx read maintenance transaction | ||
207 | * @index: ID of RapdiIO interface | ||
208 | * @destid: Destination ID of transaction | ||
209 | * @hopcount: Number of hops to target device | ||
210 | * @offset: Offset into configuration space | ||
211 | * @len: Length (in bytes) of the maintenance transaction | ||
212 | * @val: Location to be read into | ||
213 | * | ||
214 | * Generates a MPC85xx read maintenance transaction. Returns %0 on | ||
215 | * success or %-EINVAL on failure. | ||
216 | */ | ||
217 | static int | ||
218 | mpc85xx_rio_config_read(int index, u16 destid, u8 hopcount, u32 offset, int len, | ||
219 | u32 * val) | ||
220 | { | ||
221 | u8 *data; | ||
222 | |||
223 | pr_debug | ||
224 | ("mpc85xx_rio_config_read: index %d destid %d hopcount %d offset %8.8x len %d\n", | ||
225 | index, destid, hopcount, offset, len); | ||
226 | out_be32((void *)&maint_atmu_regs->rowtar, | ||
227 | (destid << 22) | (hopcount << 12) | ((offset & ~0x3) >> 9)); | ||
228 | |||
229 | data = (u8 *) maint_win + offset; | ||
230 | switch (len) { | ||
231 | case 1: | ||
232 | *val = in_8((u8 *) data); | ||
233 | break; | ||
234 | case 2: | ||
235 | *val = in_be16((u16 *) data); | ||
236 | break; | ||
237 | default: | ||
238 | *val = in_be32((u32 *) data); | ||
239 | break; | ||
240 | } | ||
241 | |||
242 | return 0; | ||
243 | } | ||
244 | |||
245 | /** | ||
246 | * mpc85xx_rio_config_write - Generate a MPC85xx write maintenance transaction | ||
247 | * @index: ID of RapdiIO interface | ||
248 | * @destid: Destination ID of transaction | ||
249 | * @hopcount: Number of hops to target device | ||
250 | * @offset: Offset into configuration space | ||
251 | * @len: Length (in bytes) of the maintenance transaction | ||
252 | * @val: Value to be written | ||
253 | * | ||
254 | * Generates an MPC85xx write maintenance transaction. Returns %0 on | ||
255 | * success or %-EINVAL on failure. | ||
256 | */ | ||
257 | static int | ||
258 | mpc85xx_rio_config_write(int index, u16 destid, u8 hopcount, u32 offset, | ||
259 | int len, u32 val) | ||
260 | { | ||
261 | u8 *data; | ||
262 | pr_debug | ||
263 | ("mpc85xx_rio_config_write: index %d destid %d hopcount %d offset %8.8x len %d val %8.8x\n", | ||
264 | index, destid, hopcount, offset, len, val); | ||
265 | out_be32((void *)&maint_atmu_regs->rowtar, | ||
266 | (destid << 22) | (hopcount << 12) | ((offset & ~0x3) >> 9)); | ||
267 | |||
268 | data = (u8 *) maint_win + offset; | ||
269 | switch (len) { | ||
270 | case 1: | ||
271 | out_8((u8 *) data, val); | ||
272 | break; | ||
273 | case 2: | ||
274 | out_be16((u16 *) data, val); | ||
275 | break; | ||
276 | default: | ||
277 | out_be32((u32 *) data, val); | ||
278 | break; | ||
279 | } | ||
280 | |||
281 | return 0; | ||
282 | } | ||
283 | |||
284 | /** | ||
285 | * rio_hw_add_outb_message - Add message to the MPC85xx outbound message queue | ||
286 | * @mport: Master port with outbound message queue | ||
287 | * @rdev: Target of outbound message | ||
288 | * @mbox: Outbound mailbox | ||
289 | * @buffer: Message to add to outbound queue | ||
290 | * @len: Length of message | ||
291 | * | ||
292 | * Adds the @buffer message to the MPC85xx outbound message queue. Returns | ||
293 | * %0 on success or %-EINVAL on failure. | ||
294 | */ | ||
295 | int | ||
296 | rio_hw_add_outb_message(struct rio_mport *mport, struct rio_dev *rdev, int mbox, | ||
297 | void *buffer, size_t len) | ||
298 | { | ||
299 | u32 omr; | ||
300 | struct rio_tx_desc *desc = | ||
301 | (struct rio_tx_desc *)msg_tx_ring.virt + msg_tx_ring.tx_slot; | ||
302 | int ret = 0; | ||
303 | |||
304 | pr_debug | ||
305 | ("RIO: rio_hw_add_outb_message(): destid %4.4x mbox %d buffer %8.8x len %8.8x\n", | ||
306 | rdev->destid, mbox, (int)buffer, len); | ||
307 | |||
308 | if ((len < 8) || (len > RIO_MAX_MSG_SIZE)) { | ||
309 | ret = -EINVAL; | ||
310 | goto out; | ||
311 | } | ||
312 | |||
313 | /* Copy and clear rest of buffer */ | ||
314 | memcpy(msg_tx_ring.virt_buffer[msg_tx_ring.tx_slot], buffer, len); | ||
315 | if (len < (RIO_MAX_MSG_SIZE - 4)) | ||
316 | memset((void *)((u32) msg_tx_ring. | ||
317 | virt_buffer[msg_tx_ring.tx_slot] + len), 0, | ||
318 | RIO_MAX_MSG_SIZE - len); | ||
319 | |||
320 | /* Set mbox field for message */ | ||
321 | desc->dport = mbox & 0x3; | ||
322 | |||
323 | /* Enable EOMI interrupt, set priority, and set destid */ | ||
324 | desc->dattr = 0x28000000 | (rdev->destid << 2); | ||
325 | |||
326 | /* Set transfer size aligned to next power of 2 (in double words) */ | ||
327 | desc->dwcnt = is_power_of_2(len) ? len : 1 << get_bitmask_order(len); | ||
328 | |||
329 | /* Set snooping and source buffer address */ | ||
330 | desc->saddr = 0x00000004 | msg_tx_ring.phys_buffer[msg_tx_ring.tx_slot]; | ||
331 | |||
332 | /* Increment enqueue pointer */ | ||
333 | omr = in_be32((void *)&msg_regs->omr); | ||
334 | out_be32((void *)&msg_regs->omr, omr | RIO_MSG_OMR_MUI); | ||
335 | |||
336 | /* Go to next descriptor */ | ||
337 | if (++msg_tx_ring.tx_slot == msg_tx_ring.size) | ||
338 | msg_tx_ring.tx_slot = 0; | ||
339 | |||
340 | out: | ||
341 | return ret; | ||
342 | } | ||
343 | |||
344 | EXPORT_SYMBOL_GPL(rio_hw_add_outb_message); | ||
345 | |||
346 | /** | ||
347 | * mpc85xx_rio_tx_handler - MPC85xx outbound message interrupt handler | ||
348 | * @irq: Linux interrupt number | ||
349 | * @dev_instance: Pointer to interrupt-specific data | ||
350 | * | ||
351 | * Handles outbound message interrupts. Executes a register outbound | ||
352 | * mailbox event handler and acks the interrupt occurrence. | ||
353 | */ | ||
354 | static irqreturn_t | ||
355 | mpc85xx_rio_tx_handler(int irq, void *dev_instance) | ||
356 | { | ||
357 | int osr; | ||
358 | struct rio_mport *port = (struct rio_mport *)dev_instance; | ||
359 | |||
360 | osr = in_be32((void *)&msg_regs->osr); | ||
361 | |||
362 | if (osr & RIO_MSG_OSR_TE) { | ||
363 | pr_info("RIO: outbound message transmission error\n"); | ||
364 | out_be32((void *)&msg_regs->osr, RIO_MSG_OSR_TE); | ||
365 | goto out; | ||
366 | } | ||
367 | |||
368 | if (osr & RIO_MSG_OSR_QOI) { | ||
369 | pr_info("RIO: outbound message queue overflow\n"); | ||
370 | out_be32((void *)&msg_regs->osr, RIO_MSG_OSR_QOI); | ||
371 | goto out; | ||
372 | } | ||
373 | |||
374 | if (osr & RIO_MSG_OSR_EOMI) { | ||
375 | u32 dqp = in_be32((void *)&msg_regs->odqdpar); | ||
376 | int slot = (dqp - msg_tx_ring.phys) >> 5; | ||
377 | port->outb_msg[0].mcback(port, msg_tx_ring.dev_id, -1, slot); | ||
378 | |||
379 | /* Ack the end-of-message interrupt */ | ||
380 | out_be32((void *)&msg_regs->osr, RIO_MSG_OSR_EOMI); | ||
381 | } | ||
382 | |||
383 | out: | ||
384 | return IRQ_HANDLED; | ||
385 | } | ||
386 | |||
387 | /** | ||
388 | * rio_open_outb_mbox - Initialize MPC85xx outbound mailbox | ||
389 | * @mport: Master port implementing the outbound message unit | ||
390 | * @dev_id: Device specific pointer to pass on event | ||
391 | * @mbox: Mailbox to open | ||
392 | * @entries: Number of entries in the outbound mailbox ring | ||
393 | * | ||
394 | * Initializes buffer ring, request the outbound message interrupt, | ||
395 | * and enables the outbound message unit. Returns %0 on success and | ||
396 | * %-EINVAL or %-ENOMEM on failure. | ||
397 | */ | ||
398 | int rio_open_outb_mbox(struct rio_mport *mport, void *dev_id, int mbox, int entries) | ||
399 | { | ||
400 | int i, j, rc = 0; | ||
401 | |||
402 | if ((entries < RIO_MIN_TX_RING_SIZE) || | ||
403 | (entries > RIO_MAX_TX_RING_SIZE) || (!is_power_of_2(entries))) { | ||
404 | rc = -EINVAL; | ||
405 | goto out; | ||
406 | } | ||
407 | |||
408 | /* Initialize shadow copy ring */ | ||
409 | msg_tx_ring.dev_id = dev_id; | ||
410 | msg_tx_ring.size = entries; | ||
411 | |||
412 | for (i = 0; i < msg_tx_ring.size; i++) { | ||
413 | if (! | ||
414 | (msg_tx_ring.virt_buffer[i] = | ||
415 | dma_alloc_coherent(NULL, RIO_MSG_BUFFER_SIZE, | ||
416 | &msg_tx_ring.phys_buffer[i], | ||
417 | GFP_KERNEL))) { | ||
418 | rc = -ENOMEM; | ||
419 | for (j = 0; j < msg_tx_ring.size; j++) | ||
420 | if (msg_tx_ring.virt_buffer[j]) | ||
421 | dma_free_coherent(NULL, | ||
422 | RIO_MSG_BUFFER_SIZE, | ||
423 | msg_tx_ring. | ||
424 | virt_buffer[j], | ||
425 | msg_tx_ring. | ||
426 | phys_buffer[j]); | ||
427 | goto out; | ||
428 | } | ||
429 | } | ||
430 | |||
431 | /* Initialize outbound message descriptor ring */ | ||
432 | if (!(msg_tx_ring.virt = dma_alloc_coherent(NULL, | ||
433 | msg_tx_ring.size * | ||
434 | RIO_MSG_DESC_SIZE, | ||
435 | &msg_tx_ring.phys, | ||
436 | GFP_KERNEL))) { | ||
437 | rc = -ENOMEM; | ||
438 | goto out_dma; | ||
439 | } | ||
440 | memset(msg_tx_ring.virt, 0, msg_tx_ring.size * RIO_MSG_DESC_SIZE); | ||
441 | msg_tx_ring.tx_slot = 0; | ||
442 | |||
443 | /* Point dequeue/enqueue pointers at first entry in ring */ | ||
444 | out_be32((void *)&msg_regs->odqdpar, msg_tx_ring.phys); | ||
445 | out_be32((void *)&msg_regs->odqepar, msg_tx_ring.phys); | ||
446 | |||
447 | /* Configure for snooping */ | ||
448 | out_be32((void *)&msg_regs->osar, 0x00000004); | ||
449 | |||
450 | /* Clear interrupt status */ | ||
451 | out_be32((void *)&msg_regs->osr, 0x000000b3); | ||
452 | |||
453 | /* Hook up outbound message handler */ | ||
454 | if ((rc = | ||
455 | request_irq(MPC85xx_IRQ_RIO_TX, mpc85xx_rio_tx_handler, 0, | ||
456 | "msg_tx", (void *)mport)) < 0) | ||
457 | goto out_irq; | ||
458 | |||
459 | /* | ||
460 | * Configure outbound message unit | ||
461 | * Snooping | ||
462 | * Interrupts (all enabled, except QEIE) | ||
463 | * Chaining mode | ||
464 | * Disable | ||
465 | */ | ||
466 | out_be32((void *)&msg_regs->omr, 0x00100220); | ||
467 | |||
468 | /* Set number of entries */ | ||
469 | out_be32((void *)&msg_regs->omr, | ||
470 | in_be32((void *)&msg_regs->omr) | | ||
471 | ((get_bitmask_order(entries) - 2) << 12)); | ||
472 | |||
473 | /* Now enable the unit */ | ||
474 | out_be32((void *)&msg_regs->omr, in_be32((void *)&msg_regs->omr) | 0x1); | ||
475 | |||
476 | out: | ||
477 | return rc; | ||
478 | |||
479 | out_irq: | ||
480 | dma_free_coherent(NULL, msg_tx_ring.size * RIO_MSG_DESC_SIZE, | ||
481 | msg_tx_ring.virt, msg_tx_ring.phys); | ||
482 | |||
483 | out_dma: | ||
484 | for (i = 0; i < msg_tx_ring.size; i++) | ||
485 | dma_free_coherent(NULL, RIO_MSG_BUFFER_SIZE, | ||
486 | msg_tx_ring.virt_buffer[i], | ||
487 | msg_tx_ring.phys_buffer[i]); | ||
488 | |||
489 | return rc; | ||
490 | } | ||
491 | |||
492 | /** | ||
493 | * rio_close_outb_mbox - Shut down MPC85xx outbound mailbox | ||
494 | * @mport: Master port implementing the outbound message unit | ||
495 | * @mbox: Mailbox to close | ||
496 | * | ||
497 | * Disables the outbound message unit, free all buffers, and | ||
498 | * frees the outbound message interrupt. | ||
499 | */ | ||
500 | void rio_close_outb_mbox(struct rio_mport *mport, int mbox) | ||
501 | { | ||
502 | /* Disable inbound message unit */ | ||
503 | out_be32((void *)&msg_regs->omr, 0); | ||
504 | |||
505 | /* Free ring */ | ||
506 | dma_free_coherent(NULL, msg_tx_ring.size * RIO_MSG_DESC_SIZE, | ||
507 | msg_tx_ring.virt, msg_tx_ring.phys); | ||
508 | |||
509 | /* Free interrupt */ | ||
510 | free_irq(MPC85xx_IRQ_RIO_TX, (void *)mport); | ||
511 | } | ||
512 | |||
513 | /** | ||
514 | * mpc85xx_rio_rx_handler - MPC85xx inbound message interrupt handler | ||
515 | * @irq: Linux interrupt number | ||
516 | * @dev_instance: Pointer to interrupt-specific data | ||
517 | * | ||
518 | * Handles inbound message interrupts. Executes a registered inbound | ||
519 | * mailbox event handler and acks the interrupt occurrence. | ||
520 | */ | ||
521 | static irqreturn_t | ||
522 | mpc85xx_rio_rx_handler(int irq, void *dev_instance) | ||
523 | { | ||
524 | int isr; | ||
525 | struct rio_mport *port = (struct rio_mport *)dev_instance; | ||
526 | |||
527 | isr = in_be32((void *)&msg_regs->isr); | ||
528 | |||
529 | if (isr & RIO_MSG_ISR_TE) { | ||
530 | pr_info("RIO: inbound message reception error\n"); | ||
531 | out_be32((void *)&msg_regs->isr, RIO_MSG_ISR_TE); | ||
532 | goto out; | ||
533 | } | ||
534 | |||
535 | /* XXX Need to check/dispatch until queue empty */ | ||
536 | if (isr & RIO_MSG_ISR_DIQI) { | ||
537 | /* | ||
538 | * We implement *only* mailbox 0, but can receive messages | ||
539 | * for any mailbox/letter to that mailbox destination. So, | ||
540 | * make the callback with an unknown/invalid mailbox number | ||
541 | * argument. | ||
542 | */ | ||
543 | port->inb_msg[0].mcback(port, msg_rx_ring.dev_id, -1, -1); | ||
544 | |||
545 | /* Ack the queueing interrupt */ | ||
546 | out_be32((void *)&msg_regs->isr, RIO_MSG_ISR_DIQI); | ||
547 | } | ||
548 | |||
549 | out: | ||
550 | return IRQ_HANDLED; | ||
551 | } | ||
552 | |||
553 | /** | ||
554 | * rio_open_inb_mbox - Initialize MPC85xx inbound mailbox | ||
555 | * @mport: Master port implementing the inbound message unit | ||
556 | * @dev_id: Device specific pointer to pass on event | ||
557 | * @mbox: Mailbox to open | ||
558 | * @entries: Number of entries in the inbound mailbox ring | ||
559 | * | ||
560 | * Initializes buffer ring, request the inbound message interrupt, | ||
561 | * and enables the inbound message unit. Returns %0 on success | ||
562 | * and %-EINVAL or %-ENOMEM on failure. | ||
563 | */ | ||
564 | int rio_open_inb_mbox(struct rio_mport *mport, void *dev_id, int mbox, int entries) | ||
565 | { | ||
566 | int i, rc = 0; | ||
567 | |||
568 | if ((entries < RIO_MIN_RX_RING_SIZE) || | ||
569 | (entries > RIO_MAX_RX_RING_SIZE) || (!is_power_of_2(entries))) { | ||
570 | rc = -EINVAL; | ||
571 | goto out; | ||
572 | } | ||
573 | |||
574 | /* Initialize client buffer ring */ | ||
575 | msg_rx_ring.dev_id = dev_id; | ||
576 | msg_rx_ring.size = entries; | ||
577 | msg_rx_ring.rx_slot = 0; | ||
578 | for (i = 0; i < msg_rx_ring.size; i++) | ||
579 | msg_rx_ring.virt_buffer[i] = NULL; | ||
580 | |||
581 | /* Initialize inbound message ring */ | ||
582 | if (!(msg_rx_ring.virt = dma_alloc_coherent(NULL, | ||
583 | msg_rx_ring.size * | ||
584 | RIO_MAX_MSG_SIZE, | ||
585 | &msg_rx_ring.phys, | ||
586 | GFP_KERNEL))) { | ||
587 | rc = -ENOMEM; | ||
588 | goto out; | ||
589 | } | ||
590 | |||
591 | /* Point dequeue/enqueue pointers at first entry in ring */ | ||
592 | out_be32((void *)&msg_regs->ifqdpar, (u32) msg_rx_ring.phys); | ||
593 | out_be32((void *)&msg_regs->ifqepar, (u32) msg_rx_ring.phys); | ||
594 | |||
595 | /* Clear interrupt status */ | ||
596 | out_be32((void *)&msg_regs->isr, 0x00000091); | ||
597 | |||
598 | /* Hook up inbound message handler */ | ||
599 | if ((rc = | ||
600 | request_irq(MPC85xx_IRQ_RIO_RX, mpc85xx_rio_rx_handler, 0, | ||
601 | "msg_rx", (void *)mport)) < 0) { | ||
602 | dma_free_coherent(NULL, RIO_MSG_BUFFER_SIZE, | ||
603 | msg_tx_ring.virt_buffer[i], | ||
604 | msg_tx_ring.phys_buffer[i]); | ||
605 | goto out; | ||
606 | } | ||
607 | |||
608 | /* | ||
609 | * Configure inbound message unit: | ||
610 | * Snooping | ||
611 | * 4KB max message size | ||
612 | * Unmask all interrupt sources | ||
613 | * Disable | ||
614 | */ | ||
615 | out_be32((void *)&msg_regs->imr, 0x001b0060); | ||
616 | |||
617 | /* Set number of queue entries */ | ||
618 | out_be32((void *)&msg_regs->imr, | ||
619 | in_be32((void *)&msg_regs->imr) | | ||
620 | ((get_bitmask_order(entries) - 2) << 12)); | ||
621 | |||
622 | /* Now enable the unit */ | ||
623 | out_be32((void *)&msg_regs->imr, in_be32((void *)&msg_regs->imr) | 0x1); | ||
624 | |||
625 | out: | ||
626 | return rc; | ||
627 | } | ||
628 | |||
629 | /** | ||
630 | * rio_close_inb_mbox - Shut down MPC85xx inbound mailbox | ||
631 | * @mport: Master port implementing the inbound message unit | ||
632 | * @mbox: Mailbox to close | ||
633 | * | ||
634 | * Disables the inbound message unit, free all buffers, and | ||
635 | * frees the inbound message interrupt. | ||
636 | */ | ||
637 | void rio_close_inb_mbox(struct rio_mport *mport, int mbox) | ||
638 | { | ||
639 | /* Disable inbound message unit */ | ||
640 | out_be32((void *)&msg_regs->imr, 0); | ||
641 | |||
642 | /* Free ring */ | ||
643 | dma_free_coherent(NULL, msg_rx_ring.size * RIO_MAX_MSG_SIZE, | ||
644 | msg_rx_ring.virt, msg_rx_ring.phys); | ||
645 | |||
646 | /* Free interrupt */ | ||
647 | free_irq(MPC85xx_IRQ_RIO_RX, (void *)mport); | ||
648 | } | ||
649 | |||
650 | /** | ||
651 | * rio_hw_add_inb_buffer - Add buffer to the MPC85xx inbound message queue | ||
652 | * @mport: Master port implementing the inbound message unit | ||
653 | * @mbox: Inbound mailbox number | ||
654 | * @buf: Buffer to add to inbound queue | ||
655 | * | ||
656 | * Adds the @buf buffer to the MPC85xx inbound message queue. Returns | ||
657 | * %0 on success or %-EINVAL on failure. | ||
658 | */ | ||
659 | int rio_hw_add_inb_buffer(struct rio_mport *mport, int mbox, void *buf) | ||
660 | { | ||
661 | int rc = 0; | ||
662 | |||
663 | pr_debug("RIO: rio_hw_add_inb_buffer(), msg_rx_ring.rx_slot %d\n", | ||
664 | msg_rx_ring.rx_slot); | ||
665 | |||
666 | if (msg_rx_ring.virt_buffer[msg_rx_ring.rx_slot]) { | ||
667 | printk(KERN_ERR | ||
668 | "RIO: error adding inbound buffer %d, buffer exists\n", | ||
669 | msg_rx_ring.rx_slot); | ||
670 | rc = -EINVAL; | ||
671 | goto out; | ||
672 | } | ||
673 | |||
674 | msg_rx_ring.virt_buffer[msg_rx_ring.rx_slot] = buf; | ||
675 | if (++msg_rx_ring.rx_slot == msg_rx_ring.size) | ||
676 | msg_rx_ring.rx_slot = 0; | ||
677 | |||
678 | out: | ||
679 | return rc; | ||
680 | } | ||
681 | |||
682 | EXPORT_SYMBOL_GPL(rio_hw_add_inb_buffer); | ||
683 | |||
684 | /** | ||
685 | * rio_hw_get_inb_message - Fetch inbound message from the MPC85xx message unit | ||
686 | * @mport: Master port implementing the inbound message unit | ||
687 | * @mbox: Inbound mailbox number | ||
688 | * | ||
689 | * Gets the next available inbound message from the inbound message queue. | ||
690 | * A pointer to the message is returned on success or NULL on failure. | ||
691 | */ | ||
692 | void *rio_hw_get_inb_message(struct rio_mport *mport, int mbox) | ||
693 | { | ||
694 | u32 imr; | ||
695 | u32 phys_buf, virt_buf; | ||
696 | void *buf = NULL; | ||
697 | int buf_idx; | ||
698 | |||
699 | phys_buf = in_be32((void *)&msg_regs->ifqdpar); | ||
700 | |||
701 | /* If no more messages, then bail out */ | ||
702 | if (phys_buf == in_be32((void *)&msg_regs->ifqepar)) | ||
703 | goto out2; | ||
704 | |||
705 | virt_buf = (u32) msg_rx_ring.virt + (phys_buf - msg_rx_ring.phys); | ||
706 | buf_idx = (phys_buf - msg_rx_ring.phys) / RIO_MAX_MSG_SIZE; | ||
707 | buf = msg_rx_ring.virt_buffer[buf_idx]; | ||
708 | |||
709 | if (!buf) { | ||
710 | printk(KERN_ERR | ||
711 | "RIO: inbound message copy failed, no buffers\n"); | ||
712 | goto out1; | ||
713 | } | ||
714 | |||
715 | /* Copy max message size, caller is expected to allocate that big */ | ||
716 | memcpy(buf, (void *)virt_buf, RIO_MAX_MSG_SIZE); | ||
717 | |||
718 | /* Clear the available buffer */ | ||
719 | msg_rx_ring.virt_buffer[buf_idx] = NULL; | ||
720 | |||
721 | out1: | ||
722 | imr = in_be32((void *)&msg_regs->imr); | ||
723 | out_be32((void *)&msg_regs->imr, imr | RIO_MSG_IMR_MI); | ||
724 | |||
725 | out2: | ||
726 | return buf; | ||
727 | } | ||
728 | |||
729 | EXPORT_SYMBOL_GPL(rio_hw_get_inb_message); | ||
730 | |||
731 | /** | ||
732 | * mpc85xx_rio_dbell_handler - MPC85xx doorbell interrupt handler | ||
733 | * @irq: Linux interrupt number | ||
734 | * @dev_instance: Pointer to interrupt-specific data | ||
735 | * | ||
736 | * Handles doorbell interrupts. Parses a list of registered | ||
737 | * doorbell event handlers and executes a matching event handler. | ||
738 | */ | ||
739 | static irqreturn_t | ||
740 | mpc85xx_rio_dbell_handler(int irq, void *dev_instance) | ||
741 | { | ||
742 | int dsr; | ||
743 | struct rio_mport *port = (struct rio_mport *)dev_instance; | ||
744 | |||
745 | dsr = in_be32((void *)&msg_regs->dsr); | ||
746 | |||
747 | if (dsr & DOORBELL_DSR_TE) { | ||
748 | pr_info("RIO: doorbell reception error\n"); | ||
749 | out_be32((void *)&msg_regs->dsr, DOORBELL_DSR_TE); | ||
750 | goto out; | ||
751 | } | ||
752 | |||
753 | if (dsr & DOORBELL_DSR_QFI) { | ||
754 | pr_info("RIO: doorbell queue full\n"); | ||
755 | out_be32((void *)&msg_regs->dsr, DOORBELL_DSR_QFI); | ||
756 | goto out; | ||
757 | } | ||
758 | |||
759 | /* XXX Need to check/dispatch until queue empty */ | ||
760 | if (dsr & DOORBELL_DSR_DIQI) { | ||
761 | u32 dmsg = | ||
762 | (u32) dbell_ring.virt + | ||
763 | (in_be32((void *)&msg_regs->dqdpar) & 0xfff); | ||
764 | u32 dmr; | ||
765 | struct rio_dbell *dbell; | ||
766 | int found = 0; | ||
767 | |||
768 | pr_debug | ||
769 | ("RIO: processing doorbell, sid %2.2x tid %2.2x info %4.4x\n", | ||
770 | DBELL_SID(dmsg), DBELL_TID(dmsg), DBELL_INF(dmsg)); | ||
771 | |||
772 | list_for_each_entry(dbell, &port->dbells, node) { | ||
773 | if ((dbell->res->start <= DBELL_INF(dmsg)) && | ||
774 | (dbell->res->end >= DBELL_INF(dmsg))) { | ||
775 | found = 1; | ||
776 | break; | ||
777 | } | ||
778 | } | ||
779 | if (found) { | ||
780 | dbell->dinb(port, dbell->dev_id, DBELL_SID(dmsg), DBELL_TID(dmsg), | ||
781 | DBELL_INF(dmsg)); | ||
782 | } else { | ||
783 | pr_debug | ||
784 | ("RIO: spurious doorbell, sid %2.2x tid %2.2x info %4.4x\n", | ||
785 | DBELL_SID(dmsg), DBELL_TID(dmsg), DBELL_INF(dmsg)); | ||
786 | } | ||
787 | dmr = in_be32((void *)&msg_regs->dmr); | ||
788 | out_be32((void *)&msg_regs->dmr, dmr | DOORBELL_DMR_DI); | ||
789 | out_be32((void *)&msg_regs->dsr, DOORBELL_DSR_DIQI); | ||
790 | } | ||
791 | |||
792 | out: | ||
793 | return IRQ_HANDLED; | ||
794 | } | ||
795 | |||
796 | /** | ||
797 | * mpc85xx_rio_doorbell_init - MPC85xx doorbell interface init | ||
798 | * @mport: Master port implementing the inbound doorbell unit | ||
799 | * | ||
800 | * Initializes doorbell unit hardware and inbound DMA buffer | ||
801 | * ring. Called from mpc85xx_rio_setup(). Returns %0 on success | ||
802 | * or %-ENOMEM on failure. | ||
803 | */ | ||
804 | static int mpc85xx_rio_doorbell_init(struct rio_mport *mport) | ||
805 | { | ||
806 | int rc = 0; | ||
807 | |||
808 | /* Map outbound doorbell window immediately after maintenance window */ | ||
809 | if (!(dbell_win = | ||
810 | (u32) ioremap(mport->iores.start + RIO_MAINT_WIN_SIZE, | ||
811 | RIO_DBELL_WIN_SIZE))) { | ||
812 | printk(KERN_ERR | ||
813 | "RIO: unable to map outbound doorbell window\n"); | ||
814 | rc = -ENOMEM; | ||
815 | goto out; | ||
816 | } | ||
817 | |||
818 | /* Initialize inbound doorbells */ | ||
819 | if (!(dbell_ring.virt = dma_alloc_coherent(NULL, | ||
820 | 512 * DOORBELL_MESSAGE_SIZE, | ||
821 | &dbell_ring.phys, | ||
822 | GFP_KERNEL))) { | ||
823 | printk(KERN_ERR "RIO: unable allocate inbound doorbell ring\n"); | ||
824 | rc = -ENOMEM; | ||
825 | iounmap((void *)dbell_win); | ||
826 | goto out; | ||
827 | } | ||
828 | |||
829 | /* Point dequeue/enqueue pointers at first entry in ring */ | ||
830 | out_be32((void *)&msg_regs->dqdpar, (u32) dbell_ring.phys); | ||
831 | out_be32((void *)&msg_regs->dqepar, (u32) dbell_ring.phys); | ||
832 | |||
833 | /* Clear interrupt status */ | ||
834 | out_be32((void *)&msg_regs->dsr, 0x00000091); | ||
835 | |||
836 | /* Hook up doorbell handler */ | ||
837 | if ((rc = | ||
838 | request_irq(MPC85xx_IRQ_RIO_BELL, mpc85xx_rio_dbell_handler, 0, | ||
839 | "dbell_rx", (void *)mport) < 0)) { | ||
840 | iounmap((void *)dbell_win); | ||
841 | dma_free_coherent(NULL, 512 * DOORBELL_MESSAGE_SIZE, | ||
842 | dbell_ring.virt, dbell_ring.phys); | ||
843 | printk(KERN_ERR | ||
844 | "MPC85xx RIO: unable to request inbound doorbell irq"); | ||
845 | goto out; | ||
846 | } | ||
847 | |||
848 | /* Configure doorbells for snooping, 512 entries, and enable */ | ||
849 | out_be32((void *)&msg_regs->dmr, 0x00108161); | ||
850 | |||
851 | out: | ||
852 | return rc; | ||
853 | } | ||
854 | |||
855 | static char *cmdline = NULL; | ||
856 | |||
857 | static int mpc85xx_rio_get_hdid(int index) | ||
858 | { | ||
859 | /* XXX Need to parse multiple entries in some format */ | ||
860 | if (!cmdline) | ||
861 | return -1; | ||
862 | |||
863 | return simple_strtol(cmdline, NULL, 0); | ||
864 | } | ||
865 | |||
866 | static int mpc85xx_rio_get_cmdline(char *s) | ||
867 | { | ||
868 | if (!s) | ||
869 | return 0; | ||
870 | |||
871 | cmdline = s; | ||
872 | return 1; | ||
873 | } | ||
874 | |||
875 | __setup("riohdid=", mpc85xx_rio_get_cmdline); | ||
876 | |||
877 | /** | ||
878 | * mpc85xx_rio_setup - Setup MPC85xx RapidIO interface | ||
879 | * @law_start: Starting physical address of RapidIO LAW | ||
880 | * @law_size: Size of RapidIO LAW | ||
881 | * | ||
882 | * Initializes MPC85xx RapidIO hardware interface, configures | ||
883 | * master port with system-specific info, and registers the | ||
884 | * master port with the RapidIO subsystem. | ||
885 | */ | ||
886 | void mpc85xx_rio_setup(int law_start, int law_size) | ||
887 | { | ||
888 | struct rio_ops *ops; | ||
889 | struct rio_mport *port; | ||
890 | |||
891 | ops = kmalloc(sizeof(struct rio_ops), GFP_KERNEL); | ||
892 | ops->lcread = mpc85xx_local_config_read; | ||
893 | ops->lcwrite = mpc85xx_local_config_write; | ||
894 | ops->cread = mpc85xx_rio_config_read; | ||
895 | ops->cwrite = mpc85xx_rio_config_write; | ||
896 | ops->dsend = mpc85xx_rio_doorbell_send; | ||
897 | |||
898 | port = kmalloc(sizeof(struct rio_mport), GFP_KERNEL); | ||
899 | port->id = 0; | ||
900 | port->index = 0; | ||
901 | INIT_LIST_HEAD(&port->dbells); | ||
902 | port->iores.start = law_start; | ||
903 | port->iores.end = law_start + law_size; | ||
904 | port->iores.flags = IORESOURCE_MEM; | ||
905 | |||
906 | rio_init_dbell_res(&port->riores[RIO_DOORBELL_RESOURCE], 0, 0xffff); | ||
907 | rio_init_mbox_res(&port->riores[RIO_INB_MBOX_RESOURCE], 0, 0); | ||
908 | rio_init_mbox_res(&port->riores[RIO_OUTB_MBOX_RESOURCE], 0, 0); | ||
909 | strcpy(port->name, "RIO0 mport"); | ||
910 | |||
911 | port->ops = ops; | ||
912 | port->host_deviceid = mpc85xx_rio_get_hdid(port->id); | ||
913 | |||
914 | rio_register_mport(port); | ||
915 | |||
916 | regs_win = (u32) ioremap(RIO_REGS_BASE, 0x20000); | ||
917 | atmu_regs = (struct rio_atmu_regs *)(regs_win + RIO_ATMU_REGS_OFFSET); | ||
918 | maint_atmu_regs = atmu_regs + 1; | ||
919 | dbell_atmu_regs = atmu_regs + 2; | ||
920 | msg_regs = (struct rio_msg_regs *)(regs_win + RIO_MSG_REGS_OFFSET); | ||
921 | |||
922 | /* Configure maintenance transaction window */ | ||
923 | out_be32((void *)&maint_atmu_regs->rowbar, 0x000c0000); | ||
924 | out_be32((void *)&maint_atmu_regs->rowar, 0x80077015); | ||
925 | |||
926 | maint_win = (u32) ioremap(law_start, RIO_MAINT_WIN_SIZE); | ||
927 | |||
928 | /* Configure outbound doorbell window */ | ||
929 | out_be32((void *)&dbell_atmu_regs->rowbar, 0x000c0400); | ||
930 | out_be32((void *)&dbell_atmu_regs->rowar, 0x8004200b); | ||
931 | mpc85xx_rio_doorbell_init(port); | ||
932 | } | ||
diff --git a/arch/powerpc/sysdev/fsl_rio.h b/arch/powerpc/sysdev/fsl_rio.h new file mode 100644 index 000000000000..6d3ff30b1579 --- /dev/null +++ b/arch/powerpc/sysdev/fsl_rio.h | |||
@@ -0,0 +1,20 @@ | |||
1 | /* | ||
2 | * MPC85xx RapidIO definitions | ||
3 | * | ||
4 | * Copyright 2005 MontaVista Software, Inc. | ||
5 | * Matt Porter <mporter@kernel.crashing.org> | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify it | ||
8 | * under the terms of the GNU General Public License as published by the | ||
9 | * Free Software Foundation; either version 2 of the License, or (at your | ||
10 | * option) any later version. | ||
11 | */ | ||
12 | |||
13 | #ifndef __PPC_SYSLIB_PPC85XX_RIO_H | ||
14 | #define __PPC_SYSLIB_PPC85XX_RIO_H | ||
15 | |||
16 | #include <linux/init.h> | ||
17 | |||
18 | extern void mpc85xx_rio_setup(int law_start, int law_size); | ||
19 | |||
20 | #endif /* __PPC_SYSLIB_PPC85XX_RIO_H */ | ||
diff --git a/arch/powerpc/sysdev/fsl_soc.c b/arch/powerpc/sysdev/fsl_soc.c index 217bcc2e8f86..f2c0988a03b8 100644 --- a/arch/powerpc/sysdev/fsl_soc.c +++ b/arch/powerpc/sysdev/fsl_soc.c | |||
@@ -24,6 +24,7 @@ | |||
24 | #include <linux/platform_device.h> | 24 | #include <linux/platform_device.h> |
25 | #include <linux/of_platform.h> | 25 | #include <linux/of_platform.h> |
26 | #include <linux/phy.h> | 26 | #include <linux/phy.h> |
27 | #include <linux/phy_fixed.h> | ||
27 | #include <linux/spi/spi.h> | 28 | #include <linux/spi/spi.h> |
28 | #include <linux/fsl_devices.h> | 29 | #include <linux/fsl_devices.h> |
29 | #include <linux/fs_enet_pd.h> | 30 | #include <linux/fs_enet_pd.h> |
@@ -54,10 +55,18 @@ phys_addr_t get_immrbase(void) | |||
54 | soc = of_find_node_by_type(NULL, "soc"); | 55 | soc = of_find_node_by_type(NULL, "soc"); |
55 | if (soc) { | 56 | if (soc) { |
56 | int size; | 57 | int size; |
57 | const void *prop = of_get_property(soc, "reg", &size); | 58 | u32 naddr; |
59 | const u32 *prop = of_get_property(soc, "#address-cells", &size); | ||
58 | 60 | ||
61 | if (prop && size == 4) | ||
62 | naddr = *prop; | ||
63 | else | ||
64 | naddr = 2; | ||
65 | |||
66 | prop = of_get_property(soc, "ranges", &size); | ||
59 | if (prop) | 67 | if (prop) |
60 | immrbase = of_translate_address(soc, prop); | 68 | immrbase = of_translate_address(soc, prop + naddr); |
69 | |||
61 | of_node_put(soc); | 70 | of_node_put(soc); |
62 | } | 71 | } |
63 | 72 | ||
@@ -130,6 +139,37 @@ u32 get_baudrate(void) | |||
130 | EXPORT_SYMBOL(get_baudrate); | 139 | EXPORT_SYMBOL(get_baudrate); |
131 | #endif /* CONFIG_CPM2 */ | 140 | #endif /* CONFIG_CPM2 */ |
132 | 141 | ||
142 | #ifdef CONFIG_FIXED_PHY | ||
143 | static int __init of_add_fixed_phys(void) | ||
144 | { | ||
145 | int ret; | ||
146 | struct device_node *np; | ||
147 | u32 *fixed_link; | ||
148 | struct fixed_phy_status status = {}; | ||
149 | |||
150 | for_each_node_by_name(np, "ethernet") { | ||
151 | fixed_link = (u32 *)of_get_property(np, "fixed-link", NULL); | ||
152 | if (!fixed_link) | ||
153 | continue; | ||
154 | |||
155 | status.link = 1; | ||
156 | status.duplex = fixed_link[1]; | ||
157 | status.speed = fixed_link[2]; | ||
158 | status.pause = fixed_link[3]; | ||
159 | status.asym_pause = fixed_link[4]; | ||
160 | |||
161 | ret = fixed_phy_add(PHY_POLL, fixed_link[0], &status); | ||
162 | if (ret) { | ||
163 | of_node_put(np); | ||
164 | return ret; | ||
165 | } | ||
166 | } | ||
167 | |||
168 | return 0; | ||
169 | } | ||
170 | arch_initcall(of_add_fixed_phys); | ||
171 | #endif /* CONFIG_FIXED_PHY */ | ||
172 | |||
133 | static int __init gfar_mdio_of_init(void) | 173 | static int __init gfar_mdio_of_init(void) |
134 | { | 174 | { |
135 | struct device_node *np = NULL; | 175 | struct device_node *np = NULL; |
@@ -198,7 +238,6 @@ static const char *gfar_tx_intr = "tx"; | |||
198 | static const char *gfar_rx_intr = "rx"; | 238 | static const char *gfar_rx_intr = "rx"; |
199 | static const char *gfar_err_intr = "error"; | 239 | static const char *gfar_err_intr = "error"; |
200 | 240 | ||
201 | |||
202 | static int __init gfar_of_init(void) | 241 | static int __init gfar_of_init(void) |
203 | { | 242 | { |
204 | struct device_node *np; | 243 | struct device_node *np; |
@@ -282,29 +321,43 @@ static int __init gfar_of_init(void) | |||
282 | gfar_data.interface = PHY_INTERFACE_MODE_MII; | 321 | gfar_data.interface = PHY_INTERFACE_MODE_MII; |
283 | 322 | ||
284 | ph = of_get_property(np, "phy-handle", NULL); | 323 | ph = of_get_property(np, "phy-handle", NULL); |
285 | phy = of_find_node_by_phandle(*ph); | 324 | if (ph == NULL) { |
325 | u32 *fixed_link; | ||
286 | 326 | ||
287 | if (phy == NULL) { | 327 | fixed_link = (u32 *)of_get_property(np, "fixed-link", |
288 | ret = -ENODEV; | 328 | NULL); |
289 | goto unreg; | 329 | if (!fixed_link) { |
290 | } | 330 | ret = -ENODEV; |
331 | goto unreg; | ||
332 | } | ||
291 | 333 | ||
292 | mdio = of_get_parent(phy); | 334 | gfar_data.bus_id = 0; |
335 | gfar_data.phy_id = fixed_link[0]; | ||
336 | } else { | ||
337 | phy = of_find_node_by_phandle(*ph); | ||
338 | |||
339 | if (phy == NULL) { | ||
340 | ret = -ENODEV; | ||
341 | goto unreg; | ||
342 | } | ||
343 | |||
344 | mdio = of_get_parent(phy); | ||
345 | |||
346 | id = of_get_property(phy, "reg", NULL); | ||
347 | ret = of_address_to_resource(mdio, 0, &res); | ||
348 | if (ret) { | ||
349 | of_node_put(phy); | ||
350 | of_node_put(mdio); | ||
351 | goto unreg; | ||
352 | } | ||
353 | |||
354 | gfar_data.phy_id = *id; | ||
355 | gfar_data.bus_id = res.start; | ||
293 | 356 | ||
294 | id = of_get_property(phy, "reg", NULL); | ||
295 | ret = of_address_to_resource(mdio, 0, &res); | ||
296 | if (ret) { | ||
297 | of_node_put(phy); | 357 | of_node_put(phy); |
298 | of_node_put(mdio); | 358 | of_node_put(mdio); |
299 | goto unreg; | ||
300 | } | 359 | } |
301 | 360 | ||
302 | gfar_data.phy_id = *id; | ||
303 | gfar_data.bus_id = res.start; | ||
304 | |||
305 | of_node_put(phy); | ||
306 | of_node_put(mdio); | ||
307 | |||
308 | ret = | 361 | ret = |
309 | platform_device_add_data(gfar_dev, &gfar_data, | 362 | platform_device_add_data(gfar_dev, &gfar_data, |
310 | sizeof(struct | 363 | sizeof(struct |
@@ -531,14 +584,12 @@ static enum fsl_usb2_phy_modes determine_usb_phy(const char *phy_type) | |||
531 | static int __init fsl_usb_of_init(void) | 584 | static int __init fsl_usb_of_init(void) |
532 | { | 585 | { |
533 | struct device_node *np; | 586 | struct device_node *np; |
534 | unsigned int i; | 587 | unsigned int i = 0; |
535 | struct platform_device *usb_dev_mph = NULL, *usb_dev_dr_host = NULL, | 588 | struct platform_device *usb_dev_mph = NULL, *usb_dev_dr_host = NULL, |
536 | *usb_dev_dr_client = NULL; | 589 | *usb_dev_dr_client = NULL; |
537 | int ret; | 590 | int ret; |
538 | 591 | ||
539 | for (np = NULL, i = 0; | 592 | for_each_compatible_node(np, NULL, "fsl-usb2-mph") { |
540 | (np = of_find_compatible_node(np, "usb", "fsl-usb2-mph")) != NULL; | ||
541 | i++) { | ||
542 | struct resource r[2]; | 593 | struct resource r[2]; |
543 | struct fsl_usb2_platform_data usb_data; | 594 | struct fsl_usb2_platform_data usb_data; |
544 | const unsigned char *prop = NULL; | 595 | const unsigned char *prop = NULL; |
@@ -581,11 +632,10 @@ static int __init fsl_usb_of_init(void) | |||
581 | fsl_usb2_platform_data)); | 632 | fsl_usb2_platform_data)); |
582 | if (ret) | 633 | if (ret) |
583 | goto unreg_mph; | 634 | goto unreg_mph; |
635 | i++; | ||
584 | } | 636 | } |
585 | 637 | ||
586 | for (np = NULL; | 638 | for_each_compatible_node(np, NULL, "fsl-usb2-dr") { |
587 | (np = of_find_compatible_node(np, "usb", "fsl-usb2-dr")) != NULL; | ||
588 | i++) { | ||
589 | struct resource r[2]; | 639 | struct resource r[2]; |
590 | struct fsl_usb2_platform_data usb_data; | 640 | struct fsl_usb2_platform_data usb_data; |
591 | const unsigned char *prop = NULL; | 641 | const unsigned char *prop = NULL; |
@@ -657,6 +707,7 @@ static int __init fsl_usb_of_init(void) | |||
657 | fsl_usb2_platform_data)))) | 707 | fsl_usb2_platform_data)))) |
658 | goto unreg_dr; | 708 | goto unreg_dr; |
659 | } | 709 | } |
710 | i++; | ||
660 | } | 711 | } |
661 | return 0; | 712 | return 0; |
662 | 713 | ||
diff --git a/arch/powerpc/sysdev/ipic.c b/arch/powerpc/sysdev/ipic.c index 7274750fd9c6..4c016da68426 100644 --- a/arch/powerpc/sysdev/ipic.c +++ b/arch/powerpc/sysdev/ipic.c | |||
@@ -48,6 +48,13 @@ static struct ipic_info ipic_info[] = { | |||
48 | .bit = 17, | 48 | .bit = 17, |
49 | .prio_mask = 1, | 49 | .prio_mask = 1, |
50 | }, | 50 | }, |
51 | [3] = { | ||
52 | .mask = IPIC_SIMSR_H, | ||
53 | .prio = IPIC_SIPRR_C, | ||
54 | .force = IPIC_SIFCR_H, | ||
55 | .bit = 18, | ||
56 | .prio_mask = 2, | ||
57 | }, | ||
51 | [4] = { | 58 | [4] = { |
52 | .mask = IPIC_SIMSR_H, | 59 | .mask = IPIC_SIMSR_H, |
53 | .prio = IPIC_SIPRR_C, | 60 | .prio = IPIC_SIPRR_C, |
@@ -55,6 +62,34 @@ static struct ipic_info ipic_info[] = { | |||
55 | .bit = 19, | 62 | .bit = 19, |
56 | .prio_mask = 3, | 63 | .prio_mask = 3, |
57 | }, | 64 | }, |
65 | [5] = { | ||
66 | .mask = IPIC_SIMSR_H, | ||
67 | .prio = IPIC_SIPRR_C, | ||
68 | .force = IPIC_SIFCR_H, | ||
69 | .bit = 20, | ||
70 | .prio_mask = 4, | ||
71 | }, | ||
72 | [6] = { | ||
73 | .mask = IPIC_SIMSR_H, | ||
74 | .prio = IPIC_SIPRR_C, | ||
75 | .force = IPIC_SIFCR_H, | ||
76 | .bit = 21, | ||
77 | .prio_mask = 5, | ||
78 | }, | ||
79 | [7] = { | ||
80 | .mask = IPIC_SIMSR_H, | ||
81 | .prio = IPIC_SIPRR_C, | ||
82 | .force = IPIC_SIFCR_H, | ||
83 | .bit = 22, | ||
84 | .prio_mask = 6, | ||
85 | }, | ||
86 | [8] = { | ||
87 | .mask = IPIC_SIMSR_H, | ||
88 | .prio = IPIC_SIPRR_C, | ||
89 | .force = IPIC_SIFCR_H, | ||
90 | .bit = 23, | ||
91 | .prio_mask = 7, | ||
92 | }, | ||
58 | [9] = { | 93 | [9] = { |
59 | .mask = IPIC_SIMSR_H, | 94 | .mask = IPIC_SIMSR_H, |
60 | .prio = IPIC_SIPRR_D, | 95 | .prio = IPIC_SIPRR_D, |
@@ -223,6 +258,20 @@ static struct ipic_info ipic_info[] = { | |||
223 | .bit = 7, | 258 | .bit = 7, |
224 | .prio_mask = 7, | 259 | .prio_mask = 7, |
225 | }, | 260 | }, |
261 | [40] = { | ||
262 | .mask = IPIC_SIMSR_H, | ||
263 | .prio = IPIC_SIPRR_B, | ||
264 | .force = IPIC_SIFCR_H, | ||
265 | .bit = 8, | ||
266 | .prio_mask = 0, | ||
267 | }, | ||
268 | [41] = { | ||
269 | .mask = IPIC_SIMSR_H, | ||
270 | .prio = IPIC_SIPRR_B, | ||
271 | .force = IPIC_SIFCR_H, | ||
272 | .bit = 9, | ||
273 | .prio_mask = 1, | ||
274 | }, | ||
226 | [42] = { | 275 | [42] = { |
227 | .mask = IPIC_SIMSR_H, | 276 | .mask = IPIC_SIMSR_H, |
228 | .prio = IPIC_SIPRR_B, | 277 | .prio = IPIC_SIPRR_B, |
@@ -230,6 +279,13 @@ static struct ipic_info ipic_info[] = { | |||
230 | .bit = 10, | 279 | .bit = 10, |
231 | .prio_mask = 2, | 280 | .prio_mask = 2, |
232 | }, | 281 | }, |
282 | [43] = { | ||
283 | .mask = IPIC_SIMSR_H, | ||
284 | .prio = IPIC_SIPRR_B, | ||
285 | .force = IPIC_SIFCR_H, | ||
286 | .bit = 11, | ||
287 | .prio_mask = 3, | ||
288 | }, | ||
233 | [44] = { | 289 | [44] = { |
234 | .mask = IPIC_SIMSR_H, | 290 | .mask = IPIC_SIMSR_H, |
235 | .prio = IPIC_SIPRR_B, | 291 | .prio = IPIC_SIPRR_B, |
@@ -387,6 +443,12 @@ static struct ipic_info ipic_info[] = { | |||
387 | .force = IPIC_SIFCR_L, | 443 | .force = IPIC_SIFCR_L, |
388 | .bit = 18, | 444 | .bit = 18, |
389 | }, | 445 | }, |
446 | [83] = { | ||
447 | .mask = IPIC_SIMSR_L, | ||
448 | .prio = 0, | ||
449 | .force = IPIC_SIFCR_L, | ||
450 | .bit = 19, | ||
451 | }, | ||
390 | [84] = { | 452 | [84] = { |
391 | .mask = IPIC_SIMSR_L, | 453 | .mask = IPIC_SIMSR_L, |
392 | .prio = 0, | 454 | .prio = 0, |
diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c index f88ff09c4711..0da7069c7c62 100644 --- a/arch/powerpc/sysdev/mpic.c +++ b/arch/powerpc/sysdev/mpic.c | |||
@@ -267,7 +267,7 @@ static inline void _mpic_irq_write(struct mpic *mpic, unsigned int src_no, | |||
267 | */ | 267 | */ |
268 | 268 | ||
269 | 269 | ||
270 | static void _mpic_map_mmio(struct mpic *mpic, unsigned long phys_addr, | 270 | static void _mpic_map_mmio(struct mpic *mpic, phys_addr_t phys_addr, |
271 | struct mpic_reg_bank *rb, unsigned int offset, | 271 | struct mpic_reg_bank *rb, unsigned int offset, |
272 | unsigned int size) | 272 | unsigned int size) |
273 | { | 273 | { |
@@ -287,7 +287,7 @@ static void _mpic_map_dcr(struct mpic *mpic, struct mpic_reg_bank *rb, | |||
287 | BUG_ON(!DCR_MAP_OK(rb->dhost)); | 287 | BUG_ON(!DCR_MAP_OK(rb->dhost)); |
288 | } | 288 | } |
289 | 289 | ||
290 | static inline void mpic_map(struct mpic *mpic, unsigned long phys_addr, | 290 | static inline void mpic_map(struct mpic *mpic, phys_addr_t phys_addr, |
291 | struct mpic_reg_bank *rb, unsigned int offset, | 291 | struct mpic_reg_bank *rb, unsigned int offset, |
292 | unsigned int size) | 292 | unsigned int size) |
293 | { | 293 | { |
diff --git a/arch/powerpc/sysdev/qe_lib/Kconfig b/arch/powerpc/sysdev/qe_lib/Kconfig index f611d344a126..adc66212a419 100644 --- a/arch/powerpc/sysdev/qe_lib/Kconfig +++ b/arch/powerpc/sysdev/qe_lib/Kconfig | |||
@@ -4,7 +4,7 @@ | |||
4 | 4 | ||
5 | config UCC_SLOW | 5 | config UCC_SLOW |
6 | bool | 6 | bool |
7 | default n | 7 | default y if SERIAL_QE |
8 | help | 8 | help |
9 | This option provides qe_lib support to UCC slow | 9 | This option provides qe_lib support to UCC slow |
10 | protocols: UART, BISYNC, QMC | 10 | protocols: UART, BISYNC, QMC |
diff --git a/arch/powerpc/sysdev/qe_lib/qe.c b/arch/powerpc/sysdev/qe_lib/qe.c index 21e01061aca9..3925eae9b0f5 100644 --- a/arch/powerpc/sysdev/qe_lib/qe.c +++ b/arch/powerpc/sysdev/qe_lib/qe.c | |||
@@ -25,6 +25,7 @@ | |||
25 | #include <linux/module.h> | 25 | #include <linux/module.h> |
26 | #include <linux/delay.h> | 26 | #include <linux/delay.h> |
27 | #include <linux/ioport.h> | 27 | #include <linux/ioport.h> |
28 | #include <linux/crc32.h> | ||
28 | #include <asm/irq.h> | 29 | #include <asm/irq.h> |
29 | #include <asm/page.h> | 30 | #include <asm/page.h> |
30 | #include <asm/pgtable.h> | 31 | #include <asm/pgtable.h> |
@@ -394,3 +395,249 @@ void *qe_muram_addr(unsigned long offset) | |||
394 | return (void *)&qe_immr->muram[offset]; | 395 | return (void *)&qe_immr->muram[offset]; |
395 | } | 396 | } |
396 | EXPORT_SYMBOL(qe_muram_addr); | 397 | EXPORT_SYMBOL(qe_muram_addr); |
398 | |||
399 | /* The maximum number of RISCs we support */ | ||
400 | #define MAX_QE_RISC 2 | ||
401 | |||
402 | /* Firmware information stored here for qe_get_firmware_info() */ | ||
403 | static struct qe_firmware_info qe_firmware_info; | ||
404 | |||
405 | /* | ||
406 | * Set to 1 if QE firmware has been uploaded, and therefore | ||
407 | * qe_firmware_info contains valid data. | ||
408 | */ | ||
409 | static int qe_firmware_uploaded; | ||
410 | |||
411 | /* | ||
412 | * Upload a QE microcode | ||
413 | * | ||
414 | * This function is a worker function for qe_upload_firmware(). It does | ||
415 | * the actual uploading of the microcode. | ||
416 | */ | ||
417 | static void qe_upload_microcode(const void *base, | ||
418 | const struct qe_microcode *ucode) | ||
419 | { | ||
420 | const __be32 *code = base + be32_to_cpu(ucode->code_offset); | ||
421 | unsigned int i; | ||
422 | |||
423 | if (ucode->major || ucode->minor || ucode->revision) | ||
424 | printk(KERN_INFO "qe-firmware: " | ||
425 | "uploading microcode '%s' version %u.%u.%u\n", | ||
426 | ucode->id, ucode->major, ucode->minor, ucode->revision); | ||
427 | else | ||
428 | printk(KERN_INFO "qe-firmware: " | ||
429 | "uploading microcode '%s'\n", ucode->id); | ||
430 | |||
431 | /* Use auto-increment */ | ||
432 | out_be32(&qe_immr->iram.iadd, be32_to_cpu(ucode->iram_offset) | | ||
433 | QE_IRAM_IADD_AIE | QE_IRAM_IADD_BADDR); | ||
434 | |||
435 | for (i = 0; i < be32_to_cpu(ucode->count); i++) | ||
436 | out_be32(&qe_immr->iram.idata, be32_to_cpu(code[i])); | ||
437 | } | ||
438 | |||
439 | /* | ||
440 | * Upload a microcode to the I-RAM at a specific address. | ||
441 | * | ||
442 | * See Documentation/powerpc/qe-firmware.txt for information on QE microcode | ||
443 | * uploading. | ||
444 | * | ||
445 | * Currently, only version 1 is supported, so the 'version' field must be | ||
446 | * set to 1. | ||
447 | * | ||
448 | * The SOC model and revision are not validated, they are only displayed for | ||
449 | * informational purposes. | ||
450 | * | ||
451 | * 'calc_size' is the calculated size, in bytes, of the firmware structure and | ||
452 | * all of the microcode structures, minus the CRC. | ||
453 | * | ||
454 | * 'length' is the size that the structure says it is, including the CRC. | ||
455 | */ | ||
456 | int qe_upload_firmware(const struct qe_firmware *firmware) | ||
457 | { | ||
458 | unsigned int i; | ||
459 | unsigned int j; | ||
460 | u32 crc; | ||
461 | size_t calc_size = sizeof(struct qe_firmware); | ||
462 | size_t length; | ||
463 | const struct qe_header *hdr; | ||
464 | |||
465 | if (!firmware) { | ||
466 | printk(KERN_ERR "qe-firmware: invalid pointer\n"); | ||
467 | return -EINVAL; | ||
468 | } | ||
469 | |||
470 | hdr = &firmware->header; | ||
471 | length = be32_to_cpu(hdr->length); | ||
472 | |||
473 | /* Check the magic */ | ||
474 | if ((hdr->magic[0] != 'Q') || (hdr->magic[1] != 'E') || | ||
475 | (hdr->magic[2] != 'F')) { | ||
476 | printk(KERN_ERR "qe-firmware: not a microcode\n"); | ||
477 | return -EPERM; | ||
478 | } | ||
479 | |||
480 | /* Check the version */ | ||
481 | if (hdr->version != 1) { | ||
482 | printk(KERN_ERR "qe-firmware: unsupported version\n"); | ||
483 | return -EPERM; | ||
484 | } | ||
485 | |||
486 | /* Validate some of the fields */ | ||
487 | if ((firmware->count < 1) || (firmware->count >= MAX_QE_RISC)) { | ||
488 | printk(KERN_ERR "qe-firmware: invalid data\n"); | ||
489 | return -EINVAL; | ||
490 | } | ||
491 | |||
492 | /* Validate the length and check if there's a CRC */ | ||
493 | calc_size += (firmware->count - 1) * sizeof(struct qe_microcode); | ||
494 | |||
495 | for (i = 0; i < firmware->count; i++) | ||
496 | /* | ||
497 | * For situations where the second RISC uses the same microcode | ||
498 | * as the first, the 'code_offset' and 'count' fields will be | ||
499 | * zero, so it's okay to add those. | ||
500 | */ | ||
501 | calc_size += sizeof(__be32) * | ||
502 | be32_to_cpu(firmware->microcode[i].count); | ||
503 | |||
504 | /* Validate the length */ | ||
505 | if (length != calc_size + sizeof(__be32)) { | ||
506 | printk(KERN_ERR "qe-firmware: invalid length\n"); | ||
507 | return -EPERM; | ||
508 | } | ||
509 | |||
510 | /* Validate the CRC */ | ||
511 | crc = be32_to_cpu(*(__be32 *)((void *)firmware + calc_size)); | ||
512 | if (crc != crc32(0, firmware, calc_size)) { | ||
513 | printk(KERN_ERR "qe-firmware: firmware CRC is invalid\n"); | ||
514 | return -EIO; | ||
515 | } | ||
516 | |||
517 | /* | ||
518 | * If the microcode calls for it, split the I-RAM. | ||
519 | */ | ||
520 | if (!firmware->split) | ||
521 | setbits16(&qe_immr->cp.cercr, QE_CP_CERCR_CIR); | ||
522 | |||
523 | if (firmware->soc.model) | ||
524 | printk(KERN_INFO | ||
525 | "qe-firmware: firmware '%s' for %u V%u.%u\n", | ||
526 | firmware->id, be16_to_cpu(firmware->soc.model), | ||
527 | firmware->soc.major, firmware->soc.minor); | ||
528 | else | ||
529 | printk(KERN_INFO "qe-firmware: firmware '%s'\n", | ||
530 | firmware->id); | ||
531 | |||
532 | /* | ||
533 | * The QE only supports one microcode per RISC, so clear out all the | ||
534 | * saved microcode information and put in the new. | ||
535 | */ | ||
536 | memset(&qe_firmware_info, 0, sizeof(qe_firmware_info)); | ||
537 | strcpy(qe_firmware_info.id, firmware->id); | ||
538 | qe_firmware_info.extended_modes = firmware->extended_modes; | ||
539 | memcpy(qe_firmware_info.vtraps, firmware->vtraps, | ||
540 | sizeof(firmware->vtraps)); | ||
541 | |||
542 | /* Loop through each microcode. */ | ||
543 | for (i = 0; i < firmware->count; i++) { | ||
544 | const struct qe_microcode *ucode = &firmware->microcode[i]; | ||
545 | |||
546 | /* Upload a microcode if it's present */ | ||
547 | if (ucode->code_offset) | ||
548 | qe_upload_microcode(firmware, ucode); | ||
549 | |||
550 | /* Program the traps for this processor */ | ||
551 | for (j = 0; j < 16; j++) { | ||
552 | u32 trap = be32_to_cpu(ucode->traps[j]); | ||
553 | |||
554 | if (trap) | ||
555 | out_be32(&qe_immr->rsp[i].tibcr[j], trap); | ||
556 | } | ||
557 | |||
558 | /* Enable traps */ | ||
559 | out_be32(&qe_immr->rsp[i].eccr, be32_to_cpu(ucode->eccr)); | ||
560 | } | ||
561 | |||
562 | qe_firmware_uploaded = 1; | ||
563 | |||
564 | return 0; | ||
565 | } | ||
566 | EXPORT_SYMBOL(qe_upload_firmware); | ||
567 | |||
568 | /* | ||
569 | * Get info on the currently-loaded firmware | ||
570 | * | ||
571 | * This function also checks the device tree to see if the boot loader has | ||
572 | * uploaded a firmware already. | ||
573 | */ | ||
574 | struct qe_firmware_info *qe_get_firmware_info(void) | ||
575 | { | ||
576 | static int initialized; | ||
577 | struct property *prop; | ||
578 | struct device_node *qe; | ||
579 | struct device_node *fw = NULL; | ||
580 | const char *sprop; | ||
581 | unsigned int i; | ||
582 | |||
583 | /* | ||
584 | * If we haven't checked yet, and a driver hasn't uploaded a firmware | ||
585 | * yet, then check the device tree for information. | ||
586 | */ | ||
587 | if (initialized || qe_firmware_uploaded) | ||
588 | return NULL; | ||
589 | |||
590 | initialized = 1; | ||
591 | |||
592 | /* | ||
593 | * Newer device trees have an "fsl,qe" compatible property for the QE | ||
594 | * node, but we still need to support older device trees. | ||
595 | */ | ||
596 | qe = of_find_compatible_node(NULL, NULL, "fsl,qe"); | ||
597 | if (!qe) { | ||
598 | qe = of_find_node_by_type(NULL, "qe"); | ||
599 | if (!qe) | ||
600 | return NULL; | ||
601 | } | ||
602 | |||
603 | /* Find the 'firmware' child node */ | ||
604 | for_each_child_of_node(qe, fw) { | ||
605 | if (strcmp(fw->name, "firmware") == 0) | ||
606 | break; | ||
607 | } | ||
608 | |||
609 | of_node_put(qe); | ||
610 | |||
611 | /* Did we find the 'firmware' node? */ | ||
612 | if (!fw) | ||
613 | return NULL; | ||
614 | |||
615 | qe_firmware_uploaded = 1; | ||
616 | |||
617 | /* Copy the data into qe_firmware_info*/ | ||
618 | sprop = of_get_property(fw, "id", NULL); | ||
619 | if (sprop) | ||
620 | strncpy(qe_firmware_info.id, sprop, | ||
621 | sizeof(qe_firmware_info.id) - 1); | ||
622 | |||
623 | prop = of_find_property(fw, "extended-modes", NULL); | ||
624 | if (prop && (prop->length == sizeof(u64))) { | ||
625 | const u64 *iprop = prop->value; | ||
626 | |||
627 | qe_firmware_info.extended_modes = *iprop; | ||
628 | } | ||
629 | |||
630 | prop = of_find_property(fw, "virtual-traps", NULL); | ||
631 | if (prop && (prop->length == 32)) { | ||
632 | const u32 *iprop = prop->value; | ||
633 | |||
634 | for (i = 0; i < ARRAY_SIZE(qe_firmware_info.vtraps); i++) | ||
635 | qe_firmware_info.vtraps[i] = iprop[i]; | ||
636 | } | ||
637 | |||
638 | of_node_put(fw); | ||
639 | |||
640 | return &qe_firmware_info; | ||
641 | } | ||
642 | EXPORT_SYMBOL(qe_get_firmware_info); | ||
643 | |||
diff --git a/arch/powerpc/sysdev/qe_lib/ucc_slow.c b/arch/powerpc/sysdev/qe_lib/ucc_slow.c index 0174b3aeef8f..b2870b208ddb 100644 --- a/arch/powerpc/sysdev/qe_lib/ucc_slow.c +++ b/arch/powerpc/sysdev/qe_lib/ucc_slow.c | |||
@@ -19,6 +19,7 @@ | |||
19 | #include <linux/stddef.h> | 19 | #include <linux/stddef.h> |
20 | #include <linux/interrupt.h> | 20 | #include <linux/interrupt.h> |
21 | #include <linux/err.h> | 21 | #include <linux/err.h> |
22 | #include <linux/module.h> | ||
22 | 23 | ||
23 | #include <asm/io.h> | 24 | #include <asm/io.h> |
24 | #include <asm/immap_qe.h> | 25 | #include <asm/immap_qe.h> |
@@ -41,6 +42,7 @@ u32 ucc_slow_get_qe_cr_subblock(int uccs_num) | |||
41 | default: return QE_CR_SUBBLOCK_INVALID; | 42 | default: return QE_CR_SUBBLOCK_INVALID; |
42 | } | 43 | } |
43 | } | 44 | } |
45 | EXPORT_SYMBOL(ucc_slow_get_qe_cr_subblock); | ||
44 | 46 | ||
45 | void ucc_slow_poll_transmitter_now(struct ucc_slow_private * uccs) | 47 | void ucc_slow_poll_transmitter_now(struct ucc_slow_private * uccs) |
46 | { | 48 | { |
@@ -56,6 +58,7 @@ void ucc_slow_graceful_stop_tx(struct ucc_slow_private * uccs) | |||
56 | qe_issue_cmd(QE_GRACEFUL_STOP_TX, id, | 58 | qe_issue_cmd(QE_GRACEFUL_STOP_TX, id, |
57 | QE_CR_PROTOCOL_UNSPECIFIED, 0); | 59 | QE_CR_PROTOCOL_UNSPECIFIED, 0); |
58 | } | 60 | } |
61 | EXPORT_SYMBOL(ucc_slow_graceful_stop_tx); | ||
59 | 62 | ||
60 | void ucc_slow_stop_tx(struct ucc_slow_private * uccs) | 63 | void ucc_slow_stop_tx(struct ucc_slow_private * uccs) |
61 | { | 64 | { |
@@ -65,6 +68,7 @@ void ucc_slow_stop_tx(struct ucc_slow_private * uccs) | |||
65 | id = ucc_slow_get_qe_cr_subblock(us_info->ucc_num); | 68 | id = ucc_slow_get_qe_cr_subblock(us_info->ucc_num); |
66 | qe_issue_cmd(QE_STOP_TX, id, QE_CR_PROTOCOL_UNSPECIFIED, 0); | 69 | qe_issue_cmd(QE_STOP_TX, id, QE_CR_PROTOCOL_UNSPECIFIED, 0); |
67 | } | 70 | } |
71 | EXPORT_SYMBOL(ucc_slow_stop_tx); | ||
68 | 72 | ||
69 | void ucc_slow_restart_tx(struct ucc_slow_private * uccs) | 73 | void ucc_slow_restart_tx(struct ucc_slow_private * uccs) |
70 | { | 74 | { |
@@ -74,6 +78,7 @@ void ucc_slow_restart_tx(struct ucc_slow_private * uccs) | |||
74 | id = ucc_slow_get_qe_cr_subblock(us_info->ucc_num); | 78 | id = ucc_slow_get_qe_cr_subblock(us_info->ucc_num); |
75 | qe_issue_cmd(QE_RESTART_TX, id, QE_CR_PROTOCOL_UNSPECIFIED, 0); | 79 | qe_issue_cmd(QE_RESTART_TX, id, QE_CR_PROTOCOL_UNSPECIFIED, 0); |
76 | } | 80 | } |
81 | EXPORT_SYMBOL(ucc_slow_restart_tx); | ||
77 | 82 | ||
78 | void ucc_slow_enable(struct ucc_slow_private * uccs, enum comm_dir mode) | 83 | void ucc_slow_enable(struct ucc_slow_private * uccs, enum comm_dir mode) |
79 | { | 84 | { |
@@ -94,6 +99,7 @@ void ucc_slow_enable(struct ucc_slow_private * uccs, enum comm_dir mode) | |||
94 | } | 99 | } |
95 | out_be32(&us_regs->gumr_l, gumr_l); | 100 | out_be32(&us_regs->gumr_l, gumr_l); |
96 | } | 101 | } |
102 | EXPORT_SYMBOL(ucc_slow_enable); | ||
97 | 103 | ||
98 | void ucc_slow_disable(struct ucc_slow_private * uccs, enum comm_dir mode) | 104 | void ucc_slow_disable(struct ucc_slow_private * uccs, enum comm_dir mode) |
99 | { | 105 | { |
@@ -114,6 +120,7 @@ void ucc_slow_disable(struct ucc_slow_private * uccs, enum comm_dir mode) | |||
114 | } | 120 | } |
115 | out_be32(&us_regs->gumr_l, gumr_l); | 121 | out_be32(&us_regs->gumr_l, gumr_l); |
116 | } | 122 | } |
123 | EXPORT_SYMBOL(ucc_slow_disable); | ||
117 | 124 | ||
118 | /* Initialize the UCC for Slow operations | 125 | /* Initialize the UCC for Slow operations |
119 | * | 126 | * |
@@ -347,6 +354,7 @@ int ucc_slow_init(struct ucc_slow_info * us_info, struct ucc_slow_private ** ucc | |||
347 | *uccs_ret = uccs; | 354 | *uccs_ret = uccs; |
348 | return 0; | 355 | return 0; |
349 | } | 356 | } |
357 | EXPORT_SYMBOL(ucc_slow_init); | ||
350 | 358 | ||
351 | void ucc_slow_free(struct ucc_slow_private * uccs) | 359 | void ucc_slow_free(struct ucc_slow_private * uccs) |
352 | { | 360 | { |
@@ -366,5 +374,5 @@ void ucc_slow_free(struct ucc_slow_private * uccs) | |||
366 | 374 | ||
367 | kfree(uccs); | 375 | kfree(uccs); |
368 | } | 376 | } |
369 | 377 | EXPORT_SYMBOL(ucc_slow_free); | |
370 | 378 | ||