aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2009-12-16 16:26:53 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2009-12-16 16:26:53 -0500
commita73611b6aafa3b902524dad2d68e378c4ec9f4db (patch)
tree5dc4877055a2297d9f7f5db4cf6a5a7aad392dd0 /arch
parent5fa3577b1a1202972e6e419040438c29f39f59cc (diff)
parentae4cec4736969ec2196a6bbce4ab263ff7cb7eef (diff)
Merge branch 'next' of git://git.secretlab.ca/git/linux-2.6
* 'next' of git://git.secretlab.ca/git/linux-2.6: (23 commits) powerpc: fix up for mmu_mapin_ram api change powerpc: wii: allow ioremap within the memory hole powerpc: allow ioremap within reserved memory regions wii: use both mem1 and mem2 as ram wii: bootwrapper: add fixup to calc useable mem2 powerpc: gamecube/wii: early debugging using usbgecko powerpc: reserve fixmap entries for early debug powerpc: wii: default config powerpc: wii: platform support powerpc: wii: hollywood interrupt controller support powerpc: broadway processor support powerpc: wii: bootwrapper bits powerpc: wii: device tree powerpc: gamecube: default config powerpc: gamecube: platform support powerpc: gamecube/wii: flipper interrupt controller support powerpc: gamecube/wii: udbg support for usbgecko powerpc: gamecube/wii: do not include PCI support powerpc: gamecube/wii: declare as non-coherent platforms powerpc: gamecube/wii: introduce GAMECUBE_COMMON ... Fix up conflicts in arch/powerpc/mm/fsl_booke_mmu.c. Hopefully even close to correctly.
Diffstat (limited to 'arch')
-rw-r--r--arch/powerpc/Kconfig2
-rw-r--r--arch/powerpc/Kconfig.debug8
-rw-r--r--arch/powerpc/boot/Makefile7
-rw-r--r--arch/powerpc/boot/dts/gamecube.dts114
-rw-r--r--arch/powerpc/boot/dts/wii.dts218
-rw-r--r--arch/powerpc/boot/gamecube-head.S111
-rw-r--r--arch/powerpc/boot/gamecube.c35
-rw-r--r--arch/powerpc/boot/ugecon.c147
-rw-r--r--arch/powerpc/boot/ugecon.h24
-rw-r--r--arch/powerpc/boot/wii-head.S142
-rw-r--r--arch/powerpc/boot/wii.c158
-rwxr-xr-xarch/powerpc/boot/wrapper4
-rw-r--r--arch/powerpc/configs/gamecube_defconfig1061
-rw-r--r--arch/powerpc/configs/wii_defconfig1406
-rw-r--r--arch/powerpc/include/asm/fixmap.h3
-rw-r--r--arch/powerpc/include/asm/udbg.h1
-rw-r--r--arch/powerpc/kernel/cputable.c6
-rw-r--r--arch/powerpc/kernel/head_32.S25
-rw-r--r--arch/powerpc/kernel/udbg.c2
-rw-r--r--arch/powerpc/mm/40x_mmu.c2
-rw-r--r--arch/powerpc/mm/44x_mmu.c2
-rw-r--r--arch/powerpc/mm/fsl_booke_mmu.c2
-rw-r--r--arch/powerpc/mm/init_32.c9
-rw-r--r--arch/powerpc/mm/mmu_decl.h17
-rw-r--r--arch/powerpc/mm/pgtable_32.c36
-rw-r--r--arch/powerpc/mm/ppc_mmu_32.c4
-rw-r--r--arch/powerpc/platforms/Kconfig.cputype2
-rw-r--r--arch/powerpc/platforms/embedded6xx/Kconfig33
-rw-r--r--arch/powerpc/platforms/embedded6xx/Makefile4
-rw-r--r--arch/powerpc/platforms/embedded6xx/flipper-pic.c263
-rw-r--r--arch/powerpc/platforms/embedded6xx/flipper-pic.h25
-rw-r--r--arch/powerpc/platforms/embedded6xx/gamecube.c118
-rw-r--r--arch/powerpc/platforms/embedded6xx/hlwd-pic.c241
-rw-r--r--arch/powerpc/platforms/embedded6xx/hlwd-pic.h22
-rw-r--r--arch/powerpc/platforms/embedded6xx/usbgecko_udbg.c328
-rw-r--r--arch/powerpc/platforms/embedded6xx/usbgecko_udbg.h32
-rw-r--r--arch/powerpc/platforms/embedded6xx/wii.c268
37 files changed, 4861 insertions, 21 deletions
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 0df57466e783..ba3948c70072 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -704,7 +704,7 @@ config PPC_PCI_CHOICE
704config PCI 704config PCI
705 bool "PCI support" if PPC_PCI_CHOICE 705 bool "PCI support" if PPC_PCI_CHOICE
706 default y if !40x && !CPM2 && !8xx && !PPC_83xx \ 706 default y if !40x && !CPM2 && !8xx && !PPC_83xx \
707 && !PPC_85xx && !PPC_86xx 707 && !PPC_85xx && !PPC_86xx && !GAMECUBE_COMMON
708 default PCI_PERMEDIA if !4xx && !CPM2 && !8xx 708 default PCI_PERMEDIA if !4xx && !CPM2 && !8xx
709 default PCI_QSPAN if !4xx && !CPM2 && 8xx 709 default PCI_QSPAN if !4xx && !CPM2 && 8xx
710 select ARCH_SUPPORTS_MSI 710 select ARCH_SUPPORTS_MSI
diff --git a/arch/powerpc/Kconfig.debug b/arch/powerpc/Kconfig.debug
index bf3382f1904d..5cdd7ed9a12e 100644
--- a/arch/powerpc/Kconfig.debug
+++ b/arch/powerpc/Kconfig.debug
@@ -254,6 +254,14 @@ config PPC_EARLY_DEBUG_CPM
254 using a CPM-based serial port. This assumes that the bootwrapper 254 using a CPM-based serial port. This assumes that the bootwrapper
255 has run, and set up the CPM in a particular way. 255 has run, and set up the CPM in a particular way.
256 256
257config PPC_EARLY_DEBUG_USBGECKO
258 bool "Early debugging through the USB Gecko adapter"
259 depends on GAMECUBE_COMMON
260 select USBGECKO_UDBG
261 help
262 Select this to enable early debugging for Nintendo GameCube/Wii
263 consoles via an external USB Gecko adapter.
264
257endchoice 265endchoice
258 266
259config PPC_EARLY_DEBUG_44x_PHYSLOW 267config PPC_EARLY_DEBUG_44x_PHYSLOW
diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
index 7bfc8ad87798..bb2465bcb327 100644
--- a/arch/powerpc/boot/Makefile
+++ b/arch/powerpc/boot/Makefile
@@ -66,7 +66,7 @@ src-wlib := string.S crt0.S crtsavres.S stdio.c main.c \
66 gunzip_util.c elf_util.c $(zlib) devtree.c oflib.c ofconsole.c \ 66 gunzip_util.c elf_util.c $(zlib) devtree.c oflib.c ofconsole.c \
67 4xx.c ebony.c mv64x60.c mpsc.c mv64x60_i2c.c cuboot.c bamboo.c \ 67 4xx.c ebony.c mv64x60.c mpsc.c mv64x60_i2c.c cuboot.c bamboo.c \
68 cpm-serial.c stdlib.c mpc52xx-psc.c planetcore.c uartlite.c \ 68 cpm-serial.c stdlib.c mpc52xx-psc.c planetcore.c uartlite.c \
69 fsl-soc.c mpc8xx.c pq2.c 69 fsl-soc.c mpc8xx.c pq2.c ugecon.c
70src-plat := of.c cuboot-52xx.c cuboot-824x.c cuboot-83xx.c cuboot-85xx.c holly.c \ 70src-plat := of.c cuboot-52xx.c cuboot-824x.c cuboot-83xx.c cuboot-85xx.c holly.c \
71 cuboot-ebony.c cuboot-hotfoot.c treeboot-ebony.c prpmc2800.c \ 71 cuboot-ebony.c cuboot-hotfoot.c treeboot-ebony.c prpmc2800.c \
72 ps3-head.S ps3-hvcall.S ps3.c treeboot-bamboo.c cuboot-8xx.c \ 72 ps3-head.S ps3-hvcall.S ps3.c treeboot-bamboo.c cuboot-8xx.c \
@@ -76,7 +76,8 @@ src-plat := of.c cuboot-52xx.c cuboot-824x.c cuboot-83xx.c cuboot-85xx.c holly.c
76 cuboot-katmai.c cuboot-rainier.c redboot-8xx.c ep8248e.c \ 76 cuboot-katmai.c cuboot-rainier.c redboot-8xx.c ep8248e.c \
77 cuboot-warp.c cuboot-85xx-cpm2.c cuboot-yosemite.c simpleboot.c \ 77 cuboot-warp.c cuboot-85xx-cpm2.c cuboot-yosemite.c simpleboot.c \
78 virtex405-head.S virtex.c redboot-83xx.c cuboot-sam440ep.c \ 78 virtex405-head.S virtex.c redboot-83xx.c cuboot-sam440ep.c \
79 cuboot-acadia.c cuboot-amigaone.c cuboot-kilauea.c 79 cuboot-acadia.c cuboot-amigaone.c cuboot-kilauea.c \
80 gamecube-head.S gamecube.c wii-head.S wii.c
80src-boot := $(src-wlib) $(src-plat) empty.c 81src-boot := $(src-wlib) $(src-plat) empty.c
81 82
82src-boot := $(addprefix $(obj)/, $(src-boot)) 83src-boot := $(addprefix $(obj)/, $(src-boot))
@@ -254,6 +255,8 @@ image-$(CONFIG_KSI8560) += cuImage.ksi8560
254image-$(CONFIG_STORCENTER) += cuImage.storcenter 255image-$(CONFIG_STORCENTER) += cuImage.storcenter
255image-$(CONFIG_MPC7448HPC2) += cuImage.mpc7448hpc2 256image-$(CONFIG_MPC7448HPC2) += cuImage.mpc7448hpc2
256image-$(CONFIG_PPC_C2K) += cuImage.c2k 257image-$(CONFIG_PPC_C2K) += cuImage.c2k
258image-$(CONFIG_GAMECUBE) += dtbImage.gamecube
259image-$(CONFIG_WII) += dtbImage.wii
257 260
258# Board port in arch/powerpc/platform/amigaone/Kconfig 261# Board port in arch/powerpc/platform/amigaone/Kconfig
259image-$(CONFIG_AMIGAONE) += cuImage.amigaone 262image-$(CONFIG_AMIGAONE) += cuImage.amigaone
diff --git a/arch/powerpc/boot/dts/gamecube.dts b/arch/powerpc/boot/dts/gamecube.dts
new file mode 100644
index 000000000000..ef3be0e58b02
--- /dev/null
+++ b/arch/powerpc/boot/dts/gamecube.dts
@@ -0,0 +1,114 @@
1/*
2 * arch/powerpc/boot/dts/gamecube.dts
3 *
4 * Nintendo GameCube platform device tree source
5 * Copyright (C) 2007-2009 The GameCube Linux Team
6 * Copyright (C) 2007,2008,2009 Albert Herranz
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License
10 * as published by the Free Software Foundation; either version 2
11 * of the License, or (at your option) any later version.
12 *
13 */
14
15/dts-v1/;
16
17/ {
18 model = "nintendo,gamecube";
19 compatible = "nintendo,gamecube";
20 #address-cells = <1>;
21 #size-cells = <1>;
22
23 chosen {
24 bootargs = "root=/dev/gcnsda2 rootwait udbg-immortal";
25 };
26
27 memory {
28 device_type = "memory";
29 reg = <0x00000000 0x01800000>;
30 };
31
32 cpus {
33 #address-cells = <1>;
34 #size-cells = <0>;
35
36 PowerPC,gekko@0 {
37 device_type = "cpu";
38 reg = <0>;
39 clock-frequency = <486000000>; /* 486MHz */
40 bus-frequency = <162000000>; /* 162MHz core-to-bus 3x */
41 timebase-frequency = <40500000>; /* 162MHz / 4 */
42 i-cache-line-size = <32>;
43 d-cache-line-size = <32>;
44 i-cache-size = <32768>;
45 d-cache-size = <32768>;
46 };
47 };
48
49 /* devices contained int the flipper chipset */
50 flipper {
51 #address-cells = <1>;
52 #size-cells = <1>;
53 compatible = "nintendo,flipper";
54 ranges = <0x0c000000 0x0c000000 0x00010000>;
55 interrupt-parent = <&PIC>;
56
57 video@0c002000 {
58 compatible = "nintendo,flipper-vi";
59 reg = <0x0c002000 0x100>;
60 interrupts = <8>;
61 };
62
63 processor-interface@0c003000 {
64 compatible = "nintendo,flipper-pi";
65 reg = <0x0c003000 0x100>;
66
67 PIC: pic {
68 #interrupt-cells = <1>;
69 compatible = "nintendo,flipper-pic";
70 interrupt-controller;
71 };
72 };
73
74 dsp@0c005000 {
75 #address-cells = <1>;
76 #size-cells = <1>;
77 compatible = "nintendo,flipper-dsp";
78 reg = <0x0c005000 0x200>;
79 interrupts = <6>;
80
81 memory@0 {
82 compatible = "nintendo,flipper-aram";
83 reg = <0 0x1000000>; /* 16MB */
84 };
85 };
86
87 disk@0c006000 {
88 compatible = "nintendo,flipper-di";
89 reg = <0x0c006000 0x40>;
90 interrupts = <2>;
91 };
92
93 audio@0c006c00 {
94 compatible = "nintendo,flipper-ai";
95 reg = <0x0c006c00 0x20>;
96 interrupts = <6>;
97 };
98
99 gamepad-controller@0c006400 {
100 compatible = "nintendo,flipper-si";
101 reg = <0x0c006400 0x100>;
102 interrupts = <3>;
103 };
104
105 /* External Interface bus */
106 exi@0c006800 {
107 compatible = "nintendo,flipper-exi";
108 reg = <0x0c006800 0x40>;
109 virtual-reg = <0x0c006800>;
110 interrupts = <4>;
111 };
112 };
113};
114
diff --git a/arch/powerpc/boot/dts/wii.dts b/arch/powerpc/boot/dts/wii.dts
new file mode 100644
index 000000000000..77528c9a8dbd
--- /dev/null
+++ b/arch/powerpc/boot/dts/wii.dts
@@ -0,0 +1,218 @@
1/*
2 * arch/powerpc/boot/dts/wii.dts
3 *
4 * Nintendo Wii platform device tree source
5 * Copyright (C) 2008-2009 The GameCube Linux Team
6 * Copyright (C) 2008,2009 Albert Herranz
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License
10 * as published by the Free Software Foundation; either version 2
11 * of the License, or (at your option) any later version.
12 *
13 */
14
15/dts-v1/;
16
17/*
18 * This is commented-out for now.
19 * Until a later patch is merged, the kernel can use only the first
20 * contiguous RAM range and will BUG() if the memreserve is outside
21 * that range.
22 */
23/*/memreserve/ 0x10000000 0x0004000;*/ /* DSP RAM */
24
25/ {
26 model = "nintendo,wii";
27 compatible = "nintendo,wii";
28 #address-cells = <1>;
29 #size-cells = <1>;
30
31 chosen {
32 bootargs = "root=/dev/mmcblk0p2 rootwait udbg-immortal";
33 };
34
35 memory {
36 device_type = "memory";
37 reg = <0x00000000 0x01800000 /* MEM1 24MB 1T-SRAM */
38 0x10000000 0x04000000>; /* MEM2 64MB GDDR3 */
39 };
40
41 cpus {
42 #address-cells = <1>;
43 #size-cells = <0>;
44
45 PowerPC,broadway@0 {
46 device_type = "cpu";
47 reg = <0>;
48 clock-frequency = <729000000>; /* 729MHz */
49 bus-frequency = <243000000>; /* 243MHz core-to-bus 3x */
50 timebase-frequency = <60750000>; /* 243MHz / 4 */
51 i-cache-line-size = <32>;
52 d-cache-line-size = <32>;
53 i-cache-size = <32768>;
54 d-cache-size = <32768>;
55 };
56 };
57
58 /* devices contained in the hollywood chipset */
59 hollywood {
60 #address-cells = <1>;
61 #size-cells = <1>;
62 compatible = "nintendo,hollywood";
63 ranges = <0x0c000000 0x0c000000 0x01000000
64 0x0d000000 0x0d000000 0x00800000
65 0x0d800000 0x0d800000 0x00800000>;
66 interrupt-parent = <&PIC0>;
67
68 video@0c002000 {
69 compatible = "nintendo,hollywood-vi",
70 "nintendo,flipper-vi";
71 reg = <0x0c002000 0x100>;
72 interrupts = <8>;
73 };
74
75 processor-interface@0c003000 {
76 compatible = "nintendo,hollywood-pi",
77 "nintendo,flipper-pi";
78 reg = <0x0c003000 0x100>;
79
80 PIC0: pic0 {
81 #interrupt-cells = <1>;
82 compatible = "nintendo,flipper-pic";
83 interrupt-controller;
84 };
85 };
86
87 dsp@0c005000 {
88 #address-cells = <1>;
89 #size-cells = <1>;
90 compatible = "nintendo,hollywood-dsp",
91 "nintendo,flipper-dsp";
92 reg = <0x0c005000 0x200>;
93 interrupts = <6>;
94 };
95
96 gamepad-controller@0d006400 {
97 compatible = "nintendo,hollywood-si",
98 "nintendo,flipper-si";
99 reg = <0x0d006400 0x100>;
100 interrupts = <3>;
101 };
102
103 audio@0c006c00 {
104 compatible = "nintendo,hollywood-ai",
105 "nintendo,flipper-ai";
106 reg = <0x0d006c00 0x20>;
107 interrupts = <6>;
108 };
109
110 /* External Interface bus */
111 exi@0d006800 {
112 compatible = "nintendo,hollywood-exi",
113 "nintendo,flipper-exi";
114 reg = <0x0d006800 0x40>;
115 virtual-reg = <0x0d006800>;
116 interrupts = <4>;
117 };
118
119 usb@0d040000 {
120 compatible = "nintendo,hollywood-usb-ehci",
121 "usb-ehci";
122 reg = <0x0d040000 0x100>;
123 interrupts = <4>;
124 interrupt-parent = <&PIC1>;
125 };
126
127 usb@0d050000 {
128 compatible = "nintendo,hollywood-usb-ohci",
129 "usb-ohci";
130 reg = <0x0d050000 0x100>;
131 interrupts = <5>;
132 interrupt-parent = <&PIC1>;
133 };
134
135 usb@0d060000 {
136 compatible = "nintendo,hollywood-usb-ohci",
137 "usb-ohci";
138 reg = <0x0d060000 0x100>;
139 interrupts = <6>;
140 interrupt-parent = <&PIC1>;
141 };
142
143 sd@0d070000 {
144 compatible = "nintendo,hollywood-sdhci",
145 "sdhci";
146 reg = <0x0d070000 0x200>;
147 interrupts = <7>;
148 interrupt-parent = <&PIC1>;
149 };
150
151 sdio@0d080000 {
152 compatible = "nintendo,hollywood-sdhci",
153 "sdhci";
154 reg = <0x0d080000 0x200>;
155 interrupts = <8>;
156 interrupt-parent = <&PIC1>;
157 };
158
159 ipc@0d000000 {
160 compatible = "nintendo,hollywood-ipc";
161 reg = <0x0d000000 0x10>;
162 interrupts = <30>;
163 interrupt-parent = <&PIC1>;
164 };
165
166 PIC1: pic1@0d800030 {
167 #interrupt-cells = <1>;
168 compatible = "nintendo,hollywood-pic";
169 reg = <0x0d800030 0x10>;
170 interrupt-controller;
171 interrupts = <14>;
172 };
173
174 GPIO: gpio@0d8000c0 {
175 #gpio-cells = <2>;
176 compatible = "nintendo,hollywood-gpio";
177 reg = <0x0d8000c0 0x40>;
178 gpio-controller;
179
180 /*
181 * This is commented out while a standard binding
182 * for i2c over gpio is defined.
183 */
184 /*
185 i2c-video {
186 #address-cells = <1>;
187 #size-cells = <0>;
188 compatible = "i2c-gpio";
189
190 gpios = <&GPIO 15 0
191 &GPIO 14 0>;
192 clock-frequency = <250000>;
193 no-clock-stretching;
194 scl-is-open-drain;
195 sda-is-open-drain;
196 sda-enforce-dir;
197
198 AVE: audio-video-encoder@70 {
199 compatible = "nintendo,wii-audio-video-encoder";
200 reg = <0x70>;
201 };
202 };
203 */
204 };
205
206 control@0d800100 {
207 compatible = "nintendo,hollywood-control";
208 reg = <0x0d800100 0x300>;
209 };
210
211 disk@0d806000 {
212 compatible = "nintendo,hollywood-di";
213 reg = <0x0d806000 0x40>;
214 interrupts = <2>;
215 };
216 };
217};
218
diff --git a/arch/powerpc/boot/gamecube-head.S b/arch/powerpc/boot/gamecube-head.S
new file mode 100644
index 000000000000..65a9b2a3bf33
--- /dev/null
+++ b/arch/powerpc/boot/gamecube-head.S
@@ -0,0 +1,111 @@
1/*
2 * arch/powerpc/boot/gamecube-head.S
3 *
4 * Nintendo GameCube bootwrapper entry.
5 * Copyright (C) 2004-2009 The GameCube Linux Team
6 * Copyright (C) 2008,2009 Albert Herranz
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License
10 * as published by the Free Software Foundation; either version 2
11 * of the License, or (at your option) any later version.
12 *
13 */
14
15#include "ppc_asm.h"
16
17/*
18 * The entry code does no assumptions regarding:
19 * - if the data and instruction caches are enabled or not
20 * - if the MMU is enabled or not
21 *
22 * We enable the caches if not already enabled, enable the MMU with an
23 * identity mapping scheme and jump to the start code.
24 */
25
26 .text
27
28 .globl _zimage_start
29_zimage_start:
30
31 /* turn the MMU off */
32 mfmsr 9
33 rlwinm 9, 9, 0, ~((1<<4)|(1<<5)) /* MSR_DR|MSR_IR */
34 bcl 20, 31, 1f
351:
36 mflr 8
37 clrlwi 8, 8, 3 /* convert to a real address */
38 addi 8, 8, _mmu_off - 1b
39 mtsrr0 8
40 mtsrr1 9
41 rfi
42_mmu_off:
43 /* MMU disabled */
44
45 /* setup BATs */
46 isync
47 li 8, 0
48 mtspr 0x210, 8 /* IBAT0U */
49 mtspr 0x212, 8 /* IBAT1U */
50 mtspr 0x214, 8 /* IBAT2U */
51 mtspr 0x216, 8 /* IBAT3U */
52 mtspr 0x218, 8 /* DBAT0U */
53 mtspr 0x21a, 8 /* DBAT1U */
54 mtspr 0x21c, 8 /* DBAT2U */
55 mtspr 0x21e, 8 /* DBAT3U */
56
57 li 8, 0x01ff /* first 16MiB */
58 li 9, 0x0002 /* rw */
59 mtspr 0x211, 9 /* IBAT0L */
60 mtspr 0x210, 8 /* IBAT0U */
61 mtspr 0x219, 9 /* DBAT0L */
62 mtspr 0x218, 8 /* DBAT0U */
63
64 lis 8, 0x0c00 /* I/O mem */
65 ori 8, 8, 0x3ff /* 32MiB */
66 lis 9, 0x0c00
67 ori 9, 9, 0x002a /* uncached, guarded, rw */
68 mtspr 0x21b, 9 /* DBAT1L */
69 mtspr 0x21a, 8 /* DBAT1U */
70
71 lis 8, 0x0100 /* next 8MiB */
72 ori 8, 8, 0x00ff /* 8MiB */
73 lis 9, 0x0100
74 ori 9, 9, 0x0002 /* rw */
75 mtspr 0x215, 9 /* IBAT2L */
76 mtspr 0x214, 8 /* IBAT2U */
77 mtspr 0x21d, 9 /* DBAT2L */
78 mtspr 0x21c, 8 /* DBAT2U */
79
80 /* enable and invalidate the caches if not already enabled */
81 mfspr 8, 0x3f0 /* HID0 */
82 andi. 0, 8, (1<<15) /* HID0_ICE */
83 bne 1f
84 ori 8, 8, (1<<15)|(1<<11) /* HID0_ICE|HID0_ICFI*/
851:
86 andi. 0, 8, (1<<14) /* HID0_DCE */
87 bne 1f
88 ori 8, 8, (1<<14)|(1<<10) /* HID0_DCE|HID0_DCFI*/
891:
90 mtspr 0x3f0, 8 /* HID0 */
91 isync
92
93 /* initialize arguments */
94 li 3, 0
95 li 4, 0
96 li 5, 0
97
98 /* turn the MMU on */
99 bcl 20, 31, 1f
1001:
101 mflr 8
102 addi 8, 8, _mmu_on - 1b
103 mfmsr 9
104 ori 9, 9, (1<<4)|(1<<5) /* MSR_DR|MSR_IR */
105 mtsrr0 8
106 mtsrr1 9
107 sync
108 rfi
109_mmu_on:
110 b _zimage_start_lib
111
diff --git a/arch/powerpc/boot/gamecube.c b/arch/powerpc/boot/gamecube.c
new file mode 100644
index 000000000000..28ae7057be5e
--- /dev/null
+++ b/arch/powerpc/boot/gamecube.c
@@ -0,0 +1,35 @@
1/*
2 * arch/powerpc/boot/gamecube.c
3 *
4 * Nintendo GameCube bootwrapper support
5 * Copyright (C) 2004-2009 The GameCube Linux Team
6 * Copyright (C) 2008,2009 Albert Herranz
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License
10 * as published by the Free Software Foundation; either version 2
11 * of the License, or (at your option) any later version.
12 *
13 */
14
15#include <stddef.h>
16#include "stdio.h"
17#include "types.h"
18#include "io.h"
19#include "ops.h"
20
21#include "ugecon.h"
22
23BSS_STACK(8192);
24
25void platform_init(unsigned long r3, unsigned long r4, unsigned long r5)
26{
27 u32 heapsize = 16*1024*1024 - (u32)_end;
28
29 simple_alloc_init(_end, heapsize, 32, 64);
30 fdt_init(_dtb_start);
31
32 if (ug_probe())
33 console_ops.write = ug_console_write;
34}
35
diff --git a/arch/powerpc/boot/ugecon.c b/arch/powerpc/boot/ugecon.c
new file mode 100644
index 000000000000..50609ea6ddf8
--- /dev/null
+++ b/arch/powerpc/boot/ugecon.c
@@ -0,0 +1,147 @@
1/*
2 * arch/powerpc/boot/ugecon.c
3 *
4 * USB Gecko bootwrapper console.
5 * Copyright (C) 2008-2009 The GameCube Linux Team
6 * Copyright (C) 2008,2009 Albert Herranz
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License
10 * as published by the Free Software Foundation; either version 2
11 * of the License, or (at your option) any later version.
12 *
13 */
14
15#include <stddef.h>
16#include "stdio.h"
17#include "types.h"
18#include "io.h"
19#include "ops.h"
20
21
22#define EXI_CLK_32MHZ 5
23
24#define EXI_CSR 0x00
25#define EXI_CSR_CLKMASK (0x7<<4)
26#define EXI_CSR_CLK_32MHZ (EXI_CLK_32MHZ<<4)
27#define EXI_CSR_CSMASK (0x7<<7)
28#define EXI_CSR_CS_0 (0x1<<7) /* Chip Select 001 */
29
30#define EXI_CR 0x0c
31#define EXI_CR_TSTART (1<<0)
32#define EXI_CR_WRITE (1<<2)
33#define EXI_CR_READ_WRITE (2<<2)
34#define EXI_CR_TLEN(len) (((len)-1)<<4)
35
36#define EXI_DATA 0x10
37
38
39/* virtual address base for input/output, retrieved from device tree */
40static void *ug_io_base;
41
42
43static u32 ug_io_transaction(u32 in)
44{
45 u32 *csr_reg = ug_io_base + EXI_CSR;
46 u32 *data_reg = ug_io_base + EXI_DATA;
47 u32 *cr_reg = ug_io_base + EXI_CR;
48 u32 csr, data, cr;
49
50 /* select */
51 csr = EXI_CSR_CLK_32MHZ | EXI_CSR_CS_0;
52 out_be32(csr_reg, csr);
53
54 /* read/write */
55 data = in;
56 out_be32(data_reg, data);
57 cr = EXI_CR_TLEN(2) | EXI_CR_READ_WRITE | EXI_CR_TSTART;
58 out_be32(cr_reg, cr);
59
60 while (in_be32(cr_reg) & EXI_CR_TSTART)
61 barrier();
62
63 /* deselect */
64 out_be32(csr_reg, 0);
65
66 data = in_be32(data_reg);
67 return data;
68}
69
70static int ug_is_txfifo_ready(void)
71{
72 return ug_io_transaction(0xc0000000) & 0x04000000;
73}
74
75static void ug_raw_putc(char ch)
76{
77 ug_io_transaction(0xb0000000 | (ch << 20));
78}
79
80static void ug_putc(char ch)
81{
82 int count = 16;
83
84 if (!ug_io_base)
85 return;
86
87 while (!ug_is_txfifo_ready() && count--)
88 barrier();
89 if (count)
90 ug_raw_putc(ch);
91}
92
93void ug_console_write(const char *buf, int len)
94{
95 char *b = (char *)buf;
96
97 while (len--) {
98 if (*b == '\n')
99 ug_putc('\r');
100 ug_putc(*b++);
101 }
102}
103
104static int ug_is_adapter_present(void)
105{
106 if (!ug_io_base)
107 return 0;
108 return ug_io_transaction(0x90000000) == 0x04700000;
109}
110
111static void *ug_grab_exi_io_base(void)
112{
113 u32 v;
114 void *devp;
115
116 devp = find_node_by_compatible(NULL, "nintendo,flipper-exi");
117 if (devp == NULL)
118 goto err_out;
119 if (getprop(devp, "virtual-reg", &v, sizeof(v)) != sizeof(v))
120 goto err_out;
121
122 return (void *)v;
123
124err_out:
125 return NULL;
126}
127
128void *ug_probe(void)
129{
130 void *exi_io_base;
131 int i;
132
133 exi_io_base = ug_grab_exi_io_base();
134 if (!exi_io_base)
135 return NULL;
136
137 /* look for a usbgecko on memcard slots A and B */
138 for (i = 0; i < 2; i++) {
139 ug_io_base = exi_io_base + 0x14 * i;
140 if (ug_is_adapter_present())
141 break;
142 }
143 if (i == 2)
144 ug_io_base = NULL;
145 return ug_io_base;
146}
147
diff --git a/arch/powerpc/boot/ugecon.h b/arch/powerpc/boot/ugecon.h
new file mode 100644
index 000000000000..43737539169b
--- /dev/null
+++ b/arch/powerpc/boot/ugecon.h
@@ -0,0 +1,24 @@
1/*
2 * arch/powerpc/boot/ugecon.h
3 *
4 * USB Gecko early bootwrapper console.
5 * Copyright (C) 2008-2009 The GameCube Linux Team
6 * Copyright (C) 2008,2009 Albert Herranz
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License
10 * as published by the Free Software Foundation; either version 2
11 * of the License, or (at your option) any later version.
12 *
13 */
14
15#ifndef __UGECON_H
16#define __UGECON_H
17
18extern void *ug_probe(void);
19
20extern void ug_putc(char ch);
21extern void ug_console_write(const char *buf, int len);
22
23#endif /* __UGECON_H */
24
diff --git a/arch/powerpc/boot/wii-head.S b/arch/powerpc/boot/wii-head.S
new file mode 100644
index 000000000000..edd79b836fcf
--- /dev/null
+++ b/arch/powerpc/boot/wii-head.S
@@ -0,0 +1,142 @@
1/*
2 * arch/powerpc/boot/wii-head.S
3 *
4 * Nintendo Wii bootwrapper entry.
5 * Copyright (C) 2008-2009 The GameCube Linux Team
6 * Copyright (C) 2008,2009 Albert Herranz
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License
10 * as published by the Free Software Foundation; either version 2
11 * of the License, or (at your option) any later version.
12 *
13 */
14
15#include "ppc_asm.h"
16
17/*
18 * The entry code does no assumptions regarding:
19 * - if the data and instruction caches are enabled or not
20 * - if the MMU is enabled or not
21 * - if the high BATs are enabled or not
22 *
23 * We enable the high BATs, enable the caches if not already enabled,
24 * enable the MMU with an identity mapping scheme and jump to the start code.
25 */
26
27 .text
28
29 .globl _zimage_start
30_zimage_start:
31
32 /* turn the MMU off */
33 mfmsr 9
34 rlwinm 9, 9, 0, ~((1<<4)|(1<<5)) /* MSR_DR|MSR_IR */
35 bcl 20, 31, 1f
361:
37 mflr 8
38 clrlwi 8, 8, 3 /* convert to a real address */
39 addi 8, 8, _mmu_off - 1b
40 mtsrr0 8
41 mtsrr1 9
42 rfi
43_mmu_off:
44 /* MMU disabled */
45
46 /* setup BATs */
47 isync
48 li 8, 0
49 mtspr 0x210, 8 /* IBAT0U */
50 mtspr 0x212, 8 /* IBAT1U */
51 mtspr 0x214, 8 /* IBAT2U */
52 mtspr 0x216, 8 /* IBAT3U */
53 mtspr 0x218, 8 /* DBAT0U */
54 mtspr 0x21a, 8 /* DBAT1U */
55 mtspr 0x21c, 8 /* DBAT2U */
56 mtspr 0x21e, 8 /* DBAT3U */
57
58 mtspr 0x230, 8 /* IBAT4U */
59 mtspr 0x232, 8 /* IBAT5U */
60 mtspr 0x234, 8 /* IBAT6U */
61 mtspr 0x236, 8 /* IBAT7U */
62 mtspr 0x238, 8 /* DBAT4U */
63 mtspr 0x23a, 8 /* DBAT5U */
64 mtspr 0x23c, 8 /* DBAT6U */
65 mtspr 0x23e, 8 /* DBAT7U */
66
67 li 8, 0x01ff /* first 16MiB */
68 li 9, 0x0002 /* rw */
69 mtspr 0x211, 9 /* IBAT0L */
70 mtspr 0x210, 8 /* IBAT0U */
71 mtspr 0x219, 9 /* DBAT0L */
72 mtspr 0x218, 8 /* DBAT0U */
73
74 lis 8, 0x0c00 /* I/O mem */
75 ori 8, 8, 0x3ff /* 32MiB */
76 lis 9, 0x0c00
77 ori 9, 9, 0x002a /* uncached, guarded, rw */
78 mtspr 0x21b, 9 /* DBAT1L */
79 mtspr 0x21a, 8 /* DBAT1U */
80
81 lis 8, 0x0100 /* next 8MiB */
82 ori 8, 8, 0x00ff /* 8MiB */
83 lis 9, 0x0100
84 ori 9, 9, 0x0002 /* rw */
85 mtspr 0x215, 9 /* IBAT2L */
86 mtspr 0x214, 8 /* IBAT2U */
87 mtspr 0x21d, 9 /* DBAT2L */
88 mtspr 0x21c, 8 /* DBAT2U */
89
90 lis 8, 0x1000 /* MEM2 */
91 ori 8, 8, 0x07ff /* 64MiB */
92 lis 9, 0x1000
93 ori 9, 9, 0x0002 /* rw */
94 mtspr 0x216, 8 /* IBAT3U */
95 mtspr 0x217, 9 /* IBAT3L */
96 mtspr 0x21e, 8 /* DBAT3U */
97 mtspr 0x21f, 9 /* DBAT3L */
98
99 /* enable the high BATs */
100 mfspr 8, 0x3f3 /* HID4 */
101 oris 8, 8, 0x0200
102 mtspr 0x3f3, 8 /* HID4 */
103
104 /* enable and invalidate the caches if not already enabled */
105 mfspr 8, 0x3f0 /* HID0 */
106 andi. 0, 8, (1<<15) /* HID0_ICE */
107 bne 1f
108 ori 8, 8, (1<<15)|(1<<11) /* HID0_ICE|HID0_ICFI*/
1091:
110 andi. 0, 8, (1<<14) /* HID0_DCE */
111 bne 1f
112 ori 8, 8, (1<<14)|(1<<10) /* HID0_DCE|HID0_DCFI*/
1131:
114 mtspr 0x3f0, 8 /* HID0 */
115 isync
116
117 /* initialize arguments */
118 li 3, 0
119 li 4, 0
120 li 5, 0
121
122 /* turn the MMU on */
123 bcl 20, 31, 1f
1241:
125 mflr 8
126 addi 8, 8, _mmu_on - 1b
127 mfmsr 9
128 ori 9, 9, (1<<4)|(1<<5) /* MSR_DR|MSR_IR */
129 mtsrr0 8
130 mtsrr1 9
131 sync
132 rfi
133_mmu_on:
134 /* turn on the front blue led (aka: yay! we got here!) */
135 lis 8, 0x0d00
136 ori 8, 8, 0x00c0
137 lwz 9, 0(8)
138 ori 9, 9, 0x20
139 stw 9, 0(8)
140
141 b _zimage_start_lib
142
diff --git a/arch/powerpc/boot/wii.c b/arch/powerpc/boot/wii.c
new file mode 100644
index 000000000000..2ebaec0344dd
--- /dev/null
+++ b/arch/powerpc/boot/wii.c
@@ -0,0 +1,158 @@
1/*
2 * arch/powerpc/boot/wii.c
3 *
4 * Nintendo Wii bootwrapper support
5 * Copyright (C) 2008-2009 The GameCube Linux Team
6 * Copyright (C) 2008,2009 Albert Herranz
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License
10 * as published by the Free Software Foundation; either version 2
11 * of the License, or (at your option) any later version.
12 *
13 */
14
15#include <stddef.h>
16#include "stdio.h"
17#include "types.h"
18#include "io.h"
19#include "ops.h"
20
21#include "ugecon.h"
22
23BSS_STACK(8192);
24
25#define HW_REG(x) ((void *)(x))
26
27#define EXI_CTRL HW_REG(0x0d800070)
28#define EXI_CTRL_ENABLE (1<<0)
29
30#define MEM2_TOP (0x10000000 + 64*1024*1024)
31#define FIRMWARE_DEFAULT_SIZE (12*1024*1024)
32
33
34struct mipc_infohdr {
35 char magic[3];
36 u8 version;
37 u32 mem2_boundary;
38 u32 ipc_in;
39 size_t ipc_in_size;
40 u32 ipc_out;
41 size_t ipc_out_size;
42};
43
44static int mipc_check_address(u32 pa)
45{
46 /* only MEM2 addresses */
47 if (pa < 0x10000000 || pa > 0x14000000)
48 return -EINVAL;
49 return 0;
50}
51
52static struct mipc_infohdr *mipc_get_infohdr(void)
53{
54 struct mipc_infohdr **hdrp, *hdr;
55
56 /* 'mini' header pointer is the last word of MEM2 memory */
57 hdrp = (struct mipc_infohdr **)0x13fffffc;
58 if (mipc_check_address((u32)hdrp)) {
59 printf("mini: invalid hdrp %08X\n", (u32)hdrp);
60 hdr = NULL;
61 goto out;
62 }
63
64 hdr = *hdrp;
65 if (mipc_check_address((u32)hdr)) {
66 printf("mini: invalid hdr %08X\n", (u32)hdr);
67 hdr = NULL;
68 goto out;
69 }
70 if (memcmp(hdr->magic, "IPC", 3)) {
71 printf("mini: invalid magic\n");
72 hdr = NULL;
73 goto out;
74 }
75
76out:
77 return hdr;
78}
79
80static int mipc_get_mem2_boundary(u32 *mem2_boundary)
81{
82 struct mipc_infohdr *hdr;
83 int error;
84
85 hdr = mipc_get_infohdr();
86 if (!hdr) {
87 error = -1;
88 goto out;
89 }
90
91 if (mipc_check_address(hdr->mem2_boundary)) {
92 printf("mini: invalid mem2_boundary %08X\n",
93 hdr->mem2_boundary);
94 error = -EINVAL;
95 goto out;
96 }
97 *mem2_boundary = hdr->mem2_boundary;
98 error = 0;
99out:
100 return error;
101
102}
103
104static void platform_fixups(void)
105{
106 void *mem;
107 u32 reg[4];
108 u32 mem2_boundary;
109 int len;
110 int error;
111
112 mem = finddevice("/memory");
113 if (!mem)
114 fatal("Can't find memory node\n");
115
116 /* two ranges of (address, size) words */
117 len = getprop(mem, "reg", reg, sizeof(reg));
118 if (len != sizeof(reg)) {
119 /* nothing to do */
120 goto out;
121 }
122
123 /* retrieve MEM2 boundary from 'mini' */
124 error = mipc_get_mem2_boundary(&mem2_boundary);
125 if (error) {
126 /* if that fails use a sane value */
127 mem2_boundary = MEM2_TOP - FIRMWARE_DEFAULT_SIZE;
128 }
129
130 if (mem2_boundary > reg[2] && mem2_boundary < reg[2] + reg[3]) {
131 reg[3] = mem2_boundary - reg[2];
132 printf("top of MEM2 @ %08X\n", reg[2] + reg[3]);
133 setprop(mem, "reg", reg, sizeof(reg));
134 }
135
136out:
137 return;
138}
139
140void platform_init(unsigned long r3, unsigned long r4, unsigned long r5)
141{
142 u32 heapsize = 24*1024*1024 - (u32)_end;
143
144 simple_alloc_init(_end, heapsize, 32, 64);
145 fdt_init(_dtb_start);
146
147 /*
148 * 'mini' boots the Broadway processor with EXI disabled.
149 * We need it enabled before probing for the USB Gecko.
150 */
151 out_be32(EXI_CTRL, in_be32(EXI_CTRL) | EXI_CTRL_ENABLE);
152
153 if (ug_probe())
154 console_ops.write = ug_console_write;
155
156 platform_ops.fixups = platform_fixups;
157}
158
diff --git a/arch/powerpc/boot/wrapper b/arch/powerpc/boot/wrapper
index ac9e9a58b2b0..390512ae7f86 100755
--- a/arch/powerpc/boot/wrapper
+++ b/arch/powerpc/boot/wrapper
@@ -230,6 +230,10 @@ xpedite52*)
230 link_address='0x1400000' 230 link_address='0x1400000'
231 platformo=$object/cuboot-85xx.o 231 platformo=$object/cuboot-85xx.o
232 ;; 232 ;;
233gamecube|wii)
234 link_address='0x600000'
235 platformo="$object/$platform-head.o $object/$platform.o"
236 ;;
233esac 237esac
234 238
235vmz="$tmpdir/`basename \"$kernel\"`.$ext" 239vmz="$tmpdir/`basename \"$kernel\"`.$ext"
diff --git a/arch/powerpc/configs/gamecube_defconfig b/arch/powerpc/configs/gamecube_defconfig
new file mode 100644
index 000000000000..942e1193e9e4
--- /dev/null
+++ b/arch/powerpc/configs/gamecube_defconfig
@@ -0,0 +1,1061 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.32-rc8
4# Sun Nov 22 21:07:30 2009
5#
6# CONFIG_PPC64 is not set
7
8#
9# Processor support
10#
11CONFIG_PPC_BOOK3S_32=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
17CONFIG_PPC_BOOK3S=y
18CONFIG_6xx=y
19CONFIG_PPC_FPU=y
20# CONFIG_ALTIVEC is not set
21CONFIG_PPC_STD_MMU=y
22CONFIG_PPC_STD_MMU_32=y
23# CONFIG_PPC_MM_SLICES is not set
24CONFIG_PPC_HAVE_PMU_SUPPORT=y
25CONFIG_PPC_PERF_CTRS=y
26# CONFIG_SMP is not set
27CONFIG_NOT_COHERENT_CACHE=y
28CONFIG_PPC32=y
29CONFIG_WORD_SIZE=32
30# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
31CONFIG_MMU=y
32CONFIG_GENERIC_CMOS_UPDATE=y
33CONFIG_GENERIC_TIME=y
34CONFIG_GENERIC_TIME_VSYSCALL=y
35CONFIG_GENERIC_CLOCKEVENTS=y
36CONFIG_GENERIC_HARDIRQS=y
37CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
38# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
39# CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set
40CONFIG_IRQ_PER_CPU=y
41CONFIG_STACKTRACE_SUPPORT=y
42CONFIG_HAVE_LATENCYTOP_SUPPORT=y
43CONFIG_TRACE_IRQFLAGS_SUPPORT=y
44CONFIG_LOCKDEP_SUPPORT=y
45CONFIG_RWSEM_XCHGADD_ALGORITHM=y
46CONFIG_ARCH_HAS_ILOG2_U32=y
47CONFIG_GENERIC_HWEIGHT=y
48CONFIG_GENERIC_FIND_NEXT_BIT=y
49# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
50CONFIG_PPC=y
51CONFIG_EARLY_PRINTK=y
52CONFIG_GENERIC_NVRAM=y
53CONFIG_SCHED_OMIT_FRAME_POINTER=y
54CONFIG_ARCH_MAY_HAVE_PC_FDC=y
55CONFIG_PPC_OF=y
56CONFIG_OF=y
57# CONFIG_PPC_UDBG_16550 is not set
58# CONFIG_GENERIC_TBSYNC is not set
59CONFIG_AUDIT_ARCH=y
60CONFIG_GENERIC_BUG=y
61CONFIG_DTC=y
62# CONFIG_DEFAULT_UIMAGE is not set
63# CONFIG_PPC_DCR_NATIVE is not set
64# CONFIG_PPC_DCR_MMIO is not set
65CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
66CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
67CONFIG_CONSTRUCTORS=y
68
69#
70# General setup
71#
72CONFIG_EXPERIMENTAL=y
73CONFIG_BROKEN_ON_SMP=y
74CONFIG_LOCK_KERNEL=y
75CONFIG_INIT_ENV_ARG_LIMIT=32
76CONFIG_LOCALVERSION="-gcn"
77CONFIG_LOCALVERSION_AUTO=y
78CONFIG_SWAP=y
79CONFIG_SYSVIPC=y
80CONFIG_SYSVIPC_SYSCTL=y
81# CONFIG_POSIX_MQUEUE is not set
82# CONFIG_BSD_PROCESS_ACCT is not set
83# CONFIG_TASKSTATS is not set
84# CONFIG_AUDIT is not set
85
86#
87# RCU Subsystem
88#
89CONFIG_TREE_RCU=y
90# CONFIG_TREE_PREEMPT_RCU is not set
91# CONFIG_RCU_TRACE is not set
92CONFIG_RCU_FANOUT=32
93# CONFIG_RCU_FANOUT_EXACT is not set
94# CONFIG_TREE_RCU_TRACE is not set
95CONFIG_IKCONFIG=y
96CONFIG_IKCONFIG_PROC=y
97CONFIG_LOG_BUF_SHIFT=14
98CONFIG_GROUP_SCHED=y
99CONFIG_FAIR_GROUP_SCHED=y
100# CONFIG_RT_GROUP_SCHED is not set
101CONFIG_USER_SCHED=y
102# CONFIG_CGROUP_SCHED is not set
103# CONFIG_CGROUPS is not set
104CONFIG_SYSFS_DEPRECATED=y
105CONFIG_SYSFS_DEPRECATED_V2=y
106# CONFIG_RELAY is not set
107# CONFIG_NAMESPACES is not set
108CONFIG_BLK_DEV_INITRD=y
109CONFIG_INITRAMFS_SOURCE=""
110CONFIG_RD_GZIP=y
111# CONFIG_RD_BZIP2 is not set
112# CONFIG_RD_LZMA is not set
113# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
114CONFIG_SYSCTL=y
115CONFIG_ANON_INODES=y
116CONFIG_EMBEDDED=y
117CONFIG_SYSCTL_SYSCALL=y
118CONFIG_KALLSYMS=y
119CONFIG_KALLSYMS_ALL=y
120# CONFIG_KALLSYMS_EXTRA_PASS is not set
121CONFIG_HOTPLUG=y
122CONFIG_PRINTK=y
123CONFIG_BUG=y
124# CONFIG_ELF_CORE is not set
125CONFIG_BASE_FULL=y
126CONFIG_FUTEX=y
127CONFIG_EPOLL=y
128CONFIG_SIGNALFD=y
129CONFIG_TIMERFD=y
130CONFIG_EVENTFD=y
131CONFIG_SHMEM=y
132CONFIG_AIO=y
133CONFIG_HAVE_PERF_EVENTS=y
134
135#
136# Kernel Performance Events And Counters
137#
138CONFIG_PERF_EVENTS=y
139CONFIG_EVENT_PROFILE=y
140CONFIG_PERF_COUNTERS=y
141# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
142# CONFIG_VM_EVENT_COUNTERS is not set
143CONFIG_COMPAT_BRK=y
144CONFIG_SLAB=y
145# CONFIG_SLUB is not set
146# CONFIG_SLOB is not set
147# CONFIG_PROFILING is not set
148CONFIG_TRACEPOINTS=y
149CONFIG_HAVE_OPROFILE=y
150# CONFIG_KPROBES is not set
151CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
152CONFIG_HAVE_IOREMAP_PROT=y
153CONFIG_HAVE_KPROBES=y
154CONFIG_HAVE_KRETPROBES=y
155CONFIG_HAVE_ARCH_TRACEHOOK=y
156CONFIG_HAVE_DMA_ATTRS=y
157CONFIG_HAVE_DMA_API_DEBUG=y
158
159#
160# GCOV-based kernel profiling
161#
162# CONFIG_GCOV_KERNEL is not set
163CONFIG_SLOW_WORK=y
164# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
165CONFIG_SLABINFO=y
166CONFIG_RT_MUTEXES=y
167CONFIG_BASE_SMALL=0
168CONFIG_MODULES=y
169# CONFIG_MODULE_FORCE_LOAD is not set
170CONFIG_MODULE_UNLOAD=y
171# CONFIG_MODULE_FORCE_UNLOAD is not set
172# CONFIG_MODVERSIONS is not set
173# CONFIG_MODULE_SRCVERSION_ALL is not set
174CONFIG_BLOCK=y
175CONFIG_LBDAF=y
176# CONFIG_BLK_DEV_BSG is not set
177# CONFIG_BLK_DEV_INTEGRITY is not set
178
179#
180# IO Schedulers
181#
182CONFIG_IOSCHED_NOOP=y
183CONFIG_IOSCHED_AS=y
184CONFIG_IOSCHED_DEADLINE=y
185CONFIG_IOSCHED_CFQ=y
186CONFIG_DEFAULT_AS=y
187# CONFIG_DEFAULT_DEADLINE is not set
188# CONFIG_DEFAULT_CFQ is not set
189# CONFIG_DEFAULT_NOOP is not set
190CONFIG_DEFAULT_IOSCHED="anticipatory"
191# CONFIG_FREEZER is not set
192
193#
194# Platform support
195#
196# CONFIG_PPC_CHRP is not set
197# CONFIG_MPC5121_ADS is not set
198# CONFIG_MPC5121_GENERIC is not set
199# CONFIG_PPC_MPC52xx is not set
200# CONFIG_PPC_PMAC is not set
201# CONFIG_PPC_CELL is not set
202# CONFIG_PPC_CELL_NATIVE is not set
203# CONFIG_PPC_82xx is not set
204# CONFIG_PQ2ADS is not set
205# CONFIG_PPC_83xx is not set
206# CONFIG_PPC_86xx is not set
207CONFIG_EMBEDDED6xx=y
208# CONFIG_LINKSTATION is not set
209# CONFIG_STORCENTER is not set
210# CONFIG_MPC7448HPC2 is not set
211# CONFIG_PPC_HOLLY is not set
212# CONFIG_PPC_PRPMC2800 is not set
213# CONFIG_PPC_C2K is not set
214CONFIG_GAMECUBE_COMMON=y
215CONFIG_USBGECKO_UDBG=y
216CONFIG_FLIPPER_PIC=y
217CONFIG_GAMECUBE=y
218# CONFIG_WII is not set
219# CONFIG_AMIGAONE is not set
220# CONFIG_PPC_OF_BOOT_TRAMPOLINE is not set
221# CONFIG_IPIC is not set
222# CONFIG_MPIC is not set
223# CONFIG_MPIC_WEIRD is not set
224# CONFIG_PPC_I8259 is not set
225# CONFIG_PPC_RTAS is not set
226# CONFIG_MMIO_NVRAM is not set
227# CONFIG_PPC_MPC106 is not set
228# CONFIG_PPC_970_NAP is not set
229# CONFIG_PPC_INDIRECT_IO is not set
230# CONFIG_GENERIC_IOMAP is not set
231# CONFIG_CPU_FREQ is not set
232# CONFIG_TAU is not set
233# CONFIG_FSL_ULI1575 is not set
234# CONFIG_SIMPLE_GPIO is not set
235
236#
237# Kernel options
238#
239# CONFIG_HIGHMEM is not set
240# CONFIG_NO_HZ is not set
241# CONFIG_HIGH_RES_TIMERS is not set
242CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
243# CONFIG_HZ_100 is not set
244CONFIG_HZ_250=y
245# CONFIG_HZ_300 is not set
246# CONFIG_HZ_1000 is not set
247CONFIG_HZ=250
248# CONFIG_SCHED_HRTICK is not set
249# CONFIG_PREEMPT_NONE is not set
250# CONFIG_PREEMPT_VOLUNTARY is not set
251CONFIG_PREEMPT=y
252CONFIG_BINFMT_ELF=y
253# CONFIG_HAVE_AOUT is not set
254CONFIG_BINFMT_MISC=m
255# CONFIG_IOMMU_HELPER is not set
256# CONFIG_SWIOTLB is not set
257CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
258CONFIG_ARCH_HAS_WALK_MEMORY=y
259CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
260CONFIG_KEXEC=y
261# CONFIG_CRASH_DUMP is not set
262CONFIG_MAX_ACTIVE_REGIONS=32
263CONFIG_ARCH_FLATMEM_ENABLE=y
264CONFIG_ARCH_POPULATES_NODE_MAP=y
265CONFIG_SELECT_MEMORY_MODEL=y
266CONFIG_FLATMEM_MANUAL=y
267# CONFIG_DISCONTIGMEM_MANUAL is not set
268# CONFIG_SPARSEMEM_MANUAL is not set
269CONFIG_FLATMEM=y
270CONFIG_FLAT_NODE_MEM_MAP=y
271CONFIG_PAGEFLAGS_EXTENDED=y
272CONFIG_SPLIT_PTLOCK_CPUS=4
273# CONFIG_MIGRATION is not set
274# CONFIG_PHYS_ADDR_T_64BIT is not set
275CONFIG_ZONE_DMA_FLAG=1
276CONFIG_BOUNCE=y
277CONFIG_VIRT_TO_BUS=y
278CONFIG_HAVE_MLOCK=y
279CONFIG_HAVE_MLOCKED_PAGE_BIT=y
280# CONFIG_KSM is not set
281CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
282CONFIG_PPC_4K_PAGES=y
283# CONFIG_PPC_16K_PAGES is not set
284# CONFIG_PPC_64K_PAGES is not set
285# CONFIG_PPC_256K_PAGES is not set
286CONFIG_FORCE_MAX_ZONEORDER=11
287CONFIG_PROC_DEVICETREE=y
288# CONFIG_CMDLINE_BOOL is not set
289CONFIG_EXTRA_TARGETS=""
290# CONFIG_PM is not set
291# CONFIG_SECCOMP is not set
292CONFIG_ISA_DMA_API=y
293
294#
295# Bus options
296#
297CONFIG_ZONE_DMA=y
298CONFIG_GENERIC_ISA_DMA=y
299# CONFIG_PCI is not set
300# CONFIG_PCI_DOMAINS is not set
301# CONFIG_PCI_SYSCALL is not set
302# CONFIG_ARCH_SUPPORTS_MSI is not set
303# CONFIG_PCCARD is not set
304# CONFIG_HAS_RAPIDIO is not set
305
306#
307# Advanced setup
308#
309CONFIG_ADVANCED_OPTIONS=y
310# CONFIG_LOWMEM_SIZE_BOOL is not set
311CONFIG_LOWMEM_SIZE=0x30000000
312# CONFIG_PAGE_OFFSET_BOOL is not set
313CONFIG_PAGE_OFFSET=0xc0000000
314# CONFIG_KERNEL_START_BOOL is not set
315CONFIG_KERNEL_START=0xc0000000
316CONFIG_PHYSICAL_START=0x00000000
317# CONFIG_TASK_SIZE_BOOL is not set
318CONFIG_TASK_SIZE=0xc0000000
319# CONFIG_CONSISTENT_SIZE_BOOL is not set
320CONFIG_CONSISTENT_SIZE=0x00200000
321CONFIG_NET=y
322
323#
324# Networking options
325#
326CONFIG_PACKET=y
327# CONFIG_PACKET_MMAP is not set
328CONFIG_UNIX=y
329# CONFIG_NET_KEY is not set
330CONFIG_INET=y
331# CONFIG_IP_MULTICAST is not set
332# CONFIG_IP_ADVANCED_ROUTER is not set
333CONFIG_IP_FIB_HASH=y
334CONFIG_IP_PNP=y
335CONFIG_IP_PNP_DHCP=y
336# CONFIG_IP_PNP_BOOTP is not set
337CONFIG_IP_PNP_RARP=y
338# CONFIG_NET_IPIP is not set
339# CONFIG_NET_IPGRE is not set
340# CONFIG_ARPD is not set
341# CONFIG_SYN_COOKIES is not set
342# CONFIG_INET_AH is not set
343# CONFIG_INET_ESP is not set
344# CONFIG_INET_IPCOMP is not set
345# CONFIG_INET_XFRM_TUNNEL is not set
346# CONFIG_INET_TUNNEL is not set
347# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
348# CONFIG_INET_XFRM_MODE_TUNNEL is not set
349# CONFIG_INET_XFRM_MODE_BEET is not set
350# CONFIG_INET_LRO is not set
351# CONFIG_INET_DIAG is not set
352# CONFIG_TCP_CONG_ADVANCED is not set
353CONFIG_TCP_CONG_CUBIC=y
354CONFIG_DEFAULT_TCP_CONG="cubic"
355# CONFIG_TCP_MD5SIG is not set
356# CONFIG_IPV6 is not set
357# CONFIG_NETWORK_SECMARK is not set
358# CONFIG_NETFILTER is not set
359# CONFIG_IP_DCCP is not set
360# CONFIG_IP_SCTP is not set
361# CONFIG_RDS is not set
362# CONFIG_TIPC is not set
363# CONFIG_ATM is not set
364# CONFIG_BRIDGE is not set
365# CONFIG_NET_DSA is not set
366# CONFIG_VLAN_8021Q is not set
367# CONFIG_DECNET is not set
368# CONFIG_LLC2 is not set
369# CONFIG_IPX is not set
370# CONFIG_ATALK is not set
371# CONFIG_X25 is not set
372# CONFIG_LAPB is not set
373# CONFIG_ECONET is not set
374# CONFIG_WAN_ROUTER is not set
375# CONFIG_PHONET is not set
376# CONFIG_IEEE802154 is not set
377# CONFIG_NET_SCHED is not set
378# CONFIG_DCB is not set
379
380#
381# Network testing
382#
383# CONFIG_NET_PKTGEN is not set
384# CONFIG_NET_DROP_MONITOR is not set
385# CONFIG_HAMRADIO is not set
386# CONFIG_CAN is not set
387# CONFIG_IRDA is not set
388# CONFIG_BT is not set
389# CONFIG_AF_RXRPC is not set
390# CONFIG_WIRELESS is not set
391# CONFIG_WIMAX is not set
392# CONFIG_RFKILL is not set
393# CONFIG_NET_9P is not set
394
395#
396# Device Drivers
397#
398
399#
400# Generic Driver Options
401#
402CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
403# CONFIG_DEVTMPFS is not set
404# CONFIG_STANDALONE is not set
405CONFIG_PREVENT_FIRMWARE_BUILD=y
406# CONFIG_FW_LOADER is not set
407# CONFIG_DEBUG_DRIVER is not set
408# CONFIG_DEBUG_DEVRES is not set
409# CONFIG_SYS_HYPERVISOR is not set
410# CONFIG_CONNECTOR is not set
411# CONFIG_MTD is not set
412CONFIG_OF_DEVICE=y
413# CONFIG_PARPORT is not set
414CONFIG_BLK_DEV=y
415# CONFIG_BLK_DEV_FD is not set
416# CONFIG_BLK_DEV_COW_COMMON is not set
417CONFIG_BLK_DEV_LOOP=y
418# CONFIG_BLK_DEV_CRYPTOLOOP is not set
419CONFIG_BLK_DEV_NBD=m
420CONFIG_BLK_DEV_RAM=y
421CONFIG_BLK_DEV_RAM_COUNT=2
422CONFIG_BLK_DEV_RAM_SIZE=4096
423# CONFIG_BLK_DEV_XIP is not set
424# CONFIG_CDROM_PKTCDVD is not set
425# CONFIG_ATA_OVER_ETH is not set
426# CONFIG_BLK_DEV_HD is not set
427CONFIG_MISC_DEVICES=y
428# CONFIG_ENCLOSURE_SERVICES is not set
429# CONFIG_C2PORT is not set
430
431#
432# EEPROM support
433#
434# CONFIG_EEPROM_93CX6 is not set
435CONFIG_HAVE_IDE=y
436# CONFIG_IDE is not set
437
438#
439# SCSI device support
440#
441# CONFIG_RAID_ATTRS is not set
442# CONFIG_SCSI is not set
443# CONFIG_SCSI_DMA is not set
444# CONFIG_SCSI_NETLINK is not set
445# CONFIG_ATA is not set
446# CONFIG_MD is not set
447# CONFIG_MACINTOSH_DRIVERS is not set
448CONFIG_NETDEVICES=y
449# CONFIG_DUMMY is not set
450# CONFIG_BONDING is not set
451# CONFIG_MACVLAN is not set
452# CONFIG_EQUALIZER is not set
453# CONFIG_TUN is not set
454# CONFIG_VETH is not set
455# CONFIG_PHYLIB is not set
456CONFIG_NET_ETHERNET=y
457# CONFIG_MII is not set
458# CONFIG_ETHOC is not set
459# CONFIG_DNET is not set
460# CONFIG_IBM_NEW_EMAC_ZMII is not set
461# CONFIG_IBM_NEW_EMAC_RGMII is not set
462# CONFIG_IBM_NEW_EMAC_TAH is not set
463# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
464# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
465# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
466# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
467# CONFIG_B44 is not set
468# CONFIG_KS8842 is not set
469# CONFIG_KS8851_MLL is not set
470# CONFIG_XILINX_EMACLITE is not set
471# CONFIG_NETDEV_1000 is not set
472# CONFIG_NETDEV_10000 is not set
473# CONFIG_WLAN is not set
474
475#
476# Enable WiMAX (Networking options) to see the WiMAX drivers
477#
478# CONFIG_WAN is not set
479# CONFIG_PPP is not set
480# CONFIG_SLIP is not set
481# CONFIG_NETCONSOLE is not set
482# CONFIG_NETPOLL is not set
483# CONFIG_NET_POLL_CONTROLLER is not set
484# CONFIG_ISDN is not set
485# CONFIG_PHONE is not set
486
487#
488# Input device support
489#
490CONFIG_INPUT=y
491CONFIG_INPUT_FF_MEMLESS=m
492# CONFIG_INPUT_POLLDEV is not set
493
494#
495# Userland interfaces
496#
497# CONFIG_INPUT_MOUSEDEV is not set
498CONFIG_INPUT_JOYDEV=y
499CONFIG_INPUT_EVDEV=y
500# CONFIG_INPUT_EVBUG is not set
501
502#
503# Input Device Drivers
504#
505CONFIG_INPUT_KEYBOARD=y
506# CONFIG_KEYBOARD_ATKBD is not set
507# CONFIG_KEYBOARD_LKKBD is not set
508# CONFIG_KEYBOARD_NEWTON is not set
509# CONFIG_KEYBOARD_OPENCORES is not set
510# CONFIG_KEYBOARD_STOWAWAY is not set
511# CONFIG_KEYBOARD_SUNKBD is not set
512# CONFIG_KEYBOARD_XTKBD is not set
513# CONFIG_INPUT_MOUSE is not set
514CONFIG_INPUT_JOYSTICK=y
515# CONFIG_JOYSTICK_ANALOG is not set
516# CONFIG_JOYSTICK_A3D is not set
517# CONFIG_JOYSTICK_ADI is not set
518# CONFIG_JOYSTICK_COBRA is not set
519# CONFIG_JOYSTICK_GF2K is not set
520# CONFIG_JOYSTICK_GRIP is not set
521# CONFIG_JOYSTICK_GRIP_MP is not set
522# CONFIG_JOYSTICK_GUILLEMOT is not set
523# CONFIG_JOYSTICK_INTERACT is not set
524# CONFIG_JOYSTICK_SIDEWINDER is not set
525# CONFIG_JOYSTICK_TMDC is not set
526# CONFIG_JOYSTICK_IFORCE is not set
527# CONFIG_JOYSTICK_WARRIOR is not set
528# CONFIG_JOYSTICK_MAGELLAN is not set
529# CONFIG_JOYSTICK_SPACEORB is not set
530# CONFIG_JOYSTICK_SPACEBALL is not set
531# CONFIG_JOYSTICK_STINGER is not set
532# CONFIG_JOYSTICK_TWIDJOY is not set
533# CONFIG_JOYSTICK_ZHENHUA is not set
534# CONFIG_JOYSTICK_JOYDUMP is not set
535# CONFIG_INPUT_TABLET is not set
536# CONFIG_INPUT_TOUCHSCREEN is not set
537# CONFIG_INPUT_MISC is not set
538
539#
540# Hardware I/O ports
541#
542CONFIG_SERIO=y
543# CONFIG_SERIO_I8042 is not set
544# CONFIG_SERIO_SERPORT is not set
545# CONFIG_SERIO_LIBPS2 is not set
546# CONFIG_SERIO_RAW is not set
547# CONFIG_SERIO_XILINX_XPS_PS2 is not set
548# CONFIG_GAMEPORT is not set
549
550#
551# Character devices
552#
553CONFIG_VT=y
554CONFIG_CONSOLE_TRANSLATIONS=y
555CONFIG_VT_CONSOLE=y
556CONFIG_HW_CONSOLE=y
557# CONFIG_VT_HW_CONSOLE_BINDING is not set
558# CONFIG_DEVKMEM is not set
559# CONFIG_SERIAL_NONSTANDARD is not set
560
561#
562# Serial drivers
563#
564# CONFIG_SERIAL_8250 is not set
565
566#
567# Non-8250 serial port support
568#
569# CONFIG_SERIAL_UARTLITE is not set
570CONFIG_UNIX98_PTYS=y
571# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
572CONFIG_LEGACY_PTYS=y
573CONFIG_LEGACY_PTY_COUNT=64
574# CONFIG_HVC_UDBG is not set
575# CONFIG_IPMI_HANDLER is not set
576# CONFIG_HW_RANDOM is not set
577# CONFIG_NVRAM is not set
578# CONFIG_R3964 is not set
579# CONFIG_RAW_DRIVER is not set
580# CONFIG_TCG_TPM is not set
581# CONFIG_I2C is not set
582# CONFIG_SPI is not set
583
584#
585# PPS support
586#
587# CONFIG_PPS is not set
588CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
589# CONFIG_GPIOLIB is not set
590# CONFIG_W1 is not set
591# CONFIG_POWER_SUPPLY is not set
592# CONFIG_HWMON is not set
593# CONFIG_THERMAL is not set
594# CONFIG_WATCHDOG is not set
595CONFIG_SSB_POSSIBLE=y
596
597#
598# Sonics Silicon Backplane
599#
600# CONFIG_SSB is not set
601
602#
603# Multifunction device drivers
604#
605# CONFIG_MFD_CORE is not set
606# CONFIG_MFD_SM501 is not set
607# CONFIG_HTC_PASIC3 is not set
608# CONFIG_MFD_TMIO is not set
609# CONFIG_REGULATOR is not set
610# CONFIG_MEDIA_SUPPORT is not set
611
612#
613# Graphics support
614#
615# CONFIG_VGASTATE is not set
616# CONFIG_VIDEO_OUTPUT_CONTROL is not set
617CONFIG_FB=y
618# CONFIG_FIRMWARE_EDID is not set
619# CONFIG_FB_DDC is not set
620# CONFIG_FB_BOOT_VESA_SUPPORT is not set
621# CONFIG_FB_CFB_FILLRECT is not set
622# CONFIG_FB_CFB_COPYAREA is not set
623# CONFIG_FB_CFB_IMAGEBLIT is not set
624# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
625# CONFIG_FB_SYS_FILLRECT is not set
626# CONFIG_FB_SYS_COPYAREA is not set
627# CONFIG_FB_SYS_IMAGEBLIT is not set
628# CONFIG_FB_FOREIGN_ENDIAN is not set
629# CONFIG_FB_SYS_FOPS is not set
630# CONFIG_FB_SVGALIB is not set
631# CONFIG_FB_MACMODES is not set
632# CONFIG_FB_BACKLIGHT is not set
633# CONFIG_FB_MODE_HELPERS is not set
634# CONFIG_FB_TILEBLITTING is not set
635
636#
637# Frame buffer hardware drivers
638#
639# CONFIG_FB_OF is not set
640# CONFIG_FB_VGA16 is not set
641# CONFIG_FB_S1D13XXX is not set
642# CONFIG_FB_IBM_GXT4500 is not set
643# CONFIG_FB_VIRTUAL is not set
644# CONFIG_FB_METRONOME is not set
645# CONFIG_FB_MB862XX is not set
646# CONFIG_FB_BROADSHEET is not set
647# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
648
649#
650# Display device support
651#
652# CONFIG_DISPLAY_SUPPORT is not set
653
654#
655# Console display driver support
656#
657# CONFIG_VGA_CONSOLE is not set
658CONFIG_DUMMY_CONSOLE=y
659CONFIG_FRAMEBUFFER_CONSOLE=y
660# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
661# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
662# CONFIG_FONTS is not set
663CONFIG_FONT_8x8=y
664CONFIG_FONT_8x16=y
665CONFIG_LOGO=y
666# CONFIG_LOGO_LINUX_MONO is not set
667# CONFIG_LOGO_LINUX_VGA16 is not set
668# CONFIG_LOGO_LINUX_CLUT224 is not set
669CONFIG_SOUND=y
670CONFIG_SOUND_OSS_CORE=y
671CONFIG_SOUND_OSS_CORE_PRECLAIM=y
672CONFIG_SND=y
673CONFIG_SND_TIMER=y
674CONFIG_SND_PCM=y
675CONFIG_SND_SEQUENCER=y
676# CONFIG_SND_SEQ_DUMMY is not set
677CONFIG_SND_OSSEMUL=y
678CONFIG_SND_MIXER_OSS=y
679CONFIG_SND_PCM_OSS=y
680CONFIG_SND_PCM_OSS_PLUGINS=y
681CONFIG_SND_SEQUENCER_OSS=y
682# CONFIG_SND_DYNAMIC_MINORS is not set
683CONFIG_SND_SUPPORT_OLD_API=y
684# CONFIG_SND_VERBOSE_PROCFS is not set
685# CONFIG_SND_VERBOSE_PRINTK is not set
686# CONFIG_SND_DEBUG is not set
687# CONFIG_SND_RAWMIDI_SEQ is not set
688# CONFIG_SND_OPL3_LIB_SEQ is not set
689# CONFIG_SND_OPL4_LIB_SEQ is not set
690# CONFIG_SND_SBAWE_SEQ is not set
691# CONFIG_SND_EMU10K1_SEQ is not set
692CONFIG_SND_DRIVERS=y
693# CONFIG_SND_DUMMY is not set
694# CONFIG_SND_VIRMIDI is not set
695# CONFIG_SND_MTPAV is not set
696# CONFIG_SND_SERIAL_U16550 is not set
697# CONFIG_SND_MPU401 is not set
698CONFIG_SND_PPC=y
699# CONFIG_SND_SOC is not set
700# CONFIG_SOUND_PRIME is not set
701CONFIG_HID_SUPPORT=y
702CONFIG_HID=y
703# CONFIG_HIDRAW is not set
704# CONFIG_HID_PID is not set
705
706#
707# Special HID drivers
708#
709# CONFIG_USB_SUPPORT is not set
710# CONFIG_MMC is not set
711# CONFIG_MEMSTICK is not set
712# CONFIG_NEW_LEDS is not set
713# CONFIG_ACCESSIBILITY is not set
714# CONFIG_EDAC is not set
715CONFIG_RTC_LIB=y
716CONFIG_RTC_CLASS=y
717CONFIG_RTC_HCTOSYS=y
718CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
719# CONFIG_RTC_DEBUG is not set
720
721#
722# RTC interfaces
723#
724CONFIG_RTC_INTF_SYSFS=y
725CONFIG_RTC_INTF_PROC=y
726CONFIG_RTC_INTF_DEV=y
727# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
728# CONFIG_RTC_DRV_TEST is not set
729
730#
731# SPI RTC drivers
732#
733
734#
735# Platform RTC drivers
736#
737# CONFIG_RTC_DRV_CMOS is not set
738# CONFIG_RTC_DRV_DS1286 is not set
739# CONFIG_RTC_DRV_DS1511 is not set
740# CONFIG_RTC_DRV_DS1553 is not set
741# CONFIG_RTC_DRV_DS1742 is not set
742# CONFIG_RTC_DRV_STK17TA8 is not set
743# CONFIG_RTC_DRV_M48T86 is not set
744# CONFIG_RTC_DRV_M48T35 is not set
745# CONFIG_RTC_DRV_M48T59 is not set
746# CONFIG_RTC_DRV_BQ4802 is not set
747# CONFIG_RTC_DRV_V3020 is not set
748
749#
750# on-CPU RTC drivers
751#
752CONFIG_RTC_DRV_GENERIC=y
753# CONFIG_DMADEVICES is not set
754# CONFIG_AUXDISPLAY is not set
755# CONFIG_UIO is not set
756
757#
758# TI VLYNQ
759#
760# CONFIG_STAGING is not set
761
762#
763# File systems
764#
765CONFIG_EXT2_FS=y
766# CONFIG_EXT2_FS_XATTR is not set
767# CONFIG_EXT2_FS_XIP is not set
768CONFIG_EXT3_FS=y
769# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
770# CONFIG_EXT3_FS_XATTR is not set
771# CONFIG_EXT4_FS is not set
772CONFIG_JBD=y
773# CONFIG_JBD_DEBUG is not set
774# CONFIG_REISERFS_FS is not set
775# CONFIG_JFS_FS is not set
776# CONFIG_FS_POSIX_ACL is not set
777# CONFIG_XFS_FS is not set
778# CONFIG_GFS2_FS is not set
779# CONFIG_OCFS2_FS is not set
780# CONFIG_BTRFS_FS is not set
781# CONFIG_NILFS2_FS is not set
782CONFIG_FILE_LOCKING=y
783CONFIG_FSNOTIFY=y
784CONFIG_DNOTIFY=y
785CONFIG_INOTIFY=y
786CONFIG_INOTIFY_USER=y
787# CONFIG_QUOTA is not set
788# CONFIG_AUTOFS_FS is not set
789# CONFIG_AUTOFS4_FS is not set
790# CONFIG_FUSE_FS is not set
791
792#
793# Caches
794#
795# CONFIG_FSCACHE is not set
796
797#
798# CD-ROM/DVD Filesystems
799#
800CONFIG_ISO9660_FS=y
801CONFIG_JOLIET=y
802# CONFIG_ZISOFS is not set
803# CONFIG_UDF_FS is not set
804
805#
806# DOS/FAT/NT Filesystems
807#
808CONFIG_FAT_FS=y
809CONFIG_MSDOS_FS=y
810CONFIG_VFAT_FS=y
811CONFIG_FAT_DEFAULT_CODEPAGE=437
812CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
813# CONFIG_NTFS_FS is not set
814
815#
816# Pseudo filesystems
817#
818CONFIG_PROC_FS=y
819CONFIG_PROC_KCORE=y
820CONFIG_PROC_SYSCTL=y
821# CONFIG_PROC_PAGE_MONITOR is not set
822CONFIG_SYSFS=y
823CONFIG_TMPFS=y
824# CONFIG_TMPFS_POSIX_ACL is not set
825# CONFIG_HUGETLB_PAGE is not set
826# CONFIG_CONFIGFS_FS is not set
827CONFIG_MISC_FILESYSTEMS=y
828# CONFIG_ADFS_FS is not set
829# CONFIG_AFFS_FS is not set
830# CONFIG_HFS_FS is not set
831# CONFIG_HFSPLUS_FS is not set
832# CONFIG_BEFS_FS is not set
833# CONFIG_BFS_FS is not set
834# CONFIG_EFS_FS is not set
835# CONFIG_CRAMFS is not set
836# CONFIG_SQUASHFS is not set
837# CONFIG_VXFS_FS is not set
838# CONFIG_MINIX_FS is not set
839# CONFIG_OMFS_FS is not set
840# CONFIG_HPFS_FS is not set
841# CONFIG_QNX4FS_FS is not set
842# CONFIG_ROMFS_FS is not set
843# CONFIG_SYSV_FS is not set
844# CONFIG_UFS_FS is not set
845CONFIG_NETWORK_FILESYSTEMS=y
846CONFIG_NFS_FS=y
847CONFIG_NFS_V3=y
848# CONFIG_NFS_V3_ACL is not set
849# CONFIG_NFS_V4 is not set
850CONFIG_ROOT_NFS=y
851# CONFIG_NFSD is not set
852CONFIG_LOCKD=y
853CONFIG_LOCKD_V4=y
854CONFIG_NFS_COMMON=y
855CONFIG_SUNRPC=y
856# CONFIG_RPCSEC_GSS_KRB5 is not set
857# CONFIG_RPCSEC_GSS_SPKM3 is not set
858# CONFIG_SMB_FS is not set
859CONFIG_CIFS=y
860# CONFIG_CIFS_STATS is not set
861# CONFIG_CIFS_WEAK_PW_HASH is not set
862# CONFIG_CIFS_XATTR is not set
863# CONFIG_CIFS_DEBUG2 is not set
864# CONFIG_CIFS_EXPERIMENTAL is not set
865# CONFIG_NCP_FS is not set
866# CONFIG_CODA_FS is not set
867# CONFIG_AFS_FS is not set
868
869#
870# Partition Types
871#
872# CONFIG_PARTITION_ADVANCED is not set
873CONFIG_MSDOS_PARTITION=y
874CONFIG_NLS=y
875CONFIG_NLS_DEFAULT="iso8859-1"
876CONFIG_NLS_CODEPAGE_437=y
877# CONFIG_NLS_CODEPAGE_737 is not set
878# CONFIG_NLS_CODEPAGE_775 is not set
879# CONFIG_NLS_CODEPAGE_850 is not set
880# CONFIG_NLS_CODEPAGE_852 is not set
881# CONFIG_NLS_CODEPAGE_855 is not set
882# CONFIG_NLS_CODEPAGE_857 is not set
883# CONFIG_NLS_CODEPAGE_860 is not set
884# CONFIG_NLS_CODEPAGE_861 is not set
885# CONFIG_NLS_CODEPAGE_862 is not set
886# CONFIG_NLS_CODEPAGE_863 is not set
887# CONFIG_NLS_CODEPAGE_864 is not set
888# CONFIG_NLS_CODEPAGE_865 is not set
889# CONFIG_NLS_CODEPAGE_866 is not set
890# CONFIG_NLS_CODEPAGE_869 is not set
891# CONFIG_NLS_CODEPAGE_936 is not set
892# CONFIG_NLS_CODEPAGE_950 is not set
893# CONFIG_NLS_CODEPAGE_932 is not set
894# CONFIG_NLS_CODEPAGE_949 is not set
895# CONFIG_NLS_CODEPAGE_874 is not set
896# CONFIG_NLS_ISO8859_8 is not set
897# CONFIG_NLS_CODEPAGE_1250 is not set
898# CONFIG_NLS_CODEPAGE_1251 is not set
899# CONFIG_NLS_ASCII is not set
900CONFIG_NLS_ISO8859_1=y
901# CONFIG_NLS_ISO8859_2 is not set
902# CONFIG_NLS_ISO8859_3 is not set
903# CONFIG_NLS_ISO8859_4 is not set
904# CONFIG_NLS_ISO8859_5 is not set
905# CONFIG_NLS_ISO8859_6 is not set
906# CONFIG_NLS_ISO8859_7 is not set
907# CONFIG_NLS_ISO8859_9 is not set
908# CONFIG_NLS_ISO8859_13 is not set
909# CONFIG_NLS_ISO8859_14 is not set
910# CONFIG_NLS_ISO8859_15 is not set
911# CONFIG_NLS_KOI8_R is not set
912# CONFIG_NLS_KOI8_U is not set
913# CONFIG_NLS_UTF8 is not set
914# CONFIG_DLM is not set
915CONFIG_BINARY_PRINTF=y
916
917#
918# Library routines
919#
920CONFIG_BITREVERSE=y
921CONFIG_GENERIC_FIND_LAST_BIT=y
922CONFIG_CRC_CCITT=y
923# CONFIG_CRC16 is not set
924# CONFIG_CRC_T10DIF is not set
925# CONFIG_CRC_ITU_T is not set
926CONFIG_CRC32=y
927# CONFIG_CRC7 is not set
928# CONFIG_LIBCRC32C is not set
929CONFIG_ZLIB_INFLATE=y
930CONFIG_DECOMPRESS_GZIP=y
931CONFIG_HAS_IOMEM=y
932CONFIG_HAS_IOPORT=y
933CONFIG_HAS_DMA=y
934CONFIG_HAVE_LMB=y
935CONFIG_NLATTR=y
936CONFIG_GENERIC_ATOMIC64=y
937
938#
939# Kernel hacking
940#
941CONFIG_PRINTK_TIME=y
942CONFIG_ENABLE_WARN_DEPRECATED=y
943CONFIG_ENABLE_MUST_CHECK=y
944CONFIG_FRAME_WARN=1024
945# CONFIG_MAGIC_SYSRQ is not set
946# CONFIG_STRIP_ASM_SYMS is not set
947# CONFIG_UNUSED_SYMBOLS is not set
948CONFIG_DEBUG_FS=y
949# CONFIG_HEADERS_CHECK is not set
950CONFIG_DEBUG_KERNEL=y
951# CONFIG_DEBUG_SHIRQ is not set
952CONFIG_DETECT_SOFTLOCKUP=y
953# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
954CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
955# CONFIG_DETECT_HUNG_TASK is not set
956CONFIG_SCHED_DEBUG=y
957CONFIG_SCHEDSTATS=y
958# CONFIG_TIMER_STATS is not set
959# CONFIG_DEBUG_OBJECTS is not set
960# CONFIG_DEBUG_SLAB is not set
961# CONFIG_DEBUG_KMEMLEAK is not set
962CONFIG_DEBUG_PREEMPT=y
963# CONFIG_DEBUG_RT_MUTEXES is not set
964# CONFIG_RT_MUTEX_TESTER is not set
965CONFIG_DEBUG_SPINLOCK=y
966CONFIG_DEBUG_MUTEXES=y
967# CONFIG_DEBUG_LOCK_ALLOC is not set
968# CONFIG_PROVE_LOCKING is not set
969# CONFIG_LOCK_STAT is not set
970CONFIG_DEBUG_SPINLOCK_SLEEP=y
971# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
972CONFIG_STACKTRACE=y
973# CONFIG_DEBUG_KOBJECT is not set
974CONFIG_DEBUG_BUGVERBOSE=y
975# CONFIG_DEBUG_INFO is not set
976# CONFIG_DEBUG_VM is not set
977# CONFIG_DEBUG_WRITECOUNT is not set
978# CONFIG_DEBUG_MEMORY_INIT is not set
979# CONFIG_DEBUG_LIST is not set
980# CONFIG_DEBUG_SG is not set
981# CONFIG_DEBUG_NOTIFIERS is not set
982# CONFIG_DEBUG_CREDENTIALS is not set
983# CONFIG_RCU_TORTURE_TEST is not set
984# CONFIG_RCU_CPU_STALL_DETECTOR is not set
985# CONFIG_BACKTRACE_SELF_TEST is not set
986# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
987# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
988# CONFIG_FAULT_INJECTION is not set
989CONFIG_LATENCYTOP=y
990CONFIG_SYSCTL_SYSCALL_CHECK=y
991# CONFIG_DEBUG_PAGEALLOC is not set
992CONFIG_NOP_TRACER=y
993CONFIG_HAVE_FUNCTION_TRACER=y
994CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
995CONFIG_HAVE_DYNAMIC_FTRACE=y
996CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
997CONFIG_TRACER_MAX_TRACE=y
998CONFIG_RING_BUFFER=y
999CONFIG_EVENT_TRACING=y
1000CONFIG_CONTEXT_SWITCH_TRACER=y
1001CONFIG_TRACING=y
1002CONFIG_GENERIC_TRACER=y
1003CONFIG_TRACING_SUPPORT=y
1004CONFIG_FTRACE=y
1005# CONFIG_FUNCTION_TRACER is not set
1006# CONFIG_IRQSOFF_TRACER is not set
1007# CONFIG_PREEMPT_TRACER is not set
1008CONFIG_SCHED_TRACER=y
1009CONFIG_BOOT_TRACER=y
1010CONFIG_BRANCH_PROFILE_NONE=y
1011# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
1012# CONFIG_PROFILE_ALL_BRANCHES is not set
1013# CONFIG_STACK_TRACER is not set
1014# CONFIG_KMEMTRACE is not set
1015# CONFIG_WORKQUEUE_TRACER is not set
1016# CONFIG_BLK_DEV_IO_TRACE is not set
1017# CONFIG_FTRACE_STARTUP_TEST is not set
1018# CONFIG_RING_BUFFER_BENCHMARK is not set
1019# CONFIG_DYNAMIC_DEBUG is not set
1020CONFIG_DMA_API_DEBUG=y
1021# CONFIG_SAMPLES is not set
1022CONFIG_HAVE_ARCH_KGDB=y
1023# CONFIG_KGDB is not set
1024# CONFIG_PPC_DISABLE_WERROR is not set
1025CONFIG_PPC_WERROR=y
1026CONFIG_PRINT_STACK_DEPTH=64
1027# CONFIG_DEBUG_STACKOVERFLOW is not set
1028# CONFIG_DEBUG_STACK_USAGE is not set
1029# CONFIG_PPC_EMULATED_STATS is not set
1030# CONFIG_CODE_PATCHING_SELFTEST is not set
1031# CONFIG_FTR_FIXUP_SELFTEST is not set
1032# CONFIG_MSI_BITMAP_SELFTEST is not set
1033# CONFIG_XMON is not set
1034# CONFIG_IRQSTACKS is not set
1035# CONFIG_VIRQ_DEBUG is not set
1036# CONFIG_BDI_SWITCH is not set
1037# CONFIG_BOOTX_TEXT is not set
1038CONFIG_PPC_EARLY_DEBUG=y
1039# CONFIG_PPC_EARLY_DEBUG_LPAR is not set
1040# CONFIG_PPC_EARLY_DEBUG_G5 is not set
1041# CONFIG_PPC_EARLY_DEBUG_RTAS_PANEL is not set
1042# CONFIG_PPC_EARLY_DEBUG_RTAS_CONSOLE is not set
1043# CONFIG_PPC_EARLY_DEBUG_MAPLE is not set
1044# CONFIG_PPC_EARLY_DEBUG_ISERIES is not set
1045# CONFIG_PPC_EARLY_DEBUG_PAS_REALMODE is not set
1046# CONFIG_PPC_EARLY_DEBUG_BEAT is not set
1047# CONFIG_PPC_EARLY_DEBUG_44x is not set
1048# CONFIG_PPC_EARLY_DEBUG_40x is not set
1049# CONFIG_PPC_EARLY_DEBUG_CPM is not set
1050CONFIG_PPC_EARLY_DEBUG_USBGECKO=y
1051
1052#
1053# Security options
1054#
1055# CONFIG_KEYS is not set
1056# CONFIG_SECURITY is not set
1057# CONFIG_SECURITYFS is not set
1058# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1059# CONFIG_CRYPTO is not set
1060# CONFIG_PPC_CLOCK is not set
1061# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/wii_defconfig b/arch/powerpc/configs/wii_defconfig
new file mode 100644
index 000000000000..c386828c639a
--- /dev/null
+++ b/arch/powerpc/configs/wii_defconfig
@@ -0,0 +1,1406 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.32-rc8
4# Sun Nov 22 20:37:21 2009
5#
6# CONFIG_PPC64 is not set
7
8#
9# Processor support
10#
11CONFIG_PPC_BOOK3S_32=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
17CONFIG_PPC_BOOK3S=y
18CONFIG_6xx=y
19CONFIG_PPC_FPU=y
20# CONFIG_ALTIVEC is not set
21CONFIG_PPC_STD_MMU=y
22CONFIG_PPC_STD_MMU_32=y
23# CONFIG_PPC_MM_SLICES is not set
24CONFIG_PPC_HAVE_PMU_SUPPORT=y
25CONFIG_PPC_PERF_CTRS=y
26# CONFIG_SMP is not set
27CONFIG_NOT_COHERENT_CACHE=y
28CONFIG_PPC32=y
29CONFIG_WORD_SIZE=32
30# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
31CONFIG_MMU=y
32CONFIG_GENERIC_CMOS_UPDATE=y
33CONFIG_GENERIC_TIME=y
34CONFIG_GENERIC_TIME_VSYSCALL=y
35CONFIG_GENERIC_CLOCKEVENTS=y
36CONFIG_GENERIC_HARDIRQS=y
37CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
38# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
39# CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set
40CONFIG_IRQ_PER_CPU=y
41CONFIG_STACKTRACE_SUPPORT=y
42CONFIG_HAVE_LATENCYTOP_SUPPORT=y
43CONFIG_TRACE_IRQFLAGS_SUPPORT=y
44CONFIG_LOCKDEP_SUPPORT=y
45CONFIG_RWSEM_XCHGADD_ALGORITHM=y
46CONFIG_ARCH_HAS_ILOG2_U32=y
47CONFIG_GENERIC_HWEIGHT=y
48CONFIG_GENERIC_FIND_NEXT_BIT=y
49CONFIG_GENERIC_GPIO=y
50# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
51CONFIG_PPC=y
52CONFIG_EARLY_PRINTK=y
53CONFIG_GENERIC_NVRAM=y
54CONFIG_SCHED_OMIT_FRAME_POINTER=y
55CONFIG_ARCH_MAY_HAVE_PC_FDC=y
56CONFIG_PPC_OF=y
57CONFIG_OF=y
58# CONFIG_PPC_UDBG_16550 is not set
59# CONFIG_GENERIC_TBSYNC is not set
60CONFIG_AUDIT_ARCH=y
61CONFIG_GENERIC_BUG=y
62CONFIG_DTC=y
63# CONFIG_DEFAULT_UIMAGE is not set
64# CONFIG_PPC_DCR_NATIVE is not set
65# CONFIG_PPC_DCR_MMIO is not set
66CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
67CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
68CONFIG_CONSTRUCTORS=y
69
70#
71# General setup
72#
73CONFIG_EXPERIMENTAL=y
74CONFIG_BROKEN_ON_SMP=y
75CONFIG_LOCK_KERNEL=y
76CONFIG_INIT_ENV_ARG_LIMIT=32
77CONFIG_LOCALVERSION="-wii"
78# CONFIG_LOCALVERSION_AUTO is not set
79CONFIG_SWAP=y
80CONFIG_SYSVIPC=y
81CONFIG_SYSVIPC_SYSCTL=y
82# CONFIG_POSIX_MQUEUE is not set
83# CONFIG_BSD_PROCESS_ACCT is not set
84# CONFIG_TASKSTATS is not set
85# CONFIG_AUDIT is not set
86
87#
88# RCU Subsystem
89#
90CONFIG_TREE_RCU=y
91# CONFIG_TREE_PREEMPT_RCU is not set
92# CONFIG_RCU_TRACE is not set
93CONFIG_RCU_FANOUT=32
94# CONFIG_RCU_FANOUT_EXACT is not set
95# CONFIG_TREE_RCU_TRACE is not set
96CONFIG_IKCONFIG=y
97CONFIG_IKCONFIG_PROC=y
98CONFIG_LOG_BUF_SHIFT=14
99CONFIG_GROUP_SCHED=y
100CONFIG_FAIR_GROUP_SCHED=y
101# CONFIG_RT_GROUP_SCHED is not set
102CONFIG_USER_SCHED=y
103# CONFIG_CGROUP_SCHED is not set
104# CONFIG_CGROUPS is not set
105CONFIG_SYSFS_DEPRECATED=y
106CONFIG_SYSFS_DEPRECATED_V2=y
107CONFIG_RELAY=y
108# CONFIG_NAMESPACES is not set
109CONFIG_BLK_DEV_INITRD=y
110CONFIG_INITRAMFS_SOURCE=""
111CONFIG_RD_GZIP=y
112# CONFIG_RD_BZIP2 is not set
113# CONFIG_RD_LZMA is not set
114# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
115CONFIG_SYSCTL=y
116CONFIG_ANON_INODES=y
117CONFIG_EMBEDDED=y
118CONFIG_SYSCTL_SYSCALL=y
119CONFIG_KALLSYMS=y
120CONFIG_KALLSYMS_ALL=y
121# CONFIG_KALLSYMS_EXTRA_PASS is not set
122CONFIG_HOTPLUG=y
123CONFIG_PRINTK=y
124CONFIG_BUG=y
125# CONFIG_ELF_CORE is not set
126CONFIG_BASE_FULL=y
127CONFIG_FUTEX=y
128CONFIG_EPOLL=y
129CONFIG_SIGNALFD=y
130CONFIG_TIMERFD=y
131CONFIG_EVENTFD=y
132CONFIG_SHMEM=y
133CONFIG_AIO=y
134CONFIG_HAVE_PERF_EVENTS=y
135
136#
137# Kernel Performance Events And Counters
138#
139CONFIG_PERF_EVENTS=y
140CONFIG_EVENT_PROFILE=y
141CONFIG_PERF_COUNTERS=y
142# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
143# CONFIG_VM_EVENT_COUNTERS is not set
144CONFIG_COMPAT_BRK=y
145CONFIG_SLAB=y
146# CONFIG_SLUB is not set
147# CONFIG_SLOB is not set
148# CONFIG_PROFILING is not set
149CONFIG_TRACEPOINTS=y
150CONFIG_HAVE_OPROFILE=y
151# CONFIG_KPROBES is not set
152CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
153CONFIG_HAVE_IOREMAP_PROT=y
154CONFIG_HAVE_KPROBES=y
155CONFIG_HAVE_KRETPROBES=y
156CONFIG_HAVE_ARCH_TRACEHOOK=y
157CONFIG_HAVE_DMA_ATTRS=y
158CONFIG_HAVE_DMA_API_DEBUG=y
159
160#
161# GCOV-based kernel profiling
162#
163# CONFIG_GCOV_KERNEL is not set
164CONFIG_SLOW_WORK=y
165# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
166CONFIG_SLABINFO=y
167CONFIG_RT_MUTEXES=y
168CONFIG_BASE_SMALL=0
169CONFIG_MODULES=y
170# CONFIG_MODULE_FORCE_LOAD is not set
171CONFIG_MODULE_UNLOAD=y
172# CONFIG_MODULE_FORCE_UNLOAD is not set
173# CONFIG_MODVERSIONS is not set
174# CONFIG_MODULE_SRCVERSION_ALL is not set
175CONFIG_BLOCK=y
176CONFIG_LBDAF=y
177CONFIG_BLK_DEV_BSG=y
178# CONFIG_BLK_DEV_INTEGRITY is not set
179
180#
181# IO Schedulers
182#
183CONFIG_IOSCHED_NOOP=y
184CONFIG_IOSCHED_AS=y
185CONFIG_IOSCHED_DEADLINE=y
186CONFIG_IOSCHED_CFQ=y
187CONFIG_DEFAULT_AS=y
188# CONFIG_DEFAULT_DEADLINE is not set
189# CONFIG_DEFAULT_CFQ is not set
190# CONFIG_DEFAULT_NOOP is not set
191CONFIG_DEFAULT_IOSCHED="anticipatory"
192# CONFIG_FREEZER is not set
193
194#
195# Platform support
196#
197# CONFIG_PPC_CHRP is not set
198# CONFIG_MPC5121_ADS is not set
199# CONFIG_MPC5121_GENERIC is not set
200# CONFIG_PPC_MPC52xx is not set
201# CONFIG_PPC_PMAC is not set
202# CONFIG_PPC_CELL is not set
203# CONFIG_PPC_CELL_NATIVE is not set
204# CONFIG_PPC_82xx is not set
205# CONFIG_PQ2ADS is not set
206# CONFIG_PPC_83xx is not set
207# CONFIG_PPC_86xx is not set
208CONFIG_EMBEDDED6xx=y
209# CONFIG_LINKSTATION is not set
210# CONFIG_STORCENTER is not set
211# CONFIG_MPC7448HPC2 is not set
212# CONFIG_PPC_HOLLY is not set
213# CONFIG_PPC_PRPMC2800 is not set
214# CONFIG_PPC_C2K is not set
215CONFIG_GAMECUBE_COMMON=y
216CONFIG_USBGECKO_UDBG=y
217CONFIG_FLIPPER_PIC=y
218# CONFIG_GAMECUBE is not set
219CONFIG_HLWD_PIC=y
220CONFIG_STARLET_MINI=y
221CONFIG_WII=y
222# CONFIG_AMIGAONE is not set
223# CONFIG_PPC_OF_BOOT_TRAMPOLINE is not set
224# CONFIG_IPIC is not set
225# CONFIG_MPIC is not set
226# CONFIG_MPIC_WEIRD is not set
227# CONFIG_PPC_I8259 is not set
228# CONFIG_PPC_RTAS is not set
229# CONFIG_MMIO_NVRAM is not set
230# CONFIG_PPC_MPC106 is not set
231# CONFIG_PPC_970_NAP is not set
232# CONFIG_PPC_INDIRECT_IO is not set
233# CONFIG_GENERIC_IOMAP is not set
234# CONFIG_CPU_FREQ is not set
235# CONFIG_TAU is not set
236# CONFIG_FSL_ULI1575 is not set
237# CONFIG_SIMPLE_GPIO is not set
238
239#
240# Kernel options
241#
242# CONFIG_HIGHMEM is not set
243# CONFIG_NO_HZ is not set
244# CONFIG_HIGH_RES_TIMERS is not set
245CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
246# CONFIG_HZ_100 is not set
247CONFIG_HZ_250=y
248# CONFIG_HZ_300 is not set
249# CONFIG_HZ_1000 is not set
250CONFIG_HZ=250
251# CONFIG_SCHED_HRTICK is not set
252# CONFIG_PREEMPT_NONE is not set
253# CONFIG_PREEMPT_VOLUNTARY is not set
254CONFIG_PREEMPT=y
255CONFIG_BINFMT_ELF=y
256# CONFIG_HAVE_AOUT is not set
257CONFIG_BINFMT_MISC=m
258# CONFIG_IOMMU_HELPER is not set
259# CONFIG_SWIOTLB is not set
260CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
261CONFIG_ARCH_HAS_WALK_MEMORY=y
262CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
263CONFIG_KEXEC=y
264# CONFIG_CRASH_DUMP is not set
265CONFIG_MAX_ACTIVE_REGIONS=32
266CONFIG_ARCH_FLATMEM_ENABLE=y
267CONFIG_ARCH_POPULATES_NODE_MAP=y
268CONFIG_SELECT_MEMORY_MODEL=y
269CONFIG_FLATMEM_MANUAL=y
270# CONFIG_DISCONTIGMEM_MANUAL is not set
271# CONFIG_SPARSEMEM_MANUAL is not set
272CONFIG_FLATMEM=y
273CONFIG_FLAT_NODE_MEM_MAP=y
274CONFIG_PAGEFLAGS_EXTENDED=y
275CONFIG_SPLIT_PTLOCK_CPUS=4
276# CONFIG_MIGRATION is not set
277# CONFIG_PHYS_ADDR_T_64BIT is not set
278CONFIG_ZONE_DMA_FLAG=1
279CONFIG_BOUNCE=y
280CONFIG_VIRT_TO_BUS=y
281CONFIG_HAVE_MLOCK=y
282CONFIG_HAVE_MLOCKED_PAGE_BIT=y
283# CONFIG_KSM is not set
284CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
285CONFIG_PPC_4K_PAGES=y
286# CONFIG_PPC_16K_PAGES is not set
287# CONFIG_PPC_64K_PAGES is not set
288# CONFIG_PPC_256K_PAGES is not set
289CONFIG_FORCE_MAX_ZONEORDER=11
290CONFIG_PROC_DEVICETREE=y
291# CONFIG_CMDLINE_BOOL is not set
292CONFIG_EXTRA_TARGETS=""
293# CONFIG_PM is not set
294# CONFIG_SECCOMP is not set
295CONFIG_ISA_DMA_API=y
296
297#
298# Bus options
299#
300CONFIG_ZONE_DMA=y
301CONFIG_GENERIC_ISA_DMA=y
302# CONFIG_PCI is not set
303# CONFIG_PCI_DOMAINS is not set
304# CONFIG_PCI_SYSCALL is not set
305# CONFIG_ARCH_SUPPORTS_MSI is not set
306# CONFIG_PCCARD is not set
307# CONFIG_HAS_RAPIDIO is not set
308
309#
310# Advanced setup
311#
312CONFIG_ADVANCED_OPTIONS=y
313# CONFIG_LOWMEM_SIZE_BOOL is not set
314CONFIG_LOWMEM_SIZE=0x30000000
315# CONFIG_PAGE_OFFSET_BOOL is not set
316CONFIG_PAGE_OFFSET=0xc0000000
317# CONFIG_KERNEL_START_BOOL is not set
318CONFIG_KERNEL_START=0xc0000000
319CONFIG_PHYSICAL_START=0x00000000
320# CONFIG_TASK_SIZE_BOOL is not set
321CONFIG_TASK_SIZE=0xc0000000
322# CONFIG_CONSISTENT_SIZE_BOOL is not set
323CONFIG_CONSISTENT_SIZE=0x00200000
324CONFIG_NET=y
325
326#
327# Networking options
328#
329CONFIG_PACKET=y
330# CONFIG_PACKET_MMAP is not set
331CONFIG_UNIX=y
332# CONFIG_NET_KEY is not set
333CONFIG_INET=y
334# CONFIG_IP_MULTICAST is not set
335# CONFIG_IP_ADVANCED_ROUTER is not set
336CONFIG_IP_FIB_HASH=y
337CONFIG_IP_PNP=y
338CONFIG_IP_PNP_DHCP=y
339# CONFIG_IP_PNP_BOOTP is not set
340CONFIG_IP_PNP_RARP=y
341# CONFIG_NET_IPIP is not set
342# CONFIG_NET_IPGRE is not set
343# CONFIG_ARPD is not set
344# CONFIG_SYN_COOKIES is not set
345# CONFIG_INET_AH is not set
346# CONFIG_INET_ESP is not set
347# CONFIG_INET_IPCOMP is not set
348# CONFIG_INET_XFRM_TUNNEL is not set
349# CONFIG_INET_TUNNEL is not set
350# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
351# CONFIG_INET_XFRM_MODE_TUNNEL is not set
352# CONFIG_INET_XFRM_MODE_BEET is not set
353# CONFIG_INET_LRO is not set
354# CONFIG_INET_DIAG is not set
355# CONFIG_TCP_CONG_ADVANCED is not set
356CONFIG_TCP_CONG_CUBIC=y
357CONFIG_DEFAULT_TCP_CONG="cubic"
358# CONFIG_TCP_MD5SIG is not set
359# CONFIG_IPV6 is not set
360# CONFIG_NETWORK_SECMARK is not set
361# CONFIG_NETFILTER is not set
362# CONFIG_IP_DCCP is not set
363# CONFIG_IP_SCTP is not set
364# CONFIG_RDS is not set
365# CONFIG_TIPC is not set
366# CONFIG_ATM is not set
367# CONFIG_BRIDGE is not set
368# CONFIG_NET_DSA is not set
369# CONFIG_VLAN_8021Q is not set
370# CONFIG_DECNET is not set
371# CONFIG_LLC2 is not set
372# CONFIG_IPX is not set
373# CONFIG_ATALK is not set
374# CONFIG_X25 is not set
375# CONFIG_LAPB is not set
376# CONFIG_ECONET is not set
377# CONFIG_WAN_ROUTER is not set
378# CONFIG_PHONET is not set
379# CONFIG_IEEE802154 is not set
380# CONFIG_NET_SCHED is not set
381# CONFIG_DCB is not set
382
383#
384# Network testing
385#
386# CONFIG_NET_PKTGEN is not set
387# CONFIG_NET_DROP_MONITOR is not set
388# CONFIG_HAMRADIO is not set
389# CONFIG_CAN is not set
390# CONFIG_IRDA is not set
391CONFIG_BT=y
392CONFIG_BT_L2CAP=y
393# CONFIG_BT_SCO is not set
394CONFIG_BT_RFCOMM=y
395# CONFIG_BT_RFCOMM_TTY is not set
396CONFIG_BT_BNEP=y
397CONFIG_BT_BNEP_MC_FILTER=y
398# CONFIG_BT_BNEP_PROTO_FILTER is not set
399CONFIG_BT_HIDP=y
400
401#
402# Bluetooth device drivers
403#
404# CONFIG_BT_HCIBTSDIO is not set
405# CONFIG_BT_HCIUART is not set
406# CONFIG_BT_HCIVHCI is not set
407# CONFIG_BT_MRVL is not set
408# CONFIG_AF_RXRPC is not set
409CONFIG_WIRELESS=y
410CONFIG_CFG80211=y
411# CONFIG_NL80211_TESTMODE is not set
412# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
413# CONFIG_CFG80211_REG_DEBUG is not set
414CONFIG_CFG80211_DEFAULT_PS=y
415CONFIG_CFG80211_DEFAULT_PS_VALUE=1
416# CONFIG_CFG80211_DEBUGFS is not set
417CONFIG_WIRELESS_OLD_REGULATORY=y
418CONFIG_WIRELESS_EXT=y
419CONFIG_WIRELESS_EXT_SYSFS=y
420# CONFIG_LIB80211 is not set
421CONFIG_MAC80211=y
422# CONFIG_MAC80211_RC_PID is not set
423CONFIG_MAC80211_RC_MINSTREL=y
424# CONFIG_MAC80211_RC_DEFAULT_PID is not set
425CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
426CONFIG_MAC80211_RC_DEFAULT="minstrel"
427# CONFIG_MAC80211_MESH is not set
428# CONFIG_MAC80211_LEDS is not set
429# CONFIG_MAC80211_DEBUGFS is not set
430# CONFIG_MAC80211_DEBUG_MENU is not set
431# CONFIG_WIMAX is not set
432# CONFIG_RFKILL is not set
433# CONFIG_NET_9P is not set
434
435#
436# Device Drivers
437#
438
439#
440# Generic Driver Options
441#
442CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
443# CONFIG_DEVTMPFS is not set
444# CONFIG_STANDALONE is not set
445CONFIG_PREVENT_FIRMWARE_BUILD=y
446CONFIG_FW_LOADER=y
447# CONFIG_FIRMWARE_IN_KERNEL is not set
448CONFIG_EXTRA_FIRMWARE=""
449# CONFIG_DEBUG_DRIVER is not set
450# CONFIG_DEBUG_DEVRES is not set
451# CONFIG_SYS_HYPERVISOR is not set
452# CONFIG_CONNECTOR is not set
453# CONFIG_MTD is not set
454CONFIG_OF_DEVICE=y
455CONFIG_OF_GPIO=y
456CONFIG_OF_I2C=y
457# CONFIG_PARPORT is not set
458CONFIG_BLK_DEV=y
459# CONFIG_BLK_DEV_FD is not set
460# CONFIG_BLK_DEV_COW_COMMON is not set
461CONFIG_BLK_DEV_LOOP=y
462# CONFIG_BLK_DEV_CRYPTOLOOP is not set
463# CONFIG_BLK_DEV_NBD is not set
464CONFIG_BLK_DEV_RAM=y
465CONFIG_BLK_DEV_RAM_COUNT=2
466CONFIG_BLK_DEV_RAM_SIZE=4096
467# CONFIG_BLK_DEV_XIP is not set
468# CONFIG_CDROM_PKTCDVD is not set
469# CONFIG_ATA_OVER_ETH is not set
470# CONFIG_BLK_DEV_HD is not set
471CONFIG_MISC_DEVICES=y
472# CONFIG_ICS932S401 is not set
473# CONFIG_ENCLOSURE_SERVICES is not set
474# CONFIG_ISL29003 is not set
475# CONFIG_C2PORT is not set
476
477#
478# EEPROM support
479#
480# CONFIG_EEPROM_AT24 is not set
481# CONFIG_EEPROM_LEGACY is not set
482# CONFIG_EEPROM_MAX6875 is not set
483# CONFIG_EEPROM_93CX6 is not set
484CONFIG_HAVE_IDE=y
485# CONFIG_IDE is not set
486
487#
488# SCSI device support
489#
490# CONFIG_RAID_ATTRS is not set
491CONFIG_SCSI=y
492CONFIG_SCSI_DMA=y
493# CONFIG_SCSI_TGT is not set
494# CONFIG_SCSI_NETLINK is not set
495CONFIG_SCSI_PROC_FS=y
496
497#
498# SCSI support type (disk, tape, CD-ROM)
499#
500CONFIG_BLK_DEV_SD=y
501# CONFIG_CHR_DEV_ST is not set
502# CONFIG_CHR_DEV_OSST is not set
503# CONFIG_BLK_DEV_SR is not set
504# CONFIG_CHR_DEV_SG is not set
505# CONFIG_CHR_DEV_SCH is not set
506CONFIG_SCSI_MULTI_LUN=y
507# CONFIG_SCSI_CONSTANTS is not set
508# CONFIG_SCSI_LOGGING is not set
509# CONFIG_SCSI_SCAN_ASYNC is not set
510CONFIG_SCSI_WAIT_SCAN=m
511
512#
513# SCSI Transports
514#
515# CONFIG_SCSI_SPI_ATTRS is not set
516# CONFIG_SCSI_FC_ATTRS is not set
517# CONFIG_SCSI_ISCSI_ATTRS is not set
518# CONFIG_SCSI_SAS_ATTRS is not set
519# CONFIG_SCSI_SAS_LIBSAS is not set
520# CONFIG_SCSI_SRP_ATTRS is not set
521CONFIG_SCSI_LOWLEVEL=y
522# CONFIG_ISCSI_TCP is not set
523# CONFIG_LIBFC is not set
524# CONFIG_LIBFCOE is not set
525# CONFIG_SCSI_DEBUG is not set
526# CONFIG_SCSI_DH is not set
527# CONFIG_SCSI_OSD_INITIATOR is not set
528# CONFIG_ATA is not set
529# CONFIG_MD is not set
530# CONFIG_MACINTOSH_DRIVERS is not set
531CONFIG_NETDEVICES=y
532# CONFIG_DUMMY is not set
533# CONFIG_BONDING is not set
534# CONFIG_MACVLAN is not set
535# CONFIG_EQUALIZER is not set
536# CONFIG_TUN is not set
537# CONFIG_VETH is not set
538# CONFIG_PHYLIB is not set
539CONFIG_NET_ETHERNET=y
540CONFIG_MII=y
541# CONFIG_ETHOC is not set
542# CONFIG_DNET is not set
543# CONFIG_IBM_NEW_EMAC_ZMII is not set
544# CONFIG_IBM_NEW_EMAC_RGMII is not set
545# CONFIG_IBM_NEW_EMAC_TAH is not set
546# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
547# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
548# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
549# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
550# CONFIG_B44 is not set
551# CONFIG_KS8842 is not set
552# CONFIG_KS8851_MLL is not set
553# CONFIG_XILINX_EMACLITE is not set
554# CONFIG_NETDEV_1000 is not set
555# CONFIG_NETDEV_10000 is not set
556CONFIG_WLAN=y
557# CONFIG_WLAN_PRE80211 is not set
558CONFIG_WLAN_80211=y
559# CONFIG_LIBERTAS is not set
560# CONFIG_LIBERTAS_THINFIRM is not set
561# CONFIG_MAC80211_HWSIM is not set
562# CONFIG_P54_COMMON is not set
563# CONFIG_ATH_COMMON is not set
564# CONFIG_HOSTAP is not set
565CONFIG_B43=y
566CONFIG_B43_SDIO=y
567CONFIG_B43_PIO=y
568# CONFIG_B43_PHY_LP is not set
569CONFIG_B43_DEBUG=y
570# CONFIG_B43_FORCE_PIO is not set
571# CONFIG_B43LEGACY is not set
572# CONFIG_RT2X00 is not set
573# CONFIG_WL12XX is not set
574# CONFIG_IWM is not set
575
576#
577# Enable WiMAX (Networking options) to see the WiMAX drivers
578#
579# CONFIG_WAN is not set
580# CONFIG_PPP is not set
581# CONFIG_SLIP is not set
582# CONFIG_NETCONSOLE is not set
583# CONFIG_NETPOLL is not set
584# CONFIG_NET_POLL_CONTROLLER is not set
585# CONFIG_ISDN is not set
586# CONFIG_PHONE is not set
587
588#
589# Input device support
590#
591CONFIG_INPUT=y
592CONFIG_INPUT_FF_MEMLESS=m
593# CONFIG_INPUT_POLLDEV is not set
594
595#
596# Userland interfaces
597#
598CONFIG_INPUT_MOUSEDEV=y
599# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
600CONFIG_INPUT_MOUSEDEV_SCREEN_X=640
601CONFIG_INPUT_MOUSEDEV_SCREEN_Y=480
602CONFIG_INPUT_JOYDEV=y
603CONFIG_INPUT_EVDEV=y
604# CONFIG_INPUT_EVBUG is not set
605
606#
607# Input Device Drivers
608#
609CONFIG_INPUT_KEYBOARD=y
610# CONFIG_KEYBOARD_ADP5588 is not set
611# CONFIG_KEYBOARD_ATKBD is not set
612# CONFIG_QT2160 is not set
613# CONFIG_KEYBOARD_LKKBD is not set
614# CONFIG_KEYBOARD_GPIO is not set
615# CONFIG_KEYBOARD_MATRIX is not set
616# CONFIG_KEYBOARD_MAX7359 is not set
617# CONFIG_KEYBOARD_NEWTON is not set
618# CONFIG_KEYBOARD_OPENCORES is not set
619# CONFIG_KEYBOARD_STOWAWAY is not set
620# CONFIG_KEYBOARD_SUNKBD is not set
621# CONFIG_KEYBOARD_XTKBD is not set
622CONFIG_INPUT_MOUSE=y
623# CONFIG_MOUSE_PS2 is not set
624# CONFIG_MOUSE_SERIAL is not set
625# CONFIG_MOUSE_VSXXXAA is not set
626# CONFIG_MOUSE_GPIO is not set
627# CONFIG_MOUSE_SYNAPTICS_I2C is not set
628CONFIG_INPUT_JOYSTICK=y
629# CONFIG_JOYSTICK_ANALOG is not set
630# CONFIG_JOYSTICK_A3D is not set
631# CONFIG_JOYSTICK_ADI is not set
632# CONFIG_JOYSTICK_COBRA is not set
633# CONFIG_JOYSTICK_GF2K is not set
634# CONFIG_JOYSTICK_GRIP is not set
635# CONFIG_JOYSTICK_GRIP_MP is not set
636# CONFIG_JOYSTICK_GUILLEMOT is not set
637# CONFIG_JOYSTICK_INTERACT is not set
638# CONFIG_JOYSTICK_SIDEWINDER is not set
639# CONFIG_JOYSTICK_TMDC is not set
640# CONFIG_JOYSTICK_IFORCE is not set
641# CONFIG_JOYSTICK_WARRIOR is not set
642# CONFIG_JOYSTICK_MAGELLAN is not set
643# CONFIG_JOYSTICK_SPACEORB is not set
644# CONFIG_JOYSTICK_SPACEBALL is not set
645# CONFIG_JOYSTICK_STINGER is not set
646# CONFIG_JOYSTICK_TWIDJOY is not set
647# CONFIG_JOYSTICK_ZHENHUA is not set
648# CONFIG_JOYSTICK_JOYDUMP is not set
649# CONFIG_INPUT_TABLET is not set
650# CONFIG_INPUT_TOUCHSCREEN is not set
651CONFIG_INPUT_MISC=y
652CONFIG_INPUT_UINPUT=y
653# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
654
655#
656# Hardware I/O ports
657#
658CONFIG_SERIO=y
659# CONFIG_SERIO_I8042 is not set
660# CONFIG_SERIO_SERPORT is not set
661# CONFIG_SERIO_LIBPS2 is not set
662# CONFIG_SERIO_RAW is not set
663# CONFIG_SERIO_XILINX_XPS_PS2 is not set
664# CONFIG_GAMEPORT is not set
665
666#
667# Character devices
668#
669CONFIG_VT=y
670CONFIG_CONSOLE_TRANSLATIONS=y
671CONFIG_VT_CONSOLE=y
672CONFIG_HW_CONSOLE=y
673# CONFIG_VT_HW_CONSOLE_BINDING is not set
674# CONFIG_DEVKMEM is not set
675# CONFIG_SERIAL_NONSTANDARD is not set
676
677#
678# Serial drivers
679#
680# CONFIG_SERIAL_8250 is not set
681
682#
683# Non-8250 serial port support
684#
685# CONFIG_SERIAL_UARTLITE is not set
686CONFIG_UNIX98_PTYS=y
687# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
688CONFIG_LEGACY_PTYS=y
689CONFIG_LEGACY_PTY_COUNT=64
690# CONFIG_HVC_UDBG is not set
691# CONFIG_IPMI_HANDLER is not set
692# CONFIG_HW_RANDOM is not set
693CONFIG_NVRAM=y
694# CONFIG_R3964 is not set
695# CONFIG_RAW_DRIVER is not set
696# CONFIG_TCG_TPM is not set
697CONFIG_I2C=y
698CONFIG_I2C_BOARDINFO=y
699CONFIG_I2C_COMPAT=y
700CONFIG_I2C_CHARDEV=y
701CONFIG_I2C_HELPER_AUTO=y
702CONFIG_I2C_ALGOBIT=y
703
704#
705# I2C Hardware Bus support
706#
707
708#
709# I2C system bus drivers (mostly embedded / system-on-chip)
710#
711CONFIG_I2C_GPIO=y
712# CONFIG_I2C_MPC is not set
713# CONFIG_I2C_OCORES is not set
714# CONFIG_I2C_SIMTEC is not set
715
716#
717# External I2C/SMBus adapter drivers
718#
719# CONFIG_I2C_PARPORT_LIGHT is not set
720# CONFIG_I2C_TAOS_EVM is not set
721
722#
723# Other I2C/SMBus bus drivers
724#
725# CONFIG_I2C_PCA_PLATFORM is not set
726# CONFIG_I2C_STUB is not set
727
728#
729# Miscellaneous I2C Chip support
730#
731# CONFIG_DS1682 is not set
732# CONFIG_SENSORS_TSL2550 is not set
733# CONFIG_I2C_DEBUG_CORE is not set
734# CONFIG_I2C_DEBUG_ALGO is not set
735# CONFIG_I2C_DEBUG_BUS is not set
736# CONFIG_I2C_DEBUG_CHIP is not set
737# CONFIG_SPI is not set
738
739#
740# PPS support
741#
742# CONFIG_PPS is not set
743CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
744CONFIG_GPIOLIB=y
745# CONFIG_DEBUG_GPIO is not set
746CONFIG_GPIO_SYSFS=y
747
748#
749# Memory mapped GPIO expanders:
750#
751# CONFIG_GPIO_XILINX is not set
752
753#
754# I2C GPIO expanders:
755#
756# CONFIG_GPIO_MAX732X is not set
757# CONFIG_GPIO_PCA953X is not set
758# CONFIG_GPIO_PCF857X is not set
759
760#
761# PCI GPIO expanders:
762#
763
764#
765# SPI GPIO expanders:
766#
767
768#
769# AC97 GPIO expanders:
770#
771# CONFIG_W1 is not set
772# CONFIG_POWER_SUPPLY is not set
773# CONFIG_HWMON is not set
774# CONFIG_THERMAL is not set
775# CONFIG_WATCHDOG is not set
776CONFIG_SSB_POSSIBLE=y
777
778#
779# Sonics Silicon Backplane
780#
781CONFIG_SSB=y
782CONFIG_SSB_BLOCKIO=y
783CONFIG_SSB_SDIOHOST_POSSIBLE=y
784CONFIG_SSB_SDIOHOST=y
785# CONFIG_SSB_SILENT is not set
786CONFIG_SSB_DEBUG=y
787
788#
789# Multifunction device drivers
790#
791# CONFIG_MFD_CORE is not set
792# CONFIG_MFD_SM501 is not set
793# CONFIG_HTC_PASIC3 is not set
794# CONFIG_TPS65010 is not set
795# CONFIG_TWL4030_CORE is not set
796# CONFIG_MFD_TMIO is not set
797# CONFIG_PMIC_DA903X is not set
798# CONFIG_MFD_WM8400 is not set
799# CONFIG_MFD_WM831X is not set
800# CONFIG_MFD_WM8350_I2C is not set
801# CONFIG_MFD_PCF50633 is not set
802# CONFIG_AB3100_CORE is not set
803# CONFIG_REGULATOR is not set
804# CONFIG_MEDIA_SUPPORT is not set
805
806#
807# Graphics support
808#
809# CONFIG_VGASTATE is not set
810# CONFIG_VIDEO_OUTPUT_CONTROL is not set
811CONFIG_FB=y
812# CONFIG_FIRMWARE_EDID is not set
813# CONFIG_FB_DDC is not set
814# CONFIG_FB_BOOT_VESA_SUPPORT is not set
815# CONFIG_FB_CFB_FILLRECT is not set
816# CONFIG_FB_CFB_COPYAREA is not set
817# CONFIG_FB_CFB_IMAGEBLIT is not set
818# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
819# CONFIG_FB_SYS_FILLRECT is not set
820# CONFIG_FB_SYS_COPYAREA is not set
821# CONFIG_FB_SYS_IMAGEBLIT is not set
822# CONFIG_FB_FOREIGN_ENDIAN is not set
823# CONFIG_FB_SYS_FOPS is not set
824# CONFIG_FB_SVGALIB is not set
825# CONFIG_FB_MACMODES is not set
826# CONFIG_FB_BACKLIGHT is not set
827# CONFIG_FB_MODE_HELPERS is not set
828# CONFIG_FB_TILEBLITTING is not set
829
830#
831# Frame buffer hardware drivers
832#
833# CONFIG_FB_OF is not set
834# CONFIG_FB_VGA16 is not set
835# CONFIG_FB_S1D13XXX is not set
836# CONFIG_FB_IBM_GXT4500 is not set
837# CONFIG_FB_VIRTUAL is not set
838# CONFIG_FB_METRONOME is not set
839# CONFIG_FB_MB862XX is not set
840# CONFIG_FB_BROADSHEET is not set
841# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
842
843#
844# Display device support
845#
846# CONFIG_DISPLAY_SUPPORT is not set
847
848#
849# Console display driver support
850#
851# CONFIG_VGA_CONSOLE is not set
852CONFIG_DUMMY_CONSOLE=y
853CONFIG_FRAMEBUFFER_CONSOLE=y
854# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
855# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
856# CONFIG_FONTS is not set
857CONFIG_FONT_8x8=y
858CONFIG_FONT_8x16=y
859# CONFIG_LOGO is not set
860CONFIG_SOUND=y
861CONFIG_SOUND_OSS_CORE=y
862CONFIG_SOUND_OSS_CORE_PRECLAIM=y
863CONFIG_SND=y
864CONFIG_SND_TIMER=y
865CONFIG_SND_PCM=y
866CONFIG_SND_SEQUENCER=y
867# CONFIG_SND_SEQ_DUMMY is not set
868CONFIG_SND_OSSEMUL=y
869CONFIG_SND_MIXER_OSS=y
870CONFIG_SND_PCM_OSS=y
871CONFIG_SND_PCM_OSS_PLUGINS=y
872CONFIG_SND_SEQUENCER_OSS=y
873# CONFIG_SND_DYNAMIC_MINORS is not set
874CONFIG_SND_SUPPORT_OLD_API=y
875# CONFIG_SND_VERBOSE_PROCFS is not set
876# CONFIG_SND_VERBOSE_PRINTK is not set
877# CONFIG_SND_DEBUG is not set
878# CONFIG_SND_RAWMIDI_SEQ is not set
879# CONFIG_SND_OPL3_LIB_SEQ is not set
880# CONFIG_SND_OPL4_LIB_SEQ is not set
881# CONFIG_SND_SBAWE_SEQ is not set
882# CONFIG_SND_EMU10K1_SEQ is not set
883CONFIG_SND_DRIVERS=y
884# CONFIG_SND_DUMMY is not set
885# CONFIG_SND_VIRMIDI is not set
886# CONFIG_SND_MTPAV is not set
887# CONFIG_SND_SERIAL_U16550 is not set
888# CONFIG_SND_MPU401 is not set
889CONFIG_SND_PPC=y
890# CONFIG_SND_SOC is not set
891# CONFIG_SOUND_PRIME is not set
892CONFIG_HID_SUPPORT=y
893CONFIG_HID=y
894# CONFIG_HIDRAW is not set
895# CONFIG_HID_PID is not set
896
897#
898# Special HID drivers
899#
900CONFIG_HID_APPLE=m
901CONFIG_HID_WACOM=m
902CONFIG_USB_SUPPORT=y
903# CONFIG_USB_ARCH_HAS_HCD is not set
904# CONFIG_USB_ARCH_HAS_OHCI is not set
905# CONFIG_USB_ARCH_HAS_EHCI is not set
906# CONFIG_USB_OTG_WHITELIST is not set
907# CONFIG_USB_OTG_BLACKLIST_HUB is not set
908
909#
910# Enable Host or Gadget support to see Inventra options
911#
912
913#
914# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
915#
916# CONFIG_USB_GADGET is not set
917
918#
919# OTG and related infrastructure
920#
921CONFIG_MMC=y
922# CONFIG_MMC_DEBUG is not set
923# CONFIG_MMC_UNSAFE_RESUME is not set
924
925#
926# MMC/SD/SDIO Card Drivers
927#
928CONFIG_MMC_BLOCK=y
929CONFIG_MMC_BLOCK_BOUNCE=y
930# CONFIG_SDIO_UART is not set
931# CONFIG_MMC_TEST is not set
932
933#
934# MMC/SD/SDIO Host Controller Drivers
935#
936CONFIG_MMC_SDHCI=y
937# CONFIG_MMC_SDHCI_OF is not set
938# CONFIG_MMC_SDHCI_PLTFM is not set
939# CONFIG_MMC_WBSD is not set
940# CONFIG_MMC_AT91 is not set
941# CONFIG_MMC_ATMELMCI is not set
942# CONFIG_MEMSTICK is not set
943# CONFIG_NEW_LEDS is not set
944# CONFIG_ACCESSIBILITY is not set
945# CONFIG_EDAC is not set
946CONFIG_RTC_LIB=y
947CONFIG_RTC_CLASS=y
948CONFIG_RTC_HCTOSYS=y
949CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
950# CONFIG_RTC_DEBUG is not set
951
952#
953# RTC interfaces
954#
955CONFIG_RTC_INTF_SYSFS=y
956CONFIG_RTC_INTF_PROC=y
957CONFIG_RTC_INTF_DEV=y
958# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
959# CONFIG_RTC_DRV_TEST is not set
960
961#
962# I2C RTC drivers
963#
964# CONFIG_RTC_DRV_DS1307 is not set
965# CONFIG_RTC_DRV_DS1374 is not set
966# CONFIG_RTC_DRV_DS1672 is not set
967# CONFIG_RTC_DRV_MAX6900 is not set
968# CONFIG_RTC_DRV_RS5C372 is not set
969# CONFIG_RTC_DRV_ISL1208 is not set
970# CONFIG_RTC_DRV_X1205 is not set
971# CONFIG_RTC_DRV_PCF8563 is not set
972# CONFIG_RTC_DRV_PCF8583 is not set
973# CONFIG_RTC_DRV_M41T80 is not set
974# CONFIG_RTC_DRV_S35390A is not set
975# CONFIG_RTC_DRV_FM3130 is not set
976# CONFIG_RTC_DRV_RX8581 is not set
977# CONFIG_RTC_DRV_RX8025 is not set
978
979#
980# SPI RTC drivers
981#
982
983#
984# Platform RTC drivers
985#
986# CONFIG_RTC_DRV_CMOS is not set
987# CONFIG_RTC_DRV_DS1286 is not set
988# CONFIG_RTC_DRV_DS1511 is not set
989# CONFIG_RTC_DRV_DS1553 is not set
990# CONFIG_RTC_DRV_DS1742 is not set
991# CONFIG_RTC_DRV_STK17TA8 is not set
992# CONFIG_RTC_DRV_M48T86 is not set
993# CONFIG_RTC_DRV_M48T35 is not set
994# CONFIG_RTC_DRV_M48T59 is not set
995# CONFIG_RTC_DRV_BQ4802 is not set
996# CONFIG_RTC_DRV_V3020 is not set
997
998#
999# on-CPU RTC drivers
1000#
1001CONFIG_RTC_DRV_GENERIC=y
1002# CONFIG_DMADEVICES is not set
1003# CONFIG_AUXDISPLAY is not set
1004# CONFIG_UIO is not set
1005
1006#
1007# TI VLYNQ
1008#
1009# CONFIG_STAGING is not set
1010
1011#
1012# File systems
1013#
1014CONFIG_EXT2_FS=y
1015# CONFIG_EXT2_FS_XATTR is not set
1016# CONFIG_EXT2_FS_XIP is not set
1017CONFIG_EXT3_FS=y
1018# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1019# CONFIG_EXT3_FS_XATTR is not set
1020# CONFIG_EXT4_FS is not set
1021CONFIG_JBD=y
1022# CONFIG_JBD_DEBUG is not set
1023# CONFIG_REISERFS_FS is not set
1024# CONFIG_JFS_FS is not set
1025# CONFIG_FS_POSIX_ACL is not set
1026# CONFIG_XFS_FS is not set
1027# CONFIG_GFS2_FS is not set
1028# CONFIG_OCFS2_FS is not set
1029# CONFIG_BTRFS_FS is not set
1030# CONFIG_NILFS2_FS is not set
1031CONFIG_FILE_LOCKING=y
1032CONFIG_FSNOTIFY=y
1033CONFIG_DNOTIFY=y
1034CONFIG_INOTIFY=y
1035CONFIG_INOTIFY_USER=y
1036# CONFIG_QUOTA is not set
1037# CONFIG_AUTOFS_FS is not set
1038# CONFIG_AUTOFS4_FS is not set
1039CONFIG_FUSE_FS=m
1040# CONFIG_CUSE is not set
1041
1042#
1043# Caches
1044#
1045# CONFIG_FSCACHE is not set
1046
1047#
1048# CD-ROM/DVD Filesystems
1049#
1050CONFIG_ISO9660_FS=y
1051CONFIG_JOLIET=y
1052# CONFIG_ZISOFS is not set
1053# CONFIG_UDF_FS is not set
1054
1055#
1056# DOS/FAT/NT Filesystems
1057#
1058CONFIG_FAT_FS=y
1059CONFIG_MSDOS_FS=y
1060CONFIG_VFAT_FS=y
1061CONFIG_FAT_DEFAULT_CODEPAGE=437
1062CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1063# CONFIG_NTFS_FS is not set
1064
1065#
1066# Pseudo filesystems
1067#
1068CONFIG_PROC_FS=y
1069CONFIG_PROC_KCORE=y
1070CONFIG_PROC_SYSCTL=y
1071# CONFIG_PROC_PAGE_MONITOR is not set
1072CONFIG_SYSFS=y
1073CONFIG_TMPFS=y
1074# CONFIG_TMPFS_POSIX_ACL is not set
1075# CONFIG_HUGETLB_PAGE is not set
1076# CONFIG_CONFIGFS_FS is not set
1077CONFIG_MISC_FILESYSTEMS=y
1078# CONFIG_ADFS_FS is not set
1079# CONFIG_AFFS_FS is not set
1080# CONFIG_HFS_FS is not set
1081# CONFIG_HFSPLUS_FS is not set
1082# CONFIG_BEFS_FS is not set
1083# CONFIG_BFS_FS is not set
1084# CONFIG_EFS_FS is not set
1085# CONFIG_CRAMFS is not set
1086# CONFIG_SQUASHFS is not set
1087# CONFIG_VXFS_FS is not set
1088# CONFIG_MINIX_FS is not set
1089# CONFIG_OMFS_FS is not set
1090# CONFIG_HPFS_FS is not set
1091# CONFIG_QNX4FS_FS is not set
1092# CONFIG_ROMFS_FS is not set
1093# CONFIG_SYSV_FS is not set
1094# CONFIG_UFS_FS is not set
1095CONFIG_NETWORK_FILESYSTEMS=y
1096CONFIG_NFS_FS=y
1097CONFIG_NFS_V3=y
1098# CONFIG_NFS_V3_ACL is not set
1099# CONFIG_NFS_V4 is not set
1100CONFIG_ROOT_NFS=y
1101# CONFIG_NFSD is not set
1102CONFIG_LOCKD=y
1103CONFIG_LOCKD_V4=y
1104CONFIG_NFS_COMMON=y
1105CONFIG_SUNRPC=y
1106# CONFIG_RPCSEC_GSS_KRB5 is not set
1107# CONFIG_RPCSEC_GSS_SPKM3 is not set
1108# CONFIG_SMB_FS is not set
1109CONFIG_CIFS=m
1110# CONFIG_CIFS_STATS is not set
1111# CONFIG_CIFS_WEAK_PW_HASH is not set
1112# CONFIG_CIFS_XATTR is not set
1113# CONFIG_CIFS_DEBUG2 is not set
1114# CONFIG_CIFS_EXPERIMENTAL is not set
1115# CONFIG_NCP_FS is not set
1116# CONFIG_CODA_FS is not set
1117# CONFIG_AFS_FS is not set
1118
1119#
1120# Partition Types
1121#
1122# CONFIG_PARTITION_ADVANCED is not set
1123CONFIG_MSDOS_PARTITION=y
1124CONFIG_NLS=y
1125CONFIG_NLS_DEFAULT="iso8859-1"
1126CONFIG_NLS_CODEPAGE_437=y
1127# CONFIG_NLS_CODEPAGE_737 is not set
1128# CONFIG_NLS_CODEPAGE_775 is not set
1129# CONFIG_NLS_CODEPAGE_850 is not set
1130# CONFIG_NLS_CODEPAGE_852 is not set
1131# CONFIG_NLS_CODEPAGE_855 is not set
1132# CONFIG_NLS_CODEPAGE_857 is not set
1133# CONFIG_NLS_CODEPAGE_860 is not set
1134# CONFIG_NLS_CODEPAGE_861 is not set
1135# CONFIG_NLS_CODEPAGE_862 is not set
1136# CONFIG_NLS_CODEPAGE_863 is not set
1137# CONFIG_NLS_CODEPAGE_864 is not set
1138# CONFIG_NLS_CODEPAGE_865 is not set
1139# CONFIG_NLS_CODEPAGE_866 is not set
1140# CONFIG_NLS_CODEPAGE_869 is not set
1141# CONFIG_NLS_CODEPAGE_936 is not set
1142# CONFIG_NLS_CODEPAGE_950 is not set
1143# CONFIG_NLS_CODEPAGE_932 is not set
1144# CONFIG_NLS_CODEPAGE_949 is not set
1145# CONFIG_NLS_CODEPAGE_874 is not set
1146# CONFIG_NLS_ISO8859_8 is not set
1147# CONFIG_NLS_CODEPAGE_1250 is not set
1148# CONFIG_NLS_CODEPAGE_1251 is not set
1149# CONFIG_NLS_ASCII is not set
1150CONFIG_NLS_ISO8859_1=y
1151# CONFIG_NLS_ISO8859_2 is not set
1152# CONFIG_NLS_ISO8859_3 is not set
1153# CONFIG_NLS_ISO8859_4 is not set
1154# CONFIG_NLS_ISO8859_5 is not set
1155# CONFIG_NLS_ISO8859_6 is not set
1156# CONFIG_NLS_ISO8859_7 is not set
1157# CONFIG_NLS_ISO8859_9 is not set
1158# CONFIG_NLS_ISO8859_13 is not set
1159# CONFIG_NLS_ISO8859_14 is not set
1160# CONFIG_NLS_ISO8859_15 is not set
1161# CONFIG_NLS_KOI8_R is not set
1162# CONFIG_NLS_KOI8_U is not set
1163# CONFIG_NLS_UTF8 is not set
1164# CONFIG_DLM is not set
1165CONFIG_BINARY_PRINTF=y
1166
1167#
1168# Library routines
1169#
1170CONFIG_BITREVERSE=y
1171CONFIG_GENERIC_FIND_LAST_BIT=y
1172CONFIG_CRC_CCITT=y
1173CONFIG_CRC16=y
1174# CONFIG_CRC_T10DIF is not set
1175# CONFIG_CRC_ITU_T is not set
1176CONFIG_CRC32=y
1177# CONFIG_CRC7 is not set
1178# CONFIG_LIBCRC32C is not set
1179CONFIG_ZLIB_INFLATE=y
1180CONFIG_DECOMPRESS_GZIP=y
1181CONFIG_HAS_IOMEM=y
1182CONFIG_HAS_IOPORT=y
1183CONFIG_HAS_DMA=y
1184CONFIG_HAVE_LMB=y
1185CONFIG_NLATTR=y
1186CONFIG_GENERIC_ATOMIC64=y
1187
1188#
1189# Kernel hacking
1190#
1191CONFIG_PRINTK_TIME=y
1192CONFIG_ENABLE_WARN_DEPRECATED=y
1193CONFIG_ENABLE_MUST_CHECK=y
1194CONFIG_FRAME_WARN=1024
1195CONFIG_MAGIC_SYSRQ=y
1196# CONFIG_STRIP_ASM_SYMS is not set
1197# CONFIG_UNUSED_SYMBOLS is not set
1198CONFIG_DEBUG_FS=y
1199# CONFIG_HEADERS_CHECK is not set
1200CONFIG_DEBUG_KERNEL=y
1201# CONFIG_DEBUG_SHIRQ is not set
1202CONFIG_DETECT_SOFTLOCKUP=y
1203# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1204CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1205# CONFIG_DETECT_HUNG_TASK is not set
1206CONFIG_SCHED_DEBUG=y
1207CONFIG_SCHEDSTATS=y
1208# CONFIG_TIMER_STATS is not set
1209# CONFIG_DEBUG_OBJECTS is not set
1210# CONFIG_DEBUG_SLAB is not set
1211# CONFIG_DEBUG_KMEMLEAK is not set
1212CONFIG_DEBUG_PREEMPT=y
1213# CONFIG_DEBUG_RT_MUTEXES is not set
1214# CONFIG_RT_MUTEX_TESTER is not set
1215CONFIG_DEBUG_SPINLOCK=y
1216CONFIG_DEBUG_MUTEXES=y
1217# CONFIG_DEBUG_LOCK_ALLOC is not set
1218# CONFIG_PROVE_LOCKING is not set
1219# CONFIG_LOCK_STAT is not set
1220CONFIG_DEBUG_SPINLOCK_SLEEP=y
1221# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1222CONFIG_STACKTRACE=y
1223# CONFIG_DEBUG_KOBJECT is not set
1224CONFIG_DEBUG_BUGVERBOSE=y
1225# CONFIG_DEBUG_INFO is not set
1226# CONFIG_DEBUG_VM is not set
1227# CONFIG_DEBUG_WRITECOUNT is not set
1228# CONFIG_DEBUG_MEMORY_INIT is not set
1229# CONFIG_DEBUG_LIST is not set
1230# CONFIG_DEBUG_SG is not set
1231# CONFIG_DEBUG_NOTIFIERS is not set
1232# CONFIG_DEBUG_CREDENTIALS is not set
1233# CONFIG_RCU_TORTURE_TEST is not set
1234# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1235# CONFIG_BACKTRACE_SELF_TEST is not set
1236# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1237# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1238# CONFIG_FAULT_INJECTION is not set
1239CONFIG_LATENCYTOP=y
1240CONFIG_SYSCTL_SYSCALL_CHECK=y
1241# CONFIG_DEBUG_PAGEALLOC is not set
1242CONFIG_NOP_TRACER=y
1243CONFIG_HAVE_FUNCTION_TRACER=y
1244CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1245CONFIG_HAVE_DYNAMIC_FTRACE=y
1246CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1247CONFIG_TRACER_MAX_TRACE=y
1248CONFIG_RING_BUFFER=y
1249CONFIG_EVENT_TRACING=y
1250CONFIG_CONTEXT_SWITCH_TRACER=y
1251CONFIG_TRACING=y
1252CONFIG_GENERIC_TRACER=y
1253CONFIG_TRACING_SUPPORT=y
1254CONFIG_FTRACE=y
1255# CONFIG_FUNCTION_TRACER is not set
1256# CONFIG_IRQSOFF_TRACER is not set
1257# CONFIG_PREEMPT_TRACER is not set
1258CONFIG_SCHED_TRACER=y
1259CONFIG_BOOT_TRACER=y
1260CONFIG_BRANCH_PROFILE_NONE=y
1261# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
1262# CONFIG_PROFILE_ALL_BRANCHES is not set
1263# CONFIG_STACK_TRACER is not set
1264# CONFIG_KMEMTRACE is not set
1265# CONFIG_WORKQUEUE_TRACER is not set
1266CONFIG_BLK_DEV_IO_TRACE=y
1267# CONFIG_FTRACE_STARTUP_TEST is not set
1268# CONFIG_RING_BUFFER_BENCHMARK is not set
1269# CONFIG_DYNAMIC_DEBUG is not set
1270CONFIG_DMA_API_DEBUG=y
1271# CONFIG_SAMPLES is not set
1272CONFIG_HAVE_ARCH_KGDB=y
1273# CONFIG_KGDB is not set
1274# CONFIG_PPC_DISABLE_WERROR is not set
1275CONFIG_PPC_WERROR=y
1276CONFIG_PRINT_STACK_DEPTH=64
1277# CONFIG_DEBUG_STACKOVERFLOW is not set
1278# CONFIG_DEBUG_STACK_USAGE is not set
1279# CONFIG_PPC_EMULATED_STATS is not set
1280# CONFIG_CODE_PATCHING_SELFTEST is not set
1281# CONFIG_FTR_FIXUP_SELFTEST is not set
1282# CONFIG_MSI_BITMAP_SELFTEST is not set
1283# CONFIG_XMON is not set
1284# CONFIG_IRQSTACKS is not set
1285# CONFIG_VIRQ_DEBUG is not set
1286# CONFIG_BDI_SWITCH is not set
1287# CONFIG_BOOTX_TEXT is not set
1288CONFIG_PPC_EARLY_DEBUG=y
1289# CONFIG_PPC_EARLY_DEBUG_LPAR is not set
1290# CONFIG_PPC_EARLY_DEBUG_G5 is not set
1291# CONFIG_PPC_EARLY_DEBUG_RTAS_PANEL is not set
1292# CONFIG_PPC_EARLY_DEBUG_RTAS_CONSOLE is not set
1293# CONFIG_PPC_EARLY_DEBUG_MAPLE is not set
1294# CONFIG_PPC_EARLY_DEBUG_ISERIES is not set
1295# CONFIG_PPC_EARLY_DEBUG_PAS_REALMODE is not set
1296# CONFIG_PPC_EARLY_DEBUG_BEAT is not set
1297# CONFIG_PPC_EARLY_DEBUG_44x is not set
1298# CONFIG_PPC_EARLY_DEBUG_40x is not set
1299# CONFIG_PPC_EARLY_DEBUG_CPM is not set
1300CONFIG_PPC_EARLY_DEBUG_USBGECKO=y
1301
1302#
1303# Security options
1304#
1305# CONFIG_KEYS is not set
1306# CONFIG_SECURITY is not set
1307# CONFIG_SECURITYFS is not set
1308# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1309CONFIG_CRYPTO=y
1310
1311#
1312# Crypto core or helper
1313#
1314CONFIG_CRYPTO_ALGAPI=y
1315CONFIG_CRYPTO_ALGAPI2=y
1316CONFIG_CRYPTO_AEAD2=y
1317CONFIG_CRYPTO_BLKCIPHER=y
1318CONFIG_CRYPTO_BLKCIPHER2=y
1319CONFIG_CRYPTO_HASH2=y
1320CONFIG_CRYPTO_RNG2=y
1321CONFIG_CRYPTO_PCOMP=y
1322CONFIG_CRYPTO_MANAGER=y
1323CONFIG_CRYPTO_MANAGER2=y
1324# CONFIG_CRYPTO_GF128MUL is not set
1325# CONFIG_CRYPTO_NULL is not set
1326CONFIG_CRYPTO_WORKQUEUE=y
1327# CONFIG_CRYPTO_CRYPTD is not set
1328# CONFIG_CRYPTO_AUTHENC is not set
1329# CONFIG_CRYPTO_TEST is not set
1330
1331#
1332# Authenticated Encryption with Associated Data
1333#
1334# CONFIG_CRYPTO_CCM is not set
1335# CONFIG_CRYPTO_GCM is not set
1336# CONFIG_CRYPTO_SEQIV is not set
1337
1338#
1339# Block modes
1340#
1341# CONFIG_CRYPTO_CBC is not set
1342# CONFIG_CRYPTO_CTR is not set
1343# CONFIG_CRYPTO_CTS is not set
1344CONFIG_CRYPTO_ECB=y
1345# CONFIG_CRYPTO_LRW is not set
1346# CONFIG_CRYPTO_PCBC is not set
1347# CONFIG_CRYPTO_XTS is not set
1348
1349#
1350# Hash modes
1351#
1352# CONFIG_CRYPTO_HMAC is not set
1353# CONFIG_CRYPTO_XCBC is not set
1354# CONFIG_CRYPTO_VMAC is not set
1355
1356#
1357# Digest
1358#
1359# CONFIG_CRYPTO_CRC32C is not set
1360# CONFIG_CRYPTO_GHASH is not set
1361# CONFIG_CRYPTO_MD4 is not set
1362# CONFIG_CRYPTO_MD5 is not set
1363# CONFIG_CRYPTO_MICHAEL_MIC is not set
1364# CONFIG_CRYPTO_RMD128 is not set
1365# CONFIG_CRYPTO_RMD160 is not set
1366# CONFIG_CRYPTO_RMD256 is not set
1367# CONFIG_CRYPTO_RMD320 is not set
1368# CONFIG_CRYPTO_SHA1 is not set
1369# CONFIG_CRYPTO_SHA256 is not set
1370# CONFIG_CRYPTO_SHA512 is not set
1371# CONFIG_CRYPTO_TGR192 is not set
1372# CONFIG_CRYPTO_WP512 is not set
1373
1374#
1375# Ciphers
1376#
1377CONFIG_CRYPTO_AES=y
1378# CONFIG_CRYPTO_ANUBIS is not set
1379CONFIG_CRYPTO_ARC4=y
1380# CONFIG_CRYPTO_BLOWFISH is not set
1381# CONFIG_CRYPTO_CAMELLIA is not set
1382# CONFIG_CRYPTO_CAST5 is not set
1383# CONFIG_CRYPTO_CAST6 is not set
1384# CONFIG_CRYPTO_DES is not set
1385# CONFIG_CRYPTO_FCRYPT is not set
1386# CONFIG_CRYPTO_KHAZAD is not set
1387# CONFIG_CRYPTO_SALSA20 is not set
1388# CONFIG_CRYPTO_SEED is not set
1389# CONFIG_CRYPTO_SERPENT is not set
1390# CONFIG_CRYPTO_TEA is not set
1391# CONFIG_CRYPTO_TWOFISH is not set
1392
1393#
1394# Compression
1395#
1396# CONFIG_CRYPTO_DEFLATE is not set
1397# CONFIG_CRYPTO_ZLIB is not set
1398# CONFIG_CRYPTO_LZO is not set
1399
1400#
1401# Random Number Generation
1402#
1403# CONFIG_CRYPTO_ANSI_CPRNG is not set
1404# CONFIG_CRYPTO_HW is not set
1405# CONFIG_PPC_CLOCK is not set
1406# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/include/asm/fixmap.h b/arch/powerpc/include/asm/fixmap.h
index f1f4e23a84e9..5c2c0233175e 100644
--- a/arch/powerpc/include/asm/fixmap.h
+++ b/arch/powerpc/include/asm/fixmap.h
@@ -44,6 +44,9 @@
44 */ 44 */
45enum fixed_addresses { 45enum fixed_addresses {
46 FIX_HOLE, 46 FIX_HOLE,
47 /* reserve the top 128K for early debugging purposes */
48 FIX_EARLY_DEBUG_TOP = FIX_HOLE,
49 FIX_EARLY_DEBUG_BASE = FIX_EARLY_DEBUG_TOP+((128*1024)/PAGE_SIZE)-1,
47#ifdef CONFIG_HIGHMEM 50#ifdef CONFIG_HIGHMEM
48 FIX_KMAP_BEGIN, /* reserved pte's for temporary kernel mappings */ 51 FIX_KMAP_BEGIN, /* reserved pte's for temporary kernel mappings */
49 FIX_KMAP_END = FIX_KMAP_BEGIN+(KM_TYPE_NR*NR_CPUS)-1, 52 FIX_KMAP_END = FIX_KMAP_BEGIN+(KM_TYPE_NR*NR_CPUS)-1,
diff --git a/arch/powerpc/include/asm/udbg.h b/arch/powerpc/include/asm/udbg.h
index cd21e5e6b04f..11ae699135ba 100644
--- a/arch/powerpc/include/asm/udbg.h
+++ b/arch/powerpc/include/asm/udbg.h
@@ -51,6 +51,7 @@ extern void __init udbg_init_btext(void);
51extern void __init udbg_init_44x_as1(void); 51extern void __init udbg_init_44x_as1(void);
52extern void __init udbg_init_40x_realmode(void); 52extern void __init udbg_init_40x_realmode(void);
53extern void __init udbg_init_cpm(void); 53extern void __init udbg_init_cpm(void);
54extern void __init udbg_init_usbgecko(void);
54 55
55#endif /* __KERNEL__ */ 56#endif /* __KERNEL__ */
56#endif /* _ASM_POWERPC_UDBG_H */ 57#endif /* _ASM_POWERPC_UDBG_H */
diff --git a/arch/powerpc/kernel/cputable.c b/arch/powerpc/kernel/cputable.c
index 03c862b6a9c4..2fc82bac3bbc 100644
--- a/arch/powerpc/kernel/cputable.c
+++ b/arch/powerpc/kernel/cputable.c
@@ -697,9 +697,9 @@ static struct cpu_spec __initdata cpu_specs[] = {
697 .machine_check = machine_check_generic, 697 .machine_check = machine_check_generic,
698 .platform = "ppc750", 698 .platform = "ppc750",
699 }, 699 },
700 { /* 750CL */ 700 { /* 750CL (and "Broadway") */
701 .pvr_mask = 0xfffff0f0, 701 .pvr_mask = 0xfffff0e0,
702 .pvr_value = 0x00087010, 702 .pvr_value = 0x00087000,
703 .cpu_name = "750CL", 703 .cpu_name = "750CL",
704 .cpu_features = CPU_FTRS_750CL, 704 .cpu_features = CPU_FTRS_750CL,
705 .cpu_user_features = COMMON_USER | PPC_FEATURE_PPC_LE, 705 .cpu_user_features = COMMON_USER | PPC_FEATURE_PPC_LE,
diff --git a/arch/powerpc/kernel/head_32.S b/arch/powerpc/kernel/head_32.S
index 829c3fe7c5a2..e025e89fe93e 100644
--- a/arch/powerpc/kernel/head_32.S
+++ b/arch/powerpc/kernel/head_32.S
@@ -164,6 +164,9 @@ __after_mmu_off:
164#ifdef CONFIG_PPC_EARLY_DEBUG_CPM 164#ifdef CONFIG_PPC_EARLY_DEBUG_CPM
165 bl setup_cpm_bat 165 bl setup_cpm_bat
166#endif 166#endif
167#ifdef CONFIG_PPC_EARLY_DEBUG_USBGECKO
168 bl setup_usbgecko_bat
169#endif
167 170
168/* 171/*
169 * Call setup_cpu for CPU 0 and initialize 6xx Idle 172 * Call setup_cpu for CPU 0 and initialize 6xx Idle
@@ -1203,6 +1206,28 @@ setup_cpm_bat:
1203 blr 1206 blr
1204#endif 1207#endif
1205 1208
1209#ifdef CONFIG_PPC_EARLY_DEBUG_USBGECKO
1210setup_usbgecko_bat:
1211 /* prepare a BAT for early io */
1212#if defined(CONFIG_GAMECUBE)
1213 lis r8, 0x0c00
1214#elif defined(CONFIG_WII)
1215 lis r8, 0x0d00
1216#else
1217#error Invalid platform for USB Gecko based early debugging.
1218#endif
1219 /*
1220 * The virtual address used must match the virtual address
1221 * associated to the fixmap entry FIX_EARLY_DEBUG_BASE.
1222 */
1223 lis r11, 0xfffe /* top 128K */
1224 ori r8, r8, 0x002a /* uncached, guarded ,rw */
1225 ori r11, r11, 0x2 /* 128K, Vs=1, Vp=0 */
1226 mtspr SPRN_DBAT1L, r8
1227 mtspr SPRN_DBAT1U, r11
1228 blr
1229#endif
1230
1206#ifdef CONFIG_8260 1231#ifdef CONFIG_8260
1207/* Jump into the system reset for the rom. 1232/* Jump into the system reset for the rom.
1208 * We first disable the MMU, and then jump to the ROM reset address. 1233 * We first disable the MMU, and then jump to the ROM reset address.
diff --git a/arch/powerpc/kernel/udbg.c b/arch/powerpc/kernel/udbg.c
index fc9af47e2128..e39cad83c884 100644
--- a/arch/powerpc/kernel/udbg.c
+++ b/arch/powerpc/kernel/udbg.c
@@ -60,6 +60,8 @@ void __init udbg_early_init(void)
60 udbg_init_40x_realmode(); 60 udbg_init_40x_realmode();
61#elif defined(CONFIG_PPC_EARLY_DEBUG_CPM) 61#elif defined(CONFIG_PPC_EARLY_DEBUG_CPM)
62 udbg_init_cpm(); 62 udbg_init_cpm();
63#elif defined(CONFIG_PPC_EARLY_DEBUG_USBGECKO)
64 udbg_init_usbgecko();
63#endif 65#endif
64 66
65#ifdef CONFIG_PPC_EARLY_DEBUG 67#ifdef CONFIG_PPC_EARLY_DEBUG
diff --git a/arch/powerpc/mm/40x_mmu.c b/arch/powerpc/mm/40x_mmu.c
index f5e7b9ce63dd..08dfa8e6d86f 100644
--- a/arch/powerpc/mm/40x_mmu.c
+++ b/arch/powerpc/mm/40x_mmu.c
@@ -91,7 +91,7 @@ void __init MMU_init_hw(void)
91#define LARGE_PAGE_SIZE_16M (1<<24) 91#define LARGE_PAGE_SIZE_16M (1<<24)
92#define LARGE_PAGE_SIZE_4M (1<<22) 92#define LARGE_PAGE_SIZE_4M (1<<22)
93 93
94unsigned long __init mmu_mapin_ram(void) 94unsigned long __init mmu_mapin_ram(unsigned long top)
95{ 95{
96 unsigned long v, s, mapped; 96 unsigned long v, s, mapped;
97 phys_addr_t p; 97 phys_addr_t p;
diff --git a/arch/powerpc/mm/44x_mmu.c b/arch/powerpc/mm/44x_mmu.c
index 98052ac96580..3986264b0993 100644
--- a/arch/powerpc/mm/44x_mmu.c
+++ b/arch/powerpc/mm/44x_mmu.c
@@ -88,7 +88,7 @@ void __init MMU_init_hw(void)
88 flush_instruction_cache(); 88 flush_instruction_cache();
89} 89}
90 90
91unsigned long __init mmu_mapin_ram(void) 91unsigned long __init mmu_mapin_ram(unsigned long top)
92{ 92{
93 unsigned long addr; 93 unsigned long addr;
94 94
diff --git a/arch/powerpc/mm/fsl_booke_mmu.c b/arch/powerpc/mm/fsl_booke_mmu.c
index fcfcb6e976c7..c5394728bf2e 100644
--- a/arch/powerpc/mm/fsl_booke_mmu.c
+++ b/arch/powerpc/mm/fsl_booke_mmu.c
@@ -207,7 +207,7 @@ unsigned long map_mem_in_cams(unsigned long ram, int max_cam_idx)
207 return amount_mapped; 207 return amount_mapped;
208} 208}
209 209
210unsigned long __init mmu_mapin_ram(void) 210unsigned long __init mmu_mapin_ram(unsigned long top)
211{ 211{
212 return tlbcam_addrs[tlbcam_index - 1].limit - PAGE_OFFSET + 1; 212 return tlbcam_addrs[tlbcam_index - 1].limit - PAGE_OFFSET + 1;
213} 213}
diff --git a/arch/powerpc/mm/init_32.c b/arch/powerpc/mm/init_32.c
index 9ddcfb4dc139..4ec900af332f 100644
--- a/arch/powerpc/mm/init_32.c
+++ b/arch/powerpc/mm/init_32.c
@@ -82,6 +82,11 @@ extern struct task_struct *current_set[NR_CPUS];
82int __map_without_bats; 82int __map_without_bats;
83int __map_without_ltlbs; 83int __map_without_ltlbs;
84 84
85/*
86 * This tells the system to allow ioremapping memory marked as reserved.
87 */
88int __allow_ioremap_reserved;
89
85/* max amount of low RAM to map in */ 90/* max amount of low RAM to map in */
86unsigned long __max_low_memory = MAX_LOW_MEM; 91unsigned long __max_low_memory = MAX_LOW_MEM;
87 92
@@ -131,9 +136,13 @@ void __init MMU_init(void)
131 MMU_setup(); 136 MMU_setup();
132 137
133 if (lmb.memory.cnt > 1) { 138 if (lmb.memory.cnt > 1) {
139#ifndef CONFIG_WII
134 lmb.memory.cnt = 1; 140 lmb.memory.cnt = 1;
135 lmb_analyze(); 141 lmb_analyze();
136 printk(KERN_WARNING "Only using first contiguous memory region"); 142 printk(KERN_WARNING "Only using first contiguous memory region");
143#else
144 wii_memory_fixups();
145#endif
137 } 146 }
138 147
139 total_lowmem = total_memory = lmb_end_of_DRAM() - memstart_addr; 148 total_lowmem = total_memory = lmb_end_of_DRAM() - memstart_addr;
diff --git a/arch/powerpc/mm/mmu_decl.h b/arch/powerpc/mm/mmu_decl.h
index e27a990af42d..d49a77503e19 100644
--- a/arch/powerpc/mm/mmu_decl.h
+++ b/arch/powerpc/mm/mmu_decl.h
@@ -104,6 +104,7 @@ extern void setbat(int index, unsigned long virt, phys_addr_t phys,
104 unsigned int size, int flags); 104 unsigned int size, int flags);
105 105
106extern int __map_without_bats; 106extern int __map_without_bats;
107extern int __allow_ioremap_reserved;
107extern unsigned long ioremap_base; 108extern unsigned long ioremap_base;
108extern unsigned int rtas_data, rtas_size; 109extern unsigned int rtas_data, rtas_size;
109 110
@@ -125,24 +126,32 @@ extern phys_addr_t total_lowmem;
125extern phys_addr_t memstart_addr; 126extern phys_addr_t memstart_addr;
126extern phys_addr_t lowmem_end_addr; 127extern phys_addr_t lowmem_end_addr;
127 128
129#ifdef CONFIG_WII
130extern unsigned long wii_hole_start;
131extern unsigned long wii_hole_size;
132
133extern unsigned long wii_mmu_mapin_mem2(unsigned long top);
134extern void wii_memory_fixups(void);
135#endif
136
128/* ...and now those things that may be slightly different between processor 137/* ...and now those things that may be slightly different between processor
129 * architectures. -- Dan 138 * architectures. -- Dan
130 */ 139 */
131#if defined(CONFIG_8xx) 140#if defined(CONFIG_8xx)
132#define MMU_init_hw() do { } while(0) 141#define MMU_init_hw() do { } while(0)
133#define mmu_mapin_ram() (0UL) 142#define mmu_mapin_ram(top) (0UL)
134 143
135#elif defined(CONFIG_4xx) 144#elif defined(CONFIG_4xx)
136extern void MMU_init_hw(void); 145extern void MMU_init_hw(void);
137extern unsigned long mmu_mapin_ram(void); 146extern unsigned long mmu_mapin_ram(unsigned long top);
138 147
139#elif defined(CONFIG_FSL_BOOKE) 148#elif defined(CONFIG_FSL_BOOKE)
140extern void MMU_init_hw(void); 149extern void MMU_init_hw(void);
141extern unsigned long mmu_mapin_ram(void); 150extern unsigned long mmu_mapin_ram(unsigned long top);
142extern void adjust_total_lowmem(void); 151extern void adjust_total_lowmem(void);
143 152
144#elif defined(CONFIG_PPC32) 153#elif defined(CONFIG_PPC32)
145/* anything 32-bit except 4xx or 8xx */ 154/* anything 32-bit except 4xx or 8xx */
146extern void MMU_init_hw(void); 155extern void MMU_init_hw(void);
147extern unsigned long mmu_mapin_ram(void); 156extern unsigned long mmu_mapin_ram(unsigned long top);
148#endif 157#endif
diff --git a/arch/powerpc/mm/pgtable_32.c b/arch/powerpc/mm/pgtable_32.c
index cb96cb2e17cc..177e4038b43c 100644
--- a/arch/powerpc/mm/pgtable_32.c
+++ b/arch/powerpc/mm/pgtable_32.c
@@ -26,6 +26,7 @@
26#include <linux/vmalloc.h> 26#include <linux/vmalloc.h>
27#include <linux/init.h> 27#include <linux/init.h>
28#include <linux/highmem.h> 28#include <linux/highmem.h>
29#include <linux/lmb.h>
29 30
30#include <asm/pgtable.h> 31#include <asm/pgtable.h>
31#include <asm/pgalloc.h> 32#include <asm/pgalloc.h>
@@ -191,7 +192,8 @@ __ioremap_caller(phys_addr_t addr, unsigned long size, unsigned long flags,
191 * Don't allow anybody to remap normal RAM that we're using. 192 * Don't allow anybody to remap normal RAM that we're using.
192 * mem_init() sets high_memory so only do the check after that. 193 * mem_init() sets high_memory so only do the check after that.
193 */ 194 */
194 if (mem_init_done && (p < virt_to_phys(high_memory))) { 195 if (mem_init_done && (p < virt_to_phys(high_memory)) &&
196 !(__allow_ioremap_reserved && lmb_is_region_reserved(p, size))) {
195 printk("__ioremap(): phys addr 0x%llx is RAM lr %p\n", 197 printk("__ioremap(): phys addr 0x%llx is RAM lr %p\n",
196 (unsigned long long)p, __builtin_return_address(0)); 198 (unsigned long long)p, __builtin_return_address(0));
197 return NULL; 199 return NULL;
@@ -283,18 +285,18 @@ int map_page(unsigned long va, phys_addr_t pa, int flags)
283} 285}
284 286
285/* 287/*
286 * Map in a big chunk of physical memory starting at PAGE_OFFSET. 288 * Map in a chunk of physical memory starting at start.
287 */ 289 */
288void __init mapin_ram(void) 290void __init __mapin_ram_chunk(unsigned long offset, unsigned long top)
289{ 291{
290 unsigned long v, s, f; 292 unsigned long v, s, f;
291 phys_addr_t p; 293 phys_addr_t p;
292 int ktext; 294 int ktext;
293 295
294 s = mmu_mapin_ram(); 296 s = offset;
295 v = PAGE_OFFSET + s; 297 v = PAGE_OFFSET + s;
296 p = memstart_addr + s; 298 p = memstart_addr + s;
297 for (; s < total_lowmem; s += PAGE_SIZE) { 299 for (; s < top; s += PAGE_SIZE) {
298 ktext = ((char *) v >= _stext && (char *) v < etext); 300 ktext = ((char *) v >= _stext && (char *) v < etext);
299 f = ktext ? PAGE_KERNEL_TEXT : PAGE_KERNEL; 301 f = ktext ? PAGE_KERNEL_TEXT : PAGE_KERNEL;
300 map_page(v, p, f); 302 map_page(v, p, f);
@@ -307,6 +309,30 @@ void __init mapin_ram(void)
307 } 309 }
308} 310}
309 311
312void __init mapin_ram(void)
313{
314 unsigned long s, top;
315
316#ifndef CONFIG_WII
317 top = total_lowmem;
318 s = mmu_mapin_ram(top);
319 __mapin_ram_chunk(s, top);
320#else
321 if (!wii_hole_size) {
322 s = mmu_mapin_ram(total_lowmem);
323 __mapin_ram_chunk(s, total_lowmem);
324 } else {
325 top = wii_hole_start;
326 s = mmu_mapin_ram(top);
327 __mapin_ram_chunk(s, top);
328
329 top = lmb_end_of_DRAM();
330 s = wii_mmu_mapin_mem2(top);
331 __mapin_ram_chunk(s, top);
332 }
333#endif
334}
335
310/* Scan the real Linux page tables and return a PTE pointer for 336/* Scan the real Linux page tables and return a PTE pointer for
311 * a virtual address in a context. 337 * a virtual address in a context.
312 * Returns true (1) if PTE was found, zero otherwise. The pointer to 338 * Returns true (1) if PTE was found, zero otherwise. The pointer to
diff --git a/arch/powerpc/mm/ppc_mmu_32.c b/arch/powerpc/mm/ppc_mmu_32.c
index 2d2a87e10154..f11c2cdcb0fe 100644
--- a/arch/powerpc/mm/ppc_mmu_32.c
+++ b/arch/powerpc/mm/ppc_mmu_32.c
@@ -72,7 +72,7 @@ unsigned long p_mapped_by_bats(phys_addr_t pa)
72 return 0; 72 return 0;
73} 73}
74 74
75unsigned long __init mmu_mapin_ram(void) 75unsigned long __init mmu_mapin_ram(unsigned long top)
76{ 76{
77 unsigned long tot, bl, done; 77 unsigned long tot, bl, done;
78 unsigned long max_size = (256<<20); 78 unsigned long max_size = (256<<20);
@@ -86,7 +86,7 @@ unsigned long __init mmu_mapin_ram(void)
86 86
87 /* Make sure we don't map a block larger than the 87 /* Make sure we don't map a block larger than the
88 smallest alignment of the physical address. */ 88 smallest alignment of the physical address. */
89 tot = total_lowmem; 89 tot = top;
90 for (bl = 128<<10; bl < max_size; bl <<= 1) { 90 for (bl = 128<<10; bl < max_size; bl <<= 1) {
91 if (bl * 2 > tot) 91 if (bl * 2 > tot)
92 break; 92 break;
diff --git a/arch/powerpc/platforms/Kconfig.cputype b/arch/powerpc/platforms/Kconfig.cputype
index 2eab27a94cc9..fa0f690d3867 100644
--- a/arch/powerpc/platforms/Kconfig.cputype
+++ b/arch/powerpc/platforms/Kconfig.cputype
@@ -311,7 +311,7 @@ config NR_CPUS
311 311
312config NOT_COHERENT_CACHE 312config NOT_COHERENT_CACHE
313 bool 313 bool
314 depends on 4xx || 8xx || E200 || PPC_MPC512x 314 depends on 4xx || 8xx || E200 || PPC_MPC512x || GAMECUBE_COMMON
315 default y 315 default y
316 316
317config CHECK_CACHE_COHERENCY 317config CHECK_CACHE_COHERENCY
diff --git a/arch/powerpc/platforms/embedded6xx/Kconfig b/arch/powerpc/platforms/embedded6xx/Kconfig
index 291ac9d8cbee..524d971a1478 100644
--- a/arch/powerpc/platforms/embedded6xx/Kconfig
+++ b/arch/powerpc/platforms/embedded6xx/Kconfig
@@ -90,3 +90,36 @@ config MPC10X_OPENPIC
90config MPC10X_STORE_GATHERING 90config MPC10X_STORE_GATHERING
91 bool "Enable MPC10x store gathering" 91 bool "Enable MPC10x store gathering"
92 depends on MPC10X_BRIDGE 92 depends on MPC10X_BRIDGE
93
94config GAMECUBE_COMMON
95 bool
96
97config USBGECKO_UDBG
98 bool "USB Gecko udbg console for the Nintendo GameCube/Wii"
99 depends on GAMECUBE_COMMON
100 help
101 If you say yes to this option, support will be included for the
102 USB Gecko adapter as an udbg console.
103 The USB Gecko is a EXI to USB Serial converter that can be plugged
104 into a memcard slot in the Nintendo GameCube/Wii.
105
106 This driver bypasses the EXI layer completely.
107
108 If in doubt, say N here.
109
110config GAMECUBE
111 bool "Nintendo-GameCube"
112 depends on EMBEDDED6xx
113 select GAMECUBE_COMMON
114 help
115 Select GAMECUBE if configuring for the Nintendo GameCube.
116 More information at: <http://gc-linux.sourceforge.net/>
117
118config WII
119 bool "Nintendo-Wii"
120 depends on EMBEDDED6xx
121 select GAMECUBE_COMMON
122 help
123 Select WII if configuring for the Nintendo Wii.
124 More information at: <http://gc-linux.sourceforge.net/>
125
diff --git a/arch/powerpc/platforms/embedded6xx/Makefile b/arch/powerpc/platforms/embedded6xx/Makefile
index 0773c08bd444..66c23e423f40 100644
--- a/arch/powerpc/platforms/embedded6xx/Makefile
+++ b/arch/powerpc/platforms/embedded6xx/Makefile
@@ -7,3 +7,7 @@ obj-$(CONFIG_STORCENTER) += storcenter.o
7obj-$(CONFIG_PPC_HOLLY) += holly.o 7obj-$(CONFIG_PPC_HOLLY) += holly.o
8obj-$(CONFIG_PPC_PRPMC2800) += prpmc2800.o 8obj-$(CONFIG_PPC_PRPMC2800) += prpmc2800.o
9obj-$(CONFIG_PPC_C2K) += c2k.o 9obj-$(CONFIG_PPC_C2K) += c2k.o
10obj-$(CONFIG_USBGECKO_UDBG) += usbgecko_udbg.o
11obj-$(CONFIG_GAMECUBE_COMMON) += flipper-pic.o
12obj-$(CONFIG_GAMECUBE) += gamecube.o
13obj-$(CONFIG_WII) += wii.o hlwd-pic.o
diff --git a/arch/powerpc/platforms/embedded6xx/flipper-pic.c b/arch/powerpc/platforms/embedded6xx/flipper-pic.c
new file mode 100644
index 000000000000..d5963285e3be
--- /dev/null
+++ b/arch/powerpc/platforms/embedded6xx/flipper-pic.c
@@ -0,0 +1,263 @@
1/*
2 * arch/powerpc/platforms/embedded6xx/flipper-pic.c
3 *
4 * Nintendo GameCube/Wii "Flipper" interrupt controller support.
5 * Copyright (C) 2004-2009 The GameCube Linux Team
6 * Copyright (C) 2007,2008,2009 Albert Herranz
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License
10 * as published by the Free Software Foundation; either version 2
11 * of the License, or (at your option) any later version.
12 *
13 */
14#define DRV_MODULE_NAME "flipper-pic"
15#define pr_fmt(fmt) DRV_MODULE_NAME ": " fmt
16
17#include <linux/kernel.h>
18#include <linux/init.h>
19#include <linux/irq.h>
20#include <linux/of.h>
21#include <asm/io.h>
22
23#include "flipper-pic.h"
24
25#define FLIPPER_NR_IRQS 32
26
27/*
28 * Each interrupt has a corresponding bit in both
29 * the Interrupt Cause (ICR) and Interrupt Mask (IMR) registers.
30 *
31 * Enabling/disabling an interrupt line involves setting/clearing
32 * the corresponding bit in IMR.
33 * Except for the RSW interrupt, all interrupts get deasserted automatically
34 * when the source deasserts the interrupt.
35 */
36#define FLIPPER_ICR 0x00
37#define FLIPPER_ICR_RSS (1<<16) /* reset switch state */
38
39#define FLIPPER_IMR 0x04
40
41#define FLIPPER_RESET 0x24
42
43
44/*
45 * IRQ chip hooks.
46 *
47 */
48
49static void flipper_pic_mask_and_ack(unsigned int virq)
50{
51 int irq = virq_to_hw(virq);
52 void __iomem *io_base = get_irq_chip_data(virq);
53 u32 mask = 1 << irq;
54
55 clrbits32(io_base + FLIPPER_IMR, mask);
56 /* this is at least needed for RSW */
57 out_be32(io_base + FLIPPER_ICR, mask);
58}
59
60static void flipper_pic_ack(unsigned int virq)
61{
62 int irq = virq_to_hw(virq);
63 void __iomem *io_base = get_irq_chip_data(virq);
64
65 /* this is at least needed for RSW */
66 out_be32(io_base + FLIPPER_ICR, 1 << irq);
67}
68
69static void flipper_pic_mask(unsigned int virq)
70{
71 int irq = virq_to_hw(virq);
72 void __iomem *io_base = get_irq_chip_data(virq);
73
74 clrbits32(io_base + FLIPPER_IMR, 1 << irq);
75}
76
77static void flipper_pic_unmask(unsigned int virq)
78{
79 int irq = virq_to_hw(virq);
80 void __iomem *io_base = get_irq_chip_data(virq);
81
82 setbits32(io_base + FLIPPER_IMR, 1 << irq);
83}
84
85
86static struct irq_chip flipper_pic = {
87 .name = "flipper-pic",
88 .ack = flipper_pic_ack,
89 .mask_ack = flipper_pic_mask_and_ack,
90 .mask = flipper_pic_mask,
91 .unmask = flipper_pic_unmask,
92};
93
94/*
95 * IRQ host hooks.
96 *
97 */
98
99static struct irq_host *flipper_irq_host;
100
101static int flipper_pic_map(struct irq_host *h, unsigned int virq,
102 irq_hw_number_t hwirq)
103{
104 set_irq_chip_data(virq, h->host_data);
105 get_irq_desc(virq)->status |= IRQ_LEVEL;
106 set_irq_chip_and_handler(virq, &flipper_pic, handle_level_irq);
107 return 0;
108}
109
110static void flipper_pic_unmap(struct irq_host *h, unsigned int irq)
111{
112 set_irq_chip_data(irq, NULL);
113 set_irq_chip(irq, NULL);
114}
115
116static int flipper_pic_match(struct irq_host *h, struct device_node *np)
117{
118 return 1;
119}
120
121
122static struct irq_host_ops flipper_irq_host_ops = {
123 .map = flipper_pic_map,
124 .unmap = flipper_pic_unmap,
125 .match = flipper_pic_match,
126};
127
128/*
129 * Platform hooks.
130 *
131 */
132
133static void __flipper_quiesce(void __iomem *io_base)
134{
135 /* mask and ack all IRQs */
136 out_be32(io_base + FLIPPER_IMR, 0x00000000);
137 out_be32(io_base + FLIPPER_ICR, 0xffffffff);
138}
139
140struct irq_host * __init flipper_pic_init(struct device_node *np)
141{
142 struct device_node *pi;
143 struct irq_host *irq_host = NULL;
144 struct resource res;
145 void __iomem *io_base;
146 int retval;
147
148 pi = of_get_parent(np);
149 if (!pi) {
150 pr_err("no parent found\n");
151 goto out;
152 }
153 if (!of_device_is_compatible(pi, "nintendo,flipper-pi")) {
154 pr_err("unexpected parent compatible\n");
155 goto out;
156 }
157
158 retval = of_address_to_resource(pi, 0, &res);
159 if (retval) {
160 pr_err("no io memory range found\n");
161 goto out;
162 }
163 io_base = ioremap(res.start, resource_size(&res));
164
165 pr_info("controller at 0x%08x mapped to 0x%p\n", res.start, io_base);
166
167 __flipper_quiesce(io_base);
168
169 irq_host = irq_alloc_host(np, IRQ_HOST_MAP_LINEAR, FLIPPER_NR_IRQS,
170 &flipper_irq_host_ops, -1);
171 if (!irq_host) {
172 pr_err("failed to allocate irq_host\n");
173 return NULL;
174 }
175
176 irq_host->host_data = io_base;
177
178out:
179 return irq_host;
180}
181
182unsigned int flipper_pic_get_irq(void)
183{
184 void __iomem *io_base = flipper_irq_host->host_data;
185 int irq;
186 u32 irq_status;
187
188 irq_status = in_be32(io_base + FLIPPER_ICR) &
189 in_be32(io_base + FLIPPER_IMR);
190 if (irq_status == 0)
191 return NO_IRQ; /* no more IRQs pending */
192
193 irq = __ffs(irq_status);
194 return irq_linear_revmap(flipper_irq_host, irq);
195}
196
197/*
198 * Probe function.
199 *
200 */
201
202void __init flipper_pic_probe(void)
203{
204 struct device_node *np;
205
206 np = of_find_compatible_node(NULL, NULL, "nintendo,flipper-pic");
207 BUG_ON(!np);
208
209 flipper_irq_host = flipper_pic_init(np);
210 BUG_ON(!flipper_irq_host);
211
212 irq_set_default_host(flipper_irq_host);
213
214 of_node_put(np);
215}
216
217/*
218 * Misc functions related to the flipper chipset.
219 *
220 */
221
222/**
223 * flipper_quiesce() - quiesce flipper irq controller
224 *
225 * Mask and ack all interrupt sources.
226 *
227 */
228void flipper_quiesce(void)
229{
230 void __iomem *io_base = flipper_irq_host->host_data;
231
232 __flipper_quiesce(io_base);
233}
234
235/*
236 * Resets the platform.
237 */
238void flipper_platform_reset(void)
239{
240 void __iomem *io_base;
241
242 if (flipper_irq_host && flipper_irq_host->host_data) {
243 io_base = flipper_irq_host->host_data;
244 out_8(io_base + FLIPPER_RESET, 0x00);
245 }
246}
247
248/*
249 * Returns non-zero if the reset button is pressed.
250 */
251int flipper_is_reset_button_pressed(void)
252{
253 void __iomem *io_base;
254 u32 icr;
255
256 if (flipper_irq_host && flipper_irq_host->host_data) {
257 io_base = flipper_irq_host->host_data;
258 icr = in_be32(io_base + FLIPPER_ICR);
259 return !(icr & FLIPPER_ICR_RSS);
260 }
261 return 0;
262}
263
diff --git a/arch/powerpc/platforms/embedded6xx/flipper-pic.h b/arch/powerpc/platforms/embedded6xx/flipper-pic.h
new file mode 100644
index 000000000000..e339186b5663
--- /dev/null
+++ b/arch/powerpc/platforms/embedded6xx/flipper-pic.h
@@ -0,0 +1,25 @@
1/*
2 * arch/powerpc/platforms/embedded6xx/flipper-pic.h
3 *
4 * Nintendo GameCube/Wii "Flipper" interrupt controller support.
5 * Copyright (C) 2004-2009 The GameCube Linux Team
6 * Copyright (C) 2007,2008,2009 Albert Herranz
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License
10 * as published by the Free Software Foundation; either version 2
11 * of the License, or (at your option) any later version.
12 *
13 */
14
15#ifndef __FLIPPER_PIC_H
16#define __FLIPPER_PIC_H
17
18unsigned int flipper_pic_get_irq(void);
19void __init flipper_pic_probe(void);
20
21void flipper_quiesce(void);
22void flipper_platform_reset(void);
23int flipper_is_reset_button_pressed(void);
24
25#endif
diff --git a/arch/powerpc/platforms/embedded6xx/gamecube.c b/arch/powerpc/platforms/embedded6xx/gamecube.c
new file mode 100644
index 000000000000..1106fd99627f
--- /dev/null
+++ b/arch/powerpc/platforms/embedded6xx/gamecube.c
@@ -0,0 +1,118 @@
1/*
2 * arch/powerpc/platforms/embedded6xx/gamecube.c
3 *
4 * Nintendo GameCube board-specific support
5 * Copyright (C) 2004-2009 The GameCube Linux Team
6 * Copyright (C) 2007,2008,2009 Albert Herranz
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License
10 * as published by the Free Software Foundation; either version 2
11 * of the License, or (at your option) any later version.
12 *
13 */
14
15#include <linux/kernel.h>
16#include <linux/init.h>
17#include <linux/irq.h>
18#include <linux/kexec.h>
19#include <linux/seq_file.h>
20#include <linux/of_platform.h>
21
22#include <asm/io.h>
23#include <asm/machdep.h>
24#include <asm/prom.h>
25#include <asm/time.h>
26#include <asm/udbg.h>
27
28#include "flipper-pic.h"
29#include "usbgecko_udbg.h"
30
31
32static void gamecube_spin(void)
33{
34 /* spin until power button pressed */
35 for (;;)
36 cpu_relax();
37}
38
39static void gamecube_restart(char *cmd)
40{
41 local_irq_disable();
42 flipper_platform_reset();
43 gamecube_spin();
44}
45
46static void gamecube_power_off(void)
47{
48 local_irq_disable();
49 gamecube_spin();
50}
51
52static void gamecube_halt(void)
53{
54 gamecube_restart(NULL);
55}
56
57static void __init gamecube_init_early(void)
58{
59 ug_udbg_init();
60}
61
62static int __init gamecube_probe(void)
63{
64 unsigned long dt_root;
65
66 dt_root = of_get_flat_dt_root();
67 if (!of_flat_dt_is_compatible(dt_root, "nintendo,gamecube"))
68 return 0;
69
70 return 1;
71}
72
73static void gamecube_shutdown(void)
74{
75 flipper_quiesce();
76}
77
78#ifdef CONFIG_KEXEC
79static int gamecube_kexec_prepare(struct kimage *image)
80{
81 return 0;
82}
83#endif /* CONFIG_KEXEC */
84
85
86define_machine(gamecube) {
87 .name = "gamecube",
88 .probe = gamecube_probe,
89 .init_early = gamecube_init_early,
90 .restart = gamecube_restart,
91 .power_off = gamecube_power_off,
92 .halt = gamecube_halt,
93 .init_IRQ = flipper_pic_probe,
94 .get_irq = flipper_pic_get_irq,
95 .calibrate_decr = generic_calibrate_decr,
96 .progress = udbg_progress,
97 .machine_shutdown = gamecube_shutdown,
98#ifdef CONFIG_KEXEC
99 .machine_kexec_prepare = gamecube_kexec_prepare,
100#endif
101};
102
103
104static struct of_device_id gamecube_of_bus[] = {
105 { .compatible = "nintendo,flipper", },
106 { },
107};
108
109static int __init gamecube_device_probe(void)
110{
111 if (!machine_is(gamecube))
112 return 0;
113
114 of_platform_bus_probe(NULL, gamecube_of_bus, NULL);
115 return 0;
116}
117device_initcall(gamecube_device_probe);
118
diff --git a/arch/powerpc/platforms/embedded6xx/hlwd-pic.c b/arch/powerpc/platforms/embedded6xx/hlwd-pic.c
new file mode 100644
index 000000000000..dd20bff33207
--- /dev/null
+++ b/arch/powerpc/platforms/embedded6xx/hlwd-pic.c
@@ -0,0 +1,241 @@
1/*
2 * arch/powerpc/platforms/embedded6xx/hlwd-pic.c
3 *
4 * Nintendo Wii "Hollywood" interrupt controller support.
5 * Copyright (C) 2009 The GameCube Linux Team
6 * Copyright (C) 2009 Albert Herranz
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License
10 * as published by the Free Software Foundation; either version 2
11 * of the License, or (at your option) any later version.
12 *
13 */
14#define DRV_MODULE_NAME "hlwd-pic"
15#define pr_fmt(fmt) DRV_MODULE_NAME ": " fmt
16
17#include <linux/kernel.h>
18#include <linux/init.h>
19#include <linux/irq.h>
20#include <linux/of.h>
21#include <asm/io.h>
22
23#include "hlwd-pic.h"
24
25#define HLWD_NR_IRQS 32
26
27/*
28 * Each interrupt has a corresponding bit in both
29 * the Interrupt Cause (ICR) and Interrupt Mask (IMR) registers.
30 *
31 * Enabling/disabling an interrupt line involves asserting/clearing
32 * the corresponding bit in IMR. ACK'ing a request simply involves
33 * asserting the corresponding bit in ICR.
34 */
35#define HW_BROADWAY_ICR 0x00
36#define HW_BROADWAY_IMR 0x04
37
38
39/*
40 * IRQ chip hooks.
41 *
42 */
43
44static void hlwd_pic_mask_and_ack(unsigned int virq)
45{
46 int irq = virq_to_hw(virq);
47 void __iomem *io_base = get_irq_chip_data(virq);
48 u32 mask = 1 << irq;
49
50 clrbits32(io_base + HW_BROADWAY_IMR, mask);
51 out_be32(io_base + HW_BROADWAY_ICR, mask);
52}
53
54static void hlwd_pic_ack(unsigned int virq)
55{
56 int irq = virq_to_hw(virq);
57 void __iomem *io_base = get_irq_chip_data(virq);
58
59 out_be32(io_base + HW_BROADWAY_ICR, 1 << irq);
60}
61
62static void hlwd_pic_mask(unsigned int virq)
63{
64 int irq = virq_to_hw(virq);
65 void __iomem *io_base = get_irq_chip_data(virq);
66
67 clrbits32(io_base + HW_BROADWAY_IMR, 1 << irq);
68}
69
70static void hlwd_pic_unmask(unsigned int virq)
71{
72 int irq = virq_to_hw(virq);
73 void __iomem *io_base = get_irq_chip_data(virq);
74
75 setbits32(io_base + HW_BROADWAY_IMR, 1 << irq);
76}
77
78
79static struct irq_chip hlwd_pic = {
80 .name = "hlwd-pic",
81 .ack = hlwd_pic_ack,
82 .mask_ack = hlwd_pic_mask_and_ack,
83 .mask = hlwd_pic_mask,
84 .unmask = hlwd_pic_unmask,
85};
86
87/*
88 * IRQ host hooks.
89 *
90 */
91
92static struct irq_host *hlwd_irq_host;
93
94static int hlwd_pic_map(struct irq_host *h, unsigned int virq,
95 irq_hw_number_t hwirq)
96{
97 set_irq_chip_data(virq, h->host_data);
98 get_irq_desc(virq)->status |= IRQ_LEVEL;
99 set_irq_chip_and_handler(virq, &hlwd_pic, handle_level_irq);
100 return 0;
101}
102
103static void hlwd_pic_unmap(struct irq_host *h, unsigned int irq)
104{
105 set_irq_chip_data(irq, NULL);
106 set_irq_chip(irq, NULL);
107}
108
109static struct irq_host_ops hlwd_irq_host_ops = {
110 .map = hlwd_pic_map,
111 .unmap = hlwd_pic_unmap,
112};
113
114static unsigned int __hlwd_pic_get_irq(struct irq_host *h)
115{
116 void __iomem *io_base = h->host_data;
117 int irq;
118 u32 irq_status;
119
120 irq_status = in_be32(io_base + HW_BROADWAY_ICR) &
121 in_be32(io_base + HW_BROADWAY_IMR);
122 if (irq_status == 0)
123 return NO_IRQ; /* no more IRQs pending */
124
125 irq = __ffs(irq_status);
126 return irq_linear_revmap(h, irq);
127}
128
129static void hlwd_pic_irq_cascade(unsigned int cascade_virq,
130 struct irq_desc *desc)
131{
132 struct irq_host *irq_host = get_irq_data(cascade_virq);
133 unsigned int virq;
134
135 spin_lock(&desc->lock);
136 desc->chip->mask(cascade_virq); /* IRQ_LEVEL */
137 spin_unlock(&desc->lock);
138
139 virq = __hlwd_pic_get_irq(irq_host);
140 if (virq != NO_IRQ)
141 generic_handle_irq(virq);
142 else
143 pr_err("spurious interrupt!\n");
144
145 spin_lock(&desc->lock);
146 desc->chip->ack(cascade_virq); /* IRQ_LEVEL */
147 if (!(desc->status & IRQ_DISABLED) && desc->chip->unmask)
148 desc->chip->unmask(cascade_virq);
149 spin_unlock(&desc->lock);
150}
151
152/*
153 * Platform hooks.
154 *
155 */
156
157static void __hlwd_quiesce(void __iomem *io_base)
158{
159 /* mask and ack all IRQs */
160 out_be32(io_base + HW_BROADWAY_IMR, 0);
161 out_be32(io_base + HW_BROADWAY_ICR, 0xffffffff);
162}
163
164struct irq_host *hlwd_pic_init(struct device_node *np)
165{
166 struct irq_host *irq_host;
167 struct resource res;
168 void __iomem *io_base;
169 int retval;
170
171 retval = of_address_to_resource(np, 0, &res);
172 if (retval) {
173 pr_err("no io memory range found\n");
174 return NULL;
175 }
176 io_base = ioremap(res.start, resource_size(&res));
177 if (!io_base) {
178 pr_err("ioremap failed\n");
179 return NULL;
180 }
181
182 pr_info("controller at 0x%08x mapped to 0x%p\n", res.start, io_base);
183
184 __hlwd_quiesce(io_base);
185
186 irq_host = irq_alloc_host(np, IRQ_HOST_MAP_LINEAR, HLWD_NR_IRQS,
187 &hlwd_irq_host_ops, -1);
188 if (!irq_host) {
189 pr_err("failed to allocate irq_host\n");
190 return NULL;
191 }
192 irq_host->host_data = io_base;
193
194 return irq_host;
195}
196
197unsigned int hlwd_pic_get_irq(void)
198{
199 return __hlwd_pic_get_irq(hlwd_irq_host);
200}
201
202/*
203 * Probe function.
204 *
205 */
206
207void hlwd_pic_probe(void)
208{
209 struct irq_host *host;
210 struct device_node *np;
211 const u32 *interrupts;
212 int cascade_virq;
213
214 for_each_compatible_node(np, NULL, "nintendo,hollywood-pic") {
215 interrupts = of_get_property(np, "interrupts", NULL);
216 if (interrupts) {
217 host = hlwd_pic_init(np);
218 BUG_ON(!host);
219 cascade_virq = irq_of_parse_and_map(np, 0);
220 set_irq_data(cascade_virq, host);
221 set_irq_chained_handler(cascade_virq,
222 hlwd_pic_irq_cascade);
223 hlwd_irq_host = host;
224 break;
225 }
226 }
227}
228
229/**
230 * hlwd_quiesce() - quiesce hollywood irq controller
231 *
232 * Mask and ack all interrupt sources.
233 *
234 */
235void hlwd_quiesce(void)
236{
237 void __iomem *io_base = hlwd_irq_host->host_data;
238
239 __hlwd_quiesce(io_base);
240}
241
diff --git a/arch/powerpc/platforms/embedded6xx/hlwd-pic.h b/arch/powerpc/platforms/embedded6xx/hlwd-pic.h
new file mode 100644
index 000000000000..d2e5a092761e
--- /dev/null
+++ b/arch/powerpc/platforms/embedded6xx/hlwd-pic.h
@@ -0,0 +1,22 @@
1/*
2 * arch/powerpc/platforms/embedded6xx/hlwd-pic.h
3 *
4 * Nintendo Wii "Hollywood" interrupt controller support.
5 * Copyright (C) 2009 The GameCube Linux Team
6 * Copyright (C) 2009 Albert Herranz
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License
10 * as published by the Free Software Foundation; either version 2
11 * of the License, or (at your option) any later version.
12 *
13 */
14
15#ifndef __HLWD_PIC_H
16#define __HLWD_PIC_H
17
18extern unsigned int hlwd_pic_get_irq(void);
19extern void hlwd_pic_probe(void);
20extern void hlwd_quiesce(void);
21
22#endif
diff --git a/arch/powerpc/platforms/embedded6xx/usbgecko_udbg.c b/arch/powerpc/platforms/embedded6xx/usbgecko_udbg.c
new file mode 100644
index 000000000000..edc956cc8b13
--- /dev/null
+++ b/arch/powerpc/platforms/embedded6xx/usbgecko_udbg.c
@@ -0,0 +1,328 @@
1/*
2 * arch/powerpc/platforms/embedded6xx/usbgecko_udbg.c
3 *
4 * udbg serial input/output routines for the USB Gecko adapter.
5 * Copyright (C) 2008-2009 The GameCube Linux Team
6 * Copyright (C) 2008,2009 Albert Herranz
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License
10 * as published by the Free Software Foundation; either version 2
11 * of the License, or (at your option) any later version.
12 *
13 */
14
15#include <mm/mmu_decl.h>
16
17#include <asm/io.h>
18#include <asm/prom.h>
19#include <asm/udbg.h>
20#include <asm/fixmap.h>
21
22#include "usbgecko_udbg.h"
23
24
25#define EXI_CLK_32MHZ 5
26
27#define EXI_CSR 0x00
28#define EXI_CSR_CLKMASK (0x7<<4)
29#define EXI_CSR_CLK_32MHZ (EXI_CLK_32MHZ<<4)
30#define EXI_CSR_CSMASK (0x7<<7)
31#define EXI_CSR_CS_0 (0x1<<7) /* Chip Select 001 */
32
33#define EXI_CR 0x0c
34#define EXI_CR_TSTART (1<<0)
35#define EXI_CR_WRITE (1<<2)
36#define EXI_CR_READ_WRITE (2<<2)
37#define EXI_CR_TLEN(len) (((len)-1)<<4)
38
39#define EXI_DATA 0x10
40
41#define UG_READ_ATTEMPTS 100
42#define UG_WRITE_ATTEMPTS 100
43
44
45static void __iomem *ug_io_base;
46
47/*
48 * Performs one input/output transaction between the exi host and the usbgecko.
49 */
50static u32 ug_io_transaction(u32 in)
51{
52 u32 __iomem *csr_reg = ug_io_base + EXI_CSR;
53 u32 __iomem *data_reg = ug_io_base + EXI_DATA;
54 u32 __iomem *cr_reg = ug_io_base + EXI_CR;
55 u32 csr, data, cr;
56
57 /* select */
58 csr = EXI_CSR_CLK_32MHZ | EXI_CSR_CS_0;
59 out_be32(csr_reg, csr);
60
61 /* read/write */
62 data = in;
63 out_be32(data_reg, data);
64 cr = EXI_CR_TLEN(2) | EXI_CR_READ_WRITE | EXI_CR_TSTART;
65 out_be32(cr_reg, cr);
66
67 while (in_be32(cr_reg) & EXI_CR_TSTART)
68 barrier();
69
70 /* deselect */
71 out_be32(csr_reg, 0);
72
73 /* result */
74 data = in_be32(data_reg);
75
76 return data;
77}
78
79/*
80 * Returns true if an usbgecko adapter is found.
81 */
82static int ug_is_adapter_present(void)
83{
84 if (!ug_io_base)
85 return 0;
86
87 return ug_io_transaction(0x90000000) == 0x04700000;
88}
89
90/*
91 * Returns true if the TX fifo is ready for transmission.
92 */
93static int ug_is_txfifo_ready(void)
94{
95 return ug_io_transaction(0xc0000000) & 0x04000000;
96}
97
98/*
99 * Tries to transmit a character.
100 * If the TX fifo is not ready the result is undefined.
101 */
102static void ug_raw_putc(char ch)
103{
104 ug_io_transaction(0xb0000000 | (ch << 20));
105}
106
107/*
108 * Transmits a character.
109 * It silently fails if the TX fifo is not ready after a number of retries.
110 */
111static void ug_putc(char ch)
112{
113 int count = UG_WRITE_ATTEMPTS;
114
115 if (!ug_io_base)
116 return;
117
118 if (ch == '\n')
119 ug_putc('\r');
120
121 while (!ug_is_txfifo_ready() && count--)
122 barrier();
123 if (count)
124 ug_raw_putc(ch);
125}
126
127/*
128 * Returns true if the RX fifo is ready for transmission.
129 */
130static int ug_is_rxfifo_ready(void)
131{
132 return ug_io_transaction(0xd0000000) & 0x04000000;
133}
134
135/*
136 * Tries to receive a character.
137 * If a character is unavailable the function returns -1.
138 */
139static int ug_raw_getc(void)
140{
141 u32 data = ug_io_transaction(0xa0000000);
142 if (data & 0x08000000)
143 return (data >> 16) & 0xff;
144 else
145 return -1;
146}
147
148/*
149 * Receives a character.
150 * It fails if the RX fifo is not ready after a number of retries.
151 */
152static int ug_getc(void)
153{
154 int count = UG_READ_ATTEMPTS;
155
156 if (!ug_io_base)
157 return -1;
158
159 while (!ug_is_rxfifo_ready() && count--)
160 barrier();
161 return ug_raw_getc();
162}
163
164/*
165 * udbg functions.
166 *
167 */
168
169/*
170 * Transmits a character.
171 */
172void ug_udbg_putc(char ch)
173{
174 ug_putc(ch);
175}
176
177/*
178 * Receives a character. Waits until a character is available.
179 */
180static int ug_udbg_getc(void)
181{
182 int ch;
183
184 while ((ch = ug_getc()) == -1)
185 barrier();
186 return ch;
187}
188
189/*
190 * Receives a character. If a character is not available, returns -1.
191 */
192static int ug_udbg_getc_poll(void)
193{
194 if (!ug_is_rxfifo_ready())
195 return -1;
196 return ug_getc();
197}
198
199/*
200 * Retrieves and prepares the virtual address needed to access the hardware.
201 */
202static void __iomem *ug_udbg_setup_exi_io_base(struct device_node *np)
203{
204 void __iomem *exi_io_base = NULL;
205 phys_addr_t paddr;
206 const unsigned int *reg;
207
208 reg = of_get_property(np, "reg", NULL);
209 if (reg) {
210 paddr = of_translate_address(np, reg);
211 if (paddr)
212 exi_io_base = ioremap(paddr, reg[1]);
213 }
214 return exi_io_base;
215}
216
217/*
218 * Checks if a USB Gecko adapter is inserted in any memory card slot.
219 */
220static void __iomem *ug_udbg_probe(void __iomem *exi_io_base)
221{
222 int i;
223
224 /* look for a usbgecko on memcard slots A and B */
225 for (i = 0; i < 2; i++) {
226 ug_io_base = exi_io_base + 0x14 * i;
227 if (ug_is_adapter_present())
228 break;
229 }
230 if (i == 2)
231 ug_io_base = NULL;
232 return ug_io_base;
233
234}
235
236/*
237 * USB Gecko udbg support initialization.
238 */
239void __init ug_udbg_init(void)
240{
241 struct device_node *np;
242 void __iomem *exi_io_base;
243
244 if (ug_io_base)
245 udbg_printf("%s: early -> final\n", __func__);
246
247 np = of_find_compatible_node(NULL, NULL, "nintendo,flipper-exi");
248 if (!np) {
249 udbg_printf("%s: EXI node not found\n", __func__);
250 goto done;
251 }
252
253 exi_io_base = ug_udbg_setup_exi_io_base(np);
254 if (!exi_io_base) {
255 udbg_printf("%s: failed to setup EXI io base\n", __func__);
256 goto done;
257 }
258
259 if (!ug_udbg_probe(exi_io_base)) {
260 udbg_printf("usbgecko_udbg: not found\n");
261 iounmap(exi_io_base);
262 } else {
263 udbg_putc = ug_udbg_putc;
264 udbg_getc = ug_udbg_getc;
265 udbg_getc_poll = ug_udbg_getc_poll;
266 udbg_printf("usbgecko_udbg: ready\n");
267 }
268
269done:
270 if (np)
271 of_node_put(np);
272 return;
273}
274
275#ifdef CONFIG_PPC_EARLY_DEBUG_USBGECKO
276
277static phys_addr_t __init ug_early_grab_io_addr(void)
278{
279#if defined(CONFIG_GAMECUBE)
280 return 0x0c000000;
281#elif defined(CONFIG_WII)
282 return 0x0d000000;
283#else
284#error Invalid platform for USB Gecko based early debugging.
285#endif
286}
287
288/*
289 * USB Gecko early debug support initialization for udbg.
290 */
291void __init udbg_init_usbgecko(void)
292{
293 void __iomem *early_debug_area;
294 void __iomem *exi_io_base;
295
296 /*
297 * At this point we have a BAT already setup that enables I/O
298 * to the EXI hardware.
299 *
300 * The BAT uses a virtual address range reserved at the fixmap.
301 * This must match the virtual address configured in
302 * head_32.S:setup_usbgecko_bat().
303 */
304 early_debug_area = (void __iomem *)__fix_to_virt(FIX_EARLY_DEBUG_BASE);
305 exi_io_base = early_debug_area + 0x00006800;
306
307 /* try to detect a USB Gecko */
308 if (!ug_udbg_probe(exi_io_base))
309 return;
310
311 /* we found a USB Gecko, load udbg hooks */
312 udbg_putc = ug_udbg_putc;
313 udbg_getc = ug_udbg_getc;
314 udbg_getc_poll = ug_udbg_getc_poll;
315
316 /*
317 * Prepare again the same BAT for MMU_init.
318 * This allows udbg I/O to continue working after the MMU is
319 * turned on for real.
320 * It is safe to continue using the same virtual address as it is
321 * a reserved fixmap area.
322 */
323 setbat(1, (unsigned long)early_debug_area,
324 ug_early_grab_io_addr(), 128*1024, PAGE_KERNEL_NCG);
325}
326
327#endif /* CONFIG_PPC_EARLY_DEBUG_USBGECKO */
328
diff --git a/arch/powerpc/platforms/embedded6xx/usbgecko_udbg.h b/arch/powerpc/platforms/embedded6xx/usbgecko_udbg.h
new file mode 100644
index 000000000000..bb6cde4ad764
--- /dev/null
+++ b/arch/powerpc/platforms/embedded6xx/usbgecko_udbg.h
@@ -0,0 +1,32 @@
1/*
2 * arch/powerpc/platforms/embedded6xx/usbgecko_udbg.h
3 *
4 * udbg serial input/output routines for the USB Gecko adapter.
5 * Copyright (C) 2008-2009 The GameCube Linux Team
6 * Copyright (C) 2008,2009 Albert Herranz
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License
10 * as published by the Free Software Foundation; either version 2
11 * of the License, or (at your option) any later version.
12 *
13 */
14
15#ifndef __USBGECKO_UDBG_H
16#define __USBGECKO_UDBG_H
17
18#ifdef CONFIG_USBGECKO_UDBG
19
20extern void __init ug_udbg_init(void);
21
22#else
23
24static inline void __init ug_udbg_init(void)
25{
26}
27
28#endif /* CONFIG_USBGECKO_UDBG */
29
30void __init udbg_init_usbgecko(void);
31
32#endif /* __USBGECKO_UDBG_H */
diff --git a/arch/powerpc/platforms/embedded6xx/wii.c b/arch/powerpc/platforms/embedded6xx/wii.c
new file mode 100644
index 000000000000..57e5b608fa1a
--- /dev/null
+++ b/arch/powerpc/platforms/embedded6xx/wii.c
@@ -0,0 +1,268 @@
1/*
2 * arch/powerpc/platforms/embedded6xx/wii.c
3 *
4 * Nintendo Wii board-specific support
5 * Copyright (C) 2008-2009 The GameCube Linux Team
6 * Copyright (C) 2008,2009 Albert Herranz
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License
10 * as published by the Free Software Foundation; either version 2
11 * of the License, or (at your option) any later version.
12 *
13 */
14#define DRV_MODULE_NAME "wii"
15#define pr_fmt(fmt) DRV_MODULE_NAME ": " fmt
16
17#include <linux/kernel.h>
18#include <linux/init.h>
19#include <linux/irq.h>
20#include <linux/seq_file.h>
21#include <linux/kexec.h>
22#include <linux/of_platform.h>
23#include <linux/lmb.h>
24#include <mm/mmu_decl.h>
25
26#include <asm/io.h>
27#include <asm/machdep.h>
28#include <asm/prom.h>
29#include <asm/time.h>
30#include <asm/udbg.h>
31
32#include "flipper-pic.h"
33#include "hlwd-pic.h"
34#include "usbgecko_udbg.h"
35
36/* control block */
37#define HW_CTRL_COMPATIBLE "nintendo,hollywood-control"
38
39#define HW_CTRL_RESETS 0x94
40#define HW_CTRL_RESETS_SYS (1<<0)
41
42/* gpio */
43#define HW_GPIO_COMPATIBLE "nintendo,hollywood-gpio"
44
45#define HW_GPIO_BASE(idx) (idx * 0x20)
46#define HW_GPIO_OUT(idx) (HW_GPIO_BASE(idx) + 0)
47#define HW_GPIO_DIR(idx) (HW_GPIO_BASE(idx) + 4)
48
49#define HW_GPIO_SHUTDOWN (1<<1)
50#define HW_GPIO_SLOT_LED (1<<5)
51#define HW_GPIO_SENSOR_BAR (1<<8)
52
53
54static void __iomem *hw_ctrl;
55static void __iomem *hw_gpio;
56
57unsigned long wii_hole_start;
58unsigned long wii_hole_size;
59
60
61static int __init page_aligned(unsigned long x)
62{
63 return !(x & (PAGE_SIZE-1));
64}
65
66void __init wii_memory_fixups(void)
67{
68 struct lmb_property *p = lmb.memory.region;
69
70 /*
71 * This is part of a workaround to allow the use of two
72 * discontiguous RAM ranges on the Wii, even if this is
73 * currently unsupported on 32-bit PowerPC Linux.
74 *
75 * We coealesce the two memory ranges of the Wii into a
76 * single range, then create a reservation for the "hole"
77 * between both ranges.
78 */
79
80 BUG_ON(lmb.memory.cnt != 2);
81 BUG_ON(!page_aligned(p[0].base) || !page_aligned(p[1].base));
82
83 p[0].size = _ALIGN_DOWN(p[0].size, PAGE_SIZE);
84 p[1].size = _ALIGN_DOWN(p[1].size, PAGE_SIZE);
85
86 wii_hole_start = p[0].base + p[0].size;
87 wii_hole_size = p[1].base - wii_hole_start;
88
89 pr_info("MEM1: <%08llx %08llx>\n", p[0].base, p[0].size);
90 pr_info("HOLE: <%08lx %08lx>\n", wii_hole_start, wii_hole_size);
91 pr_info("MEM2: <%08llx %08llx>\n", p[1].base, p[1].size);
92
93 p[0].size += wii_hole_size + p[1].size;
94
95 lmb.memory.cnt = 1;
96 lmb_analyze();
97
98 /* reserve the hole */
99 lmb_reserve(wii_hole_start, wii_hole_size);
100
101 /* allow ioremapping the address space in the hole */
102 __allow_ioremap_reserved = 1;
103}
104
105unsigned long __init wii_mmu_mapin_mem2(unsigned long top)
106{
107 unsigned long delta, size, bl;
108 unsigned long max_size = (256<<20);
109
110 /* MEM2 64MB@0x10000000 */
111 delta = wii_hole_start + wii_hole_size;
112 size = top - delta;
113 for (bl = 128<<10; bl < max_size; bl <<= 1) {
114 if (bl * 2 > size)
115 break;
116 }
117 setbat(4, PAGE_OFFSET+delta, delta, bl, PAGE_KERNEL_X);
118 return delta + bl;
119}
120
121static void wii_spin(void)
122{
123 local_irq_disable();
124 for (;;)
125 cpu_relax();
126}
127
128static void __iomem *wii_ioremap_hw_regs(char *name, char *compatible)
129{
130 void __iomem *hw_regs = NULL;
131 struct device_node *np;
132 struct resource res;
133 int error = -ENODEV;
134
135 np = of_find_compatible_node(NULL, NULL, compatible);
136 if (!np) {
137 pr_err("no compatible node found for %s\n", compatible);
138 goto out;
139 }
140 error = of_address_to_resource(np, 0, &res);
141 if (error) {
142 pr_err("no valid reg found for %s\n", np->name);
143 goto out_put;
144 }
145
146 hw_regs = ioremap(res.start, resource_size(&res));
147 if (hw_regs) {
148 pr_info("%s at 0x%08x mapped to 0x%p\n", name,
149 res.start, hw_regs);
150 }
151
152out_put:
153 of_node_put(np);
154out:
155 return hw_regs;
156}
157
158static void __init wii_setup_arch(void)
159{
160 hw_ctrl = wii_ioremap_hw_regs("hw_ctrl", HW_CTRL_COMPATIBLE);
161 hw_gpio = wii_ioremap_hw_regs("hw_gpio", HW_GPIO_COMPATIBLE);
162 if (hw_gpio) {
163 /* turn off the front blue led and IR light */
164 clrbits32(hw_gpio + HW_GPIO_OUT(0),
165 HW_GPIO_SLOT_LED | HW_GPIO_SENSOR_BAR);
166 }
167}
168
169static void wii_restart(char *cmd)
170{
171 local_irq_disable();
172
173 if (hw_ctrl) {
174 /* clear the system reset pin to cause a reset */
175 clrbits32(hw_ctrl + HW_CTRL_RESETS, HW_CTRL_RESETS_SYS);
176 }
177 wii_spin();
178}
179
180static void wii_power_off(void)
181{
182 local_irq_disable();
183
184 if (hw_gpio) {
185 /* make sure that the poweroff GPIO is configured as output */
186 setbits32(hw_gpio + HW_GPIO_DIR(1), HW_GPIO_SHUTDOWN);
187
188 /* drive the poweroff GPIO high */
189 setbits32(hw_gpio + HW_GPIO_OUT(1), HW_GPIO_SHUTDOWN);
190 }
191 wii_spin();
192}
193
194static void wii_halt(void)
195{
196 if (ppc_md.restart)
197 ppc_md.restart(NULL);
198 wii_spin();
199}
200
201static void __init wii_init_early(void)
202{
203 ug_udbg_init();
204}
205
206static void __init wii_pic_probe(void)
207{
208 flipper_pic_probe();
209 hlwd_pic_probe();
210}
211
212static int __init wii_probe(void)
213{
214 unsigned long dt_root;
215
216 dt_root = of_get_flat_dt_root();
217 if (!of_flat_dt_is_compatible(dt_root, "nintendo,wii"))
218 return 0;
219
220 return 1;
221}
222
223static void wii_shutdown(void)
224{
225 hlwd_quiesce();
226 flipper_quiesce();
227}
228
229#ifdef CONFIG_KEXEC
230static int wii_machine_kexec_prepare(struct kimage *image)
231{
232 return 0;
233}
234#endif /* CONFIG_KEXEC */
235
236define_machine(wii) {
237 .name = "wii",
238 .probe = wii_probe,
239 .init_early = wii_init_early,
240 .setup_arch = wii_setup_arch,
241 .restart = wii_restart,
242 .power_off = wii_power_off,
243 .halt = wii_halt,
244 .init_IRQ = wii_pic_probe,
245 .get_irq = flipper_pic_get_irq,
246 .calibrate_decr = generic_calibrate_decr,
247 .progress = udbg_progress,
248 .machine_shutdown = wii_shutdown,
249#ifdef CONFIG_KEXEC
250 .machine_kexec_prepare = wii_machine_kexec_prepare,
251#endif
252};
253
254static struct of_device_id wii_of_bus[] = {
255 { .compatible = "nintendo,hollywood", },
256 { },
257};
258
259static int __init wii_device_probe(void)
260{
261 if (!machine_is(wii))
262 return 0;
263
264 of_platform_bus_probe(NULL, wii_of_bus, NULL);
265 return 0;
266}
267device_initcall(wii_device_probe);
268