aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@g5.osdl.org>2005-11-16 10:58:48 -0500
committerLinus Torvalds <torvalds@g5.osdl.org>2005-11-16 10:58:48 -0500
commitd58a75ef75ad98f2d20ee6dccfc71f881aabffb0 (patch)
treefbfa28526e3e2695c61d83a1a4997a8c3d00b686
parentf6ff56cd56b83d8edf4b3cffc5c53c56b37a5081 (diff)
parent5d66da3d71e6aeca80ca08dbebd8a1cd72e6ee1f (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc-merge
-rw-r--r--arch/powerpc/Makefile25
-rw-r--r--arch/powerpc/boot/Makefile (renamed from arch/ppc64/boot/Makefile)5
-rw-r--r--arch/powerpc/boot/README (renamed from arch/ppc64/boot/README)0
-rw-r--r--arch/powerpc/boot/addRamDisk.c (renamed from arch/ppc64/boot/addRamDisk.c)0
-rw-r--r--arch/powerpc/boot/addnote.c (renamed from arch/ppc64/boot/addnote.c)0
-rw-r--r--arch/powerpc/boot/crt0.S (renamed from arch/ppc64/boot/crt0.S)0
-rw-r--r--arch/powerpc/boot/div64.S (renamed from arch/ppc64/boot/div64.S)0
-rw-r--r--arch/powerpc/boot/elf.h (renamed from arch/ppc64/boot/elf.h)0
-rw-r--r--arch/powerpc/boot/install.sh (renamed from arch/ppc64/boot/install.sh)0
-rw-r--r--arch/powerpc/boot/main.c (renamed from arch/ppc64/boot/main.c)122
-rw-r--r--arch/powerpc/boot/page.h (renamed from arch/ppc64/boot/page.h)0
-rw-r--r--arch/powerpc/boot/ppc_asm.h (renamed from arch/ppc64/boot/ppc_asm.h)0
-rw-r--r--arch/powerpc/boot/prom.c (renamed from arch/ppc64/boot/prom.c)0
-rw-r--r--arch/powerpc/boot/prom.h (renamed from arch/ppc64/boot/prom.h)0
-rw-r--r--arch/powerpc/boot/stdio.h (renamed from arch/ppc64/boot/stdio.h)0
-rw-r--r--arch/powerpc/boot/string.S (renamed from arch/ppc64/boot/string.S)0
-rw-r--r--arch/powerpc/boot/string.h (renamed from arch/ppc64/boot/string.h)0
-rw-r--r--arch/powerpc/boot/zImage.lds (renamed from arch/ppc64/boot/zImage.lds)0
-rw-r--r--arch/powerpc/configs/cell_defconfig175
-rw-r--r--arch/powerpc/configs/g5_defconfig53
-rw-r--r--arch/powerpc/configs/iseries_defconfig159
-rw-r--r--arch/powerpc/configs/maple_defconfig155
-rw-r--r--arch/powerpc/configs/pseries_defconfig4
-rw-r--r--arch/powerpc/kernel/pci_64.c70
-rw-r--r--arch/powerpc/kernel/rtas_pci.c68
-rw-r--r--arch/powerpc/kernel/setup-common.c1
-rw-r--r--arch/powerpc/kernel/smp.c7
-rw-r--r--arch/powerpc/kernel/vdso32/cacheflush.S2
-rw-r--r--arch/powerpc/kernel/vdso32/datapage.S3
-rw-r--r--arch/powerpc/kernel/vdso32/gettimeofday.S4
-rw-r--r--arch/powerpc/kernel/vdso64/cacheflush.S2
-rw-r--r--arch/powerpc/kernel/vdso64/datapage.S3
-rw-r--r--arch/powerpc/kernel/vdso64/gettimeofday.S4
-rw-r--r--arch/powerpc/mm/lmb.c33
-rw-r--r--arch/powerpc/platforms/iseries/pci.c3
-rw-r--r--arch/powerpc/platforms/maple/pci.c16
-rw-r--r--arch/powerpc/platforms/powermac/feature.c8
-rw-r--r--arch/powerpc/platforms/powermac/pci.c62
-rw-r--r--arch/powerpc/platforms/pseries/smp.c1
-rw-r--r--arch/ppc/kernel/setup.c14
-rw-r--r--arch/ppc/mm/init.c23
-rw-r--r--arch/ppc/xmon/start.c5
-rw-r--r--include/asm-powerpc/ppc-pci.h1
-rw-r--r--include/asm-powerpc/vdso.h2
-rw-r--r--include/asm-ppc/pgalloc.h2
-rw-r--r--include/asm-ppc64/pci-bridge.h14
-rw-r--r--sound/ppc/tumbler.c8
47 files changed, 652 insertions, 402 deletions
diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
index d41ad2e675db..99dbea8c5c50 100644
--- a/arch/powerpc/Makefile
+++ b/arch/powerpc/Makefile
@@ -14,10 +14,6 @@
14 14
15HAS_BIARCH := $(call cc-option-yn, -m32) 15HAS_BIARCH := $(call cc-option-yn, -m32)
16 16
17ifeq ($(CONFIG_PPC64),y)
18OLDARCH := ppc64
19SZ := 64
20
21# Set default 32 bits cross compilers for vdso and boot wrapper 17# Set default 32 bits cross compilers for vdso and boot wrapper
22CROSS32_COMPILE ?= 18CROSS32_COMPILE ?=
23 19
@@ -37,6 +33,10 @@ endif
37 33
38export CROSS32CC CROSS32AS CROSS32LD CROSS32OBJCOPY 34export CROSS32CC CROSS32AS CROSS32LD CROSS32OBJCOPY
39 35
36ifeq ($(CONFIG_PPC64),y)
37OLDARCH := ppc64
38SZ := 64
39
40new_nm := $(shell if $(NM) --help 2>&1 | grep -- '--synthetic' > /dev/null; then echo y; else echo n; fi) 40new_nm := $(shell if $(NM) --help 2>&1 | grep -- '--synthetic' > /dev/null; then echo y; else echo n; fi)
41 41
42ifeq ($(new_nm),y) 42ifeq ($(new_nm),y)
@@ -139,7 +139,7 @@ drivers-$(CONFIG_CPM2) += arch/ppc/8260_io/
139 139
140drivers-$(CONFIG_OPROFILE) += arch/powerpc/oprofile/ 140drivers-$(CONFIG_OPROFILE) += arch/powerpc/oprofile/
141 141
142defaultimage-$(CONFIG_PPC32) := uImage zImage 142defaultimage-$(CONFIG_PPC32) := zImage
143defaultimage-$(CONFIG_PPC_ISERIES) := vmlinux 143defaultimage-$(CONFIG_PPC_ISERIES) := vmlinux
144defaultimage-$(CONFIG_PPC_PSERIES) := zImage 144defaultimage-$(CONFIG_PPC_PSERIES) := zImage
145KBUILD_IMAGE := $(defaultimage-y) 145KBUILD_IMAGE := $(defaultimage-y)
@@ -154,23 +154,13 @@ BOOT_TARGETS = zImage zImage.initrd znetboot znetboot.initrd vmlinux.sm
154 154
155.PHONY: $(BOOT_TARGETS) 155.PHONY: $(BOOT_TARGETS)
156 156
157boot := arch/$(OLDARCH)/boot 157boot := arch/$(ARCH)/boot
158 158
159# urk
160ifeq ($(CONFIG_PPC64),y)
161$(BOOT_TARGETS): vmlinux 159$(BOOT_TARGETS): vmlinux
162 $(Q)$(MAKE) ARCH=ppc64 $(build)=$(boot) $(patsubst %,$(boot)/%,$@) 160 $(Q)$(MAKE) ARCH=ppc64 $(build)=$(boot) $(patsubst %,$(boot)/%,$@)
163else
164$(BOOT_TARGETS): vmlinux
165 $(Q)$(MAKE) ARCH=ppc $(build)=$(boot) $@
166endif
167
168uImage: vmlinux
169 $(Q)$(MAKE) ARCH=$(OLDARCH) $(build)=$(boot)/images $(boot)/images/$@
170 161
171define archhelp 162define archhelp
172 @echo '* zImage - Compressed kernel image (arch/$(ARCH)/boot/images/zImage.*)' 163 @echo '* zImage - Compressed kernel image (arch/$(ARCH)/boot/zImage.*)'
173 @echo ' uImage - Create a bootable image for U-Boot / PPCBoot'
174 @echo ' install - Install kernel using' 164 @echo ' install - Install kernel using'
175 @echo ' (your) ~/bin/installkernel or' 165 @echo ' (your) ~/bin/installkernel or'
176 @echo ' (distribution) /sbin/installkernel or' 166 @echo ' (distribution) /sbin/installkernel or'
@@ -180,7 +170,6 @@ endef
180 170
181archclean: 171archclean:
182 $(Q)$(MAKE) $(clean)=$(boot) 172 $(Q)$(MAKE) $(clean)=$(boot)
183 # Temporary hack until we have migrated to asm-powerpc
184 $(Q)rm -rf arch/$(ARCH)/include 173 $(Q)rm -rf arch/$(ARCH)/include
185 174
186archprepare: checkbin 175archprepare: checkbin
diff --git a/arch/ppc64/boot/Makefile b/arch/powerpc/boot/Makefile
index 301bc1536c49..9770f587af73 100644
--- a/arch/ppc64/boot/Makefile
+++ b/arch/powerpc/boot/Makefile
@@ -22,7 +22,8 @@
22 22
23 23
24HOSTCC := gcc 24HOSTCC := gcc
25BOOTCFLAGS := $(HOSTCFLAGS) -fno-builtin -nostdinc -isystem $(shell $(CROSS32CC) -print-file-name=include) -fPIC 25BOOTCFLAGS := $(HOSTCFLAGS) -fno-builtin -nostdinc -isystem \
26 $(shell $(CROSS32CC) -print-file-name=include) -fPIC
26BOOTAFLAGS := -D__ASSEMBLY__ $(BOOTCFLAGS) -traditional -nostdinc 27BOOTAFLAGS := -D__ASSEMBLY__ $(BOOTCFLAGS) -traditional -nostdinc
27BOOTLFLAGS := -T $(srctree)/$(src)/zImage.lds 28BOOTLFLAGS := -T $(srctree)/$(src)/zImage.lds
28OBJCOPYFLAGS := contents,alloc,load,readonly,data 29OBJCOPYFLAGS := contents,alloc,load,readonly,data
@@ -98,7 +99,7 @@ quiet_cmd_ramdisk = RAMDISK $@
98 cmd_ramdisk = $(obj)/addRamDisk $(obj)/ramdisk.image.gz $< $@ 99 cmd_ramdisk = $(obj)/addRamDisk $(obj)/ramdisk.image.gz $< $@
99 100
100quiet_cmd_stripvm = STRIP $@ 101quiet_cmd_stripvm = STRIP $@
101 cmd_stripvm = $(STRIP) -s $< -o $@ 102 cmd_stripvm = $(STRIP) -s -R .comment $< -o $@
102 103
103vmlinux.strip: vmlinux 104vmlinux.strip: vmlinux
104 $(call if_changed,stripvm) 105 $(call if_changed,stripvm)
diff --git a/arch/ppc64/boot/README b/arch/powerpc/boot/README
index 3e11058760e4..3e11058760e4 100644
--- a/arch/ppc64/boot/README
+++ b/arch/powerpc/boot/README
diff --git a/arch/ppc64/boot/addRamDisk.c b/arch/powerpc/boot/addRamDisk.c
index c02a99952be7..c02a99952be7 100644
--- a/arch/ppc64/boot/addRamDisk.c
+++ b/arch/powerpc/boot/addRamDisk.c
diff --git a/arch/ppc64/boot/addnote.c b/arch/powerpc/boot/addnote.c
index 8041a9845ab7..8041a9845ab7 100644
--- a/arch/ppc64/boot/addnote.c
+++ b/arch/powerpc/boot/addnote.c
diff --git a/arch/ppc64/boot/crt0.S b/arch/powerpc/boot/crt0.S
index 9cc442263939..9cc442263939 100644
--- a/arch/ppc64/boot/crt0.S
+++ b/arch/powerpc/boot/crt0.S
diff --git a/arch/ppc64/boot/div64.S b/arch/powerpc/boot/div64.S
index 722f360a32a9..722f360a32a9 100644
--- a/arch/ppc64/boot/div64.S
+++ b/arch/powerpc/boot/div64.S
diff --git a/arch/ppc64/boot/elf.h b/arch/powerpc/boot/elf.h
index d4828fcf1cb9..d4828fcf1cb9 100644
--- a/arch/ppc64/boot/elf.h
+++ b/arch/powerpc/boot/elf.h
diff --git a/arch/ppc64/boot/install.sh b/arch/powerpc/boot/install.sh
index eacce9590816..eacce9590816 100644
--- a/arch/ppc64/boot/install.sh
+++ b/arch/powerpc/boot/install.sh
diff --git a/arch/ppc64/boot/main.c b/arch/powerpc/boot/main.c
index e0dde24a72ce..64ec93116fa6 100644
--- a/arch/ppc64/boot/main.c
+++ b/arch/powerpc/boot/main.c
@@ -42,6 +42,8 @@ static struct addr_range vmlinux;
42static struct addr_range vmlinuz; 42static struct addr_range vmlinuz;
43static struct addr_range initrd; 43static struct addr_range initrd;
44 44
45static unsigned long elfoffset;
46
45static char scratch[46912]; /* scratch space for gunzip, from zlib_inflate_workspacesize() */ 47static char scratch[46912]; /* scratch space for gunzip, from zlib_inflate_workspacesize() */
46static char elfheader[256]; 48static char elfheader[256];
47 49
@@ -131,13 +133,70 @@ static unsigned long try_claim(unsigned long size)
131 return addr; 133 return addr;
132} 134}
133 135
136static int is_elf64(void *hdr)
137{
138 Elf64_Ehdr *elf64 = hdr;
139 Elf64_Phdr *elf64ph;
140 unsigned int i;
141
142 if (!(elf64->e_ident[EI_MAG0] == ELFMAG0 &&
143 elf64->e_ident[EI_MAG1] == ELFMAG1 &&
144 elf64->e_ident[EI_MAG2] == ELFMAG2 &&
145 elf64->e_ident[EI_MAG3] == ELFMAG3 &&
146 elf64->e_ident[EI_CLASS] == ELFCLASS64 &&
147 elf64->e_ident[EI_DATA] == ELFDATA2MSB &&
148 elf64->e_type == ET_EXEC &&
149 elf64->e_machine == EM_PPC64))
150 return 0;
151
152 elf64ph = (Elf64_Phdr *)((unsigned long)elf64 +
153 (unsigned long)elf64->e_phoff);
154 for (i = 0; i < (unsigned int)elf64->e_phnum; i++, elf64ph++)
155 if (elf64ph->p_type == PT_LOAD && elf64ph->p_offset != 0)
156 break;
157 if (i >= (unsigned int)elf64->e_phnum)
158 return 0;
159
160 elfoffset = (unsigned long)elf64ph->p_offset;
161 vmlinux.size = (unsigned long)elf64ph->p_filesz + elfoffset;
162 vmlinux.memsize = (unsigned long)elf64ph->p_memsz + elfoffset;
163 return 1;
164}
165
166static int is_elf32(void *hdr)
167{
168 Elf32_Ehdr *elf32 = hdr;
169 Elf32_Phdr *elf32ph;
170 unsigned int i;
171
172 if (!(elf32->e_ident[EI_MAG0] == ELFMAG0 &&
173 elf32->e_ident[EI_MAG1] == ELFMAG1 &&
174 elf32->e_ident[EI_MAG2] == ELFMAG2 &&
175 elf32->e_ident[EI_MAG3] == ELFMAG3 &&
176 elf32->e_ident[EI_CLASS] == ELFCLASS32 &&
177 elf32->e_ident[EI_DATA] == ELFDATA2MSB &&
178 elf32->e_type == ET_EXEC &&
179 elf32->e_machine == EM_PPC))
180 return 0;
181
182 elf32 = (Elf32_Ehdr *)elfheader;
183 elf32ph = (Elf32_Phdr *) ((unsigned long)elf32 + elf32->e_phoff);
184 for (i = 0; i < elf32->e_phnum; i++, elf32ph++)
185 if (elf32ph->p_type == PT_LOAD && elf32ph->p_offset != 0)
186 break;
187 if (i >= elf32->e_phnum)
188 return 0;
189
190 elfoffset = elf32ph->p_offset;
191 vmlinux.size = elf32ph->p_filesz + elf32ph->p_offset;
192 vmlinux.memsize = elf32ph->p_memsz + elf32ph->p_offset;
193 return 1;
194}
195
134void start(unsigned long a1, unsigned long a2, void *promptr, void *sp) 196void start(unsigned long a1, unsigned long a2, void *promptr, void *sp)
135{ 197{
136 unsigned long i;
137 int len; 198 int len;
138 kernel_entry_t kernel_entry; 199 kernel_entry_t kernel_entry;
139 Elf64_Ehdr *elf64;
140 Elf64_Phdr *elf64ph;
141 200
142 memset(__bss_start, 0, _end - __bss_start); 201 memset(__bss_start, 0, _end - __bss_start);
143 202
@@ -153,6 +212,22 @@ void start(unsigned long a1, unsigned long a2, void *promptr, void *sp)
153 212
154 printf("\n\rzImage starting: loaded at 0x%p (sp: 0x%p)\n\r", _start, sp); 213 printf("\n\rzImage starting: loaded at 0x%p (sp: 0x%p)\n\r", _start, sp);
155 214
215 vmlinuz.addr = (unsigned long)_vmlinux_start;
216 vmlinuz.size = (unsigned long)(_vmlinux_end - _vmlinux_start);
217
218 /* gunzip the ELF header of the kernel */
219 if (*(unsigned short *)vmlinuz.addr == 0x1f8b) {
220 len = vmlinuz.size;
221 gunzip(elfheader, sizeof(elfheader),
222 (unsigned char *)vmlinuz.addr, &len);
223 } else
224 memcpy(elfheader, (const void *)vmlinuz.addr, sizeof(elfheader));
225
226 if (!is_elf64(elfheader) && !is_elf32(elfheader)) {
227 printf("Error: not a valid PPC32 or PPC64 ELF file!\n\r");
228 exit();
229 }
230
156 /* 231 /*
157 * The first available claim_base must be above the end of the 232 * The first available claim_base must be above the end of the
158 * the loaded kernel wrapper file (_start to _end includes the 233 * the loaded kernel wrapper file (_start to _end includes the
@@ -172,46 +247,11 @@ void start(unsigned long a1, unsigned long a2, void *promptr, void *sp)
172 claim_base = PROG_START; 247 claim_base = PROG_START;
173#endif 248#endif
174 249
175 vmlinuz.addr = (unsigned long)_vmlinux_start;
176 vmlinuz.size = (unsigned long)(_vmlinux_end - _vmlinux_start);
177
178 /* gunzip the ELF header of the kernel */
179 if (*(unsigned short *)vmlinuz.addr == 0x1f8b) {
180 len = vmlinuz.size;
181 gunzip(elfheader, sizeof(elfheader),
182 (unsigned char *)vmlinuz.addr, &len);
183 } else
184 memcpy(elfheader, (const void *)vmlinuz.addr, sizeof(elfheader));
185
186 elf64 = (Elf64_Ehdr *)elfheader;
187 if ( elf64->e_ident[EI_MAG0] != ELFMAG0 ||
188 elf64->e_ident[EI_MAG1] != ELFMAG1 ||
189 elf64->e_ident[EI_MAG2] != ELFMAG2 ||
190 elf64->e_ident[EI_MAG3] != ELFMAG3 ||
191 elf64->e_ident[EI_CLASS] != ELFCLASS64 ||
192 elf64->e_ident[EI_DATA] != ELFDATA2MSB ||
193 elf64->e_type != ET_EXEC ||
194 elf64->e_machine != EM_PPC64 )
195 {
196 printf("Error: not a valid PPC64 ELF file!\n\r");
197 exit();
198 }
199
200 elf64ph = (Elf64_Phdr *)((unsigned long)elf64 +
201 (unsigned long)elf64->e_phoff);
202 for(i=0; i < (unsigned int)elf64->e_phnum ;i++,elf64ph++) {
203 if (elf64ph->p_type == PT_LOAD && elf64ph->p_offset != 0)
204 break;
205 }
206 vmlinux.size = (unsigned long)elf64ph->p_filesz +
207 (unsigned long)elf64ph->p_offset;
208 /* We need to claim the memsize plus the file offset since gzip 250 /* We need to claim the memsize plus the file offset since gzip
209 * will expand the header (file offset), then the kernel, then 251 * will expand the header (file offset), then the kernel, then
210 * possible rubbish we don't care about. But the kernel bss must 252 * possible rubbish we don't care about. But the kernel bss must
211 * be claimed (it will be zero'd by the kernel itself) 253 * be claimed (it will be zero'd by the kernel itself)
212 */ 254 */
213 vmlinux.memsize = (unsigned long)elf64ph->p_memsz +
214 (unsigned long)elf64ph->p_offset;
215 printf("Allocating 0x%lx bytes for kernel ...\n\r", vmlinux.memsize); 255 printf("Allocating 0x%lx bytes for kernel ...\n\r", vmlinux.memsize);
216 vmlinux.addr = try_claim(vmlinux.memsize); 256 vmlinux.addr = try_claim(vmlinux.memsize);
217 if (vmlinux.addr == 0) { 257 if (vmlinux.addr == 0) {
@@ -254,9 +294,9 @@ void start(unsigned long a1, unsigned long a2, void *promptr, void *sp)
254 /* Skip over the ELF header */ 294 /* Skip over the ELF header */
255#ifdef DEBUG 295#ifdef DEBUG
256 printf("... skipping 0x%lx bytes of ELF header\n\r", 296 printf("... skipping 0x%lx bytes of ELF header\n\r",
257 (unsigned long)elf64ph->p_offset); 297 elfoffset);
258#endif 298#endif
259 vmlinux.addr += (unsigned long)elf64ph->p_offset; 299 vmlinux.addr += elfoffset;
260 300
261 flush_cache((void *)vmlinux.addr, vmlinux.size); 301 flush_cache((void *)vmlinux.addr, vmlinux.size);
262 302
@@ -272,7 +312,7 @@ void start(unsigned long a1, unsigned long a2, void *promptr, void *sp)
272 (unsigned long)prom, NULL); 312 (unsigned long)prom, NULL);
273#endif 313#endif
274 314
275 kernel_entry( a1, a2, prom, NULL ); 315 kernel_entry(a1, a2, prom, NULL);
276 316
277 printf("Error: Linux kernel returned to zImage bootloader!\n\r"); 317 printf("Error: Linux kernel returned to zImage bootloader!\n\r");
278 318
diff --git a/arch/ppc64/boot/page.h b/arch/powerpc/boot/page.h
index 14eca30fef64..14eca30fef64 100644
--- a/arch/ppc64/boot/page.h
+++ b/arch/powerpc/boot/page.h
diff --git a/arch/ppc64/boot/ppc_asm.h b/arch/powerpc/boot/ppc_asm.h
index 1c2c2817f9b7..1c2c2817f9b7 100644
--- a/arch/ppc64/boot/ppc_asm.h
+++ b/arch/powerpc/boot/ppc_asm.h
diff --git a/arch/ppc64/boot/prom.c b/arch/powerpc/boot/prom.c
index 4bea2f4dcb06..4bea2f4dcb06 100644
--- a/arch/ppc64/boot/prom.c
+++ b/arch/powerpc/boot/prom.c
diff --git a/arch/ppc64/boot/prom.h b/arch/powerpc/boot/prom.h
index 96ab5aec740c..96ab5aec740c 100644
--- a/arch/ppc64/boot/prom.h
+++ b/arch/powerpc/boot/prom.h
diff --git a/arch/ppc64/boot/stdio.h b/arch/powerpc/boot/stdio.h
index 24bd3a8dee94..24bd3a8dee94 100644
--- a/arch/ppc64/boot/stdio.h
+++ b/arch/powerpc/boot/stdio.h
diff --git a/arch/ppc64/boot/string.S b/arch/powerpc/boot/string.S
index b1eeaed7db17..b1eeaed7db17 100644
--- a/arch/ppc64/boot/string.S
+++ b/arch/powerpc/boot/string.S
diff --git a/arch/ppc64/boot/string.h b/arch/powerpc/boot/string.h
index 9fdff1cc0d70..9fdff1cc0d70 100644
--- a/arch/ppc64/boot/string.h
+++ b/arch/powerpc/boot/string.h
diff --git a/arch/ppc64/boot/zImage.lds b/arch/powerpc/boot/zImage.lds
index 4b6bb3ffe3dc..4b6bb3ffe3dc 100644
--- a/arch/ppc64/boot/zImage.lds
+++ b/arch/powerpc/boot/zImage.lds
diff --git a/arch/powerpc/configs/cell_defconfig b/arch/powerpc/configs/cell_defconfig
index 67ffecbc05cb..4b433411b9e3 100644
--- a/arch/powerpc/configs/cell_defconfig
+++ b/arch/powerpc/configs/cell_defconfig
@@ -1,18 +1,33 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.14-rc4 3# Linux kernel version: 2.6.15-rc1
4# Thu Oct 20 08:29:10 2005 4# Tue Nov 15 14:36:20 2005
5# 5#
6CONFIG_PPC64=y
6CONFIG_64BIT=y 7CONFIG_64BIT=y
8CONFIG_PPC_MERGE=y
7CONFIG_MMU=y 9CONFIG_MMU=y
10CONFIG_GENERIC_HARDIRQS=y
8CONFIG_RWSEM_XCHGADD_ALGORITHM=y 11CONFIG_RWSEM_XCHGADD_ALGORITHM=y
9CONFIG_GENERIC_CALIBRATE_DELAY=y 12CONFIG_GENERIC_CALIBRATE_DELAY=y
10CONFIG_GENERIC_ISA_DMA=y 13CONFIG_PPC=y
11CONFIG_EARLY_PRINTK=y 14CONFIG_EARLY_PRINTK=y
12CONFIG_COMPAT=y 15CONFIG_COMPAT=y
16CONFIG_SYSVIPC_COMPAT=y
13CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 17CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
14CONFIG_ARCH_MAY_HAVE_PC_FDC=y 18CONFIG_ARCH_MAY_HAVE_PC_FDC=y
15CONFIG_FORCE_MAX_ZONEORDER=13 19
20#
21# Processor support
22#
23# CONFIG_POWER4_ONLY is not set
24CONFIG_POWER3=y
25CONFIG_POWER4=y
26CONFIG_PPC_FPU=y
27CONFIG_ALTIVEC=y
28CONFIG_PPC_STD_MMU=y
29CONFIG_SMP=y
30CONFIG_NR_CPUS=4
16 31
17# 32#
18# Code maturity level options 33# Code maturity level options
@@ -66,31 +81,69 @@ CONFIG_OBSOLETE_MODPARM=y
66# CONFIG_MODULE_SRCVERSION_ALL is not set 81# CONFIG_MODULE_SRCVERSION_ALL is not set
67# CONFIG_KMOD is not set 82# CONFIG_KMOD is not set
68CONFIG_STOP_MACHINE=y 83CONFIG_STOP_MACHINE=y
69CONFIG_SYSVIPC_COMPAT=y 84
85#
86# Block layer
87#
88
89#
90# IO Schedulers
91#
92CONFIG_IOSCHED_NOOP=y
93CONFIG_IOSCHED_AS=y
94CONFIG_IOSCHED_DEADLINE=y
95CONFIG_IOSCHED_CFQ=y
96CONFIG_DEFAULT_AS=y
97# CONFIG_DEFAULT_DEADLINE is not set
98# CONFIG_DEFAULT_CFQ is not set
99# CONFIG_DEFAULT_NOOP is not set
100CONFIG_DEFAULT_IOSCHED="anticipatory"
70 101
71# 102#
72# Platform support 103# Platform support
73# 104#
74# CONFIG_PPC_ISERIES is not set
75CONFIG_PPC_MULTIPLATFORM=y 105CONFIG_PPC_MULTIPLATFORM=y
106# CONFIG_PPC_ISERIES is not set
107# CONFIG_EMBEDDED6xx is not set
108# CONFIG_APUS is not set
76# CONFIG_PPC_PSERIES is not set 109# CONFIG_PPC_PSERIES is not set
77CONFIG_PPC_BPA=y
78# CONFIG_PPC_PMAC is not set 110# CONFIG_PPC_PMAC is not set
79# CONFIG_PPC_MAPLE is not set 111# CONFIG_PPC_MAPLE is not set
80CONFIG_PPC=y 112CONFIG_PPC_CELL=y
81CONFIG_PPC64=y
82CONFIG_PPC_OF=y 113CONFIG_PPC_OF=y
83CONFIG_BPA_IIC=y
84CONFIG_ALTIVEC=y
85CONFIG_KEXEC=y
86# CONFIG_U3_DART is not set 114# CONFIG_U3_DART is not set
87# CONFIG_BOOTX_TEXT is not set 115CONFIG_PPC_RTAS=y
88# CONFIG_POWER4_ONLY is not set 116# CONFIG_RTAS_ERROR_LOGGING is not set
117CONFIG_RTAS_PROC=y
118CONFIG_RTAS_FLASH=y
119CONFIG_MMIO_NVRAM=y
120CONFIG_CELL_IIC=y
121# CONFIG_PPC_MPC106 is not set
122# CONFIG_GENERIC_TBSYNC is not set
123# CONFIG_CPU_FREQ is not set
124# CONFIG_WANT_EARLY_SERIAL is not set
125
126#
127# Kernel options
128#
129# CONFIG_HZ_100 is not set
130CONFIG_HZ_250=y
131# CONFIG_HZ_1000 is not set
132CONFIG_HZ=250
133CONFIG_PREEMPT_NONE=y
134# CONFIG_PREEMPT_VOLUNTARY is not set
135# CONFIG_PREEMPT is not set
136CONFIG_PREEMPT_BKL=y
137CONFIG_BINFMT_ELF=y
138# CONFIG_BINFMT_MISC is not set
139CONFIG_FORCE_MAX_ZONEORDER=13
89# CONFIG_IOMMU_VMERGE is not set 140# CONFIG_IOMMU_VMERGE is not set
90CONFIG_SMP=y 141CONFIG_KEXEC=y
91CONFIG_NR_CPUS=4 142CONFIG_IRQ_ALL_CPUS=y
143# CONFIG_NUMA is not set
92CONFIG_ARCH_SELECT_MEMORY_MODEL=y 144CONFIG_ARCH_SELECT_MEMORY_MODEL=y
93CONFIG_ARCH_FLATMEM_ENABLE=y 145CONFIG_ARCH_FLATMEM_ENABLE=y
146CONFIG_ARCH_SPARSEMEM_ENABLE=y
94CONFIG_SELECT_MEMORY_MODEL=y 147CONFIG_SELECT_MEMORY_MODEL=y
95CONFIG_FLATMEM_MANUAL=y 148CONFIG_FLATMEM_MANUAL=y
96# CONFIG_DISCONTIGMEM_MANUAL is not set 149# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -98,30 +151,21 @@ CONFIG_FLATMEM_MANUAL=y
98CONFIG_FLATMEM=y 151CONFIG_FLATMEM=y
99CONFIG_FLAT_NODE_MEM_MAP=y 152CONFIG_FLAT_NODE_MEM_MAP=y
100# CONFIG_SPARSEMEM_STATIC is not set 153# CONFIG_SPARSEMEM_STATIC is not set
101# CONFIG_NUMA is not set 154CONFIG_SPLIT_PTLOCK_CPUS=4096
155# CONFIG_PPC_64K_PAGES is not set
102CONFIG_SCHED_SMT=y 156CONFIG_SCHED_SMT=y
103CONFIG_PREEMPT_NONE=y
104# CONFIG_PREEMPT_VOLUNTARY is not set
105# CONFIG_PREEMPT is not set
106CONFIG_PREEMPT_BKL=y
107# CONFIG_HZ_100 is not set
108CONFIG_HZ_250=y
109# CONFIG_HZ_1000 is not set
110CONFIG_HZ=250
111CONFIG_GENERIC_HARDIRQS=y
112CONFIG_PPC_RTAS=y
113CONFIG_RTAS_PROC=y
114CONFIG_RTAS_FLASH=y
115CONFIG_SECCOMP=y
116CONFIG_BINFMT_ELF=y
117# CONFIG_BINFMT_MISC is not set
118CONFIG_PROC_DEVICETREE=y 157CONFIG_PROC_DEVICETREE=y
119# CONFIG_CMDLINE_BOOL is not set 158# CONFIG_CMDLINE_BOOL is not set
159# CONFIG_PM is not set
160CONFIG_SECCOMP=y
120CONFIG_ISA_DMA_API=y 161CONFIG_ISA_DMA_API=y
121 162
122# 163#
123# Bus Options 164# Bus options
124# 165#
166CONFIG_GENERIC_ISA_DMA=y
167# CONFIG_PPC_I8259 is not set
168# CONFIG_PPC_INDIRECT_PCI is not set
125CONFIG_PCI=y 169CONFIG_PCI=y
126CONFIG_PCI_DOMAINS=y 170CONFIG_PCI_DOMAINS=y
127CONFIG_PCI_LEGACY_PROC=y 171CONFIG_PCI_LEGACY_PROC=y
@@ -136,6 +180,7 @@ CONFIG_PCI_LEGACY_PROC=y
136# PCI Hotplug Support 180# PCI Hotplug Support
137# 181#
138# CONFIG_HOTPLUG_PCI is not set 182# CONFIG_HOTPLUG_PCI is not set
183CONFIG_KERNEL_START=0xc000000000000000
139 184
140# 185#
141# Networking 186# Networking
@@ -183,6 +228,10 @@ CONFIG_INET6_TUNNEL=m
183CONFIG_IPV6_TUNNEL=m 228CONFIG_IPV6_TUNNEL=m
184CONFIG_NETFILTER=y 229CONFIG_NETFILTER=y
185# CONFIG_NETFILTER_DEBUG is not set 230# CONFIG_NETFILTER_DEBUG is not set
231
232#
233# Core Netfilter Configuration
234#
186# CONFIG_NETFILTER_NETLINK is not set 235# CONFIG_NETFILTER_NETLINK is not set
187 236
188# 237#
@@ -284,6 +333,10 @@ CONFIG_IP_NF_ARP_MANGLE=m
284# CONFIG_NET_DIVERT is not set 333# CONFIG_NET_DIVERT is not set
285# CONFIG_ECONET is not set 334# CONFIG_ECONET is not set
286# CONFIG_WAN_ROUTER is not set 335# CONFIG_WAN_ROUTER is not set
336
337#
338# QoS and/or fair queueing
339#
287# CONFIG_NET_SCHED is not set 340# CONFIG_NET_SCHED is not set
288CONFIG_NET_CLS_ROUTE=y 341CONFIG_NET_CLS_ROUTE=y
289 342
@@ -345,14 +398,6 @@ CONFIG_BLK_DEV_RAM_COUNT=16
345CONFIG_BLK_DEV_RAM_SIZE=131072 398CONFIG_BLK_DEV_RAM_SIZE=131072
346CONFIG_BLK_DEV_INITRD=y 399CONFIG_BLK_DEV_INITRD=y
347# CONFIG_CDROM_PKTCDVD is not set 400# CONFIG_CDROM_PKTCDVD is not set
348
349#
350# IO Schedulers
351#
352CONFIG_IOSCHED_NOOP=y
353CONFIG_IOSCHED_AS=y
354CONFIG_IOSCHED_DEADLINE=y
355CONFIG_IOSCHED_CFQ=y
356# CONFIG_ATA_OVER_ETH is not set 401# CONFIG_ATA_OVER_ETH is not set
357 402
358# 403#
@@ -442,6 +487,7 @@ CONFIG_IDEDMA_AUTO=y
442# 487#
443# Macintosh device drivers 488# Macintosh device drivers
444# 489#
490# CONFIG_WINDFARM is not set
445 491
446# 492#
447# Network device support 493# Network device support
@@ -495,7 +541,6 @@ CONFIG_SKGE=m
495# CONFIG_SK98LIN is not set 541# CONFIG_SK98LIN is not set
496# CONFIG_TIGON3 is not set 542# CONFIG_TIGON3 is not set
497# CONFIG_BNX2 is not set 543# CONFIG_BNX2 is not set
498# CONFIG_SPIDER_NET is not set
499# CONFIG_MV643XX_ETH is not set 544# CONFIG_MV643XX_ETH is not set
500 545
501# 546#
@@ -625,7 +670,7 @@ CONFIG_WATCHDOG=y
625# Watchdog Device Drivers 670# Watchdog Device Drivers
626# 671#
627# CONFIG_SOFT_WATCHDOG is not set 672# CONFIG_SOFT_WATCHDOG is not set
628CONFIG_WATCHDOG_RTAS=y 673# CONFIG_WATCHDOG_RTAS is not set
629 674
630# 675#
631# PCI-based Watchdog Cards 676# PCI-based Watchdog Cards
@@ -633,6 +678,8 @@ CONFIG_WATCHDOG_RTAS=y
633# CONFIG_PCIPCWATCHDOG is not set 678# CONFIG_PCIPCWATCHDOG is not set
634# CONFIG_WDTPCI is not set 679# CONFIG_WDTPCI is not set
635# CONFIG_RTC is not set 680# CONFIG_RTC is not set
681CONFIG_GEN_RTC=y
682# CONFIG_GEN_RTC_X is not set
636# CONFIG_DTLK is not set 683# CONFIG_DTLK is not set
637# CONFIG_R3964 is not set 684# CONFIG_R3964 is not set
638# CONFIG_APPLICOM is not set 685# CONFIG_APPLICOM is not set
@@ -649,6 +696,7 @@ CONFIG_WATCHDOG_RTAS=y
649# TPM devices 696# TPM devices
650# 697#
651# CONFIG_TCG_TPM is not set 698# CONFIG_TCG_TPM is not set
699# CONFIG_TELCLOCK is not set
652 700
653# 701#
654# I2C support 702# I2C support
@@ -699,6 +747,7 @@ CONFIG_I2C_ALGOBIT=y
699# CONFIG_SENSORS_PCF8591 is not set 747# CONFIG_SENSORS_PCF8591 is not set
700# CONFIG_SENSORS_RTC8564 is not set 748# CONFIG_SENSORS_RTC8564 is not set
701# CONFIG_SENSORS_MAX6875 is not set 749# CONFIG_SENSORS_MAX6875 is not set
750# CONFIG_RTC_X1205_I2C is not set
702# CONFIG_I2C_DEBUG_CORE is not set 751# CONFIG_I2C_DEBUG_CORE is not set
703# CONFIG_I2C_DEBUG_ALGO is not set 752# CONFIG_I2C_DEBUG_ALGO is not set
704# CONFIG_I2C_DEBUG_BUS is not set 753# CONFIG_I2C_DEBUG_BUS is not set
@@ -757,6 +806,10 @@ CONFIG_USB_ARCH_HAS_OHCI=y
757# CONFIG_USB is not set 806# CONFIG_USB is not set
758 807
759# 808#
809# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
810#
811
812#
760# USB Gadget Support 813# USB Gadget Support
761# 814#
762# CONFIG_USB_GADGET is not set 815# CONFIG_USB_GADGET is not set
@@ -943,9 +996,24 @@ CONFIG_NLS_ISO8859_15=m
943# CONFIG_NLS_UTF8 is not set 996# CONFIG_NLS_UTF8 is not set
944 997
945# 998#
946# Profiling support 999# Library routines
1000#
1001# CONFIG_CRC_CCITT is not set
1002# CONFIG_CRC16 is not set
1003CONFIG_CRC32=y
1004# CONFIG_LIBCRC32C is not set
1005CONFIG_ZLIB_INFLATE=m
1006CONFIG_ZLIB_DEFLATE=m
1007CONFIG_TEXTSEARCH=y
1008CONFIG_TEXTSEARCH_KMP=m
1009CONFIG_TEXTSEARCH_BM=m
1010CONFIG_TEXTSEARCH_FSM=m
1011
1012#
1013# Instrumentation Support
947# 1014#
948# CONFIG_PROFILING is not set 1015# CONFIG_PROFILING is not set
1016# CONFIG_KPROBES is not set
949 1017
950# 1018#
951# Kernel hacking 1019# Kernel hacking
@@ -962,13 +1030,14 @@ CONFIG_DEBUG_SPINLOCK_SLEEP=y
962# CONFIG_DEBUG_KOBJECT is not set 1030# CONFIG_DEBUG_KOBJECT is not set
963# CONFIG_DEBUG_INFO is not set 1031# CONFIG_DEBUG_INFO is not set
964CONFIG_DEBUG_FS=y 1032CONFIG_DEBUG_FS=y
1033# CONFIG_DEBUG_VM is not set
1034# CONFIG_RCU_TORTURE_TEST is not set
965# CONFIG_DEBUG_STACKOVERFLOW is not set 1035# CONFIG_DEBUG_STACKOVERFLOW is not set
966# CONFIG_KPROBES is not set
967# CONFIG_DEBUG_STACK_USAGE is not set 1036# CONFIG_DEBUG_STACK_USAGE is not set
968CONFIG_DEBUGGER=y 1037CONFIG_DEBUGGER=y
969# CONFIG_XMON is not set 1038# CONFIG_XMON is not set
970# CONFIG_PPCDBG is not set
971CONFIG_IRQSTACKS=y 1039CONFIG_IRQSTACKS=y
1040# CONFIG_BOOTX_TEXT is not set
972 1041
973# 1042#
974# Security options 1043# Security options
@@ -1008,17 +1077,3 @@ CONFIG_CRYPTO_DEFLATE=m
1008# 1077#
1009# Hardware crypto devices 1078# Hardware crypto devices
1010# 1079#
1011
1012#
1013# Library routines
1014#
1015# CONFIG_CRC_CCITT is not set
1016# CONFIG_CRC16 is not set
1017CONFIG_CRC32=y
1018# CONFIG_LIBCRC32C is not set
1019CONFIG_ZLIB_INFLATE=m
1020CONFIG_ZLIB_DEFLATE=m
1021CONFIG_TEXTSEARCH=y
1022CONFIG_TEXTSEARCH_KMP=m
1023CONFIG_TEXTSEARCH_BM=m
1024CONFIG_TEXTSEARCH_FSM=m
diff --git a/arch/powerpc/configs/g5_defconfig b/arch/powerpc/configs/g5_defconfig
index e76854f8c121..e7c23e3902b8 100644
--- a/arch/powerpc/configs/g5_defconfig
+++ b/arch/powerpc/configs/g5_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.14 3# Linux kernel version: 2.6.15-rc1
4# Mon Nov 7 13:37:59 2005 4# Tue Nov 15 14:39:20 2005
5# 5#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7CONFIG_64BIT=y 7CONFIG_64BIT=y
@@ -83,6 +83,23 @@ CONFIG_KMOD=y
83CONFIG_STOP_MACHINE=y 83CONFIG_STOP_MACHINE=y
84 84
85# 85#
86# Block layer
87#
88
89#
90# IO Schedulers
91#
92CONFIG_IOSCHED_NOOP=y
93CONFIG_IOSCHED_AS=y
94CONFIG_IOSCHED_DEADLINE=y
95CONFIG_IOSCHED_CFQ=y
96CONFIG_DEFAULT_AS=y
97# CONFIG_DEFAULT_DEADLINE is not set
98# CONFIG_DEFAULT_CFQ is not set
99# CONFIG_DEFAULT_NOOP is not set
100CONFIG_DEFAULT_IOSCHED="anticipatory"
101
102#
86# Platform support 103# Platform support
87# 104#
88CONFIG_PPC_MULTIPLATFORM=y 105CONFIG_PPC_MULTIPLATFORM=y
@@ -137,6 +154,7 @@ CONFIG_IRQ_ALL_CPUS=y
137# CONFIG_NUMA is not set 154# CONFIG_NUMA is not set
138CONFIG_ARCH_SELECT_MEMORY_MODEL=y 155CONFIG_ARCH_SELECT_MEMORY_MODEL=y
139CONFIG_ARCH_FLATMEM_ENABLE=y 156CONFIG_ARCH_FLATMEM_ENABLE=y
157CONFIG_ARCH_SPARSEMEM_ENABLE=y
140CONFIG_SELECT_MEMORY_MODEL=y 158CONFIG_SELECT_MEMORY_MODEL=y
141CONFIG_FLATMEM_MANUAL=y 159CONFIG_FLATMEM_MANUAL=y
142# CONFIG_DISCONTIGMEM_MANUAL is not set 160# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -144,7 +162,7 @@ CONFIG_FLATMEM_MANUAL=y
144CONFIG_FLATMEM=y 162CONFIG_FLATMEM=y
145CONFIG_FLAT_NODE_MEM_MAP=y 163CONFIG_FLAT_NODE_MEM_MAP=y
146# CONFIG_SPARSEMEM_STATIC is not set 164# CONFIG_SPARSEMEM_STATIC is not set
147CONFIG_SPLIT_PTLOCK_CPUS=4 165CONFIG_SPLIT_PTLOCK_CPUS=4096
148# CONFIG_PPC_64K_PAGES is not set 166# CONFIG_PPC_64K_PAGES is not set
149# CONFIG_SCHED_SMT is not set 167# CONFIG_SCHED_SMT is not set
150CONFIG_PROC_DEVICETREE=y 168CONFIG_PROC_DEVICETREE=y
@@ -215,6 +233,10 @@ CONFIG_TCP_CONG_BIC=y
215# CONFIG_IPV6 is not set 233# CONFIG_IPV6 is not set
216CONFIG_NETFILTER=y 234CONFIG_NETFILTER=y
217# CONFIG_NETFILTER_DEBUG is not set 235# CONFIG_NETFILTER_DEBUG is not set
236
237#
238# Core Netfilter Configuration
239#
218# CONFIG_NETFILTER_NETLINK is not set 240# CONFIG_NETFILTER_NETLINK is not set
219 241
220# 242#
@@ -382,19 +404,6 @@ CONFIG_BLK_DEV_INITRD=y
382CONFIG_CDROM_PKTCDVD=m 404CONFIG_CDROM_PKTCDVD=m
383CONFIG_CDROM_PKTCDVD_BUFFERS=8 405CONFIG_CDROM_PKTCDVD_BUFFERS=8
384# CONFIG_CDROM_PKTCDVD_WCACHE is not set 406# CONFIG_CDROM_PKTCDVD_WCACHE is not set
385
386#
387# IO Schedulers
388#
389CONFIG_IOSCHED_NOOP=y
390CONFIG_IOSCHED_AS=y
391CONFIG_IOSCHED_DEADLINE=y
392CONFIG_IOSCHED_CFQ=y
393CONFIG_DEFAULT_AS=y
394# CONFIG_DEFAULT_DEADLINE is not set
395# CONFIG_DEFAULT_CFQ is not set
396# CONFIG_DEFAULT_NOOP is not set
397CONFIG_DEFAULT_IOSCHED="anticipatory"
398# CONFIG_ATA_OVER_ETH is not set 407# CONFIG_ATA_OVER_ETH is not set
399 408
400# 409#
@@ -656,7 +665,6 @@ CONFIG_SUNGEM=y
656# CONFIG_NET_TULIP is not set 665# CONFIG_NET_TULIP is not set
657# CONFIG_HP100 is not set 666# CONFIG_HP100 is not set
658# CONFIG_NET_PCI is not set 667# CONFIG_NET_PCI is not set
659# CONFIG_FEC_8XX is not set
660 668
661# 669#
662# Ethernet (1000 Mbit) 670# Ethernet (1000 Mbit)
@@ -710,6 +718,7 @@ CONFIG_PPP_ASYNC=m
710CONFIG_PPP_SYNC_TTY=m 718CONFIG_PPP_SYNC_TTY=m
711CONFIG_PPP_DEFLATE=m 719CONFIG_PPP_DEFLATE=m
712CONFIG_PPP_BSDCOMP=m 720CONFIG_PPP_BSDCOMP=m
721# CONFIG_PPP_MPPE is not set
713CONFIG_PPPOE=m 722CONFIG_PPPOE=m
714# CONFIG_SLIP is not set 723# CONFIG_SLIP is not set
715# CONFIG_NET_FC is not set 724# CONFIG_NET_FC is not set
@@ -804,6 +813,8 @@ CONFIG_LEGACY_PTY_COUNT=256
804# 813#
805# CONFIG_WATCHDOG is not set 814# CONFIG_WATCHDOG is not set
806# CONFIG_RTC is not set 815# CONFIG_RTC is not set
816CONFIG_GEN_RTC=y
817# CONFIG_GEN_RTC_X is not set
807# CONFIG_DTLK is not set 818# CONFIG_DTLK is not set
808# CONFIG_R3964 is not set 819# CONFIG_R3964 is not set
809# CONFIG_APPLICOM is not set 820# CONFIG_APPLICOM is not set
@@ -917,7 +928,6 @@ CONFIG_FB=y
917CONFIG_FB_CFB_FILLRECT=y 928CONFIG_FB_CFB_FILLRECT=y
918CONFIG_FB_CFB_COPYAREA=y 929CONFIG_FB_CFB_COPYAREA=y
919CONFIG_FB_CFB_IMAGEBLIT=y 930CONFIG_FB_CFB_IMAGEBLIT=y
920CONFIG_FB_SOFT_CURSOR=y
921CONFIG_FB_MACMODES=y 931CONFIG_FB_MACMODES=y
922CONFIG_FB_MODE_HELPERS=y 932CONFIG_FB_MODE_HELPERS=y
923CONFIG_FB_TILEBLITTING=y 933CONFIG_FB_TILEBLITTING=y
@@ -932,6 +942,7 @@ CONFIG_FB_OF=y
932# CONFIG_FB_ASILIANT is not set 942# CONFIG_FB_ASILIANT is not set
933# CONFIG_FB_IMSTT is not set 943# CONFIG_FB_IMSTT is not set
934# CONFIG_FB_VGA16 is not set 944# CONFIG_FB_VGA16 is not set
945# CONFIG_FB_S1D13XXX is not set
935CONFIG_FB_NVIDIA=y 946CONFIG_FB_NVIDIA=y
936CONFIG_FB_NVIDIA_I2C=y 947CONFIG_FB_NVIDIA_I2C=y
937# CONFIG_FB_RIVA is not set 948# CONFIG_FB_RIVA is not set
@@ -950,7 +961,6 @@ CONFIG_FB_RADEON_I2C=y
950# CONFIG_FB_VOODOO1 is not set 961# CONFIG_FB_VOODOO1 is not set
951# CONFIG_FB_CYBLA is not set 962# CONFIG_FB_CYBLA is not set
952# CONFIG_FB_TRIDENT is not set 963# CONFIG_FB_TRIDENT is not set
953# CONFIG_FB_S1D13XXX is not set
954# CONFIG_FB_VIRTUAL is not set 964# CONFIG_FB_VIRTUAL is not set
955 965
956# 966#
@@ -959,6 +969,7 @@ CONFIG_FB_RADEON_I2C=y
959# CONFIG_VGA_CONSOLE is not set 969# CONFIG_VGA_CONSOLE is not set
960CONFIG_DUMMY_CONSOLE=y 970CONFIG_DUMMY_CONSOLE=y
961CONFIG_FRAMEBUFFER_CONSOLE=y 971CONFIG_FRAMEBUFFER_CONSOLE=y
972# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
962# CONFIG_FONTS is not set 973# CONFIG_FONTS is not set
963CONFIG_FONT_8x8=y 974CONFIG_FONT_8x8=y
964CONFIG_FONT_8x16=y 975CONFIG_FONT_8x16=y
@@ -1474,10 +1485,11 @@ CONFIG_TEXTSEARCH_BM=m
1474CONFIG_TEXTSEARCH_FSM=m 1485CONFIG_TEXTSEARCH_FSM=m
1475 1486
1476# 1487#
1477# Profiling support 1488# Instrumentation Support
1478# 1489#
1479CONFIG_PROFILING=y 1490CONFIG_PROFILING=y
1480CONFIG_OPROFILE=y 1491CONFIG_OPROFILE=y
1492# CONFIG_KPROBES is not set
1481 1493
1482# 1494#
1483# Kernel hacking 1495# Kernel hacking
@@ -1497,7 +1509,6 @@ CONFIG_DEBUG_FS=y
1497# CONFIG_DEBUG_VM is not set 1509# CONFIG_DEBUG_VM is not set
1498# CONFIG_RCU_TORTURE_TEST is not set 1510# CONFIG_RCU_TORTURE_TEST is not set
1499# CONFIG_DEBUG_STACKOVERFLOW is not set 1511# CONFIG_DEBUG_STACKOVERFLOW is not set
1500# CONFIG_KPROBES is not set
1501# CONFIG_DEBUG_STACK_USAGE is not set 1512# CONFIG_DEBUG_STACK_USAGE is not set
1502# CONFIG_DEBUGGER is not set 1513# CONFIG_DEBUGGER is not set
1503CONFIG_IRQSTACKS=y 1514CONFIG_IRQSTACKS=y
diff --git a/arch/powerpc/configs/iseries_defconfig b/arch/powerpc/configs/iseries_defconfig
index 62e92c7e9e27..5d0866707a75 100644
--- a/arch/powerpc/configs/iseries_defconfig
+++ b/arch/powerpc/configs/iseries_defconfig
@@ -1,18 +1,33 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.14-rc4 3# Linux kernel version: 2.6.15-rc1
4# Thu Oct 20 08:30:56 2005 4# Tue Nov 15 14:38:09 2005
5# 5#
6CONFIG_PPC64=y
6CONFIG_64BIT=y 7CONFIG_64BIT=y
8CONFIG_PPC_MERGE=y
7CONFIG_MMU=y 9CONFIG_MMU=y
10CONFIG_GENERIC_HARDIRQS=y
8CONFIG_RWSEM_XCHGADD_ALGORITHM=y 11CONFIG_RWSEM_XCHGADD_ALGORITHM=y
9CONFIG_GENERIC_CALIBRATE_DELAY=y 12CONFIG_GENERIC_CALIBRATE_DELAY=y
10CONFIG_GENERIC_ISA_DMA=y 13CONFIG_PPC=y
11CONFIG_EARLY_PRINTK=y 14CONFIG_EARLY_PRINTK=y
12CONFIG_COMPAT=y 15CONFIG_COMPAT=y
16CONFIG_SYSVIPC_COMPAT=y
13CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 17CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
14CONFIG_ARCH_MAY_HAVE_PC_FDC=y 18CONFIG_ARCH_MAY_HAVE_PC_FDC=y
15CONFIG_FORCE_MAX_ZONEORDER=13 19
20#
21# Processor support
22#
23# CONFIG_POWER4_ONLY is not set
24CONFIG_POWER3=y
25CONFIG_POWER4=y
26CONFIG_PPC_FPU=y
27# CONFIG_ALTIVEC is not set
28CONFIG_PPC_STD_MMU=y
29CONFIG_SMP=y
30CONFIG_NR_CPUS=32
16 31
17# 32#
18# Code maturity level options 33# Code maturity level options
@@ -68,22 +83,60 @@ CONFIG_MODVERSIONS=y
68CONFIG_MODULE_SRCVERSION_ALL=y 83CONFIG_MODULE_SRCVERSION_ALL=y
69CONFIG_KMOD=y 84CONFIG_KMOD=y
70CONFIG_STOP_MACHINE=y 85CONFIG_STOP_MACHINE=y
71CONFIG_SYSVIPC_COMPAT=y 86
87#
88# Block layer
89#
90
91#
92# IO Schedulers
93#
94CONFIG_IOSCHED_NOOP=y
95CONFIG_IOSCHED_AS=y
96CONFIG_IOSCHED_DEADLINE=y
97CONFIG_IOSCHED_CFQ=y
98CONFIG_DEFAULT_AS=y
99# CONFIG_DEFAULT_DEADLINE is not set
100# CONFIG_DEFAULT_CFQ is not set
101# CONFIG_DEFAULT_NOOP is not set
102CONFIG_DEFAULT_IOSCHED="anticipatory"
72 103
73# 104#
74# Platform support 105# Platform support
75# 106#
76CONFIG_PPC_ISERIES=y
77# CONFIG_PPC_MULTIPLATFORM is not set 107# CONFIG_PPC_MULTIPLATFORM is not set
78CONFIG_PPC=y 108CONFIG_PPC_ISERIES=y
79CONFIG_PPC64=y 109# CONFIG_EMBEDDED6xx is not set
110# CONFIG_APUS is not set
111# CONFIG_PPC_RTAS is not set
112# CONFIG_MMIO_NVRAM is not set
80CONFIG_IBMVIO=y 113CONFIG_IBMVIO=y
81# CONFIG_POWER4_ONLY is not set 114# CONFIG_PPC_MPC106 is not set
115# CONFIG_GENERIC_TBSYNC is not set
116# CONFIG_CPU_FREQ is not set
117# CONFIG_WANT_EARLY_SERIAL is not set
118
119#
120# Kernel options
121#
122# CONFIG_HZ_100 is not set
123CONFIG_HZ_250=y
124# CONFIG_HZ_1000 is not set
125CONFIG_HZ=250
126CONFIG_PREEMPT_NONE=y
127# CONFIG_PREEMPT_VOLUNTARY is not set
128# CONFIG_PREEMPT is not set
129# CONFIG_PREEMPT_BKL is not set
130CONFIG_BINFMT_ELF=y
131# CONFIG_BINFMT_MISC is not set
132CONFIG_FORCE_MAX_ZONEORDER=13
82CONFIG_IOMMU_VMERGE=y 133CONFIG_IOMMU_VMERGE=y
83CONFIG_SMP=y 134CONFIG_IRQ_ALL_CPUS=y
84CONFIG_NR_CPUS=32 135CONFIG_LPARCFG=y
136# CONFIG_NUMA is not set
85CONFIG_ARCH_SELECT_MEMORY_MODEL=y 137CONFIG_ARCH_SELECT_MEMORY_MODEL=y
86CONFIG_ARCH_FLATMEM_ENABLE=y 138CONFIG_ARCH_FLATMEM_ENABLE=y
139CONFIG_ARCH_SPARSEMEM_ENABLE=y
87CONFIG_SELECT_MEMORY_MODEL=y 140CONFIG_SELECT_MEMORY_MODEL=y
88CONFIG_FLATMEM_MANUAL=y 141CONFIG_FLATMEM_MANUAL=y
89# CONFIG_DISCONTIGMEM_MANUAL is not set 142# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -91,26 +144,20 @@ CONFIG_FLATMEM_MANUAL=y
91CONFIG_FLATMEM=y 144CONFIG_FLATMEM=y
92CONFIG_FLAT_NODE_MEM_MAP=y 145CONFIG_FLAT_NODE_MEM_MAP=y
93# CONFIG_SPARSEMEM_STATIC is not set 146# CONFIG_SPARSEMEM_STATIC is not set
94# CONFIG_NUMA is not set 147CONFIG_SPLIT_PTLOCK_CPUS=4096
148# CONFIG_PPC_64K_PAGES is not set
95# CONFIG_SCHED_SMT is not set 149# CONFIG_SCHED_SMT is not set
96CONFIG_PREEMPT_NONE=y 150CONFIG_PROC_DEVICETREE=y
97# CONFIG_PREEMPT_VOLUNTARY is not set 151# CONFIG_PM is not set
98# CONFIG_PREEMPT is not set
99# CONFIG_PREEMPT_BKL is not set
100# CONFIG_HZ_100 is not set
101CONFIG_HZ_250=y
102# CONFIG_HZ_1000 is not set
103CONFIG_HZ=250
104CONFIG_GENERIC_HARDIRQS=y
105CONFIG_LPARCFG=y
106CONFIG_SECCOMP=y 152CONFIG_SECCOMP=y
107CONFIG_BINFMT_ELF=y
108# CONFIG_BINFMT_MISC is not set
109CONFIG_ISA_DMA_API=y 153CONFIG_ISA_DMA_API=y
110 154
111# 155#
112# Bus Options 156# Bus options
113# 157#
158CONFIG_GENERIC_ISA_DMA=y
159# CONFIG_PPC_I8259 is not set
160# CONFIG_PPC_INDIRECT_PCI is not set
114CONFIG_PCI=y 161CONFIG_PCI=y
115CONFIG_PCI_DOMAINS=y 162CONFIG_PCI_DOMAINS=y
116CONFIG_PCI_LEGACY_PROC=y 163CONFIG_PCI_LEGACY_PROC=y
@@ -125,6 +172,7 @@ CONFIG_PCI_LEGACY_PROC=y
125# PCI Hotplug Support 172# PCI Hotplug Support
126# 173#
127# CONFIG_HOTPLUG_PCI is not set 174# CONFIG_HOTPLUG_PCI is not set
175CONFIG_KERNEL_START=0xc000000000000000
128 176
129# 177#
130# Networking 178# Networking
@@ -166,6 +214,10 @@ CONFIG_TCP_CONG_BIC=y
166# CONFIG_IPV6 is not set 214# CONFIG_IPV6 is not set
167CONFIG_NETFILTER=y 215CONFIG_NETFILTER=y
168# CONFIG_NETFILTER_DEBUG is not set 216# CONFIG_NETFILTER_DEBUG is not set
217
218#
219# Core Netfilter Configuration
220#
169# CONFIG_NETFILTER_NETLINK is not set 221# CONFIG_NETFILTER_NETLINK is not set
170 222
171# 223#
@@ -265,6 +317,10 @@ CONFIG_LLC=y
265# CONFIG_NET_DIVERT is not set 317# CONFIG_NET_DIVERT is not set
266# CONFIG_ECONET is not set 318# CONFIG_ECONET is not set
267# CONFIG_WAN_ROUTER is not set 319# CONFIG_WAN_ROUTER is not set
320
321#
322# QoS and/or fair queueing
323#
268# CONFIG_NET_SCHED is not set 324# CONFIG_NET_SCHED is not set
269CONFIG_NET_CLS_ROUTE=y 325CONFIG_NET_CLS_ROUTE=y
270 326
@@ -326,14 +382,6 @@ CONFIG_BLK_DEV_RAM_COUNT=16
326CONFIG_BLK_DEV_RAM_SIZE=65536 382CONFIG_BLK_DEV_RAM_SIZE=65536
327CONFIG_BLK_DEV_INITRD=y 383CONFIG_BLK_DEV_INITRD=y
328# CONFIG_CDROM_PKTCDVD is not set 384# CONFIG_CDROM_PKTCDVD is not set
329
330#
331# IO Schedulers
332#
333CONFIG_IOSCHED_NOOP=y
334CONFIG_IOSCHED_AS=y
335CONFIG_IOSCHED_DEADLINE=y
336CONFIG_IOSCHED_CFQ=y
337# CONFIG_ATA_OVER_ETH is not set 385# CONFIG_ATA_OVER_ETH is not set
338 386
339# 387#
@@ -377,6 +425,7 @@ CONFIG_SCSI_FC_ATTRS=y
377# 425#
378# SCSI low-level drivers 426# SCSI low-level drivers
379# 427#
428# CONFIG_ISCSI_TCP is not set
380# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 429# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
381# CONFIG_SCSI_3W_9XXX is not set 430# CONFIG_SCSI_3W_9XXX is not set
382# CONFIG_SCSI_ACARD is not set 431# CONFIG_SCSI_ACARD is not set
@@ -454,6 +503,7 @@ CONFIG_DM_ZERO=m
454# 503#
455# Macintosh device drivers 504# Macintosh device drivers
456# 505#
506# CONFIG_WINDFARM is not set
457 507
458# 508#
459# Network device support 509# Network device support
@@ -561,6 +611,7 @@ CONFIG_PPP_ASYNC=m
561CONFIG_PPP_SYNC_TTY=m 611CONFIG_PPP_SYNC_TTY=m
562CONFIG_PPP_DEFLATE=m 612CONFIG_PPP_DEFLATE=m
563CONFIG_PPP_BSDCOMP=m 613CONFIG_PPP_BSDCOMP=m
614# CONFIG_PPP_MPPE is not set
564CONFIG_PPPOE=m 615CONFIG_PPPOE=m
565# CONFIG_SLIP is not set 616# CONFIG_SLIP is not set
566# CONFIG_NET_FC is not set 617# CONFIG_NET_FC is not set
@@ -643,6 +694,8 @@ CONFIG_LEGACY_PTY_COUNT=256
643# 694#
644# CONFIG_WATCHDOG is not set 695# CONFIG_WATCHDOG is not set
645# CONFIG_RTC is not set 696# CONFIG_RTC is not set
697CONFIG_GEN_RTC=y
698# CONFIG_GEN_RTC_X is not set
646# CONFIG_DTLK is not set 699# CONFIG_DTLK is not set
647# CONFIG_R3964 is not set 700# CONFIG_R3964 is not set
648# CONFIG_APPLICOM is not set 701# CONFIG_APPLICOM is not set
@@ -660,6 +713,7 @@ CONFIG_MAX_RAW_DEVS=256
660# TPM devices 713# TPM devices
661# 714#
662# CONFIG_TCG_TPM is not set 715# CONFIG_TCG_TPM is not set
716# CONFIG_TELCLOCK is not set
663 717
664# 718#
665# I2C support 719# I2C support
@@ -713,6 +767,10 @@ CONFIG_USB_ARCH_HAS_OHCI=y
713# CONFIG_USB is not set 767# CONFIG_USB is not set
714 768
715# 769#
770# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
771#
772
773#
716# USB Gadget Support 774# USB Gadget Support
717# 775#
718# CONFIG_USB_GADGET is not set 776# CONFIG_USB_GADGET is not set
@@ -917,10 +975,25 @@ CONFIG_VIOTAPE=m
917CONFIG_VIOPATH=y 975CONFIG_VIOPATH=y
918 976
919# 977#
920# Profiling support 978# Library routines
979#
980CONFIG_CRC_CCITT=m
981# CONFIG_CRC16 is not set
982CONFIG_CRC32=y
983CONFIG_LIBCRC32C=m
984CONFIG_ZLIB_INFLATE=y
985CONFIG_ZLIB_DEFLATE=m
986CONFIG_TEXTSEARCH=y
987CONFIG_TEXTSEARCH_KMP=m
988CONFIG_TEXTSEARCH_BM=m
989CONFIG_TEXTSEARCH_FSM=m
990
991#
992# Instrumentation Support
921# 993#
922CONFIG_PROFILING=y 994CONFIG_PROFILING=y
923CONFIG_OPROFILE=y 995CONFIG_OPROFILE=y
996# CONFIG_KPROBES is not set
924 997
925# 998#
926# Kernel hacking 999# Kernel hacking
@@ -937,11 +1010,11 @@ CONFIG_DETECT_SOFTLOCKUP=y
937# CONFIG_DEBUG_KOBJECT is not set 1010# CONFIG_DEBUG_KOBJECT is not set
938# CONFIG_DEBUG_INFO is not set 1011# CONFIG_DEBUG_INFO is not set
939CONFIG_DEBUG_FS=y 1012CONFIG_DEBUG_FS=y
1013# CONFIG_DEBUG_VM is not set
1014# CONFIG_RCU_TORTURE_TEST is not set
940CONFIG_DEBUG_STACKOVERFLOW=y 1015CONFIG_DEBUG_STACKOVERFLOW=y
941# CONFIG_KPROBES is not set
942CONFIG_DEBUG_STACK_USAGE=y 1016CONFIG_DEBUG_STACK_USAGE=y
943# CONFIG_DEBUGGER is not set 1017# CONFIG_DEBUGGER is not set
944# CONFIG_PPCDBG is not set
945CONFIG_IRQSTACKS=y 1018CONFIG_IRQSTACKS=y
946 1019
947# 1020#
@@ -982,17 +1055,3 @@ CONFIG_CRYPTO_TEST=m
982# 1055#
983# Hardware crypto devices 1056# Hardware crypto devices
984# 1057#
985
986#
987# Library routines
988#
989CONFIG_CRC_CCITT=m
990# CONFIG_CRC16 is not set
991CONFIG_CRC32=y
992CONFIG_LIBCRC32C=m
993CONFIG_ZLIB_INFLATE=y
994CONFIG_ZLIB_DEFLATE=m
995CONFIG_TEXTSEARCH=y
996CONFIG_TEXTSEARCH_KMP=m
997CONFIG_TEXTSEARCH_BM=m
998CONFIG_TEXTSEARCH_FSM=m
diff --git a/arch/powerpc/configs/maple_defconfig b/arch/powerpc/configs/maple_defconfig
index 7b480f3d1406..92e42613ef06 100644
--- a/arch/powerpc/configs/maple_defconfig
+++ b/arch/powerpc/configs/maple_defconfig
@@ -1,18 +1,32 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.14-rc4 3# Linux kernel version: 2.6.15-rc1
4# Thu Oct 20 08:31:24 2005 4# Tue Nov 15 14:38:58 2005
5# 5#
6CONFIG_PPC64=y
6CONFIG_64BIT=y 7CONFIG_64BIT=y
8CONFIG_PPC_MERGE=y
7CONFIG_MMU=y 9CONFIG_MMU=y
10CONFIG_GENERIC_HARDIRQS=y
8CONFIG_RWSEM_XCHGADD_ALGORITHM=y 11CONFIG_RWSEM_XCHGADD_ALGORITHM=y
9CONFIG_GENERIC_CALIBRATE_DELAY=y 12CONFIG_GENERIC_CALIBRATE_DELAY=y
10CONFIG_GENERIC_ISA_DMA=y 13CONFIG_PPC=y
11CONFIG_EARLY_PRINTK=y 14CONFIG_EARLY_PRINTK=y
12CONFIG_COMPAT=y 15CONFIG_COMPAT=y
16CONFIG_SYSVIPC_COMPAT=y
13CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 17CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
14CONFIG_ARCH_MAY_HAVE_PC_FDC=y 18CONFIG_ARCH_MAY_HAVE_PC_FDC=y
15CONFIG_FORCE_MAX_ZONEORDER=13 19
20#
21# Processor support
22#
23CONFIG_POWER4_ONLY=y
24CONFIG_POWER4=y
25CONFIG_PPC_FPU=y
26# CONFIG_ALTIVEC is not set
27CONFIG_PPC_STD_MMU=y
28CONFIG_SMP=y
29CONFIG_NR_CPUS=2
16 30
17# 31#
18# Code maturity level options 32# Code maturity level options
@@ -67,32 +81,67 @@ CONFIG_MODVERSIONS=y
67CONFIG_MODULE_SRCVERSION_ALL=y 81CONFIG_MODULE_SRCVERSION_ALL=y
68CONFIG_KMOD=y 82CONFIG_KMOD=y
69CONFIG_STOP_MACHINE=y 83CONFIG_STOP_MACHINE=y
70CONFIG_SYSVIPC_COMPAT=y 84
85#
86# Block layer
87#
88
89#
90# IO Schedulers
91#
92CONFIG_IOSCHED_NOOP=y
93CONFIG_IOSCHED_AS=y
94CONFIG_IOSCHED_DEADLINE=y
95CONFIG_IOSCHED_CFQ=y
96CONFIG_DEFAULT_AS=y
97# CONFIG_DEFAULT_DEADLINE is not set
98# CONFIG_DEFAULT_CFQ is not set
99# CONFIG_DEFAULT_NOOP is not set
100CONFIG_DEFAULT_IOSCHED="anticipatory"
71 101
72# 102#
73# Platform support 103# Platform support
74# 104#
75# CONFIG_PPC_ISERIES is not set
76CONFIG_PPC_MULTIPLATFORM=y 105CONFIG_PPC_MULTIPLATFORM=y
106# CONFIG_PPC_ISERIES is not set
107# CONFIG_EMBEDDED6xx is not set
108# CONFIG_APUS is not set
77# CONFIG_PPC_PSERIES is not set 109# CONFIG_PPC_PSERIES is not set
78# CONFIG_PPC_BPA is not set
79# CONFIG_PPC_PMAC is not set 110# CONFIG_PPC_PMAC is not set
80CONFIG_PPC_MAPLE=y 111CONFIG_PPC_MAPLE=y
81CONFIG_PPC=y 112# CONFIG_PPC_CELL is not set
82CONFIG_PPC64=y
83CONFIG_PPC_OF=y 113CONFIG_PPC_OF=y
84CONFIG_MPIC=y
85# CONFIG_ALTIVEC is not set
86CONFIG_KEXEC=y
87CONFIG_U3_DART=y 114CONFIG_U3_DART=y
115CONFIG_MPIC=y
116# CONFIG_PPC_RTAS is not set
117# CONFIG_MMIO_NVRAM is not set
88CONFIG_MPIC_BROKEN_U3=y 118CONFIG_MPIC_BROKEN_U3=y
89CONFIG_BOOTX_TEXT=y 119# CONFIG_PPC_MPC106 is not set
90CONFIG_POWER4_ONLY=y 120CONFIG_GENERIC_TBSYNC=y
121# CONFIG_CPU_FREQ is not set
122# CONFIG_WANT_EARLY_SERIAL is not set
123
124#
125# Kernel options
126#
127# CONFIG_HZ_100 is not set
128CONFIG_HZ_250=y
129# CONFIG_HZ_1000 is not set
130CONFIG_HZ=250
131CONFIG_PREEMPT_NONE=y
132# CONFIG_PREEMPT_VOLUNTARY is not set
133# CONFIG_PREEMPT is not set
134# CONFIG_PREEMPT_BKL is not set
135CONFIG_BINFMT_ELF=y
136# CONFIG_BINFMT_MISC is not set
137CONFIG_FORCE_MAX_ZONEORDER=13
91CONFIG_IOMMU_VMERGE=y 138CONFIG_IOMMU_VMERGE=y
92CONFIG_SMP=y 139CONFIG_KEXEC=y
93CONFIG_NR_CPUS=2 140CONFIG_IRQ_ALL_CPUS=y
141# CONFIG_NUMA is not set
94CONFIG_ARCH_SELECT_MEMORY_MODEL=y 142CONFIG_ARCH_SELECT_MEMORY_MODEL=y
95CONFIG_ARCH_FLATMEM_ENABLE=y 143CONFIG_ARCH_FLATMEM_ENABLE=y
144CONFIG_ARCH_SPARSEMEM_ENABLE=y
96CONFIG_SELECT_MEMORY_MODEL=y 145CONFIG_SELECT_MEMORY_MODEL=y
97CONFIG_FLATMEM_MANUAL=y 146CONFIG_FLATMEM_MANUAL=y
98# CONFIG_DISCONTIGMEM_MANUAL is not set 147# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -100,27 +149,21 @@ CONFIG_FLATMEM_MANUAL=y
100CONFIG_FLATMEM=y 149CONFIG_FLATMEM=y
101CONFIG_FLAT_NODE_MEM_MAP=y 150CONFIG_FLAT_NODE_MEM_MAP=y
102# CONFIG_SPARSEMEM_STATIC is not set 151# CONFIG_SPARSEMEM_STATIC is not set
103# CONFIG_NUMA is not set 152CONFIG_SPLIT_PTLOCK_CPUS=4096
153# CONFIG_PPC_64K_PAGES is not set
104# CONFIG_SCHED_SMT is not set 154# CONFIG_SCHED_SMT is not set
105CONFIG_PREEMPT_NONE=y
106# CONFIG_PREEMPT_VOLUNTARY is not set
107# CONFIG_PREEMPT is not set
108# CONFIG_PREEMPT_BKL is not set
109# CONFIG_HZ_100 is not set
110CONFIG_HZ_250=y
111# CONFIG_HZ_1000 is not set
112CONFIG_HZ=250
113CONFIG_GENERIC_HARDIRQS=y
114CONFIG_SECCOMP=y
115CONFIG_BINFMT_ELF=y
116# CONFIG_BINFMT_MISC is not set
117CONFIG_PROC_DEVICETREE=y 155CONFIG_PROC_DEVICETREE=y
118# CONFIG_CMDLINE_BOOL is not set 156# CONFIG_CMDLINE_BOOL is not set
157# CONFIG_PM is not set
158CONFIG_SECCOMP=y
119CONFIG_ISA_DMA_API=y 159CONFIG_ISA_DMA_API=y
120 160
121# 161#
122# Bus Options 162# Bus options
123# 163#
164CONFIG_GENERIC_ISA_DMA=y
165# CONFIG_PPC_I8259 is not set
166# CONFIG_PPC_INDIRECT_PCI is not set
124CONFIG_PCI=y 167CONFIG_PCI=y
125CONFIG_PCI_DOMAINS=y 168CONFIG_PCI_DOMAINS=y
126CONFIG_PCI_LEGACY_PROC=y 169CONFIG_PCI_LEGACY_PROC=y
@@ -135,6 +178,7 @@ CONFIG_PCI_LEGACY_PROC=y
135# PCI Hotplug Support 178# PCI Hotplug Support
136# 179#
137# CONFIG_HOTPLUG_PCI is not set 180# CONFIG_HOTPLUG_PCI is not set
181CONFIG_KERNEL_START=0xc000000000000000
138 182
139# 183#
140# Networking 184# Networking
@@ -193,6 +237,10 @@ CONFIG_TCP_CONG_BIC=y
193# CONFIG_NET_DIVERT is not set 237# CONFIG_NET_DIVERT is not set
194# CONFIG_ECONET is not set 238# CONFIG_ECONET is not set
195# CONFIG_WAN_ROUTER is not set 239# CONFIG_WAN_ROUTER is not set
240
241#
242# QoS and/or fair queueing
243#
196# CONFIG_NET_SCHED is not set 244# CONFIG_NET_SCHED is not set
197# CONFIG_NET_CLS_ROUTE is not set 245# CONFIG_NET_CLS_ROUTE is not set
198 246
@@ -254,14 +302,6 @@ CONFIG_BLK_DEV_RAM_COUNT=16
254CONFIG_BLK_DEV_RAM_SIZE=8192 302CONFIG_BLK_DEV_RAM_SIZE=8192
255# CONFIG_BLK_DEV_INITRD is not set 303# CONFIG_BLK_DEV_INITRD is not set
256# CONFIG_CDROM_PKTCDVD is not set 304# CONFIG_CDROM_PKTCDVD is not set
257
258#
259# IO Schedulers
260#
261CONFIG_IOSCHED_NOOP=y
262CONFIG_IOSCHED_AS=y
263CONFIG_IOSCHED_DEADLINE=y
264CONFIG_IOSCHED_CFQ=y
265# CONFIG_ATA_OVER_ETH is not set 305# CONFIG_ATA_OVER_ETH is not set
266 306
267# 307#
@@ -351,6 +391,7 @@ CONFIG_IDEDMA_AUTO=y
351# 391#
352# Macintosh device drivers 392# Macintosh device drivers
353# 393#
394# CONFIG_WINDFARM is not set
354 395
355# 396#
356# Network device support 397# Network device support
@@ -533,6 +574,8 @@ CONFIG_LEGACY_PTY_COUNT=256
533# 574#
534# CONFIG_WATCHDOG is not set 575# CONFIG_WATCHDOG is not set
535# CONFIG_RTC is not set 576# CONFIG_RTC is not set
577CONFIG_GEN_RTC=y
578# CONFIG_GEN_RTC_X is not set
536# CONFIG_DTLK is not set 579# CONFIG_DTLK is not set
537# CONFIG_R3964 is not set 580# CONFIG_R3964 is not set
538# CONFIG_APPLICOM is not set 581# CONFIG_APPLICOM is not set
@@ -549,6 +592,7 @@ CONFIG_LEGACY_PTY_COUNT=256
549# TPM devices 592# TPM devices
550# 593#
551# CONFIG_TCG_TPM is not set 594# CONFIG_TCG_TPM is not set
595# CONFIG_TELCLOCK is not set
552 596
553# 597#
554# I2C support 598# I2C support
@@ -599,6 +643,7 @@ CONFIG_I2C_AMD8111=y
599# CONFIG_SENSORS_PCF8591 is not set 643# CONFIG_SENSORS_PCF8591 is not set
600# CONFIG_SENSORS_RTC8564 is not set 644# CONFIG_SENSORS_RTC8564 is not set
601# CONFIG_SENSORS_MAX6875 is not set 645# CONFIG_SENSORS_MAX6875 is not set
646# CONFIG_RTC_X1205_I2C is not set
602# CONFIG_I2C_DEBUG_CORE is not set 647# CONFIG_I2C_DEBUG_CORE is not set
603# CONFIG_I2C_DEBUG_ALGO is not set 648# CONFIG_I2C_DEBUG_ALGO is not set
604# CONFIG_I2C_DEBUG_BUS is not set 649# CONFIG_I2C_DEBUG_BUS is not set
@@ -681,12 +726,15 @@ CONFIG_USB_UHCI_HCD=y
681# 726#
682# USB Device Class drivers 727# USB Device Class drivers
683# 728#
684# CONFIG_USB_BLUETOOTH_TTY is not set
685# CONFIG_USB_ACM is not set 729# CONFIG_USB_ACM is not set
686# CONFIG_USB_PRINTER is not set 730# CONFIG_USB_PRINTER is not set
687 731
688# 732#
689# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information 733# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
734#
735
736#
737# may also be needed; see USB_STORAGE Help for more information
690# 738#
691# CONFIG_USB_STORAGE is not set 739# CONFIG_USB_STORAGE is not set
692 740
@@ -776,6 +824,7 @@ CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
776# CONFIG_USB_SERIAL_KLSI is not set 824# CONFIG_USB_SERIAL_KLSI is not set
777# CONFIG_USB_SERIAL_KOBIL_SCT is not set 825# CONFIG_USB_SERIAL_KOBIL_SCT is not set
778# CONFIG_USB_SERIAL_MCT_U232 is not set 826# CONFIG_USB_SERIAL_MCT_U232 is not set
827# CONFIG_USB_SERIAL_NOKIA_DKU2 is not set
779# CONFIG_USB_SERIAL_PL2303 is not set 828# CONFIG_USB_SERIAL_PL2303 is not set
780# CONFIG_USB_SERIAL_HP4X is not set 829# CONFIG_USB_SERIAL_HP4X is not set
781# CONFIG_USB_SERIAL_SAFE is not set 830# CONFIG_USB_SERIAL_SAFE is not set
@@ -985,9 +1034,19 @@ CONFIG_NLS_DEFAULT="utf-8"
985CONFIG_NLS_UTF8=y 1034CONFIG_NLS_UTF8=y
986 1035
987# 1036#
988# Profiling support 1037# Library routines
1038#
1039CONFIG_CRC_CCITT=y
1040# CONFIG_CRC16 is not set
1041CONFIG_CRC32=y
1042# CONFIG_LIBCRC32C is not set
1043CONFIG_ZLIB_INFLATE=y
1044
1045#
1046# Instrumentation Support
989# 1047#
990# CONFIG_PROFILING is not set 1048# CONFIG_PROFILING is not set
1049# CONFIG_KPROBES is not set
991 1050
992# 1051#
993# Kernel hacking 1052# Kernel hacking
@@ -1004,14 +1063,15 @@ CONFIG_DEBUG_SPINLOCK_SLEEP=y
1004# CONFIG_DEBUG_KOBJECT is not set 1063# CONFIG_DEBUG_KOBJECT is not set
1005# CONFIG_DEBUG_INFO is not set 1064# CONFIG_DEBUG_INFO is not set
1006CONFIG_DEBUG_FS=y 1065CONFIG_DEBUG_FS=y
1066# CONFIG_DEBUG_VM is not set
1067# CONFIG_RCU_TORTURE_TEST is not set
1007CONFIG_DEBUG_STACKOVERFLOW=y 1068CONFIG_DEBUG_STACKOVERFLOW=y
1008# CONFIG_KPROBES is not set
1009CONFIG_DEBUG_STACK_USAGE=y 1069CONFIG_DEBUG_STACK_USAGE=y
1010CONFIG_DEBUGGER=y 1070CONFIG_DEBUGGER=y
1011CONFIG_XMON=y 1071CONFIG_XMON=y
1012CONFIG_XMON_DEFAULT=y 1072CONFIG_XMON_DEFAULT=y
1013# CONFIG_PPCDBG is not set
1014# CONFIG_IRQSTACKS is not set 1073# CONFIG_IRQSTACKS is not set
1074CONFIG_BOOTX_TEXT=y
1015 1075
1016# 1076#
1017# Security options 1077# Security options
@@ -1051,12 +1111,3 @@ CONFIG_CRYPTO_DES=y
1051# 1111#
1052# Hardware crypto devices 1112# Hardware crypto devices
1053# 1113#
1054
1055#
1056# Library routines
1057#
1058CONFIG_CRC_CCITT=y
1059# CONFIG_CRC16 is not set
1060CONFIG_CRC32=y
1061# CONFIG_LIBCRC32C is not set
1062CONFIG_ZLIB_INFLATE=y
diff --git a/arch/powerpc/configs/pseries_defconfig b/arch/powerpc/configs/pseries_defconfig
index 913962c1dae0..b4745c918a4a 100644
--- a/arch/powerpc/configs/pseries_defconfig
+++ b/arch/powerpc/configs/pseries_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.15-rc1 3# Linux kernel version: 2.6.15-rc1
4# Mon Nov 14 15:27:00 2005 4# Tue Nov 15 14:36:55 2005
5# 5#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7CONFIG_64BIT=y 7CONFIG_64BIT=y
@@ -144,7 +144,7 @@ CONFIG_FORCE_MAX_ZONEORDER=13
144CONFIG_IOMMU_VMERGE=y 144CONFIG_IOMMU_VMERGE=y
145CONFIG_HOTPLUG_CPU=y 145CONFIG_HOTPLUG_CPU=y
146CONFIG_KEXEC=y 146CONFIG_KEXEC=y
147# CONFIG_IRQ_ALL_CPUS is not set 147CONFIG_IRQ_ALL_CPUS=y
148CONFIG_PPC_SPLPAR=y 148CONFIG_PPC_SPLPAR=y
149CONFIG_EEH=y 149CONFIG_EEH=y
150CONFIG_SCANLOG=m 150CONFIG_SCANLOG=m
diff --git a/arch/powerpc/kernel/pci_64.c b/arch/powerpc/kernel/pci_64.c
index 3cef1b8f57f0..5a5b24685081 100644
--- a/arch/powerpc/kernel/pci_64.c
+++ b/arch/powerpc/kernel/pci_64.c
@@ -30,10 +30,10 @@
30#include <asm/byteorder.h> 30#include <asm/byteorder.h>
31#include <asm/irq.h> 31#include <asm/irq.h>
32#include <asm/machdep.h> 32#include <asm/machdep.h>
33#include <asm/udbg.h>
34#include <asm/ppc-pci.h> 33#include <asm/ppc-pci.h>
35 34
36#ifdef DEBUG 35#ifdef DEBUG
36#include <asm/udbg.h>
37#define DBG(fmt...) udbg_printf(fmt) 37#define DBG(fmt...) udbg_printf(fmt)
38#else 38#else
39#define DBG(fmt...) 39#define DBG(fmt...)
@@ -187,7 +187,7 @@ static DEFINE_SPINLOCK(hose_spinlock);
187/* 187/*
188 * pci_controller(phb) initialized common variables. 188 * pci_controller(phb) initialized common variables.
189 */ 189 */
190void __devinit pci_setup_pci_controller(struct pci_controller *hose) 190static void __devinit pci_setup_pci_controller(struct pci_controller *hose)
191{ 191{
192 memset(hose, 0, sizeof(struct pci_controller)); 192 memset(hose, 0, sizeof(struct pci_controller));
193 193
@@ -197,6 +197,65 @@ void __devinit pci_setup_pci_controller(struct pci_controller *hose)
197 spin_unlock(&hose_spinlock); 197 spin_unlock(&hose_spinlock);
198} 198}
199 199
200static void add_linux_pci_domain(struct device_node *dev,
201 struct pci_controller *phb)
202{
203 struct property *of_prop;
204 unsigned int size;
205
206 of_prop = (struct property *)
207 get_property(dev, "linux,pci-domain", &size);
208 if (of_prop != NULL)
209 return;
210 WARN_ON(of_prop && size < sizeof(int));
211 if (of_prop && size < sizeof(int))
212 of_prop = NULL;
213 size = sizeof(struct property) + sizeof(int);
214 if (of_prop == NULL) {
215 if (mem_init_done)
216 of_prop = kmalloc(size, GFP_KERNEL);
217 else
218 of_prop = alloc_bootmem(size);
219 }
220 memset(of_prop, 0, sizeof(struct property));
221 of_prop->name = "linux,pci-domain";
222 of_prop->length = sizeof(int);
223 of_prop->value = (unsigned char *)&of_prop[1];
224 *((int *)of_prop->value) = phb->global_number;
225 prom_add_property(dev, of_prop);
226}
227
228struct pci_controller * pcibios_alloc_controller(struct device_node *dev)
229{
230 struct pci_controller *phb;
231
232 if (mem_init_done)
233 phb = kmalloc(sizeof(struct pci_controller), GFP_KERNEL);
234 else
235 phb = alloc_bootmem(sizeof (struct pci_controller));
236 if (phb == NULL)
237 return NULL;
238 pci_setup_pci_controller(phb);
239 phb->arch_data = dev;
240 phb->is_dynamic = mem_init_done;
241 if (dev)
242 add_linux_pci_domain(dev, phb);
243 return phb;
244}
245
246void pcibios_free_controller(struct pci_controller *phb)
247{
248 if (phb->arch_data) {
249 struct device_node *np = phb->arch_data;
250 int *domain = (int *)get_property(np,
251 "linux,pci-domain", NULL);
252 if (domain)
253 *domain = -1;
254 }
255 if (phb->is_dynamic)
256 kfree(phb);
257}
258
200static void __init pcibios_claim_one_bus(struct pci_bus *b) 259static void __init pcibios_claim_one_bus(struct pci_bus *b)
201{ 260{
202 struct pci_dev *dev; 261 struct pci_dev *dev;
@@ -907,9 +966,10 @@ void __devinit pci_process_bridge_OF_ranges(struct pci_controller *hose,
907 * (size depending on dev->n_addr_cells) 966 * (size depending on dev->n_addr_cells)
908 * cells 4+5 or 5+6: the size of the range 967 * cells 4+5 or 5+6: the size of the range
909 */ 968 */
910 rlen = 0;
911 hose->io_base_phys = 0;
912 ranges = (unsigned int *) get_property(dev, "ranges", &rlen); 969 ranges = (unsigned int *) get_property(dev, "ranges", &rlen);
970 if (ranges == NULL)
971 return;
972 hose->io_base_phys = 0;
913 while ((rlen -= np * sizeof(unsigned int)) >= 0) { 973 while ((rlen -= np * sizeof(unsigned int)) >= 0) {
914 res = NULL; 974 res = NULL;
915 pci_space = ranges[0]; 975 pci_space = ranges[0];
@@ -1107,6 +1167,8 @@ int remap_bus_range(struct pci_bus *bus)
1107 1167
1108 if (get_bus_io_range(bus, &start_phys, &start_virt, &size)) 1168 if (get_bus_io_range(bus, &start_phys, &start_virt, &size))
1109 return 1; 1169 return 1;
1170 if (start_phys == 0)
1171 return 1;
1110 printk("mapping IO %lx -> %lx, size: %lx\n", start_phys, start_virt, size); 1172 printk("mapping IO %lx -> %lx, size: %lx\n", start_phys, start_virt, size);
1111 if (__ioremap_explicit(start_phys, start_virt, size, 1173 if (__ioremap_explicit(start_phys, start_virt, size,
1112 _PAGE_NO_CACHE | _PAGE_GUARDED)) 1174 _PAGE_NO_CACHE | _PAGE_GUARDED))
diff --git a/arch/powerpc/kernel/rtas_pci.c b/arch/powerpc/kernel/rtas_pci.c
index 0e5a8e116653..60dec2401c26 100644
--- a/arch/powerpc/kernel/rtas_pci.c
+++ b/arch/powerpc/kernel/rtas_pci.c
@@ -304,75 +304,18 @@ static int __devinit setup_phb(struct device_node *dev,
304 struct pci_controller *phb, 304 struct pci_controller *phb,
305 unsigned int addr_size_words) 305 unsigned int addr_size_words)
306{ 306{
307 pci_setup_pci_controller(phb);
308
309 if (is_python(dev)) 307 if (is_python(dev))
310 python_countermeasures(dev, addr_size_words); 308 python_countermeasures(dev, addr_size_words);
311 309
312 if (phb_set_bus_ranges(dev, phb)) 310 if (phb_set_bus_ranges(dev, phb))
313 return 1; 311 return 1;
314 312
315 phb->arch_data = dev;
316 phb->ops = &rtas_pci_ops; 313 phb->ops = &rtas_pci_ops;
317 phb->buid = get_phb_buid(dev); 314 phb->buid = get_phb_buid(dev);
318 315
319 return 0; 316 return 0;
320} 317}
321 318
322static void __devinit add_linux_pci_domain(struct device_node *dev,
323 struct pci_controller *phb,
324 struct property *of_prop)
325{
326 memset(of_prop, 0, sizeof(struct property));
327 of_prop->name = "linux,pci-domain";
328 of_prop->length = sizeof(phb->global_number);
329 of_prop->value = (unsigned char *)&of_prop[1];
330 memcpy(of_prop->value, &phb->global_number, sizeof(phb->global_number));
331 prom_add_property(dev, of_prop);
332}
333
334static struct pci_controller * __init alloc_phb(struct device_node *dev,
335 unsigned int addr_size_words)
336{
337 struct pci_controller *phb;
338 struct property *of_prop;
339
340 phb = alloc_bootmem(sizeof(struct pci_controller));
341 if (phb == NULL)
342 return NULL;
343
344 of_prop = alloc_bootmem(sizeof(struct property) +
345 sizeof(phb->global_number));
346 if (!of_prop)
347 return NULL;
348
349 if (setup_phb(dev, phb, addr_size_words))
350 return NULL;
351
352 add_linux_pci_domain(dev, phb, of_prop);
353
354 return phb;
355}
356
357static struct pci_controller * __devinit alloc_phb_dynamic(struct device_node *dev, unsigned int addr_size_words)
358{
359 struct pci_controller *phb;
360
361 phb = (struct pci_controller *)kmalloc(sizeof(struct pci_controller),
362 GFP_KERNEL);
363 if (phb == NULL)
364 return NULL;
365
366 if (setup_phb(dev, phb, addr_size_words))
367 return NULL;
368
369 phb->is_dynamic = 1;
370
371 /* TODO: linux,pci-domain? */
372
373 return phb;
374}
375
376unsigned long __init find_and_init_phbs(void) 319unsigned long __init find_and_init_phbs(void)
377{ 320{
378 struct device_node *node; 321 struct device_node *node;
@@ -397,10 +340,10 @@ unsigned long __init find_and_init_phbs(void)
397 if (node->type == NULL || strcmp(node->type, "pci") != 0) 340 if (node->type == NULL || strcmp(node->type, "pci") != 0)
398 continue; 341 continue;
399 342
400 phb = alloc_phb(node, root_size_cells); 343 phb = pcibios_alloc_controller(node);
401 if (!phb) 344 if (!phb)
402 continue; 345 continue;
403 346 setup_phb(node, phb, root_size_cells);
404 pci_process_bridge_OF_ranges(phb, node, 0); 347 pci_process_bridge_OF_ranges(phb, node, 0);
405 pci_setup_phb_io(phb, index == 0); 348 pci_setup_phb_io(phb, index == 0);
406#ifdef CONFIG_PPC_PSERIES 349#ifdef CONFIG_PPC_PSERIES
@@ -446,10 +389,10 @@ struct pci_controller * __devinit init_phb_dynamic(struct device_node *dn)
446 root_size_cells = prom_n_size_cells(root); 389 root_size_cells = prom_n_size_cells(root);
447 390
448 primary = list_empty(&hose_list); 391 primary = list_empty(&hose_list);
449 phb = alloc_phb_dynamic(dn, root_size_cells); 392 phb = pcibios_alloc_controller(dn);
450 if (!phb) 393 if (!phb)
451 return NULL; 394 return NULL;
452 395 setup_phb(dn, phb, root_size_cells);
453 pci_process_bridge_OF_ranges(phb, dn, primary); 396 pci_process_bridge_OF_ranges(phb, dn, primary);
454 397
455 pci_setup_phb_io_dynamic(phb, primary); 398 pci_setup_phb_io_dynamic(phb, primary);
@@ -505,8 +448,7 @@ int pcibios_remove_root_bus(struct pci_controller *phb)
505 } 448 }
506 449
507 list_del(&phb->list_node); 450 list_del(&phb->list_node);
508 if (phb->is_dynamic) 451 pcibios_free_controller(phb);
509 kfree(phb);
510 452
511 return 0; 453 return 0;
512} 454}
diff --git a/arch/powerpc/kernel/setup-common.c b/arch/powerpc/kernel/setup-common.c
index 33e7f2c7f194..bd3eb4292b53 100644
--- a/arch/powerpc/kernel/setup-common.c
+++ b/arch/powerpc/kernel/setup-common.c
@@ -59,6 +59,7 @@
59#undef DEBUG 59#undef DEBUG
60 60
61#ifdef DEBUG 61#ifdef DEBUG
62#include <asm/udbg.h>
62#define DBG(fmt...) udbg_printf(fmt) 63#define DBG(fmt...) udbg_printf(fmt)
63#else 64#else
64#define DBG(fmt...) 65#define DBG(fmt...)
diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c
index 62dfc5b8d765..30374d2f88e5 100644
--- a/arch/powerpc/kernel/smp.c
+++ b/arch/powerpc/kernel/smp.c
@@ -49,15 +49,16 @@
49#include <asm/paca.h> 49#include <asm/paca.h>
50#endif 50#endif
51 51
52int smp_hw_index[NR_CPUS];
53struct thread_info *secondary_ti;
54
55#ifdef DEBUG 52#ifdef DEBUG
53#include <asm/udbg.h>
56#define DBG(fmt...) udbg_printf(fmt) 54#define DBG(fmt...) udbg_printf(fmt)
57#else 55#else
58#define DBG(fmt...) 56#define DBG(fmt...)
59#endif 57#endif
60 58
59int smp_hw_index[NR_CPUS];
60struct thread_info *secondary_ti;
61
61cpumask_t cpu_possible_map = CPU_MASK_NONE; 62cpumask_t cpu_possible_map = CPU_MASK_NONE;
62cpumask_t cpu_online_map = CPU_MASK_NONE; 63cpumask_t cpu_online_map = CPU_MASK_NONE;
63cpumask_t cpu_sibling_map[NR_CPUS] = { [0 ... NR_CPUS-1] = CPU_MASK_NONE }; 64cpumask_t cpu_sibling_map[NR_CPUS] = { [0 ... NR_CPUS-1] = CPU_MASK_NONE };
diff --git a/arch/powerpc/kernel/vdso32/cacheflush.S b/arch/powerpc/kernel/vdso32/cacheflush.S
index c8db993574ee..09629aea3e47 100644
--- a/arch/powerpc/kernel/vdso32/cacheflush.S
+++ b/arch/powerpc/kernel/vdso32/cacheflush.S
@@ -35,6 +35,7 @@ V_FUNCTION_BEGIN(__kernel_sync_dicache)
35 subf r8,r6,r4 /* compute length */ 35 subf r8,r6,r4 /* compute length */
36 add r8,r8,r5 /* ensure we get enough */ 36 add r8,r8,r5 /* ensure we get enough */
37 srwi. r8,r8,7 /* compute line count */ 37 srwi. r8,r8,7 /* compute line count */
38 crclr cr0*4+so
38 beqlr /* nothing to do? */ 39 beqlr /* nothing to do? */
39 mtctr r8 40 mtctr r8
40 mr r3,r6 41 mr r3,r6
@@ -58,6 +59,7 @@ V_FUNCTION_END(__kernel_sync_dicache)
58 */ 59 */
59V_FUNCTION_BEGIN(__kernel_sync_dicache_p5) 60V_FUNCTION_BEGIN(__kernel_sync_dicache_p5)
60 .cfi_startproc 61 .cfi_startproc
62 crclr cr0*4+so
61 sync 63 sync
62 isync 64 isync
63 li r3,0 65 li r3,0
diff --git a/arch/powerpc/kernel/vdso32/datapage.S b/arch/powerpc/kernel/vdso32/datapage.S
index f6b38472318d..4709f1d9542c 100644
--- a/arch/powerpc/kernel/vdso32/datapage.S
+++ b/arch/powerpc/kernel/vdso32/datapage.S
@@ -54,7 +54,6 @@ V_FUNCTION_BEGIN(__kernel_get_syscall_map)
54 .cfi_startproc 54 .cfi_startproc
55 mflr r12 55 mflr r12
56 .cfi_register lr,r12 56 .cfi_register lr,r12
57
58 mr r4,r3 57 mr r4,r3
59 bl __get_datapage@local 58 bl __get_datapage@local
60 mtlr r12 59 mtlr r12
@@ -63,6 +62,7 @@ V_FUNCTION_BEGIN(__kernel_get_syscall_map)
63 beqlr 62 beqlr
64 li r0,__NR_syscalls 63 li r0,__NR_syscalls
65 stw r0,0(r4) 64 stw r0,0(r4)
65 crclr cr0*4+so
66 blr 66 blr
67 .cfi_endproc 67 .cfi_endproc
68V_FUNCTION_END(__kernel_get_syscall_map) 68V_FUNCTION_END(__kernel_get_syscall_map)
@@ -80,6 +80,7 @@ V_FUNCTION_BEGIN(__kernel_get_tbfreq)
80 lwz r4,(CFG_TB_TICKS_PER_SEC + 4)(r3) 80 lwz r4,(CFG_TB_TICKS_PER_SEC + 4)(r3)
81 lwz r3,CFG_TB_TICKS_PER_SEC(r3) 81 lwz r3,CFG_TB_TICKS_PER_SEC(r3)
82 mtlr r12 82 mtlr r12
83 crclr cr0*4+so
83 blr 84 blr
84 .cfi_endproc 85 .cfi_endproc
85V_FUNCTION_END(__kernel_get_tbfreq) 86V_FUNCTION_END(__kernel_get_tbfreq)
diff --git a/arch/powerpc/kernel/vdso32/gettimeofday.S b/arch/powerpc/kernel/vdso32/gettimeofday.S
index 0a32a41d50b0..7eebff03a041 100644
--- a/arch/powerpc/kernel/vdso32/gettimeofday.S
+++ b/arch/powerpc/kernel/vdso32/gettimeofday.S
@@ -59,6 +59,7 @@ V_FUNCTION_BEGIN(__kernel_gettimeofday)
59 stw r5,TZONE_TZ_DSTTIME(r11) 59 stw r5,TZONE_TZ_DSTTIME(r11)
60 60
611: mtlr r12 611: mtlr r12
62 crclr cr0*4+so
62 li r3,0 63 li r3,0
63 blr 64 blr
64 65
@@ -117,6 +118,7 @@ V_FUNCTION_BEGIN(__kernel_clock_gettime)
117 mulli r5,r5,1000 118 mulli r5,r5,1000
118 stw r5,TSPC32_TV_NSEC(r11) 119 stw r5,TSPC32_TV_NSEC(r11)
119 mtlr r12 120 mtlr r12
121 crclr cr0*4+so
120 li r3,0 122 li r3,0
121 blr 123 blr
122 124
@@ -185,6 +187,7 @@ V_FUNCTION_BEGIN(__kernel_clock_gettime)
185 stw r4,TSPC32_TV_NSEC(r11) 187 stw r4,TSPC32_TV_NSEC(r11)
186 188
187 mtlr r12 189 mtlr r12
190 crclr cr0*4+so
188 li r3,0 191 li r3,0
189 blr 192 blr
190 193
@@ -219,6 +222,7 @@ V_FUNCTION_BEGIN(__kernel_clock_getres)
219 222
220 li r3,0 223 li r3,0
221 cmpli cr0,r4,0 224 cmpli cr0,r4,0
225 crclr cr0*4+so
222 beqlr 226 beqlr
223 lis r5,CLOCK_REALTIME_RES@h 227 lis r5,CLOCK_REALTIME_RES@h
224 ori r5,r5,CLOCK_REALTIME_RES@l 228 ori r5,r5,CLOCK_REALTIME_RES@l
diff --git a/arch/powerpc/kernel/vdso64/cacheflush.S b/arch/powerpc/kernel/vdso64/cacheflush.S
index d4a0ad28d534..cb4ae0a5edd0 100644
--- a/arch/powerpc/kernel/vdso64/cacheflush.S
+++ b/arch/powerpc/kernel/vdso64/cacheflush.S
@@ -35,6 +35,7 @@ V_FUNCTION_BEGIN(__kernel_sync_dicache)
35 subf r8,r6,r4 /* compute length */ 35 subf r8,r6,r4 /* compute length */
36 add r8,r8,r5 /* ensure we get enough */ 36 add r8,r8,r5 /* ensure we get enough */
37 srwi. r8,r8,7 /* compute line count */ 37 srwi. r8,r8,7 /* compute line count */
38 crclr cr0*4+so
38 beqlr /* nothing to do? */ 39 beqlr /* nothing to do? */
39 mtctr r8 40 mtctr r8
40 mr r3,r6 41 mr r3,r6
@@ -58,6 +59,7 @@ V_FUNCTION_END(__kernel_sync_dicache)
58 */ 59 */
59V_FUNCTION_BEGIN(__kernel_sync_dicache_p5) 60V_FUNCTION_BEGIN(__kernel_sync_dicache_p5)
60 .cfi_startproc 61 .cfi_startproc
62 crclr cr0*4+so
61 sync 63 sync
62 isync 64 isync
63 li r3,0 65 li r3,0
diff --git a/arch/powerpc/kernel/vdso64/datapage.S b/arch/powerpc/kernel/vdso64/datapage.S
index 6393e4137bc7..3b2dd7d0c1eb 100644
--- a/arch/powerpc/kernel/vdso64/datapage.S
+++ b/arch/powerpc/kernel/vdso64/datapage.S
@@ -54,12 +54,12 @@ V_FUNCTION_BEGIN(__kernel_get_syscall_map)
54 .cfi_startproc 54 .cfi_startproc
55 mflr r12 55 mflr r12
56 .cfi_register lr,r12 56 .cfi_register lr,r12
57
58 mr r4,r3 57 mr r4,r3
59 bl V_LOCAL_FUNC(__get_datapage) 58 bl V_LOCAL_FUNC(__get_datapage)
60 mtlr r12 59 mtlr r12
61 addi r3,r3,CFG_SYSCALL_MAP64 60 addi r3,r3,CFG_SYSCALL_MAP64
62 cmpli cr0,r4,0 61 cmpli cr0,r4,0
62 crclr cr0*4+so
63 beqlr 63 beqlr
64 li r0,__NR_syscalls 64 li r0,__NR_syscalls
65 stw r0,0(r4) 65 stw r0,0(r4)
@@ -80,6 +80,7 @@ V_FUNCTION_BEGIN(__kernel_get_tbfreq)
80 bl V_LOCAL_FUNC(__get_datapage) 80 bl V_LOCAL_FUNC(__get_datapage)
81 ld r3,CFG_TB_TICKS_PER_SEC(r3) 81 ld r3,CFG_TB_TICKS_PER_SEC(r3)
82 mtlr r12 82 mtlr r12
83 crclr cr0*4+so
83 blr 84 blr
84 .cfi_endproc 85 .cfi_endproc
85V_FUNCTION_END(__kernel_get_tbfreq) 86V_FUNCTION_END(__kernel_get_tbfreq)
diff --git a/arch/powerpc/kernel/vdso64/gettimeofday.S b/arch/powerpc/kernel/vdso64/gettimeofday.S
index 1a89094715cc..ccaeda5136d1 100644
--- a/arch/powerpc/kernel/vdso64/gettimeofday.S
+++ b/arch/powerpc/kernel/vdso64/gettimeofday.S
@@ -52,6 +52,7 @@ V_FUNCTION_BEGIN(__kernel_gettimeofday)
52 stw r4,TZONE_TZ_MINWEST(r10) 52 stw r4,TZONE_TZ_MINWEST(r10)
53 stw r5,TZONE_TZ_DSTTIME(r10) 53 stw r5,TZONE_TZ_DSTTIME(r10)
541: mtlr r12 541: mtlr r12
55 crclr cr0*4+so
55 li r3,0 /* always success */ 56 li r3,0 /* always success */
56 blr 57 blr
57 .cfi_endproc 58 .cfi_endproc
@@ -99,6 +100,7 @@ V_FUNCTION_BEGIN(__kernel_clock_gettime)
99 std r0,TSPC64_TV_NSEC(r11) /* store nsec in tp */ 100 std r0,TSPC64_TV_NSEC(r11) /* store nsec in tp */
100 101
101 mtlr r12 102 mtlr r12
103 crclr cr0*4+so
102 li r3,0 104 li r3,0
103 blr 105 blr
104 106
@@ -159,6 +161,7 @@ V_FUNCTION_BEGIN(__kernel_clock_gettime)
159 std r7,TSPC64_TV_NSEC(r11) 161 std r7,TSPC64_TV_NSEC(r11)
160 162
161 mtlr r12 163 mtlr r12
164 crclr cr0*4+so
162 li r3,0 165 li r3,0
163 blr 166 blr
164 167
@@ -193,6 +196,7 @@ V_FUNCTION_BEGIN(__kernel_clock_getres)
193 196
194 li r3,0 197 li r3,0
195 cmpli cr0,r4,0 198 cmpli cr0,r4,0
199 crclr cr0*4+so
196 beqlr 200 beqlr
197 lis r5,CLOCK_REALTIME_RES@h 201 lis r5,CLOCK_REALTIME_RES@h
198 ori r5,r5,CLOCK_REALTIME_RES@l 202 ori r5,r5,CLOCK_REALTIME_RES@l
diff --git a/arch/powerpc/mm/lmb.c b/arch/powerpc/mm/lmb.c
index 9b5aa6808eb8..9584608fd768 100644
--- a/arch/powerpc/mm/lmb.c
+++ b/arch/powerpc/mm/lmb.c
@@ -22,35 +22,38 @@
22#include "mmu_decl.h" /* for __max_low_memory */ 22#include "mmu_decl.h" /* for __max_low_memory */
23#endif 23#endif
24 24
25struct lmb lmb;
26
27#undef DEBUG 25#undef DEBUG
28 26
27#ifdef DEBUG
28#include <asm/udbg.h>
29#define DBG(fmt...) udbg_printf(fmt)
30#else
31#define DBG(fmt...)
32#endif
33
34struct lmb lmb;
35
29void lmb_dump_all(void) 36void lmb_dump_all(void)
30{ 37{
31#ifdef DEBUG 38#ifdef DEBUG
32 unsigned long i; 39 unsigned long i;
33 40
34 udbg_printf("lmb_dump_all:\n"); 41 DBG("lmb_dump_all:\n");
35 udbg_printf(" memory.cnt = 0x%lx\n", 42 DBG(" memory.cnt = 0x%lx\n", lmb.memory.cnt);
36 lmb.memory.cnt); 43 DBG(" memory.size = 0x%lx\n", lmb.memory.size);
37 udbg_printf(" memory.size = 0x%lx\n",
38 lmb.memory.size);
39 for (i=0; i < lmb.memory.cnt ;i++) { 44 for (i=0; i < lmb.memory.cnt ;i++) {
40 udbg_printf(" memory.region[0x%x].base = 0x%lx\n", 45 DBG(" memory.region[0x%x].base = 0x%lx\n",
41 i, lmb.memory.region[i].base); 46 i, lmb.memory.region[i].base);
42 udbg_printf(" .size = 0x%lx\n", 47 DBG(" .size = 0x%lx\n",
43 lmb.memory.region[i].size); 48 lmb.memory.region[i].size);
44 } 49 }
45 50
46 udbg_printf("\n reserved.cnt = 0x%lx\n", 51 DBG("\n reserved.cnt = 0x%lx\n", lmb.reserved.cnt);
47 lmb.reserved.cnt); 52 DBG(" reserved.size = 0x%lx\n", lmb.reserved.size);
48 udbg_printf(" reserved.size = 0x%lx\n",
49 lmb.reserved.size);
50 for (i=0; i < lmb.reserved.cnt ;i++) { 53 for (i=0; i < lmb.reserved.cnt ;i++) {
51 udbg_printf(" reserved.region[0x%x].base = 0x%lx\n", 54 DBG(" reserved.region[0x%x].base = 0x%lx\n",
52 i, lmb.reserved.region[i].base); 55 i, lmb.reserved.region[i].base);
53 udbg_printf(" .size = 0x%lx\n", 56 DBG(" .size = 0x%lx\n",
54 lmb.reserved.region[i].size); 57 lmb.reserved.region[i].size);
55 } 58 }
56#endif /* DEBUG */ 59#endif /* DEBUG */
diff --git a/arch/powerpc/platforms/iseries/pci.c b/arch/powerpc/platforms/iseries/pci.c
index 4b75131773a6..dafc518fbb83 100644
--- a/arch/powerpc/platforms/iseries/pci.c
+++ b/arch/powerpc/platforms/iseries/pci.c
@@ -244,10 +244,9 @@ unsigned long __init find_and_init_phbs(void)
244 if (ret == 0) { 244 if (ret == 0) {
245 printk("bus %d appears to exist\n", bus); 245 printk("bus %d appears to exist\n", bus);
246 246
247 phb = (struct pci_controller *)kmalloc(sizeof(struct pci_controller), GFP_KERNEL); 247 phb = pcibios_alloc_controller(NULL);
248 if (phb == NULL) 248 if (phb == NULL)
249 return -ENOMEM; 249 return -ENOMEM;
250 pci_setup_pci_controller(phb);
251 250
252 phb->pci_mem_offset = phb->local_number = bus; 251 phb->pci_mem_offset = phb->local_number = bus;
253 phb->first_busno = bus; 252 phb->first_busno = bus;
diff --git a/arch/powerpc/platforms/maple/pci.c b/arch/powerpc/platforms/maple/pci.c
index 895aeb3f75d0..f40451da037c 100644
--- a/arch/powerpc/platforms/maple/pci.c
+++ b/arch/powerpc/platforms/maple/pci.c
@@ -326,26 +326,12 @@ static int __init add_bridge(struct device_node *dev)
326 dev->full_name); 326 dev->full_name);
327 } 327 }
328 328
329 hose = alloc_bootmem(sizeof(struct pci_controller)); 329 hose = pcibios_alloc_controller(dev);
330 if (hose == NULL) 330 if (hose == NULL)
331 return -ENOMEM; 331 return -ENOMEM;
332 pci_setup_pci_controller(hose);
333
334 hose->arch_data = dev;
335 hose->first_busno = bus_range ? bus_range[0] : 0; 332 hose->first_busno = bus_range ? bus_range[0] : 0;
336 hose->last_busno = bus_range ? bus_range[1] : 0xff; 333 hose->last_busno = bus_range ? bus_range[1] : 0xff;
337 334
338 of_prop = alloc_bootmem(sizeof(struct property) +
339 sizeof(hose->global_number));
340 if (of_prop) {
341 memset(of_prop, 0, sizeof(struct property));
342 of_prop->name = "linux,pci-domain";
343 of_prop->length = sizeof(hose->global_number);
344 of_prop->value = (unsigned char *)&of_prop[1];
345 memcpy(of_prop->value, &hose->global_number, sizeof(hose->global_number));
346 prom_add_property(dev, of_prop);
347 }
348
349 disp_name = NULL; 335 disp_name = NULL;
350 if (device_is_compatible(dev, "u3-agp")) { 336 if (device_is_compatible(dev, "u3-agp")) {
351 setup_u3_agp(hose); 337 setup_u3_agp(hose);
diff --git a/arch/powerpc/platforms/powermac/feature.c b/arch/powerpc/platforms/powermac/feature.c
index 10f1d942c661..0d7fa00fcb00 100644
--- a/arch/powerpc/platforms/powermac/feature.c
+++ b/arch/powerpc/platforms/powermac/feature.c
@@ -2362,6 +2362,14 @@ static struct pmac_mb_def pmac_mb_defs[] = {
2362 PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features, 2362 PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features,
2363 PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE, 2363 PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE,
2364 }, 2364 },
2365 { "PowerBook5,8", "PowerBook G4 15\"",
2366 PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features,
2367 PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE,
2368 },
2369 { "PowerBook5,9", "PowerBook G4 17\"",
2370 PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features,
2371 PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE,
2372 },
2365 { "PowerBook6,1", "PowerBook G4 12\"", 2373 { "PowerBook6,1", "PowerBook G4 12\"",
2366 PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features, 2374 PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features,
2367 PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE, 2375 PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE,
diff --git a/arch/powerpc/platforms/powermac/pci.c b/arch/powerpc/platforms/powermac/pci.c
index dfd41b9781a9..443be526cde7 100644
--- a/arch/powerpc/platforms/powermac/pci.c
+++ b/arch/powerpc/platforms/powermac/pci.c
@@ -640,15 +640,16 @@ static void __init setup_u3_ht(struct pci_controller* hose)
640 * the reg address cell, we shall fix that by killing struct 640 * the reg address cell, we shall fix that by killing struct
641 * reg_property and using some accessor functions instead 641 * reg_property and using some accessor functions instead
642 */ 642 */
643 hose->cfg_data = (volatile unsigned char *)ioremap(0xf2000000, 0x02000000); 643 hose->cfg_data = (volatile unsigned char *)ioremap(0xf2000000,
644 0x02000000);
644 645
645 /* 646 /*
646 * /ht node doesn't expose a "ranges" property, so we "remove" regions that 647 * /ht node doesn't expose a "ranges" property, so we "remove"
647 * have been allocated to AGP. So far, this version of the code doesn't assign 648 * regions that have been allocated to AGP. So far, this version of
648 * any of the 0xfxxxxxxx "fine" memory regions to /ht. 649 * the code doesn't assign any of the 0xfxxxxxxx "fine" memory regions
649 * We need to fix that sooner or later by either parsing all child "ranges" 650 * to /ht. We need to fix that sooner or later by either parsing all
650 * properties or figuring out the U3 address space decoding logic and 651 * child "ranges" properties or figuring out the U3 address space
651 * then read its configuration register (if any). 652 * decoding logic and then read its configuration register (if any).
652 */ 653 */
653 hose->io_base_phys = 0xf4000000; 654 hose->io_base_phys = 0xf4000000;
654 hose->pci_io_size = 0x00400000; 655 hose->pci_io_size = 0x00400000;
@@ -671,10 +672,10 @@ static void __init setup_u3_ht(struct pci_controller* hose)
671 return; 672 return;
672 } 673 }
673 674
674 /* We "remove" the AGP resources from the resources allocated to HT, that 675 /* We "remove" the AGP resources from the resources allocated to HT,
675 * is we create "holes". However, that code does assumptions that so far 676 * that is we create "holes". However, that code does assumptions
676 * happen to be true (cross fingers...), typically that resources in the 677 * that so far happen to be true (cross fingers...), typically that
677 * AGP node are properly ordered 678 * resources in the AGP node are properly ordered
678 */ 679 */
679 cur = 0; 680 cur = 0;
680 for (i=0; i<3; i++) { 681 for (i=0; i<3; i++) {
@@ -684,23 +685,30 @@ static void __init setup_u3_ht(struct pci_controller* hose)
684 /* We don't care about "fine" resources */ 685 /* We don't care about "fine" resources */
685 if (res->start >= 0xf0000000) 686 if (res->start >= 0xf0000000)
686 continue; 687 continue;
687 /* Check if it's just a matter of "shrinking" us in one direction */ 688 /* Check if it's just a matter of "shrinking" us in one
689 * direction
690 */
688 if (hose->mem_resources[cur].start == res->start) { 691 if (hose->mem_resources[cur].start == res->start) {
689 DBG("U3/HT: shrink start of %d, %08lx -> %08lx\n", 692 DBG("U3/HT: shrink start of %d, %08lx -> %08lx\n",
690 cur, hose->mem_resources[cur].start, res->end + 1); 693 cur, hose->mem_resources[cur].start,
694 res->end + 1);
691 hose->mem_resources[cur].start = res->end + 1; 695 hose->mem_resources[cur].start = res->end + 1;
692 continue; 696 continue;
693 } 697 }
694 if (hose->mem_resources[cur].end == res->end) { 698 if (hose->mem_resources[cur].end == res->end) {
695 DBG("U3/HT: shrink end of %d, %08lx -> %08lx\n", 699 DBG("U3/HT: shrink end of %d, %08lx -> %08lx\n",
696 cur, hose->mem_resources[cur].end, res->start - 1); 700 cur, hose->mem_resources[cur].end,
701 res->start - 1);
697 hose->mem_resources[cur].end = res->start - 1; 702 hose->mem_resources[cur].end = res->start - 1;
698 continue; 703 continue;
699 } 704 }
700 /* No, it's not the case, we need a hole */ 705 /* No, it's not the case, we need a hole */
701 if (cur == 2) { 706 if (cur == 2) {
702 /* not enough resources for a hole, we drop part of the range */ 707 /* not enough resources for a hole, we drop part
703 printk(KERN_WARNING "Running out of resources for /ht host !\n"); 708 * of the range
709 */
710 printk(KERN_WARNING "Running out of resources"
711 " for /ht host !\n");
704 hose->mem_resources[cur].end = res->start - 1; 712 hose->mem_resources[cur].end = res->start - 1;
705 continue; 713 continue;
706 } 714 }
@@ -714,17 +722,6 @@ static void __init setup_u3_ht(struct pci_controller* hose)
714 hose->mem_resources[cur-1].end = res->start - 1; 722 hose->mem_resources[cur-1].end = res->start - 1;
715 } 723 }
716} 724}
717
718/* XXX this needs to be converged between ppc32 and ppc64... */
719static struct pci_controller * __init pcibios_alloc_controller(void)
720{
721 struct pci_controller *hose;
722
723 hose = alloc_bootmem(sizeof(struct pci_controller));
724 if (hose)
725 pci_setup_pci_controller(hose);
726 return hose;
727}
728#endif 725#endif
729 726
730/* 727/*
@@ -756,11 +753,16 @@ static int __init add_bridge(struct device_node *dev)
756#endif 753#endif
757 bus_range = (int *) get_property(dev, "bus-range", &len); 754 bus_range = (int *) get_property(dev, "bus-range", &len);
758 if (bus_range == NULL || len < 2 * sizeof(int)) { 755 if (bus_range == NULL || len < 2 * sizeof(int)) {
759 printk(KERN_WARNING "Can't get bus-range for %s, assume bus 0\n", 756 printk(KERN_WARNING "Can't get bus-range for %s, assume"
760 dev->full_name); 757 " bus 0\n", dev->full_name);
761 } 758 }
762 759
760 /* XXX Different prototypes, to be merged */
761#ifdef CONFIG_PPC64
762 hose = pcibios_alloc_controller(dev);
763#else
763 hose = pcibios_alloc_controller(); 764 hose = pcibios_alloc_controller();
765#endif
764 if (!hose) 766 if (!hose)
765 return -ENOMEM; 767 return -ENOMEM;
766 hose->arch_data = dev; 768 hose->arch_data = dev;
@@ -768,7 +770,7 @@ static int __init add_bridge(struct device_node *dev)
768 hose->last_busno = bus_range ? bus_range[1] : 0xff; 770 hose->last_busno = bus_range ? bus_range[1] : 0xff;
769 771
770 disp_name = NULL; 772 disp_name = NULL;
771#ifdef CONFIG_POWER4 773#ifdef CONFIG_PPC64
772 if (device_is_compatible(dev, "u3-agp")) { 774 if (device_is_compatible(dev, "u3-agp")) {
773 setup_u3_agp(hose); 775 setup_u3_agp(hose);
774 disp_name = "U3-AGP"; 776 disp_name = "U3-AGP";
diff --git a/arch/powerpc/platforms/pseries/smp.c b/arch/powerpc/platforms/pseries/smp.c
index 5800cde7d5ad..25181c594d73 100644
--- a/arch/powerpc/platforms/pseries/smp.c
+++ b/arch/powerpc/platforms/pseries/smp.c
@@ -51,6 +51,7 @@
51#include "plpar_wrappers.h" 51#include "plpar_wrappers.h"
52 52
53#ifdef DEBUG 53#ifdef DEBUG
54#include <asm/udbg.h>
54#define DBG(fmt...) udbg_printf(fmt) 55#define DBG(fmt...) udbg_printf(fmt)
55#else 56#else
56#define DBG(fmt...) 57#define DBG(fmt...)
diff --git a/arch/ppc/kernel/setup.c b/arch/ppc/kernel/setup.c
index dc55e1abc45b..0eb0b7085e6a 100644
--- a/arch/ppc/kernel/setup.c
+++ b/arch/ppc/kernel/setup.c
@@ -602,7 +602,19 @@ void parse_bootinfo(struct bi_record *rec)
602#endif /* CONFIG_BLK_DEV_INITRD */ 602#endif /* CONFIG_BLK_DEV_INITRD */
603#ifdef CONFIG_PPC_MULTIPLATFORM 603#ifdef CONFIG_PPC_MULTIPLATFORM
604 case BI_MACHTYPE: 604 case BI_MACHTYPE:
605 _machine = data[0]; 605 /* Machine types changed with the merge. Since the
606 * bootinfo are now deprecated, we can just hard code
607 * the appropriate conversion here for when we are
608 * called with yaboot which passes us a machine type
609 * this way.
610 */
611 switch(data[0]) {
612 case 1: _machine = _MACH_prep; break;
613 case 2: _machine = _MACH_Pmac; break;
614 case 4: _machine = _MACH_chrp; break;
615 default:
616 _machine = data[0];
617 }
606 break; 618 break;
607#endif 619#endif
608 case BI_MEMSIZE: 620 case BI_MEMSIZE:
diff --git a/arch/ppc/mm/init.c b/arch/ppc/mm/init.c
index 99b48abd3296..45f0782059f1 100644
--- a/arch/ppc/mm/init.c
+++ b/arch/ppc/mm/init.c
@@ -597,21 +597,20 @@ void update_mmu_cache(struct vm_area_struct *vma, unsigned long address,
597 597
598 if (pfn_valid(pfn)) { 598 if (pfn_valid(pfn)) {
599 struct page *page = pfn_to_page(pfn); 599 struct page *page = pfn_to_page(pfn);
600 if (!PageReserved(page)
601 && !test_bit(PG_arch_1, &page->flags)) {
602 if (vma->vm_mm == current->active_mm) {
603#ifdef CONFIG_8xx 600#ifdef CONFIG_8xx
604 /* On 8xx, cache control instructions (particularly 601 /* On 8xx, the TLB handlers work in 2 stages:
605 * "dcbst" from flush_dcache_icache) fault as write 602 * First, a zeroed entry is loaded by TLBMiss handler,
606 * operation if there is an unpopulated TLB entry 603 * which causes the TLBError handler to be triggered.
607 * for the address in question. To workaround that, 604 * That means the zeroed TLB has to be invalidated
608 * we invalidate the TLB here, thus avoiding dcbst 605 * whenever a page miss occurs.
609 * misbehaviour. 606 */
610 */ 607 _tlbie(address);
611 _tlbie(address);
612#endif 608#endif
609 if (!PageReserved(page)
610 && !test_bit(PG_arch_1, &page->flags)) {
611 if (vma->vm_mm == current->active_mm)
613 __flush_dcache_icache((void *) address); 612 __flush_dcache_icache((void *) address);
614 } else 613 else
615 flush_dcache_icache_page(page); 614 flush_dcache_icache_page(page);
616 set_bit(PG_arch_1, &page->flags); 615 set_bit(PG_arch_1, &page->flags);
617 } 616 }
diff --git a/arch/ppc/xmon/start.c b/arch/ppc/xmon/start.c
index 98612d420346..c80177f8ec04 100644
--- a/arch/ppc/xmon/start.c
+++ b/arch/ppc/xmon/start.c
@@ -184,7 +184,9 @@ xmon_map_scc(void)
184 sccc = base + (addr & ~PAGE_MASK); 184 sccc = base + (addr & ~PAGE_MASK);
185 sccd = sccc + 0x10; 185 sccd = sccc + 0x10;
186 186
187 } else { 187 }
188#ifdef CONFIG_PPC_CHRP
189 else {
188 base = (volatile unsigned char *) isa_io_base; 190 base = (volatile unsigned char *) isa_io_base;
189 if (_machine == _MACH_chrp) 191 if (_machine == _MACH_chrp)
190 base = (volatile unsigned char *) 192 base = (volatile unsigned char *)
@@ -200,6 +202,7 @@ xmon_map_scc(void)
200 RXRDY = 1; 202 RXRDY = 1;
201 DLAB = 0x80; 203 DLAB = 0x80;
202 } 204 }
205#endif /* CONFIG_PPC_CHRP */
203#elif defined(CONFIG_GEMINI) 206#elif defined(CONFIG_GEMINI)
204 /* should already be mapped by the kernel boot */ 207 /* should already be mapped by the kernel boot */
205 sccc = (volatile unsigned char *) 0xffeffb0d; 208 sccc = (volatile unsigned char *) 0xffeffb0d;
diff --git a/include/asm-powerpc/ppc-pci.h b/include/asm-powerpc/ppc-pci.h
index 9896fade98a7..2e36e5a7f4f3 100644
--- a/include/asm-powerpc/ppc-pci.h
+++ b/include/asm-powerpc/ppc-pci.h
@@ -14,7 +14,6 @@
14 14
15extern unsigned long isa_io_base; 15extern unsigned long isa_io_base;
16 16
17extern void pci_setup_pci_controller(struct pci_controller *hose);
18extern void pci_setup_phb_io(struct pci_controller *hose, int primary); 17extern void pci_setup_phb_io(struct pci_controller *hose, int primary);
19extern void pci_setup_phb_io_dynamic(struct pci_controller *hose, int primary); 18extern void pci_setup_phb_io_dynamic(struct pci_controller *hose, int primary);
20 19
diff --git a/include/asm-powerpc/vdso.h b/include/asm-powerpc/vdso.h
index 85d8a7be25c4..b9f9118b1607 100644
--- a/include/asm-powerpc/vdso.h
+++ b/include/asm-powerpc/vdso.h
@@ -11,7 +11,7 @@
11#define VDSO32_MBASE VDSO32_LBASE 11#define VDSO32_MBASE VDSO32_LBASE
12#define VDSO64_MBASE VDSO64_LBASE 12#define VDSO64_MBASE VDSO64_LBASE
13 13
14#define VDSO_VERSION_STRING LINUX_2.6.12 14#define VDSO_VERSION_STRING LINUX_2.6.15
15 15
16/* Define if 64 bits VDSO has procedure descriptors */ 16/* Define if 64 bits VDSO has procedure descriptors */
17#undef VDS64_HAS_DESCRIPTORS 17#undef VDS64_HAS_DESCRIPTORS
diff --git a/include/asm-ppc/pgalloc.h b/include/asm-ppc/pgalloc.h
index 931b6de7ef53..bdefd1c4a558 100644
--- a/include/asm-ppc/pgalloc.h
+++ b/include/asm-ppc/pgalloc.h
@@ -28,7 +28,7 @@ extern void pgd_free(pgd_t *pgd);
28#define pmd_populate_kernel(mm, pmd, pte) \ 28#define pmd_populate_kernel(mm, pmd, pte) \
29 (pmd_val(*(pmd)) = (unsigned long)pte | _PMD_PRESENT) 29 (pmd_val(*(pmd)) = (unsigned long)pte | _PMD_PRESENT)
30#define pmd_populate(mm, pmd, pte) \ 30#define pmd_populate(mm, pmd, pte) \
31 (pmd_val(*(pmd)) = (unsigned long)page_to_virt(pte) | _PMD_PRESENT) 31 (pmd_val(*(pmd)) = (unsigned long)lowmem_page_address(pte) | _PMD_PRESENT)
32#endif 32#endif
33 33
34extern pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long addr); 34extern pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long addr);
diff --git a/include/asm-ppc64/pci-bridge.h b/include/asm-ppc64/pci-bridge.h
index efbdaece0cf0..cf04327a597a 100644
--- a/include/asm-ppc64/pci-bridge.h
+++ b/include/asm-ppc64/pci-bridge.h
@@ -61,12 +61,14 @@ struct pci_dn {
61 int busno; /* for pci devices */ 61 int busno; /* for pci devices */
62 int bussubno; /* for pci devices */ 62 int bussubno; /* for pci devices */
63 int devfn; /* for pci devices */ 63 int devfn; /* for pci devices */
64
65#ifdef CONFIG_PPC_PSERIES
64 int eeh_mode; /* See eeh.h for possible EEH_MODEs */ 66 int eeh_mode; /* See eeh.h for possible EEH_MODEs */
65 int eeh_config_addr; 67 int eeh_config_addr;
66 int eeh_check_count; /* # times driver ignored error */ 68 int eeh_check_count; /* # times driver ignored error */
67 int eeh_freeze_count; /* # times this device froze up. */ 69 int eeh_freeze_count; /* # times this device froze up. */
68 int eeh_is_bridge; /* device is pci-to-pci bridge */ 70 int eeh_is_bridge; /* device is pci-to-pci bridge */
69 71#endif
70 int pci_ext_config_space; /* for pci devices */ 72 int pci_ext_config_space; /* for pci devices */
71 struct pci_controller *phb; /* for pci devices */ 73 struct pci_controller *phb; /* for pci devices */
72 struct iommu_table *iommu_table; /* for phb's or bridges */ 74 struct iommu_table *iommu_table; /* for phb's or bridges */
@@ -74,9 +76,9 @@ struct pci_dn {
74 struct device_node *node; /* back-pointer to the device_node */ 76 struct device_node *node; /* back-pointer to the device_node */
75#ifdef CONFIG_PPC_ISERIES 77#ifdef CONFIG_PPC_ISERIES
76 struct list_head Device_List; 78 struct list_head Device_List;
77 int Irq; /* Assigned IRQ */ 79 int Irq; /* Assigned IRQ */
78 int Flags; /* Possible flags(disable/bist)*/ 80 int Flags; /* Possible flags(disable/bist)*/
79 u8 LogicalSlot; /* Hv Slot Index for Tces */ 81 u8 LogicalSlot; /* Hv Slot Index for Tces */
80#endif 82#endif
81 u32 config_space[16]; /* saved PCI config space */ 83 u32 config_space[16]; /* saved PCI config space */
82}; 84};
@@ -136,6 +138,10 @@ static inline struct pci_controller *pci_bus_to_host(struct pci_bus *bus)
136 return PCI_DN(busdn)->phb; 138 return PCI_DN(busdn)->phb;
137} 139}
138 140
141extern struct pci_controller *
142pcibios_alloc_controller(struct device_node *dev);
143extern void pcibios_free_controller(struct pci_controller *phb);
144
139/* Return values for ppc_md.pci_probe_mode function */ 145/* Return values for ppc_md.pci_probe_mode function */
140#define PCI_PROBE_NONE -1 /* Don't look at this bus at all */ 146#define PCI_PROBE_NONE -1 /* Don't look at this bus at all */
141#define PCI_PROBE_NORMAL 0 /* Do normal PCI probing */ 147#define PCI_PROBE_NORMAL 0 /* Do normal PCI probing */
diff --git a/sound/ppc/tumbler.c b/sound/ppc/tumbler.c
index 65384afcfc3f..d74bfabe5300 100644
--- a/sound/ppc/tumbler.c
+++ b/sound/ppc/tumbler.c
@@ -1194,8 +1194,14 @@ static void tumbler_resume(pmac_t *chip)
1194 tumbler_set_master_volume(mix); 1194 tumbler_set_master_volume(mix);
1195 if (chip->update_automute) 1195 if (chip->update_automute)
1196 chip->update_automute(chip, 0); 1196 chip->update_automute(chip, 0);
1197 if (mix->headphone_irq >= 0) 1197 if (mix->headphone_irq >= 0) {
1198 unsigned char val;
1199
1198 enable_irq(mix->headphone_irq); 1200 enable_irq(mix->headphone_irq);
1201 /* activate headphone status interrupts */
1202 val = do_gpio_read(&mix->hp_detect);
1203 do_gpio_write(&mix->hp_detect, val | 0x80);
1204 }
1199 if (mix->lineout_irq >= 0) 1205 if (mix->lineout_irq >= 0)
1200 enable_irq(mix->lineout_irq); 1206 enable_irq(mix->lineout_irq);
1201} 1207}