aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorSteve French <sfrench@us.ibm.com>2008-03-01 13:29:55 -0500
committerSteve French <sfrench@us.ibm.com>2008-03-01 13:29:55 -0500
commit0dbd888936a23514716b8d944775bc56f731363a (patch)
treea2c60cdc45bdcbed47680731fa8188bffe58c098 /arch
parent0b442d2c28479332610c46e1a74e5638ab63a97d (diff)
parentd395991c117d43bfca97101a931a41d062a93852 (diff)
Merge branch 'master' of /pub/scm/linux/kernel/git/torvalds/linux-2.6
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/Kconfig3
-rw-r--r--arch/arm/mach-omap1/board-sx1.c2
-rw-r--r--arch/arm/mach-orion/ts209-setup.c15
-rw-r--r--arch/arm/mach-pxa/clock.c23
-rw-r--r--arch/arm/mach-pxa/cpu-pxa.c10
-rw-r--r--arch/arm/mach-pxa/pxa3xx.c8
-rw-r--r--arch/arm/mach-pxa/zylonite.c2
-rw-r--r--arch/arm/mm/mmap.c2
-rw-r--r--arch/avr32/boards/atstk1000/atstk1004.c2
-rw-r--r--arch/avr32/kernel/process.c4
-rw-r--r--arch/avr32/mm/fault.c2
-rw-r--r--arch/blackfin/Makefile5
-rw-r--r--arch/blackfin/configs/BF527-EZKIT_defconfig18
-rw-r--r--arch/blackfin/configs/BF533-EZKIT_defconfig6
-rw-r--r--arch/blackfin/configs/BF533-STAMP_defconfig6
-rw-r--r--arch/blackfin/configs/BF537-STAMP_defconfig6
-rw-r--r--arch/blackfin/configs/BF548-EZKIT_defconfig2
-rw-r--r--arch/blackfin/configs/BF561-EZKIT_defconfig1
-rw-r--r--arch/blackfin/kernel/bfin_dma_5xx.c15
-rw-r--r--arch/blackfin/kernel/gptimers.c8
-rw-r--r--arch/blackfin/kernel/setup.c5
-rw-r--r--arch/blackfin/kernel/vmlinux.lds.S34
-rw-r--r--arch/blackfin/mach-bf527/boards/ezkit.c60
-rw-r--r--arch/blackfin/mach-bf533/boards/ezkit.c21
-rw-r--r--arch/blackfin/mach-bf533/boards/stamp.c43
-rw-r--r--arch/blackfin/mach-bf537/boards/generic_board.c18
-rw-r--r--arch/blackfin/mach-bf537/boards/stamp.c45
-rw-r--r--arch/blackfin/mach-bf548/boards/ezkit.c25
-rw-r--r--arch/blackfin/mach-bf548/dma.c2
-rw-r--r--arch/blackfin/mach-bf548/head.S9
-rw-r--r--arch/blackfin/mach-bf561/boards/ezkit.c16
-rw-r--r--arch/blackfin/mach-common/dpmc.S137
-rw-r--r--arch/blackfin/mach-common/ints-priority.c174
-rw-r--r--arch/blackfin/mm/init.c4
-rw-r--r--arch/frv/kernel/entry.S4
-rw-r--r--arch/frv/kernel/vmlinux.lds.S3
-rw-r--r--arch/h8300/defconfig263
-rw-r--r--arch/h8300/kernel/irq.c4
-rw-r--r--arch/h8300/kernel/signal.c4
-rw-r--r--arch/h8300/platform/h8300h/Makefile2
-rw-r--r--arch/h8300/platform/h8300h/irq.c82
-rw-r--r--arch/h8300/platform/h8s/ints.c304
-rw-r--r--arch/h8300/platform/h8s/irq.c (renamed from arch/h8300/platform/h8s/ints_h8s.c)8
-rw-r--r--arch/mips/bcm47xx/setup.c12
-rw-r--r--arch/mips/bcm47xx/wgt634u.c71
-rw-r--r--arch/mips/configs/bcm47xx_defconfig1939
-rw-r--r--arch/mips/configs/ip28_defconfig891
-rw-r--r--arch/mips/configs/qemu_defconfig800
-rw-r--r--arch/mips/kernel/irq-rm7000.c1
-rw-r--r--arch/mips/kernel/irq-rm9000.c1
-rw-r--r--arch/mips/kernel/mips-mt-fpaff.c2
-rw-r--r--arch/mips/kernel/scall32-o32.S3
-rw-r--r--arch/mips/kernel/scall64-64.S3
-rw-r--r--arch/mips/kernel/scall64-n32.S3
-rw-r--r--arch/mips/kernel/scall64-o32.S3
-rw-r--r--arch/mips/kernel/sysirix.c2
-rw-r--r--arch/mips/mm/c-r4k.c9
-rw-r--r--arch/mips/mm/cache.c15
-rw-r--r--arch/mips/mm/init.c9
-rw-r--r--arch/mips/mm/pg-sb1.c14
-rw-r--r--arch/mips/pci/pci.c14
-rw-r--r--arch/mips/sibyte/bcm1480/smp.c1
-rw-r--r--arch/mn10300/Kconfig4
-rw-r--r--arch/mn10300/configs/asb2303_defconfig33
-rw-r--r--arch/mn10300/kernel/gdb-io-ttysm.c2
-rw-r--r--arch/mn10300/kernel/time.c4
-rw-r--r--arch/mn10300/kernel/traps.c2
-rw-r--r--arch/powerpc/Makefile2
-rw-r--r--arch/powerpc/boot/Makefile8
-rw-r--r--arch/powerpc/boot/dts/bamboo.dts3
-rw-r--r--arch/powerpc/boot/dts/ebony.dts2
-rw-r--r--arch/powerpc/boot/dts/katmai.dts2
-rw-r--r--arch/powerpc/boot/dts/kilauea.dts3
-rw-r--r--arch/powerpc/boot/dts/makalu.dts3
-rw-r--r--arch/powerpc/boot/dts/rainier.dts4
-rw-r--r--arch/powerpc/boot/dts/sequoia.dts4
-rw-r--r--arch/powerpc/boot/dts/taishan.dts4
-rw-r--r--arch/powerpc/configs/bamboo_defconfig81
-rw-r--r--arch/powerpc/configs/ebony_defconfig79
-rw-r--r--arch/powerpc/configs/ep405_defconfig92
-rw-r--r--arch/powerpc/configs/kilauea_defconfig69
-rw-r--r--arch/powerpc/configs/makalu_defconfig69
-rw-r--r--arch/powerpc/configs/ppc44x_defconfig904
-rw-r--r--arch/powerpc/configs/rainier_defconfig82
-rw-r--r--arch/powerpc/configs/sequoia_defconfig77
-rw-r--r--arch/powerpc/configs/taishan_defconfig81
-rw-r--r--arch/powerpc/configs/walnut_defconfig81
-rw-r--r--arch/powerpc/configs/warp_defconfig139
-rw-r--r--arch/powerpc/kernel/kprobes.c9
-rw-r--r--arch/powerpc/kernel/prom.c13
-rw-r--r--arch/powerpc/platforms/44x/Kconfig10
-rw-r--r--arch/powerpc/platforms/cell/spu_base.c12
-rw-r--r--arch/powerpc/platforms/cell/spufs/run.c1
-rw-r--r--arch/powerpc/platforms/cell/spufs/sched.c8
-rw-r--r--arch/powerpc/platforms/cell/spufs/switch.c6
-rw-r--r--arch/powerpc/platforms/pasemi/Makefile2
-rw-r--r--arch/powerpc/platforms/pasemi/misc.c97
-rw-r--r--arch/powerpc/platforms/pseries/power.c2
-rw-r--r--arch/powerpc/sysdev/mpic_pasemi_msi.c5
-rw-r--r--arch/ppc/platforms/4xx/ibm440ep.c6
-rw-r--r--arch/s390/Kconfig3
-rw-r--r--arch/s390/kernel/process.c15
-rw-r--r--arch/s390/kernel/smp.c53
-rw-r--r--arch/s390/kernel/time.c2
-rw-r--r--arch/s390/lib/uaccess_std.c8
-rw-r--r--arch/sh/Kconfig1
-rw-r--r--arch/sh/drivers/dma/dma-sh.c2
-rw-r--r--arch/sh/drivers/heartbeat.c2
-rw-r--r--arch/sh/drivers/pci/ops-dreamcast.c44
-rw-r--r--arch/sh/kernel/cpu/sh2/setup-sh7619.c2
-rw-r--r--arch/sh/kernel/cpu/sh2a/clock-sh7203.c4
-rw-r--r--arch/sh/kernel/cpu/sh2a/setup-sh7203.c2
-rw-r--r--arch/sh/kernel/cpu/sh2a/setup-sh7206.c2
-rw-r--r--arch/sh/kernel/cpu/sh3/probe.c4
-rw-r--r--arch/sh/kernel/cpu/sh3/setup-sh7705.c2
-rw-r--r--arch/sh/kernel/cpu/sh3/setup-sh770x.c8
-rw-r--r--arch/sh/kernel/cpu/sh3/setup-sh7710.c2
-rw-r--r--arch/sh/kernel/cpu/sh3/setup-sh7720.c2
-rw-r--r--arch/sh/kernel/cpu/sh4/setup-sh4-202.c2
-rw-r--r--arch/sh/kernel/cpu/sh4/setup-sh7750.c2
-rw-r--r--arch/sh/kernel/cpu/sh4/setup-sh7760.c2
-rw-r--r--arch/sh/kernel/cpu/sh4a/setup-sh7343.c2
-rw-r--r--arch/sh/kernel/cpu/sh4a/setup-sh7366.c2
-rw-r--r--arch/sh/kernel/cpu/sh4a/setup-sh7722.c2
-rw-r--r--arch/sh/kernel/cpu/sh4a/setup-sh7763.c2
-rw-r--r--arch/sh/kernel/cpu/sh4a/setup-sh7770.c2
-rw-r--r--arch/sh/kernel/cpu/sh4a/setup-sh7780.c2
-rw-r--r--arch/sh/kernel/cpu/sh4a/setup-sh7785.c2
-rw-r--r--arch/sh/kernel/cpu/sh4a/setup-shx3.c2
-rw-r--r--arch/sparc/kernel/led.c3
-rw-r--r--arch/sparc/kernel/process.c6
-rw-r--r--arch/sparc/kernel/setup.c4
-rw-r--r--arch/sparc/mm/sun4c.c4
-rw-r--r--arch/sparc/prom/misc.c7
-rw-r--r--arch/sparc64/Kconfig.debug4
-rw-r--r--arch/sparc64/Makefile36
-rw-r--r--arch/sparc64/defconfig33
-rw-r--r--arch/sparc64/kernel/ds.c14
-rw-r--r--arch/sparc64/kernel/hvtramp.S4
-rw-r--r--arch/sparc64/kernel/iommu.c6
-rw-r--r--arch/sparc64/kernel/kprobes.c2
-rw-r--r--arch/sparc64/kernel/mdesc.c2
-rw-r--r--arch/sparc64/kernel/pci.c21
-rw-r--r--arch/sparc64/kernel/power.c3
-rw-r--r--arch/sparc64/kernel/process.c92
-rw-r--r--arch/sparc64/kernel/prom.c1
-rw-r--r--arch/sparc64/kernel/setup.c29
-rw-r--r--arch/sparc64/kernel/smp.c2
-rw-r--r--arch/sparc64/kernel/sparc64_ksyms.c3
-rw-r--r--arch/sparc64/kernel/trampoline.S4
-rw-r--r--arch/sparc64/kernel/traps.c2
-rw-r--r--arch/sparc64/kernel/unaligned.c3
-rw-r--r--arch/sparc64/mm/fault.c14
-rw-r--r--arch/sparc64/mm/init.c52
-rw-r--r--arch/sparc64/prom/misc.c9
-rw-r--r--arch/um/defconfig280
-rw-r--r--arch/um/drivers/harddog_user.c4
-rw-r--r--arch/um/include/registers.h2
-rw-r--r--arch/um/include/sysdep-i386/ptrace_user.h3
-rw-r--r--arch/um/include/sysdep-x86_64/ptrace_user.h3
-rw-r--r--arch/um/kernel/initrd.c2
-rw-r--r--arch/um/kernel/mem.c6
-rw-r--r--arch/um/kernel/process.c2
-rw-r--r--arch/um/os-Linux/skas/process.c15
-rw-r--r--arch/um/os-Linux/sys-i386/registers.c16
-rw-r--r--arch/um/os-Linux/sys-x86_64/registers.c10
-rw-r--r--arch/um/sys-i386/user-offsets.c27
-rw-r--r--arch/um/sys-x86_64/user-offsets.c28
-rw-r--r--arch/x86/Kconfig2
-rw-r--r--arch/x86/Kconfig.cpu14
-rw-r--r--arch/x86/Kconfig.debug2
-rw-r--r--arch/x86/Makefile2
-rw-r--r--arch/x86/boot/memory.c9
-rw-r--r--arch/x86/kernel/Makefile10
-rw-r--r--arch/x86/kernel/acpi/boot.c3
-rw-r--r--arch/x86/kernel/asm-offsets_32.c6
-rw-r--r--arch/x86/kernel/cpu/bugs.c8
-rw-r--r--arch/x86/kernel/cpu/common.c2
-rw-r--r--arch/x86/kernel/cpu/mtrr/main.c9
-rw-r--r--arch/x86/kernel/cpu/transmeta.c7
-rw-r--r--arch/x86/kernel/efi.c2
-rw-r--r--arch/x86/kernel/efi_32.c1
-rw-r--r--arch/x86/kernel/entry_32.S2
-rw-r--r--arch/x86/kernel/entry_64.S8
-rw-r--r--arch/x86/kernel/head64.c3
-rw-r--r--arch/x86/kernel/head_32.S4
-rw-r--r--arch/x86/kernel/head_64.S31
-rw-r--r--arch/x86/kernel/hpet.c4
-rw-r--r--arch/x86/kernel/i387.c2
-rw-r--r--arch/x86/kernel/i8259_32.c25
-rw-r--r--arch/x86/kernel/init_task.c1
-rw-r--r--arch/x86/kernel/io_delay.c1
-rw-r--r--arch/x86/kernel/kprobes.c4
-rw-r--r--arch/x86/kernel/nmi_32.c21
-rw-r--r--arch/x86/kernel/nmi_64.c21
-rw-r--r--arch/x86/kernel/process_32.c2
-rw-r--r--arch/x86/kernel/process_64.c8
-rw-r--r--arch/x86/kernel/ptrace.c16
-rw-r--r--arch/x86/kernel/setup_32.c1
-rw-r--r--arch/x86/kernel/setup_64.c8
-rw-r--r--arch/x86/kernel/smpboot_64.c2
-rw-r--r--arch/x86/kernel/stacktrace.c4
-rw-r--r--arch/x86/kernel/tls.c8
-rw-r--r--arch/x86/kernel/topology.c2
-rw-r--r--arch/x86/kernel/tsc_32.c3
-rw-r--r--arch/x86/kernel/vmlinux_32.lds.S26
-rw-r--r--arch/x86/kernel/vmlinux_64.lds.S30
-rw-r--r--arch/x86/kernel/vsyscall_64.c49
-rw-r--r--arch/x86/lguest/boot.c12
-rw-r--r--arch/x86/lib/csum-wrappers_64.c147
-rw-r--r--arch/x86/lib/io_64.c18
-rw-r--r--arch/x86/mm/init_64.c36
-rw-r--r--arch/x86/mm/ioremap.c28
-rw-r--r--arch/x86/mm/numa_64.c5
-rw-r--r--arch/x86/mm/pageattr.c335
-rw-r--r--arch/x86/mm/srat_64.c3
-rw-r--r--arch/x86/pci/common.c2
-rw-r--r--arch/x86/pci/irq.c4
-rw-r--r--arch/x86/power/hibernate_asm_64.S5
-rw-r--r--arch/x86/vdso/Makefile4
-rw-r--r--arch/x86/xen/enlighten.c1
-rw-r--r--arch/xtensa/Makefile2
-rw-r--r--arch/xtensa/boot/boot-elf/Makefile9
-rw-r--r--arch/xtensa/boot/boot-elf/boot.lds.S (renamed from arch/xtensa/boot/boot-elf/boot.ld)4
-rw-r--r--arch/xtensa/boot/boot-redboot/Makefile2
-rw-r--r--arch/xtensa/boot/boot-redboot/boot.ld2
-rw-r--r--arch/xtensa/kernel/asm-offsets.c17
-rw-r--r--arch/xtensa/kernel/coprocessor.S443
-rw-r--r--arch/xtensa/kernel/entry.S355
-rw-r--r--arch/xtensa/kernel/module.c2
-rw-r--r--arch/xtensa/kernel/process.c306
-rw-r--r--arch/xtensa/kernel/ptrace.c351
-rw-r--r--arch/xtensa/kernel/setup.c5
-rw-r--r--arch/xtensa/kernel/signal.c89
-rw-r--r--arch/xtensa/kernel/traps.c20
-rw-r--r--arch/xtensa/kernel/vmlinux.lds.S6
-rw-r--r--arch/xtensa/mm/cache.c7
-rw-r--r--arch/xtensa/mm/init.c2
-rw-r--r--arch/xtensa/mm/misc.S2
-rw-r--r--arch/xtensa/platforms/iss/Makefile (renamed from arch/xtensa/platform-iss/Makefile)0
-rw-r--r--arch/xtensa/platforms/iss/console.c (renamed from arch/xtensa/platform-iss/console.c)1
-rw-r--r--arch/xtensa/platforms/iss/io.c (renamed from arch/xtensa/platform-iss/io.c)0
-rw-r--r--arch/xtensa/platforms/iss/network.c (renamed from arch/xtensa/platform-iss/network.c)2
-rw-r--r--arch/xtensa/platforms/iss/setup.c (renamed from arch/xtensa/platform-iss/setup.c)0
244 files changed, 6860 insertions, 3873 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 9619c43783ff..16b82e1272b0 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -939,7 +939,8 @@ config KEXEC
939 939
940config ATAGS_PROC 940config ATAGS_PROC
941 bool "Export atags in procfs" 941 bool "Export atags in procfs"
942 default n 942 depends on KEXEC
943 default y
943 help 944 help
944 Should the atags used to boot the kernel be exported in an "atags" 945 Should the atags used to boot the kernel be exported in an "atags"
945 file in procfs. Useful with kexec. 946 file in procfs. Useful with kexec.
diff --git a/arch/arm/mach-omap1/board-sx1.c b/arch/arm/mach-omap1/board-sx1.c
index 1c7f09aedf07..e473fa6d4a5f 100644
--- a/arch/arm/mach-omap1/board-sx1.c
+++ b/arch/arm/mach-omap1/board-sx1.c
@@ -61,6 +61,7 @@ int sx1_i2c_write_byte(u8 devaddr, u8 regoffset, u8 value)
61 data[0] = regoffset; /* register num */ 61 data[0] = regoffset; /* register num */
62 data[1] = value; /* register data */ 62 data[1] = value; /* register data */
63 err = i2c_transfer(adap, msg, 1); 63 err = i2c_transfer(adap, msg, 1);
64 i2c_put_adapter(adap);
64 if (err >= 0) 65 if (err >= 0)
65 return 0; 66 return 0;
66 return err; 67 return err;
@@ -91,6 +92,7 @@ int sx1_i2c_read_byte(u8 devaddr, u8 regoffset, u8 *value)
91 msg->buf = data; 92 msg->buf = data;
92 err = i2c_transfer(adap, msg, 1); 93 err = i2c_transfer(adap, msg, 1);
93 *value = data[0]; 94 *value = data[0];
95 i2c_put_adapter(adap);
94 96
95 if (err >= 0) 97 if (err >= 0)
96 return 0; 98 return 0;
diff --git a/arch/arm/mach-orion/ts209-setup.c b/arch/arm/mach-orion/ts209-setup.c
index 306dbcd1e37b..b8cfe6813e9d 100644
--- a/arch/arm/mach-orion/ts209-setup.c
+++ b/arch/arm/mach-orion/ts209-setup.c
@@ -192,9 +192,13 @@ static struct mv643xx_eth_platform_data qnap_ts209_eth_data = {
192/***************************************************************************** 192/*****************************************************************************
193 * RTC S35390A on I2C bus 193 * RTC S35390A on I2C bus
194 ****************************************************************************/ 194 ****************************************************************************/
195
196#define TS209_RTC_GPIO 3
197
195static struct i2c_board_info __initdata qnap_ts209_i2c_rtc = { 198static struct i2c_board_info __initdata qnap_ts209_i2c_rtc = {
196 .driver_name = "rtc-s35390a", 199 .driver_name = "rtc-s35390a",
197 .addr = 0x30, 200 .addr = 0x30,
201 .irq = 0,
198}; 202};
199 203
200/**************************************************************************** 204/****************************************************************************
@@ -328,7 +332,18 @@ static void __init qnap_ts209_init(void)
328 332
329 platform_add_devices(qnap_ts209_devices, 333 platform_add_devices(qnap_ts209_devices,
330 ARRAY_SIZE(qnap_ts209_devices)); 334 ARRAY_SIZE(qnap_ts209_devices));
335
336 /* Get RTC IRQ and register the chip */
337 if (gpio_request(TS209_RTC_GPIO, "rtc") == 0) {
338 if (gpio_direction_input(TS209_RTC_GPIO) == 0)
339 qnap_ts209_i2c_rtc.irq = gpio_to_irq(TS209_RTC_GPIO);
340 else
341 gpio_free(TS209_RTC_GPIO);
342 }
343 if (qnap_ts209_i2c_rtc.irq == 0)
344 pr_warning("qnap_ts209_init: failed to get RTC IRQ\n");
331 i2c_register_board_info(0, &qnap_ts209_i2c_rtc, 1); 345 i2c_register_board_info(0, &qnap_ts209_i2c_rtc, 1);
346
332 orion_eth_init(&qnap_ts209_eth_data); 347 orion_eth_init(&qnap_ts209_eth_data);
333 orion_sata_init(&qnap_ts209_sata_data); 348 orion_sata_init(&qnap_ts209_sata_data);
334} 349}
diff --git a/arch/arm/mach-pxa/clock.c b/arch/arm/mach-pxa/clock.c
index 83ef5ecaf432..df5ae2710ab1 100644
--- a/arch/arm/mach-pxa/clock.c
+++ b/arch/arm/mach-pxa/clock.c
@@ -23,18 +23,27 @@ static LIST_HEAD(clocks);
23static DEFINE_MUTEX(clocks_mutex); 23static DEFINE_MUTEX(clocks_mutex);
24static DEFINE_SPINLOCK(clocks_lock); 24static DEFINE_SPINLOCK(clocks_lock);
25 25
26static struct clk *clk_lookup(struct device *dev, const char *id)
27{
28 struct clk *p;
29
30 list_for_each_entry(p, &clocks, node)
31 if (strcmp(id, p->name) == 0 && p->dev == dev)
32 return p;
33
34 return NULL;
35}
36
26struct clk *clk_get(struct device *dev, const char *id) 37struct clk *clk_get(struct device *dev, const char *id)
27{ 38{
28 struct clk *p, *clk = ERR_PTR(-ENOENT); 39 struct clk *p, *clk = ERR_PTR(-ENOENT);
29 40
30 mutex_lock(&clocks_mutex); 41 mutex_lock(&clocks_mutex);
31 list_for_each_entry(p, &clocks, node) { 42 p = clk_lookup(dev, id);
32 if (strcmp(id, p->name) == 0 && 43 if (!p)
33 (p->dev == NULL || p->dev == dev)) { 44 p = clk_lookup(NULL, id);
34 clk = p; 45 if (p)
35 break; 46 clk = p;
36 }
37 }
38 mutex_unlock(&clocks_mutex); 47 mutex_unlock(&clocks_mutex);
39 48
40 return clk; 49 return clk;
diff --git a/arch/arm/mach-pxa/cpu-pxa.c b/arch/arm/mach-pxa/cpu-pxa.c
index cbc583beedc8..4b21479332ae 100644
--- a/arch/arm/mach-pxa/cpu-pxa.c
+++ b/arch/arm/mach-pxa/cpu-pxa.c
@@ -43,7 +43,7 @@
43 43
44#ifdef DEBUG 44#ifdef DEBUG
45static unsigned int freq_debug; 45static unsigned int freq_debug;
46MODULE_PARM(freq_debug, "i"); 46module_param(freq_debug, uint, 0);
47MODULE_PARM_DESC(freq_debug, "Set the debug messages to on=1/off=0"); 47MODULE_PARM_DESC(freq_debug, "Set the debug messages to on=1/off=0");
48#else 48#else
49#define freq_debug 0 49#define freq_debug 0
@@ -134,7 +134,7 @@ static int pxa_set_target(struct cpufreq_policy *policy,
134 struct cpufreq_frequency_table *pxa_freqs_table; 134 struct cpufreq_frequency_table *pxa_freqs_table;
135 pxa_freqs_t *pxa_freq_settings; 135 pxa_freqs_t *pxa_freq_settings;
136 struct cpufreq_freqs freqs; 136 struct cpufreq_freqs freqs;
137 int idx; 137 unsigned int idx;
138 unsigned long flags; 138 unsigned long flags;
139 unsigned int unused, preset_mdrefr, postset_mdrefr; 139 unsigned int unused, preset_mdrefr, postset_mdrefr;
140 void *ramstart = phys_to_virt(0xa0000000); 140 void *ramstart = phys_to_virt(0xa0000000);
@@ -233,6 +233,11 @@ static int pxa_set_target(struct cpufreq_policy *policy,
233 return 0; 233 return 0;
234} 234}
235 235
236static unsigned int pxa_cpufreq_get(unsigned int cpu)
237{
238 return get_clk_frequency_khz(0);
239}
240
236static int pxa_cpufreq_init(struct cpufreq_policy *policy) 241static int pxa_cpufreq_init(struct cpufreq_policy *policy)
237{ 242{
238 int i; 243 int i;
@@ -269,6 +274,7 @@ static struct cpufreq_driver pxa_cpufreq_driver = {
269 .verify = pxa_verify_policy, 274 .verify = pxa_verify_policy,
270 .target = pxa_set_target, 275 .target = pxa_set_target,
271 .init = pxa_cpufreq_init, 276 .init = pxa_cpufreq_init,
277 .get = pxa_cpufreq_get,
272 .name = "PXA25x", 278 .name = "PXA25x",
273}; 279};
274 280
diff --git a/arch/arm/mach-pxa/pxa3xx.c b/arch/arm/mach-pxa/pxa3xx.c
index 7cd9ef8deb02..35f25fdaeba3 100644
--- a/arch/arm/mach-pxa/pxa3xx.c
+++ b/arch/arm/mach-pxa/pxa3xx.c
@@ -129,28 +129,20 @@ static void clk_pxa3xx_cken_enable(struct clk *clk)
129{ 129{
130 unsigned long mask = 1ul << (clk->cken & 0x1f); 130 unsigned long mask = 1ul << (clk->cken & 0x1f);
131 131
132 local_irq_disable();
133
134 if (clk->cken < 32) 132 if (clk->cken < 32)
135 CKENA |= mask; 133 CKENA |= mask;
136 else 134 else
137 CKENB |= mask; 135 CKENB |= mask;
138
139 local_irq_enable();
140} 136}
141 137
142static void clk_pxa3xx_cken_disable(struct clk *clk) 138static void clk_pxa3xx_cken_disable(struct clk *clk)
143{ 139{
144 unsigned long mask = 1ul << (clk->cken & 0x1f); 140 unsigned long mask = 1ul << (clk->cken & 0x1f);
145 141
146 local_irq_disable();
147
148 if (clk->cken < 32) 142 if (clk->cken < 32)
149 CKENA &= ~mask; 143 CKENA &= ~mask;
150 else 144 else
151 CKENB &= ~mask; 145 CKENB &= ~mask;
152
153 local_irq_enable();
154} 146}
155 147
156static const struct clkops clk_pxa3xx_cken_ops = { 148static const struct clkops clk_pxa3xx_cken_ops = {
diff --git a/arch/arm/mach-pxa/zylonite.c b/arch/arm/mach-pxa/zylonite.c
index 7731d50dd86c..afd2cbfca0d9 100644
--- a/arch/arm/mach-pxa/zylonite.c
+++ b/arch/arm/mach-pxa/zylonite.c
@@ -58,7 +58,7 @@ static struct platform_device smc91x_device = {
58 .resource = smc91x_resources, 58 .resource = smc91x_resources,
59}; 59};
60 60
61#if defined(CONFIG_FB_PXA) || (CONFIG_FB_PXA_MODULES) 61#if defined(CONFIG_FB_PXA) || defined(CONFIG_FB_PXA_MODULE)
62static void zylonite_backlight_power(int on) 62static void zylonite_backlight_power(int on)
63{ 63{
64 gpio_set_value(gpio_backlight, on); 64 gpio_set_value(gpio_backlight, on);
diff --git a/arch/arm/mm/mmap.c b/arch/arm/mm/mmap.c
index 2728b0e7d2bb..3f6dc40b8353 100644
--- a/arch/arm/mm/mmap.c
+++ b/arch/arm/mm/mmap.c
@@ -120,6 +120,8 @@ full_search:
120 */ 120 */
121int valid_phys_addr_range(unsigned long addr, size_t size) 121int valid_phys_addr_range(unsigned long addr, size_t size)
122{ 122{
123 if (addr < PHYS_OFFSET)
124 return 0;
123 if (addr + size > __pa(high_memory)) 125 if (addr + size > __pa(high_memory))
124 return 0; 126 return 0;
125 127
diff --git a/arch/avr32/boards/atstk1000/atstk1004.c b/arch/avr32/boards/atstk1000/atstk1004.c
index 5a77030e07a0..e765a8652b3e 100644
--- a/arch/avr32/boards/atstk1000/atstk1004.c
+++ b/arch/avr32/boards/atstk1000/atstk1004.c
@@ -129,7 +129,7 @@ static int __init atstk1004_init(void)
129#ifdef CONFIG_BOARD_ATSTK100X_SPI1 129#ifdef CONFIG_BOARD_ATSTK100X_SPI1
130 at32_add_device_spi(1, spi1_board_info, ARRAY_SIZE(spi1_board_info)); 130 at32_add_device_spi(1, spi1_board_info, ARRAY_SIZE(spi1_board_info));
131#endif 131#endif
132#ifndef CONFIG_BOARD_ATSTK1002_SW2_CUSTOM 132#ifndef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM
133 at32_add_device_mci(0); 133 at32_add_device_mci(0);
134#endif 134#endif
135 at32_add_device_lcdc(0, &atstk1000_lcdc_data, 135 at32_add_device_lcdc(0, &atstk1000_lcdc_data,
diff --git a/arch/avr32/kernel/process.c b/arch/avr32/kernel/process.c
index eaaa69bbdc38..7f4af0b1e111 100644
--- a/arch/avr32/kernel/process.c
+++ b/arch/avr32/kernel/process.c
@@ -11,6 +11,7 @@
11#include <linux/fs.h> 11#include <linux/fs.h>
12#include <linux/ptrace.h> 12#include <linux/ptrace.h>
13#include <linux/reboot.h> 13#include <linux/reboot.h>
14#include <linux/tick.h>
14#include <linux/uaccess.h> 15#include <linux/uaccess.h>
15#include <linux/unistd.h> 16#include <linux/unistd.h>
16 17
@@ -30,8 +31,10 @@ void cpu_idle(void)
30{ 31{
31 /* endless idle loop with no priority at all */ 32 /* endless idle loop with no priority at all */
32 while (1) { 33 while (1) {
34 tick_nohz_stop_sched_tick();
33 while (!need_resched()) 35 while (!need_resched())
34 cpu_idle_sleep(); 36 cpu_idle_sleep();
37 tick_nohz_restart_sched_tick();
35 preempt_enable_no_resched(); 38 preempt_enable_no_resched();
36 schedule(); 39 schedule();
37 preempt_disable(); 40 preempt_disable();
@@ -345,6 +348,7 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long usp,
345 p->thread.cpu_context.ksp = (unsigned long)childregs; 348 p->thread.cpu_context.ksp = (unsigned long)childregs;
346 p->thread.cpu_context.pc = (unsigned long)ret_from_fork; 349 p->thread.cpu_context.pc = (unsigned long)ret_from_fork;
347 350
351 clear_tsk_thread_flag(p, TIF_DEBUG);
348 if ((clone_flags & CLONE_PTRACE) && test_thread_flag(TIF_DEBUG)) 352 if ((clone_flags & CLONE_PTRACE) && test_thread_flag(TIF_DEBUG))
349 ocd_enable(p); 353 ocd_enable(p);
350 354
diff --git a/arch/avr32/mm/fault.c b/arch/avr32/mm/fault.c
index 6560cb18b4e3..ce4e4296b954 100644
--- a/arch/avr32/mm/fault.c
+++ b/arch/avr32/mm/fault.c
@@ -189,6 +189,8 @@ no_context:
189 189
190 page = sysreg_read(PTBR); 190 page = sysreg_read(PTBR);
191 printk(KERN_ALERT "ptbr = %08lx", page); 191 printk(KERN_ALERT "ptbr = %08lx", page);
192 if (address >= TASK_SIZE)
193 page = (unsigned long)swapper_pg_dir;
192 if (page) { 194 if (page) {
193 page = ((unsigned long *)page)[address >> 22]; 195 page = ((unsigned long *)page)[address >> 22];
194 printk(" pgd = %08lx", page); 196 printk(" pgd = %08lx", page);
diff --git a/arch/blackfin/Makefile b/arch/blackfin/Makefile
index fe254f886a6e..75eba2ca7881 100644
--- a/arch/blackfin/Makefile
+++ b/arch/blackfin/Makefile
@@ -98,8 +98,11 @@ drivers-$(CONFIG_OPROFILE) += arch/$(ARCH)/oprofile/
98# them changed. We use .mach to indicate when they were updated 98# them changed. We use .mach to indicate when they were updated
99# last, otherwise make uses the target directory mtime. 99# last, otherwise make uses the target directory mtime.
100 100
101 show_mach_symlink = :
102 quiet_show_mach_symlink = echo ' SYMLINK include/asm-$(ARCH)/mach-$(MACHINE) -> include/asm-$(ARCH)/mach'
103silent_show_mach_symlink = :
101include/asm-blackfin/.mach: $(wildcard include/config/arch/*.h) include/config/auto.conf 104include/asm-blackfin/.mach: $(wildcard include/config/arch/*.h) include/config/auto.conf
102 @echo ' SYMLINK include/asm-$(ARCH)/mach-$(MACHINE) -> include/asm-$(ARCH)/mach' 105 @$($(quiet)show_mach_symlink)
103ifneq ($(KBUILD_SRC),) 106ifneq ($(KBUILD_SRC),)
104 $(Q)mkdir -p include/asm-$(ARCH) 107 $(Q)mkdir -p include/asm-$(ARCH)
105 $(Q)ln -fsn $(srctree)/include/asm-$(ARCH)/mach-$(MACHINE) include/asm-$(ARCH)/mach 108 $(Q)ln -fsn $(srctree)/include/asm-$(ARCH)/mach-$(MACHINE) include/asm-$(ARCH)/mach
diff --git a/arch/blackfin/configs/BF527-EZKIT_defconfig b/arch/blackfin/configs/BF527-EZKIT_defconfig
index d59ee1530bd4..ae320dcfedef 100644
--- a/arch/blackfin/configs/BF527-EZKIT_defconfig
+++ b/arch/blackfin/configs/BF527-EZKIT_defconfig
@@ -1,7 +1,6 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.22.14 3# Linux kernel version: 2.6.22.16
4# Thu Nov 29 17:32:47 2007
5# 4#
6# CONFIG_MMU is not set 5# CONFIG_MMU is not set
7# CONFIG_FPU is not set 6# CONFIG_FPU is not set
@@ -116,7 +115,10 @@ CONFIG_PREEMPT_VOLUNTARY=y
116# Processor and Board Settings 115# Processor and Board Settings
117# 116#
118# CONFIG_BF522 is not set 117# CONFIG_BF522 is not set
118# CONFIG_BF523 is not set
119# CONFIG_BF524 is not set
119# CONFIG_BF525 is not set 120# CONFIG_BF525 is not set
121# CONFIG_BF526 is not set
120CONFIG_BF527=y 122CONFIG_BF527=y
121# CONFIG_BF531 is not set 123# CONFIG_BF531 is not set
122# CONFIG_BF532 is not set 124# CONFIG_BF532 is not set
@@ -306,6 +308,7 @@ CONFIG_BFIN_DCACHE=y
306# CONFIG_BFIN_WB is not set 308# CONFIG_BFIN_WB is not set
307CONFIG_BFIN_WT=y 309CONFIG_BFIN_WT=y
308CONFIG_L1_MAX_PIECE=16 310CONFIG_L1_MAX_PIECE=16
311# CONFIG_MPU is not set
309 312
310# 313#
311# Asynchonous Memory Configuration 314# Asynchonous Memory Configuration
@@ -354,6 +357,7 @@ CONFIG_BINFMT_ZFLAT=y
354# Power management options 357# Power management options
355# 358#
356# CONFIG_PM is not set 359# CONFIG_PM is not set
360# CONFIG_PM_WAKEUP_BY_GPIO is not set
357 361
358# 362#
359# Networking 363# Networking
@@ -496,7 +500,6 @@ CONFIG_MTD_CFI_I2=y
496# CONFIG_MTD_CFI_INTELEXT is not set 500# CONFIG_MTD_CFI_INTELEXT is not set
497# CONFIG_MTD_CFI_AMDSTD is not set 501# CONFIG_MTD_CFI_AMDSTD is not set
498# CONFIG_MTD_CFI_STAA is not set 502# CONFIG_MTD_CFI_STAA is not set
499CONFIG_MTD_MW320D=m
500CONFIG_MTD_RAM=y 503CONFIG_MTD_RAM=y
501CONFIG_MTD_ROM=m 504CONFIG_MTD_ROM=m
502# CONFIG_MTD_ABSENT is not set 505# CONFIG_MTD_ABSENT is not set
@@ -506,9 +509,6 @@ CONFIG_MTD_ROM=m
506# 509#
507CONFIG_MTD_COMPLEX_MAPPINGS=y 510CONFIG_MTD_COMPLEX_MAPPINGS=y
508# CONFIG_MTD_PHYSMAP is not set 511# CONFIG_MTD_PHYSMAP is not set
509CONFIG_MTD_BF5xx=m
510CONFIG_BFIN_FLASH_SIZE=0x400000
511CONFIG_EBIU_FLASH_BASE=0x20000000
512# CONFIG_MTD_UCLINUX is not set 512# CONFIG_MTD_UCLINUX is not set
513# CONFIG_MTD_PLATRAM is not set 513# CONFIG_MTD_PLATRAM is not set
514 514
@@ -684,7 +684,6 @@ CONFIG_INPUT_MISC=y
684# CONFIG_INPUT_POWERMATE is not set 684# CONFIG_INPUT_POWERMATE is not set
685# CONFIG_INPUT_YEALINK is not set 685# CONFIG_INPUT_YEALINK is not set
686# CONFIG_INPUT_UINPUT is not set 686# CONFIG_INPUT_UINPUT is not set
687# CONFIG_BF53X_PFBUTTONS is not set
688# CONFIG_TWI_KEYPAD is not set 687# CONFIG_TWI_KEYPAD is not set
689 688
690# 689#
@@ -702,12 +701,12 @@ CONFIG_INPUT_MISC=y
702# CONFIG_BF5xx_PPIFCD is not set 701# CONFIG_BF5xx_PPIFCD is not set
703# CONFIG_BFIN_SIMPLE_TIMER is not set 702# CONFIG_BFIN_SIMPLE_TIMER is not set
704# CONFIG_BF5xx_PPI is not set 703# CONFIG_BF5xx_PPI is not set
704CONFIG_BFIN_OTP=y
705# CONFIG_BFIN_OTP_WRITE_ENABLE is not set
705# CONFIG_BFIN_SPORT is not set 706# CONFIG_BFIN_SPORT is not set
706# CONFIG_BFIN_TIMER_LATENCY is not set 707# CONFIG_BFIN_TIMER_LATENCY is not set
707# CONFIG_TWI_LCD is not set 708# CONFIG_TWI_LCD is not set
708# CONFIG_AD5304 is not set 709# CONFIG_AD5304 is not set
709# CONFIG_BF5xx_TEA5764 is not set
710# CONFIG_BF5xx_FBDMA is not set
711# CONFIG_VT is not set 710# CONFIG_VT is not set
712# CONFIG_SERIAL_NONSTANDARD is not set 711# CONFIG_SERIAL_NONSTANDARD is not set
713 712
@@ -772,7 +771,6 @@ CONFIG_I2C_CHARDEV=m
772# 771#
773# I2C Hardware Bus support 772# I2C Hardware Bus support
774# 773#
775# CONFIG_I2C_BLACKFIN_GPIO is not set
776CONFIG_I2C_BLACKFIN_TWI=m 774CONFIG_I2C_BLACKFIN_TWI=m
777CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=50 775CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=50
778# CONFIG_I2C_GPIO is not set 776# CONFIG_I2C_GPIO is not set
diff --git a/arch/blackfin/configs/BF533-EZKIT_defconfig b/arch/blackfin/configs/BF533-EZKIT_defconfig
index 811711f59a25..9621caa60b5f 100644
--- a/arch/blackfin/configs/BF533-EZKIT_defconfig
+++ b/arch/blackfin/configs/BF533-EZKIT_defconfig
@@ -322,10 +322,9 @@ CONFIG_PM=y
322# CONFIG_PM_LEGACY is not set 322# CONFIG_PM_LEGACY is not set
323# CONFIG_PM_DEBUG is not set 323# CONFIG_PM_DEBUG is not set
324# CONFIG_PM_SYSFS_DEPRECATED is not set 324# CONFIG_PM_SYSFS_DEPRECATED is not set
325CONFIG_PM_WAKEUP_GPIO_BY_SIC_IWR=y 325CONFIG_PM_BFIN_SLEEP_DEEPER=y
326# CONFIG_PM_BFIN_SLEEP is not set
326# CONFIG_PM_WAKEUP_BY_GPIO is not set 327# CONFIG_PM_WAKEUP_BY_GPIO is not set
327# CONFIG_PM_WAKEUP_GPIO_API is not set
328CONFIG_PM_WAKEUP_SIC_IWR=0x80
329 328
330# 329#
331# CPU Frequency scaling 330# CPU Frequency scaling
@@ -697,7 +696,6 @@ CONFIG_SERIAL_BFIN_DMA=y
697# CONFIG_SERIAL_BFIN_PIO is not set 696# CONFIG_SERIAL_BFIN_PIO is not set
698CONFIG_SERIAL_BFIN_UART0=y 697CONFIG_SERIAL_BFIN_UART0=y
699# CONFIG_BFIN_UART0_CTSRTS is not set 698# CONFIG_BFIN_UART0_CTSRTS is not set
700# CONFIG_SERIAL_BFIN_UART1 is not set
701CONFIG_SERIAL_CORE=y 699CONFIG_SERIAL_CORE=y
702CONFIG_SERIAL_CORE_CONSOLE=y 700CONFIG_SERIAL_CORE_CONSOLE=y
703# CONFIG_SERIAL_BFIN_SPORT is not set 701# CONFIG_SERIAL_BFIN_SPORT is not set
diff --git a/arch/blackfin/configs/BF533-STAMP_defconfig b/arch/blackfin/configs/BF533-STAMP_defconfig
index 198f4123af4b..b51e76ce7f4f 100644
--- a/arch/blackfin/configs/BF533-STAMP_defconfig
+++ b/arch/blackfin/configs/BF533-STAMP_defconfig
@@ -323,10 +323,9 @@ CONFIG_PM=y
323# CONFIG_PM_LEGACY is not set 323# CONFIG_PM_LEGACY is not set
324# CONFIG_PM_DEBUG is not set 324# CONFIG_PM_DEBUG is not set
325# CONFIG_PM_SYSFS_DEPRECATED is not set 325# CONFIG_PM_SYSFS_DEPRECATED is not set
326CONFIG_PM_WAKEUP_GPIO_BY_SIC_IWR=y 326CONFIG_PM_BFIN_SLEEP_DEEPER=y
327# CONFIG_PM_BFIN_SLEEP is not set
327# CONFIG_PM_WAKEUP_BY_GPIO is not set 328# CONFIG_PM_WAKEUP_BY_GPIO is not set
328# CONFIG_PM_WAKEUP_GPIO_API is not set
329CONFIG_PM_WAKEUP_SIC_IWR=0x80
330 329
331# 330#
332# CPU Frequency scaling 331# CPU Frequency scaling
@@ -714,7 +713,6 @@ CONFIG_SERIAL_BFIN_DMA=y
714# CONFIG_SERIAL_BFIN_PIO is not set 713# CONFIG_SERIAL_BFIN_PIO is not set
715CONFIG_SERIAL_BFIN_UART0=y 714CONFIG_SERIAL_BFIN_UART0=y
716# CONFIG_BFIN_UART0_CTSRTS is not set 715# CONFIG_BFIN_UART0_CTSRTS is not set
717# CONFIG_SERIAL_BFIN_UART1 is not set
718CONFIG_SERIAL_CORE=y 716CONFIG_SERIAL_CORE=y
719CONFIG_SERIAL_CORE_CONSOLE=y 717CONFIG_SERIAL_CORE_CONSOLE=y
720# CONFIG_SERIAL_BFIN_SPORT is not set 718# CONFIG_SERIAL_BFIN_SPORT is not set
diff --git a/arch/blackfin/configs/BF537-STAMP_defconfig b/arch/blackfin/configs/BF537-STAMP_defconfig
index b37ccc681e7a..d45fa535dad7 100644
--- a/arch/blackfin/configs/BF537-STAMP_defconfig
+++ b/arch/blackfin/configs/BF537-STAMP_defconfig
@@ -330,10 +330,9 @@ CONFIG_PM=y
330# CONFIG_PM_LEGACY is not set 330# CONFIG_PM_LEGACY is not set
331# CONFIG_PM_DEBUG is not set 331# CONFIG_PM_DEBUG is not set
332# CONFIG_PM_SYSFS_DEPRECATED is not set 332# CONFIG_PM_SYSFS_DEPRECATED is not set
333CONFIG_PM_WAKEUP_GPIO_BY_SIC_IWR=y 333CONFIG_PM_BFIN_SLEEP_DEEPER=y
334# CONFIG_PM_BFIN_SLEEP is not set
334# CONFIG_PM_WAKEUP_BY_GPIO is not set 335# CONFIG_PM_WAKEUP_BY_GPIO is not set
335# CONFIG_PM_WAKEUP_GPIO_API is not set
336CONFIG_PM_WAKEUP_SIC_IWR=0x8
337 336
338# 337#
339# CPU Frequency scaling 338# CPU Frequency scaling
@@ -1013,6 +1012,7 @@ CONFIG_SND_BFIN_AD73311_SE=4
1013CONFIG_SND_SOC_AC97_BUS=y 1012CONFIG_SND_SOC_AC97_BUS=y
1014CONFIG_SND_SOC=m 1013CONFIG_SND_SOC=m
1015CONFIG_SND_BF5XX_SOC=m 1014CONFIG_SND_BF5XX_SOC=m
1015CONFIG_SND_MMAP_SUPPORT=y
1016CONFIG_SND_BF5XX_SOC_AC97=m 1016CONFIG_SND_BF5XX_SOC_AC97=m
1017# CONFIG_SND_BF5XX_SOC_WM8750 is not set 1017# CONFIG_SND_BF5XX_SOC_WM8750 is not set
1018# CONFIG_SND_BF5XX_SOC_WM8731 is not set 1018# CONFIG_SND_BF5XX_SOC_WM8731 is not set
diff --git a/arch/blackfin/configs/BF548-EZKIT_defconfig b/arch/blackfin/configs/BF548-EZKIT_defconfig
index fd702161ef59..c9707f7665ad 100644
--- a/arch/blackfin/configs/BF548-EZKIT_defconfig
+++ b/arch/blackfin/configs/BF548-EZKIT_defconfig
@@ -396,6 +396,7 @@ CONFIG_BINFMT_ZFLAT=y
396# Power management options 396# Power management options
397# 397#
398# CONFIG_PM is not set 398# CONFIG_PM is not set
399# CONFIG_PM_WAKEUP_BY_GPIO is not set
399 400
400# 401#
401# CPU Frequency scaling 402# CPU Frequency scaling
@@ -1075,6 +1076,7 @@ CONFIG_SND_VERBOSE_PROCFS=y
1075CONFIG_SND_SOC_AC97_BUS=y 1076CONFIG_SND_SOC_AC97_BUS=y
1076CONFIG_SND_SOC=y 1077CONFIG_SND_SOC=y
1077CONFIG_SND_BF5XX_SOC=y 1078CONFIG_SND_BF5XX_SOC=y
1079CONFIG_SND_MMAP_SUPPORT=y
1078CONFIG_SND_BF5XX_SOC_AC97=y 1080CONFIG_SND_BF5XX_SOC_AC97=y
1079CONFIG_SND_BF5XX_SOC_BF548_EZKIT=y 1081CONFIG_SND_BF5XX_SOC_BF548_EZKIT=y
1080# CONFIG_SND_BF5XX_SOC_WM8750 is not set 1082# CONFIG_SND_BF5XX_SOC_WM8750 is not set
diff --git a/arch/blackfin/configs/BF561-EZKIT_defconfig b/arch/blackfin/configs/BF561-EZKIT_defconfig
index 8546994939fb..4d8a63331309 100644
--- a/arch/blackfin/configs/BF561-EZKIT_defconfig
+++ b/arch/blackfin/configs/BF561-EZKIT_defconfig
@@ -367,6 +367,7 @@ CONFIG_BINFMT_ZFLAT=y
367# Power management options 367# Power management options
368# 368#
369# CONFIG_PM is not set 369# CONFIG_PM is not set
370# CONFIG_PM_WAKEUP_BY_GPIO is not set
370 371
371# 372#
372# Networking 373# Networking
diff --git a/arch/blackfin/kernel/bfin_dma_5xx.c b/arch/blackfin/kernel/bfin_dma_5xx.c
index 5453bc3664fc..8fd5d22cec34 100644
--- a/arch/blackfin/kernel/bfin_dma_5xx.c
+++ b/arch/blackfin/kernel/bfin_dma_5xx.c
@@ -105,13 +105,14 @@ int request_dma(unsigned int channel, char *device_id)
105 mutex_unlock(&(dma_ch[channel].dmalock)); 105 mutex_unlock(&(dma_ch[channel].dmalock));
106 106
107#ifdef CONFIG_BF54x 107#ifdef CONFIG_BF54x
108 if (channel >= CH_UART2_RX && channel <= CH_UART3_TX && 108 if (channel >= CH_UART2_RX && channel <= CH_UART3_TX) {
109 strncmp(device_id, "BFIN_UART", 9) == 0) 109 if (strncmp(device_id, "BFIN_UART", 9) == 0)
110 dma_ch[channel].regs->peripheral_map |= 110 dma_ch[channel].regs->peripheral_map |=
111 (channel - CH_UART2_RX + 0xC); 111 (channel - CH_UART2_RX + 0xC);
112 else 112 else
113 dma_ch[channel].regs->peripheral_map |= 113 dma_ch[channel].regs->peripheral_map |=
114 (channel - CH_UART2_RX + 0x6); 114 (channel - CH_UART2_RX + 0x6);
115 }
115#endif 116#endif
116 117
117 dma_ch[channel].device_id = device_id; 118 dma_ch[channel].device_id = device_id;
diff --git a/arch/blackfin/kernel/gptimers.c b/arch/blackfin/kernel/gptimers.c
index 5cf4bdb1df3b..1904d8b53328 100644
--- a/arch/blackfin/kernel/gptimers.c
+++ b/arch/blackfin/kernel/gptimers.c
@@ -1,9 +1,9 @@
1/* 1/*
2 * bfin_gptimers.c - derived from bf53x_timers.c 2 * gptimers.c - Blackfin General Purpose Timer core API
3 * Driver for General Purpose Timer functions on the Blackfin processor
4 * 3 *
5 * Copyright (C) 2005 John DeHority 4 * Copyright (c) 2005-2008 Analog Devices Inc.
6 * Copyright (C) 2006 Hella Aglaia GmbH (awe@aglaia-gmbh.de) 5 * Copyright (C) 2005 John DeHority
6 * Copyright (C) 2006 Hella Aglaia GmbH (awe@aglaia-gmbh.de)
7 * 7 *
8 * Licensed under the GPLv2. 8 * Licensed under the GPLv2.
9 */ 9 */
diff --git a/arch/blackfin/kernel/setup.c b/arch/blackfin/kernel/setup.c
index 8229b1090eb9..2255c289a714 100644
--- a/arch/blackfin/kernel/setup.c
+++ b/arch/blackfin/kernel/setup.c
@@ -32,6 +32,7 @@
32static DEFINE_PER_CPU(struct cpu, cpu_devices); 32static DEFINE_PER_CPU(struct cpu, cpu_devices);
33 33
34u16 _bfin_swrst; 34u16 _bfin_swrst;
35EXPORT_SYMBOL(_bfin_swrst);
35 36
36unsigned long memory_start, memory_end, physical_mem_end; 37unsigned long memory_start, memory_end, physical_mem_end;
37unsigned long reserved_mem_dcache_on; 38unsigned long reserved_mem_dcache_on;
@@ -514,6 +515,7 @@ static __init void memory_setup(void)
514 printk(KERN_INFO "Kernel Managed Memory: %ldMB\n", _ramend >> 20); 515 printk(KERN_INFO "Kernel Managed Memory: %ldMB\n", _ramend >> 20);
515 516
516 printk(KERN_INFO "Memory map:\n" 517 printk(KERN_INFO "Memory map:\n"
518 KERN_INFO " fixedcode = 0x%p-0x%p\n"
517 KERN_INFO " text = 0x%p-0x%p\n" 519 KERN_INFO " text = 0x%p-0x%p\n"
518 KERN_INFO " rodata = 0x%p-0x%p\n" 520 KERN_INFO " rodata = 0x%p-0x%p\n"
519 KERN_INFO " bss = 0x%p-0x%p\n" 521 KERN_INFO " bss = 0x%p-0x%p\n"
@@ -527,7 +529,8 @@ static __init void memory_setup(void)
527#if DMA_UNCACHED_REGION > 0 529#if DMA_UNCACHED_REGION > 0
528 KERN_INFO " DMA Zone = 0x%p-0x%p\n" 530 KERN_INFO " DMA Zone = 0x%p-0x%p\n"
529#endif 531#endif
530 , _stext, _etext, 532 , (void *)FIXED_CODE_START, (void *)FIXED_CODE_END,
533 _stext, _etext,
531 __start_rodata, __end_rodata, 534 __start_rodata, __end_rodata,
532 __bss_start, __bss_stop, 535 __bss_start, __bss_stop,
533 _sdata, _edata, 536 _sdata, _edata,
diff --git a/arch/blackfin/kernel/vmlinux.lds.S b/arch/blackfin/kernel/vmlinux.lds.S
index aed832540b3b..cb01a9de2680 100644
--- a/arch/blackfin/kernel/vmlinux.lds.S
+++ b/arch/blackfin/kernel/vmlinux.lds.S
@@ -147,44 +147,64 @@ SECTIONS
147 147
148 __l1_lma_start = .; 148 __l1_lma_start = .;
149 149
150#if L1_CODE_LENGTH
151# define LDS_L1_CODE *(.l1.text)
152#else
153# define LDS_L1_CODE
154#endif
150 .text_l1 L1_CODE_START : AT(LOADADDR(.init.ramfs) + SIZEOF(.init.ramfs)) 155 .text_l1 L1_CODE_START : AT(LOADADDR(.init.ramfs) + SIZEOF(.init.ramfs))
151 { 156 {
152 . = ALIGN(4); 157 . = ALIGN(4);
153 __stext_l1 = .; 158 __stext_l1 = .;
154 *(.l1.text) 159 LDS_L1_CODE
155
156 . = ALIGN(4); 160 . = ALIGN(4);
157 __etext_l1 = .; 161 __etext_l1 = .;
158 } 162 }
159 163
164#if L1_DATA_A_LENGTH
165# define LDS_L1_A_DATA *(.l1.data)
166# define LDS_L1_A_BSS *(.l1.bss)
167# define LDS_L1_A_CACHE *(.data_l1.cacheline_aligned)
168#else
169# define LDS_L1_A_DATA
170# define LDS_L1_A_BSS
171# define LDS_L1_A_CACHE
172#endif
160 .data_l1 L1_DATA_A_START : AT(LOADADDR(.text_l1) + SIZEOF(.text_l1)) 173 .data_l1 L1_DATA_A_START : AT(LOADADDR(.text_l1) + SIZEOF(.text_l1))
161 { 174 {
162 . = ALIGN(4); 175 . = ALIGN(4);
163 __sdata_l1 = .; 176 __sdata_l1 = .;
164 *(.l1.data) 177 LDS_L1_A_DATA
165 __edata_l1 = .; 178 __edata_l1 = .;
166 179
167 . = ALIGN(4); 180 . = ALIGN(4);
168 __sbss_l1 = .; 181 __sbss_l1 = .;
169 *(.l1.bss) 182 LDS_L1_A_BSS
170 183
171 . = ALIGN(32); 184 . = ALIGN(32);
172 *(.data_l1.cacheline_aligned) 185 LDS_L1_A_CACHE
173 186
174 . = ALIGN(4); 187 . = ALIGN(4);
175 __ebss_l1 = .; 188 __ebss_l1 = .;
176 } 189 }
177 190
191#if L1_DATA_B_LENGTH
192# define LDS_L1_B_DATA *(.l1.data.B)
193# define LDS_L1_B_BSS *(.l1.bss.B)
194#else
195# define LDS_L1_B_DATA
196# define LDS_L1_B_BSS
197#endif
178 .data_b_l1 L1_DATA_B_START : AT(LOADADDR(.data_l1) + SIZEOF(.data_l1)) 198 .data_b_l1 L1_DATA_B_START : AT(LOADADDR(.data_l1) + SIZEOF(.data_l1))
179 { 199 {
180 . = ALIGN(4); 200 . = ALIGN(4);
181 __sdata_b_l1 = .; 201 __sdata_b_l1 = .;
182 *(.l1.data.B) 202 LDS_L1_B_DATA
183 __edata_b_l1 = .; 203 __edata_b_l1 = .;
184 204
185 . = ALIGN(4); 205 . = ALIGN(4);
186 __sbss_b_l1 = .; 206 __sbss_b_l1 = .;
187 *(.l1.bss.B) 207 LDS_L1_B_BSS
188 208
189 . = ALIGN(4); 209 . = ALIGN(4);
190 __ebss_b_l1 = .; 210 __ebss_b_l1 = .;
diff --git a/arch/blackfin/mach-bf527/boards/ezkit.c b/arch/blackfin/mach-bf527/boards/ezkit.c
index 337515fba612..cf4bc0d83355 100644
--- a/arch/blackfin/mach-bf527/boards/ezkit.c
+++ b/arch/blackfin/mach-bf527/boards/ezkit.c
@@ -180,8 +180,8 @@ static struct mtd_partition partition_info[] = {
180 }, 180 },
181 { 181 {
182 .name = "File System", 182 .name = "File System",
183 .offset = 4 * SIZE_1M, 183 .offset = MTDPART_OFS_APPEND,
184 .size = (256 - 4) * SIZE_1M, 184 .size = MTDPART_SIZ_FULL,
185 }, 185 },
186}; 186};
187 187
@@ -422,11 +422,11 @@ static struct mtd_partition bfin_spi_flash_partitions[] = {
422 }, { 422 }, {
423 .name = "kernel", 423 .name = "kernel",
424 .size = 0xe0000, 424 .size = 0xe0000,
425 .offset = 0x20000 425 .offset = MTDPART_OFS_APPEND,
426 }, { 426 }, {
427 .name = "file system", 427 .name = "file system",
428 .size = 0x700000, 428 .size = MTDPART_SIZ_FULL,
429 .offset = 0x00100000, 429 .offset = MTDPART_OFS_APPEND,
430 } 430 }
431}; 431};
432 432
@@ -484,13 +484,6 @@ static struct bfin5xx_spi_chip spi_si3xxx_chip_info = {
484}; 484};
485#endif 485#endif
486 486
487#if defined(CONFIG_AD5304) || defined(CONFIG_AD5304_MODULE)
488static struct bfin5xx_spi_chip ad5304_chip_info = {
489 .enable_dma = 0,
490 .bits_per_word = 16,
491};
492#endif
493
494#if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE) 487#if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE)
495static struct bfin5xx_spi_chip spi_ad7877_chip_info = { 488static struct bfin5xx_spi_chip spi_ad7877_chip_info = {
496 .enable_dma = 0, 489 .enable_dma = 0,
@@ -611,17 +604,6 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {
611 .mode = SPI_MODE_3, 604 .mode = SPI_MODE_3,
612 }, 605 },
613#endif 606#endif
614#if defined(CONFIG_AD5304) || defined(CONFIG_AD5304_MODULE)
615 {
616 .modalias = "ad5304_spi",
617 .max_speed_hz = 1250000, /* max spi clock (SCK) speed in HZ */
618 .bus_num = 0,
619 .chip_select = 2,
620 .platform_data = NULL,
621 .controller_data = &ad5304_chip_info,
622 .mode = SPI_MODE_2,
623 },
624#endif
625#if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE) 607#if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE)
626 { 608 {
627 .modalias = "ad7877", 609 .modalias = "ad7877",
@@ -818,6 +800,19 @@ static struct platform_device bfin_device_gpiokeys = {
818}; 800};
819#endif 801#endif
820 802
803static struct resource bfin_gpios_resources = {
804 .start = 0,
805 .end = MAX_BLACKFIN_GPIOS - 1,
806 .flags = IORESOURCE_IRQ,
807};
808
809static struct platform_device bfin_gpios_device = {
810 .name = "simple-gpio",
811 .id = -1,
812 .num_resources = 1,
813 .resource = &bfin_gpios_resources,
814};
815
821static struct platform_device *stamp_devices[] __initdata = { 816static struct platform_device *stamp_devices[] __initdata = {
822#if defined(CONFIG_MTD_NAND_BF5XX) || defined(CONFIG_MTD_NAND_BF5XX_MODULE) 817#if defined(CONFIG_MTD_NAND_BF5XX) || defined(CONFIG_MTD_NAND_BF5XX_MODULE)
823 &bf5xx_nand_device, 818 &bf5xx_nand_device,
@@ -895,6 +890,8 @@ static struct platform_device *stamp_devices[] __initdata = {
895#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) 890#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
896 &bfin_device_gpiokeys, 891 &bfin_device_gpiokeys,
897#endif 892#endif
893
894 &bfin_gpios_device,
898}; 895};
899 896
900static int __init stamp_init(void) 897static int __init stamp_init(void)
@@ -921,13 +918,18 @@ void native_machine_restart(char *cmd)
921 bfin_gpio_reset_spi0_ssel1(); 918 bfin_gpio_reset_spi0_ssel1();
922} 919}
923 920
924/*
925 * Currently the MAC address is saved in Flash by U-Boot
926 */
927#define FLASH_MAC 0x203f0000
928void bfin_get_ether_addr(char *addr) 921void bfin_get_ether_addr(char *addr)
929{ 922{
930 *(u32 *)(&(addr[0])) = bfin_read32(FLASH_MAC); 923 /* the MAC is stored in OTP memory page 0xDF */
931 *(u16 *)(&(addr[4])) = bfin_read16(FLASH_MAC + 4); 924 u32 ret;
925 u64 otp_mac;
926 u32 (*otp_read)(u32 page, u32 flags, u64 *page_content) = (void *)0xEF00001A;
927
928 ret = otp_read(0xDF, 0x00, &otp_mac);
929 if (!(ret & 0x1)) {
930 char *otp_mac_p = (char *)&otp_mac;
931 for (ret = 0; ret < 6; ++ret)
932 addr[ret] = otp_mac_p[5 - ret];
933 }
932} 934}
933EXPORT_SYMBOL(bfin_get_ether_addr); 935EXPORT_SYMBOL(bfin_get_ether_addr);
diff --git a/arch/blackfin/mach-bf533/boards/ezkit.c b/arch/blackfin/mach-bf533/boards/ezkit.c
index 2b09aa39f565..241b5a20a36a 100644
--- a/arch/blackfin/mach-bf533/boards/ezkit.c
+++ b/arch/blackfin/mach-bf533/boards/ezkit.c
@@ -99,11 +99,11 @@ static struct mtd_partition bfin_spi_flash_partitions[] = {
99 }, { 99 }, {
100 .name = "kernel", 100 .name = "kernel",
101 .size = 0xe0000, 101 .size = 0xe0000,
102 .offset = 0x20000 102 .offset = MTDPART_OFS_APPEND,
103 }, { 103 }, {
104 .name = "file system", 104 .name = "file system",
105 .size = 0x700000, 105 .size = MTDPART_SIZ_FULL,
106 .offset = 0x00100000, 106 .offset = MTDPART_OFS_APPEND,
107 } 107 }
108}; 108};
109 109
@@ -298,6 +298,19 @@ static struct platform_device bfin_device_gpiokeys = {
298}; 298};
299#endif 299#endif
300 300
301static struct resource bfin_gpios_resources = {
302 .start = 0,
303 .end = MAX_BLACKFIN_GPIOS - 1,
304 .flags = IORESOURCE_IRQ,
305};
306
307static struct platform_device bfin_gpios_device = {
308 .name = "simple-gpio",
309 .id = -1,
310 .num_resources = 1,
311 .resource = &bfin_gpios_resources,
312};
313
301#if defined(CONFIG_I2C_GPIO) || defined(CONFIG_I2C_GPIO_MODULE) 314#if defined(CONFIG_I2C_GPIO) || defined(CONFIG_I2C_GPIO_MODULE)
302#include <linux/i2c-gpio.h> 315#include <linux/i2c-gpio.h>
303 316
@@ -350,6 +363,8 @@ static struct platform_device *ezkit_devices[] __initdata = {
350#if defined(CONFIG_I2C_GPIO) || defined(CONFIG_I2C_GPIO_MODULE) 363#if defined(CONFIG_I2C_GPIO) || defined(CONFIG_I2C_GPIO_MODULE)
351 &i2c_gpio_device, 364 &i2c_gpio_device,
352#endif 365#endif
366
367 &bfin_gpios_device,
353}; 368};
354 369
355static int __init ezkit_init(void) 370static int __init ezkit_init(void)
diff --git a/arch/blackfin/mach-bf533/boards/stamp.c b/arch/blackfin/mach-bf533/boards/stamp.c
index a645f6fd091b..b2ac4816ae62 100644
--- a/arch/blackfin/mach-bf533/boards/stamp.c
+++ b/arch/blackfin/mach-bf533/boards/stamp.c
@@ -112,7 +112,7 @@ static struct platform_device net2272_bfin_device = {
112static struct mtd_partition stamp_partitions[] = { 112static struct mtd_partition stamp_partitions[] = {
113 { 113 {
114 .name = "Bootloader", 114 .name = "Bootloader",
115 .size = 0x20000, 115 .size = 0x40000,
116 .offset = 0, 116 .offset = 0,
117 }, { 117 }, {
118 .name = "Kernel", 118 .name = "Kernel",
@@ -160,17 +160,17 @@ static struct platform_device stamp_flash_device = {
160static struct mtd_partition bfin_spi_flash_partitions[] = { 160static struct mtd_partition bfin_spi_flash_partitions[] = {
161 { 161 {
162 .name = "bootloader", 162 .name = "bootloader",
163 .size = 0x00020000, 163 .size = 0x00040000,
164 .offset = 0, 164 .offset = 0,
165 .mask_flags = MTD_CAP_ROM 165 .mask_flags = MTD_CAP_ROM
166 }, { 166 }, {
167 .name = "kernel", 167 .name = "kernel",
168 .size = 0xe0000, 168 .size = 0xe0000,
169 .offset = 0x20000 169 .offset = MTDPART_OFS_APPEND,
170 }, { 170 }, {
171 .name = "file system", 171 .name = "file system",
172 .size = 0x700000, 172 .size = MTDPART_SIZ_FULL,
173 .offset = 0x00100000, 173 .offset = MTDPART_OFS_APPEND,
174 } 174 }
175}; 175};
176 176
@@ -212,13 +212,6 @@ static struct bfin5xx_spi_chip spi_si3xxx_chip_info = {
212}; 212};
213#endif 213#endif
214 214
215#if defined(CONFIG_AD5304) || defined(CONFIG_AD5304_MODULE)
216static struct bfin5xx_spi_chip ad5304_chip_info = {
217 .enable_dma = 0,
218 .bits_per_word = 16,
219};
220#endif
221
222#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE) 215#if defined(CONFIG_SPI_MMC) || defined(CONFIG_SPI_MMC_MODULE)
223static struct bfin5xx_spi_chip spi_mmc_chip_info = { 216static struct bfin5xx_spi_chip spi_mmc_chip_info = {
224 .enable_dma = 1, 217 .enable_dma = 1,
@@ -308,17 +301,6 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {
308 }, 301 },
309#endif 302#endif
310 303
311#if defined(CONFIG_AD5304) || defined(CONFIG_AD5304_MODULE)
312 {
313 .modalias = "ad5304_spi",
314 .max_speed_hz = 1000000, /* max spi clock (SCK) speed in HZ */
315 .bus_num = 0,
316 .chip_select = 2,
317 .platform_data = NULL,
318 .controller_data = &ad5304_chip_info,
319 .mode = SPI_MODE_2,
320 },
321#endif
322#if defined(CONFIG_SPI_SPIDEV) || defined(CONFIG_SPI_SPIDEV_MODULE) 304#if defined(CONFIG_SPI_SPIDEV) || defined(CONFIG_SPI_SPIDEV_MODULE)
323 { 305 {
324 .modalias = "spidev", 306 .modalias = "spidev",
@@ -457,6 +439,19 @@ static struct platform_device bfin_device_gpiokeys = {
457}; 439};
458#endif 440#endif
459 441
442static struct resource bfin_gpios_resources = {
443 .start = 0,
444 .end = MAX_BLACKFIN_GPIOS - 1,
445 .flags = IORESOURCE_IRQ,
446};
447
448static struct platform_device bfin_gpios_device = {
449 .name = "simple-gpio",
450 .id = -1,
451 .num_resources = 1,
452 .resource = &bfin_gpios_resources,
453};
454
460#if defined(CONFIG_I2C_GPIO) || defined(CONFIG_I2C_GPIO_MODULE) 455#if defined(CONFIG_I2C_GPIO) || defined(CONFIG_I2C_GPIO_MODULE)
461#include <linux/i2c-gpio.h> 456#include <linux/i2c-gpio.h>
462 457
@@ -518,6 +513,8 @@ static struct platform_device *stamp_devices[] __initdata = {
518#if defined(CONFIG_I2C_GPIO) || defined(CONFIG_I2C_GPIO_MODULE) 513#if defined(CONFIG_I2C_GPIO) || defined(CONFIG_I2C_GPIO_MODULE)
519 &i2c_gpio_device, 514 &i2c_gpio_device,
520#endif 515#endif
516
517 &bfin_gpios_device,
521 &stamp_flash_device, 518 &stamp_flash_device,
522}; 519};
523 520
diff --git a/arch/blackfin/mach-bf537/boards/generic_board.c b/arch/blackfin/mach-bf537/boards/generic_board.c
index 8a3397db1d21..c95395ba7bfa 100644
--- a/arch/blackfin/mach-bf537/boards/generic_board.c
+++ b/arch/blackfin/mach-bf537/boards/generic_board.c
@@ -371,13 +371,6 @@ static struct bfin5xx_spi_chip spi_si3xxx_chip_info = {
371}; 371};
372#endif 372#endif
373 373
374#if defined(CONFIG_AD5304) || defined(CONFIG_AD5304_MODULE)
375static struct bfin5xx_spi_chip ad5304_chip_info = {
376 .enable_dma = 0,
377 .bits_per_word = 16,
378};
379#endif
380
381#if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE) 374#if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE)
382static struct bfin5xx_spi_chip spi_ad7877_chip_info = { 375static struct bfin5xx_spi_chip spi_ad7877_chip_info = {
383 .enable_dma = 0, 376 .enable_dma = 0,
@@ -483,17 +476,6 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {
483 .mode = SPI_MODE_3, 476 .mode = SPI_MODE_3,
484 }, 477 },
485#endif 478#endif
486#if defined(CONFIG_AD5304) || defined(CONFIG_AD5304_MODULE)
487 {
488 .modalias = "ad5304_spi",
489 .max_speed_hz = 1250000, /* max spi clock (SCK) speed in HZ */
490 .bus_num = 0,
491 .chip_select = 2,
492 .platform_data = NULL,
493 .controller_data = &ad5304_chip_info,
494 .mode = SPI_MODE_2,
495 },
496#endif
497#if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE) 479#if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE)
498 { 480 {
499 .modalias = "ad7877", 481 .modalias = "ad7877",
diff --git a/arch/blackfin/mach-bf537/boards/stamp.c b/arch/blackfin/mach-bf537/boards/stamp.c
index 9e2277e0d25c..ea83148993da 100644
--- a/arch/blackfin/mach-bf537/boards/stamp.c
+++ b/arch/blackfin/mach-bf537/boards/stamp.c
@@ -128,6 +128,19 @@ static struct platform_device bfin_device_gpiokeys = {
128}; 128};
129#endif 129#endif
130 130
131static struct resource bfin_gpios_resources = {
132 .start = 0,
133 .end = MAX_BLACKFIN_GPIOS - 1,
134 .flags = IORESOURCE_IRQ,
135};
136
137static struct platform_device bfin_gpios_device = {
138 .name = "simple-gpio",
139 .id = -1,
140 .num_resources = 1,
141 .resource = &bfin_gpios_resources,
142};
143
131#if defined(CONFIG_BFIN_CFPCMCIA) || defined(CONFIG_BFIN_CFPCMCIA_MODULE) 144#if defined(CONFIG_BFIN_CFPCMCIA) || defined(CONFIG_BFIN_CFPCMCIA_MODULE)
132static struct resource bfin_pcmcia_cf_resources[] = { 145static struct resource bfin_pcmcia_cf_resources[] = {
133 { 146 {
@@ -343,7 +356,7 @@ static struct platform_device net2272_bfin_device = {
343static struct mtd_partition stamp_partitions[] = { 356static struct mtd_partition stamp_partitions[] = {
344 { 357 {
345 .name = "Bootloader", 358 .name = "Bootloader",
346 .size = 0x20000, 359 .size = 0x40000,
347 .offset = 0, 360 .offset = 0,
348 }, { 361 }, {
349 .name = "Kernel", 362 .name = "Kernel",
@@ -351,7 +364,7 @@ static struct mtd_partition stamp_partitions[] = {
351 .offset = MTDPART_OFS_APPEND, 364 .offset = MTDPART_OFS_APPEND,
352 }, { 365 }, {
353 .name = "RootFS", 366 .name = "RootFS",
354 .size = 0x400000 - 0x20000 - 0xE0000 - 0x10000, 367 .size = 0x400000 - 0x40000 - 0xE0000 - 0x10000,
355 .offset = MTDPART_OFS_APPEND, 368 .offset = MTDPART_OFS_APPEND,
356 }, { 369 }, {
357 .name = "MAC Address", 370 .name = "MAC Address",
@@ -391,17 +404,17 @@ static struct platform_device stamp_flash_device = {
391static struct mtd_partition bfin_spi_flash_partitions[] = { 404static struct mtd_partition bfin_spi_flash_partitions[] = {
392 { 405 {
393 .name = "bootloader", 406 .name = "bootloader",
394 .size = 0x00020000, 407 .size = 0x00040000,
395 .offset = 0, 408 .offset = 0,
396 .mask_flags = MTD_CAP_ROM 409 .mask_flags = MTD_CAP_ROM
397 }, { 410 }, {
398 .name = "kernel", 411 .name = "kernel",
399 .size = 0xe0000, 412 .size = 0xe0000,
400 .offset = 0x20000 413 .offset = MTDPART_OFS_APPEND,
401 }, { 414 }, {
402 .name = "file system", 415 .name = "file system",
403 .size = 0x700000, 416 .size = MTDPART_SIZ_FULL,
404 .offset = 0x00100000, 417 .offset = MTDPART_OFS_APPEND,
405 } 418 }
406}; 419};
407 420
@@ -459,13 +472,6 @@ static struct bfin5xx_spi_chip spi_si3xxx_chip_info = {
459}; 472};
460#endif 473#endif
461 474
462#if defined(CONFIG_AD5304) || defined(CONFIG_AD5304_MODULE)
463static struct bfin5xx_spi_chip ad5304_chip_info = {
464 .enable_dma = 0,
465 .bits_per_word = 16,
466};
467#endif
468
469#if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE) 475#if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE)
470static struct bfin5xx_spi_chip spi_ad7877_chip_info = { 476static struct bfin5xx_spi_chip spi_ad7877_chip_info = {
471 .enable_dma = 0, 477 .enable_dma = 0,
@@ -578,17 +584,6 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {
578 .mode = SPI_MODE_3, 584 .mode = SPI_MODE_3,
579 }, 585 },
580#endif 586#endif
581#if defined(CONFIG_AD5304) || defined(CONFIG_AD5304_MODULE)
582 {
583 .modalias = "ad5304_spi",
584 .max_speed_hz = 1250000, /* max spi clock (SCK) speed in HZ */
585 .bus_num = 0,
586 .chip_select = 2,
587 .platform_data = NULL,
588 .controller_data = &ad5304_chip_info,
589 .mode = SPI_MODE_2,
590 },
591#endif
592#if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE) 587#if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE)
593 { 588 {
594 .modalias = "ad7877", 589 .modalias = "ad7877",
@@ -821,6 +816,8 @@ static struct platform_device *stamp_devices[] __initdata = {
821#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) 816#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
822 &bfin_device_gpiokeys, 817 &bfin_device_gpiokeys,
823#endif 818#endif
819
820 &bfin_gpios_device,
824 &stamp_flash_device, 821 &stamp_flash_device,
825}; 822};
826 823
diff --git a/arch/blackfin/mach-bf548/boards/ezkit.c b/arch/blackfin/mach-bf548/boards/ezkit.c
index 916e963e83ba..a0950c1fd800 100644
--- a/arch/blackfin/mach-bf548/boards/ezkit.c
+++ b/arch/blackfin/mach-bf548/boards/ezkit.c
@@ -285,8 +285,8 @@ static struct mtd_partition partition_info[] = {
285 }, 285 },
286 { 286 {
287 .name = "File System", 287 .name = "File System",
288 .offset = 4 * SIZE_1M, 288 .offset = MTDPART_OFS_APPEND,
289 .size = (256 - 4) * SIZE_1M, 289 .size = MTDPART_SIZ_FULL,
290 }, 290 },
291}; 291};
292 292
@@ -333,7 +333,7 @@ static struct platform_device bf54x_sdh_device = {
333static struct mtd_partition ezkit_partitions[] = { 333static struct mtd_partition ezkit_partitions[] = {
334 { 334 {
335 .name = "Bootloader", 335 .name = "Bootloader",
336 .size = 0x20000, 336 .size = 0x40000,
337 .offset = 0, 337 .offset = 0,
338 }, { 338 }, {
339 .name = "Kernel", 339 .name = "Kernel",
@@ -381,8 +381,8 @@ static struct mtd_partition bfin_spi_flash_partitions[] = {
381 .mask_flags = MTD_CAP_ROM 381 .mask_flags = MTD_CAP_ROM
382 }, { 382 }, {
383 .name = "linux kernel", 383 .name = "linux kernel",
384 .size = 0x1c0000, 384 .size = MTDPART_SIZ_FULL,
385 .offset = 0x40000 385 .offset = MTDPART_OFS_APPEND,
386 } 386 }
387}; 387};
388 388
@@ -594,6 +594,19 @@ static struct platform_device bfin_device_gpiokeys = {
594}; 594};
595#endif 595#endif
596 596
597static struct resource bfin_gpios_resources = {
598 .start = 0,
599 .end = MAX_BLACKFIN_GPIOS - 1,
600 .flags = IORESOURCE_IRQ,
601};
602
603static struct platform_device bfin_gpios_device = {
604 .name = "simple-gpio",
605 .id = -1,
606 .num_resources = 1,
607 .resource = &bfin_gpios_resources,
608};
609
597static struct platform_device *ezkit_devices[] __initdata = { 610static struct platform_device *ezkit_devices[] __initdata = {
598#if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE) 611#if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE)
599 &rtc_device, 612 &rtc_device,
@@ -646,6 +659,8 @@ static struct platform_device *ezkit_devices[] __initdata = {
646#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) 659#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
647 &bfin_device_gpiokeys, 660 &bfin_device_gpiokeys,
648#endif 661#endif
662
663 &bfin_gpios_device,
649 &ezkit_flash_device, 664 &ezkit_flash_device,
650}; 665};
651 666
diff --git a/arch/blackfin/mach-bf548/dma.c b/arch/blackfin/mach-bf548/dma.c
index 374803a8d2e8..f5479298bb79 100644
--- a/arch/blackfin/mach-bf548/dma.c
+++ b/arch/blackfin/mach-bf548/dma.c
@@ -27,6 +27,8 @@
27 * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 27 * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
28 */ 28 */
29 29
30#include <linux/module.h>
31
30#include <asm/blackfin.h> 32#include <asm/blackfin.h>
31#include <asm/dma.h> 33#include <asm/dma.h>
32 34
diff --git a/arch/blackfin/mach-bf548/head.S b/arch/blackfin/mach-bf548/head.S
index 74fe258421a5..46222a75321a 100644
--- a/arch/blackfin/mach-bf548/head.S
+++ b/arch/blackfin/mach-bf548/head.S
@@ -28,6 +28,7 @@
28 */ 28 */
29 29
30#include <linux/linkage.h> 30#include <linux/linkage.h>
31#include <linux/init.h>
31#include <asm/blackfin.h> 32#include <asm/blackfin.h>
32#include <asm/trace.h> 33#include <asm/trace.h>
33#if CONFIG_BFIN_KERNEL_CLOCK 34#if CONFIG_BFIN_KERNEL_CLOCK
@@ -44,10 +45,9 @@
44 45
45#define INITIAL_STACK 0xFFB01000 46#define INITIAL_STACK 0xFFB01000
46 47
47.text 48__INIT
48 49
49ENTRY(__start) 50ENTRY(__start)
50ENTRY(__stext)
51 /* R0: argument of command line string, passed from uboot, save it */ 51 /* R0: argument of command line string, passed from uboot, save it */
52 R7 = R0; 52 R7 = R0;
53 /* Enable Cycle Counter and Nesting Of Interrupts */ 53 /* Enable Cycle Counter and Nesting Of Interrupts */
@@ -213,6 +213,7 @@ ENTRY(__stext)
213 213
214.LWAIT_HERE: 214.LWAIT_HERE:
215 jump .LWAIT_HERE; 215 jump .LWAIT_HERE;
216ENDPROC(__start)
216 217
217ENTRY(_real_start) 218ENTRY(_real_start)
218 [ -- sp ] = reti; 219 [ -- sp ] = reti;
@@ -285,6 +286,9 @@ ENTRY(_real_start)
285 call _start_kernel; 286 call _start_kernel;
286.L_exit: 287.L_exit:
287 jump.s .L_exit; 288 jump.s .L_exit;
289ENDPROC(_real_start)
290
291__FINIT
288 292
289.section .l1.text 293.section .l1.text
290#if CONFIG_BFIN_KERNEL_CLOCK 294#if CONFIG_BFIN_KERNEL_CLOCK
@@ -450,6 +454,7 @@ ENTRY(_start_dma_code)
450 SSYNC; 454 SSYNC;
451 455
452 RTS; 456 RTS;
457ENDPROC(_start_dma_code)
453#endif /* CONFIG_BFIN_KERNEL_CLOCK */ 458#endif /* CONFIG_BFIN_KERNEL_CLOCK */
454 459
455.data 460.data
diff --git a/arch/blackfin/mach-bf561/boards/ezkit.c b/arch/blackfin/mach-bf561/boards/ezkit.c
index 43c1b0982819..d357f648d963 100644
--- a/arch/blackfin/mach-bf561/boards/ezkit.c
+++ b/arch/blackfin/mach-bf561/boards/ezkit.c
@@ -223,7 +223,7 @@ static struct platform_device bfin_uart_device = {
223static struct mtd_partition ezkit_partitions[] = { 223static struct mtd_partition ezkit_partitions[] = {
224 { 224 {
225 .name = "Bootloader", 225 .name = "Bootloader",
226 .size = 0x20000, 226 .size = 0x40000,
227 .offset = 0, 227 .offset = 0,
228 }, { 228 }, {
229 .name = "Kernel", 229 .name = "Kernel",
@@ -389,6 +389,19 @@ static struct platform_device bfin_device_gpiokeys = {
389}; 389};
390#endif 390#endif
391 391
392static struct resource bfin_gpios_resources = {
393 .start = 0,
394 .end = MAX_BLACKFIN_GPIOS - 1,
395 .flags = IORESOURCE_IRQ,
396};
397
398static struct platform_device bfin_gpios_device = {
399 .name = "simple-gpio",
400 .id = -1,
401 .num_resources = 1,
402 .resource = &bfin_gpios_resources,
403};
404
392#if defined(CONFIG_I2C_GPIO) || defined(CONFIG_I2C_GPIO_MODULE) 405#if defined(CONFIG_I2C_GPIO) || defined(CONFIG_I2C_GPIO_MODULE)
393#include <linux/i2c-gpio.h> 406#include <linux/i2c-gpio.h>
394 407
@@ -446,6 +459,7 @@ static struct platform_device *ezkit_devices[] __initdata = {
446 &isp1362_hcd_device, 459 &isp1362_hcd_device,
447#endif 460#endif
448 461
462 &bfin_gpios_device,
449 &ezkit_flash_device, 463 &ezkit_flash_device,
450}; 464};
451 465
diff --git a/arch/blackfin/mach-common/dpmc.S b/arch/blackfin/mach-common/dpmc.S
index b80ddd8b232d..9d45aa3265b1 100644
--- a/arch/blackfin/mach-common/dpmc.S
+++ b/arch/blackfin/mach-common/dpmc.S
@@ -31,140 +31,6 @@
31#include <asm/blackfin.h> 31#include <asm/blackfin.h>
32#include <asm/mach/irq.h> 32#include <asm/mach/irq.h>
33 33
34.text
35
36ENTRY(_unmask_wdog_wakeup_evt)
37 [--SP] = ( R7:0, P5:0 );
38#if defined(CONFIG_BF561)
39 P0.H = hi(SICA_IWR1);
40 P0.L = lo(SICA_IWR1);
41#elif defined(CONFIG_BF54x) || defined(CONFIG_BF52x)
42 P0.h = HI(SIC_IWR0);
43 P0.l = LO(SIC_IWR0);
44#else
45 P0.h = HI(SIC_IWR);
46 P0.l = LO(SIC_IWR);
47#endif
48 R7 = [P0];
49#if defined(CONFIG_BF561)
50 BITSET(R7, 27);
51#else
52 BITSET(R7,(IRQ_WATCH - IVG7));
53#endif
54 [P0] = R7;
55 SSYNC;
56
57 ( R7:0, P5:0 ) = [SP++];
58 RTS;
59
60.LWRITE_TO_STAT:
61 /* When watch dog timer is enabled, a write to STAT will load the
62 * contents of CNT to STAT
63 */
64 R7 = 0x0000(z);
65#if defined(CONFIG_BF561)
66 P0.h = HI(WDOGA_STAT);
67 P0.l = LO(WDOGA_STAT);
68#else
69 P0.h = HI(WDOG_STAT);
70 P0.l = LO(WDOG_STAT);
71#endif
72 [P0] = R7;
73 SSYNC;
74 JUMP .LSKIP_WRITE_TO_STAT;
75
76ENTRY(_program_wdog_timer)
77 [--SP] = ( R7:0, P5:0 );
78#if defined(CONFIG_BF561)
79 P0.h = HI(WDOGA_CNT);
80 P0.l = LO(WDOGA_CNT);
81#else
82 P0.h = HI(WDOG_CNT);
83 P0.l = LO(WDOG_CNT);
84#endif
85 [P0] = R0;
86 SSYNC;
87
88#if defined(CONFIG_BF561)
89 P0.h = HI(WDOGA_CTL);
90 P0.l = LO(WDOGA_CTL);
91#else
92 P0.h = HI(WDOG_CTL);
93 P0.l = LO(WDOG_CTL);
94#endif
95 R7 = W[P0](Z);
96 CC = BITTST(R7,1);
97 if !CC JUMP .LWRITE_TO_STAT;
98 CC = BITTST(R7,2);
99 if !CC JUMP .LWRITE_TO_STAT;
100
101.LSKIP_WRITE_TO_STAT:
102#if defined(CONFIG_BF561)
103 P0.h = HI(WDOGA_CTL);
104 P0.l = LO(WDOGA_CTL);
105#else
106 P0.h = HI(WDOG_CTL);
107 P0.l = LO(WDOG_CTL);
108#endif
109 R7 = W[P0](Z);
110 BITCLR(R7,1); /* Enable GP event */
111 BITSET(R7,2);
112 W[P0] = R7.L;
113 SSYNC;
114 NOP;
115
116 R7 = W[P0](Z);
117 BITCLR(R7,4); /* Enable the wdog counter */
118 W[P0] = R7.L;
119 SSYNC;
120
121 ( R7:0, P5:0 ) = [SP++];
122 RTS;
123
124ENTRY(_clear_wdog_wakeup_evt)
125 [--SP] = ( R7:0, P5:0 );
126
127#if defined(CONFIG_BF561)
128 P0.h = HI(WDOGA_CTL);
129 P0.l = LO(WDOGA_CTL);
130#else
131 P0.h = HI(WDOG_CTL);
132 P0.l = LO(WDOG_CTL);
133#endif
134 R7 = 0x0AD6(Z);
135 W[P0] = R7.L;
136 SSYNC;
137
138 R7 = W[P0](Z);
139 BITSET(R7,15);
140 W[P0] = R7.L;
141 SSYNC;
142
143 R7 = W[P0](Z);
144 BITSET(R7,1);
145 BITSET(R7,2);
146 W[P0] = R7.L;
147 SSYNC;
148
149 ( R7:0, P5:0 ) = [SP++];
150 RTS;
151
152ENTRY(_disable_wdog_timer)
153 [--SP] = ( R7:0, P5:0 );
154#if defined(CONFIG_BF561)
155 P0.h = HI(WDOGA_CTL);
156 P0.l = LO(WDOGA_CTL);
157#else
158 P0.h = HI(WDOG_CTL);
159 P0.l = LO(WDOG_CTL);
160#endif
161 R7 = 0xAD6(Z);
162 W[P0] = R7.L;
163 SSYNC;
164 ( R7:0, P5:0 ) = [SP++];
165 RTS;
166
167#if !defined(CONFIG_BF561)
168 34
169.section .l1.text 35.section .l1.text
170 36
@@ -459,10 +325,12 @@ ENTRY(_set_sic_iwr)
459 RTS; 325 RTS;
460 326
461ENTRY(_set_rtc_istat) 327ENTRY(_set_rtc_istat)
328#ifndef CONFIG_BF561
462 P0.H = hi(RTC_ISTAT); 329 P0.H = hi(RTC_ISTAT);
463 P0.L = lo(RTC_ISTAT); 330 P0.L = lo(RTC_ISTAT);
464 w[P0] = R0.L; 331 w[P0] = R0.L;
465 SSYNC; 332 SSYNC;
333#endif
466 RTS; 334 RTS;
467 335
468ENTRY(_test_pll_locked) 336ENTRY(_test_pll_locked)
@@ -473,4 +341,3 @@ ENTRY(_test_pll_locked)
473 CC = BITTST(R0,5); 341 CC = BITTST(R0,5);
474 IF !CC JUMP 1b; 342 IF !CC JUMP 1b;
475 RTS; 343 RTS;
476#endif
diff --git a/arch/blackfin/mach-common/ints-priority.c b/arch/blackfin/mach-common/ints-priority.c
index 880595afe98d..225ef14af75e 100644
--- a/arch/blackfin/mach-common/ints-priority.c
+++ b/arch/blackfin/mach-common/ints-priority.c
@@ -74,7 +74,7 @@ unsigned long bfin_sic_iwr[3]; /* Up to 3 SIC_IWRx registers */
74#endif 74#endif
75 75
76struct ivgx { 76struct ivgx {
77 /* irq number for request_irq, available in mach-bf533/irq.h */ 77 /* irq number for request_irq, available in mach-bf5xx/irq.h */
78 unsigned int irqno; 78 unsigned int irqno;
79 /* corresponding bit in the SIC_ISR register */ 79 /* corresponding bit in the SIC_ISR register */
80 unsigned int isrflag; 80 unsigned int isrflag;
@@ -86,7 +86,6 @@ struct ivg_slice {
86 struct ivgx *istop; 86 struct ivgx *istop;
87} ivg7_13[IVG13 - IVG7 + 1]; 87} ivg7_13[IVG13 - IVG7 + 1];
88 88
89static void search_IAR(void);
90 89
91/* 90/*
92 * Search SIC_IAR and fill tables with the irqvalues 91 * Search SIC_IAR and fill tables with the irqvalues
@@ -120,10 +119,10 @@ static void __init search_IAR(void)
120} 119}
121 120
122/* 121/*
123 * This is for BF533 internal IRQs 122 * This is for core internal IRQs
124 */ 123 */
125 124
126static void ack_noop(unsigned int irq) 125static void bfin_ack_noop(unsigned int irq)
127{ 126{
128 /* Dummy function. */ 127 /* Dummy function. */
129} 128}
@@ -156,11 +155,11 @@ static void bfin_internal_mask_irq(unsigned int irq)
156{ 155{
157#ifdef CONFIG_BF53x 156#ifdef CONFIG_BF53x
158 bfin_write_SIC_IMASK(bfin_read_SIC_IMASK() & 157 bfin_write_SIC_IMASK(bfin_read_SIC_IMASK() &
159 ~(1 << (irq - (IRQ_CORETMR + 1)))); 158 ~(1 << SIC_SYSIRQ(irq)));
160#else 159#else
161 unsigned mask_bank, mask_bit; 160 unsigned mask_bank, mask_bit;
162 mask_bank = (irq - (IRQ_CORETMR + 1)) / 32; 161 mask_bank = SIC_SYSIRQ(irq) / 32;
163 mask_bit = (irq - (IRQ_CORETMR + 1)) % 32; 162 mask_bit = SIC_SYSIRQ(irq) % 32;
164 bfin_write_SIC_IMASK(mask_bank, bfin_read_SIC_IMASK(mask_bank) & 163 bfin_write_SIC_IMASK(mask_bank, bfin_read_SIC_IMASK(mask_bank) &
165 ~(1 << mask_bit)); 164 ~(1 << mask_bit));
166#endif 165#endif
@@ -171,11 +170,11 @@ static void bfin_internal_unmask_irq(unsigned int irq)
171{ 170{
172#ifdef CONFIG_BF53x 171#ifdef CONFIG_BF53x
173 bfin_write_SIC_IMASK(bfin_read_SIC_IMASK() | 172 bfin_write_SIC_IMASK(bfin_read_SIC_IMASK() |
174 (1 << (irq - (IRQ_CORETMR + 1)))); 173 (1 << SIC_SYSIRQ(irq)));
175#else 174#else
176 unsigned mask_bank, mask_bit; 175 unsigned mask_bank, mask_bit;
177 mask_bank = (irq - (IRQ_CORETMR + 1)) / 32; 176 mask_bank = SIC_SYSIRQ(irq) / 32;
178 mask_bit = (irq - (IRQ_CORETMR + 1)) % 32; 177 mask_bit = SIC_SYSIRQ(irq) % 32;
179 bfin_write_SIC_IMASK(mask_bank, bfin_read_SIC_IMASK(mask_bank) | 178 bfin_write_SIC_IMASK(mask_bank, bfin_read_SIC_IMASK(mask_bank) |
180 (1 << mask_bit)); 179 (1 << mask_bit));
181#endif 180#endif
@@ -187,8 +186,8 @@ int bfin_internal_set_wake(unsigned int irq, unsigned int state)
187{ 186{
188 unsigned bank, bit; 187 unsigned bank, bit;
189 unsigned long flags; 188 unsigned long flags;
190 bank = (irq - (IRQ_CORETMR + 1)) / 32; 189 bank = SIC_SYSIRQ(irq) / 32;
191 bit = (irq - (IRQ_CORETMR + 1)) % 32; 190 bit = SIC_SYSIRQ(irq) % 32;
192 191
193 local_irq_save(flags); 192 local_irq_save(flags);
194 193
@@ -204,15 +203,18 @@ int bfin_internal_set_wake(unsigned int irq, unsigned int state)
204#endif 203#endif
205 204
206static struct irq_chip bfin_core_irqchip = { 205static struct irq_chip bfin_core_irqchip = {
207 .ack = ack_noop, 206 .ack = bfin_ack_noop,
208 .mask = bfin_core_mask_irq, 207 .mask = bfin_core_mask_irq,
209 .unmask = bfin_core_unmask_irq, 208 .unmask = bfin_core_unmask_irq,
210}; 209};
211 210
212static struct irq_chip bfin_internal_irqchip = { 211static struct irq_chip bfin_internal_irqchip = {
213 .ack = ack_noop, 212 .ack = bfin_ack_noop,
214 .mask = bfin_internal_mask_irq, 213 .mask = bfin_internal_mask_irq,
215 .unmask = bfin_internal_unmask_irq, 214 .unmask = bfin_internal_unmask_irq,
215 .mask_ack = bfin_internal_mask_irq,
216 .disable = bfin_internal_mask_irq,
217 .enable = bfin_internal_unmask_irq,
216#ifdef CONFIG_PM 218#ifdef CONFIG_PM
217 .set_wake = bfin_internal_set_wake, 219 .set_wake = bfin_internal_set_wake,
218#endif 220#endif
@@ -221,38 +223,23 @@ static struct irq_chip bfin_internal_irqchip = {
221#ifdef BF537_GENERIC_ERROR_INT_DEMUX 223#ifdef BF537_GENERIC_ERROR_INT_DEMUX
222static int error_int_mask; 224static int error_int_mask;
223 225
224static void bfin_generic_error_ack_irq(unsigned int irq)
225{
226
227}
228
229static void bfin_generic_error_mask_irq(unsigned int irq) 226static void bfin_generic_error_mask_irq(unsigned int irq)
230{ 227{
231 error_int_mask &= ~(1L << (irq - IRQ_PPI_ERROR)); 228 error_int_mask &= ~(1L << (irq - IRQ_PPI_ERROR));
232 229
233 if (!error_int_mask) { 230 if (!error_int_mask)
234 local_irq_disable(); 231 bfin_internal_mask_irq(IRQ_GENERIC_ERROR);
235 bfin_write_SIC_IMASK(bfin_read_SIC_IMASK() &
236 ~(1 << (IRQ_GENERIC_ERROR -
237 (IRQ_CORETMR + 1))));
238 SSYNC();
239 local_irq_enable();
240 }
241} 232}
242 233
243static void bfin_generic_error_unmask_irq(unsigned int irq) 234static void bfin_generic_error_unmask_irq(unsigned int irq)
244{ 235{
245 local_irq_disable(); 236 bfin_internal_unmask_irq(IRQ_GENERIC_ERROR);
246 bfin_write_SIC_IMASK(bfin_read_SIC_IMASK() | 1 <<
247 (IRQ_GENERIC_ERROR - (IRQ_CORETMR + 1)));
248 SSYNC();
249 local_irq_enable();
250
251 error_int_mask |= 1L << (irq - IRQ_PPI_ERROR); 237 error_int_mask |= 1L << (irq - IRQ_PPI_ERROR);
252} 238}
253 239
254static struct irq_chip bfin_generic_error_irqchip = { 240static struct irq_chip bfin_generic_error_irqchip = {
255 .ack = bfin_generic_error_ack_irq, 241 .ack = bfin_ack_noop,
242 .mask_ack = bfin_generic_error_mask_irq,
256 .mask = bfin_generic_error_mask_irq, 243 .mask = bfin_generic_error_mask_irq,
257 .unmask = bfin_generic_error_unmask_irq, 244 .unmask = bfin_generic_error_unmask_irq,
258}; 245};
@@ -608,7 +595,7 @@ static struct pin_int_t *pint[NR_PINT_SYS_IRQS] = {
608 (struct pin_int_t *)PINT3_MASK_SET, 595 (struct pin_int_t *)PINT3_MASK_SET,
609}; 596};
610 597
611unsigned short get_irq_base(u8 bank, u8 bmap) 598inline unsigned short get_irq_base(u8 bank, u8 bmap)
612{ 599{
613 600
614 u16 irq_base; 601 u16 irq_base;
@@ -969,17 +956,12 @@ int __init init_arch_irq(void)
969#if defined(CONFIG_BF54x) || defined(CONFIG_BF52x) || defined(CONFIG_BF561) 956#if defined(CONFIG_BF54x) || defined(CONFIG_BF52x) || defined(CONFIG_BF561)
970 bfin_write_SIC_IMASK0(SIC_UNMASK_ALL); 957 bfin_write_SIC_IMASK0(SIC_UNMASK_ALL);
971 bfin_write_SIC_IMASK1(SIC_UNMASK_ALL); 958 bfin_write_SIC_IMASK1(SIC_UNMASK_ALL);
972 bfin_write_SIC_IWR0(IWR_ENABLE_ALL);
973 bfin_write_SIC_IWR1(IWR_ENABLE_ALL);
974# ifdef CONFIG_BF54x 959# ifdef CONFIG_BF54x
975 bfin_write_SIC_IMASK2(SIC_UNMASK_ALL); 960 bfin_write_SIC_IMASK2(SIC_UNMASK_ALL);
976 bfin_write_SIC_IWR2(IWR_ENABLE_ALL);
977# endif 961# endif
978#else 962#else
979 bfin_write_SIC_IMASK(SIC_UNMASK_ALL); 963 bfin_write_SIC_IMASK(SIC_UNMASK_ALL);
980 bfin_write_SIC_IWR(IWR_ENABLE_ALL);
981#endif 964#endif
982 SSYNC();
983 965
984 local_irq_disable(); 966 local_irq_disable();
985 967
@@ -1001,90 +983,53 @@ int __init init_arch_irq(void)
1001 set_irq_chip(irq, &bfin_core_irqchip); 983 set_irq_chip(irq, &bfin_core_irqchip);
1002 else 984 else
1003 set_irq_chip(irq, &bfin_internal_irqchip); 985 set_irq_chip(irq, &bfin_internal_irqchip);
1004#ifdef BF537_GENERIC_ERROR_INT_DEMUX
1005 if (irq != IRQ_GENERIC_ERROR) {
1006#endif
1007 986
1008 switch (irq) { 987 switch (irq) {
1009#if defined(CONFIG_BF53x) 988#if defined(CONFIG_BF53x)
1010 case IRQ_PROG_INTA: 989 case IRQ_PROG_INTA:
1011 set_irq_chained_handler(irq,
1012 bfin_demux_gpio_irq);
1013 break;
1014# if defined(BF537_FAMILY) && !(defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)) 990# if defined(BF537_FAMILY) && !(defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE))
1015 case IRQ_MAC_RX: 991 case IRQ_MAC_RX:
1016 set_irq_chained_handler(irq,
1017 bfin_demux_gpio_irq);
1018 break;
1019# endif 992# endif
1020#elif defined(CONFIG_BF54x) 993#elif defined(CONFIG_BF54x)
1021 case IRQ_PINT0: 994 case IRQ_PINT0:
1022 set_irq_chained_handler(irq, 995 case IRQ_PINT1:
1023 bfin_demux_gpio_irq); 996 case IRQ_PINT2:
1024 break; 997 case IRQ_PINT3:
1025 case IRQ_PINT1:
1026 set_irq_chained_handler(irq,
1027 bfin_demux_gpio_irq);
1028 break;
1029 case IRQ_PINT2:
1030 set_irq_chained_handler(irq,
1031 bfin_demux_gpio_irq);
1032 break;
1033 case IRQ_PINT3:
1034 set_irq_chained_handler(irq,
1035 bfin_demux_gpio_irq);
1036 break;
1037#elif defined(CONFIG_BF52x) 998#elif defined(CONFIG_BF52x)
1038 case IRQ_PORTF_INTA: 999 case IRQ_PORTF_INTA:
1039 set_irq_chained_handler(irq, 1000 case IRQ_PORTG_INTA:
1040 bfin_demux_gpio_irq); 1001 case IRQ_PORTH_INTA:
1041 break;
1042 case IRQ_PORTG_INTA:
1043 set_irq_chained_handler(irq,
1044 bfin_demux_gpio_irq);
1045 break;
1046 case IRQ_PORTH_INTA:
1047 set_irq_chained_handler(irq,
1048 bfin_demux_gpio_irq);
1049 break;
1050#elif defined(CONFIG_BF561) 1002#elif defined(CONFIG_BF561)
1051 case IRQ_PROG0_INTA: 1003 case IRQ_PROG0_INTA:
1052 set_irq_chained_handler(irq, 1004 case IRQ_PROG1_INTA:
1053 bfin_demux_gpio_irq); 1005 case IRQ_PROG2_INTA:
1054 break;
1055 case IRQ_PROG1_INTA:
1056 set_irq_chained_handler(irq,
1057 bfin_demux_gpio_irq);
1058 break;
1059 case IRQ_PROG2_INTA:
1060 set_irq_chained_handler(irq,
1061 bfin_demux_gpio_irq);
1062 break;
1063#endif 1006#endif
1064 default: 1007 set_irq_chained_handler(irq,
1065 set_irq_handler(irq, handle_simple_irq); 1008 bfin_demux_gpio_irq);
1066 break; 1009 break;
1067 }
1068
1069#ifdef BF537_GENERIC_ERROR_INT_DEMUX 1010#ifdef BF537_GENERIC_ERROR_INT_DEMUX
1070 } else { 1011 case IRQ_GENERIC_ERROR:
1071 set_irq_handler(irq, bfin_demux_error_irq); 1012 set_irq_handler(irq, bfin_demux_error_irq);
1072 } 1013
1014 break;
1073#endif 1015#endif
1016 default:
1017 set_irq_handler(irq, handle_simple_irq);
1018 break;
1019 }
1074 } 1020 }
1021
1075#ifdef BF537_GENERIC_ERROR_INT_DEMUX 1022#ifdef BF537_GENERIC_ERROR_INT_DEMUX
1076 for (irq = IRQ_PPI_ERROR; irq <= IRQ_UART1_ERROR; irq++) { 1023 for (irq = IRQ_PPI_ERROR; irq <= IRQ_UART1_ERROR; irq++)
1077 set_irq_chip(irq, &bfin_generic_error_irqchip); 1024 set_irq_chip_and_handler(irq, &bfin_generic_error_irqchip,
1078 set_irq_handler(irq, handle_level_irq); 1025 handle_level_irq);
1079 }
1080#endif 1026#endif
1081 1027
1082 for (irq = GPIO_IRQ_BASE; irq < NR_IRQS; irq++) { 1028 /* if configured as edge, then will be changed to do_edge_IRQ */
1029 for (irq = GPIO_IRQ_BASE; irq < NR_IRQS; irq++)
1030 set_irq_chip_and_handler(irq, &bfin_gpio_irqchip,
1031 handle_level_irq);
1083 1032
1084 set_irq_chip(irq, &bfin_gpio_irqchip);
1085 /* if configured as edge, then will be changed to do_edge_IRQ */
1086 set_irq_handler(irq, handle_level_irq);
1087 }
1088 1033
1089 bfin_write_IMASK(0); 1034 bfin_write_IMASK(0);
1090 CSYNC(); 1035 CSYNC();
@@ -1106,6 +1051,16 @@ int __init init_arch_irq(void)
1106 IMASK_IVG14 | IMASK_IVG13 | IMASK_IVG12 | IMASK_IVG11 | 1051 IMASK_IVG14 | IMASK_IVG13 | IMASK_IVG12 | IMASK_IVG11 |
1107 IMASK_IVG10 | IMASK_IVG9 | IMASK_IVG8 | IMASK_IVG7 | IMASK_IVGHW; 1052 IMASK_IVG10 | IMASK_IVG9 | IMASK_IVG8 | IMASK_IVG7 | IMASK_IVGHW;
1108 1053
1054#if defined(CONFIG_BF54x) || defined(CONFIG_BF52x) || defined(CONFIG_BF561)
1055 bfin_write_SIC_IWR0(IWR_ENABLE_ALL);
1056 bfin_write_SIC_IWR1(IWR_ENABLE_ALL);
1057# ifdef CONFIG_BF54x
1058 bfin_write_SIC_IWR2(IWR_ENABLE_ALL);
1059# endif
1060#else
1061 bfin_write_SIC_IWR(IWR_ENABLE_ALL);
1062#endif
1063
1109 return 0; 1064 return 0;
1110} 1065}
1111 1066
@@ -1122,7 +1077,6 @@ void do_irq(int vec, struct pt_regs *fp)
1122#if defined(CONFIG_BF54x) || defined(CONFIG_BF52x) || defined(CONFIG_BF561) 1077#if defined(CONFIG_BF54x) || defined(CONFIG_BF52x) || defined(CONFIG_BF561)
1123 unsigned long sic_status[3]; 1078 unsigned long sic_status[3];
1124 1079
1125 SSYNC();
1126 sic_status[0] = bfin_read_SIC_ISR0() & bfin_read_SIC_IMASK0(); 1080 sic_status[0] = bfin_read_SIC_ISR0() & bfin_read_SIC_IMASK0();
1127 sic_status[1] = bfin_read_SIC_ISR1() & bfin_read_SIC_IMASK1(); 1081 sic_status[1] = bfin_read_SIC_ISR1() & bfin_read_SIC_IMASK1();
1128#ifdef CONFIG_BF54x 1082#ifdef CONFIG_BF54x
@@ -1138,7 +1092,7 @@ void do_irq(int vec, struct pt_regs *fp)
1138 } 1092 }
1139#else 1093#else
1140 unsigned long sic_status; 1094 unsigned long sic_status;
1141 SSYNC(); 1095
1142 sic_status = bfin_read_SIC_IMASK() & bfin_read_SIC_ISR(); 1096 sic_status = bfin_read_SIC_IMASK() & bfin_read_SIC_ISR();
1143 1097
1144 for (;; ivg++) { 1098 for (;; ivg++) {
diff --git a/arch/blackfin/mm/init.c b/arch/blackfin/mm/init.c
index 1f516c55bde6..ec3141fefd20 100644
--- a/arch/blackfin/mm/init.c
+++ b/arch/blackfin/mm/init.c
@@ -181,7 +181,7 @@ void __init mem_init(void)
181 } 181 }
182} 182}
183 183
184static __init void free_init_pages(const char *what, unsigned long begin, unsigned long end) 184static void __init free_init_pages(const char *what, unsigned long begin, unsigned long end)
185{ 185{
186 unsigned long addr; 186 unsigned long addr;
187 /* next to check that the page we free is not a partial page */ 187 /* next to check that the page we free is not a partial page */
@@ -203,7 +203,7 @@ void __init free_initrd_mem(unsigned long start, unsigned long end)
203} 203}
204#endif 204#endif
205 205
206void __init free_initmem(void) 206void __init_refok free_initmem(void)
207{ 207{
208#if defined CONFIG_RAMKERNEL && !defined CONFIG_MPU 208#if defined CONFIG_RAMKERNEL && !defined CONFIG_MPU
209 free_init_pages("unused kernel memory", 209 free_init_pages("unused kernel memory",
diff --git a/arch/frv/kernel/entry.S b/arch/frv/kernel/entry.S
index ca6a345b87e4..f36d7f4a7c25 100644
--- a/arch/frv/kernel/entry.S
+++ b/arch/frv/kernel/entry.S
@@ -1494,9 +1494,11 @@ sys_call_table:
1494 .long sys_epoll_pwait 1494 .long sys_epoll_pwait
1495 .long sys_utimensat /* 320 */ 1495 .long sys_utimensat /* 320 */
1496 .long sys_signalfd 1496 .long sys_signalfd
1497 .long sys_ni_syscall 1497 .long sys_timerfd_create
1498 .long sys_eventfd 1498 .long sys_eventfd
1499 .long sys_fallocate 1499 .long sys_fallocate
1500 .long sys_timerfd_settime /* 325 */
1501 .long sys_timerfd_gettime
1500 1502
1501 1503
1502syscall_table_size = (. - sys_call_table) 1504syscall_table_size = (. - sys_call_table)
diff --git a/arch/frv/kernel/vmlinux.lds.S b/arch/frv/kernel/vmlinux.lds.S
index 17725a55aed8..b95c4eace62f 100644
--- a/arch/frv/kernel/vmlinux.lds.S
+++ b/arch/frv/kernel/vmlinux.lds.S
@@ -76,9 +76,6 @@ SECTIONS
76 *(.data.init_task) 76 *(.data.init_task)
77 } 77 }
78 78
79 . = ALIGN(4096);
80 .data.page_aligned : { *(.data.idt) }
81
82 . = ALIGN(L1_CACHE_BYTES); 79 . = ALIGN(L1_CACHE_BYTES);
83 .data.cacheline_aligned : { *(.data.cacheline_aligned) } 80 .data.cacheline_aligned : { *(.data.cacheline_aligned) }
84 81
diff --git a/arch/h8300/defconfig b/arch/h8300/defconfig
index 8f1ec3297150..8901cdb5e75b 100644
--- a/arch/h8300/defconfig
+++ b/arch/h8300/defconfig
@@ -1,51 +1,98 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.11-rc1 3# Linux kernel version: 2.6.25-rc1
4# Sun Jan 16 17:24:38 2005 4# Fri Feb 15 17:13:14 2008
5# 5#
6CONFIG_H8300=y 6CONFIG_H8300=y
7# CONFIG_MMU is not set 7# CONFIG_MMU is not set
8# CONFIG_SWAP is not set 8# CONFIG_SWAP is not set
9CONFIG_ZONE_DMA=y
9# CONFIG_FPU is not set 10# CONFIG_FPU is not set
10CONFIG_UID16=y
11CONFIG_RWSEM_GENERIC_SPINLOCK=y 11CONFIG_RWSEM_GENERIC_SPINLOCK=y
12# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set 12# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
13# CONFIG_ARCH_HAS_ILOG2_U32 is not set
14# CONFIG_ARCH_HAS_ILOG2_U64 is not set
15CONFIG_GENERIC_FIND_NEXT_BIT=y
16CONFIG_GENERIC_HWEIGHT=y
17CONFIG_GENERIC_HARDIRQS=y
13CONFIG_GENERIC_CALIBRATE_DELAY=y 18CONFIG_GENERIC_CALIBRATE_DELAY=y
19CONFIG_GENERIC_TIME=y
20CONFIG_TIME_LOW_RES=y
21CONFIG_ARCH_SUPPORTS_AOUT=y
22CONFIG_NO_IOPORT=y
23CONFIG_NO_DMA=y
14CONFIG_ISA=y 24CONFIG_ISA=y
15# CONFIG_PCI is not set 25# CONFIG_PCI is not set
26CONFIG_HZ=100
27CONFIG_C_SYMBOL_PREFIX=y
28CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
16 29
17# 30#
18# Code maturity level options 31# General setup
19# 32#
20CONFIG_EXPERIMENTAL=y 33CONFIG_EXPERIMENTAL=y
21CONFIG_CLEAN_COMPILE=y
22CONFIG_BROKEN_ON_SMP=y 34CONFIG_BROKEN_ON_SMP=y
23 35CONFIG_INIT_ENV_ARG_LIMIT=32
24#
25# General setup
26#
27CONFIG_LOCALVERSION="" 36CONFIG_LOCALVERSION=""
37# CONFIG_LOCALVERSION_AUTO is not set
38# CONFIG_SYSVIPC is not set
28# CONFIG_BSD_PROCESS_ACCT is not set 39# CONFIG_BSD_PROCESS_ACCT is not set
29# CONFIG_SYSCTL is not set
30# CONFIG_AUDIT is not set
31CONFIG_LOG_BUF_SHIFT=14
32# CONFIG_HOTPLUG is not set
33# CONFIG_IKCONFIG is not set 40# CONFIG_IKCONFIG is not set
41CONFIG_LOG_BUF_SHIFT=14
42# CONFIG_CGROUPS is not set
43# CONFIG_FAIR_GROUP_SCHED is not set
44# CONFIG_SYSFS_DEPRECATED is not set
45# CONFIG_RELAY is not set
46# CONFIG_NAMESPACES is not set
47# CONFIG_BLK_DEV_INITRD is not set
48CONFIG_CC_OPTIMIZE_FOR_SIZE=y
49CONFIG_SYSCTL=y
34CONFIG_EMBEDDED=y 50CONFIG_EMBEDDED=y
51# CONFIG_UID16 is not set
52# CONFIG_SYSCTL_SYSCALL is not set
35# CONFIG_KALLSYMS is not set 53# CONFIG_KALLSYMS is not set
54# CONFIG_HOTPLUG is not set
55CONFIG_PRINTK=y
56CONFIG_BUG=y
57CONFIG_ELF_CORE=y
58# CONFIG_COMPAT_BRK is not set
59# CONFIG_BASE_FULL is not set
36# CONFIG_FUTEX is not set 60# CONFIG_FUTEX is not set
37# CONFIG_EPOLL is not set 61# CONFIG_EPOLL is not set
38CONFIG_CC_OPTIMIZE_FOR_SIZE=y 62# CONFIG_SIGNALFD is not set
39CONFIG_CC_ALIGN_FUNCTIONS=0 63# CONFIG_TIMERFD is not set
40CONFIG_CC_ALIGN_LABELS=0 64# CONFIG_EVENTFD is not set
41CONFIG_CC_ALIGN_LOOPS=0 65# CONFIG_VM_EVENT_COUNTERS is not set
42CONFIG_CC_ALIGN_JUMPS=0 66# CONFIG_SLAB is not set
67# CONFIG_SLUB is not set
68CONFIG_SLOB=y
69# CONFIG_PROFILING is not set
70# CONFIG_MARKERS is not set
71# CONFIG_HAVE_OPROFILE is not set
72# CONFIG_HAVE_KPROBES is not set
43CONFIG_TINY_SHMEM=y 73CONFIG_TINY_SHMEM=y
74CONFIG_BASE_SMALL=1
75# CONFIG_MODULES is not set
76CONFIG_BLOCK=y
77# CONFIG_LBD is not set
78# CONFIG_BLK_DEV_IO_TRACE is not set
79# CONFIG_LSF is not set
80# CONFIG_BLK_DEV_BSG is not set
44 81
45# 82#
46# Loadable module support 83# IO Schedulers
47# 84#
48# CONFIG_MODULES is not set 85CONFIG_IOSCHED_NOOP=y
86# CONFIG_IOSCHED_AS is not set
87# CONFIG_IOSCHED_DEADLINE is not set
88# CONFIG_IOSCHED_CFQ is not set
89# CONFIG_DEFAULT_AS is not set
90# CONFIG_DEFAULT_DEADLINE is not set
91# CONFIG_DEFAULT_CFQ is not set
92CONFIG_DEFAULT_NOOP=y
93CONFIG_DEFAULT_IOSCHED="noop"
94CONFIG_CLASSIC_RCU=y
95# CONFIG_PREEMPT_RCU is not set
49 96
50# 97#
51# Processor type and features 98# Processor type and features
@@ -62,14 +109,26 @@ CONFIG_H8300H_GENERIC=y
62# Detail Selection 109# Detail Selection
63# 110#
64# CONFIG_H83002 is not set 111# CONFIG_H83002 is not set
65# CONFIG_H83007 is not set 112CONFIG_H83007=y
66# CONFIG_H83048 is not set 113# CONFIG_H83048 is not set
67CONFIG_H83068=y 114# CONFIG_H83068 is not set
68CONFIG_CPU_CLOCK=20000 115CONFIG_CPU_CLOCK=20000
69# CONFIG_RAMKERNEL is not set 116CONFIG_RAMKERNEL=y
70CONFIG_ROMKERNEL=y 117# CONFIG_ROMKERNEL is not set
71CONFIG_CPU_H8300H=y 118CONFIG_CPU_H8300H=y
72# CONFIG_PREEMPT is not set 119# CONFIG_PREEMPT is not set
120CONFIG_SELECT_MEMORY_MODEL=y
121CONFIG_FLATMEM_MANUAL=y
122# CONFIG_DISCONTIGMEM_MANUAL is not set
123# CONFIG_SPARSEMEM_MANUAL is not set
124CONFIG_FLATMEM=y
125CONFIG_FLAT_NODE_MEM_MAP=y
126# CONFIG_SPARSEMEM_STATIC is not set
127# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
128CONFIG_SPLIT_PTLOCK_CPUS=4
129# CONFIG_RESOURCES_64BIT is not set
130CONFIG_ZONE_DMA_FLAG=1
131CONFIG_VIRT_TO_BUS=y
73 132
74# 133#
75# Executable file formats 134# Executable file formats
@@ -77,34 +136,42 @@ CONFIG_CPU_H8300H=y
77CONFIG_BINFMT_FLAT=y 136CONFIG_BINFMT_FLAT=y
78CONFIG_BINFMT_ZFLAT=y 137CONFIG_BINFMT_ZFLAT=y
79# CONFIG_BINFMT_SHARED_FLAT is not set 138# CONFIG_BINFMT_SHARED_FLAT is not set
80# CONFIG_BINFMT_MISC is not set 139CONFIG_BINFMT_MISC=y
81 140
82# 141#
83# Generic Driver Options 142# Networking
84# 143#
85# CONFIG_STANDALONE is not set 144# CONFIG_NET is not set
86# CONFIG_PREVENT_FIRMWARE_BUILD is not set
87# CONFIG_FW_LOADER is not set
88# CONFIG_DEBUG_DRIVER is not set
89 145
90# 146#
91# Memory Technology Devices (MTD) 147# Generic Driver Options
92# 148#
149CONFIG_STANDALONE=y
150# CONFIG_PREVENT_FIRMWARE_BUILD is not set
151# CONFIG_SYS_HYPERVISOR is not set
93CONFIG_MTD=y 152CONFIG_MTD=y
94# CONFIG_MTD_DEBUG is not set 153# CONFIG_MTD_DEBUG is not set
154# CONFIG_MTD_CONCAT is not set
95CONFIG_MTD_PARTITIONS=y 155CONFIG_MTD_PARTITIONS=y
96CONFIG_MTD_CONCAT=y 156CONFIG_MTD_REDBOOT_PARTS=y
97# CONFIG_MTD_REDBOOT_PARTS is not set 157CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
158# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
159# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
98# CONFIG_MTD_CMDLINE_PARTS is not set 160# CONFIG_MTD_CMDLINE_PARTS is not set
99 161
100# 162#
101# User Modules And Translation Layers 163# User Modules And Translation Layers
102# 164#
103CONFIG_MTD_CHAR=y 165CONFIG_MTD_CHAR=y
104CONFIG_MTD_BLOCK=y 166# CONFIG_MTD_BLKDEVS is not set
167# CONFIG_MTD_BLOCK is not set
168# CONFIG_MTD_BLOCK_RO is not set
105# CONFIG_FTL is not set 169# CONFIG_FTL is not set
106# CONFIG_NFTL is not set 170# CONFIG_NFTL is not set
107# CONFIG_INFTL is not set 171# CONFIG_INFTL is not set
172# CONFIG_RFD_FTL is not set
173# CONFIG_SSFDC is not set
174# CONFIG_MTD_OOPS is not set
108 175
109# 176#
110# RAM/ROM/Flash chip drivers 177# RAM/ROM/Flash chip drivers
@@ -129,7 +196,9 @@ CONFIG_MTD_ROM=y
129# Mapping drivers for chip access 196# Mapping drivers for chip access
130# 197#
131# CONFIG_MTD_COMPLEX_MAPPINGS is not set 198# CONFIG_MTD_COMPLEX_MAPPINGS is not set
199# CONFIG_MTD_PHYSMAP is not set
132CONFIG_MTD_UCLINUX=y 200CONFIG_MTD_UCLINUX=y
201# CONFIG_MTD_PLATRAM is not set
133 202
134# 203#
135# Self-contained MTD device drivers 204# Self-contained MTD device drivers
@@ -137,7 +206,6 @@ CONFIG_MTD_UCLINUX=y
137# CONFIG_MTD_SLRAM is not set 206# CONFIG_MTD_SLRAM is not set
138# CONFIG_MTD_PHRAM is not set 207# CONFIG_MTD_PHRAM is not set
139# CONFIG_MTD_MTDRAM is not set 208# CONFIG_MTD_MTDRAM is not set
140# CONFIG_MTD_BLKMTD is not set
141# CONFIG_MTD_BLOCK2MTD is not set 209# CONFIG_MTD_BLOCK2MTD is not set
142 210
143# 211#
@@ -146,63 +214,27 @@ CONFIG_MTD_UCLINUX=y
146# CONFIG_MTD_DOC2000 is not set 214# CONFIG_MTD_DOC2000 is not set
147# CONFIG_MTD_DOC2001 is not set 215# CONFIG_MTD_DOC2001 is not set
148# CONFIG_MTD_DOC2001PLUS is not set 216# CONFIG_MTD_DOC2001PLUS is not set
149
150#
151# NAND Flash Device Drivers
152#
153# CONFIG_MTD_NAND is not set 217# CONFIG_MTD_NAND is not set
218# CONFIG_MTD_ONENAND is not set
154 219
155# 220#
156# Block devices 221# UBI - Unsorted block images
157#
158# CONFIG_BLK_DEV_FD is not set
159# CONFIG_BLK_DEV_XD is not set
160# CONFIG_BLK_DEV_LOOP is not set
161# CONFIG_BLK_DEV_RAM is not set
162CONFIG_BLK_DEV_RAM_COUNT=16
163CONFIG_INITRAMFS_SOURCE=""
164# CONFIG_CDROM_PKTCDVD is not set
165
166#
167# IO Schedulers
168#
169CONFIG_IOSCHED_NOOP=y
170# CONFIG_IOSCHED_AS is not set
171# CONFIG_IOSCHED_DEADLINE is not set
172# CONFIG_IOSCHED_CFQ is not set
173
174#
175# ATA/ATAPI/MFM/RLL support
176# 222#
223# CONFIG_MTD_UBI is not set
224# CONFIG_BLK_DEV is not set
225CONFIG_HAVE_IDE=y
177# CONFIG_IDE is not set 226# CONFIG_IDE is not set
178 227
179# 228#
180# Networking support
181#
182# CONFIG_NET is not set
183# CONFIG_NETPOLL is not set
184# CONFIG_NET_POLL_CONTROLLER is not set
185
186#
187# Input device support 229# Input device support
188# 230#
189# CONFIG_INPUT is not set 231# CONFIG_INPUT is not set
190 232
191# 233#
192# Userland interfaces 234# Hardware I/O ports
193#
194
195#
196# Input I/O drivers
197# 235#
198# CONFIG_GAMEPORT is not set
199CONFIG_SOUND_GAMEPORT=y
200# CONFIG_SERIO is not set 236# CONFIG_SERIO is not set
201# CONFIG_SERIO_I8042 is not set 237# CONFIG_GAMEPORT is not set
202
203#
204# Input Device Drivers
205#
206 238
207# 239#
208# Character devices 240# Character devices
@@ -223,45 +255,31 @@ CONFIG_SOUND_GAMEPORT=y
223# Non-8250 serial port support 255# Non-8250 serial port support
224# 256#
225CONFIG_SERIAL_SH_SCI=y 257CONFIG_SERIAL_SH_SCI=y
258CONFIG_SERIAL_SH_SCI_NR_UARTS=2
226CONFIG_SERIAL_SH_SCI_CONSOLE=y 259CONFIG_SERIAL_SH_SCI_CONSOLE=y
227CONFIG_SERIAL_CORE=y 260CONFIG_SERIAL_CORE=y
228CONFIG_SERIAL_CORE_CONSOLE=y 261CONFIG_SERIAL_CORE_CONSOLE=y
229
230#
231# I2C support
232#
233# CONFIG_I2C is not set 262# CONFIG_I2C is not set
234 263# CONFIG_HWMON is not set
235# 264# CONFIG_USB_SUPPORT is not set
236# USB support
237#
238# CONFIG_USB_ARCH_HAS_HCD is not set
239# CONFIG_USB_ARCH_HAS_OHCI is not set
240
241#
242# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information
243#
244
245#
246# USB Gadget Support
247#
248# CONFIG_USB_GADGET is not set
249 265
250# 266#
251# File systems 267# File systems
252# 268#
253# CONFIG_EXT2_FS is not set 269# CONFIG_EXT2_FS is not set
254# CONFIG_EXT3_FS is not set 270# CONFIG_EXT3_FS is not set
255# CONFIG_JBD is not set 271# CONFIG_EXT4DEV_FS is not set
256# CONFIG_REISERFS_FS is not set 272# CONFIG_REISERFS_FS is not set
257# CONFIG_JFS_FS is not set 273# CONFIG_JFS_FS is not set
274# CONFIG_FS_POSIX_ACL is not set
258# CONFIG_XFS_FS is not set 275# CONFIG_XFS_FS is not set
259# CONFIG_MINIX_FS is not set 276# CONFIG_GFS2_FS is not set
260CONFIG_ROMFS_FS=y
261# CONFIG_QUOTA is not set
262# CONFIG_DNOTIFY is not set 277# CONFIG_DNOTIFY is not set
278# CONFIG_INOTIFY is not set
279# CONFIG_QUOTA is not set
263# CONFIG_AUTOFS_FS is not set 280# CONFIG_AUTOFS_FS is not set
264# CONFIG_AUTOFS4_FS is not set 281# CONFIG_AUTOFS4_FS is not set
282# CONFIG_FUSE_FS is not set
265 283
266# 284#
267# CD-ROM/DVD Filesystems 285# CD-ROM/DVD Filesystems
@@ -280,11 +298,11 @@ CONFIG_ROMFS_FS=y
280# Pseudo filesystems 298# Pseudo filesystems
281# 299#
282CONFIG_PROC_FS=y 300CONFIG_PROC_FS=y
283# CONFIG_SYSFS is not set 301CONFIG_PROC_SYSCTL=y
284# CONFIG_DEVFS_FS is not set 302CONFIG_SYSFS=y
285# CONFIG_TMPFS is not set 303# CONFIG_TMPFS is not set
286# CONFIG_HUGETLB_PAGE is not set 304# CONFIG_HUGETLB_PAGE is not set
287CONFIG_RAMFS=y 305# CONFIG_CONFIGFS_FS is not set
288 306
289# 307#
290# Miscellaneous filesystems 308# Miscellaneous filesystems
@@ -296,12 +314,13 @@ CONFIG_RAMFS=y
296# CONFIG_BEFS_FS is not set 314# CONFIG_BEFS_FS is not set
297# CONFIG_BFS_FS is not set 315# CONFIG_BFS_FS is not set
298# CONFIG_EFS_FS is not set 316# CONFIG_EFS_FS is not set
299# CONFIG_JFFS_FS is not set
300# CONFIG_JFFS2_FS is not set 317# CONFIG_JFFS2_FS is not set
301# CONFIG_CRAMFS is not set 318# CONFIG_CRAMFS is not set
302# CONFIG_VXFS_FS is not set 319# CONFIG_VXFS_FS is not set
320# CONFIG_MINIX_FS is not set
303# CONFIG_HPFS_FS is not set 321# CONFIG_HPFS_FS is not set
304# CONFIG_QNX4FS_FS is not set 322# CONFIG_QNX4FS_FS is not set
323CONFIG_ROMFS_FS=y
305# CONFIG_SYSV_FS is not set 324# CONFIG_SYSV_FS is not set
306# CONFIG_UFS_FS is not set 325# CONFIG_UFS_FS is not set
307 326
@@ -310,22 +329,23 @@ CONFIG_RAMFS=y
310# 329#
311# CONFIG_PARTITION_ADVANCED is not set 330# CONFIG_PARTITION_ADVANCED is not set
312CONFIG_MSDOS_PARTITION=y 331CONFIG_MSDOS_PARTITION=y
313
314#
315# Native Language Support
316#
317# CONFIG_NLS is not set 332# CONFIG_NLS is not set
318 333
319# 334#
320# Kernel hacking 335# Kernel hacking
321# 336#
322CONFIG_DEBUG_KERNEL=y 337# CONFIG_PRINTK_TIME is not set
323# CONFIG_SCHEDSTATS is not set 338# CONFIG_ENABLE_WARN_DEPRECATED is not set
324# CONFIG_DEBUG_KOBJECT is not set 339# CONFIG_ENABLE_MUST_CHECK is not set
340# CONFIG_MAGIC_SYSRQ is not set
341# CONFIG_UNUSED_SYMBOLS is not set
325# CONFIG_DEBUG_FS is not set 342# CONFIG_DEBUG_FS is not set
326CONFIG_FULLDEBUG=y 343# CONFIG_HEADERS_CHECK is not set
344# CONFIG_DEBUG_KERNEL is not set
345# CONFIG_SAMPLES is not set
346# CONFIG_FULLDEBUG is not set
327# CONFIG_HIGHPROFILE is not set 347# CONFIG_HIGHPROFILE is not set
328CONFIG_NO_KERNEL_MSG=y 348# CONFIG_NO_KERNEL_MSG is not set
329# CONFIG_SYSCALL_PRINT is not set 349# CONFIG_SYSCALL_PRINT is not set
330# CONFIG_GDB_DEBUG is not set 350# CONFIG_GDB_DEBUG is not set
331# CONFIG_SH_STANDARD_BIOS is not set 351# CONFIG_SH_STANDARD_BIOS is not set
@@ -337,20 +357,17 @@ CONFIG_NO_KERNEL_MSG=y
337# 357#
338# CONFIG_KEYS is not set 358# CONFIG_KEYS is not set
339# CONFIG_SECURITY is not set 359# CONFIG_SECURITY is not set
340 360# CONFIG_SECURITY_FILE_CAPABILITIES is not set
341#
342# Cryptographic options
343#
344# CONFIG_CRYPTO is not set 361# CONFIG_CRYPTO is not set
345 362
346# 363#
347# Hardware crypto devices
348#
349
350#
351# Library routines 364# Library routines
352# 365#
353# CONFIG_CRC_CCITT is not set 366# CONFIG_CRC_CCITT is not set
354CONFIG_CRC32=y 367# CONFIG_CRC16 is not set
368# CONFIG_CRC_ITU_T is not set
369# CONFIG_CRC32 is not set
370# CONFIG_CRC7 is not set
355# CONFIG_LIBCRC32C is not set 371# CONFIG_LIBCRC32C is not set
356CONFIG_ZLIB_INFLATE=y 372CONFIG_ZLIB_INFLATE=y
373CONFIG_HAS_IOMEM=y
diff --git a/arch/h8300/kernel/irq.c b/arch/h8300/kernel/irq.c
index 5a1b4cfea05b..ef4f0047067d 100644
--- a/arch/h8300/kernel/irq.c
+++ b/arch/h8300/kernel/irq.c
@@ -26,7 +26,7 @@
26 26
27extern unsigned long *interrupt_redirect_table; 27extern unsigned long *interrupt_redirect_table;
28extern const int h8300_saved_vectors[]; 28extern const int h8300_saved_vectors[];
29extern const unsigned long h8300_trap_table[]; 29extern const h8300_vector h8300_trap_table[];
30int h8300_enable_irq_pin(unsigned int irq); 30int h8300_enable_irq_pin(unsigned int irq);
31void h8300_disable_irq_pin(unsigned int irq); 31void h8300_disable_irq_pin(unsigned int irq);
32 32
@@ -116,7 +116,7 @@ static void __init setup_vector(void)
116{ 116{
117 int i; 117 int i;
118 unsigned long *ramvec,*ramvec_p; 118 unsigned long *ramvec,*ramvec_p;
119 const unsigned long *trap_entry; 119 const h8300_vector *trap_entry;
120 const int *saved_vector; 120 const int *saved_vector;
121 121
122 ramvec = get_vector_address(); 122 ramvec = get_vector_address();
diff --git a/arch/h8300/kernel/signal.c b/arch/h8300/kernel/signal.c
index 62ea12d339b9..cf3472f7389b 100644
--- a/arch/h8300/kernel/signal.c
+++ b/arch/h8300/kernel/signal.c
@@ -352,7 +352,7 @@ static void setup_frame (int sig, struct k_sigaction *ka,
352 ret = (unsigned char *)(ka->sa.sa_restorer); 352 ret = (unsigned char *)(ka->sa.sa_restorer);
353 else { 353 else {
354 /* sub.l er0,er0; mov.b #__NR_sigreturn,r0l; trapa #0 */ 354 /* sub.l er0,er0; mov.b #__NR_sigreturn,r0l; trapa #0 */
355 err != __put_user(0x1a80f800 + (__NR_sigreturn & 0xff), 355 err |= __put_user(0x1a80f800 + (__NR_sigreturn & 0xff),
356 (unsigned long *)(frame->retcode + 0)); 356 (unsigned long *)(frame->retcode + 0));
357 err |= __put_user(0x5700, (unsigned short *)(frame->retcode + 4)); 357 err |= __put_user(0x5700, (unsigned short *)(frame->retcode + 4));
358 } 358 }
@@ -428,7 +428,7 @@ static void setup_rt_frame (int sig, struct k_sigaction *ka, siginfo_t *info,
428 ret = (unsigned char *)(ka->sa.sa_restorer); 428 ret = (unsigned char *)(ka->sa.sa_restorer);
429 else { 429 else {
430 /* sub.l er0,er0; mov.b #__NR_sigreturn,r0l; trapa #0 */ 430 /* sub.l er0,er0; mov.b #__NR_sigreturn,r0l; trapa #0 */
431 err != __put_user(0x1a80f800 + (__NR_sigreturn & 0xff), 431 err |= __put_user(0x1a80f800 + (__NR_sigreturn & 0xff),
432 (unsigned long *)(frame->retcode + 0)); 432 (unsigned long *)(frame->retcode + 0));
433 err |= __put_user(0x5700, (unsigned short *)(frame->retcode + 4)); 433 err |= __put_user(0x5700, (unsigned short *)(frame->retcode + 4));
434 } 434 }
diff --git a/arch/h8300/platform/h8300h/Makefile b/arch/h8300/platform/h8300h/Makefile
index c5096369ea50..420f73b0d962 100644
--- a/arch/h8300/platform/h8300h/Makefile
+++ b/arch/h8300/platform/h8300h/Makefile
@@ -4,4 +4,4 @@
4# Reuse any files we can from the H8/300H 4# Reuse any files we can from the H8/300H
5# 5#
6 6
7obj-y := irq_pin.o ptrace_h8300h.o 7obj-y := irq.o ptrace_h8300h.o
diff --git a/arch/h8300/platform/h8300h/irq.c b/arch/h8300/platform/h8300h/irq.c
new file mode 100644
index 000000000000..e977345105d7
--- /dev/null
+++ b/arch/h8300/platform/h8300h/irq.c
@@ -0,0 +1,82 @@
1/*
2 * Interrupt handling H8/300H depend.
3 * Yoshinori Sato <ysato@users.sourceforge.jp>
4 *
5 */
6
7#include <linux/init.h>
8#include <linux/errno.h>
9
10#include <asm/ptrace.h>
11#include <asm/traps.h>
12#include <asm/irq.h>
13#include <asm/io.h>
14#include <asm/gpio.h>
15#include <asm/regs306x.h>
16
17const int __initdata h8300_saved_vectors[] = {
18#if defined(CONFIG_GDB_DEBUG)
19 TRAP3_VEC, /* TRAPA #3 is GDB breakpoint */
20#endif
21 -1,
22};
23
24const h8300_vector __initdata h8300_trap_table[] = {
25 0, 0, 0, 0, 0, 0, 0, 0,
26 system_call,
27 0,
28 0,
29 trace_break,
30};
31
32int h8300_enable_irq_pin(unsigned int irq)
33{
34 int bitmask;
35 if (irq < EXT_IRQ0 || irq > EXT_IRQ5)
36 return 0;
37
38 /* initialize IRQ pin */
39 bitmask = 1 << (irq - EXT_IRQ0);
40 switch(irq) {
41 case EXT_IRQ0:
42 case EXT_IRQ1:
43 case EXT_IRQ2:
44 case EXT_IRQ3:
45 if (H8300_GPIO_RESERVE(H8300_GPIO_P8, bitmask) == 0)
46 return -EBUSY;
47 H8300_GPIO_DDR(H8300_GPIO_P8, bitmask, H8300_GPIO_INPUT);
48 break;
49 case EXT_IRQ4:
50 case EXT_IRQ5:
51 if (H8300_GPIO_RESERVE(H8300_GPIO_P9, bitmask) == 0)
52 return -EBUSY;
53 H8300_GPIO_DDR(H8300_GPIO_P9, bitmask, H8300_GPIO_INPUT);
54 break;
55 }
56
57 return 0;
58}
59
60void h8300_disable_irq_pin(unsigned int irq)
61{
62 int bitmask;
63 if (irq < EXT_IRQ0 || irq > EXT_IRQ5)
64 return;
65
66 /* disable interrupt & release IRQ pin */
67 bitmask = 1 << (irq - EXT_IRQ0);
68 switch(irq) {
69 case EXT_IRQ0:
70 case EXT_IRQ1:
71 case EXT_IRQ2:
72 case EXT_IRQ3:
73 *(volatile unsigned char *)IER &= ~bitmask;
74 H8300_GPIO_FREE(H8300_GPIO_P8, bitmask);
75 break ;
76 case EXT_IRQ4:
77 case EXT_IRQ5:
78 *(volatile unsigned char *)IER &= ~bitmask;
79 H8300_GPIO_FREE(H8300_GPIO_P9, bitmask);
80 break;
81 }
82}
diff --git a/arch/h8300/platform/h8s/ints.c b/arch/h8300/platform/h8s/ints.c
deleted file mode 100644
index ac10b9783850..000000000000
--- a/arch/h8300/platform/h8s/ints.c
+++ /dev/null
@@ -1,304 +0,0 @@
1/*
2 * linux/arch/h8300/platform/h8s/ints.c
3 *
4 * Yoshinori Sato <ysato@users.sourceforge.jp>
5 *
6 * Based on linux/arch/$(ARCH)/platform/$(PLATFORM)/ints.c
7 *
8 * This file is subject to the terms and conditions of the GNU General Public
9 * License. See the file COPYING in the main directory of this archive
10 * for more details.
11 *
12 * Copyright 1996 Roman Zippel
13 * Copyright 1999 D. Jeff Dionne <jeff@rt-control.com>
14 */
15
16#include <linux/module.h>
17#include <linux/types.h>
18#include <linux/kernel.h>
19#include <linux/sched.h>
20#include <linux/kernel_stat.h>
21#include <linux/seq_file.h>
22#include <linux/init.h>
23#include <linux/interrupt.h>
24#include <linux/bootmem.h>
25#include <linux/random.h>
26#include <linux/hardirq.h>
27
28#include <asm/system.h>
29#include <asm/irq.h>
30#include <asm/traps.h>
31#include <asm/io.h>
32#include <asm/setup.h>
33#include <asm/gpio.h>
34#include <asm/regs267x.h>
35#include <asm/errno.h>
36
37/*
38 * This structure has only 4 elements for speed reasons
39 */
40typedef struct irq_handler {
41 irqreturn_t (*handler)(int, void *, struct pt_regs *);
42 int flags;
43 int count;
44 void *dev_id;
45 const char *devname;
46} irq_handler_t;
47
48static irq_handler_t *irq_list[NR_IRQS];
49
50/* IRQ pin assignment */
51struct irq_pins {
52 unsigned char port_no;
53 unsigned char bit_no;
54};
55/* ISTR = 0 */
56static const struct irq_pins irq_assign_table0[16]={
57 {H8300_GPIO_P5,H8300_GPIO_B0},{H8300_GPIO_P5,H8300_GPIO_B1},
58 {H8300_GPIO_P5,H8300_GPIO_B2},{H8300_GPIO_P5,H8300_GPIO_B3},
59 {H8300_GPIO_P5,H8300_GPIO_B4},{H8300_GPIO_P5,H8300_GPIO_B5},
60 {H8300_GPIO_P5,H8300_GPIO_B6},{H8300_GPIO_P5,H8300_GPIO_B7},
61 {H8300_GPIO_P6,H8300_GPIO_B0},{H8300_GPIO_P6,H8300_GPIO_B1},
62 {H8300_GPIO_P6,H8300_GPIO_B2},{H8300_GPIO_P6,H8300_GPIO_B3},
63 {H8300_GPIO_P6,H8300_GPIO_B4},{H8300_GPIO_P6,H8300_GPIO_B5},
64 {H8300_GPIO_PF,H8300_GPIO_B1},{H8300_GPIO_PF,H8300_GPIO_B2},
65};
66/* ISTR = 1 */
67static const struct irq_pins irq_assign_table1[16]={
68 {H8300_GPIO_P8,H8300_GPIO_B0},{H8300_GPIO_P8,H8300_GPIO_B1},
69 {H8300_GPIO_P8,H8300_GPIO_B2},{H8300_GPIO_P8,H8300_GPIO_B3},
70 {H8300_GPIO_P8,H8300_GPIO_B4},{H8300_GPIO_P8,H8300_GPIO_B5},
71 {H8300_GPIO_PH,H8300_GPIO_B2},{H8300_GPIO_PH,H8300_GPIO_B3},
72 {H8300_GPIO_P2,H8300_GPIO_B0},{H8300_GPIO_P2,H8300_GPIO_B1},
73 {H8300_GPIO_P2,H8300_GPIO_B2},{H8300_GPIO_P2,H8300_GPIO_B3},
74 {H8300_GPIO_P2,H8300_GPIO_B4},{H8300_GPIO_P2,H8300_GPIO_B5},
75 {H8300_GPIO_P2,H8300_GPIO_B6},{H8300_GPIO_P2,H8300_GPIO_B7},
76};
77
78static short use_kmalloc = 0;
79
80extern unsigned long *interrupt_redirect_table;
81
82#define CPU_VECTOR ((unsigned long *)0x000000)
83#define ADDR_MASK (0xffffff)
84
85static inline unsigned long *get_vector_address(void)
86{
87 volatile unsigned long *rom_vector = CPU_VECTOR;
88 unsigned long base,tmp;
89 int vec_no;
90
91 base = rom_vector[EXT_IRQ0] & ADDR_MASK;
92
93 /* check romvector format */
94 for (vec_no = EXT_IRQ1; vec_no <= EXT_IRQ15; vec_no++) {
95 if ((base+(vec_no - EXT_IRQ0)*4) != (rom_vector[vec_no] & ADDR_MASK))
96 return NULL;
97 }
98
99 /* ramvector base address */
100 base -= EXT_IRQ0*4;
101
102 /* writerble check */
103 tmp = ~(*(unsigned long *)base);
104 (*(unsigned long *)base) = tmp;
105 if ((*(unsigned long *)base) != tmp)
106 return NULL;
107 return (unsigned long *)base;
108}
109
110void __init init_IRQ(void)
111{
112#if defined(CONFIG_RAMKERNEL)
113 int i;
114 unsigned long *ramvec,*ramvec_p;
115 unsigned long break_vec;
116
117 ramvec = get_vector_address();
118 if (ramvec == NULL)
119 panic("interrupt vector serup failed.");
120 else
121 printk("virtual vector at 0x%08lx\n",(unsigned long)ramvec);
122
123#if defined(CONFIG_GDB_DEBUG)
124 /* save original break vector */
125 break_vec = ramvec[TRAP3_VEC];
126#else
127 break_vec = VECTOR(trace_break);
128#endif
129
130 /* create redirect table */
131 for (ramvec_p = ramvec, i = 0; i < NR_IRQS; i++)
132 *ramvec_p++ = REDIRECT(interrupt_entry);
133
134 /* set special vector */
135 ramvec[TRAP0_VEC] = VECTOR(system_call);
136 ramvec[TRAP3_VEC] = break_vec;
137 interrupt_redirect_table = ramvec;
138#ifdef DUMP_VECTOR
139 ramvec_p = ramvec;
140 for (i = 0; i < NR_IRQS; i++) {
141 if ((i % 8) == 0)
142 printk("\n%p: ",ramvec_p);
143 printk("%p ",*ramvec_p);
144 ramvec_p++;
145 }
146 printk("\n");
147#endif
148#endif
149}
150
151int request_irq(unsigned int irq,
152 irqreturn_t (*handler)(int, void *, struct pt_regs *),
153 unsigned long flags, const char *devname, void *dev_id)
154{
155 unsigned short ptn = 1 << (irq - EXT_IRQ0);
156 irq_handler_t *irq_handle;
157 if (irq < 0 || irq >= NR_IRQS) {
158 printk("Incorrect IRQ %d from %s\n", irq, devname);
159 return -EINVAL;
160 }
161 if (irq_list[irq])
162 return -EBUSY; /* already used */
163 if (irq >= EXT_IRQ0 && irq <= EXT_IRQ15) {
164 /* initialize IRQ pin */
165 unsigned int port_no,bit_no;
166 if (*(volatile unsigned short *)ITSR & ptn) {
167 port_no = irq_assign_table1[irq - EXT_IRQ0].port_no;
168 bit_no = irq_assign_table1[irq - EXT_IRQ0].bit_no;
169 } else {
170 port_no = irq_assign_table0[irq - EXT_IRQ0].port_no;
171 bit_no = irq_assign_table0[irq - EXT_IRQ0].bit_no;
172 }
173 if (H8300_GPIO_RESERVE(port_no, bit_no) == 0)
174 return -EBUSY; /* pin already use */
175 H8300_GPIO_DDR(port_no, bit_no, H8300_GPIO_INPUT);
176 *(volatile unsigned short *)ISR &= ~ptn; /* ISR clear */
177 }
178
179 if (use_kmalloc)
180 irq_handle = kmalloc(sizeof(irq_handler_t), GFP_ATOMIC);
181 else {
182 /* use bootmem allocator */
183 irq_handle = (irq_handler_t *)alloc_bootmem(sizeof(irq_handler_t));
184 irq_handle = (irq_handler_t *)((unsigned long)irq_handle | 0x80000000);
185 }
186
187 if (irq_handle == NULL)
188 return -ENOMEM;
189
190 irq_handle->handler = handler;
191 irq_handle->flags = flags;
192 irq_handle->count = 0;
193 irq_handle->dev_id = dev_id;
194 irq_handle->devname = devname;
195 irq_list[irq] = irq_handle;
196 if (irq_handle->flags & IRQF_SAMPLE_RANDOM)
197 rand_initialize_irq(irq);
198
199 /* enable interrupt */
200 /* compatible i386 */
201 if (irq >= EXT_IRQ0 && irq <= EXT_IRQ15)
202 *(volatile unsigned short *)IER |= ptn;
203 return 0;
204}
205
206EXPORT_SYMBOL(request_irq);
207
208void free_irq(unsigned int irq, void *dev_id)
209{
210 if (irq >= NR_IRQS)
211 return;
212 if (irq_list[irq]->dev_id != dev_id)
213 printk("%s: Removing probably wrong IRQ %d from %s\n",
214 __FUNCTION__, irq, irq_list[irq]->devname);
215 if (irq >= EXT_IRQ0 && irq <= EXT_IRQ15) {
216 /* disable interrupt & release IRQ pin */
217 unsigned short port_no,bit_no;
218 *(volatile unsigned short *)ISR &= ~(1 << (irq - EXT_IRQ0));
219 *(volatile unsigned short *)IER |= 1 << (irq - EXT_IRQ0);
220 if (*(volatile unsigned short *)ITSR & (1 << (irq - EXT_IRQ0))) {
221 port_no = irq_assign_table1[irq - EXT_IRQ0].port_no;
222 bit_no = irq_assign_table1[irq - EXT_IRQ0].bit_no;
223 } else {
224 port_no = irq_assign_table0[irq - EXT_IRQ0].port_no;
225 bit_no = irq_assign_table0[irq - EXT_IRQ0].bit_no;
226 }
227 H8300_GPIO_FREE(port_no, bit_no);
228 }
229 if (((unsigned long)irq_list[irq] & 0x80000000) == 0) {
230 kfree(irq_list[irq]);
231 irq_list[irq] = NULL;
232 }
233}
234
235EXPORT_SYMBOL(free_irq);
236
237unsigned long probe_irq_on (void)
238{
239 return 0;
240}
241
242EXPORT_SYMBOL(probe_irq_on);
243
244int probe_irq_off (unsigned long irqs)
245{
246 return 0;
247}
248
249EXPORT_SYMBOL(probe_irq_off);
250
251void enable_irq(unsigned int irq)
252{
253 if (irq >= EXT_IRQ0 && irq <= EXT_IRQ15)
254 *(volatile unsigned short *)IER |= 1 << (irq - EXT_IRQ0);
255}
256
257void disable_irq(unsigned int irq)
258{
259 if (irq >= EXT_IRQ0 && irq <= EXT_IRQ15)
260 *(volatile unsigned short *)IER &= ~(1 << (irq - EXT_IRQ0));
261}
262
263asmlinkage void process_int(unsigned long vec, struct pt_regs *fp)
264{
265 irq_enter();
266 /* ISR clear */
267 /* compatible i386 */
268 if (vec >= EXT_IRQ0 && vec <= EXT_IRQ15)
269 *(volatile unsigned short *)ISR &= ~(1 << (vec - EXT_IRQ0));
270 if (vec < NR_IRQS) {
271 if (irq_list[vec]) {
272 irq_list[vec]->handler(vec, irq_list[vec]->dev_id, fp);
273 irq_list[vec]->count++;
274 if (irq_list[vec]->flags & IRQF_SAMPLE_RANDOM)
275 add_interrupt_randomness(vec);
276 }
277 } else {
278 BUG();
279 }
280 irq_exit();
281}
282
283int show_interrupts(struct seq_file *p, void *v)
284{
285 int i = *(loff_t *) v;
286
287 if ((i < NR_IRQS) && (irq_list[i] !=NULL)) {
288 seq_printf(p, "%3d: %10u ",i,irq_list[i]->count);
289 seq_printf(p, "%s\n", irq_list[i]->devname);
290 }
291
292 return 0;
293}
294
295void init_irq_proc(void)
296{
297}
298
299static int __init enable_kmalloc(void)
300{
301 use_kmalloc = 1;
302 return 0;
303}
304core_initcall(enable_kmalloc);
diff --git a/arch/h8300/platform/h8s/ints_h8s.c b/arch/h8300/platform/h8s/irq.c
index faa8a459d952..8182f041f829 100644
--- a/arch/h8300/platform/h8s/ints_h8s.c
+++ b/arch/h8300/platform/h8s/irq.c
@@ -27,11 +27,11 @@ const int __initdata h8300_saved_vectors[]={
27}; 27};
28 28
29/* trap entry table */ 29/* trap entry table */
30const unsigned long __initdata h8300_trap_table[NR_TRAPS]={ 30const H8300_VECTOR __initdata h8300_trap_table[] = {
31 0,0,0,0,0, 31 0,0,0,0,0,
32 (unsigned long)trace_break, /* TRACE */ 32 trace_break, /* TRACE */
33 0,0, 33 0,0,
34 (unsigned long)system_call, /* TRAPA #0 */ 34 system_call, /* TRAPA #0 */
35 0,0,0,0,0,0,0 35 0,0,0,0,0,0,0
36}; 36};
37 37
@@ -50,7 +50,7 @@ static const struct irq_pins irq_assign_table0[16]={
50 {H8300_GPIO_P6,H8300_GPIO_B2},{H8300_GPIO_P6,H8300_GPIO_B3}, 50 {H8300_GPIO_P6,H8300_GPIO_B2},{H8300_GPIO_P6,H8300_GPIO_B3},
51 {H8300_GPIO_P6,H8300_GPIO_B4},{H8300_GPIO_P6,H8300_GPIO_B5}, 51 {H8300_GPIO_P6,H8300_GPIO_B4},{H8300_GPIO_P6,H8300_GPIO_B5},
52 {H8300_GPIO_PF,H8300_GPIO_B1},{H8300_GPIO_PF,H8300_GPIO_B2}, 52 {H8300_GPIO_PF,H8300_GPIO_B1},{H8300_GPIO_PF,H8300_GPIO_B2},
53}; 53};
54/* ISTR = 1 */ 54/* ISTR = 1 */
55static const struct irq_pins irq_assign_table1[16]={ 55static const struct irq_pins irq_assign_table1[16]={
56 {H8300_GPIO_P8,H8300_GPIO_B0},{H8300_GPIO_P8,H8300_GPIO_B1}, 56 {H8300_GPIO_P8,H8300_GPIO_B0},{H8300_GPIO_P8,H8300_GPIO_B1},
diff --git a/arch/mips/bcm47xx/setup.c b/arch/mips/bcm47xx/setup.c
index 1b6b0fa5028f..8d36f186890e 100644
--- a/arch/mips/bcm47xx/setup.c
+++ b/arch/mips/bcm47xx/setup.c
@@ -92,17 +92,17 @@ static int bcm47xx_get_invariants(struct ssb_bus *bus,
92 iv->sprom.revision = 3; 92 iv->sprom.revision = 3;
93 93
94 if (cfe_getenv("et0macaddr", buf, sizeof(buf)) >= 0) 94 if (cfe_getenv("et0macaddr", buf, sizeof(buf)) >= 0)
95 str2eaddr(buf, iv->sprom.r1.et0mac); 95 str2eaddr(buf, iv->sprom.et0mac);
96 if (cfe_getenv("et1macaddr", buf, sizeof(buf)) >= 0) 96 if (cfe_getenv("et1macaddr", buf, sizeof(buf)) >= 0)
97 str2eaddr(buf, iv->sprom.r1.et1mac); 97 str2eaddr(buf, iv->sprom.et1mac);
98 if (cfe_getenv("et0phyaddr", buf, sizeof(buf)) >= 0) 98 if (cfe_getenv("et0phyaddr", buf, sizeof(buf)) >= 0)
99 iv->sprom.r1.et0phyaddr = simple_strtoul(buf, NULL, 10); 99 iv->sprom.et0phyaddr = simple_strtoul(buf, NULL, 10);
100 if (cfe_getenv("et1phyaddr", buf, sizeof(buf)) >= 0) 100 if (cfe_getenv("et1phyaddr", buf, sizeof(buf)) >= 0)
101 iv->sprom.r1.et1phyaddr = simple_strtoul(buf, NULL, 10); 101 iv->sprom.et1phyaddr = simple_strtoul(buf, NULL, 10);
102 if (cfe_getenv("et0mdcport", buf, sizeof(buf)) >= 0) 102 if (cfe_getenv("et0mdcport", buf, sizeof(buf)) >= 0)
103 iv->sprom.r1.et0mdcport = simple_strtoul(buf, NULL, 10); 103 iv->sprom.et0mdcport = simple_strtoul(buf, NULL, 10);
104 if (cfe_getenv("et1mdcport", buf, sizeof(buf)) >= 0) 104 if (cfe_getenv("et1mdcport", buf, sizeof(buf)) >= 0)
105 iv->sprom.r1.et1mdcport = simple_strtoul(buf, NULL, 10); 105 iv->sprom.et1mdcport = simple_strtoul(buf, NULL, 10);
106 106
107 return 0; 107 return 0;
108} 108}
diff --git a/arch/mips/bcm47xx/wgt634u.c b/arch/mips/bcm47xx/wgt634u.c
index 5a017eaee712..d1d90c9ef2fa 100644
--- a/arch/mips/bcm47xx/wgt634u.c
+++ b/arch/mips/bcm47xx/wgt634u.c
@@ -9,6 +9,7 @@
9#include <linux/platform_device.h> 9#include <linux/platform_device.h>
10#include <linux/module.h> 10#include <linux/module.h>
11#include <linux/leds.h> 11#include <linux/leds.h>
12#include <linux/mtd/physmap.h>
12#include <linux/ssb/ssb.h> 13#include <linux/ssb/ssb.h>
13#include <asm/mach-bcm47xx/bcm47xx.h> 14#include <asm/mach-bcm47xx/bcm47xx.h>
14 15
@@ -43,6 +44,61 @@ static struct platform_device wgt634u_gpio_leds = {
43 } 44 }
44}; 45};
45 46
47
48/* 8MiB flash. The struct mtd_partition matches original Netgear WGT634U
49 firmware. */
50static struct mtd_partition wgt634u_partitions[] = {
51 {
52 .name = "cfe",
53 .offset = 0,
54 .size = 0x60000, /* 384k */
55 .mask_flags = MTD_WRITEABLE /* force read-only */
56 },
57 {
58 .name = "config",
59 .offset = 0x60000,
60 .size = 0x20000 /* 128k */
61 },
62 {
63 .name = "linux",
64 .offset = 0x80000,
65 .size = 0x140000 /* 1280k */
66 },
67 {
68 .name = "jffs",
69 .offset = 0x1c0000,
70 .size = 0x620000 /* 6272k */
71 },
72 {
73 .name = "nvram",
74 .offset = 0x7e0000,
75 .size = 0x20000 /* 128k */
76 },
77};
78
79static struct physmap_flash_data wgt634u_flash_data = {
80 .parts = wgt634u_partitions,
81 .nr_parts = ARRAY_SIZE(wgt634u_partitions)
82};
83
84static struct resource wgt634u_flash_resource = {
85 .flags = IORESOURCE_MEM,
86};
87
88static struct platform_device wgt634u_flash = {
89 .name = "physmap-flash",
90 .id = 0,
91 .dev = { .platform_data = &wgt634u_flash_data, },
92 .resource = &wgt634u_flash_resource,
93 .num_resources = 1,
94};
95
96/* Platform devices */
97static struct platform_device *wgt634u_devices[] __initdata = {
98 &wgt634u_flash,
99 &wgt634u_gpio_leds,
100};
101
46static int __init wgt634u_init(void) 102static int __init wgt634u_init(void)
47{ 103{
48 /* There is no easy way to detect that we are running on a WGT634U 104 /* There is no easy way to detect that we are running on a WGT634U
@@ -50,13 +106,20 @@ static int __init wgt634u_init(void)
50 * been allocated ranges 00:09:5b:xx:xx:xx and 00:0f:b5:xx:xx:xx. 106 * been allocated ranges 00:09:5b:xx:xx:xx and 00:0f:b5:xx:xx:xx.
51 */ 107 */
52 108
53 u8 *et0mac = ssb_bcm47xx.sprom.r1.et0mac; 109 u8 *et0mac = ssb_bcm47xx.sprom.et0mac;
54 110
55 if (et0mac[0] == 0x00 && 111 if (et0mac[0] == 0x00 &&
56 ((et0mac[1] == 0x09 && et0mac[2] == 0x5b) || 112 ((et0mac[1] == 0x09 && et0mac[2] == 0x5b) ||
57 (et0mac[1] == 0x0f && et0mac[2] == 0xb5))) 113 (et0mac[1] == 0x0f && et0mac[2] == 0xb5))) {
58 return platform_device_register(&wgt634u_gpio_leds); 114 struct ssb_mipscore *mcore = &ssb_bcm47xx.mipscore;
59 else 115 wgt634u_flash_data.width = mcore->flash_buswidth;
116 wgt634u_flash_resource.start = mcore->flash_window;
117 wgt634u_flash_resource.end = mcore->flash_window
118 + mcore->flash_window_size
119 - 1;
120 return platform_add_devices(wgt634u_devices,
121 ARRAY_SIZE(wgt634u_devices));
122 } else
60 return -ENODEV; 123 return -ENODEV;
61} 124}
62 125
diff --git a/arch/mips/configs/bcm47xx_defconfig b/arch/mips/configs/bcm47xx_defconfig
new file mode 100644
index 000000000000..c0e42e74dfbd
--- /dev/null
+++ b/arch/mips/configs/bcm47xx_defconfig
@@ -0,0 +1,1939 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.25-rc2
4# Mon Feb 18 11:55:24 2008
5#
6CONFIG_MIPS=y
7
8#
9# Machine selection
10#
11# CONFIG_MACH_ALCHEMY is not set
12# CONFIG_BASLER_EXCITE is not set
13CONFIG_BCM47XX=y
14# CONFIG_MIPS_COBALT is not set
15# CONFIG_MACH_DECSTATION is not set
16# CONFIG_MACH_JAZZ is not set
17# CONFIG_LASAT is not set
18# CONFIG_LEMOTE_FULONG is not set
19# CONFIG_MIPS_ATLAS is not set
20# CONFIG_MIPS_MALTA is not set
21# CONFIG_MIPS_SEAD is not set
22# CONFIG_MIPS_SIM is not set
23# CONFIG_MARKEINS is not set
24# CONFIG_MACH_VR41XX is not set
25# CONFIG_PNX8550_JBS is not set
26# CONFIG_PNX8550_STB810 is not set
27# CONFIG_PMC_MSP is not set
28# CONFIG_PMC_YOSEMITE is not set
29# CONFIG_SGI_IP22 is not set
30# CONFIG_SGI_IP27 is not set
31# CONFIG_SGI_IP28 is not set
32# CONFIG_SGI_IP32 is not set
33# CONFIG_SIBYTE_CRHINE is not set
34# CONFIG_SIBYTE_CARMEL is not set
35# CONFIG_SIBYTE_CRHONE is not set
36# CONFIG_SIBYTE_RHONE is not set
37# CONFIG_SIBYTE_SWARM is not set
38# CONFIG_SIBYTE_LITTLESUR is not set
39# CONFIG_SIBYTE_SENTOSA is not set
40# CONFIG_SIBYTE_BIGSUR is not set
41# CONFIG_SNI_RM is not set
42# CONFIG_TOSHIBA_JMR3927 is not set
43# CONFIG_TOSHIBA_RBTX4927 is not set
44# CONFIG_TOSHIBA_RBTX4938 is not set
45# CONFIG_WR_PPMC is not set
46CONFIG_RWSEM_GENERIC_SPINLOCK=y
47# CONFIG_ARCH_HAS_ILOG2_U32 is not set
48# CONFIG_ARCH_HAS_ILOG2_U64 is not set
49CONFIG_ARCH_SUPPORTS_OPROFILE=y
50CONFIG_GENERIC_FIND_NEXT_BIT=y
51CONFIG_GENERIC_HWEIGHT=y
52CONFIG_GENERIC_CALIBRATE_DELAY=y
53CONFIG_GENERIC_CLOCKEVENTS=y
54CONFIG_GENERIC_TIME=y
55CONFIG_GENERIC_CMOS_UPDATE=y
56CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
57# CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ is not set
58CONFIG_CEVT_R4K=y
59CONFIG_CSRC_R4K=y
60CONFIG_CFE=y
61CONFIG_DMA_NONCOHERENT=y
62CONFIG_DMA_NEED_PCI_MAP_STATE=y
63CONFIG_EARLY_PRINTK=y
64CONFIG_SYS_HAS_EARLY_PRINTK=y
65# CONFIG_HOTPLUG_CPU is not set
66# CONFIG_NO_IOPORT is not set
67CONFIG_GENERIC_GPIO=y
68# CONFIG_CPU_BIG_ENDIAN is not set
69CONFIG_CPU_LITTLE_ENDIAN=y
70CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
71CONFIG_IRQ_CPU=y
72CONFIG_MIPS_L1_CACHE_SHIFT=5
73
74#
75# CPU selection
76#
77# CONFIG_CPU_LOONGSON2 is not set
78CONFIG_CPU_MIPS32_R1=y
79# CONFIG_CPU_MIPS32_R2 is not set
80# CONFIG_CPU_MIPS64_R1 is not set
81# CONFIG_CPU_MIPS64_R2 is not set
82# CONFIG_CPU_R3000 is not set
83# CONFIG_CPU_TX39XX is not set
84# CONFIG_CPU_VR41XX is not set
85# CONFIG_CPU_R4300 is not set
86# CONFIG_CPU_R4X00 is not set
87# CONFIG_CPU_TX49XX is not set
88# CONFIG_CPU_R5000 is not set
89# CONFIG_CPU_R5432 is not set
90# CONFIG_CPU_R6000 is not set
91# CONFIG_CPU_NEVADA is not set
92# CONFIG_CPU_R8000 is not set
93# CONFIG_CPU_R10000 is not set
94# CONFIG_CPU_RM7000 is not set
95# CONFIG_CPU_RM9000 is not set
96# CONFIG_CPU_SB1 is not set
97CONFIG_SYS_HAS_CPU_MIPS32_R1=y
98CONFIG_CPU_MIPS32=y
99CONFIG_CPU_MIPSR1=y
100CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
101CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
102
103#
104# Kernel type
105#
106CONFIG_32BIT=y
107# CONFIG_64BIT is not set
108CONFIG_PAGE_SIZE_4KB=y
109# CONFIG_PAGE_SIZE_8KB is not set
110# CONFIG_PAGE_SIZE_16KB is not set
111# CONFIG_PAGE_SIZE_64KB is not set
112CONFIG_CPU_HAS_PREFETCH=y
113CONFIG_MIPS_MT_DISABLED=y
114# CONFIG_MIPS_MT_SMP is not set
115# CONFIG_MIPS_MT_SMTC is not set
116CONFIG_CPU_HAS_LLSC=y
117CONFIG_CPU_HAS_SYNC=y
118CONFIG_GENERIC_HARDIRQS=y
119CONFIG_GENERIC_IRQ_PROBE=y
120CONFIG_CPU_SUPPORTS_HIGHMEM=y
121CONFIG_ARCH_FLATMEM_ENABLE=y
122CONFIG_ARCH_POPULATES_NODE_MAP=y
123CONFIG_SELECT_MEMORY_MODEL=y
124CONFIG_FLATMEM_MANUAL=y
125# CONFIG_DISCONTIGMEM_MANUAL is not set
126# CONFIG_SPARSEMEM_MANUAL is not set
127CONFIG_FLATMEM=y
128CONFIG_FLAT_NODE_MEM_MAP=y
129# CONFIG_SPARSEMEM_STATIC is not set
130# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
131CONFIG_SPLIT_PTLOCK_CPUS=4
132# CONFIG_RESOURCES_64BIT is not set
133CONFIG_ZONE_DMA_FLAG=0
134CONFIG_VIRT_TO_BUS=y
135CONFIG_TICK_ONESHOT=y
136CONFIG_NO_HZ=y
137CONFIG_HIGH_RES_TIMERS=y
138CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
139# CONFIG_HZ_48 is not set
140# CONFIG_HZ_100 is not set
141# CONFIG_HZ_128 is not set
142CONFIG_HZ_250=y
143# CONFIG_HZ_256 is not set
144# CONFIG_HZ_1000 is not set
145# CONFIG_HZ_1024 is not set
146CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
147CONFIG_HZ=250
148CONFIG_PREEMPT_NONE=y
149# CONFIG_PREEMPT_VOLUNTARY is not set
150# CONFIG_PREEMPT is not set
151CONFIG_RCU_TRACE=y
152CONFIG_KEXEC=y
153# CONFIG_SECCOMP is not set
154CONFIG_LOCKDEP_SUPPORT=y
155CONFIG_STACKTRACE_SUPPORT=y
156CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
157
158#
159# General setup
160#
161CONFIG_EXPERIMENTAL=y
162CONFIG_BROKEN_ON_SMP=y
163CONFIG_INIT_ENV_ARG_LIMIT=32
164CONFIG_LOCALVERSION=""
165# CONFIG_LOCALVERSION_AUTO is not set
166CONFIG_SWAP=y
167CONFIG_SYSVIPC=y
168CONFIG_SYSVIPC_SYSCTL=y
169CONFIG_POSIX_MQUEUE=y
170CONFIG_BSD_PROCESS_ACCT=y
171CONFIG_BSD_PROCESS_ACCT_V3=y
172CONFIG_TASKSTATS=y
173CONFIG_TASK_DELAY_ACCT=y
174CONFIG_TASK_XACCT=y
175CONFIG_TASK_IO_ACCOUNTING=y
176CONFIG_AUDIT=y
177# CONFIG_IKCONFIG is not set
178CONFIG_LOG_BUF_SHIFT=17
179CONFIG_CGROUPS=y
180# CONFIG_CGROUP_DEBUG is not set
181CONFIG_CGROUP_NS=y
182CONFIG_GROUP_SCHED=y
183CONFIG_FAIR_GROUP_SCHED=y
184# CONFIG_RT_GROUP_SCHED is not set
185CONFIG_USER_SCHED=y
186# CONFIG_CGROUP_SCHED is not set
187CONFIG_CGROUP_CPUACCT=y
188# CONFIG_RESOURCE_COUNTERS is not set
189CONFIG_SYSFS_DEPRECATED=y
190CONFIG_RELAY=y
191# CONFIG_NAMESPACES is not set
192CONFIG_BLK_DEV_INITRD=y
193CONFIG_INITRAMFS_SOURCE=""
194CONFIG_CC_OPTIMIZE_FOR_SIZE=y
195CONFIG_SYSCTL=y
196CONFIG_EMBEDDED=y
197CONFIG_SYSCTL_SYSCALL=y
198CONFIG_KALLSYMS=y
199# CONFIG_KALLSYMS_EXTRA_PASS is not set
200CONFIG_HOTPLUG=y
201CONFIG_PRINTK=y
202CONFIG_BUG=y
203CONFIG_ELF_CORE=y
204CONFIG_COMPAT_BRK=y
205CONFIG_BASE_FULL=y
206CONFIG_FUTEX=y
207CONFIG_ANON_INODES=y
208CONFIG_EPOLL=y
209CONFIG_SIGNALFD=y
210CONFIG_TIMERFD=y
211CONFIG_EVENTFD=y
212CONFIG_SHMEM=y
213CONFIG_VM_EVENT_COUNTERS=y
214CONFIG_SLAB=y
215# CONFIG_SLUB is not set
216# CONFIG_SLOB is not set
217# CONFIG_PROFILING is not set
218# CONFIG_MARKERS is not set
219CONFIG_HAVE_OPROFILE=y
220# CONFIG_HAVE_KPROBES is not set
221CONFIG_PROC_PAGE_MONITOR=y
222CONFIG_SLABINFO=y
223CONFIG_RT_MUTEXES=y
224# CONFIG_TINY_SHMEM is not set
225CONFIG_BASE_SMALL=0
226CONFIG_MODULES=y
227CONFIG_MODULE_UNLOAD=y
228CONFIG_MODULE_FORCE_UNLOAD=y
229CONFIG_MODVERSIONS=y
230# CONFIG_MODULE_SRCVERSION_ALL is not set
231CONFIG_KMOD=y
232CONFIG_BLOCK=y
233CONFIG_LBD=y
234CONFIG_BLK_DEV_IO_TRACE=y
235CONFIG_LSF=y
236# CONFIG_BLK_DEV_BSG is not set
237
238#
239# IO Schedulers
240#
241CONFIG_IOSCHED_NOOP=y
242CONFIG_IOSCHED_AS=y
243CONFIG_IOSCHED_DEADLINE=y
244CONFIG_IOSCHED_CFQ=y
245# CONFIG_DEFAULT_AS is not set
246# CONFIG_DEFAULT_DEADLINE is not set
247CONFIG_DEFAULT_CFQ=y
248# CONFIG_DEFAULT_NOOP is not set
249CONFIG_DEFAULT_IOSCHED="cfq"
250CONFIG_CLASSIC_RCU=y
251# CONFIG_PREEMPT_RCU is not set
252
253#
254# Bus options (PCI, PCMCIA, EISA, ISA, TC)
255#
256CONFIG_HW_HAS_PCI=y
257CONFIG_PCI=y
258CONFIG_PCI_DOMAINS=y
259# CONFIG_ARCH_SUPPORTS_MSI is not set
260CONFIG_PCI_LEGACY=y
261CONFIG_MMU=y
262# CONFIG_PCCARD is not set
263# CONFIG_HOTPLUG_PCI is not set
264
265#
266# Executable file formats
267#
268CONFIG_BINFMT_ELF=y
269CONFIG_BINFMT_MISC=m
270CONFIG_TRAD_SIGNALS=y
271
272#
273# Power management options
274#
275CONFIG_ARCH_SUSPEND_POSSIBLE=y
276# CONFIG_PM is not set
277
278#
279# Networking
280#
281CONFIG_NET=y
282
283#
284# Networking options
285#
286CONFIG_PACKET=y
287CONFIG_PACKET_MMAP=y
288CONFIG_UNIX=y
289CONFIG_XFRM=y
290CONFIG_XFRM_USER=m
291# CONFIG_XFRM_SUB_POLICY is not set
292# CONFIG_XFRM_MIGRATE is not set
293# CONFIG_XFRM_STATISTICS is not set
294CONFIG_NET_KEY=m
295# CONFIG_NET_KEY_MIGRATE is not set
296CONFIG_INET=y
297CONFIG_IP_MULTICAST=y
298CONFIG_IP_ADVANCED_ROUTER=y
299CONFIG_ASK_IP_FIB_HASH=y
300# CONFIG_IP_FIB_TRIE is not set
301CONFIG_IP_FIB_HASH=y
302CONFIG_IP_MULTIPLE_TABLES=y
303CONFIG_IP_ROUTE_MULTIPATH=y
304CONFIG_IP_ROUTE_VERBOSE=y
305# CONFIG_IP_PNP is not set
306CONFIG_NET_IPIP=m
307CONFIG_NET_IPGRE=m
308CONFIG_NET_IPGRE_BROADCAST=y
309CONFIG_IP_MROUTE=y
310CONFIG_IP_PIMSM_V1=y
311CONFIG_IP_PIMSM_V2=y
312# CONFIG_ARPD is not set
313CONFIG_SYN_COOKIES=y
314CONFIG_INET_AH=m
315CONFIG_INET_ESP=m
316CONFIG_INET_IPCOMP=m
317CONFIG_INET_XFRM_TUNNEL=m
318CONFIG_INET_TUNNEL=m
319CONFIG_INET_XFRM_MODE_TRANSPORT=m
320CONFIG_INET_XFRM_MODE_TUNNEL=m
321CONFIG_INET_XFRM_MODE_BEET=m
322CONFIG_INET_LRO=m
323CONFIG_INET_DIAG=m
324CONFIG_INET_TCP_DIAG=m
325CONFIG_TCP_CONG_ADVANCED=y
326CONFIG_TCP_CONG_BIC=y
327CONFIG_TCP_CONG_CUBIC=m
328CONFIG_TCP_CONG_WESTWOOD=m
329CONFIG_TCP_CONG_HTCP=m
330CONFIG_TCP_CONG_HSTCP=m
331CONFIG_TCP_CONG_HYBLA=m
332CONFIG_TCP_CONG_VEGAS=m
333CONFIG_TCP_CONG_SCALABLE=m
334CONFIG_TCP_CONG_LP=m
335CONFIG_TCP_CONG_VENO=m
336CONFIG_TCP_CONG_YEAH=m
337CONFIG_TCP_CONG_ILLINOIS=m
338CONFIG_DEFAULT_BIC=y
339# CONFIG_DEFAULT_CUBIC is not set
340# CONFIG_DEFAULT_HTCP is not set
341# CONFIG_DEFAULT_VEGAS is not set
342# CONFIG_DEFAULT_WESTWOOD is not set
343# CONFIG_DEFAULT_RENO is not set
344CONFIG_DEFAULT_TCP_CONG="bic"
345# CONFIG_TCP_MD5SIG is not set
346CONFIG_IP_VS=m
347# CONFIG_IP_VS_DEBUG is not set
348CONFIG_IP_VS_TAB_BITS=12
349
350#
351# IPVS transport protocol load balancing support
352#
353CONFIG_IP_VS_PROTO_TCP=y
354CONFIG_IP_VS_PROTO_UDP=y
355CONFIG_IP_VS_PROTO_ESP=y
356CONFIG_IP_VS_PROTO_AH=y
357
358#
359# IPVS scheduler
360#
361CONFIG_IP_VS_RR=m
362CONFIG_IP_VS_WRR=m
363CONFIG_IP_VS_LC=m
364CONFIG_IP_VS_WLC=m
365CONFIG_IP_VS_LBLC=m
366CONFIG_IP_VS_LBLCR=m
367CONFIG_IP_VS_DH=m
368CONFIG_IP_VS_SH=m
369CONFIG_IP_VS_SED=m
370CONFIG_IP_VS_NQ=m
371
372#
373# IPVS application helper
374#
375CONFIG_IP_VS_FTP=m
376CONFIG_IPV6=m
377CONFIG_IPV6_PRIVACY=y
378# CONFIG_IPV6_ROUTER_PREF is not set
379# CONFIG_IPV6_OPTIMISTIC_DAD is not set
380CONFIG_INET6_AH=m
381CONFIG_INET6_ESP=m
382CONFIG_INET6_IPCOMP=m
383# CONFIG_IPV6_MIP6 is not set
384CONFIG_INET6_XFRM_TUNNEL=m
385CONFIG_INET6_TUNNEL=m
386CONFIG_INET6_XFRM_MODE_TRANSPORT=m
387CONFIG_INET6_XFRM_MODE_TUNNEL=m
388CONFIG_INET6_XFRM_MODE_BEET=m
389CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
390CONFIG_IPV6_SIT=m
391CONFIG_IPV6_TUNNEL=m
392CONFIG_IPV6_MULTIPLE_TABLES=y
393CONFIG_IPV6_SUBTREES=y
394CONFIG_NETWORK_SECMARK=y
395CONFIG_NETFILTER=y
396# CONFIG_NETFILTER_DEBUG is not set
397CONFIG_NETFILTER_ADVANCED=y
398CONFIG_BRIDGE_NETFILTER=y
399
400#
401# Core Netfilter Configuration
402#
403CONFIG_NETFILTER_NETLINK=m
404CONFIG_NETFILTER_NETLINK_QUEUE=m
405CONFIG_NETFILTER_NETLINK_LOG=m
406CONFIG_NF_CONNTRACK=m
407CONFIG_NF_CT_ACCT=y
408CONFIG_NF_CONNTRACK_MARK=y
409CONFIG_NF_CONNTRACK_SECMARK=y
410CONFIG_NF_CONNTRACK_EVENTS=y
411CONFIG_NF_CT_PROTO_GRE=m
412CONFIG_NF_CT_PROTO_SCTP=m
413CONFIG_NF_CT_PROTO_UDPLITE=m
414CONFIG_NF_CONNTRACK_AMANDA=m
415CONFIG_NF_CONNTRACK_FTP=m
416CONFIG_NF_CONNTRACK_H323=m
417CONFIG_NF_CONNTRACK_IRC=m
418CONFIG_NF_CONNTRACK_NETBIOS_NS=m
419CONFIG_NF_CONNTRACK_PPTP=m
420CONFIG_NF_CONNTRACK_SANE=m
421CONFIG_NF_CONNTRACK_SIP=m
422CONFIG_NF_CONNTRACK_TFTP=m
423CONFIG_NF_CT_NETLINK=m
424CONFIG_NETFILTER_XTABLES=m
425CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
426CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
427CONFIG_NETFILTER_XT_TARGET_DSCP=m
428CONFIG_NETFILTER_XT_TARGET_MARK=m
429CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
430CONFIG_NETFILTER_XT_TARGET_NFLOG=m
431CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
432# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
433CONFIG_NETFILTER_XT_TARGET_TRACE=m
434CONFIG_NETFILTER_XT_TARGET_SECMARK=m
435CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
436CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
437# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set
438CONFIG_NETFILTER_XT_MATCH_COMMENT=m
439CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
440CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
441CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
442CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
443CONFIG_NETFILTER_XT_MATCH_DCCP=m
444CONFIG_NETFILTER_XT_MATCH_DSCP=m
445CONFIG_NETFILTER_XT_MATCH_ESP=m
446CONFIG_NETFILTER_XT_MATCH_HELPER=m
447# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
448CONFIG_NETFILTER_XT_MATCH_LENGTH=m
449CONFIG_NETFILTER_XT_MATCH_LIMIT=m
450CONFIG_NETFILTER_XT_MATCH_MAC=m
451CONFIG_NETFILTER_XT_MATCH_MARK=m
452# CONFIG_NETFILTER_XT_MATCH_OWNER is not set
453CONFIG_NETFILTER_XT_MATCH_POLICY=m
454CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
455CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
456CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
457CONFIG_NETFILTER_XT_MATCH_QUOTA=m
458# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
459CONFIG_NETFILTER_XT_MATCH_REALM=m
460CONFIG_NETFILTER_XT_MATCH_SCTP=m
461CONFIG_NETFILTER_XT_MATCH_STATE=m
462CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
463CONFIG_NETFILTER_XT_MATCH_STRING=m
464CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
465CONFIG_NETFILTER_XT_MATCH_TIME=m
466CONFIG_NETFILTER_XT_MATCH_U32=m
467CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
468
469#
470# IP: Netfilter Configuration
471#
472CONFIG_NF_CONNTRACK_IPV4=m
473CONFIG_NF_CONNTRACK_PROC_COMPAT=y
474CONFIG_IP_NF_QUEUE=m
475CONFIG_IP_NF_IPTABLES=m
476CONFIG_IP_NF_MATCH_RECENT=m
477CONFIG_IP_NF_MATCH_ECN=m
478CONFIG_IP_NF_MATCH_AH=m
479CONFIG_IP_NF_MATCH_TTL=m
480CONFIG_IP_NF_MATCH_ADDRTYPE=m
481CONFIG_IP_NF_FILTER=m
482CONFIG_IP_NF_TARGET_REJECT=m
483CONFIG_IP_NF_TARGET_LOG=m
484CONFIG_IP_NF_TARGET_ULOG=m
485CONFIG_NF_NAT=m
486CONFIG_NF_NAT_NEEDED=y
487CONFIG_IP_NF_TARGET_MASQUERADE=m
488CONFIG_IP_NF_TARGET_REDIRECT=m
489CONFIG_IP_NF_TARGET_NETMAP=m
490CONFIG_NF_NAT_SNMP_BASIC=m
491CONFIG_NF_NAT_PROTO_GRE=m
492CONFIG_NF_NAT_FTP=m
493CONFIG_NF_NAT_IRC=m
494CONFIG_NF_NAT_TFTP=m
495CONFIG_NF_NAT_AMANDA=m
496CONFIG_NF_NAT_PPTP=m
497CONFIG_NF_NAT_H323=m
498CONFIG_NF_NAT_SIP=m
499CONFIG_IP_NF_MANGLE=m
500CONFIG_IP_NF_TARGET_ECN=m
501CONFIG_IP_NF_TARGET_TTL=m
502CONFIG_IP_NF_TARGET_CLUSTERIP=m
503CONFIG_IP_NF_RAW=m
504CONFIG_IP_NF_ARPTABLES=m
505CONFIG_IP_NF_ARPFILTER=m
506CONFIG_IP_NF_ARP_MANGLE=m
507
508#
509# IPv6: Netfilter Configuration
510#
511CONFIG_NF_CONNTRACK_IPV6=m
512CONFIG_IP6_NF_QUEUE=m
513CONFIG_IP6_NF_IPTABLES=m
514CONFIG_IP6_NF_MATCH_RT=m
515CONFIG_IP6_NF_MATCH_OPTS=m
516CONFIG_IP6_NF_MATCH_FRAG=m
517CONFIG_IP6_NF_MATCH_HL=m
518CONFIG_IP6_NF_MATCH_IPV6HEADER=m
519CONFIG_IP6_NF_MATCH_AH=m
520CONFIG_IP6_NF_MATCH_MH=m
521CONFIG_IP6_NF_MATCH_EUI64=m
522CONFIG_IP6_NF_FILTER=m
523CONFIG_IP6_NF_TARGET_LOG=m
524CONFIG_IP6_NF_TARGET_REJECT=m
525CONFIG_IP6_NF_MANGLE=m
526CONFIG_IP6_NF_TARGET_HL=m
527CONFIG_IP6_NF_RAW=m
528
529#
530# Bridge: Netfilter Configuration
531#
532CONFIG_BRIDGE_NF_EBTABLES=m
533CONFIG_BRIDGE_EBT_BROUTE=m
534CONFIG_BRIDGE_EBT_T_FILTER=m
535CONFIG_BRIDGE_EBT_T_NAT=m
536CONFIG_BRIDGE_EBT_802_3=m
537CONFIG_BRIDGE_EBT_AMONG=m
538CONFIG_BRIDGE_EBT_ARP=m
539CONFIG_BRIDGE_EBT_IP=m
540CONFIG_BRIDGE_EBT_LIMIT=m
541CONFIG_BRIDGE_EBT_MARK=m
542CONFIG_BRIDGE_EBT_PKTTYPE=m
543CONFIG_BRIDGE_EBT_STP=m
544CONFIG_BRIDGE_EBT_VLAN=m
545CONFIG_BRIDGE_EBT_ARPREPLY=m
546CONFIG_BRIDGE_EBT_DNAT=m
547CONFIG_BRIDGE_EBT_MARK_T=m
548CONFIG_BRIDGE_EBT_REDIRECT=m
549CONFIG_BRIDGE_EBT_SNAT=m
550CONFIG_BRIDGE_EBT_LOG=m
551CONFIG_BRIDGE_EBT_ULOG=m
552CONFIG_IP_DCCP=m
553CONFIG_INET_DCCP_DIAG=m
554CONFIG_IP_DCCP_ACKVEC=y
555
556#
557# DCCP CCIDs Configuration (EXPERIMENTAL)
558#
559CONFIG_IP_DCCP_CCID2=m
560# CONFIG_IP_DCCP_CCID2_DEBUG is not set
561CONFIG_IP_DCCP_CCID3=m
562# CONFIG_IP_DCCP_CCID3_DEBUG is not set
563CONFIG_IP_DCCP_CCID3_RTO=100
564CONFIG_IP_DCCP_TFRC_LIB=m
565CONFIG_IP_SCTP=m
566# CONFIG_SCTP_DBG_MSG is not set
567# CONFIG_SCTP_DBG_OBJCNT is not set
568# CONFIG_SCTP_HMAC_NONE is not set
569# CONFIG_SCTP_HMAC_SHA1 is not set
570CONFIG_SCTP_HMAC_MD5=y
571CONFIG_TIPC=m
572CONFIG_TIPC_ADVANCED=y
573CONFIG_TIPC_ZONES=3
574CONFIG_TIPC_CLUSTERS=1
575CONFIG_TIPC_NODES=255
576CONFIG_TIPC_SLAVE_NODES=0
577CONFIG_TIPC_PORTS=8191
578CONFIG_TIPC_LOG=0
579# CONFIG_TIPC_DEBUG is not set
580CONFIG_ATM=m
581CONFIG_ATM_CLIP=m
582# CONFIG_ATM_CLIP_NO_ICMP is not set
583CONFIG_ATM_LANE=m
584CONFIG_ATM_MPOA=m
585CONFIG_ATM_BR2684=m
586# CONFIG_ATM_BR2684_IPFILTER is not set
587CONFIG_BRIDGE=m
588CONFIG_VLAN_8021Q=m
589# CONFIG_DECNET is not set
590CONFIG_LLC=m
591# CONFIG_LLC2 is not set
592# CONFIG_IPX is not set
593# CONFIG_ATALK is not set
594# CONFIG_X25 is not set
595# CONFIG_LAPB is not set
596# CONFIG_ECONET is not set
597# CONFIG_WAN_ROUTER is not set
598CONFIG_NET_SCHED=y
599
600#
601# Queueing/Scheduling
602#
603CONFIG_NET_SCH_CBQ=m
604CONFIG_NET_SCH_HTB=m
605CONFIG_NET_SCH_HFSC=m
606CONFIG_NET_SCH_ATM=m
607CONFIG_NET_SCH_PRIO=m
608CONFIG_NET_SCH_RR=m
609CONFIG_NET_SCH_RED=m
610CONFIG_NET_SCH_SFQ=m
611CONFIG_NET_SCH_TEQL=m
612CONFIG_NET_SCH_TBF=m
613CONFIG_NET_SCH_GRED=m
614CONFIG_NET_SCH_DSMARK=m
615CONFIG_NET_SCH_NETEM=m
616CONFIG_NET_SCH_INGRESS=m
617
618#
619# Classification
620#
621CONFIG_NET_CLS=y
622CONFIG_NET_CLS_BASIC=m
623CONFIG_NET_CLS_TCINDEX=m
624CONFIG_NET_CLS_ROUTE4=m
625CONFIG_NET_CLS_ROUTE=y
626CONFIG_NET_CLS_FW=m
627CONFIG_NET_CLS_U32=m
628CONFIG_CLS_U32_PERF=y
629CONFIG_CLS_U32_MARK=y
630CONFIG_NET_CLS_RSVP=m
631CONFIG_NET_CLS_RSVP6=m
632# CONFIG_NET_CLS_FLOW is not set
633CONFIG_NET_EMATCH=y
634CONFIG_NET_EMATCH_STACK=32
635CONFIG_NET_EMATCH_CMP=m
636CONFIG_NET_EMATCH_NBYTE=m
637CONFIG_NET_EMATCH_U32=m
638CONFIG_NET_EMATCH_META=m
639CONFIG_NET_EMATCH_TEXT=m
640CONFIG_NET_CLS_ACT=y
641CONFIG_NET_ACT_POLICE=m
642CONFIG_NET_ACT_GACT=m
643CONFIG_GACT_PROB=y
644CONFIG_NET_ACT_MIRRED=m
645CONFIG_NET_ACT_IPT=m
646CONFIG_NET_ACT_NAT=m
647CONFIG_NET_ACT_PEDIT=m
648CONFIG_NET_ACT_SIMP=m
649CONFIG_NET_CLS_IND=y
650CONFIG_NET_SCH_FIFO=y
651
652#
653# Network testing
654#
655CONFIG_NET_PKTGEN=m
656# CONFIG_HAMRADIO is not set
657# CONFIG_CAN is not set
658CONFIG_IRDA=m
659
660#
661# IrDA protocols
662#
663CONFIG_IRLAN=m
664CONFIG_IRNET=m
665CONFIG_IRCOMM=m
666# CONFIG_IRDA_ULTRA is not set
667
668#
669# IrDA options
670#
671CONFIG_IRDA_CACHE_LAST_LSAP=y
672CONFIG_IRDA_FAST_RR=y
673# CONFIG_IRDA_DEBUG is not set
674
675#
676# Infrared-port device drivers
677#
678
679#
680# SIR device drivers
681#
682CONFIG_IRTTY_SIR=m
683
684#
685# Dongle support
686#
687CONFIG_DONGLE=y
688CONFIG_ESI_DONGLE=m
689CONFIG_ACTISYS_DONGLE=m
690CONFIG_TEKRAM_DONGLE=m
691CONFIG_TOIM3232_DONGLE=m
692CONFIG_LITELINK_DONGLE=m
693CONFIG_MA600_DONGLE=m
694CONFIG_GIRBIL_DONGLE=m
695CONFIG_MCP2120_DONGLE=m
696CONFIG_OLD_BELKIN_DONGLE=m
697CONFIG_ACT200L_DONGLE=m
698CONFIG_KINGSUN_DONGLE=m
699CONFIG_KSDAZZLE_DONGLE=m
700CONFIG_KS959_DONGLE=m
701
702#
703# FIR device drivers
704#
705CONFIG_USB_IRDA=m
706CONFIG_SIGMATEL_FIR=m
707CONFIG_TOSHIBA_FIR=m
708CONFIG_VLSI_FIR=m
709CONFIG_MCS_FIR=m
710CONFIG_BT=m
711# CONFIG_BT_L2CAP is not set
712# CONFIG_BT_SCO is not set
713
714#
715# Bluetooth device drivers
716#
717CONFIG_BT_HCIUSB=m
718CONFIG_BT_HCIUSB_SCO=y
719CONFIG_BT_HCIUART=m
720CONFIG_BT_HCIUART_H4=y
721CONFIG_BT_HCIUART_BCSP=y
722CONFIG_BT_HCIUART_LL=y
723CONFIG_BT_HCIBCM203X=m
724CONFIG_BT_HCIBPA10X=m
725CONFIG_BT_HCIBFUSB=m
726CONFIG_BT_HCIVHCI=m
727# CONFIG_AF_RXRPC is not set
728CONFIG_FIB_RULES=y
729
730#
731# Wireless
732#
733CONFIG_CFG80211=m
734CONFIG_NL80211=y
735CONFIG_WIRELESS_EXT=y
736CONFIG_MAC80211=m
737
738#
739# Rate control algorithm selection
740#
741CONFIG_MAC80211_RC_DEFAULT_PID=y
742# CONFIG_MAC80211_RC_DEFAULT_SIMPLE is not set
743# CONFIG_MAC80211_RC_DEFAULT_NONE is not set
744
745#
746# Selecting 'y' for an algorithm will
747#
748
749#
750# build the algorithm into mac80211.
751#
752CONFIG_MAC80211_RC_DEFAULT="pid"
753CONFIG_MAC80211_RC_PID=y
754# CONFIG_MAC80211_RC_SIMPLE is not set
755CONFIG_MAC80211_LEDS=y
756# CONFIG_MAC80211_DEBUGFS is not set
757# CONFIG_MAC80211_DEBUG_PACKET_ALIGNMENT is not set
758# CONFIG_MAC80211_DEBUG is not set
759CONFIG_IEEE80211=m
760# CONFIG_IEEE80211_DEBUG is not set
761CONFIG_IEEE80211_CRYPT_WEP=m
762CONFIG_IEEE80211_CRYPT_CCMP=m
763CONFIG_IEEE80211_CRYPT_TKIP=m
764CONFIG_IEEE80211_SOFTMAC=m
765# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
766CONFIG_RFKILL=m
767CONFIG_RFKILL_INPUT=m
768CONFIG_RFKILL_LEDS=y
769CONFIG_NET_9P=m
770CONFIG_NET_9P_FD=m
771# CONFIG_NET_9P_DEBUG is not set
772
773#
774# Device Drivers
775#
776
777#
778# Generic Driver Options
779#
780CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
781CONFIG_STANDALONE=y
782CONFIG_PREVENT_FIRMWARE_BUILD=y
783CONFIG_FW_LOADER=m
784# CONFIG_SYS_HYPERVISOR is not set
785CONFIG_CONNECTOR=m
786CONFIG_MTD=y
787# CONFIG_MTD_DEBUG is not set
788CONFIG_MTD_CONCAT=y
789CONFIG_MTD_PARTITIONS=y
790# CONFIG_MTD_REDBOOT_PARTS is not set
791# CONFIG_MTD_CMDLINE_PARTS is not set
792
793#
794# User Modules And Translation Layers
795#
796CONFIG_MTD_CHAR=y
797CONFIG_MTD_BLKDEVS=y
798CONFIG_MTD_BLOCK=y
799# CONFIG_FTL is not set
800# CONFIG_NFTL is not set
801# CONFIG_INFTL is not set
802# CONFIG_RFD_FTL is not set
803# CONFIG_SSFDC is not set
804# CONFIG_MTD_OOPS is not set
805
806#
807# RAM/ROM/Flash chip drivers
808#
809CONFIG_MTD_CFI=y
810# CONFIG_MTD_JEDECPROBE is not set
811CONFIG_MTD_GEN_PROBE=y
812# CONFIG_MTD_CFI_ADV_OPTIONS is not set
813CONFIG_MTD_MAP_BANK_WIDTH_1=y
814CONFIG_MTD_MAP_BANK_WIDTH_2=y
815CONFIG_MTD_MAP_BANK_WIDTH_4=y
816# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
817# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
818# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
819CONFIG_MTD_CFI_I1=y
820CONFIG_MTD_CFI_I2=y
821# CONFIG_MTD_CFI_I4 is not set
822# CONFIG_MTD_CFI_I8 is not set
823CONFIG_MTD_CFI_INTELEXT=y
824CONFIG_MTD_CFI_AMDSTD=y
825CONFIG_MTD_CFI_STAA=y
826CONFIG_MTD_CFI_UTIL=y
827CONFIG_MTD_RAM=y
828CONFIG_MTD_ROM=y
829CONFIG_MTD_ABSENT=y
830
831#
832# Mapping drivers for chip access
833#
834# CONFIG_MTD_COMPLEX_MAPPINGS is not set
835CONFIG_MTD_PHYSMAP=y
836CONFIG_MTD_PHYSMAP_START=0x8000000
837CONFIG_MTD_PHYSMAP_LEN=0x0
838CONFIG_MTD_PHYSMAP_BANKWIDTH=2
839# CONFIG_MTD_INTEL_VR_NOR is not set
840# CONFIG_MTD_PLATRAM is not set
841
842#
843# Self-contained MTD device drivers
844#
845# CONFIG_MTD_PMC551 is not set
846# CONFIG_MTD_SLRAM is not set
847# CONFIG_MTD_PHRAM is not set
848# CONFIG_MTD_MTDRAM is not set
849# CONFIG_MTD_BLOCK2MTD is not set
850
851#
852# Disk-On-Chip Device Drivers
853#
854# CONFIG_MTD_DOC2000 is not set
855# CONFIG_MTD_DOC2001 is not set
856# CONFIG_MTD_DOC2001PLUS is not set
857# CONFIG_MTD_NAND is not set
858# CONFIG_MTD_ONENAND is not set
859
860#
861# UBI - Unsorted block images
862#
863# CONFIG_MTD_UBI is not set
864# CONFIG_PARPORT is not set
865CONFIG_BLK_DEV=y
866# CONFIG_BLK_CPQ_DA is not set
867# CONFIG_BLK_CPQ_CISS_DA is not set
868# CONFIG_BLK_DEV_DAC960 is not set
869# CONFIG_BLK_DEV_UMEM is not set
870# CONFIG_BLK_DEV_COW_COMMON is not set
871CONFIG_BLK_DEV_LOOP=m
872CONFIG_BLK_DEV_CRYPTOLOOP=m
873CONFIG_BLK_DEV_NBD=m
874# CONFIG_BLK_DEV_SX8 is not set
875# CONFIG_BLK_DEV_UB is not set
876CONFIG_BLK_DEV_RAM=y
877CONFIG_BLK_DEV_RAM_COUNT=16
878CONFIG_BLK_DEV_RAM_SIZE=16384
879# CONFIG_BLK_DEV_XIP is not set
880# CONFIG_CDROM_PKTCDVD is not set
881CONFIG_ATA_OVER_ETH=m
882CONFIG_MISC_DEVICES=y
883# CONFIG_PHANTOM is not set
884# CONFIG_EEPROM_93CX6 is not set
885# CONFIG_SGI_IOC4 is not set
886# CONFIG_TIFM_CORE is not set
887# CONFIG_ENCLOSURE_SERVICES is not set
888CONFIG_HAVE_IDE=y
889# CONFIG_IDE is not set
890
891#
892# SCSI device support
893#
894CONFIG_RAID_ATTRS=m
895CONFIG_SCSI=y
896CONFIG_SCSI_DMA=y
897CONFIG_SCSI_TGT=m
898# CONFIG_SCSI_NETLINK is not set
899CONFIG_SCSI_PROC_FS=y
900
901#
902# SCSI support type (disk, tape, CD-ROM)
903#
904CONFIG_BLK_DEV_SD=y
905CONFIG_CHR_DEV_ST=m
906CONFIG_CHR_DEV_OSST=m
907CONFIG_BLK_DEV_SR=m
908CONFIG_BLK_DEV_SR_VENDOR=y
909CONFIG_CHR_DEV_SG=m
910CONFIG_CHR_DEV_SCH=m
911
912#
913# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
914#
915CONFIG_SCSI_MULTI_LUN=y
916CONFIG_SCSI_CONSTANTS=y
917CONFIG_SCSI_LOGGING=y
918CONFIG_SCSI_SCAN_ASYNC=y
919CONFIG_SCSI_WAIT_SCAN=m
920
921#
922# SCSI Transports
923#
924# CONFIG_SCSI_SPI_ATTRS is not set
925# CONFIG_SCSI_FC_ATTRS is not set
926CONFIG_SCSI_ISCSI_ATTRS=m
927# CONFIG_SCSI_SAS_LIBSAS is not set
928# CONFIG_SCSI_SRP_ATTRS is not set
929CONFIG_SCSI_LOWLEVEL=y
930CONFIG_ISCSI_TCP=m
931# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
932# CONFIG_SCSI_3W_9XXX is not set
933# CONFIG_SCSI_ACARD is not set
934# CONFIG_SCSI_AACRAID is not set
935# CONFIG_SCSI_AIC7XXX is not set
936# CONFIG_SCSI_AIC7XXX_OLD is not set
937# CONFIG_SCSI_AIC79XX is not set
938# CONFIG_SCSI_AIC94XX is not set
939# CONFIG_SCSI_DPT_I2O is not set
940# CONFIG_SCSI_ADVANSYS is not set
941# CONFIG_SCSI_ARCMSR is not set
942# CONFIG_MEGARAID_NEWGEN is not set
943# CONFIG_MEGARAID_LEGACY is not set
944# CONFIG_MEGARAID_SAS is not set
945# CONFIG_SCSI_HPTIOP is not set
946# CONFIG_SCSI_DMX3191D is not set
947# CONFIG_SCSI_FUTURE_DOMAIN is not set
948# CONFIG_SCSI_IPS is not set
949# CONFIG_SCSI_INITIO is not set
950# CONFIG_SCSI_INIA100 is not set
951# CONFIG_SCSI_STEX is not set
952# CONFIG_SCSI_SYM53C8XX_2 is not set
953# CONFIG_SCSI_QLOGIC_1280 is not set
954# CONFIG_SCSI_QLA_FC is not set
955# CONFIG_SCSI_QLA_ISCSI is not set
956# CONFIG_SCSI_LPFC is not set
957# CONFIG_SCSI_DC395x is not set
958# CONFIG_SCSI_DC390T is not set
959# CONFIG_SCSI_NSP32 is not set
960# CONFIG_SCSI_DEBUG is not set
961# CONFIG_SCSI_SRP is not set
962# CONFIG_ATA is not set
963# CONFIG_MD is not set
964# CONFIG_FUSION is not set
965
966#
967# IEEE 1394 (FireWire) support
968#
969# CONFIG_FIREWIRE is not set
970# CONFIG_IEEE1394 is not set
971# CONFIG_I2O is not set
972CONFIG_NETDEVICES=y
973# CONFIG_NETDEVICES_MULTIQUEUE is not set
974# CONFIG_IFB is not set
975CONFIG_DUMMY=m
976# CONFIG_BONDING is not set
977# CONFIG_MACVLAN is not set
978CONFIG_EQUALIZER=m
979CONFIG_TUN=m
980CONFIG_VETH=m
981# CONFIG_ARCNET is not set
982CONFIG_PHYLIB=m
983
984#
985# MII PHY device drivers
986#
987CONFIG_MARVELL_PHY=m
988CONFIG_DAVICOM_PHY=m
989CONFIG_QSEMI_PHY=m
990CONFIG_LXT_PHY=m
991CONFIG_CICADA_PHY=m
992CONFIG_VITESSE_PHY=m
993CONFIG_SMSC_PHY=m
994CONFIG_BROADCOM_PHY=m
995CONFIG_ICPLUS_PHY=m
996# CONFIG_REALTEK_PHY is not set
997# CONFIG_FIXED_PHY is not set
998CONFIG_MDIO_BITBANG=m
999CONFIG_NET_ETHERNET=y
1000CONFIG_MII=y
1001# CONFIG_AX88796 is not set
1002# CONFIG_HAPPYMEAL is not set
1003# CONFIG_SUNGEM is not set
1004# CONFIG_CASSINI is not set
1005# CONFIG_NET_VENDOR_3COM is not set
1006# CONFIG_DM9000 is not set
1007# CONFIG_NET_TULIP is not set
1008# CONFIG_HP100 is not set
1009# CONFIG_IBM_NEW_EMAC_ZMII is not set
1010# CONFIG_IBM_NEW_EMAC_RGMII is not set
1011# CONFIG_IBM_NEW_EMAC_TAH is not set
1012# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
1013CONFIG_NET_PCI=y
1014# CONFIG_PCNET32 is not set
1015# CONFIG_AMD8111_ETH is not set
1016# CONFIG_ADAPTEC_STARFIRE is not set
1017CONFIG_B44=y
1018CONFIG_B44_PCI_AUTOSELECT=y
1019CONFIG_B44_PCICORE_AUTOSELECT=y
1020CONFIG_B44_PCI=y
1021# CONFIG_FORCEDETH is not set
1022# CONFIG_TC35815 is not set
1023# CONFIG_EEPRO100 is not set
1024# CONFIG_E100 is not set
1025# CONFIG_FEALNX is not set
1026# CONFIG_NATSEMI is not set
1027# CONFIG_NE2K_PCI is not set
1028# CONFIG_8139CP is not set
1029# CONFIG_8139TOO is not set
1030# CONFIG_R6040 is not set
1031# CONFIG_SIS900 is not set
1032# CONFIG_EPIC100 is not set
1033# CONFIG_SUNDANCE is not set
1034# CONFIG_TLAN is not set
1035# CONFIG_VIA_RHINE is not set
1036# CONFIG_SC92031 is not set
1037# CONFIG_NETDEV_1000 is not set
1038# CONFIG_NETDEV_10000 is not set
1039# CONFIG_TR is not set
1040
1041#
1042# Wireless LAN
1043#
1044# CONFIG_WLAN_PRE80211 is not set
1045CONFIG_WLAN_80211=y
1046# CONFIG_IPW2100 is not set
1047# CONFIG_IPW2200 is not set
1048# CONFIG_LIBERTAS is not set
1049# CONFIG_HERMES is not set
1050# CONFIG_ATMEL is not set
1051# CONFIG_PRISM54 is not set
1052# CONFIG_USB_ZD1201 is not set
1053# CONFIG_USB_NET_RNDIS_WLAN is not set
1054# CONFIG_RTL8180 is not set
1055# CONFIG_RTL8187 is not set
1056# CONFIG_ADM8211 is not set
1057# CONFIG_P54_COMMON is not set
1058CONFIG_ATH5K=m
1059# CONFIG_IWL4965 is not set
1060# CONFIG_IWL3945 is not set
1061# CONFIG_HOSTAP is not set
1062# CONFIG_BCM43XX is not set
1063# CONFIG_B43 is not set
1064# CONFIG_B43LEGACY is not set
1065CONFIG_ZD1211RW=m
1066# CONFIG_ZD1211RW_DEBUG is not set
1067# CONFIG_RT2X00 is not set
1068
1069#
1070# USB Network Adapters
1071#
1072CONFIG_USB_CATC=m
1073CONFIG_USB_KAWETH=m
1074CONFIG_USB_PEGASUS=m
1075CONFIG_USB_RTL8150=m
1076CONFIG_USB_USBNET=m
1077CONFIG_USB_NET_AX8817X=m
1078CONFIG_USB_NET_CDCETHER=m
1079CONFIG_USB_NET_DM9601=m
1080CONFIG_USB_NET_GL620A=m
1081CONFIG_USB_NET_NET1080=m
1082CONFIG_USB_NET_PLUSB=m
1083CONFIG_USB_NET_MCS7830=m
1084CONFIG_USB_NET_RNDIS_HOST=m
1085CONFIG_USB_NET_CDC_SUBSET=m
1086CONFIG_USB_ALI_M5632=y
1087CONFIG_USB_AN2720=y
1088CONFIG_USB_BELKIN=y
1089CONFIG_USB_ARMLINUX=y
1090CONFIG_USB_EPSON2888=y
1091CONFIG_USB_KC2190=y
1092CONFIG_USB_NET_ZAURUS=m
1093# CONFIG_WAN is not set
1094CONFIG_ATM_DRIVERS=y
1095CONFIG_ATM_DUMMY=m
1096CONFIG_ATM_TCP=m
1097# CONFIG_ATM_LANAI is not set
1098# CONFIG_ATM_ENI is not set
1099# CONFIG_ATM_FIRESTREAM is not set
1100# CONFIG_ATM_ZATM is not set
1101# CONFIG_ATM_NICSTAR is not set
1102# CONFIG_ATM_IDT77252 is not set
1103# CONFIG_ATM_AMBASSADOR is not set
1104# CONFIG_ATM_HORIZON is not set
1105# CONFIG_ATM_IA is not set
1106# CONFIG_ATM_FORE200E_MAYBE is not set
1107# CONFIG_ATM_HE is not set
1108# CONFIG_FDDI is not set
1109# CONFIG_HIPPI is not set
1110CONFIG_PPP=m
1111# CONFIG_PPP_MULTILINK is not set
1112# CONFIG_PPP_FILTER is not set
1113CONFIG_PPP_ASYNC=m
1114# CONFIG_PPP_SYNC_TTY is not set
1115CONFIG_PPP_DEFLATE=m
1116CONFIG_PPP_BSDCOMP=m
1117CONFIG_PPP_MPPE=m
1118CONFIG_PPPOE=m
1119CONFIG_PPPOATM=m
1120# CONFIG_PPPOL2TP is not set
1121CONFIG_SLIP=m
1122# CONFIG_SLIP_COMPRESSED is not set
1123CONFIG_SLHC=m
1124# CONFIG_SLIP_SMART is not set
1125# CONFIG_SLIP_MODE_SLIP6 is not set
1126# CONFIG_NET_FC is not set
1127CONFIG_NETCONSOLE=y
1128# CONFIG_NETCONSOLE_DYNAMIC is not set
1129CONFIG_NETPOLL=y
1130# CONFIG_NETPOLL_TRAP is not set
1131CONFIG_NET_POLL_CONTROLLER=y
1132# CONFIG_ISDN is not set
1133# CONFIG_PHONE is not set
1134
1135#
1136# Input device support
1137#
1138CONFIG_INPUT=y
1139# CONFIG_INPUT_FF_MEMLESS is not set
1140# CONFIG_INPUT_POLLDEV is not set
1141
1142#
1143# Userland interfaces
1144#
1145CONFIG_INPUT_MOUSEDEV=y
1146CONFIG_INPUT_MOUSEDEV_PSAUX=y
1147CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
1148CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
1149# CONFIG_INPUT_JOYDEV is not set
1150CONFIG_INPUT_EVDEV=m
1151# CONFIG_INPUT_EVBUG is not set
1152
1153#
1154# Input Device Drivers
1155#
1156# CONFIG_INPUT_KEYBOARD is not set
1157# CONFIG_INPUT_MOUSE is not set
1158# CONFIG_INPUT_JOYSTICK is not set
1159# CONFIG_INPUT_TABLET is not set
1160# CONFIG_INPUT_TOUCHSCREEN is not set
1161# CONFIG_INPUT_MISC is not set
1162
1163#
1164# Hardware I/O ports
1165#
1166# CONFIG_SERIO is not set
1167# CONFIG_GAMEPORT is not set
1168
1169#
1170# Character devices
1171#
1172# CONFIG_VT is not set
1173# CONFIG_SERIAL_NONSTANDARD is not set
1174# CONFIG_NOZOMI is not set
1175
1176#
1177# Serial drivers
1178#
1179CONFIG_SERIAL_8250=y
1180CONFIG_SERIAL_8250_CONSOLE=y
1181# CONFIG_SERIAL_8250_PCI is not set
1182CONFIG_SERIAL_8250_NR_UARTS=2
1183CONFIG_SERIAL_8250_RUNTIME_UARTS=2
1184# CONFIG_SERIAL_8250_EXTENDED is not set
1185
1186#
1187# Non-8250 serial port support
1188#
1189CONFIG_SERIAL_CORE=y
1190CONFIG_SERIAL_CORE_CONSOLE=y
1191# CONFIG_SERIAL_JSM is not set
1192CONFIG_UNIX98_PTYS=y
1193# CONFIG_LEGACY_PTYS is not set
1194# CONFIG_IPMI_HANDLER is not set
1195# CONFIG_HW_RANDOM is not set
1196# CONFIG_RTC is not set
1197# CONFIG_R3964 is not set
1198# CONFIG_APPLICOM is not set
1199# CONFIG_RAW_DRIVER is not set
1200# CONFIG_TCG_TPM is not set
1201CONFIG_DEVPORT=y
1202# CONFIG_I2C is not set
1203
1204#
1205# SPI support
1206#
1207# CONFIG_SPI is not set
1208# CONFIG_SPI_MASTER is not set
1209CONFIG_W1=m
1210CONFIG_W1_CON=y
1211
1212#
1213# 1-wire Bus Masters
1214#
1215CONFIG_W1_MASTER_MATROX=m
1216CONFIG_W1_MASTER_DS2490=m
1217# CONFIG_W1_MASTER_GPIO is not set
1218
1219#
1220# 1-wire Slaves
1221#
1222CONFIG_W1_SLAVE_THERM=m
1223CONFIG_W1_SLAVE_SMEM=m
1224CONFIG_W1_SLAVE_DS2433=m
1225# CONFIG_W1_SLAVE_DS2433_CRC is not set
1226CONFIG_W1_SLAVE_DS2760=m
1227# CONFIG_POWER_SUPPLY is not set
1228# CONFIG_HWMON is not set
1229CONFIG_THERMAL=y
1230# CONFIG_WATCHDOG is not set
1231
1232#
1233# Sonics Silicon Backplane
1234#
1235CONFIG_SSB_POSSIBLE=y
1236CONFIG_SSB=y
1237CONFIG_SSB_PCIHOST_POSSIBLE=y
1238CONFIG_SSB_PCIHOST=y
1239# CONFIG_SSB_SILENT is not set
1240# CONFIG_SSB_DEBUG is not set
1241CONFIG_SSB_SERIAL=y
1242CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
1243CONFIG_SSB_DRIVER_PCICORE=y
1244CONFIG_SSB_PCICORE_HOSTMODE=y
1245CONFIG_SSB_DRIVER_MIPS=y
1246CONFIG_SSB_DRIVER_EXTIF=y
1247
1248#
1249# Multifunction device drivers
1250#
1251# CONFIG_MFD_SM501 is not set
1252
1253#
1254# Multimedia devices
1255#
1256# CONFIG_VIDEO_DEV is not set
1257# CONFIG_DVB_CORE is not set
1258CONFIG_DAB=y
1259CONFIG_USB_DABUSB=m
1260
1261#
1262# Graphics support
1263#
1264# CONFIG_DRM is not set
1265# CONFIG_VGASTATE is not set
1266# CONFIG_VIDEO_OUTPUT_CONTROL is not set
1267# CONFIG_FB is not set
1268# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
1269
1270#
1271# Display device support
1272#
1273CONFIG_DISPLAY_SUPPORT=m
1274
1275#
1276# Display hardware drivers
1277#
1278
1279#
1280# Sound
1281#
1282CONFIG_SOUND=m
1283
1284#
1285# Advanced Linux Sound Architecture
1286#
1287CONFIG_SND=m
1288CONFIG_SND_TIMER=m
1289CONFIG_SND_PCM=m
1290CONFIG_SND_HWDEP=m
1291CONFIG_SND_RAWMIDI=m
1292CONFIG_SND_SEQUENCER=m
1293CONFIG_SND_SEQ_DUMMY=m
1294CONFIG_SND_OSSEMUL=y
1295CONFIG_SND_MIXER_OSS=m
1296CONFIG_SND_PCM_OSS=m
1297CONFIG_SND_PCM_OSS_PLUGINS=y
1298CONFIG_SND_SEQUENCER_OSS=y
1299# CONFIG_SND_DYNAMIC_MINORS is not set
1300CONFIG_SND_SUPPORT_OLD_API=y
1301CONFIG_SND_VERBOSE_PROCFS=y
1302# CONFIG_SND_VERBOSE_PRINTK is not set
1303# CONFIG_SND_DEBUG is not set
1304
1305#
1306# Generic devices
1307#
1308CONFIG_SND_DUMMY=m
1309CONFIG_SND_VIRMIDI=m
1310# CONFIG_SND_MTPAV is not set
1311# CONFIG_SND_SERIAL_U16550 is not set
1312# CONFIG_SND_MPU401 is not set
1313
1314#
1315# PCI devices
1316#
1317# CONFIG_SND_AD1889 is not set
1318# CONFIG_SND_ALS300 is not set
1319# CONFIG_SND_ALI5451 is not set
1320# CONFIG_SND_ATIIXP is not set
1321# CONFIG_SND_ATIIXP_MODEM is not set
1322# CONFIG_SND_AU8810 is not set
1323# CONFIG_SND_AU8820 is not set
1324# CONFIG_SND_AU8830 is not set
1325# CONFIG_SND_AZT3328 is not set
1326# CONFIG_SND_BT87X is not set
1327# CONFIG_SND_CA0106 is not set
1328# CONFIG_SND_CMIPCI is not set
1329# CONFIG_SND_OXYGEN is not set
1330# CONFIG_SND_CS4281 is not set
1331# CONFIG_SND_CS46XX is not set
1332# CONFIG_SND_DARLA20 is not set
1333# CONFIG_SND_GINA20 is not set
1334# CONFIG_SND_LAYLA20 is not set
1335# CONFIG_SND_DARLA24 is not set
1336# CONFIG_SND_GINA24 is not set
1337# CONFIG_SND_LAYLA24 is not set
1338# CONFIG_SND_MONA is not set
1339# CONFIG_SND_MIA is not set
1340# CONFIG_SND_ECHO3G is not set
1341# CONFIG_SND_INDIGO is not set
1342# CONFIG_SND_INDIGOIO is not set
1343# CONFIG_SND_INDIGODJ is not set
1344# CONFIG_SND_EMU10K1 is not set
1345# CONFIG_SND_EMU10K1X is not set
1346# CONFIG_SND_ENS1370 is not set
1347# CONFIG_SND_ENS1371 is not set
1348# CONFIG_SND_ES1938 is not set
1349# CONFIG_SND_ES1968 is not set
1350# CONFIG_SND_FM801 is not set
1351# CONFIG_SND_HDA_INTEL is not set
1352# CONFIG_SND_HDSP is not set
1353# CONFIG_SND_HDSPM is not set
1354# CONFIG_SND_HIFIER is not set
1355# CONFIG_SND_ICE1712 is not set
1356# CONFIG_SND_ICE1724 is not set
1357# CONFIG_SND_INTEL8X0 is not set
1358# CONFIG_SND_INTEL8X0M is not set
1359# CONFIG_SND_KORG1212 is not set
1360# CONFIG_SND_MAESTRO3 is not set
1361# CONFIG_SND_MIXART is not set
1362# CONFIG_SND_NM256 is not set
1363# CONFIG_SND_PCXHR is not set
1364# CONFIG_SND_RIPTIDE is not set
1365# CONFIG_SND_RME32 is not set
1366# CONFIG_SND_RME96 is not set
1367# CONFIG_SND_RME9652 is not set
1368# CONFIG_SND_SONICVIBES is not set
1369# CONFIG_SND_TRIDENT is not set
1370# CONFIG_SND_VIA82XX is not set
1371# CONFIG_SND_VIA82XX_MODEM is not set
1372# CONFIG_SND_VIRTUOSO is not set
1373# CONFIG_SND_VX222 is not set
1374# CONFIG_SND_YMFPCI is not set
1375
1376#
1377# ALSA MIPS devices
1378#
1379
1380#
1381# USB devices
1382#
1383CONFIG_SND_USB_AUDIO=m
1384# CONFIG_SND_USB_CAIAQ is not set
1385
1386#
1387# System on Chip audio support
1388#
1389# CONFIG_SND_SOC is not set
1390
1391#
1392# SoC Audio support for SuperH
1393#
1394
1395#
1396# ALSA SoC audio for Freescale SOCs
1397#
1398
1399#
1400# Open Sound System
1401#
1402# CONFIG_SOUND_PRIME is not set
1403CONFIG_HID_SUPPORT=y
1404CONFIG_HID=m
1405# CONFIG_HID_DEBUG is not set
1406# CONFIG_HIDRAW is not set
1407
1408#
1409# USB Input Devices
1410#
1411CONFIG_USB_HID=m
1412# CONFIG_USB_HIDINPUT_POWERBOOK is not set
1413# CONFIG_HID_FF is not set
1414CONFIG_USB_HIDDEV=y
1415
1416#
1417# USB HID Boot Protocol drivers
1418#
1419# CONFIG_USB_KBD is not set
1420# CONFIG_USB_MOUSE is not set
1421CONFIG_USB_SUPPORT=y
1422CONFIG_USB_ARCH_HAS_HCD=y
1423CONFIG_USB_ARCH_HAS_OHCI=y
1424CONFIG_USB_ARCH_HAS_EHCI=y
1425CONFIG_USB=y
1426# CONFIG_USB_DEBUG is not set
1427# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
1428
1429#
1430# Miscellaneous USB options
1431#
1432CONFIG_USB_DEVICEFS=y
1433# CONFIG_USB_DEVICE_CLASS is not set
1434# CONFIG_USB_DYNAMIC_MINORS is not set
1435# CONFIG_USB_OTG is not set
1436
1437#
1438# USB Host Controller Drivers
1439#
1440CONFIG_USB_EHCI_HCD=y
1441CONFIG_USB_EHCI_ROOT_HUB_TT=y
1442CONFIG_USB_EHCI_TT_NEWSCHED=y
1443# CONFIG_USB_ISP116X_HCD is not set
1444CONFIG_USB_OHCI_HCD=y
1445# CONFIG_USB_OHCI_HCD_SSB is not set
1446# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
1447# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
1448CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1449# CONFIG_USB_UHCI_HCD is not set
1450CONFIG_USB_U132_HCD=m
1451# CONFIG_USB_SL811_HCD is not set
1452CONFIG_USB_R8A66597_HCD=m
1453
1454#
1455# USB Device Class drivers
1456#
1457CONFIG_USB_ACM=m
1458CONFIG_USB_PRINTER=m
1459
1460#
1461# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
1462#
1463
1464#
1465# may also be needed; see USB_STORAGE Help for more information
1466#
1467CONFIG_USB_STORAGE=y
1468# CONFIG_USB_STORAGE_DEBUG is not set
1469CONFIG_USB_STORAGE_DATAFAB=y
1470CONFIG_USB_STORAGE_FREECOM=y
1471# CONFIG_USB_STORAGE_ISD200 is not set
1472CONFIG_USB_STORAGE_DPCM=y
1473CONFIG_USB_STORAGE_USBAT=y
1474CONFIG_USB_STORAGE_SDDR09=y
1475CONFIG_USB_STORAGE_SDDR55=y
1476CONFIG_USB_STORAGE_JUMPSHOT=y
1477CONFIG_USB_STORAGE_ALAUDA=y
1478CONFIG_USB_STORAGE_ONETOUCH=y
1479CONFIG_USB_STORAGE_KARMA=y
1480# CONFIG_USB_LIBUSUAL is not set
1481
1482#
1483# USB Imaging devices
1484#
1485CONFIG_USB_MDC800=m
1486CONFIG_USB_MICROTEK=m
1487# CONFIG_USB_MON is not set
1488
1489#
1490# USB port drivers
1491#
1492CONFIG_USB_SERIAL=m
1493CONFIG_USB_EZUSB=y
1494CONFIG_USB_SERIAL_GENERIC=y
1495CONFIG_USB_SERIAL_AIRCABLE=m
1496CONFIG_USB_SERIAL_AIRPRIME=m
1497CONFIG_USB_SERIAL_ARK3116=m
1498CONFIG_USB_SERIAL_BELKIN=m
1499CONFIG_USB_SERIAL_CH341=m
1500# CONFIG_USB_SERIAL_WHITEHEAT is not set
1501CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
1502CONFIG_USB_SERIAL_CP2101=m
1503CONFIG_USB_SERIAL_CYPRESS_M8=m
1504CONFIG_USB_SERIAL_EMPEG=m
1505CONFIG_USB_SERIAL_FTDI_SIO=m
1506CONFIG_USB_SERIAL_FUNSOFT=m
1507CONFIG_USB_SERIAL_VISOR=m
1508CONFIG_USB_SERIAL_IPAQ=m
1509CONFIG_USB_SERIAL_IR=m
1510# CONFIG_USB_SERIAL_EDGEPORT is not set
1511# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
1512CONFIG_USB_SERIAL_GARMIN=m
1513CONFIG_USB_SERIAL_IPW=m
1514# CONFIG_USB_SERIAL_IUU is not set
1515CONFIG_USB_SERIAL_KEYSPAN_PDA=m
1516# CONFIG_USB_SERIAL_KEYSPAN is not set
1517CONFIG_USB_SERIAL_KLSI=m
1518CONFIG_USB_SERIAL_KOBIL_SCT=m
1519CONFIG_USB_SERIAL_MCT_U232=m
1520CONFIG_USB_SERIAL_MOS7720=m
1521CONFIG_USB_SERIAL_MOS7840=m
1522CONFIG_USB_SERIAL_NAVMAN=m
1523CONFIG_USB_SERIAL_PL2303=m
1524CONFIG_USB_SERIAL_OTI6858=m
1525CONFIG_USB_SERIAL_HP4X=m
1526CONFIG_USB_SERIAL_SAFE=m
1527# CONFIG_USB_SERIAL_SAFE_PADDED is not set
1528CONFIG_USB_SERIAL_SIERRAWIRELESS=m
1529# CONFIG_USB_SERIAL_TI is not set
1530CONFIG_USB_SERIAL_CYBERJACK=m
1531CONFIG_USB_SERIAL_XIRCOM=m
1532CONFIG_USB_SERIAL_OPTION=m
1533CONFIG_USB_SERIAL_OMNINET=m
1534CONFIG_USB_SERIAL_DEBUG=m
1535
1536#
1537# USB Miscellaneous drivers
1538#
1539# CONFIG_USB_EMI62 is not set
1540# CONFIG_USB_EMI26 is not set
1541CONFIG_USB_ADUTUX=m
1542CONFIG_USB_AUERSWALD=m
1543CONFIG_USB_RIO500=m
1544CONFIG_USB_LEGOTOWER=m
1545CONFIG_USB_LCD=m
1546CONFIG_USB_BERRY_CHARGE=m
1547CONFIG_USB_LED=m
1548CONFIG_USB_CYPRESS_CY7C63=m
1549CONFIG_USB_CYTHERM=m
1550CONFIG_USB_PHIDGET=m
1551CONFIG_USB_PHIDGETKIT=m
1552CONFIG_USB_PHIDGETMOTORCONTROL=m
1553CONFIG_USB_PHIDGETSERVO=m
1554CONFIG_USB_IDMOUSE=m
1555CONFIG_USB_FTDI_ELAN=m
1556# CONFIG_USB_APPLEDISPLAY is not set
1557CONFIG_USB_SISUSBVGA=m
1558CONFIG_USB_LD=m
1559CONFIG_USB_TRANCEVIBRATOR=m
1560CONFIG_USB_IOWARRIOR=m
1561CONFIG_USB_TEST=m
1562CONFIG_USB_ATM=m
1563CONFIG_USB_SPEEDTOUCH=m
1564CONFIG_USB_CXACRU=m
1565CONFIG_USB_UEAGLEATM=m
1566CONFIG_USB_XUSBATM=m
1567CONFIG_USB_GADGET=m
1568# CONFIG_USB_GADGET_DEBUG_FILES is not set
1569# CONFIG_USB_GADGET_DEBUG_FS is not set
1570CONFIG_USB_GADGET_SELECTED=y
1571# CONFIG_USB_GADGET_AMD5536UDC is not set
1572# CONFIG_USB_GADGET_ATMEL_USBA is not set
1573# CONFIG_USB_GADGET_FSL_USB2 is not set
1574CONFIG_USB_GADGET_NET2280=y
1575CONFIG_USB_NET2280=m
1576# CONFIG_USB_GADGET_PXA2XX is not set
1577# CONFIG_USB_GADGET_M66592 is not set
1578# CONFIG_USB_GADGET_GOKU is not set
1579# CONFIG_USB_GADGET_LH7A40X is not set
1580# CONFIG_USB_GADGET_OMAP is not set
1581# CONFIG_USB_GADGET_S3C2410 is not set
1582# CONFIG_USB_GADGET_AT91 is not set
1583# CONFIG_USB_GADGET_DUMMY_HCD is not set
1584CONFIG_USB_GADGET_DUALSPEED=y
1585CONFIG_USB_ZERO=m
1586CONFIG_USB_ETH=m
1587CONFIG_USB_ETH_RNDIS=y
1588CONFIG_USB_GADGETFS=m
1589CONFIG_USB_FILE_STORAGE=m
1590# CONFIG_USB_FILE_STORAGE_TEST is not set
1591CONFIG_USB_G_SERIAL=m
1592CONFIG_USB_MIDI_GADGET=m
1593# CONFIG_USB_G_PRINTER is not set
1594# CONFIG_MMC is not set
1595# CONFIG_MEMSTICK is not set
1596CONFIG_NEW_LEDS=y
1597CONFIG_LEDS_CLASS=y
1598
1599#
1600# LED drivers
1601#
1602CONFIG_LEDS_GPIO=y
1603
1604#
1605# LED Triggers
1606#
1607CONFIG_LEDS_TRIGGERS=y
1608CONFIG_LEDS_TRIGGER_TIMER=y
1609CONFIG_LEDS_TRIGGER_HEARTBEAT=y
1610# CONFIG_INFINIBAND is not set
1611CONFIG_RTC_LIB=y
1612# CONFIG_RTC_CLASS is not set
1613
1614#
1615# Userspace I/O
1616#
1617# CONFIG_UIO is not set
1618
1619#
1620# File systems
1621#
1622CONFIG_EXT2_FS=y
1623CONFIG_EXT2_FS_XATTR=y
1624CONFIG_EXT2_FS_POSIX_ACL=y
1625CONFIG_EXT2_FS_SECURITY=y
1626# CONFIG_EXT2_FS_XIP is not set
1627CONFIG_EXT3_FS=y
1628CONFIG_EXT3_FS_XATTR=y
1629CONFIG_EXT3_FS_POSIX_ACL=y
1630CONFIG_EXT3_FS_SECURITY=y
1631# CONFIG_EXT4DEV_FS is not set
1632CONFIG_JBD=y
1633# CONFIG_JBD_DEBUG is not set
1634CONFIG_FS_MBCACHE=y
1635CONFIG_REISERFS_FS=m
1636# CONFIG_REISERFS_CHECK is not set
1637# CONFIG_REISERFS_PROC_INFO is not set
1638CONFIG_REISERFS_FS_XATTR=y
1639CONFIG_REISERFS_FS_POSIX_ACL=y
1640CONFIG_REISERFS_FS_SECURITY=y
1641CONFIG_JFS_FS=m
1642CONFIG_JFS_POSIX_ACL=y
1643CONFIG_JFS_SECURITY=y
1644# CONFIG_JFS_DEBUG is not set
1645# CONFIG_JFS_STATISTICS is not set
1646CONFIG_FS_POSIX_ACL=y
1647CONFIG_XFS_FS=m
1648CONFIG_XFS_QUOTA=y
1649CONFIG_XFS_SECURITY=y
1650CONFIG_XFS_POSIX_ACL=y
1651CONFIG_XFS_RT=y
1652CONFIG_GFS2_FS=m
1653CONFIG_GFS2_FS_LOCKING_NOLOCK=m
1654CONFIG_GFS2_FS_LOCKING_DLM=m
1655# CONFIG_OCFS2_FS is not set
1656CONFIG_DNOTIFY=y
1657CONFIG_INOTIFY=y
1658CONFIG_INOTIFY_USER=y
1659CONFIG_QUOTA=y
1660CONFIG_QUOTA_NETLINK_INTERFACE=y
1661CONFIG_PRINT_QUOTA_WARNING=y
1662CONFIG_QFMT_V1=m
1663CONFIG_QFMT_V2=m
1664CONFIG_QUOTACTL=y
1665CONFIG_AUTOFS_FS=m
1666CONFIG_AUTOFS4_FS=m
1667CONFIG_FUSE_FS=m
1668CONFIG_GENERIC_ACL=y
1669
1670#
1671# CD-ROM/DVD Filesystems
1672#
1673CONFIG_ISO9660_FS=m
1674CONFIG_JOLIET=y
1675CONFIG_ZISOFS=y
1676CONFIG_UDF_FS=m
1677CONFIG_UDF_NLS=y
1678
1679#
1680# DOS/FAT/NT Filesystems
1681#
1682CONFIG_FAT_FS=m
1683CONFIG_MSDOS_FS=m
1684CONFIG_VFAT_FS=m
1685CONFIG_FAT_DEFAULT_CODEPAGE=437
1686CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1687CONFIG_NTFS_FS=m
1688# CONFIG_NTFS_DEBUG is not set
1689CONFIG_NTFS_RW=y
1690
1691#
1692# Pseudo filesystems
1693#
1694CONFIG_PROC_FS=y
1695CONFIG_PROC_KCORE=y
1696CONFIG_PROC_SYSCTL=y
1697CONFIG_SYSFS=y
1698CONFIG_TMPFS=y
1699CONFIG_TMPFS_POSIX_ACL=y
1700# CONFIG_HUGETLB_PAGE is not set
1701CONFIG_CONFIGFS_FS=m
1702
1703#
1704# Miscellaneous filesystems
1705#
1706CONFIG_ADFS_FS=m
1707# CONFIG_ADFS_FS_RW is not set
1708CONFIG_AFFS_FS=m
1709CONFIG_HFS_FS=m
1710CONFIG_HFSPLUS_FS=m
1711CONFIG_BEFS_FS=m
1712# CONFIG_BEFS_DEBUG is not set
1713CONFIG_BFS_FS=m
1714CONFIG_EFS_FS=m
1715CONFIG_JFFS2_FS=m
1716CONFIG_JFFS2_FS_DEBUG=0
1717CONFIG_JFFS2_FS_WRITEBUFFER=y
1718# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
1719# CONFIG_JFFS2_SUMMARY is not set
1720CONFIG_JFFS2_FS_XATTR=y
1721CONFIG_JFFS2_FS_POSIX_ACL=y
1722CONFIG_JFFS2_FS_SECURITY=y
1723# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
1724CONFIG_JFFS2_ZLIB=y
1725# CONFIG_JFFS2_LZO is not set
1726CONFIG_JFFS2_RTIME=y
1727# CONFIG_JFFS2_RUBIN is not set
1728CONFIG_CRAMFS=m
1729CONFIG_VXFS_FS=m
1730CONFIG_MINIX_FS=m
1731CONFIG_HPFS_FS=m
1732CONFIG_QNX4FS_FS=m
1733CONFIG_ROMFS_FS=m
1734CONFIG_SYSV_FS=m
1735CONFIG_UFS_FS=m
1736# CONFIG_UFS_FS_WRITE is not set
1737# CONFIG_UFS_DEBUG is not set
1738CONFIG_NETWORK_FILESYSTEMS=y
1739CONFIG_NFS_FS=m
1740CONFIG_NFS_V3=y
1741CONFIG_NFS_V3_ACL=y
1742CONFIG_NFS_V4=y
1743# CONFIG_NFS_DIRECTIO is not set
1744CONFIG_NFSD=m
1745CONFIG_NFSD_V2_ACL=y
1746CONFIG_NFSD_V3=y
1747CONFIG_NFSD_V3_ACL=y
1748CONFIG_NFSD_V4=y
1749CONFIG_NFSD_TCP=y
1750CONFIG_LOCKD=m
1751CONFIG_LOCKD_V4=y
1752CONFIG_EXPORTFS=m
1753CONFIG_NFS_ACL_SUPPORT=m
1754CONFIG_NFS_COMMON=y
1755CONFIG_SUNRPC=m
1756CONFIG_SUNRPC_GSS=m
1757CONFIG_SUNRPC_BIND34=y
1758CONFIG_RPCSEC_GSS_KRB5=m
1759CONFIG_RPCSEC_GSS_SPKM3=m
1760# CONFIG_SMB_FS is not set
1761CONFIG_CIFS=m
1762# CONFIG_CIFS_STATS is not set
1763# CONFIG_CIFS_WEAK_PW_HASH is not set
1764CONFIG_CIFS_XATTR=y
1765CONFIG_CIFS_POSIX=y
1766# CONFIG_CIFS_DEBUG2 is not set
1767# CONFIG_CIFS_EXPERIMENTAL is not set
1768CONFIG_NCP_FS=m
1769# CONFIG_NCPFS_PACKET_SIGNING is not set
1770# CONFIG_NCPFS_IOCTL_LOCKING is not set
1771# CONFIG_NCPFS_STRONG is not set
1772CONFIG_NCPFS_NFS_NS=y
1773CONFIG_NCPFS_OS2_NS=y
1774# CONFIG_NCPFS_SMALLDOS is not set
1775CONFIG_NCPFS_NLS=y
1776CONFIG_NCPFS_EXTRAS=y
1777CONFIG_CODA_FS=m
1778# CONFIG_CODA_FS_OLD_API is not set
1779# CONFIG_AFS_FS is not set
1780CONFIG_9P_FS=m
1781
1782#
1783# Partition Types
1784#
1785CONFIG_PARTITION_ADVANCED=y
1786# CONFIG_ACORN_PARTITION is not set
1787# CONFIG_OSF_PARTITION is not set
1788# CONFIG_AMIGA_PARTITION is not set
1789# CONFIG_ATARI_PARTITION is not set
1790# CONFIG_MAC_PARTITION is not set
1791CONFIG_MSDOS_PARTITION=y
1792# CONFIG_BSD_DISKLABEL is not set
1793# CONFIG_MINIX_SUBPARTITION is not set
1794# CONFIG_SOLARIS_X86_PARTITION is not set
1795# CONFIG_UNIXWARE_DISKLABEL is not set
1796# CONFIG_LDM_PARTITION is not set
1797# CONFIG_SGI_PARTITION is not set
1798# CONFIG_ULTRIX_PARTITION is not set
1799# CONFIG_SUN_PARTITION is not set
1800CONFIG_KARMA_PARTITION=y
1801# CONFIG_EFI_PARTITION is not set
1802# CONFIG_SYSV68_PARTITION is not set
1803CONFIG_NLS=y
1804CONFIG_NLS_DEFAULT="iso8859-1"
1805CONFIG_NLS_CODEPAGE_437=m
1806CONFIG_NLS_CODEPAGE_737=m
1807CONFIG_NLS_CODEPAGE_775=m
1808CONFIG_NLS_CODEPAGE_850=m
1809CONFIG_NLS_CODEPAGE_852=m
1810CONFIG_NLS_CODEPAGE_855=m
1811CONFIG_NLS_CODEPAGE_857=m
1812CONFIG_NLS_CODEPAGE_860=m
1813CONFIG_NLS_CODEPAGE_861=m
1814CONFIG_NLS_CODEPAGE_862=m
1815CONFIG_NLS_CODEPAGE_863=m
1816CONFIG_NLS_CODEPAGE_864=m
1817CONFIG_NLS_CODEPAGE_865=m
1818CONFIG_NLS_CODEPAGE_866=m
1819CONFIG_NLS_CODEPAGE_869=m
1820CONFIG_NLS_CODEPAGE_936=m
1821CONFIG_NLS_CODEPAGE_950=m
1822CONFIG_NLS_CODEPAGE_932=m
1823CONFIG_NLS_CODEPAGE_949=m
1824CONFIG_NLS_CODEPAGE_874=m
1825CONFIG_NLS_ISO8859_8=m
1826CONFIG_NLS_CODEPAGE_1250=m
1827CONFIG_NLS_CODEPAGE_1251=m
1828CONFIG_NLS_ASCII=m
1829CONFIG_NLS_ISO8859_1=m
1830CONFIG_NLS_ISO8859_2=m
1831CONFIG_NLS_ISO8859_3=m
1832CONFIG_NLS_ISO8859_4=m
1833CONFIG_NLS_ISO8859_5=m
1834CONFIG_NLS_ISO8859_6=m
1835CONFIG_NLS_ISO8859_7=m
1836CONFIG_NLS_ISO8859_9=m
1837CONFIG_NLS_ISO8859_13=m
1838CONFIG_NLS_ISO8859_14=m
1839CONFIG_NLS_ISO8859_15=m
1840CONFIG_NLS_KOI8_R=m
1841CONFIG_NLS_KOI8_U=m
1842CONFIG_NLS_UTF8=m
1843CONFIG_DLM=m
1844CONFIG_DLM_DEBUG=y
1845
1846#
1847# Kernel hacking
1848#
1849CONFIG_TRACE_IRQFLAGS_SUPPORT=y
1850# CONFIG_PRINTK_TIME is not set
1851CONFIG_ENABLE_WARN_DEPRECATED=y
1852CONFIG_ENABLE_MUST_CHECK=y
1853# CONFIG_MAGIC_SYSRQ is not set
1854# CONFIG_UNUSED_SYMBOLS is not set
1855CONFIG_DEBUG_FS=y
1856# CONFIG_HEADERS_CHECK is not set
1857# CONFIG_DEBUG_KERNEL is not set
1858# CONFIG_SAMPLES is not set
1859CONFIG_CMDLINE=""
1860
1861#
1862# Security options
1863#
1864# CONFIG_KEYS is not set
1865# CONFIG_SECURITY is not set
1866# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1867CONFIG_CRYPTO=y
1868CONFIG_CRYPTO_ALGAPI=y
1869CONFIG_CRYPTO_AEAD=m
1870CONFIG_CRYPTO_BLKCIPHER=m
1871# CONFIG_CRYPTO_SEQIV is not set
1872CONFIG_CRYPTO_HASH=y
1873CONFIG_CRYPTO_MANAGER=y
1874CONFIG_CRYPTO_HMAC=y
1875CONFIG_CRYPTO_XCBC=m
1876CONFIG_CRYPTO_NULL=m
1877CONFIG_CRYPTO_MD4=m
1878CONFIG_CRYPTO_MD5=y
1879CONFIG_CRYPTO_SHA1=m
1880CONFIG_CRYPTO_SHA256=m
1881CONFIG_CRYPTO_SHA512=m
1882CONFIG_CRYPTO_WP512=m
1883CONFIG_CRYPTO_TGR192=m
1884CONFIG_CRYPTO_GF128MUL=m
1885CONFIG_CRYPTO_ECB=m
1886CONFIG_CRYPTO_CBC=m
1887CONFIG_CRYPTO_PCBC=m
1888CONFIG_CRYPTO_LRW=m
1889CONFIG_CRYPTO_XTS=m
1890# CONFIG_CRYPTO_CTR is not set
1891# CONFIG_CRYPTO_GCM is not set
1892# CONFIG_CRYPTO_CCM is not set
1893# CONFIG_CRYPTO_CRYPTD is not set
1894CONFIG_CRYPTO_DES=m
1895CONFIG_CRYPTO_FCRYPT=m
1896CONFIG_CRYPTO_BLOWFISH=m
1897CONFIG_CRYPTO_TWOFISH=m
1898CONFIG_CRYPTO_TWOFISH_COMMON=m
1899CONFIG_CRYPTO_SERPENT=m
1900CONFIG_CRYPTO_AES=m
1901CONFIG_CRYPTO_CAST5=m
1902CONFIG_CRYPTO_CAST6=m
1903CONFIG_CRYPTO_TEA=m
1904CONFIG_CRYPTO_ARC4=m
1905CONFIG_CRYPTO_KHAZAD=m
1906CONFIG_CRYPTO_ANUBIS=m
1907CONFIG_CRYPTO_SEED=m
1908# CONFIG_CRYPTO_SALSA20 is not set
1909CONFIG_CRYPTO_DEFLATE=m
1910CONFIG_CRYPTO_MICHAEL_MIC=m
1911CONFIG_CRYPTO_CRC32C=m
1912CONFIG_CRYPTO_CAMELLIA=m
1913CONFIG_CRYPTO_TEST=m
1914CONFIG_CRYPTO_AUTHENC=m
1915# CONFIG_CRYPTO_LZO is not set
1916CONFIG_CRYPTO_HW=y
1917# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1918
1919#
1920# Library routines
1921#
1922CONFIG_BITREVERSE=y
1923CONFIG_CRC_CCITT=m
1924CONFIG_CRC16=m
1925CONFIG_CRC_ITU_T=m
1926CONFIG_CRC32=y
1927CONFIG_CRC7=m
1928CONFIG_LIBCRC32C=m
1929CONFIG_AUDIT_GENERIC=y
1930CONFIG_ZLIB_INFLATE=m
1931CONFIG_ZLIB_DEFLATE=m
1932CONFIG_TEXTSEARCH=y
1933CONFIG_TEXTSEARCH_KMP=m
1934CONFIG_TEXTSEARCH_BM=m
1935CONFIG_TEXTSEARCH_FSM=m
1936CONFIG_PLIST=y
1937CONFIG_HAS_IOMEM=y
1938CONFIG_HAS_IOPORT=y
1939CONFIG_HAS_DMA=y
diff --git a/arch/mips/configs/ip28_defconfig b/arch/mips/configs/ip28_defconfig
new file mode 100644
index 000000000000..ec188be9a67a
--- /dev/null
+++ b/arch/mips/configs/ip28_defconfig
@@ -0,0 +1,891 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.25-rc1
4# Mon Feb 11 15:58:54 2008
5#
6CONFIG_MIPS=y
7
8#
9# Machine selection
10#
11# CONFIG_MACH_ALCHEMY is not set
12# CONFIG_BASLER_EXCITE is not set
13# CONFIG_BCM47XX is not set
14# CONFIG_MIPS_COBALT is not set
15# CONFIG_MACH_DECSTATION is not set
16# CONFIG_MACH_JAZZ is not set
17# CONFIG_LASAT is not set
18# CONFIG_LEMOTE_FULONG is not set
19# CONFIG_MIPS_ATLAS is not set
20# CONFIG_MIPS_MALTA is not set
21# CONFIG_MIPS_SEAD is not set
22# CONFIG_MIPS_SIM is not set
23# CONFIG_MARKEINS is not set
24# CONFIG_MACH_VR41XX is not set
25# CONFIG_PNX8550_JBS is not set
26# CONFIG_PNX8550_STB810 is not set
27# CONFIG_PMC_MSP is not set
28# CONFIG_PMC_YOSEMITE is not set
29# CONFIG_SGI_IP22 is not set
30# CONFIG_SGI_IP27 is not set
31CONFIG_SGI_IP28=y
32# CONFIG_SGI_IP32 is not set
33# CONFIG_SIBYTE_CRHINE is not set
34# CONFIG_SIBYTE_CARMEL is not set
35# CONFIG_SIBYTE_CRHONE is not set
36# CONFIG_SIBYTE_RHONE is not set
37# CONFIG_SIBYTE_SWARM is not set
38# CONFIG_SIBYTE_LITTLESUR is not set
39# CONFIG_SIBYTE_SENTOSA is not set
40# CONFIG_SIBYTE_BIGSUR is not set
41# CONFIG_SNI_RM is not set
42# CONFIG_TOSHIBA_JMR3927 is not set
43# CONFIG_TOSHIBA_RBTX4927 is not set
44# CONFIG_TOSHIBA_RBTX4938 is not set
45# CONFIG_WR_PPMC is not set
46CONFIG_RWSEM_GENERIC_SPINLOCK=y
47# CONFIG_ARCH_HAS_ILOG2_U32 is not set
48# CONFIG_ARCH_HAS_ILOG2_U64 is not set
49CONFIG_ARCH_SUPPORTS_OPROFILE=y
50CONFIG_GENERIC_FIND_NEXT_BIT=y
51CONFIG_GENERIC_HWEIGHT=y
52CONFIG_GENERIC_CALIBRATE_DELAY=y
53CONFIG_GENERIC_CLOCKEVENTS=y
54CONFIG_GENERIC_TIME=y
55CONFIG_GENERIC_CMOS_UPDATE=y
56CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
57# CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ is not set
58CONFIG_ARC=y
59CONFIG_CEVT_R4K=y
60CONFIG_CSRC_R4K=y
61CONFIG_DMA_NONCOHERENT=y
62CONFIG_DMA_NEED_PCI_MAP_STATE=y
63CONFIG_EARLY_PRINTK=y
64CONFIG_SYS_HAS_EARLY_PRINTK=y
65# CONFIG_HOTPLUG_CPU is not set
66CONFIG_I8259=y
67# CONFIG_NO_IOPORT is not set
68CONFIG_GENERIC_ISA_DMA=y
69CONFIG_GENERIC_ISA_DMA_SUPPORT_BROKEN=y
70CONFIG_CPU_BIG_ENDIAN=y
71# CONFIG_CPU_LITTLE_ENDIAN is not set
72CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y
73CONFIG_IRQ_CPU=y
74CONFIG_SWAP_IO_SPACE=y
75CONFIG_SGI_HAS_DS1286=y
76CONFIG_SGI_HAS_INDYDOG=y
77CONFIG_SGI_HAS_SEEQ=y
78CONFIG_SGI_HAS_WD93=y
79CONFIG_SGI_HAS_ZILOG=y
80CONFIG_SGI_HAS_I8042=y
81CONFIG_DEFAULT_SGI_PARTITION=y
82CONFIG_MIPS_L1_CACHE_SHIFT=7
83CONFIG_ARC_CONSOLE=y
84CONFIG_ARC_PROMLIB=y
85CONFIG_ARC64=y
86CONFIG_BOOT_ELF64=y
87
88#
89# CPU selection
90#
91# CONFIG_CPU_LOONGSON2 is not set
92# CONFIG_CPU_MIPS32_R1 is not set
93# CONFIG_CPU_MIPS32_R2 is not set
94# CONFIG_CPU_MIPS64_R1 is not set
95# CONFIG_CPU_MIPS64_R2 is not set
96# CONFIG_CPU_R3000 is not set
97# CONFIG_CPU_TX39XX is not set
98# CONFIG_CPU_VR41XX is not set
99# CONFIG_CPU_R4300 is not set
100# CONFIG_CPU_R4X00 is not set
101# CONFIG_CPU_TX49XX is not set
102# CONFIG_CPU_R5000 is not set
103# CONFIG_CPU_R5432 is not set
104# CONFIG_CPU_R6000 is not set
105# CONFIG_CPU_NEVADA is not set
106# CONFIG_CPU_R8000 is not set
107CONFIG_CPU_R10000=y
108# CONFIG_CPU_RM7000 is not set
109# CONFIG_CPU_RM9000 is not set
110# CONFIG_CPU_SB1 is not set
111CONFIG_SYS_HAS_CPU_R10000=y
112CONFIG_SYS_SUPPORTS_64BIT_KERNEL=y
113CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
114CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y
115
116#
117# Kernel type
118#
119# CONFIG_32BIT is not set
120CONFIG_64BIT=y
121CONFIG_PAGE_SIZE_4KB=y
122# CONFIG_PAGE_SIZE_8KB is not set
123# CONFIG_PAGE_SIZE_16KB is not set
124# CONFIG_PAGE_SIZE_64KB is not set
125CONFIG_CPU_HAS_PREFETCH=y
126CONFIG_MIPS_MT_DISABLED=y
127# CONFIG_MIPS_MT_SMP is not set
128# CONFIG_MIPS_MT_SMTC is not set
129CONFIG_CPU_HAS_LLSC=y
130CONFIG_CPU_HAS_SYNC=y
131CONFIG_GENERIC_HARDIRQS=y
132CONFIG_GENERIC_IRQ_PROBE=y
133CONFIG_CPU_SUPPORTS_HIGHMEM=y
134CONFIG_ARCH_FLATMEM_ENABLE=y
135CONFIG_ARCH_POPULATES_NODE_MAP=y
136CONFIG_SELECT_MEMORY_MODEL=y
137CONFIG_FLATMEM_MANUAL=y
138# CONFIG_DISCONTIGMEM_MANUAL is not set
139# CONFIG_SPARSEMEM_MANUAL is not set
140CONFIG_FLATMEM=y
141CONFIG_FLAT_NODE_MEM_MAP=y
142# CONFIG_SPARSEMEM_STATIC is not set
143# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
144CONFIG_SPLIT_PTLOCK_CPUS=4
145CONFIG_RESOURCES_64BIT=y
146CONFIG_ZONE_DMA_FLAG=0
147CONFIG_VIRT_TO_BUS=y
148# CONFIG_TICK_ONESHOT is not set
149# CONFIG_NO_HZ is not set
150# CONFIG_HIGH_RES_TIMERS is not set
151CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
152# CONFIG_HZ_48 is not set
153# CONFIG_HZ_100 is not set
154# CONFIG_HZ_128 is not set
155CONFIG_HZ_250=y
156# CONFIG_HZ_256 is not set
157# CONFIG_HZ_1000 is not set
158# CONFIG_HZ_1024 is not set
159CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
160CONFIG_HZ=250
161# CONFIG_PREEMPT_NONE is not set
162CONFIG_PREEMPT_VOLUNTARY=y
163# CONFIG_PREEMPT is not set
164# CONFIG_RCU_TRACE is not set
165# CONFIG_MIPS_INSANE_LARGE is not set
166# CONFIG_KEXEC is not set
167CONFIG_SECCOMP=y
168CONFIG_LOCKDEP_SUPPORT=y
169CONFIG_STACKTRACE_SUPPORT=y
170CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
171
172#
173# General setup
174#
175CONFIG_EXPERIMENTAL=y
176CONFIG_BROKEN_ON_SMP=y
177CONFIG_INIT_ENV_ARG_LIMIT=32
178CONFIG_LOCALVERSION=""
179CONFIG_LOCALVERSION_AUTO=y
180CONFIG_SWAP=y
181CONFIG_SYSVIPC=y
182CONFIG_SYSVIPC_SYSCTL=y
183# CONFIG_POSIX_MQUEUE is not set
184# CONFIG_BSD_PROCESS_ACCT is not set
185# CONFIG_TASKSTATS is not set
186# CONFIG_AUDIT is not set
187CONFIG_IKCONFIG=y
188CONFIG_IKCONFIG_PROC=y
189CONFIG_LOG_BUF_SHIFT=14
190# CONFIG_CGROUPS is not set
191CONFIG_FAIR_GROUP_SCHED=y
192CONFIG_FAIR_USER_SCHED=y
193# CONFIG_FAIR_CGROUP_SCHED is not set
194CONFIG_SYSFS_DEPRECATED=y
195CONFIG_RELAY=y
196# CONFIG_NAMESPACES is not set
197# CONFIG_BLK_DEV_INITRD is not set
198# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
199CONFIG_SYSCTL=y
200CONFIG_EMBEDDED=y
201CONFIG_SYSCTL_SYSCALL=y
202CONFIG_KALLSYMS=y
203# CONFIG_KALLSYMS_EXTRA_PASS is not set
204# CONFIG_HOTPLUG is not set
205CONFIG_PRINTK=y
206CONFIG_BUG=y
207CONFIG_ELF_CORE=y
208CONFIG_COMPAT_BRK=y
209CONFIG_BASE_FULL=y
210CONFIG_FUTEX=y
211CONFIG_ANON_INODES=y
212CONFIG_EPOLL=y
213CONFIG_SIGNALFD=y
214CONFIG_TIMERFD=y
215CONFIG_EVENTFD=y
216CONFIG_SHMEM=y
217CONFIG_VM_EVENT_COUNTERS=y
218CONFIG_SLAB=y
219# CONFIG_SLUB is not set
220# CONFIG_SLOB is not set
221# CONFIG_PROFILING is not set
222# CONFIG_MARKERS is not set
223CONFIG_HAVE_OPROFILE=y
224# CONFIG_HAVE_KPROBES is not set
225# CONFIG_PROC_PAGE_MONITOR is not set
226CONFIG_SLABINFO=y
227CONFIG_RT_MUTEXES=y
228# CONFIG_TINY_SHMEM is not set
229CONFIG_BASE_SMALL=0
230CONFIG_MODULES=y
231CONFIG_MODULE_UNLOAD=y
232# CONFIG_MODULE_FORCE_UNLOAD is not set
233CONFIG_MODVERSIONS=y
234CONFIG_MODULE_SRCVERSION_ALL=y
235CONFIG_KMOD=y
236CONFIG_BLOCK=y
237# CONFIG_BLK_DEV_IO_TRACE is not set
238# CONFIG_BLK_DEV_BSG is not set
239CONFIG_BLOCK_COMPAT=y
240
241#
242# IO Schedulers
243#
244CONFIG_IOSCHED_NOOP=y
245CONFIG_IOSCHED_AS=y
246CONFIG_IOSCHED_DEADLINE=y
247CONFIG_IOSCHED_CFQ=y
248CONFIG_DEFAULT_AS=y
249# CONFIG_DEFAULT_DEADLINE is not set
250# CONFIG_DEFAULT_CFQ is not set
251# CONFIG_DEFAULT_NOOP is not set
252CONFIG_DEFAULT_IOSCHED="anticipatory"
253CONFIG_CLASSIC_RCU=y
254# CONFIG_PREEMPT_RCU is not set
255
256#
257# Bus options (PCI, PCMCIA, EISA, ISA, TC)
258#
259CONFIG_HW_HAS_EISA=y
260# CONFIG_ARCH_SUPPORTS_MSI is not set
261CONFIG_ISA=y
262CONFIG_EISA=y
263CONFIG_EISA_NAMES=y
264CONFIG_MMU=y
265CONFIG_I8253=y
266
267#
268# Executable file formats
269#
270CONFIG_BINFMT_ELF=y
271# CONFIG_BINFMT_MISC is not set
272CONFIG_MIPS32_COMPAT=y
273CONFIG_COMPAT=y
274CONFIG_SYSVIPC_COMPAT=y
275CONFIG_MIPS32_O32=y
276CONFIG_MIPS32_N32=y
277CONFIG_BINFMT_ELF32=y
278
279#
280# Power management options
281#
282CONFIG_ARCH_SUSPEND_POSSIBLE=y
283CONFIG_PM=y
284# CONFIG_PM_LEGACY is not set
285# CONFIG_PM_DEBUG is not set
286# CONFIG_SUSPEND is not set
287
288#
289# Networking
290#
291CONFIG_NET=y
292
293#
294# Networking options
295#
296CONFIG_PACKET=y
297CONFIG_PACKET_MMAP=y
298CONFIG_UNIX=y
299CONFIG_XFRM=y
300# CONFIG_XFRM_USER is not set
301# CONFIG_XFRM_SUB_POLICY is not set
302CONFIG_XFRM_MIGRATE=y
303# CONFIG_XFRM_STATISTICS is not set
304CONFIG_NET_KEY=y
305CONFIG_NET_KEY_MIGRATE=y
306CONFIG_INET=y
307CONFIG_IP_MULTICAST=y
308# CONFIG_IP_ADVANCED_ROUTER is not set
309CONFIG_IP_FIB_HASH=y
310CONFIG_IP_PNP=y
311CONFIG_IP_PNP_DHCP=y
312CONFIG_IP_PNP_BOOTP=y
313# CONFIG_IP_PNP_RARP is not set
314# CONFIG_NET_IPIP is not set
315# CONFIG_NET_IPGRE is not set
316# CONFIG_IP_MROUTE is not set
317# CONFIG_ARPD is not set
318# CONFIG_SYN_COOKIES is not set
319# CONFIG_INET_AH is not set
320# CONFIG_INET_ESP is not set
321# CONFIG_INET_IPCOMP is not set
322# CONFIG_INET_XFRM_TUNNEL is not set
323# CONFIG_INET_TUNNEL is not set
324# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
325# CONFIG_INET_XFRM_MODE_TUNNEL is not set
326# CONFIG_INET_XFRM_MODE_BEET is not set
327# CONFIG_INET_LRO is not set
328CONFIG_INET_DIAG=y
329CONFIG_INET_TCP_DIAG=y
330# CONFIG_TCP_CONG_ADVANCED is not set
331CONFIG_TCP_CONG_CUBIC=y
332CONFIG_DEFAULT_TCP_CONG="cubic"
333CONFIG_TCP_MD5SIG=y
334# CONFIG_IPV6 is not set
335# CONFIG_INET6_XFRM_TUNNEL is not set
336# CONFIG_INET6_TUNNEL is not set
337# CONFIG_NETWORK_SECMARK is not set
338# CONFIG_NETFILTER is not set
339# CONFIG_IP_DCCP is not set
340# CONFIG_IP_SCTP is not set
341# CONFIG_TIPC is not set
342# CONFIG_ATM is not set
343# CONFIG_BRIDGE is not set
344# CONFIG_VLAN_8021Q is not set
345# CONFIG_DECNET is not set
346# CONFIG_LLC2 is not set
347# CONFIG_IPX is not set
348# CONFIG_ATALK is not set
349# CONFIG_X25 is not set
350# CONFIG_LAPB is not set
351# CONFIG_ECONET is not set
352# CONFIG_WAN_ROUTER is not set
353# CONFIG_NET_SCHED is not set
354
355#
356# Network testing
357#
358# CONFIG_NET_PKTGEN is not set
359# CONFIG_HAMRADIO is not set
360# CONFIG_CAN is not set
361# CONFIG_IRDA is not set
362# CONFIG_BT is not set
363# CONFIG_AF_RXRPC is not set
364
365#
366# Wireless
367#
368# CONFIG_CFG80211 is not set
369# CONFIG_WIRELESS_EXT is not set
370# CONFIG_MAC80211 is not set
371# CONFIG_IEEE80211 is not set
372# CONFIG_RFKILL is not set
373# CONFIG_NET_9P is not set
374
375#
376# Device Drivers
377#
378
379#
380# Generic Driver Options
381#
382CONFIG_STANDALONE=y
383CONFIG_PREVENT_FIRMWARE_BUILD=y
384# CONFIG_SYS_HYPERVISOR is not set
385# CONFIG_CONNECTOR is not set
386# CONFIG_MTD is not set
387# CONFIG_PARPORT is not set
388# CONFIG_PNP is not set
389CONFIG_BLK_DEV=y
390# CONFIG_BLK_DEV_COW_COMMON is not set
391# CONFIG_BLK_DEV_LOOP is not set
392# CONFIG_BLK_DEV_NBD is not set
393# CONFIG_BLK_DEV_RAM is not set
394# CONFIG_CDROM_PKTCDVD is not set
395# CONFIG_ATA_OVER_ETH is not set
396# CONFIG_MISC_DEVICES is not set
397CONFIG_HAVE_IDE=y
398# CONFIG_IDE is not set
399
400#
401# SCSI device support
402#
403# CONFIG_RAID_ATTRS is not set
404CONFIG_SCSI=y
405CONFIG_SCSI_DMA=y
406# CONFIG_SCSI_TGT is not set
407# CONFIG_SCSI_NETLINK is not set
408CONFIG_SCSI_PROC_FS=y
409
410#
411# SCSI support type (disk, tape, CD-ROM)
412#
413CONFIG_BLK_DEV_SD=y
414# CONFIG_CHR_DEV_ST is not set
415# CONFIG_CHR_DEV_OSST is not set
416CONFIG_BLK_DEV_SR=y
417# CONFIG_BLK_DEV_SR_VENDOR is not set
418# CONFIG_CHR_DEV_SG is not set
419# CONFIG_CHR_DEV_SCH is not set
420
421#
422# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
423#
424# CONFIG_SCSI_MULTI_LUN is not set
425CONFIG_SCSI_CONSTANTS=y
426# CONFIG_SCSI_LOGGING is not set
427# CONFIG_SCSI_SCAN_ASYNC is not set
428CONFIG_SCSI_WAIT_SCAN=m
429
430#
431# SCSI Transports
432#
433# CONFIG_SCSI_SPI_ATTRS is not set
434# CONFIG_SCSI_FC_ATTRS is not set
435# CONFIG_SCSI_ISCSI_ATTRS is not set
436# CONFIG_SCSI_SAS_LIBSAS is not set
437# CONFIG_SCSI_SRP_ATTRS is not set
438CONFIG_SCSI_LOWLEVEL=y
439# CONFIG_ISCSI_TCP is not set
440CONFIG_SGIWD93_SCSI=y
441# CONFIG_SCSI_AHA1740 is not set
442# CONFIG_SCSI_AIC7XXX is not set
443# CONFIG_SCSI_AIC7XXX_OLD is not set
444# CONFIG_SCSI_ADVANSYS is not set
445# CONFIG_SCSI_IN2000 is not set
446# CONFIG_SCSI_DTC3280 is not set
447# CONFIG_SCSI_FUTURE_DOMAIN is not set
448# CONFIG_SCSI_GENERIC_NCR5380 is not set
449# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set
450# CONFIG_SCSI_NCR53C406A is not set
451# CONFIG_SCSI_PAS16 is not set
452# CONFIG_SCSI_QLOGIC_FAS is not set
453# CONFIG_SCSI_SIM710 is not set
454# CONFIG_SCSI_SYM53C416 is not set
455# CONFIG_SCSI_T128 is not set
456# CONFIG_SCSI_DEBUG is not set
457# CONFIG_ATA is not set
458# CONFIG_MD is not set
459CONFIG_NETDEVICES=y
460# CONFIG_NETDEVICES_MULTIQUEUE is not set
461CONFIG_DUMMY=m
462# CONFIG_BONDING is not set
463# CONFIG_MACVLAN is not set
464# CONFIG_EQUALIZER is not set
465# CONFIG_TUN is not set
466# CONFIG_VETH is not set
467# CONFIG_ARCNET is not set
468# CONFIG_PHYLIB is not set
469CONFIG_NET_ETHERNET=y
470# CONFIG_MII is not set
471# CONFIG_AX88796 is not set
472# CONFIG_NET_VENDOR_3COM is not set
473# CONFIG_NET_VENDOR_SMC is not set
474# CONFIG_DM9000 is not set
475# CONFIG_NET_VENDOR_RACAL is not set
476# CONFIG_NET_TULIP is not set
477# CONFIG_AT1700 is not set
478# CONFIG_DEPCA is not set
479# CONFIG_HP100 is not set
480# CONFIG_NET_ISA is not set
481# CONFIG_IBM_NEW_EMAC_ZMII is not set
482# CONFIG_IBM_NEW_EMAC_RGMII is not set
483# CONFIG_IBM_NEW_EMAC_TAH is not set
484# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
485# CONFIG_NET_PCI is not set
486# CONFIG_B44 is not set
487CONFIG_SGISEEQ=y
488# CONFIG_NETDEV_1000 is not set
489# CONFIG_NETDEV_10000 is not set
490# CONFIG_TR is not set
491
492#
493# Wireless LAN
494#
495# CONFIG_WLAN_PRE80211 is not set
496# CONFIG_WLAN_80211 is not set
497# CONFIG_WAN is not set
498# CONFIG_FDDI is not set
499# CONFIG_PPP is not set
500# CONFIG_SLIP is not set
501# CONFIG_NETCONSOLE is not set
502# CONFIG_NETPOLL is not set
503# CONFIG_NET_POLL_CONTROLLER is not set
504# CONFIG_ISDN is not set
505# CONFIG_PHONE is not set
506
507#
508# Input device support
509#
510CONFIG_INPUT=y
511# CONFIG_INPUT_FF_MEMLESS is not set
512# CONFIG_INPUT_POLLDEV is not set
513
514#
515# Userland interfaces
516#
517CONFIG_INPUT_MOUSEDEV=y
518CONFIG_INPUT_MOUSEDEV_PSAUX=y
519CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
520CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
521# CONFIG_INPUT_JOYDEV is not set
522# CONFIG_INPUT_EVDEV is not set
523# CONFIG_INPUT_EVBUG is not set
524
525#
526# Input Device Drivers
527#
528CONFIG_INPUT_KEYBOARD=y
529CONFIG_KEYBOARD_ATKBD=y
530# CONFIG_KEYBOARD_SUNKBD is not set
531# CONFIG_KEYBOARD_LKKBD is not set
532# CONFIG_KEYBOARD_XTKBD is not set
533# CONFIG_KEYBOARD_NEWTON is not set
534# CONFIG_KEYBOARD_STOWAWAY is not set
535CONFIG_INPUT_MOUSE=y
536CONFIG_MOUSE_PS2=y
537# CONFIG_MOUSE_PS2_ALPS is not set
538CONFIG_MOUSE_PS2_LOGIPS2PP=y
539# CONFIG_MOUSE_PS2_SYNAPTICS is not set
540# CONFIG_MOUSE_PS2_LIFEBOOK is not set
541CONFIG_MOUSE_PS2_TRACKPOINT=y
542# CONFIG_MOUSE_PS2_TOUCHKIT is not set
543# CONFIG_MOUSE_SERIAL is not set
544# CONFIG_MOUSE_INPORT is not set
545# CONFIG_MOUSE_LOGIBM is not set
546# CONFIG_MOUSE_PC110PAD is not set
547# CONFIG_MOUSE_VSXXXAA is not set
548# CONFIG_INPUT_JOYSTICK is not set
549# CONFIG_INPUT_TABLET is not set
550# CONFIG_INPUT_TOUCHSCREEN is not set
551# CONFIG_INPUT_MISC is not set
552
553#
554# Hardware I/O ports
555#
556CONFIG_SERIO=y
557CONFIG_SERIO_I8042=y
558CONFIG_SERIO_SERPORT=y
559CONFIG_SERIO_LIBPS2=y
560# CONFIG_SERIO_RAW is not set
561# CONFIG_GAMEPORT is not set
562
563#
564# Character devices
565#
566CONFIG_VT=y
567CONFIG_VT_CONSOLE=y
568CONFIG_HW_CONSOLE=y
569CONFIG_VT_HW_CONSOLE_BINDING=y
570# CONFIG_SERIAL_NONSTANDARD is not set
571
572#
573# Serial drivers
574#
575# CONFIG_SERIAL_8250 is not set
576
577#
578# Non-8250 serial port support
579#
580CONFIG_SERIAL_IP22_ZILOG=y
581CONFIG_SERIAL_IP22_ZILOG_CONSOLE=y
582CONFIG_SERIAL_CORE=y
583CONFIG_SERIAL_CORE_CONSOLE=y
584CONFIG_UNIX98_PTYS=y
585CONFIG_LEGACY_PTYS=y
586CONFIG_LEGACY_PTY_COUNT=256
587# CONFIG_IPMI_HANDLER is not set
588# CONFIG_HW_RANDOM is not set
589# CONFIG_RTC is not set
590CONFIG_SGI_DS1286=y
591# CONFIG_DTLK is not set
592# CONFIG_R3964 is not set
593# CONFIG_RAW_DRIVER is not set
594# CONFIG_TCG_TPM is not set
595CONFIG_DEVPORT=y
596# CONFIG_I2C is not set
597
598#
599# SPI support
600#
601# CONFIG_SPI is not set
602# CONFIG_SPI_MASTER is not set
603# CONFIG_W1 is not set
604# CONFIG_POWER_SUPPLY is not set
605# CONFIG_HWMON is not set
606# CONFIG_THERMAL is not set
607CONFIG_WATCHDOG=y
608# CONFIG_WATCHDOG_NOWAYOUT is not set
609
610#
611# Watchdog Device Drivers
612#
613# CONFIG_SOFT_WATCHDOG is not set
614CONFIG_INDYDOG=y
615
616#
617# ISA-based Watchdog Cards
618#
619# CONFIG_PCWATCHDOG is not set
620# CONFIG_MIXCOMWD is not set
621# CONFIG_WDT is not set
622
623#
624# Sonics Silicon Backplane
625#
626CONFIG_SSB_POSSIBLE=y
627# CONFIG_SSB is not set
628
629#
630# Multifunction device drivers
631#
632# CONFIG_MFD_SM501 is not set
633
634#
635# Multimedia devices
636#
637# CONFIG_VIDEO_DEV is not set
638# CONFIG_DVB_CORE is not set
639# CONFIG_DAB is not set
640
641#
642# Graphics support
643#
644# CONFIG_VGASTATE is not set
645# CONFIG_VIDEO_OUTPUT_CONTROL is not set
646# CONFIG_FB is not set
647# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
648
649#
650# Display device support
651#
652# CONFIG_DISPLAY_SUPPORT is not set
653
654#
655# Console display driver support
656#
657# CONFIG_VGA_CONSOLE is not set
658# CONFIG_MDA_CONSOLE is not set
659CONFIG_DUMMY_CONSOLE=y
660
661#
662# Sound
663#
664# CONFIG_SOUND is not set
665CONFIG_HID_SUPPORT=y
666CONFIG_HID=y
667# CONFIG_HID_DEBUG is not set
668# CONFIG_HIDRAW is not set
669CONFIG_USB_SUPPORT=y
670# CONFIG_USB_ARCH_HAS_HCD is not set
671# CONFIG_USB_ARCH_HAS_OHCI is not set
672# CONFIG_USB_ARCH_HAS_EHCI is not set
673
674#
675# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
676#
677# CONFIG_USB_GADGET is not set
678# CONFIG_MMC is not set
679# CONFIG_MEMSTICK is not set
680# CONFIG_NEW_LEDS is not set
681CONFIG_RTC_LIB=y
682# CONFIG_RTC_CLASS is not set
683
684#
685# Userspace I/O
686#
687# CONFIG_UIO is not set
688
689#
690# File systems
691#
692CONFIG_EXT2_FS=y
693# CONFIG_EXT2_FS_XATTR is not set
694# CONFIG_EXT2_FS_XIP is not set
695CONFIG_EXT3_FS=y
696CONFIG_EXT3_FS_XATTR=y
697CONFIG_EXT3_FS_POSIX_ACL=y
698CONFIG_EXT3_FS_SECURITY=y
699# CONFIG_EXT4DEV_FS is not set
700CONFIG_JBD=y
701CONFIG_FS_MBCACHE=y
702# CONFIG_REISERFS_FS is not set
703# CONFIG_JFS_FS is not set
704CONFIG_FS_POSIX_ACL=y
705# CONFIG_XFS_FS is not set
706# CONFIG_GFS2_FS is not set
707# CONFIG_OCFS2_FS is not set
708CONFIG_DNOTIFY=y
709CONFIG_INOTIFY=y
710CONFIG_INOTIFY_USER=y
711CONFIG_QUOTA=y
712# CONFIG_QUOTA_NETLINK_INTERFACE is not set
713CONFIG_PRINT_QUOTA_WARNING=y
714# CONFIG_QFMT_V1 is not set
715# CONFIG_QFMT_V2 is not set
716CONFIG_QUOTACTL=y
717# CONFIG_AUTOFS_FS is not set
718# CONFIG_AUTOFS4_FS is not set
719# CONFIG_FUSE_FS is not set
720CONFIG_GENERIC_ACL=y
721
722#
723# CD-ROM/DVD Filesystems
724#
725# CONFIG_ISO9660_FS is not set
726# CONFIG_UDF_FS is not set
727
728#
729# DOS/FAT/NT Filesystems
730#
731# CONFIG_MSDOS_FS is not set
732# CONFIG_VFAT_FS is not set
733# CONFIG_NTFS_FS is not set
734
735#
736# Pseudo filesystems
737#
738CONFIG_PROC_FS=y
739CONFIG_PROC_KCORE=y
740CONFIG_PROC_SYSCTL=y
741CONFIG_SYSFS=y
742CONFIG_TMPFS=y
743CONFIG_TMPFS_POSIX_ACL=y
744# CONFIG_HUGETLB_PAGE is not set
745# CONFIG_CONFIGFS_FS is not set
746
747#
748# Miscellaneous filesystems
749#
750# CONFIG_ADFS_FS is not set
751# CONFIG_AFFS_FS is not set
752# CONFIG_HFS_FS is not set
753# CONFIG_HFSPLUS_FS is not set
754# CONFIG_BEFS_FS is not set
755# CONFIG_BFS_FS is not set
756# CONFIG_EFS_FS is not set
757# CONFIG_CRAMFS is not set
758# CONFIG_VXFS_FS is not set
759# CONFIG_MINIX_FS is not set
760# CONFIG_HPFS_FS is not set
761# CONFIG_QNX4FS_FS is not set
762# CONFIG_ROMFS_FS is not set
763# CONFIG_SYSV_FS is not set
764# CONFIG_UFS_FS is not set
765CONFIG_NETWORK_FILESYSTEMS=y
766CONFIG_NFS_FS=y
767CONFIG_NFS_V3=y
768CONFIG_NFS_V3_ACL=y
769# CONFIG_NFS_V4 is not set
770# CONFIG_NFS_DIRECTIO is not set
771# CONFIG_NFSD is not set
772CONFIG_ROOT_NFS=y
773CONFIG_LOCKD=y
774CONFIG_LOCKD_V4=y
775CONFIG_NFS_ACL_SUPPORT=y
776CONFIG_NFS_COMMON=y
777CONFIG_SUNRPC=y
778# CONFIG_SUNRPC_BIND34 is not set
779# CONFIG_RPCSEC_GSS_KRB5 is not set
780# CONFIG_RPCSEC_GSS_SPKM3 is not set
781# CONFIG_SMB_FS is not set
782# CONFIG_CIFS is not set
783# CONFIG_NCP_FS is not set
784# CONFIG_CODA_FS is not set
785# CONFIG_AFS_FS is not set
786
787#
788# Partition Types
789#
790CONFIG_PARTITION_ADVANCED=y
791# CONFIG_ACORN_PARTITION is not set
792# CONFIG_OSF_PARTITION is not set
793# CONFIG_AMIGA_PARTITION is not set
794# CONFIG_ATARI_PARTITION is not set
795# CONFIG_MAC_PARTITION is not set
796CONFIG_MSDOS_PARTITION=y
797# CONFIG_BSD_DISKLABEL is not set
798# CONFIG_MINIX_SUBPARTITION is not set
799# CONFIG_SOLARIS_X86_PARTITION is not set
800# CONFIG_UNIXWARE_DISKLABEL is not set
801# CONFIG_LDM_PARTITION is not set
802CONFIG_SGI_PARTITION=y
803# CONFIG_ULTRIX_PARTITION is not set
804# CONFIG_SUN_PARTITION is not set
805# CONFIG_KARMA_PARTITION is not set
806# CONFIG_EFI_PARTITION is not set
807# CONFIG_SYSV68_PARTITION is not set
808# CONFIG_NLS is not set
809# CONFIG_DLM is not set
810
811#
812# Kernel hacking
813#
814CONFIG_TRACE_IRQFLAGS_SUPPORT=y
815# CONFIG_PRINTK_TIME is not set
816CONFIG_ENABLE_WARN_DEPRECATED=y
817CONFIG_ENABLE_MUST_CHECK=y
818CONFIG_MAGIC_SYSRQ=y
819# CONFIG_UNUSED_SYMBOLS is not set
820# CONFIG_DEBUG_FS is not set
821# CONFIG_HEADERS_CHECK is not set
822# CONFIG_DEBUG_KERNEL is not set
823# CONFIG_SAMPLES is not set
824CONFIG_CMDLINE=""
825
826#
827# Security options
828#
829# CONFIG_KEYS is not set
830# CONFIG_SECURITY is not set
831# CONFIG_SECURITY_FILE_CAPABILITIES is not set
832CONFIG_CRYPTO=y
833CONFIG_CRYPTO_ALGAPI=y
834# CONFIG_CRYPTO_SEQIV is not set
835CONFIG_CRYPTO_MANAGER=y
836# CONFIG_CRYPTO_HMAC is not set
837# CONFIG_CRYPTO_XCBC is not set
838# CONFIG_CRYPTO_NULL is not set
839# CONFIG_CRYPTO_MD4 is not set
840CONFIG_CRYPTO_MD5=y
841# CONFIG_CRYPTO_SHA1 is not set
842# CONFIG_CRYPTO_SHA256 is not set
843# CONFIG_CRYPTO_SHA512 is not set
844# CONFIG_CRYPTO_WP512 is not set
845# CONFIG_CRYPTO_TGR192 is not set
846# CONFIG_CRYPTO_GF128MUL is not set
847# CONFIG_CRYPTO_ECB is not set
848# CONFIG_CRYPTO_CBC is not set
849# CONFIG_CRYPTO_PCBC is not set
850# CONFIG_CRYPTO_LRW is not set
851# CONFIG_CRYPTO_XTS is not set
852# CONFIG_CRYPTO_CTR is not set
853# CONFIG_CRYPTO_GCM is not set
854# CONFIG_CRYPTO_CCM is not set
855# CONFIG_CRYPTO_CRYPTD is not set
856# CONFIG_CRYPTO_DES is not set
857# CONFIG_CRYPTO_FCRYPT is not set
858# CONFIG_CRYPTO_BLOWFISH is not set
859# CONFIG_CRYPTO_TWOFISH is not set
860# CONFIG_CRYPTO_SERPENT is not set
861# CONFIG_CRYPTO_AES is not set
862# CONFIG_CRYPTO_CAST5 is not set
863# CONFIG_CRYPTO_CAST6 is not set
864# CONFIG_CRYPTO_TEA is not set
865# CONFIG_CRYPTO_ARC4 is not set
866# CONFIG_CRYPTO_KHAZAD is not set
867# CONFIG_CRYPTO_ANUBIS is not set
868# CONFIG_CRYPTO_SEED is not set
869# CONFIG_CRYPTO_SALSA20 is not set
870# CONFIG_CRYPTO_DEFLATE is not set
871# CONFIG_CRYPTO_MICHAEL_MIC is not set
872# CONFIG_CRYPTO_CRC32C is not set
873# CONFIG_CRYPTO_CAMELLIA is not set
874# CONFIG_CRYPTO_TEST is not set
875# CONFIG_CRYPTO_AUTHENC is not set
876# CONFIG_CRYPTO_LZO is not set
877# CONFIG_CRYPTO_HW is not set
878
879#
880# Library routines
881#
882# CONFIG_CRC_CCITT is not set
883# CONFIG_CRC16 is not set
884# CONFIG_CRC_ITU_T is not set
885# CONFIG_CRC32 is not set
886# CONFIG_CRC7 is not set
887# CONFIG_LIBCRC32C is not set
888CONFIG_PLIST=y
889CONFIG_HAS_IOMEM=y
890CONFIG_HAS_IOPORT=y
891CONFIG_HAS_DMA=y
diff --git a/arch/mips/configs/qemu_defconfig b/arch/mips/configs/qemu_defconfig
deleted file mode 100644
index 72ca147f9422..000000000000
--- a/arch/mips/configs/qemu_defconfig
+++ /dev/null
@@ -1,800 +0,0 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.20
4# Tue Feb 20 21:47:39 2007
5#
6CONFIG_MIPS=y
7
8#
9# Machine selection
10#
11CONFIG_ZONE_DMA=y
12# CONFIG_MIPS_MTX1 is not set
13# CONFIG_MIPS_BOSPORUS is not set
14# CONFIG_MIPS_PB1000 is not set
15# CONFIG_MIPS_PB1100 is not set
16# CONFIG_MIPS_PB1500 is not set
17# CONFIG_MIPS_PB1550 is not set
18# CONFIG_MIPS_PB1200 is not set
19# CONFIG_MIPS_DB1000 is not set
20# CONFIG_MIPS_DB1100 is not set
21# CONFIG_MIPS_DB1500 is not set
22# CONFIG_MIPS_DB1550 is not set
23# CONFIG_MIPS_DB1200 is not set
24# CONFIG_MIPS_MIRAGE is not set
25# CONFIG_BASLER_EXCITE is not set
26# CONFIG_MIPS_COBALT is not set
27# CONFIG_MACH_DECSTATION is not set
28# CONFIG_MACH_JAZZ is not set
29# CONFIG_MIPS_ATLAS is not set
30# CONFIG_MIPS_MALTA is not set
31# CONFIG_MIPS_SEAD is not set
32# CONFIG_WR_PPMC is not set
33# CONFIG_MIPS_SIM is not set
34# CONFIG_MOMENCO_JAGUAR_ATX is not set
35# CONFIG_MIPS_XXS1500 is not set
36# CONFIG_PNX8550_JBS is not set
37# CONFIG_PNX8550_STB810 is not set
38# CONFIG_MACH_VR41XX is not set
39# CONFIG_PMC_YOSEMITE is not set
40# CONFIG_MARKEINS is not set
41# CONFIG_SGI_IP22 is not set
42# CONFIG_SGI_IP27 is not set
43# CONFIG_SGI_IP32 is not set
44# CONFIG_SIBYTE_BIGSUR is not set
45# CONFIG_SIBYTE_SWARM is not set
46# CONFIG_SIBYTE_SENTOSA is not set
47# CONFIG_SIBYTE_RHONE is not set
48# CONFIG_SIBYTE_CARMEL is not set
49# CONFIG_SIBYTE_LITTLESUR is not set
50# CONFIG_SIBYTE_CRHINE is not set
51# CONFIG_SIBYTE_CRHONE is not set
52# CONFIG_SNI_RM is not set
53# CONFIG_TOSHIBA_JMR3927 is not set
54# CONFIG_TOSHIBA_RBTX4927 is not set
55# CONFIG_TOSHIBA_RBTX4938 is not set
56CONFIG_RWSEM_GENERIC_SPINLOCK=y
57# CONFIG_ARCH_HAS_ILOG2_U32 is not set
58# CONFIG_ARCH_HAS_ILOG2_U64 is not set
59CONFIG_GENERIC_FIND_NEXT_BIT=y
60CONFIG_GENERIC_HWEIGHT=y
61CONFIG_GENERIC_CALIBRATE_DELAY=y
62CONFIG_GENERIC_TIME=y
63CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
64CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
65CONFIG_DMA_COHERENT=y
66CONFIG_GENERIC_ISA_DMA=y
67CONFIG_I8259=y
68CONFIG_CPU_BIG_ENDIAN=y
69# CONFIG_CPU_LITTLE_ENDIAN is not set
70CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y
71CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
72CONFIG_SWAP_IO_SPACE=y
73CONFIG_MIPS_L1_CACHE_SHIFT=5
74CONFIG_HAVE_STD_PC_SERIAL_PORT=y
75
76#
77# CPU selection
78#
79CONFIG_CPU_MIPS32_R1=y
80# CONFIG_CPU_MIPS32_R2 is not set
81# CONFIG_CPU_MIPS64_R1 is not set
82# CONFIG_CPU_MIPS64_R2 is not set
83# CONFIG_CPU_R3000 is not set
84# CONFIG_CPU_TX39XX is not set
85# CONFIG_CPU_VR41XX is not set
86# CONFIG_CPU_R4300 is not set
87# CONFIG_CPU_R4X00 is not set
88# CONFIG_CPU_TX49XX is not set
89# CONFIG_CPU_R5000 is not set
90# CONFIG_CPU_R5432 is not set
91# CONFIG_CPU_R6000 is not set
92# CONFIG_CPU_NEVADA is not set
93# CONFIG_CPU_R8000 is not set
94# CONFIG_CPU_R10000 is not set
95# CONFIG_CPU_RM7000 is not set
96# CONFIG_CPU_RM9000 is not set
97# CONFIG_CPU_SB1 is not set
98CONFIG_SYS_HAS_CPU_MIPS32_R1=y
99CONFIG_CPU_MIPS32=y
100CONFIG_CPU_MIPSR1=y
101CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
102CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
103
104#
105# Kernel type
106#
107CONFIG_32BIT=y
108# CONFIG_64BIT is not set
109CONFIG_PAGE_SIZE_4KB=y
110# CONFIG_PAGE_SIZE_8KB is not set
111# CONFIG_PAGE_SIZE_16KB is not set
112# CONFIG_PAGE_SIZE_64KB is not set
113CONFIG_CPU_HAS_PREFETCH=y
114CONFIG_MIPS_MT_DISABLED=y
115# CONFIG_MIPS_MT_SMP is not set
116# CONFIG_MIPS_MT_SMTC is not set
117# CONFIG_MIPS_VPE_LOADER is not set
118# CONFIG_64BIT_PHYS_ADDR is not set
119CONFIG_CPU_HAS_LLSC=y
120CONFIG_CPU_HAS_SYNC=y
121CONFIG_GENERIC_HARDIRQS=y
122CONFIG_GENERIC_IRQ_PROBE=y
123CONFIG_CPU_SUPPORTS_HIGHMEM=y
124CONFIG_ARCH_FLATMEM_ENABLE=y
125CONFIG_ARCH_SPARSEMEM_ENABLE=y
126CONFIG_FLATMEM=y
127CONFIG_FLAT_NODE_MEM_MAP=y
128CONFIG_SPARSEMEM_STATIC=y
129CONFIG_SPLIT_PTLOCK_CPUS=4
130# CONFIG_RESOURCES_64BIT is not set
131CONFIG_ZONE_DMA_FLAG=1
132# CONFIG_HZ_48 is not set
133CONFIG_HZ_100=y
134# CONFIG_HZ_128 is not set
135# CONFIG_HZ_250 is not set
136# CONFIG_HZ_256 is not set
137# CONFIG_HZ_1000 is not set
138# CONFIG_HZ_1024 is not set
139CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
140CONFIG_HZ=100
141CONFIG_PREEMPT_NONE=y
142# CONFIG_PREEMPT_VOLUNTARY is not set
143# CONFIG_PREEMPT is not set
144CONFIG_LOCKDEP_SUPPORT=y
145CONFIG_STACKTRACE_SUPPORT=y
146CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
147
148#
149# Code maturity level options
150#
151# CONFIG_EXPERIMENTAL is not set
152CONFIG_BROKEN_ON_SMP=y
153CONFIG_INIT_ENV_ARG_LIMIT=32
154
155#
156# General setup
157#
158CONFIG_LOCALVERSION=""
159CONFIG_LOCALVERSION_AUTO=y
160# CONFIG_SWAP is not set
161# CONFIG_SYSVIPC is not set
162# CONFIG_BSD_PROCESS_ACCT is not set
163# CONFIG_TASKSTATS is not set
164# CONFIG_UTS_NS is not set
165# CONFIG_AUDIT is not set
166# CONFIG_IKCONFIG is not set
167CONFIG_SYSFS_DEPRECATED=y
168CONFIG_RELAY=y
169CONFIG_SYSCTL=y
170CONFIG_EMBEDDED=y
171CONFIG_SYSCTL_SYSCALL=y
172CONFIG_KALLSYMS=y
173# CONFIG_KALLSYMS_EXTRA_PASS is not set
174# CONFIG_HOTPLUG is not set
175CONFIG_PRINTK=y
176# CONFIG_BUG is not set
177CONFIG_ELF_CORE=y
178# CONFIG_BASE_FULL is not set
179# CONFIG_FUTEX is not set
180# CONFIG_EPOLL is not set
181# CONFIG_SHMEM is not set
182CONFIG_SLAB=y
183CONFIG_VM_EVENT_COUNTERS=y
184CONFIG_TINY_SHMEM=y
185CONFIG_BASE_SMALL=1
186# CONFIG_SLOB is not set
187
188#
189# Loadable module support
190#
191# CONFIG_MODULES is not set
192
193#
194# Block layer
195#
196CONFIG_BLOCK=y
197# CONFIG_LBD is not set
198# CONFIG_BLK_DEV_IO_TRACE is not set
199# CONFIG_LSF is not set
200
201#
202# IO Schedulers
203#
204CONFIG_IOSCHED_NOOP=y
205# CONFIG_IOSCHED_AS is not set
206# CONFIG_IOSCHED_DEADLINE is not set
207# CONFIG_IOSCHED_CFQ is not set
208# CONFIG_DEFAULT_AS is not set
209# CONFIG_DEFAULT_DEADLINE is not set
210# CONFIG_DEFAULT_CFQ is not set
211CONFIG_DEFAULT_NOOP=y
212CONFIG_DEFAULT_IOSCHED="noop"
213
214#
215# Bus options (PCI, PCMCIA, EISA, ISA, TC)
216#
217CONFIG_ISA=y
218CONFIG_MMU=y
219CONFIG_PCSPEAKER=y
220
221#
222# PCCARD (PCMCIA/CardBus) support
223#
224
225#
226# PCI Hotplug Support
227#
228
229#
230# Executable file formats
231#
232CONFIG_BINFMT_ELF=y
233# CONFIG_BINFMT_MISC is not set
234CONFIG_TRAD_SIGNALS=y
235
236#
237# Power management options
238#
239CONFIG_PM=y
240# CONFIG_PM_LEGACY is not set
241# CONFIG_PM_DEBUG is not set
242# CONFIG_PM_SYSFS_DEPRECATED is not set
243
244#
245# Networking
246#
247CONFIG_NET=y
248
249#
250# Networking options
251#
252# CONFIG_NETDEBUG is not set
253CONFIG_PACKET=y
254CONFIG_PACKET_MMAP=y
255CONFIG_UNIX=y
256CONFIG_XFRM=y
257# CONFIG_XFRM_USER is not set
258# CONFIG_NET_KEY is not set
259CONFIG_INET=y
260CONFIG_IP_MULTICAST=y
261# CONFIG_IP_ADVANCED_ROUTER is not set
262CONFIG_IP_FIB_HASH=y
263CONFIG_IP_PNP=y
264CONFIG_IP_PNP_DHCP=y
265CONFIG_IP_PNP_BOOTP=y
266# CONFIG_IP_PNP_RARP is not set
267# CONFIG_NET_IPIP is not set
268# CONFIG_NET_IPGRE is not set
269# CONFIG_IP_MROUTE is not set
270# CONFIG_SYN_COOKIES is not set
271# CONFIG_INET_AH is not set
272# CONFIG_INET_ESP is not set
273# CONFIG_INET_IPCOMP is not set
274# CONFIG_INET_XFRM_TUNNEL is not set
275# CONFIG_INET_TUNNEL is not set
276CONFIG_INET_XFRM_MODE_TRANSPORT=y
277CONFIG_INET_XFRM_MODE_TUNNEL=y
278CONFIG_INET_XFRM_MODE_BEET=y
279CONFIG_INET_DIAG=y
280CONFIG_INET_TCP_DIAG=y
281# CONFIG_TCP_CONG_ADVANCED is not set
282CONFIG_TCP_CONG_CUBIC=y
283CONFIG_DEFAULT_TCP_CONG="cubic"
284# CONFIG_IPV6 is not set
285# CONFIG_INET6_XFRM_TUNNEL is not set
286# CONFIG_INET6_TUNNEL is not set
287CONFIG_NETWORK_SECMARK=y
288# CONFIG_NETFILTER is not set
289# CONFIG_BRIDGE is not set
290# CONFIG_VLAN_8021Q is not set
291# CONFIG_DECNET is not set
292# CONFIG_LLC2 is not set
293# CONFIG_IPX is not set
294# CONFIG_ATALK is not set
295
296#
297# QoS and/or fair queueing
298#
299# CONFIG_NET_SCHED is not set
300
301#
302# Network testing
303#
304# CONFIG_NET_PKTGEN is not set
305# CONFIG_HAMRADIO is not set
306# CONFIG_IRDA is not set
307# CONFIG_BT is not set
308# CONFIG_IEEE80211 is not set
309
310#
311# Device Drivers
312#
313
314#
315# Generic Driver Options
316#
317CONFIG_STANDALONE=y
318# CONFIG_PREVENT_FIRMWARE_BUILD is not set
319# CONFIG_SYS_HYPERVISOR is not set
320
321#
322# Connector - unified userspace <-> kernelspace linker
323#
324CONFIG_CONNECTOR=y
325CONFIG_PROC_EVENTS=y
326
327#
328# Memory Technology Devices (MTD)
329#
330# CONFIG_MTD is not set
331
332#
333# Parallel port support
334#
335# CONFIG_PARPORT is not set
336
337#
338# Plug and Play support
339#
340# CONFIG_PNP is not set
341# CONFIG_PNPACPI is not set
342
343#
344# Block devices
345#
346# CONFIG_BLK_DEV_COW_COMMON is not set
347# CONFIG_BLK_DEV_LOOP is not set
348# CONFIG_BLK_DEV_NBD is not set
349# CONFIG_BLK_DEV_RAM is not set
350# CONFIG_BLK_DEV_INITRD is not set
351# CONFIG_CDROM_PKTCDVD is not set
352# CONFIG_ATA_OVER_ETH is not set
353
354#
355# Misc devices
356#
357
358#
359# ATA/ATAPI/MFM/RLL support
360#
361# CONFIG_IDE is not set
362
363#
364# SCSI device support
365#
366# CONFIG_RAID_ATTRS is not set
367# CONFIG_SCSI is not set
368# CONFIG_SCSI_NETLINK is not set
369
370#
371# Serial ATA (prod) and Parallel ATA (experimental) drivers
372#
373# CONFIG_ATA is not set
374
375#
376# Old CD-ROM drivers (not SCSI, not IDE)
377#
378# CONFIG_CD_NO_IDESCSI is not set
379
380#
381# Multi-device support (RAID and LVM)
382#
383# CONFIG_MD is not set
384
385#
386# Fusion MPT device support
387#
388# CONFIG_FUSION is not set
389
390#
391# IEEE 1394 (FireWire) support
392#
393
394#
395# I2O device support
396#
397
398#
399# Network device support
400#
401CONFIG_NETDEVICES=y
402# CONFIG_DUMMY is not set
403# CONFIG_BONDING is not set
404# CONFIG_EQUALIZER is not set
405# CONFIG_TUN is not set
406
407#
408# ARCnet devices
409#
410# CONFIG_ARCNET is not set
411
412#
413# PHY device support
414#
415# CONFIG_PHYLIB is not set
416
417#
418# Ethernet (10 or 100Mbit)
419#
420CONFIG_NET_ETHERNET=y
421# CONFIG_MII is not set
422# CONFIG_NET_VENDOR_3COM is not set
423# CONFIG_NET_VENDOR_SMC is not set
424# CONFIG_DM9000 is not set
425# CONFIG_NET_VENDOR_RACAL is not set
426# CONFIG_DEPCA is not set
427# CONFIG_HP100 is not set
428CONFIG_NET_ISA=y
429# CONFIG_E2100 is not set
430# CONFIG_EWRK3 is not set
431# CONFIG_EEXPRESS is not set
432# CONFIG_EEXPRESS_PRO is not set
433# CONFIG_HPLAN_PLUS is not set
434# CONFIG_HPLAN is not set
435# CONFIG_LP486E is not set
436# CONFIG_ETH16I is not set
437CONFIG_NE2000=y
438# CONFIG_NET_PCI is not set
439
440#
441# Ethernet (1000 Mbit)
442#
443
444#
445# Ethernet (10000 Mbit)
446#
447
448#
449# Token Ring devices
450#
451# CONFIG_TR is not set
452
453#
454# Wireless LAN (non-hamradio)
455#
456# CONFIG_NET_RADIO is not set
457
458#
459# Wan interfaces
460#
461# CONFIG_WAN is not set
462# CONFIG_PPP is not set
463# CONFIG_SLIP is not set
464# CONFIG_NETPOLL is not set
465# CONFIG_NET_POLL_CONTROLLER is not set
466
467#
468# ISDN subsystem
469#
470# CONFIG_ISDN is not set
471
472#
473# Telephony Support
474#
475# CONFIG_PHONE is not set
476
477#
478# Input device support
479#
480CONFIG_INPUT=y
481# CONFIG_INPUT_FF_MEMLESS is not set
482
483#
484# Userland interfaces
485#
486# CONFIG_INPUT_MOUSEDEV is not set
487# CONFIG_INPUT_JOYDEV is not set
488# CONFIG_INPUT_TSDEV is not set
489# CONFIG_INPUT_EVDEV is not set
490# CONFIG_INPUT_EVBUG is not set
491
492#
493# Input Device Drivers
494#
495# CONFIG_INPUT_KEYBOARD is not set
496# CONFIG_INPUT_MOUSE is not set
497# CONFIG_INPUT_JOYSTICK is not set
498# CONFIG_INPUT_TOUCHSCREEN is not set
499# CONFIG_INPUT_MISC is not set
500
501#
502# Hardware I/O ports
503#
504# CONFIG_SERIO is not set
505# CONFIG_GAMEPORT is not set
506
507#
508# Character devices
509#
510CONFIG_VT=y
511CONFIG_VT_CONSOLE=y
512CONFIG_HW_CONSOLE=y
513CONFIG_VT_HW_CONSOLE_BINDING=y
514# CONFIG_SERIAL_NONSTANDARD is not set
515
516#
517# Serial drivers
518#
519CONFIG_SERIAL_8250=y
520CONFIG_SERIAL_8250_CONSOLE=y
521CONFIG_SERIAL_8250_NR_UARTS=4
522CONFIG_SERIAL_8250_RUNTIME_UARTS=4
523# CONFIG_SERIAL_8250_EXTENDED is not set
524
525#
526# Non-8250 serial port support
527#
528CONFIG_SERIAL_CORE=y
529CONFIG_SERIAL_CORE_CONSOLE=y
530CONFIG_UNIX98_PTYS=y
531CONFIG_LEGACY_PTYS=y
532CONFIG_LEGACY_PTY_COUNT=256
533
534#
535# IPMI
536#
537# CONFIG_IPMI_HANDLER is not set
538
539#
540# Watchdog Cards
541#
542# CONFIG_WATCHDOG is not set
543# CONFIG_HW_RANDOM is not set
544# CONFIG_RTC is not set
545# CONFIG_GEN_RTC is not set
546# CONFIG_DTLK is not set
547# CONFIG_R3964 is not set
548# CONFIG_RAW_DRIVER is not set
549
550#
551# TPM devices
552#
553
554#
555# I2C support
556#
557# CONFIG_I2C is not set
558
559#
560# SPI support
561#
562# CONFIG_SPI is not set
563# CONFIG_SPI_MASTER is not set
564
565#
566# Dallas's 1-wire bus
567#
568# CONFIG_W1 is not set
569
570#
571# Hardware Monitoring support
572#
573# CONFIG_HWMON is not set
574# CONFIG_HWMON_VID is not set
575
576#
577# Multimedia devices
578#
579# CONFIG_VIDEO_DEV is not set
580
581#
582# Digital Video Broadcasting Devices
583#
584# CONFIG_DVB is not set
585
586#
587# Graphics support
588#
589# CONFIG_FIRMWARE_EDID is not set
590# CONFIG_FB is not set
591
592#
593# Console display driver support
594#
595CONFIG_VGA_CONSOLE=y
596# CONFIG_VGACON_SOFT_SCROLLBACK is not set
597# CONFIG_MDA_CONSOLE is not set
598CONFIG_DUMMY_CONSOLE=y
599# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
600
601#
602# Sound
603#
604# CONFIG_SOUND is not set
605
606#
607# HID Devices
608#
609CONFIG_HID=y
610# CONFIG_HID_DEBUG is not set
611
612#
613# USB support
614#
615# CONFIG_USB_ARCH_HAS_HCD is not set
616# CONFIG_USB_ARCH_HAS_OHCI is not set
617# CONFIG_USB_ARCH_HAS_EHCI is not set
618
619#
620# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
621#
622
623#
624# USB Gadget Support
625#
626# CONFIG_USB_GADGET is not set
627
628#
629# MMC/SD Card support
630#
631# CONFIG_MMC is not set
632
633#
634# LED devices
635#
636# CONFIG_NEW_LEDS is not set
637
638#
639# LED drivers
640#
641
642#
643# LED Triggers
644#
645
646#
647# InfiniBand support
648#
649
650#
651# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
652#
653
654#
655# Real Time Clock
656#
657
658#
659# DMA Engine support
660#
661# CONFIG_DMA_ENGINE is not set
662
663#
664# DMA Clients
665#
666
667#
668# DMA Devices
669#
670
671#
672# Auxiliary Display support
673#
674
675#
676# Virtualization
677#
678
679#
680# File systems
681#
682# CONFIG_EXT2_FS is not set
683# CONFIG_EXT3_FS is not set
684# CONFIG_REISERFS_FS is not set
685# CONFIG_JFS_FS is not set
686CONFIG_FS_POSIX_ACL=y
687# CONFIG_XFS_FS is not set
688# CONFIG_OCFS2_FS is not set
689# CONFIG_MINIX_FS is not set
690# CONFIG_ROMFS_FS is not set
691CONFIG_INOTIFY=y
692CONFIG_INOTIFY_USER=y
693# CONFIG_QUOTA is not set
694# CONFIG_DNOTIFY is not set
695# CONFIG_AUTOFS_FS is not set
696# CONFIG_AUTOFS4_FS is not set
697CONFIG_FUSE_FS=y
698CONFIG_GENERIC_ACL=y
699
700#
701# CD-ROM/DVD Filesystems
702#
703# CONFIG_ISO9660_FS is not set
704# CONFIG_UDF_FS is not set
705
706#
707# DOS/FAT/NT Filesystems
708#
709# CONFIG_MSDOS_FS is not set
710# CONFIG_VFAT_FS is not set
711# CONFIG_NTFS_FS is not set
712
713#
714# Pseudo filesystems
715#
716CONFIG_PROC_FS=y
717CONFIG_PROC_KCORE=y
718CONFIG_PROC_SYSCTL=y
719CONFIG_SYSFS=y
720CONFIG_TMPFS=y
721CONFIG_TMPFS_POSIX_ACL=y
722# CONFIG_HUGETLB_PAGE is not set
723CONFIG_RAMFS=y
724
725#
726# Miscellaneous filesystems
727#
728# CONFIG_HFSPLUS_FS is not set
729# CONFIG_CRAMFS is not set
730# CONFIG_VXFS_FS is not set
731# CONFIG_HPFS_FS is not set
732# CONFIG_QNX4FS_FS is not set
733# CONFIG_SYSV_FS is not set
734# CONFIG_UFS_FS is not set
735
736#
737# Network File Systems
738#
739CONFIG_NFS_FS=y
740CONFIG_NFS_V3=y
741# CONFIG_NFS_V3_ACL is not set
742CONFIG_NFS_DIRECTIO=y
743# CONFIG_NFSD is not set
744CONFIG_ROOT_NFS=y
745CONFIG_LOCKD=y
746CONFIG_LOCKD_V4=y
747CONFIG_NFS_COMMON=y
748CONFIG_SUNRPC=y
749# CONFIG_SMB_FS is not set
750# CONFIG_CIFS is not set
751# CONFIG_NCP_FS is not set
752# CONFIG_CODA_FS is not set
753
754#
755# Partition Types
756#
757# CONFIG_PARTITION_ADVANCED is not set
758CONFIG_MSDOS_PARTITION=y
759
760#
761# Native Language Support
762#
763# CONFIG_NLS is not set
764
765#
766# Kernel hacking
767#
768CONFIG_TRACE_IRQFLAGS_SUPPORT=y
769# CONFIG_PRINTK_TIME is not set
770CONFIG_ENABLE_MUST_CHECK=y
771# CONFIG_MAGIC_SYSRQ is not set
772# CONFIG_UNUSED_SYMBOLS is not set
773# CONFIG_DEBUG_FS is not set
774# CONFIG_HEADERS_CHECK is not set
775# CONFIG_DEBUG_KERNEL is not set
776CONFIG_LOG_BUF_SHIFT=14
777CONFIG_CROSSCOMPILE=y
778CONFIG_CMDLINE=""
779
780#
781# Security options
782#
783# CONFIG_KEYS is not set
784# CONFIG_SECURITY is not set
785
786#
787# Cryptographic options
788#
789# CONFIG_CRYPTO is not set
790
791#
792# Library routines
793#
794CONFIG_BITREVERSE=y
795# CONFIG_CRC_CCITT is not set
796# CONFIG_CRC16 is not set
797CONFIG_CRC32=y
798# CONFIG_LIBCRC32C is not set
799CONFIG_HAS_IOMEM=y
800CONFIG_HAS_IOPORT=y
diff --git a/arch/mips/kernel/irq-rm7000.c b/arch/mips/kernel/irq-rm7000.c
index 971adf6ef4f4..fb50cc78b28b 100644
--- a/arch/mips/kernel/irq-rm7000.c
+++ b/arch/mips/kernel/irq-rm7000.c
@@ -33,6 +33,7 @@ static struct irq_chip rm7k_irq_controller = {
33 .mask = mask_rm7k_irq, 33 .mask = mask_rm7k_irq,
34 .mask_ack = mask_rm7k_irq, 34 .mask_ack = mask_rm7k_irq,
35 .unmask = unmask_rm7k_irq, 35 .unmask = unmask_rm7k_irq,
36 .eoi = unmask_rm7k_irq
36}; 37};
37 38
38void __init rm7k_cpu_irq_init(void) 39void __init rm7k_cpu_irq_init(void)
diff --git a/arch/mips/kernel/irq-rm9000.c b/arch/mips/kernel/irq-rm9000.c
index 7b04583bd800..ed9febe63d72 100644
--- a/arch/mips/kernel/irq-rm9000.c
+++ b/arch/mips/kernel/irq-rm9000.c
@@ -75,6 +75,7 @@ static struct irq_chip rm9k_irq_controller = {
75 .mask = mask_rm9k_irq, 75 .mask = mask_rm9k_irq,
76 .mask_ack = mask_rm9k_irq, 76 .mask_ack = mask_rm9k_irq,
77 .unmask = unmask_rm9k_irq, 77 .unmask = unmask_rm9k_irq,
78 .eoi = unmask_rm9k_irq
78}; 79};
79 80
80static struct irq_chip rm9k_perfcounter_irq = { 81static struct irq_chip rm9k_perfcounter_irq = {
diff --git a/arch/mips/kernel/mips-mt-fpaff.c b/arch/mips/kernel/mips-mt-fpaff.c
index bb4f00c0cbe9..df4d3f2f740c 100644
--- a/arch/mips/kernel/mips-mt-fpaff.c
+++ b/arch/mips/kernel/mips-mt-fpaff.c
@@ -36,7 +36,7 @@ unsigned long mt_fpemul_threshold = 0;
36 */ 36 */
37static inline struct task_struct *find_process_by_pid(pid_t pid) 37static inline struct task_struct *find_process_by_pid(pid_t pid)
38{ 38{
39 return pid ? find_task_by_pid(pid) : current; 39 return pid ? find_task_by_vpid(pid) : current;
40} 40}
41 41
42 42
diff --git a/arch/mips/kernel/scall32-o32.S b/arch/mips/kernel/scall32-o32.S
index f798139e888e..08a9c5070ea8 100644
--- a/arch/mips/kernel/scall32-o32.S
+++ b/arch/mips/kernel/scall32-o32.S
@@ -663,6 +663,9 @@ einval: li v0, -EINVAL
663 sys sys_ni_syscall 0 663 sys sys_ni_syscall 0
664 sys sys_eventfd 1 664 sys sys_eventfd 1
665 sys sys_fallocate 6 /* 4320 */ 665 sys sys_fallocate 6 /* 4320 */
666 sys sys_timerfd_create 2
667 sys sys_timerfd_gettime 2
668 sys sys_timerfd_settime 4
666 .endm 669 .endm
667 670
668 /* We pre-compute the number of _instruction_ bytes needed to 671 /* We pre-compute the number of _instruction_ bytes needed to
diff --git a/arch/mips/kernel/scall64-64.S b/arch/mips/kernel/scall64-64.S
index a626be6baea3..dc597b600c68 100644
--- a/arch/mips/kernel/scall64-64.S
+++ b/arch/mips/kernel/scall64-64.S
@@ -478,4 +478,7 @@ sys_call_table:
478 PTR sys_ni_syscall 478 PTR sys_ni_syscall
479 PTR sys_eventfd 479 PTR sys_eventfd
480 PTR sys_fallocate 480 PTR sys_fallocate
481 PTR sys_timerfd_create /* 5280 */
482 PTR sys_timerfd_gettime
483 PTR sys_timerfd_settime
481 .size sys_call_table,.-sys_call_table 484 .size sys_call_table,.-sys_call_table
diff --git a/arch/mips/kernel/scall64-n32.S b/arch/mips/kernel/scall64-n32.S
index 9d5bcaf1b389..12940eca7893 100644
--- a/arch/mips/kernel/scall64-n32.S
+++ b/arch/mips/kernel/scall64-n32.S
@@ -404,4 +404,7 @@ EXPORT(sysn32_call_table)
404 PTR sys_ni_syscall 404 PTR sys_ni_syscall
405 PTR sys_eventfd 405 PTR sys_eventfd
406 PTR sys_fallocate 406 PTR sys_fallocate
407 PTR sys_timerfd_create
408 PTR sys_timerfd_gettime /* 5285 */
409 PTR sys_timerfd_settime
407 .size sysn32_call_table,.-sysn32_call_table 410 .size sysn32_call_table,.-sysn32_call_table
diff --git a/arch/mips/kernel/scall64-o32.S b/arch/mips/kernel/scall64-o32.S
index fd2019c1ec2d..9a275efb4f04 100644
--- a/arch/mips/kernel/scall64-o32.S
+++ b/arch/mips/kernel/scall64-o32.S
@@ -526,4 +526,7 @@ sys_call_table:
526 PTR sys_ni_syscall 526 PTR sys_ni_syscall
527 PTR sys_eventfd 527 PTR sys_eventfd
528 PTR sys32_fallocate /* 4320 */ 528 PTR sys32_fallocate /* 4320 */
529 PTR sys_timerfd_create
530 PTR sys_timerfd_gettime
531 PTR sys_timerfd_settime
529 .size sys_call_table,.-sys_call_table 532 .size sys_call_table,.-sys_call_table
diff --git a/arch/mips/kernel/sysirix.c b/arch/mips/kernel/sysirix.c
index 672fba84b2cc..c357762b8012 100644
--- a/arch/mips/kernel/sysirix.c
+++ b/arch/mips/kernel/sysirix.c
@@ -111,7 +111,7 @@ asmlinkage int irix_prctl(unsigned option, ...)
111 printk("irix_prctl[%s:%d]: Wants PR_ISBLOCKED\n", 111 printk("irix_prctl[%s:%d]: Wants PR_ISBLOCKED\n",
112 current->comm, current->pid); 112 current->comm, current->pid);
113 read_lock(&tasklist_lock); 113 read_lock(&tasklist_lock);
114 task = find_task_by_pid(va_arg(args, pid_t)); 114 task = find_task_by_vpid(va_arg(args, pid_t));
115 error = -ESRCH; 115 error = -ESRCH;
116 if (error) 116 if (error)
117 error = (task->run_list.next != NULL); 117 error = (task->run_list.next != NULL);
diff --git a/arch/mips/mm/c-r4k.c b/arch/mips/mm/c-r4k.c
index 53ec05267a98..2c4f7e11f0d5 100644
--- a/arch/mips/mm/c-r4k.c
+++ b/arch/mips/mm/c-r4k.c
@@ -364,20 +364,23 @@ static inline int has_valid_asid(const struct mm_struct *mm)
364static inline void local_r4k_flush_cache_range(void * args) 364static inline void local_r4k_flush_cache_range(void * args)
365{ 365{
366 struct vm_area_struct *vma = args; 366 struct vm_area_struct *vma = args;
367 int exec = vma->vm_flags & VM_EXEC;
367 368
368 if (!(has_valid_asid(vma->vm_mm))) 369 if (!(has_valid_asid(vma->vm_mm)))
369 return; 370 return;
370 371
371 r4k_blast_dcache(); 372 r4k_blast_dcache();
373 if (exec)
374 r4k_blast_icache();
372} 375}
373 376
374static void r4k_flush_cache_range(struct vm_area_struct *vma, 377static void r4k_flush_cache_range(struct vm_area_struct *vma,
375 unsigned long start, unsigned long end) 378 unsigned long start, unsigned long end)
376{ 379{
377 if (!cpu_has_dc_aliases) 380 int exec = vma->vm_flags & VM_EXEC;
378 return;
379 381
380 r4k_on_each_cpu(local_r4k_flush_cache_range, vma, 1, 1); 382 if (cpu_has_dc_aliases || (exec && !cpu_has_ic_fills_f_dc))
383 r4k_on_each_cpu(local_r4k_flush_cache_range, vma, 1, 1);
381} 384}
382 385
383static inline void local_r4k_flush_cache_mm(void * args) 386static inline void local_r4k_flush_cache_mm(void * args)
diff --git a/arch/mips/mm/cache.c b/arch/mips/mm/cache.c
index 81f30ac2bff9..6a24651971df 100644
--- a/arch/mips/mm/cache.c
+++ b/arch/mips/mm/cache.c
@@ -92,12 +92,17 @@ EXPORT_SYMBOL(__flush_dcache_page);
92 92
93void __flush_anon_page(struct page *page, unsigned long vmaddr) 93void __flush_anon_page(struct page *page, unsigned long vmaddr)
94{ 94{
95 if (pages_do_alias((unsigned long)page_address(page), vmaddr)) { 95 unsigned long addr = (unsigned long) page_address(page);
96 void *kaddr;
97 96
98 kaddr = kmap_coherent(page, vmaddr); 97 if (pages_do_alias(addr, vmaddr)) {
99 flush_data_cache_page((unsigned long)kaddr); 98 if (page_mapped(page) && !Page_dcache_dirty(page)) {
100 kunmap_coherent(); 99 void *kaddr;
100
101 kaddr = kmap_coherent(page, vmaddr);
102 flush_data_cache_page((unsigned long)kaddr);
103 kunmap_coherent();
104 } else
105 flush_data_cache_page(addr);
101 } 106 }
102} 107}
103 108
diff --git a/arch/mips/mm/init.c b/arch/mips/mm/init.c
index 480dec04f552..c7aed133d11d 100644
--- a/arch/mips/mm/init.c
+++ b/arch/mips/mm/init.c
@@ -211,7 +211,8 @@ void copy_user_highpage(struct page *to, struct page *from,
211 void *vfrom, *vto; 211 void *vfrom, *vto;
212 212
213 vto = kmap_atomic(to, KM_USER1); 213 vto = kmap_atomic(to, KM_USER1);
214 if (cpu_has_dc_aliases && page_mapped(from)) { 214 if (cpu_has_dc_aliases &&
215 page_mapped(from) && !Page_dcache_dirty(from)) {
215 vfrom = kmap_coherent(from, vaddr); 216 vfrom = kmap_coherent(from, vaddr);
216 copy_page(vto, vfrom); 217 copy_page(vto, vfrom);
217 kunmap_coherent(); 218 kunmap_coherent();
@@ -234,7 +235,8 @@ void copy_to_user_page(struct vm_area_struct *vma,
234 struct page *page, unsigned long vaddr, void *dst, const void *src, 235 struct page *page, unsigned long vaddr, void *dst, const void *src,
235 unsigned long len) 236 unsigned long len)
236{ 237{
237 if (cpu_has_dc_aliases && page_mapped(page)) { 238 if (cpu_has_dc_aliases &&
239 page_mapped(page) && !Page_dcache_dirty(page)) {
238 void *vto = kmap_coherent(page, vaddr) + (vaddr & ~PAGE_MASK); 240 void *vto = kmap_coherent(page, vaddr) + (vaddr & ~PAGE_MASK);
239 memcpy(vto, src, len); 241 memcpy(vto, src, len);
240 kunmap_coherent(); 242 kunmap_coherent();
@@ -253,7 +255,8 @@ void copy_from_user_page(struct vm_area_struct *vma,
253 struct page *page, unsigned long vaddr, void *dst, const void *src, 255 struct page *page, unsigned long vaddr, void *dst, const void *src,
254 unsigned long len) 256 unsigned long len)
255{ 257{
256 if (cpu_has_dc_aliases && page_mapped(page)) { 258 if (cpu_has_dc_aliases &&
259 page_mapped(page) && !Page_dcache_dirty(page)) {
257 void *vfrom = kmap_coherent(page, vaddr) + (vaddr & ~PAGE_MASK); 260 void *vfrom = kmap_coherent(page, vaddr) + (vaddr & ~PAGE_MASK);
258 memcpy(dst, vfrom, len); 261 memcpy(dst, vfrom, len);
259 kunmap_coherent(); 262 kunmap_coherent();
diff --git a/arch/mips/mm/pg-sb1.c b/arch/mips/mm/pg-sb1.c
index a3e98c243a89..89925ec57d6a 100644
--- a/arch/mips/mm/pg-sb1.c
+++ b/arch/mips/mm/pg-sb1.c
@@ -216,7 +216,7 @@ void sb1_dma_init(void)
216 int i; 216 int i;
217 217
218 for (i = 0; i < DM_NUM_CHANNELS; i++) { 218 for (i = 0; i < DM_NUM_CHANNELS; i++) {
219 const u64 base_val = CPHYSADDR(&page_descr[i]) | 219 const u64 base_val = CPHYSADDR((unsigned long)&page_descr[i]) |
220 V_DM_DSCR_BASE_RINGSZ(1); 220 V_DM_DSCR_BASE_RINGSZ(1);
221 void *base_reg = IOADDR(A_DM_REGISTER(i, R_DM_DSCR_BASE)); 221 void *base_reg = IOADDR(A_DM_REGISTER(i, R_DM_DSCR_BASE));
222 222
@@ -228,11 +228,11 @@ void sb1_dma_init(void)
228 228
229void clear_page(void *page) 229void clear_page(void *page)
230{ 230{
231 u64 to_phys = CPHYSADDR(page); 231 u64 to_phys = CPHYSADDR((unsigned long)page);
232 unsigned int cpu = smp_processor_id(); 232 unsigned int cpu = smp_processor_id();
233 233
234 /* if the page is not in KSEG0, use old way */ 234 /* if the page is not in KSEG0, use old way */
235 if ((long)KSEGX(page) != (long)CKSEG0) 235 if ((long)KSEGX((unsigned long)page) != (long)CKSEG0)
236 return clear_page_cpu(page); 236 return clear_page_cpu(page);
237 237
238 page_descr[cpu].dscr_a = to_phys | M_DM_DSCRA_ZERO_MEM | 238 page_descr[cpu].dscr_a = to_phys | M_DM_DSCRA_ZERO_MEM |
@@ -252,13 +252,13 @@ void clear_page(void *page)
252 252
253void copy_page(void *to, void *from) 253void copy_page(void *to, void *from)
254{ 254{
255 u64 from_phys = CPHYSADDR(from); 255 u64 from_phys = CPHYSADDR((unsigned long)from);
256 u64 to_phys = CPHYSADDR(to); 256 u64 to_phys = CPHYSADDR((unsigned long)to);
257 unsigned int cpu = smp_processor_id(); 257 unsigned int cpu = smp_processor_id();
258 258
259 /* if any page is not in KSEG0, use old way */ 259 /* if any page is not in KSEG0, use old way */
260 if ((long)KSEGX(to) != (long)CKSEG0 260 if ((long)KSEGX((unsigned long)to) != (long)CKSEG0
261 || (long)KSEGX(from) != (long)CKSEG0) 261 || (long)KSEGX((unsigned long)from) != (long)CKSEG0)
262 return copy_page_cpu(to, from); 262 return copy_page_cpu(to, from);
263 263
264 page_descr[cpu].dscr_a = to_phys | M_DM_DSCRA_L2C_DEST | 264 page_descr[cpu].dscr_a = to_phys | M_DM_DSCRA_L2C_DEST |
diff --git a/arch/mips/pci/pci.c b/arch/mips/pci/pci.c
index 6e6981fd7934..f9471d77c096 100644
--- a/arch/mips/pci/pci.c
+++ b/arch/mips/pci/pci.c
@@ -177,8 +177,15 @@ static int pcibios_enable_resources(struct pci_dev *dev, int mask)
177 continue; 177 continue;
178 178
179 r = &dev->resource[idx]; 179 r = &dev->resource[idx];
180 if (!(r->flags & (IORESOURCE_IO | IORESOURCE_MEM)))
181 continue;
182 if ((idx == PCI_ROM_RESOURCE) &&
183 (!(r->flags & IORESOURCE_ROM_ENABLE)))
184 continue;
180 if (!r->start && r->end) { 185 if (!r->start && r->end) {
181 printk(KERN_ERR "PCI: Device %s not available because of resource collisions\n", pci_name(dev)); 186 printk(KERN_ERR "PCI: Device %s not available "
187 "because of resource collisions\n",
188 pci_name(dev));
182 return -EINVAL; 189 return -EINVAL;
183 } 190 }
184 if (r->flags & IORESOURCE_IO) 191 if (r->flags & IORESOURCE_IO)
@@ -186,10 +193,9 @@ static int pcibios_enable_resources(struct pci_dev *dev, int mask)
186 if (r->flags & IORESOURCE_MEM) 193 if (r->flags & IORESOURCE_MEM)
187 cmd |= PCI_COMMAND_MEMORY; 194 cmd |= PCI_COMMAND_MEMORY;
188 } 195 }
189 if (dev->resource[PCI_ROM_RESOURCE].start)
190 cmd |= PCI_COMMAND_MEMORY;
191 if (cmd != old_cmd) { 196 if (cmd != old_cmd) {
192 printk("PCI: Enabling device %s (%04x -> %04x)\n", pci_name(dev), old_cmd, cmd); 197 printk("PCI: Enabling device %s (%04x -> %04x)\n",
198 pci_name(dev), old_cmd, cmd);
193 pci_write_config_word(dev, PCI_COMMAND, cmd); 199 pci_write_config_word(dev, PCI_COMMAND, cmd);
194 } 200 }
195 return 0; 201 return 0;
diff --git a/arch/mips/sibyte/bcm1480/smp.c b/arch/mips/sibyte/bcm1480/smp.c
index 183c460b9ca1..bd9eeb43ed0e 100644
--- a/arch/mips/sibyte/bcm1480/smp.c
+++ b/arch/mips/sibyte/bcm1480/smp.c
@@ -110,7 +110,6 @@ static void __cpuinit bcm1480_smp_finish(void)
110 110
111 sb1480_clockevent_init(); 111 sb1480_clockevent_init();
112 local_irq_enable(); 112 local_irq_enable();
113 bcm1480_smp_finish();
114} 113}
115 114
116/* 115/*
diff --git a/arch/mn10300/Kconfig b/arch/mn10300/Kconfig
index eedc3a5e0d9b..6a6409adc564 100644
--- a/arch/mn10300/Kconfig
+++ b/arch/mn10300/Kconfig
@@ -63,6 +63,10 @@ config GENERIC_HARDIRQS
63config HOTPLUG_CPU 63config HOTPLUG_CPU
64 def_bool n 64 def_bool n
65 65
66config HZ
67 int
68 default 1000
69
66mainmenu "Matsushita MN10300/AM33 Kernel Configuration" 70mainmenu "Matsushita MN10300/AM33 Kernel Configuration"
67 71
68source "init/Kconfig" 72source "init/Kconfig"
diff --git a/arch/mn10300/configs/asb2303_defconfig b/arch/mn10300/configs/asb2303_defconfig
index ca9876a111d3..3aa8906b3dea 100644
--- a/arch/mn10300/configs/asb2303_defconfig
+++ b/arch/mn10300/configs/asb2303_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc2 3# Linux kernel version: 2.6.25-rc2
4# Fri Nov 16 13:36:38 2007 4# Tue Feb 19 18:52:24 2008
5# 5#
6CONFIG_MN10300=y 6CONFIG_MN10300=y
7CONFIG_AM33=y 7CONFIG_AM33=y
@@ -21,6 +21,7 @@ CONFIG_ARCH_HAS_ILOG2_U32=y
21# CONFIG_ARCH_SUPPORTS_AOUT is not set 21# CONFIG_ARCH_SUPPORTS_AOUT is not set
22CONFIG_GENERIC_HARDIRQS=y 22CONFIG_GENERIC_HARDIRQS=y
23# CONFIG_HOTPLUG_CPU is not set 23# CONFIG_HOTPLUG_CPU is not set
24CONFIG_HZ=1000
24CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 25CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
25 26
26# 27#
@@ -38,15 +39,16 @@ CONFIG_SYSVIPC_SYSCTL=y
38CONFIG_BSD_PROCESS_ACCT=y 39CONFIG_BSD_PROCESS_ACCT=y
39# CONFIG_BSD_PROCESS_ACCT_V3 is not set 40# CONFIG_BSD_PROCESS_ACCT_V3 is not set
40# CONFIG_TASKSTATS is not set 41# CONFIG_TASKSTATS is not set
41# CONFIG_USER_NS is not set
42# CONFIG_PID_NS is not set
43# CONFIG_AUDIT is not set 42# CONFIG_AUDIT is not set
44# CONFIG_IKCONFIG is not set 43# CONFIG_IKCONFIG is not set
45CONFIG_LOG_BUF_SHIFT=14 44CONFIG_LOG_BUF_SHIFT=14
46# CONFIG_CGROUPS is not set 45# CONFIG_CGROUPS is not set
47# CONFIG_FAIR_GROUP_SCHED is not set 46# CONFIG_GROUP_SCHED is not set
47# CONFIG_USER_SCHED is not set
48# CONFIG_CGROUP_SCHED is not set
48# CONFIG_SYSFS_DEPRECATED is not set 49# CONFIG_SYSFS_DEPRECATED is not set
49# CONFIG_RELAY is not set 50# CONFIG_RELAY is not set
51# CONFIG_NAMESPACES is not set
50# CONFIG_BLK_DEV_INITRD is not set 52# CONFIG_BLK_DEV_INITRD is not set
51# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 53# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
52CONFIG_SYSCTL=y 54CONFIG_SYSCTL=y
@@ -57,22 +59,33 @@ CONFIG_SYSCTL_SYSCALL=y
57CONFIG_PRINTK=y 59CONFIG_PRINTK=y
58CONFIG_BUG=y 60CONFIG_BUG=y
59CONFIG_ELF_CORE=y 61CONFIG_ELF_CORE=y
62CONFIG_COMPAT_BRK=y
60CONFIG_BASE_FULL=y 63CONFIG_BASE_FULL=y
61CONFIG_FUTEX=y 64CONFIG_FUTEX=y
62CONFIG_ANON_INODES=y 65CONFIG_ANON_INODES=y
63CONFIG_EPOLL=y 66CONFIG_EPOLL=y
64CONFIG_SIGNALFD=y 67CONFIG_SIGNALFD=y
68CONFIG_TIMERFD=y
65CONFIG_EVENTFD=y 69CONFIG_EVENTFD=y
66CONFIG_SHMEM=y 70CONFIG_SHMEM=y
67# CONFIG_VM_EVENT_COUNTERS is not set 71# CONFIG_VM_EVENT_COUNTERS is not set
68CONFIG_SLAB=y 72CONFIG_SLAB=y
69# CONFIG_SLUB is not set 73# CONFIG_SLUB is not set
70# CONFIG_SLOB is not set 74# CONFIG_SLOB is not set
75CONFIG_PROFILING=y
76# CONFIG_MARKERS is not set
77CONFIG_OPROFILE=y
78# CONFIG_HAVE_OPROFILE is not set
79# CONFIG_HAVE_KPROBES is not set
80# CONFIG_PROC_PAGE_MONITOR is not set
81CONFIG_SLABINFO=y
71CONFIG_RT_MUTEXES=y 82CONFIG_RT_MUTEXES=y
72# CONFIG_TINY_SHMEM is not set 83# CONFIG_TINY_SHMEM is not set
73CONFIG_BASE_SMALL=0 84CONFIG_BASE_SMALL=0
74# CONFIG_MODULES is not set 85# CONFIG_MODULES is not set
75# CONFIG_BLOCK is not set 86# CONFIG_BLOCK is not set
87CONFIG_CLASSIC_RCU=y
88# CONFIG_PREEMPT_RCU is not set
76 89
77# 90#
78# Matsushita MN10300 system setup 91# Matsushita MN10300 system setup
@@ -206,6 +219,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
206# 219#
207# CONFIG_NET_PKTGEN is not set 220# CONFIG_NET_PKTGEN is not set
208# CONFIG_HAMRADIO is not set 221# CONFIG_HAMRADIO is not set
222# CONFIG_CAN is not set
209# CONFIG_IRDA is not set 223# CONFIG_IRDA is not set
210# CONFIG_BT is not set 224# CONFIG_BT is not set
211# CONFIG_AF_RXRPC is not set 225# CONFIG_AF_RXRPC is not set
@@ -311,6 +325,8 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=2
311# CONFIG_PARPORT is not set 325# CONFIG_PARPORT is not set
312CONFIG_MISC_DEVICES=y 326CONFIG_MISC_DEVICES=y
313# CONFIG_EEPROM_93CX6 is not set 327# CONFIG_EEPROM_93CX6 is not set
328# CONFIG_ENCLOSURE_SERVICES is not set
329# CONFIG_HAVE_IDE is not set
314 330
315# 331#
316# SCSI device support 332# SCSI device support
@@ -345,7 +361,6 @@ CONFIG_SMC91X=y
345# CONFIG_WAN is not set 361# CONFIG_WAN is not set
346# CONFIG_PPP is not set 362# CONFIG_PPP is not set
347# CONFIG_SLIP is not set 363# CONFIG_SLIP is not set
348# CONFIG_SHAPER is not set
349# CONFIG_NETCONSOLE is not set 364# CONFIG_NETCONSOLE is not set
350# CONFIG_NETPOLL is not set 365# CONFIG_NETPOLL is not set
351# CONFIG_NET_POLL_CONTROLLER is not set 366# CONFIG_NET_POLL_CONTROLLER is not set
@@ -405,6 +420,7 @@ CONFIG_RTC=y
405# CONFIG_W1 is not set 420# CONFIG_W1 is not set
406# CONFIG_POWER_SUPPLY is not set 421# CONFIG_POWER_SUPPLY is not set
407# CONFIG_HWMON is not set 422# CONFIG_HWMON is not set
423# CONFIG_THERMAL is not set
408# CONFIG_WATCHDOG is not set 424# CONFIG_WATCHDOG is not set
409 425
410# 426#
@@ -444,6 +460,7 @@ CONFIG_SSB_POSSIBLE=y
444# CONFIG_SOUND is not set 460# CONFIG_SOUND is not set
445# CONFIG_USB_SUPPORT is not set 461# CONFIG_USB_SUPPORT is not set
446# CONFIG_MMC is not set 462# CONFIG_MMC is not set
463# CONFIG_MEMSTICK is not set
447# CONFIG_NEW_LEDS is not set 464# CONFIG_NEW_LEDS is not set
448# CONFIG_RTC_CLASS is not set 465# CONFIG_RTC_CLASS is not set
449 466
@@ -455,10 +472,10 @@ CONFIG_SSB_POSSIBLE=y
455# 472#
456# File systems 473# File systems
457# 474#
475CONFIG_DNOTIFY=y
458CONFIG_INOTIFY=y 476CONFIG_INOTIFY=y
459CONFIG_INOTIFY_USER=y 477CONFIG_INOTIFY_USER=y
460# CONFIG_QUOTA is not set 478# CONFIG_QUOTA is not set
461CONFIG_DNOTIFY=y
462# CONFIG_AUTOFS_FS is not set 479# CONFIG_AUTOFS_FS is not set
463# CONFIG_AUTOFS4_FS is not set 480# CONFIG_AUTOFS4_FS is not set
464# CONFIG_FUSE_FS is not set 481# CONFIG_FUSE_FS is not set
@@ -554,5 +571,3 @@ CONFIG_HAS_DMA=y
554# 571#
555# Profiling support 572# Profiling support
556# 573#
557CONFIG_PROFILING=y
558CONFIG_OPROFILE=y
diff --git a/arch/mn10300/kernel/gdb-io-ttysm.c b/arch/mn10300/kernel/gdb-io-ttysm.c
index c5451592d403..e94c25e8ca05 100644
--- a/arch/mn10300/kernel/gdb-io-ttysm.c
+++ b/arch/mn10300/kernel/gdb-io-ttysm.c
@@ -196,6 +196,7 @@ int gdbstub_io_rx_char(unsigned char *_ch, int nonblock)
196try_again: 196try_again:
197 /* pull chars out of the buffer */ 197 /* pull chars out of the buffer */
198 ix = gdbstub_rx_outp; 198 ix = gdbstub_rx_outp;
199 barrier();
199 if (ix == gdbstub_rx_inp) { 200 if (ix == gdbstub_rx_inp) {
200 if (nonblock) 201 if (nonblock)
201 return -EAGAIN; 202 return -EAGAIN;
@@ -207,6 +208,7 @@ try_again:
207 208
208 ch = gdbstub_rx_buffer[ix++]; 209 ch = gdbstub_rx_buffer[ix++];
209 st = gdbstub_rx_buffer[ix++]; 210 st = gdbstub_rx_buffer[ix++];
211 barrier();
210 gdbstub_rx_outp = ix & (PAGE_SIZE - 1); 212 gdbstub_rx_outp = ix & (PAGE_SIZE - 1);
211 213
212 st &= SC01STR_RXF | SC01STR_RBF | SC01STR_FEF | SC01STR_PEF | 214 st &= SC01STR_RXF | SC01STR_RBF | SC01STR_FEF | SC01STR_PEF |
diff --git a/arch/mn10300/kernel/time.c b/arch/mn10300/kernel/time.c
index ff492e3b3457..babb7c2ac377 100644
--- a/arch/mn10300/kernel/time.c
+++ b/arch/mn10300/kernel/time.c
@@ -84,11 +84,13 @@ static irqreturn_t timer_interrupt(int irq, void *dev_id)
84 /* advance the kernel's time tracking system */ 84 /* advance the kernel's time tracking system */
85 profile_tick(CPU_PROFILING); 85 profile_tick(CPU_PROFILING);
86 do_timer(1); 86 do_timer(1);
87 update_process_times(user_mode(get_irq_regs()));
88 check_rtc_time(); 87 check_rtc_time();
89 } 88 }
90 89
91 write_sequnlock(&xtime_lock); 90 write_sequnlock(&xtime_lock);
91
92 update_process_times(user_mode(get_irq_regs()));
93
92 return IRQ_HANDLED; 94 return IRQ_HANDLED;
93} 95}
94 96
diff --git a/arch/mn10300/kernel/traps.c b/arch/mn10300/kernel/traps.c
index 8b9dc6d9dcc6..fcb9a03d46a8 100644
--- a/arch/mn10300/kernel/traps.c
+++ b/arch/mn10300/kernel/traps.c
@@ -391,7 +391,7 @@ static asmlinkage void unsupported_syscall(struct pt_regs *regs,
391 if (code == EXCEP_SYSCALL15 && !user_mode(regs)) { 391 if (code == EXCEP_SYSCALL15 && !user_mode(regs)) {
392 if (report_bug(regs->pc, regs) == BUG_TRAP_TYPE_BUG) { 392 if (report_bug(regs->pc, regs) == BUG_TRAP_TYPE_BUG) {
393#ifdef CONFIG_GDBSTUB 393#ifdef CONFIG_GDBSTUB
394 __gdbstub_bug_trap(); 394 gdbstub_intercept(regs, code);
395#endif 395#endif
396 } 396 }
397 } 397 }
diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
index 6845482f0093..1c6ce3536e4c 100644
--- a/arch/powerpc/Makefile
+++ b/arch/powerpc/Makefile
@@ -176,7 +176,7 @@ define archhelp
176 @echo ' *_defconfig - Select default config from arch/$(ARCH)/configs' 176 @echo ' *_defconfig - Select default config from arch/$(ARCH)/configs'
177endef 177endef
178 178
179install: vdso_install 179install:
180 $(Q)$(MAKE) $(build)=$(boot) install 180 $(Q)$(MAKE) $(build)=$(boot) install
181 181
182vdso_install: 182vdso_install:
diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
index 63d07ccbb9db..e3993a607584 100644
--- a/arch/powerpc/boot/Makefile
+++ b/arch/powerpc/boot/Makefile
@@ -35,10 +35,10 @@ endif
35 35
36BOOTCFLAGS += -I$(obj) -I$(srctree)/$(obj) -I$(srctree)/$(src)/libfdt 36BOOTCFLAGS += -I$(obj) -I$(srctree)/$(obj) -I$(srctree)/$(src)/libfdt
37 37
38$(obj)/4xx.o: BOOTCFLAGS += -mcpu=440 38$(obj)/4xx.o: BOOTCFLAGS += -mcpu=405
39$(obj)/ebony.o: BOOTCFLAGS += -mcpu=440 39$(obj)/ebony.o: BOOTCFLAGS += -mcpu=405
40$(obj)/cuboot-taishan.o: BOOTCFLAGS += -mcpu=440 40$(obj)/cuboot-taishan.o: BOOTCFLAGS += -mcpu=405
41$(obj)/cuboot-katmai.o: BOOTCFLAGS += -mcpu=440 41$(obj)/cuboot-katmai.o: BOOTCFLAGS += -mcpu=405
42$(obj)/treeboot-walnut.o: BOOTCFLAGS += -mcpu=405 42$(obj)/treeboot-walnut.o: BOOTCFLAGS += -mcpu=405
43 43
44 44
diff --git a/arch/powerpc/boot/dts/bamboo.dts b/arch/powerpc/boot/dts/bamboo.dts
index 29f1a6f3e373..7dc37c9a7446 100644
--- a/arch/powerpc/boot/dts/bamboo.dts
+++ b/arch/powerpc/boot/dts/bamboo.dts
@@ -185,7 +185,6 @@
185 }; 185 };
186 186
187 IIC0: i2c@ef600700 { 187 IIC0: i2c@ef600700 {
188 device_type = "i2c";
189 compatible = "ibm,iic-440ep", "ibm,iic-440gp", "ibm,iic"; 188 compatible = "ibm,iic-440ep", "ibm,iic-440gp", "ibm,iic";
190 reg = <ef600700 14>; 189 reg = <ef600700 14>;
191 interrupt-parent = <&UIC0>; 190 interrupt-parent = <&UIC0>;
@@ -193,7 +192,6 @@
193 }; 192 };
194 193
195 IIC1: i2c@ef600800 { 194 IIC1: i2c@ef600800 {
196 device_type = "i2c";
197 compatible = "ibm,iic-440ep", "ibm,iic-440gp", "ibm,iic"; 195 compatible = "ibm,iic-440ep", "ibm,iic-440gp", "ibm,iic";
198 reg = <ef600800 14>; 196 reg = <ef600800 14>;
199 interrupt-parent = <&UIC0>; 197 interrupt-parent = <&UIC0>;
@@ -201,7 +199,6 @@
201 }; 199 };
202 200
203 ZMII0: emac-zmii@ef600d00 { 201 ZMII0: emac-zmii@ef600d00 {
204 device_type = "zmii-interface";
205 compatible = "ibm,zmii-440ep", "ibm,zmii-440gp", "ibm,zmii"; 202 compatible = "ibm,zmii-440ep", "ibm,zmii-440gp", "ibm,zmii";
206 reg = <ef600d00 c>; 203 reg = <ef600d00 c>;
207 }; 204 };
diff --git a/arch/powerpc/boot/dts/ebony.dts b/arch/powerpc/boot/dts/ebony.dts
index 7aad135a44b0..0b000cb7ed8b 100644
--- a/arch/powerpc/boot/dts/ebony.dts
+++ b/arch/powerpc/boot/dts/ebony.dts
@@ -216,7 +216,6 @@
216 216
217 IIC0: i2c@40000400 { 217 IIC0: i2c@40000400 {
218 /* FIXME */ 218 /* FIXME */
219 device_type = "i2c";
220 compatible = "ibm,iic-440gp", "ibm,iic"; 219 compatible = "ibm,iic-440gp", "ibm,iic";
221 reg = <40000400 14>; 220 reg = <40000400 14>;
222 interrupt-parent = <&UIC0>; 221 interrupt-parent = <&UIC0>;
@@ -224,7 +223,6 @@
224 }; 223 };
225 IIC1: i2c@40000500 { 224 IIC1: i2c@40000500 {
226 /* FIXME */ 225 /* FIXME */
227 device_type = "i2c";
228 compatible = "ibm,iic-440gp", "ibm,iic"; 226 compatible = "ibm,iic-440gp", "ibm,iic";
229 reg = <40000500 14>; 227 reg = <40000500 14>;
230 interrupt-parent = <&UIC0>; 228 interrupt-parent = <&UIC0>;
diff --git a/arch/powerpc/boot/dts/katmai.dts b/arch/powerpc/boot/dts/katmai.dts
index 9bdfc0ff3c24..bc32ac7250ec 100644
--- a/arch/powerpc/boot/dts/katmai.dts
+++ b/arch/powerpc/boot/dts/katmai.dts
@@ -187,7 +187,6 @@
187 }; 187 };
188 188
189 IIC0: i2c@10000400 { 189 IIC0: i2c@10000400 {
190 device_type = "i2c";
191 compatible = "ibm,iic-440spe", "ibm,iic-440gp", "ibm,iic"; 190 compatible = "ibm,iic-440spe", "ibm,iic-440gp", "ibm,iic";
192 reg = <10000400 14>; 191 reg = <10000400 14>;
193 interrupt-parent = <&UIC0>; 192 interrupt-parent = <&UIC0>;
@@ -195,7 +194,6 @@
195 }; 194 };
196 195
197 IIC1: i2c@10000500 { 196 IIC1: i2c@10000500 {
198 device_type = "i2c";
199 compatible = "ibm,iic-440spe", "ibm,iic-440gp", "ibm,iic"; 197 compatible = "ibm,iic-440spe", "ibm,iic-440gp", "ibm,iic";
200 reg = <10000500 14>; 198 reg = <10000500 14>;
201 interrupt-parent = <&UIC0>; 199 interrupt-parent = <&UIC0>;
diff --git a/arch/powerpc/boot/dts/kilauea.dts b/arch/powerpc/boot/dts/kilauea.dts
index 67c7ea179a07..8baef61f31cd 100644
--- a/arch/powerpc/boot/dts/kilauea.dts
+++ b/arch/powerpc/boot/dts/kilauea.dts
@@ -182,7 +182,6 @@
182 }; 182 };
183 183
184 IIC0: i2c@ef600400 { 184 IIC0: i2c@ef600400 {
185 device_type = "i2c";
186 compatible = "ibm,iic-405ex", "ibm,iic"; 185 compatible = "ibm,iic-405ex", "ibm,iic";
187 reg = <ef600400 14>; 186 reg = <ef600400 14>;
188 interrupt-parent = <&UIC0>; 187 interrupt-parent = <&UIC0>;
@@ -190,7 +189,6 @@
190 }; 189 };
191 190
192 IIC1: i2c@ef600500 { 191 IIC1: i2c@ef600500 {
193 device_type = "i2c";
194 compatible = "ibm,iic-405ex", "ibm,iic"; 192 compatible = "ibm,iic-405ex", "ibm,iic";
195 reg = <ef600500 14>; 193 reg = <ef600500 14>;
196 interrupt-parent = <&UIC0>; 194 interrupt-parent = <&UIC0>;
@@ -199,7 +197,6 @@
199 197
200 198
201 RGMII0: emac-rgmii@ef600b00 { 199 RGMII0: emac-rgmii@ef600b00 {
202 device_type = "rgmii-interface";
203 compatible = "ibm,rgmii-405ex", "ibm,rgmii"; 200 compatible = "ibm,rgmii-405ex", "ibm,rgmii";
204 reg = <ef600b00 104>; 201 reg = <ef600b00 104>;
205 has-mdio; 202 has-mdio;
diff --git a/arch/powerpc/boot/dts/makalu.dts b/arch/powerpc/boot/dts/makalu.dts
index bdd70e4596ae..710c01168179 100644
--- a/arch/powerpc/boot/dts/makalu.dts
+++ b/arch/powerpc/boot/dts/makalu.dts
@@ -182,7 +182,6 @@
182 }; 182 };
183 183
184 IIC0: i2c@ef600400 { 184 IIC0: i2c@ef600400 {
185 device_type = "i2c";
186 compatible = "ibm,iic-405ex", "ibm,iic"; 185 compatible = "ibm,iic-405ex", "ibm,iic";
187 reg = <ef600400 14>; 186 reg = <ef600400 14>;
188 interrupt-parent = <&UIC0>; 187 interrupt-parent = <&UIC0>;
@@ -190,7 +189,6 @@
190 }; 189 };
191 190
192 IIC1: i2c@ef600500 { 191 IIC1: i2c@ef600500 {
193 device_type = "i2c";
194 compatible = "ibm,iic-405ex", "ibm,iic"; 192 compatible = "ibm,iic-405ex", "ibm,iic";
195 reg = <ef600500 14>; 193 reg = <ef600500 14>;
196 interrupt-parent = <&UIC0>; 194 interrupt-parent = <&UIC0>;
@@ -199,7 +197,6 @@
199 197
200 198
201 RGMII0: emac-rgmii@ef600b00 { 199 RGMII0: emac-rgmii@ef600b00 {
202 device_type = "rgmii-interface";
203 compatible = "ibm,rgmii-405ex", "ibm,rgmii"; 200 compatible = "ibm,rgmii-405ex", "ibm,rgmii";
204 reg = <ef600b00 104>; 201 reg = <ef600b00 104>;
205 has-mdio; 202 has-mdio;
diff --git a/arch/powerpc/boot/dts/rainier.dts b/arch/powerpc/boot/dts/rainier.dts
index d3c2ac394ce9..f947c75a2e94 100644
--- a/arch/powerpc/boot/dts/rainier.dts
+++ b/arch/powerpc/boot/dts/rainier.dts
@@ -229,7 +229,6 @@
229 }; 229 };
230 230
231 IIC0: i2c@ef600700 { 231 IIC0: i2c@ef600700 {
232 device_type = "i2c";
233 compatible = "ibm,iic-440grx", "ibm,iic"; 232 compatible = "ibm,iic-440grx", "ibm,iic";
234 reg = <ef600700 14>; 233 reg = <ef600700 14>;
235 interrupt-parent = <&UIC0>; 234 interrupt-parent = <&UIC0>;
@@ -237,7 +236,6 @@
237 }; 236 };
238 237
239 IIC1: i2c@ef600800 { 238 IIC1: i2c@ef600800 {
240 device_type = "i2c";
241 compatible = "ibm,iic-440grx", "ibm,iic"; 239 compatible = "ibm,iic-440grx", "ibm,iic";
242 reg = <ef600800 14>; 240 reg = <ef600800 14>;
243 interrupt-parent = <&UIC0>; 241 interrupt-parent = <&UIC0>;
@@ -245,13 +243,11 @@
245 }; 243 };
246 244
247 ZMII0: emac-zmii@ef600d00 { 245 ZMII0: emac-zmii@ef600d00 {
248 device_type = "zmii-interface";
249 compatible = "ibm,zmii-440grx", "ibm,zmii"; 246 compatible = "ibm,zmii-440grx", "ibm,zmii";
250 reg = <ef600d00 c>; 247 reg = <ef600d00 c>;
251 }; 248 };
252 249
253 RGMII0: emac-rgmii@ef601000 { 250 RGMII0: emac-rgmii@ef601000 {
254 device_type = "rgmii-interface";
255 compatible = "ibm,rgmii-440grx", "ibm,rgmii"; 251 compatible = "ibm,rgmii-440grx", "ibm,rgmii";
256 reg = <ef601000 8>; 252 reg = <ef601000 8>;
257 has-mdio; 253 has-mdio;
diff --git a/arch/powerpc/boot/dts/sequoia.dts b/arch/powerpc/boot/dts/sequoia.dts
index 5c13d46f441d..8db9515d7dc3 100644
--- a/arch/powerpc/boot/dts/sequoia.dts
+++ b/arch/powerpc/boot/dts/sequoia.dts
@@ -244,7 +244,6 @@
244 }; 244 };
245 245
246 IIC0: i2c@ef600700 { 246 IIC0: i2c@ef600700 {
247 device_type = "i2c";
248 compatible = "ibm,iic-440epx", "ibm,iic"; 247 compatible = "ibm,iic-440epx", "ibm,iic";
249 reg = <ef600700 14>; 248 reg = <ef600700 14>;
250 interrupt-parent = <&UIC0>; 249 interrupt-parent = <&UIC0>;
@@ -252,7 +251,6 @@
252 }; 251 };
253 252
254 IIC1: i2c@ef600800 { 253 IIC1: i2c@ef600800 {
255 device_type = "i2c";
256 compatible = "ibm,iic-440epx", "ibm,iic"; 254 compatible = "ibm,iic-440epx", "ibm,iic";
257 reg = <ef600800 14>; 255 reg = <ef600800 14>;
258 interrupt-parent = <&UIC0>; 256 interrupt-parent = <&UIC0>;
@@ -260,13 +258,11 @@
260 }; 258 };
261 259
262 ZMII0: emac-zmii@ef600d00 { 260 ZMII0: emac-zmii@ef600d00 {
263 device_type = "zmii-interface";
264 compatible = "ibm,zmii-440epx", "ibm,zmii"; 261 compatible = "ibm,zmii-440epx", "ibm,zmii";
265 reg = <ef600d00 c>; 262 reg = <ef600d00 c>;
266 }; 263 };
267 264
268 RGMII0: emac-rgmii@ef601000 { 265 RGMII0: emac-rgmii@ef601000 {
269 device_type = "rgmii-interface";
270 compatible = "ibm,rgmii-440epx", "ibm,rgmii"; 266 compatible = "ibm,rgmii-440epx", "ibm,rgmii";
271 reg = <ef601000 8>; 267 reg = <ef601000 8>;
272 has-mdio; 268 has-mdio;
diff --git a/arch/powerpc/boot/dts/taishan.dts b/arch/powerpc/boot/dts/taishan.dts
index 0706a4a13b9f..8278068c802c 100644
--- a/arch/powerpc/boot/dts/taishan.dts
+++ b/arch/powerpc/boot/dts/taishan.dts
@@ -203,7 +203,6 @@
203 203
204 IIC0: i2c@40000400 { 204 IIC0: i2c@40000400 {
205 /* FIXME */ 205 /* FIXME */
206 device_type = "i2c";
207 compatible = "ibm,iic-440gp", "ibm,iic"; 206 compatible = "ibm,iic-440gp", "ibm,iic";
208 reg = <40000400 14>; 207 reg = <40000400 14>;
209 interrupt-parent = <&UIC0>; 208 interrupt-parent = <&UIC0>;
@@ -211,7 +210,6 @@
211 }; 210 };
212 IIC1: i2c@40000500 { 211 IIC1: i2c@40000500 {
213 /* FIXME */ 212 /* FIXME */
214 device_type = "i2c";
215 compatible = "ibm,iic-440gp", "ibm,iic"; 213 compatible = "ibm,iic-440gp", "ibm,iic";
216 reg = <40000500 14>; 214 reg = <40000500 14>;
217 interrupt-parent = <&UIC0>; 215 interrupt-parent = <&UIC0>;
@@ -225,13 +223,11 @@
225 }; 223 };
226 224
227 ZMII0: emac-zmii@40000780 { 225 ZMII0: emac-zmii@40000780 {
228 device_type = "zgmii-interface";
229 compatible = "ibm,zmii-440gx", "ibm,zmii"; 226 compatible = "ibm,zmii-440gx", "ibm,zmii";
230 reg = <40000780 c>; 227 reg = <40000780 c>;
231 }; 228 };
232 229
233 RGMII0: emac-rgmii@40000790 { 230 RGMII0: emac-rgmii@40000790 {
234 device_type = "rgmii-interface";
235 compatible = "ibm,rgmii"; 231 compatible = "ibm,rgmii";
236 reg = <40000790 8>; 232 reg = <40000790 8>;
237 }; 233 };
diff --git a/arch/powerpc/configs/bamboo_defconfig b/arch/powerpc/configs/bamboo_defconfig
index 1ed9afc9b281..c44db554cdc6 100644
--- a/arch/powerpc/configs/bamboo_defconfig
+++ b/arch/powerpc/configs/bamboo_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc6 3# Linux kernel version: 2.6.25-rc2
4# Mon Dec 24 10:49:50 2007 4# Fri Feb 15 21:36:39 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -30,6 +30,7 @@ CONFIG_GENERIC_TIME=y
30CONFIG_GENERIC_TIME_VSYSCALL=y 30CONFIG_GENERIC_TIME_VSYSCALL=y
31CONFIG_GENERIC_CLOCKEVENTS=y 31CONFIG_GENERIC_CLOCKEVENTS=y
32CONFIG_GENERIC_HARDIRQS=y 32CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
34CONFIG_RWSEM_XCHGADD_ALGORITHM=y 35CONFIG_RWSEM_XCHGADD_ALGORITHM=y
35CONFIG_ARCH_HAS_ILOG2_U32=y 36CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -68,17 +69,18 @@ CONFIG_SYSVIPC_SYSCTL=y
68CONFIG_POSIX_MQUEUE=y 69CONFIG_POSIX_MQUEUE=y
69# CONFIG_BSD_PROCESS_ACCT is not set 70# CONFIG_BSD_PROCESS_ACCT is not set
70# CONFIG_TASKSTATS is not set 71# CONFIG_TASKSTATS is not set
71# CONFIG_USER_NS is not set
72# CONFIG_PID_NS is not set
73# CONFIG_AUDIT is not set 72# CONFIG_AUDIT is not set
74# CONFIG_IKCONFIG is not set 73# CONFIG_IKCONFIG is not set
75CONFIG_LOG_BUF_SHIFT=14 74CONFIG_LOG_BUF_SHIFT=14
76# CONFIG_CGROUPS is not set 75# CONFIG_CGROUPS is not set
76CONFIG_GROUP_SCHED=y
77CONFIG_FAIR_GROUP_SCHED=y 77CONFIG_FAIR_GROUP_SCHED=y
78CONFIG_FAIR_USER_SCHED=y 78# CONFIG_RT_GROUP_SCHED is not set
79# CONFIG_FAIR_CGROUP_SCHED is not set 79CONFIG_USER_SCHED=y
80# CONFIG_CGROUP_SCHED is not set
80CONFIG_SYSFS_DEPRECATED=y 81CONFIG_SYSFS_DEPRECATED=y
81# CONFIG_RELAY is not set 82# CONFIG_RELAY is not set
83# CONFIG_NAMESPACES is not set
82CONFIG_BLK_DEV_INITRD=y 84CONFIG_BLK_DEV_INITRD=y
83CONFIG_INITRAMFS_SOURCE="" 85CONFIG_INITRAMFS_SOURCE=""
84# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 86# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
@@ -92,11 +94,13 @@ CONFIG_HOTPLUG=y
92CONFIG_PRINTK=y 94CONFIG_PRINTK=y
93CONFIG_BUG=y 95CONFIG_BUG=y
94CONFIG_ELF_CORE=y 96CONFIG_ELF_CORE=y
97CONFIG_COMPAT_BRK=y
95CONFIG_BASE_FULL=y 98CONFIG_BASE_FULL=y
96CONFIG_FUTEX=y 99CONFIG_FUTEX=y
97CONFIG_ANON_INODES=y 100CONFIG_ANON_INODES=y
98CONFIG_EPOLL=y 101CONFIG_EPOLL=y
99CONFIG_SIGNALFD=y 102CONFIG_SIGNALFD=y
103CONFIG_TIMERFD=y
100CONFIG_EVENTFD=y 104CONFIG_EVENTFD=y
101CONFIG_SHMEM=y 105CONFIG_SHMEM=y
102CONFIG_VM_EVENT_COUNTERS=y 106CONFIG_VM_EVENT_COUNTERS=y
@@ -104,6 +108,13 @@ CONFIG_SLUB_DEBUG=y
104# CONFIG_SLAB is not set 108# CONFIG_SLAB is not set
105CONFIG_SLUB=y 109CONFIG_SLUB=y
106# CONFIG_SLOB is not set 110# CONFIG_SLOB is not set
111# CONFIG_PROFILING is not set
112# CONFIG_MARKERS is not set
113CONFIG_HAVE_OPROFILE=y
114# CONFIG_KPROBES is not set
115CONFIG_HAVE_KPROBES=y
116CONFIG_PROC_PAGE_MONITOR=y
117CONFIG_SLABINFO=y
107CONFIG_RT_MUTEXES=y 118CONFIG_RT_MUTEXES=y
108# CONFIG_TINY_SHMEM is not set 119# CONFIG_TINY_SHMEM is not set
109CONFIG_BASE_SMALL=0 120CONFIG_BASE_SMALL=0
@@ -131,13 +142,15 @@ CONFIG_DEFAULT_AS=y
131# CONFIG_DEFAULT_CFQ is not set 142# CONFIG_DEFAULT_CFQ is not set
132# CONFIG_DEFAULT_NOOP is not set 143# CONFIG_DEFAULT_NOOP is not set
133CONFIG_DEFAULT_IOSCHED="anticipatory" 144CONFIG_DEFAULT_IOSCHED="anticipatory"
145CONFIG_CLASSIC_RCU=y
146# CONFIG_PREEMPT_RCU is not set
134# CONFIG_PPC4xx_PCI_EXPRESS is not set 147# CONFIG_PPC4xx_PCI_EXPRESS is not set
135 148
136# 149#
137# Platform support 150# Platform support
138# 151#
139# CONFIG_PPC_MPC52xx is not set 152# CONFIG_PPC_MPC512x is not set
140# CONFIG_PPC_MPC5200 is not set 153# CONFIG_PPC_MPC5121 is not set
141# CONFIG_PPC_CELL is not set 154# CONFIG_PPC_CELL is not set
142# CONFIG_PPC_CELL_NATIVE is not set 155# CONFIG_PPC_CELL_NATIVE is not set
143# CONFIG_PQ2ADS is not set 156# CONFIG_PQ2ADS is not set
@@ -147,8 +160,10 @@ CONFIG_BAMBOO=y
147# CONFIG_TAISHAN is not set 160# CONFIG_TAISHAN is not set
148# CONFIG_KATMAI is not set 161# CONFIG_KATMAI is not set
149# CONFIG_RAINIER is not set 162# CONFIG_RAINIER is not set
163# CONFIG_WARP is not set
150CONFIG_440EP=y 164CONFIG_440EP=y
151CONFIG_IBM440EP_ERR42=y 165CONFIG_IBM440EP_ERR42=y
166# CONFIG_IPIC is not set
152# CONFIG_MPIC is not set 167# CONFIG_MPIC is not set
153# CONFIG_MPIC_WEIRD is not set 168# CONFIG_MPIC_WEIRD is not set
154# CONFIG_PPC_I8259 is not set 169# CONFIG_PPC_I8259 is not set
@@ -159,7 +174,6 @@ CONFIG_IBM440EP_ERR42=y
159# CONFIG_PPC_INDIRECT_IO is not set 174# CONFIG_PPC_INDIRECT_IO is not set
160# CONFIG_GENERIC_IOMAP is not set 175# CONFIG_GENERIC_IOMAP is not set
161# CONFIG_CPU_FREQ is not set 176# CONFIG_CPU_FREQ is not set
162# CONFIG_CPM2 is not set
163# CONFIG_FSL_ULI1575 is not set 177# CONFIG_FSL_ULI1575 is not set
164 178
165# 179#
@@ -175,13 +189,18 @@ CONFIG_HZ_250=y
175# CONFIG_HZ_300 is not set 189# CONFIG_HZ_300 is not set
176# CONFIG_HZ_1000 is not set 190# CONFIG_HZ_1000 is not set
177CONFIG_HZ=250 191CONFIG_HZ=250
192# CONFIG_SCHED_HRTICK is not set
178CONFIG_PREEMPT_NONE=y 193CONFIG_PREEMPT_NONE=y
179# CONFIG_PREEMPT_VOLUNTARY is not set 194# CONFIG_PREEMPT_VOLUNTARY is not set
180# CONFIG_PREEMPT is not set 195# CONFIG_PREEMPT is not set
196CONFIG_RCU_TRACE=y
181CONFIG_BINFMT_ELF=y 197CONFIG_BINFMT_ELF=y
182# CONFIG_BINFMT_MISC is not set 198# CONFIG_BINFMT_MISC is not set
183# CONFIG_MATH_EMULATION is not set 199# CONFIG_MATH_EMULATION is not set
200# CONFIG_IOMMU_HELPER is not set
184CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 201CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
202CONFIG_ARCH_HAS_WALK_MEMORY=y
203CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
185CONFIG_ARCH_FLATMEM_ENABLE=y 204CONFIG_ARCH_FLATMEM_ENABLE=y
186CONFIG_ARCH_POPULATES_NODE_MAP=y 205CONFIG_ARCH_POPULATES_NODE_MAP=y
187CONFIG_SELECT_MEMORY_MODEL=y 206CONFIG_SELECT_MEMORY_MODEL=y
@@ -201,8 +220,6 @@ CONFIG_PROC_DEVICETREE=y
201CONFIG_CMDLINE_BOOL=y 220CONFIG_CMDLINE_BOOL=y
202CONFIG_CMDLINE="" 221CONFIG_CMDLINE=""
203CONFIG_SECCOMP=y 222CONFIG_SECCOMP=y
204CONFIG_WANT_DEVICE_TREE=y
205CONFIG_DEVICE_TREE="bamboo.dts"
206CONFIG_ISA_DMA_API=y 223CONFIG_ISA_DMA_API=y
207 224
208# 225#
@@ -302,6 +319,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
302# 319#
303# CONFIG_NET_PKTGEN is not set 320# CONFIG_NET_PKTGEN is not set
304# CONFIG_HAMRADIO is not set 321# CONFIG_HAMRADIO is not set
322# CONFIG_CAN is not set
305# CONFIG_IRDA is not set 323# CONFIG_IRDA is not set
306# CONFIG_BT is not set 324# CONFIG_BT is not set
307# CONFIG_AF_RXRPC is not set 325# CONFIG_AF_RXRPC is not set
@@ -348,7 +366,7 @@ CONFIG_BLK_DEV=y
348CONFIG_BLK_DEV_RAM=y 366CONFIG_BLK_DEV_RAM=y
349CONFIG_BLK_DEV_RAM_COUNT=16 367CONFIG_BLK_DEV_RAM_COUNT=16
350CONFIG_BLK_DEV_RAM_SIZE=35000 368CONFIG_BLK_DEV_RAM_SIZE=35000
351CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 369# CONFIG_BLK_DEV_XIP is not set
352# CONFIG_CDROM_PKTCDVD is not set 370# CONFIG_CDROM_PKTCDVD is not set
353# CONFIG_ATA_OVER_ETH is not set 371# CONFIG_ATA_OVER_ETH is not set
354# CONFIG_XILINX_SYSACE is not set 372# CONFIG_XILINX_SYSACE is not set
@@ -357,6 +375,8 @@ CONFIG_MISC_DEVICES=y
357# CONFIG_EEPROM_93CX6 is not set 375# CONFIG_EEPROM_93CX6 is not set
358# CONFIG_SGI_IOC4 is not set 376# CONFIG_SGI_IOC4 is not set
359# CONFIG_TIFM_CORE is not set 377# CONFIG_TIFM_CORE is not set
378# CONFIG_ENCLOSURE_SERVICES is not set
379CONFIG_HAVE_IDE=y
360# CONFIG_IDE is not set 380# CONFIG_IDE is not set
361 381
362# 382#
@@ -385,7 +405,6 @@ CONFIG_NETDEVICES=y
385# CONFIG_EQUALIZER is not set 405# CONFIG_EQUALIZER is not set
386# CONFIG_TUN is not set 406# CONFIG_TUN is not set
387# CONFIG_VETH is not set 407# CONFIG_VETH is not set
388# CONFIG_IP1000 is not set
389# CONFIG_ARCNET is not set 408# CONFIG_ARCNET is not set
390# CONFIG_PHYLIB is not set 409# CONFIG_PHYLIB is not set
391CONFIG_NET_ETHERNET=y 410CONFIG_NET_ETHERNET=y
@@ -414,6 +433,9 @@ CONFIG_NETDEV_1000=y
414# CONFIG_DL2K is not set 433# CONFIG_DL2K is not set
415# CONFIG_E1000 is not set 434# CONFIG_E1000 is not set
416# CONFIG_E1000E is not set 435# CONFIG_E1000E is not set
436# CONFIG_E1000E_ENABLED is not set
437# CONFIG_IP1000 is not set
438# CONFIG_IGB is not set
417# CONFIG_NS83820 is not set 439# CONFIG_NS83820 is not set
418# CONFIG_HAMACHI is not set 440# CONFIG_HAMACHI is not set
419# CONFIG_YELLOWFIN is not set 441# CONFIG_YELLOWFIN is not set
@@ -438,6 +460,7 @@ CONFIG_NETDEV_10000=y
438# CONFIG_NIU is not set 460# CONFIG_NIU is not set
439# CONFIG_MLX4_CORE is not set 461# CONFIG_MLX4_CORE is not set
440# CONFIG_TEHUTI is not set 462# CONFIG_TEHUTI is not set
463# CONFIG_BNX2X is not set
441# CONFIG_TR is not set 464# CONFIG_TR is not set
442 465
443# 466#
@@ -450,7 +473,6 @@ CONFIG_NETDEV_10000=y
450# CONFIG_HIPPI is not set 473# CONFIG_HIPPI is not set
451# CONFIG_PPP is not set 474# CONFIG_PPP is not set
452# CONFIG_SLIP is not set 475# CONFIG_SLIP is not set
453# CONFIG_SHAPER is not set
454# CONFIG_NETCONSOLE is not set 476# CONFIG_NETCONSOLE is not set
455# CONFIG_NETPOLL is not set 477# CONFIG_NETPOLL is not set
456# CONFIG_NET_POLL_CONTROLLER is not set 478# CONFIG_NET_POLL_CONTROLLER is not set
@@ -473,6 +495,7 @@ CONFIG_NETDEV_10000=y
473# 495#
474# CONFIG_VT is not set 496# CONFIG_VT is not set
475# CONFIG_SERIAL_NONSTANDARD is not set 497# CONFIG_SERIAL_NONSTANDARD is not set
498# CONFIG_NOZOMI is not set
476 499
477# 500#
478# Serial drivers 501# Serial drivers
@@ -518,6 +541,7 @@ CONFIG_DEVPORT=y
518# CONFIG_W1 is not set 541# CONFIG_W1 is not set
519# CONFIG_POWER_SUPPLY is not set 542# CONFIG_POWER_SUPPLY is not set
520# CONFIG_HWMON is not set 543# CONFIG_HWMON is not set
544CONFIG_THERMAL=y
521# CONFIG_WATCHDOG is not set 545# CONFIG_WATCHDOG is not set
522 546
523# 547#
@@ -566,12 +590,9 @@ CONFIG_USB_ARCH_HAS_EHCI=y
566# 590#
567# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 591# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
568# 592#
569
570#
571# USB Gadget Support
572#
573# CONFIG_USB_GADGET is not set 593# CONFIG_USB_GADGET is not set
574# CONFIG_MMC is not set 594# CONFIG_MMC is not set
595# CONFIG_MEMSTICK is not set
575# CONFIG_NEW_LEDS is not set 596# CONFIG_NEW_LEDS is not set
576# CONFIG_INFINIBAND is not set 597# CONFIG_INFINIBAND is not set
577# CONFIG_EDAC is not set 598# CONFIG_EDAC is not set
@@ -596,12 +617,10 @@ CONFIG_EXT2_FS=y
596# CONFIG_XFS_FS is not set 617# CONFIG_XFS_FS is not set
597# CONFIG_GFS2_FS is not set 618# CONFIG_GFS2_FS is not set
598# CONFIG_OCFS2_FS is not set 619# CONFIG_OCFS2_FS is not set
599# CONFIG_MINIX_FS is not set 620CONFIG_DNOTIFY=y
600# CONFIG_ROMFS_FS is not set
601CONFIG_INOTIFY=y 621CONFIG_INOTIFY=y
602CONFIG_INOTIFY_USER=y 622CONFIG_INOTIFY_USER=y
603# CONFIG_QUOTA is not set 623# CONFIG_QUOTA is not set
604CONFIG_DNOTIFY=y
605# CONFIG_AUTOFS_FS is not set 624# CONFIG_AUTOFS_FS is not set
606# CONFIG_AUTOFS4_FS is not set 625# CONFIG_AUTOFS4_FS is not set
607# CONFIG_FUSE_FS is not set 626# CONFIG_FUSE_FS is not set
@@ -643,8 +662,10 @@ CONFIG_TMPFS=y
643# CONFIG_EFS_FS is not set 662# CONFIG_EFS_FS is not set
644CONFIG_CRAMFS=y 663CONFIG_CRAMFS=y
645# CONFIG_VXFS_FS is not set 664# CONFIG_VXFS_FS is not set
665# CONFIG_MINIX_FS is not set
646# CONFIG_HPFS_FS is not set 666# CONFIG_HPFS_FS is not set
647# CONFIG_QNX4FS_FS is not set 667# CONFIG_QNX4FS_FS is not set
668# CONFIG_ROMFS_FS is not set
648# CONFIG_SYSV_FS is not set 669# CONFIG_SYSV_FS is not set
649# CONFIG_UFS_FS is not set 670# CONFIG_UFS_FS is not set
650CONFIG_NETWORK_FILESYSTEMS=y 671CONFIG_NETWORK_FILESYSTEMS=y
@@ -675,7 +696,6 @@ CONFIG_SUNRPC=y
675CONFIG_MSDOS_PARTITION=y 696CONFIG_MSDOS_PARTITION=y
676# CONFIG_NLS is not set 697# CONFIG_NLS is not set
677# CONFIG_DLM is not set 698# CONFIG_DLM is not set
678# CONFIG_UCC_SLOW is not set
679 699
680# 700#
681# Library routines 701# Library routines
@@ -692,10 +712,6 @@ CONFIG_PLIST=y
692CONFIG_HAS_IOMEM=y 712CONFIG_HAS_IOMEM=y
693CONFIG_HAS_IOPORT=y 713CONFIG_HAS_IOPORT=y
694CONFIG_HAS_DMA=y 714CONFIG_HAS_DMA=y
695CONFIG_INSTRUMENTATION=y
696# CONFIG_PROFILING is not set
697# CONFIG_KPROBES is not set
698# CONFIG_MARKERS is not set
699 715
700# 716#
701# Kernel hacking 717# Kernel hacking
@@ -705,7 +721,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
705CONFIG_ENABLE_MUST_CHECK=y 721CONFIG_ENABLE_MUST_CHECK=y
706CONFIG_MAGIC_SYSRQ=y 722CONFIG_MAGIC_SYSRQ=y
707# CONFIG_UNUSED_SYMBOLS is not set 723# CONFIG_UNUSED_SYMBOLS is not set
708# CONFIG_DEBUG_FS is not set 724CONFIG_DEBUG_FS=y
709# CONFIG_HEADERS_CHECK is not set 725# CONFIG_HEADERS_CHECK is not set
710CONFIG_DEBUG_KERNEL=y 726CONFIG_DEBUG_KERNEL=y
711# CONFIG_DEBUG_SHIRQ is not set 727# CONFIG_DEBUG_SHIRQ is not set
@@ -714,6 +730,7 @@ CONFIG_SCHED_DEBUG=y
714# CONFIG_SCHEDSTATS is not set 730# CONFIG_SCHEDSTATS is not set
715# CONFIG_TIMER_STATS is not set 731# CONFIG_TIMER_STATS is not set
716# CONFIG_SLUB_DEBUG_ON is not set 732# CONFIG_SLUB_DEBUG_ON is not set
733# CONFIG_SLUB_STATS is not set
717# CONFIG_DEBUG_RT_MUTEXES is not set 734# CONFIG_DEBUG_RT_MUTEXES is not set
718# CONFIG_RT_MUTEX_TESTER is not set 735# CONFIG_RT_MUTEX_TESTER is not set
719# CONFIG_DEBUG_SPINLOCK is not set 736# CONFIG_DEBUG_SPINLOCK is not set
@@ -726,9 +743,9 @@ CONFIG_SCHED_DEBUG=y
726# CONFIG_DEBUG_VM is not set 743# CONFIG_DEBUG_VM is not set
727# CONFIG_DEBUG_LIST is not set 744# CONFIG_DEBUG_LIST is not set
728# CONFIG_DEBUG_SG is not set 745# CONFIG_DEBUG_SG is not set
729CONFIG_FORCED_INLINING=y
730# CONFIG_BOOT_PRINTK_DELAY is not set 746# CONFIG_BOOT_PRINTK_DELAY is not set
731# CONFIG_RCU_TORTURE_TEST is not set 747# CONFIG_RCU_TORTURE_TEST is not set
748# CONFIG_BACKTRACE_SELF_TEST is not set
732# CONFIG_FAULT_INJECTION is not set 749# CONFIG_FAULT_INJECTION is not set
733# CONFIG_SAMPLES is not set 750# CONFIG_SAMPLES is not set
734# CONFIG_DEBUG_STACKOVERFLOW is not set 751# CONFIG_DEBUG_STACKOVERFLOW is not set
@@ -737,6 +754,7 @@ CONFIG_FORCED_INLINING=y
737CONFIG_DEBUGGER=y 754CONFIG_DEBUGGER=y
738# CONFIG_KGDB is not set 755# CONFIG_KGDB is not set
739# CONFIG_XMON is not set 756# CONFIG_XMON is not set
757# CONFIG_VIRQ_DEBUG is not set
740# CONFIG_BDI_SWITCH is not set 758# CONFIG_BDI_SWITCH is not set
741# CONFIG_PPC_EARLY_DEBUG is not set 759# CONFIG_PPC_EARLY_DEBUG is not set
742 760
@@ -749,6 +767,7 @@ CONFIG_DEBUGGER=y
749CONFIG_CRYPTO=y 767CONFIG_CRYPTO=y
750CONFIG_CRYPTO_ALGAPI=y 768CONFIG_CRYPTO_ALGAPI=y
751CONFIG_CRYPTO_BLKCIPHER=y 769CONFIG_CRYPTO_BLKCIPHER=y
770# CONFIG_CRYPTO_SEQIV is not set
752CONFIG_CRYPTO_MANAGER=y 771CONFIG_CRYPTO_MANAGER=y
753# CONFIG_CRYPTO_HMAC is not set 772# CONFIG_CRYPTO_HMAC is not set
754# CONFIG_CRYPTO_XCBC is not set 773# CONFIG_CRYPTO_XCBC is not set
@@ -766,6 +785,9 @@ CONFIG_CRYPTO_CBC=y
766CONFIG_CRYPTO_PCBC=y 785CONFIG_CRYPTO_PCBC=y
767# CONFIG_CRYPTO_LRW is not set 786# CONFIG_CRYPTO_LRW is not set
768# CONFIG_CRYPTO_XTS is not set 787# CONFIG_CRYPTO_XTS is not set
788# CONFIG_CRYPTO_CTR is not set
789# CONFIG_CRYPTO_GCM is not set
790# CONFIG_CRYPTO_CCM is not set
769# CONFIG_CRYPTO_CRYPTD is not set 791# CONFIG_CRYPTO_CRYPTD is not set
770CONFIG_CRYPTO_DES=y 792CONFIG_CRYPTO_DES=y
771# CONFIG_CRYPTO_FCRYPT is not set 793# CONFIG_CRYPTO_FCRYPT is not set
@@ -780,11 +802,14 @@ CONFIG_CRYPTO_DES=y
780# CONFIG_CRYPTO_KHAZAD is not set 802# CONFIG_CRYPTO_KHAZAD is not set
781# CONFIG_CRYPTO_ANUBIS is not set 803# CONFIG_CRYPTO_ANUBIS is not set
782# CONFIG_CRYPTO_SEED is not set 804# CONFIG_CRYPTO_SEED is not set
805# CONFIG_CRYPTO_SALSA20 is not set
783# CONFIG_CRYPTO_DEFLATE is not set 806# CONFIG_CRYPTO_DEFLATE is not set
784# CONFIG_CRYPTO_MICHAEL_MIC is not set 807# CONFIG_CRYPTO_MICHAEL_MIC is not set
785# CONFIG_CRYPTO_CRC32C is not set 808# CONFIG_CRYPTO_CRC32C is not set
786# CONFIG_CRYPTO_CAMELLIA is not set 809# CONFIG_CRYPTO_CAMELLIA is not set
787# CONFIG_CRYPTO_TEST is not set 810# CONFIG_CRYPTO_TEST is not set
788# CONFIG_CRYPTO_AUTHENC is not set 811# CONFIG_CRYPTO_AUTHENC is not set
812# CONFIG_CRYPTO_LZO is not set
789CONFIG_CRYPTO_HW=y 813CONFIG_CRYPTO_HW=y
814# CONFIG_CRYPTO_DEV_HIFN_795X is not set
790# CONFIG_PPC_CLOCK is not set 815# CONFIG_PPC_CLOCK is not set
diff --git a/arch/powerpc/configs/ebony_defconfig b/arch/powerpc/configs/ebony_defconfig
index cf860f166659..07c8d4ce175a 100644
--- a/arch/powerpc/configs/ebony_defconfig
+++ b/arch/powerpc/configs/ebony_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc6 3# Linux kernel version: 2.6.25-rc2
4# Mon Dec 24 11:16:26 2007 4# Fri Feb 15 21:50:44 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -29,6 +29,7 @@ CONFIG_GENERIC_TIME=y
29CONFIG_GENERIC_TIME_VSYSCALL=y 29CONFIG_GENERIC_TIME_VSYSCALL=y
30CONFIG_GENERIC_CLOCKEVENTS=y 30CONFIG_GENERIC_CLOCKEVENTS=y
31CONFIG_GENERIC_HARDIRQS=y 31CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
32CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
33CONFIG_RWSEM_XCHGADD_ALGORITHM=y 34CONFIG_RWSEM_XCHGADD_ALGORITHM=y
34CONFIG_ARCH_HAS_ILOG2_U32=y 35CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -67,17 +68,18 @@ CONFIG_SYSVIPC_SYSCTL=y
67CONFIG_POSIX_MQUEUE=y 68CONFIG_POSIX_MQUEUE=y
68# CONFIG_BSD_PROCESS_ACCT is not set 69# CONFIG_BSD_PROCESS_ACCT is not set
69# CONFIG_TASKSTATS is not set 70# CONFIG_TASKSTATS is not set
70# CONFIG_USER_NS is not set
71# CONFIG_PID_NS is not set
72# CONFIG_AUDIT is not set 71# CONFIG_AUDIT is not set
73# CONFIG_IKCONFIG is not set 72# CONFIG_IKCONFIG is not set
74CONFIG_LOG_BUF_SHIFT=14 73CONFIG_LOG_BUF_SHIFT=14
75# CONFIG_CGROUPS is not set 74# CONFIG_CGROUPS is not set
75CONFIG_GROUP_SCHED=y
76CONFIG_FAIR_GROUP_SCHED=y 76CONFIG_FAIR_GROUP_SCHED=y
77CONFIG_FAIR_USER_SCHED=y 77# CONFIG_RT_GROUP_SCHED is not set
78# CONFIG_FAIR_CGROUP_SCHED is not set 78CONFIG_USER_SCHED=y
79# CONFIG_CGROUP_SCHED is not set
79CONFIG_SYSFS_DEPRECATED=y 80CONFIG_SYSFS_DEPRECATED=y
80# CONFIG_RELAY is not set 81# CONFIG_RELAY is not set
82# CONFIG_NAMESPACES is not set
81CONFIG_BLK_DEV_INITRD=y 83CONFIG_BLK_DEV_INITRD=y
82CONFIG_INITRAMFS_SOURCE="" 84CONFIG_INITRAMFS_SOURCE=""
83# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 85# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
@@ -91,11 +93,13 @@ CONFIG_HOTPLUG=y
91CONFIG_PRINTK=y 93CONFIG_PRINTK=y
92CONFIG_BUG=y 94CONFIG_BUG=y
93CONFIG_ELF_CORE=y 95CONFIG_ELF_CORE=y
96CONFIG_COMPAT_BRK=y
94CONFIG_BASE_FULL=y 97CONFIG_BASE_FULL=y
95CONFIG_FUTEX=y 98CONFIG_FUTEX=y
96CONFIG_ANON_INODES=y 99CONFIG_ANON_INODES=y
97CONFIG_EPOLL=y 100CONFIG_EPOLL=y
98CONFIG_SIGNALFD=y 101CONFIG_SIGNALFD=y
102CONFIG_TIMERFD=y
99CONFIG_EVENTFD=y 103CONFIG_EVENTFD=y
100CONFIG_SHMEM=y 104CONFIG_SHMEM=y
101CONFIG_VM_EVENT_COUNTERS=y 105CONFIG_VM_EVENT_COUNTERS=y
@@ -103,6 +107,13 @@ CONFIG_SLUB_DEBUG=y
103# CONFIG_SLAB is not set 107# CONFIG_SLAB is not set
104CONFIG_SLUB=y 108CONFIG_SLUB=y
105# CONFIG_SLOB is not set 109# CONFIG_SLOB is not set
110# CONFIG_PROFILING is not set
111# CONFIG_MARKERS is not set
112CONFIG_HAVE_OPROFILE=y
113# CONFIG_KPROBES is not set
114CONFIG_HAVE_KPROBES=y
115CONFIG_PROC_PAGE_MONITOR=y
116CONFIG_SLABINFO=y
106CONFIG_RT_MUTEXES=y 117CONFIG_RT_MUTEXES=y
107# CONFIG_TINY_SHMEM is not set 118# CONFIG_TINY_SHMEM is not set
108CONFIG_BASE_SMALL=0 119CONFIG_BASE_SMALL=0
@@ -130,13 +141,15 @@ CONFIG_DEFAULT_AS=y
130# CONFIG_DEFAULT_CFQ is not set 141# CONFIG_DEFAULT_CFQ is not set
131# CONFIG_DEFAULT_NOOP is not set 142# CONFIG_DEFAULT_NOOP is not set
132CONFIG_DEFAULT_IOSCHED="anticipatory" 143CONFIG_DEFAULT_IOSCHED="anticipatory"
144CONFIG_CLASSIC_RCU=y
145# CONFIG_PREEMPT_RCU is not set
133# CONFIG_PPC4xx_PCI_EXPRESS is not set 146# CONFIG_PPC4xx_PCI_EXPRESS is not set
134 147
135# 148#
136# Platform support 149# Platform support
137# 150#
138# CONFIG_PPC_MPC52xx is not set 151# CONFIG_PPC_MPC512x is not set
139# CONFIG_PPC_MPC5200 is not set 152# CONFIG_PPC_MPC5121 is not set
140# CONFIG_PPC_CELL is not set 153# CONFIG_PPC_CELL is not set
141# CONFIG_PPC_CELL_NATIVE is not set 154# CONFIG_PPC_CELL_NATIVE is not set
142# CONFIG_PQ2ADS is not set 155# CONFIG_PQ2ADS is not set
@@ -146,7 +159,9 @@ CONFIG_EBONY=y
146# CONFIG_TAISHAN is not set 159# CONFIG_TAISHAN is not set
147# CONFIG_KATMAI is not set 160# CONFIG_KATMAI is not set
148# CONFIG_RAINIER is not set 161# CONFIG_RAINIER is not set
162# CONFIG_WARP is not set
149CONFIG_440GP=y 163CONFIG_440GP=y
164# CONFIG_IPIC is not set
150# CONFIG_MPIC is not set 165# CONFIG_MPIC is not set
151# CONFIG_MPIC_WEIRD is not set 166# CONFIG_MPIC_WEIRD is not set
152# CONFIG_PPC_I8259 is not set 167# CONFIG_PPC_I8259 is not set
@@ -157,8 +172,8 @@ CONFIG_440GP=y
157# CONFIG_PPC_INDIRECT_IO is not set 172# CONFIG_PPC_INDIRECT_IO is not set
158# CONFIG_GENERIC_IOMAP is not set 173# CONFIG_GENERIC_IOMAP is not set
159# CONFIG_CPU_FREQ is not set 174# CONFIG_CPU_FREQ is not set
160# CONFIG_CPM2 is not set
161# CONFIG_FSL_ULI1575 is not set 175# CONFIG_FSL_ULI1575 is not set
176CONFIG_OF_RTC=y
162 177
163# 178#
164# Kernel options 179# Kernel options
@@ -173,13 +188,18 @@ CONFIG_HZ_250=y
173# CONFIG_HZ_300 is not set 188# CONFIG_HZ_300 is not set
174# CONFIG_HZ_1000 is not set 189# CONFIG_HZ_1000 is not set
175CONFIG_HZ=250 190CONFIG_HZ=250
191# CONFIG_SCHED_HRTICK is not set
176CONFIG_PREEMPT_NONE=y 192CONFIG_PREEMPT_NONE=y
177# CONFIG_PREEMPT_VOLUNTARY is not set 193# CONFIG_PREEMPT_VOLUNTARY is not set
178# CONFIG_PREEMPT is not set 194# CONFIG_PREEMPT is not set
195CONFIG_RCU_TRACE=y
179CONFIG_BINFMT_ELF=y 196CONFIG_BINFMT_ELF=y
180# CONFIG_BINFMT_MISC is not set 197# CONFIG_BINFMT_MISC is not set
181CONFIG_MATH_EMULATION=y 198CONFIG_MATH_EMULATION=y
199# CONFIG_IOMMU_HELPER is not set
182CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 200CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
201CONFIG_ARCH_HAS_WALK_MEMORY=y
202CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
183CONFIG_ARCH_FLATMEM_ENABLE=y 203CONFIG_ARCH_FLATMEM_ENABLE=y
184CONFIG_ARCH_POPULATES_NODE_MAP=y 204CONFIG_ARCH_POPULATES_NODE_MAP=y
185CONFIG_SELECT_MEMORY_MODEL=y 205CONFIG_SELECT_MEMORY_MODEL=y
@@ -198,8 +218,6 @@ CONFIG_VIRT_TO_BUS=y
198CONFIG_PROC_DEVICETREE=y 218CONFIG_PROC_DEVICETREE=y
199# CONFIG_CMDLINE_BOOL is not set 219# CONFIG_CMDLINE_BOOL is not set
200CONFIG_SECCOMP=y 220CONFIG_SECCOMP=y
201CONFIG_WANT_DEVICE_TREE=y
202CONFIG_DEVICE_TREE="ebony.dts"
203CONFIG_ISA_DMA_API=y 221CONFIG_ISA_DMA_API=y
204 222
205# 223#
@@ -299,6 +317,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
299# 317#
300# CONFIG_NET_PKTGEN is not set 318# CONFIG_NET_PKTGEN is not set
301# CONFIG_HAMRADIO is not set 319# CONFIG_HAMRADIO is not set
320# CONFIG_CAN is not set
302# CONFIG_IRDA is not set 321# CONFIG_IRDA is not set
303# CONFIG_BT is not set 322# CONFIG_BT is not set
304# CONFIG_AF_RXRPC is not set 323# CONFIG_AF_RXRPC is not set
@@ -335,6 +354,7 @@ CONFIG_MTD=y
335CONFIG_MTD_PARTITIONS=y 354CONFIG_MTD_PARTITIONS=y
336# CONFIG_MTD_REDBOOT_PARTS is not set 355# CONFIG_MTD_REDBOOT_PARTS is not set
337# CONFIG_MTD_CMDLINE_PARTS is not set 356# CONFIG_MTD_CMDLINE_PARTS is not set
357CONFIG_MTD_OF_PARTS=y
338 358
339# 359#
340# User Modules And Translation Layers 360# User Modules And Translation Layers
@@ -420,7 +440,7 @@ CONFIG_BLK_DEV=y
420CONFIG_BLK_DEV_RAM=y 440CONFIG_BLK_DEV_RAM=y
421CONFIG_BLK_DEV_RAM_COUNT=16 441CONFIG_BLK_DEV_RAM_COUNT=16
422CONFIG_BLK_DEV_RAM_SIZE=35000 442CONFIG_BLK_DEV_RAM_SIZE=35000
423CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 443# CONFIG_BLK_DEV_XIP is not set
424# CONFIG_CDROM_PKTCDVD is not set 444# CONFIG_CDROM_PKTCDVD is not set
425# CONFIG_ATA_OVER_ETH is not set 445# CONFIG_ATA_OVER_ETH is not set
426# CONFIG_XILINX_SYSACE is not set 446# CONFIG_XILINX_SYSACE is not set
@@ -429,6 +449,8 @@ CONFIG_MISC_DEVICES=y
429# CONFIG_EEPROM_93CX6 is not set 449# CONFIG_EEPROM_93CX6 is not set
430# CONFIG_SGI_IOC4 is not set 450# CONFIG_SGI_IOC4 is not set
431# CONFIG_TIFM_CORE is not set 451# CONFIG_TIFM_CORE is not set
452# CONFIG_ENCLOSURE_SERVICES is not set
453CONFIG_HAVE_IDE=y
432# CONFIG_IDE is not set 454# CONFIG_IDE is not set
433 455
434# 456#
@@ -457,7 +479,6 @@ CONFIG_NETDEVICES=y
457# CONFIG_EQUALIZER is not set 479# CONFIG_EQUALIZER is not set
458# CONFIG_TUN is not set 480# CONFIG_TUN is not set
459# CONFIG_VETH is not set 481# CONFIG_VETH is not set
460# CONFIG_IP1000 is not set
461# CONFIG_ARCNET is not set 482# CONFIG_ARCNET is not set
462# CONFIG_PHYLIB is not set 483# CONFIG_PHYLIB is not set
463CONFIG_NET_ETHERNET=y 484CONFIG_NET_ETHERNET=y
@@ -486,6 +507,9 @@ CONFIG_NETDEV_1000=y
486# CONFIG_DL2K is not set 507# CONFIG_DL2K is not set
487# CONFIG_E1000 is not set 508# CONFIG_E1000 is not set
488# CONFIG_E1000E is not set 509# CONFIG_E1000E is not set
510# CONFIG_E1000E_ENABLED is not set
511# CONFIG_IP1000 is not set
512# CONFIG_IGB is not set
489# CONFIG_NS83820 is not set 513# CONFIG_NS83820 is not set
490# CONFIG_HAMACHI is not set 514# CONFIG_HAMACHI is not set
491# CONFIG_YELLOWFIN is not set 515# CONFIG_YELLOWFIN is not set
@@ -510,6 +534,7 @@ CONFIG_NETDEV_10000=y
510# CONFIG_NIU is not set 534# CONFIG_NIU is not set
511# CONFIG_MLX4_CORE is not set 535# CONFIG_MLX4_CORE is not set
512# CONFIG_TEHUTI is not set 536# CONFIG_TEHUTI is not set
537# CONFIG_BNX2X is not set
513# CONFIG_TR is not set 538# CONFIG_TR is not set
514 539
515# 540#
@@ -522,7 +547,6 @@ CONFIG_NETDEV_10000=y
522# CONFIG_HIPPI is not set 547# CONFIG_HIPPI is not set
523# CONFIG_PPP is not set 548# CONFIG_PPP is not set
524# CONFIG_SLIP is not set 549# CONFIG_SLIP is not set
525# CONFIG_SHAPER is not set
526# CONFIG_NETCONSOLE is not set 550# CONFIG_NETCONSOLE is not set
527# CONFIG_NETPOLL is not set 551# CONFIG_NETPOLL is not set
528# CONFIG_NET_POLL_CONTROLLER is not set 552# CONFIG_NET_POLL_CONTROLLER is not set
@@ -545,6 +569,7 @@ CONFIG_NETDEV_10000=y
545# 569#
546# CONFIG_VT is not set 570# CONFIG_VT is not set
547# CONFIG_SERIAL_NONSTANDARD is not set 571# CONFIG_SERIAL_NONSTANDARD is not set
572# CONFIG_NOZOMI is not set
548 573
549# 574#
550# Serial drivers 575# Serial drivers
@@ -590,6 +615,7 @@ CONFIG_DEVPORT=y
590# CONFIG_W1 is not set 615# CONFIG_W1 is not set
591# CONFIG_POWER_SUPPLY is not set 616# CONFIG_POWER_SUPPLY is not set
592# CONFIG_HWMON is not set 617# CONFIG_HWMON is not set
618CONFIG_THERMAL=y
593# CONFIG_WATCHDOG is not set 619# CONFIG_WATCHDOG is not set
594 620
595# 621#
@@ -638,12 +664,9 @@ CONFIG_USB_ARCH_HAS_EHCI=y
638# 664#
639# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 665# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
640# 666#
641
642#
643# USB Gadget Support
644#
645# CONFIG_USB_GADGET is not set 667# CONFIG_USB_GADGET is not set
646# CONFIG_MMC is not set 668# CONFIG_MMC is not set
669# CONFIG_MEMSTICK is not set
647# CONFIG_NEW_LEDS is not set 670# CONFIG_NEW_LEDS is not set
648# CONFIG_INFINIBAND is not set 671# CONFIG_INFINIBAND is not set
649# CONFIG_EDAC is not set 672# CONFIG_EDAC is not set
@@ -668,12 +691,10 @@ CONFIG_EXT2_FS=y
668# CONFIG_XFS_FS is not set 691# CONFIG_XFS_FS is not set
669# CONFIG_GFS2_FS is not set 692# CONFIG_GFS2_FS is not set
670# CONFIG_OCFS2_FS is not set 693# CONFIG_OCFS2_FS is not set
671# CONFIG_MINIX_FS is not set 694CONFIG_DNOTIFY=y
672# CONFIG_ROMFS_FS is not set
673CONFIG_INOTIFY=y 695CONFIG_INOTIFY=y
674CONFIG_INOTIFY_USER=y 696CONFIG_INOTIFY_USER=y
675# CONFIG_QUOTA is not set 697# CONFIG_QUOTA is not set
676CONFIG_DNOTIFY=y
677# CONFIG_AUTOFS_FS is not set 698# CONFIG_AUTOFS_FS is not set
678# CONFIG_AUTOFS4_FS is not set 699# CONFIG_AUTOFS4_FS is not set
679# CONFIG_FUSE_FS is not set 700# CONFIG_FUSE_FS is not set
@@ -726,8 +747,10 @@ CONFIG_JFFS2_RTIME=y
726# CONFIG_JFFS2_RUBIN is not set 747# CONFIG_JFFS2_RUBIN is not set
727CONFIG_CRAMFS=y 748CONFIG_CRAMFS=y
728# CONFIG_VXFS_FS is not set 749# CONFIG_VXFS_FS is not set
750# CONFIG_MINIX_FS is not set
729# CONFIG_HPFS_FS is not set 751# CONFIG_HPFS_FS is not set
730# CONFIG_QNX4FS_FS is not set 752# CONFIG_QNX4FS_FS is not set
753# CONFIG_ROMFS_FS is not set
731# CONFIG_SYSV_FS is not set 754# CONFIG_SYSV_FS is not set
732# CONFIG_UFS_FS is not set 755# CONFIG_UFS_FS is not set
733CONFIG_NETWORK_FILESYSTEMS=y 756CONFIG_NETWORK_FILESYSTEMS=y
@@ -758,7 +781,6 @@ CONFIG_SUNRPC=y
758CONFIG_MSDOS_PARTITION=y 781CONFIG_MSDOS_PARTITION=y
759# CONFIG_NLS is not set 782# CONFIG_NLS is not set
760# CONFIG_DLM is not set 783# CONFIG_DLM is not set
761# CONFIG_UCC_SLOW is not set
762 784
763# 785#
764# Library routines 786# Library routines
@@ -776,7 +798,6 @@ CONFIG_PLIST=y
776CONFIG_HAS_IOMEM=y 798CONFIG_HAS_IOMEM=y
777CONFIG_HAS_IOPORT=y 799CONFIG_HAS_IOPORT=y
778CONFIG_HAS_DMA=y 800CONFIG_HAS_DMA=y
779# CONFIG_INSTRUMENTATION is not set
780 801
781# 802#
782# Kernel hacking 803# Kernel hacking
@@ -786,7 +807,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
786CONFIG_ENABLE_MUST_CHECK=y 807CONFIG_ENABLE_MUST_CHECK=y
787CONFIG_MAGIC_SYSRQ=y 808CONFIG_MAGIC_SYSRQ=y
788# CONFIG_UNUSED_SYMBOLS is not set 809# CONFIG_UNUSED_SYMBOLS is not set
789# CONFIG_DEBUG_FS is not set 810CONFIG_DEBUG_FS=y
790# CONFIG_HEADERS_CHECK is not set 811# CONFIG_HEADERS_CHECK is not set
791CONFIG_DEBUG_KERNEL=y 812CONFIG_DEBUG_KERNEL=y
792# CONFIG_DEBUG_SHIRQ is not set 813# CONFIG_DEBUG_SHIRQ is not set
@@ -795,6 +816,7 @@ CONFIG_SCHED_DEBUG=y
795# CONFIG_SCHEDSTATS is not set 816# CONFIG_SCHEDSTATS is not set
796# CONFIG_TIMER_STATS is not set 817# CONFIG_TIMER_STATS is not set
797# CONFIG_SLUB_DEBUG_ON is not set 818# CONFIG_SLUB_DEBUG_ON is not set
819# CONFIG_SLUB_STATS is not set
798# CONFIG_DEBUG_RT_MUTEXES is not set 820# CONFIG_DEBUG_RT_MUTEXES is not set
799# CONFIG_RT_MUTEX_TESTER is not set 821# CONFIG_RT_MUTEX_TESTER is not set
800# CONFIG_DEBUG_SPINLOCK is not set 822# CONFIG_DEBUG_SPINLOCK is not set
@@ -807,15 +829,16 @@ CONFIG_DEBUG_BUGVERBOSE=y
807# CONFIG_DEBUG_VM is not set 829# CONFIG_DEBUG_VM is not set
808# CONFIG_DEBUG_LIST is not set 830# CONFIG_DEBUG_LIST is not set
809# CONFIG_DEBUG_SG is not set 831# CONFIG_DEBUG_SG is not set
810CONFIG_FORCED_INLINING=y
811# CONFIG_BOOT_PRINTK_DELAY is not set 832# CONFIG_BOOT_PRINTK_DELAY is not set
812# CONFIG_RCU_TORTURE_TEST is not set 833# CONFIG_RCU_TORTURE_TEST is not set
834# CONFIG_BACKTRACE_SELF_TEST is not set
813# CONFIG_FAULT_INJECTION is not set 835# CONFIG_FAULT_INJECTION is not set
814# CONFIG_SAMPLES is not set 836# CONFIG_SAMPLES is not set
815# CONFIG_DEBUG_STACKOVERFLOW is not set 837# CONFIG_DEBUG_STACKOVERFLOW is not set
816# CONFIG_DEBUG_STACK_USAGE is not set 838# CONFIG_DEBUG_STACK_USAGE is not set
817# CONFIG_DEBUG_PAGEALLOC is not set 839# CONFIG_DEBUG_PAGEALLOC is not set
818# CONFIG_DEBUGGER is not set 840# CONFIG_DEBUGGER is not set
841# CONFIG_VIRQ_DEBUG is not set
819# CONFIG_BDI_SWITCH is not set 842# CONFIG_BDI_SWITCH is not set
820# CONFIG_PPC_EARLY_DEBUG is not set 843# CONFIG_PPC_EARLY_DEBUG is not set
821 844
@@ -828,6 +851,7 @@ CONFIG_FORCED_INLINING=y
828CONFIG_CRYPTO=y 851CONFIG_CRYPTO=y
829CONFIG_CRYPTO_ALGAPI=y 852CONFIG_CRYPTO_ALGAPI=y
830CONFIG_CRYPTO_BLKCIPHER=y 853CONFIG_CRYPTO_BLKCIPHER=y
854# CONFIG_CRYPTO_SEQIV is not set
831CONFIG_CRYPTO_MANAGER=y 855CONFIG_CRYPTO_MANAGER=y
832# CONFIG_CRYPTO_HMAC is not set 856# CONFIG_CRYPTO_HMAC is not set
833# CONFIG_CRYPTO_XCBC is not set 857# CONFIG_CRYPTO_XCBC is not set
@@ -845,6 +869,9 @@ CONFIG_CRYPTO_CBC=y
845CONFIG_CRYPTO_PCBC=y 869CONFIG_CRYPTO_PCBC=y
846# CONFIG_CRYPTO_LRW is not set 870# CONFIG_CRYPTO_LRW is not set
847# CONFIG_CRYPTO_XTS is not set 871# CONFIG_CRYPTO_XTS is not set
872# CONFIG_CRYPTO_CTR is not set
873# CONFIG_CRYPTO_GCM is not set
874# CONFIG_CRYPTO_CCM is not set
848# CONFIG_CRYPTO_CRYPTD is not set 875# CONFIG_CRYPTO_CRYPTD is not set
849CONFIG_CRYPTO_DES=y 876CONFIG_CRYPTO_DES=y
850# CONFIG_CRYPTO_FCRYPT is not set 877# CONFIG_CRYPTO_FCRYPT is not set
@@ -859,11 +886,13 @@ CONFIG_CRYPTO_DES=y
859# CONFIG_CRYPTO_KHAZAD is not set 886# CONFIG_CRYPTO_KHAZAD is not set
860# CONFIG_CRYPTO_ANUBIS is not set 887# CONFIG_CRYPTO_ANUBIS is not set
861# CONFIG_CRYPTO_SEED is not set 888# CONFIG_CRYPTO_SEED is not set
889# CONFIG_CRYPTO_SALSA20 is not set
862# CONFIG_CRYPTO_DEFLATE is not set 890# CONFIG_CRYPTO_DEFLATE is not set
863# CONFIG_CRYPTO_MICHAEL_MIC is not set 891# CONFIG_CRYPTO_MICHAEL_MIC is not set
864# CONFIG_CRYPTO_CRC32C is not set 892# CONFIG_CRYPTO_CRC32C is not set
865# CONFIG_CRYPTO_CAMELLIA is not set 893# CONFIG_CRYPTO_CAMELLIA is not set
866# CONFIG_CRYPTO_TEST is not set 894# CONFIG_CRYPTO_TEST is not set
867# CONFIG_CRYPTO_AUTHENC is not set 895# CONFIG_CRYPTO_AUTHENC is not set
896# CONFIG_CRYPTO_LZO is not set
868# CONFIG_CRYPTO_HW is not set 897# CONFIG_CRYPTO_HW is not set
869# CONFIG_PPC_CLOCK is not set 898# CONFIG_PPC_CLOCK is not set
diff --git a/arch/powerpc/configs/ep405_defconfig b/arch/powerpc/configs/ep405_defconfig
index 3829c9166256..e24240a9a047 100644
--- a/arch/powerpc/configs/ep405_defconfig
+++ b/arch/powerpc/configs/ep405_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc6 3# Linux kernel version: 2.6.25-rc2
4# Mon Dec 24 11:17:13 2007 4# Fri Feb 15 21:50:09 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -26,6 +26,7 @@ CONFIG_GENERIC_TIME=y
26CONFIG_GENERIC_TIME_VSYSCALL=y 26CONFIG_GENERIC_TIME_VSYSCALL=y
27CONFIG_GENERIC_CLOCKEVENTS=y 27CONFIG_GENERIC_CLOCKEVENTS=y
28CONFIG_GENERIC_HARDIRQS=y 28CONFIG_GENERIC_HARDIRQS=y
29# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
29CONFIG_IRQ_PER_CPU=y 30CONFIG_IRQ_PER_CPU=y
30CONFIG_RWSEM_XCHGADD_ALGORITHM=y 31CONFIG_RWSEM_XCHGADD_ALGORITHM=y
31CONFIG_ARCH_HAS_ILOG2_U32=y 32CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -64,17 +65,18 @@ CONFIG_SYSVIPC_SYSCTL=y
64CONFIG_POSIX_MQUEUE=y 65CONFIG_POSIX_MQUEUE=y
65# CONFIG_BSD_PROCESS_ACCT is not set 66# CONFIG_BSD_PROCESS_ACCT is not set
66# CONFIG_TASKSTATS is not set 67# CONFIG_TASKSTATS is not set
67# CONFIG_USER_NS is not set
68# CONFIG_PID_NS is not set
69# CONFIG_AUDIT is not set 68# CONFIG_AUDIT is not set
70# CONFIG_IKCONFIG is not set 69# CONFIG_IKCONFIG is not set
71CONFIG_LOG_BUF_SHIFT=14 70CONFIG_LOG_BUF_SHIFT=14
72# CONFIG_CGROUPS is not set 71# CONFIG_CGROUPS is not set
72CONFIG_GROUP_SCHED=y
73CONFIG_FAIR_GROUP_SCHED=y 73CONFIG_FAIR_GROUP_SCHED=y
74CONFIG_FAIR_USER_SCHED=y 74# CONFIG_RT_GROUP_SCHED is not set
75# CONFIG_FAIR_CGROUP_SCHED is not set 75CONFIG_USER_SCHED=y
76# CONFIG_CGROUP_SCHED is not set
76CONFIG_SYSFS_DEPRECATED=y 77CONFIG_SYSFS_DEPRECATED=y
77# CONFIG_RELAY is not set 78# CONFIG_RELAY is not set
79# CONFIG_NAMESPACES is not set
78CONFIG_BLK_DEV_INITRD=y 80CONFIG_BLK_DEV_INITRD=y
79CONFIG_INITRAMFS_SOURCE="" 81CONFIG_INITRAMFS_SOURCE=""
80# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 82# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
@@ -88,11 +90,13 @@ CONFIG_HOTPLUG=y
88CONFIG_PRINTK=y 90CONFIG_PRINTK=y
89CONFIG_BUG=y 91CONFIG_BUG=y
90CONFIG_ELF_CORE=y 92CONFIG_ELF_CORE=y
93CONFIG_COMPAT_BRK=y
91CONFIG_BASE_FULL=y 94CONFIG_BASE_FULL=y
92CONFIG_FUTEX=y 95CONFIG_FUTEX=y
93CONFIG_ANON_INODES=y 96CONFIG_ANON_INODES=y
94CONFIG_EPOLL=y 97CONFIG_EPOLL=y
95CONFIG_SIGNALFD=y 98CONFIG_SIGNALFD=y
99CONFIG_TIMERFD=y
96CONFIG_EVENTFD=y 100CONFIG_EVENTFD=y
97CONFIG_SHMEM=y 101CONFIG_SHMEM=y
98CONFIG_VM_EVENT_COUNTERS=y 102CONFIG_VM_EVENT_COUNTERS=y
@@ -100,6 +104,13 @@ CONFIG_SLUB_DEBUG=y
100# CONFIG_SLAB is not set 104# CONFIG_SLAB is not set
101CONFIG_SLUB=y 105CONFIG_SLUB=y
102# CONFIG_SLOB is not set 106# CONFIG_SLOB is not set
107# CONFIG_PROFILING is not set
108# CONFIG_MARKERS is not set
109CONFIG_HAVE_OPROFILE=y
110# CONFIG_KPROBES is not set
111CONFIG_HAVE_KPROBES=y
112CONFIG_PROC_PAGE_MONITOR=y
113CONFIG_SLABINFO=y
103CONFIG_RT_MUTEXES=y 114CONFIG_RT_MUTEXES=y
104# CONFIG_TINY_SHMEM is not set 115# CONFIG_TINY_SHMEM is not set
105CONFIG_BASE_SMALL=0 116CONFIG_BASE_SMALL=0
@@ -127,13 +138,15 @@ CONFIG_DEFAULT_AS=y
127# CONFIG_DEFAULT_CFQ is not set 138# CONFIG_DEFAULT_CFQ is not set
128# CONFIG_DEFAULT_NOOP is not set 139# CONFIG_DEFAULT_NOOP is not set
129CONFIG_DEFAULT_IOSCHED="anticipatory" 140CONFIG_DEFAULT_IOSCHED="anticipatory"
141CONFIG_CLASSIC_RCU=y
142# CONFIG_PREEMPT_RCU is not set
130# CONFIG_PPC4xx_PCI_EXPRESS is not set 143# CONFIG_PPC4xx_PCI_EXPRESS is not set
131 144
132# 145#
133# Platform support 146# Platform support
134# 147#
135# CONFIG_PPC_MPC52xx is not set 148# CONFIG_PPC_MPC512x is not set
136# CONFIG_PPC_MPC5200 is not set 149# CONFIG_PPC_MPC5121 is not set
137# CONFIG_PPC_CELL is not set 150# CONFIG_PPC_CELL is not set
138# CONFIG_PPC_CELL_NATIVE is not set 151# CONFIG_PPC_CELL_NATIVE is not set
139# CONFIG_PQ2ADS is not set 152# CONFIG_PQ2ADS is not set
@@ -145,6 +158,7 @@ CONFIG_EP405=y
145CONFIG_405GP=y 158CONFIG_405GP=y
146CONFIG_IBM405_ERR77=y 159CONFIG_IBM405_ERR77=y
147CONFIG_IBM405_ERR51=y 160CONFIG_IBM405_ERR51=y
161# CONFIG_IPIC is not set
148# CONFIG_MPIC is not set 162# CONFIG_MPIC is not set
149# CONFIG_MPIC_WEIRD is not set 163# CONFIG_MPIC_WEIRD is not set
150# CONFIG_PPC_I8259 is not set 164# CONFIG_PPC_I8259 is not set
@@ -155,7 +169,6 @@ CONFIG_IBM405_ERR51=y
155# CONFIG_PPC_INDIRECT_IO is not set 169# CONFIG_PPC_INDIRECT_IO is not set
156# CONFIG_GENERIC_IOMAP is not set 170# CONFIG_GENERIC_IOMAP is not set
157# CONFIG_CPU_FREQ is not set 171# CONFIG_CPU_FREQ is not set
158# CONFIG_CPM2 is not set
159# CONFIG_FSL_ULI1575 is not set 172# CONFIG_FSL_ULI1575 is not set
160 173
161# 174#
@@ -171,13 +184,18 @@ CONFIG_HZ_250=y
171# CONFIG_HZ_300 is not set 184# CONFIG_HZ_300 is not set
172# CONFIG_HZ_1000 is not set 185# CONFIG_HZ_1000 is not set
173CONFIG_HZ=250 186CONFIG_HZ=250
187# CONFIG_SCHED_HRTICK is not set
174CONFIG_PREEMPT_NONE=y 188CONFIG_PREEMPT_NONE=y
175# CONFIG_PREEMPT_VOLUNTARY is not set 189# CONFIG_PREEMPT_VOLUNTARY is not set
176# CONFIG_PREEMPT is not set 190# CONFIG_PREEMPT is not set
191CONFIG_RCU_TRACE=y
177CONFIG_BINFMT_ELF=y 192CONFIG_BINFMT_ELF=y
178# CONFIG_BINFMT_MISC is not set 193# CONFIG_BINFMT_MISC is not set
179# CONFIG_MATH_EMULATION is not set 194# CONFIG_MATH_EMULATION is not set
195# CONFIG_IOMMU_HELPER is not set
180CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 196CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
197CONFIG_ARCH_HAS_WALK_MEMORY=y
198CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
181CONFIG_ARCH_FLATMEM_ENABLE=y 199CONFIG_ARCH_FLATMEM_ENABLE=y
182CONFIG_ARCH_POPULATES_NODE_MAP=y 200CONFIG_ARCH_POPULATES_NODE_MAP=y
183CONFIG_SELECT_MEMORY_MODEL=y 201CONFIG_SELECT_MEMORY_MODEL=y
@@ -196,11 +214,7 @@ CONFIG_VIRT_TO_BUS=y
196CONFIG_PROC_DEVICETREE=y 214CONFIG_PROC_DEVICETREE=y
197# CONFIG_CMDLINE_BOOL is not set 215# CONFIG_CMDLINE_BOOL is not set
198# CONFIG_PM is not set 216# CONFIG_PM is not set
199CONFIG_SUSPEND_UP_POSSIBLE=y
200CONFIG_HIBERNATION_UP_POSSIBLE=y
201CONFIG_SECCOMP=y 217CONFIG_SECCOMP=y
202CONFIG_WANT_DEVICE_TREE=y
203CONFIG_DEVICE_TREE="ep405.dts"
204CONFIG_ISA_DMA_API=y 218CONFIG_ISA_DMA_API=y
205 219
206# 220#
@@ -300,6 +314,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
300# 314#
301# CONFIG_NET_PKTGEN is not set 315# CONFIG_NET_PKTGEN is not set
302# CONFIG_HAMRADIO is not set 316# CONFIG_HAMRADIO is not set
317# CONFIG_CAN is not set
303# CONFIG_IRDA is not set 318# CONFIG_IRDA is not set
304# CONFIG_BT is not set 319# CONFIG_BT is not set
305# CONFIG_AF_RXRPC is not set 320# CONFIG_AF_RXRPC is not set
@@ -336,6 +351,7 @@ CONFIG_MTD=y
336CONFIG_MTD_PARTITIONS=y 351CONFIG_MTD_PARTITIONS=y
337# CONFIG_MTD_REDBOOT_PARTS is not set 352# CONFIG_MTD_REDBOOT_PARTS is not set
338CONFIG_MTD_CMDLINE_PARTS=y 353CONFIG_MTD_CMDLINE_PARTS=y
354CONFIG_MTD_OF_PARTS=y
339 355
340# 356#
341# User Modules And Translation Layers 357# User Modules And Translation Layers
@@ -423,7 +439,7 @@ CONFIG_BLK_DEV=y
423CONFIG_BLK_DEV_RAM=y 439CONFIG_BLK_DEV_RAM=y
424CONFIG_BLK_DEV_RAM_COUNT=16 440CONFIG_BLK_DEV_RAM_COUNT=16
425CONFIG_BLK_DEV_RAM_SIZE=35000 441CONFIG_BLK_DEV_RAM_SIZE=35000
426CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 442# CONFIG_BLK_DEV_XIP is not set
427# CONFIG_CDROM_PKTCDVD is not set 443# CONFIG_CDROM_PKTCDVD is not set
428# CONFIG_ATA_OVER_ETH is not set 444# CONFIG_ATA_OVER_ETH is not set
429# CONFIG_XILINX_SYSACE is not set 445# CONFIG_XILINX_SYSACE is not set
@@ -432,6 +448,8 @@ CONFIG_MISC_DEVICES=y
432# CONFIG_EEPROM_93CX6 is not set 448# CONFIG_EEPROM_93CX6 is not set
433# CONFIG_SGI_IOC4 is not set 449# CONFIG_SGI_IOC4 is not set
434# CONFIG_TIFM_CORE is not set 450# CONFIG_TIFM_CORE is not set
451# CONFIG_ENCLOSURE_SERVICES is not set
452CONFIG_HAVE_IDE=y
435# CONFIG_IDE is not set 453# CONFIG_IDE is not set
436 454
437# 455#
@@ -460,7 +478,6 @@ CONFIG_NETDEVICES=y
460# CONFIG_EQUALIZER is not set 478# CONFIG_EQUALIZER is not set
461# CONFIG_TUN is not set 479# CONFIG_TUN is not set
462# CONFIG_VETH is not set 480# CONFIG_VETH is not set
463# CONFIG_IP1000 is not set
464# CONFIG_ARCNET is not set 481# CONFIG_ARCNET is not set
465# CONFIG_PHYLIB is not set 482# CONFIG_PHYLIB is not set
466CONFIG_NET_ETHERNET=y 483CONFIG_NET_ETHERNET=y
@@ -489,6 +506,9 @@ CONFIG_NETDEV_1000=y
489# CONFIG_DL2K is not set 506# CONFIG_DL2K is not set
490# CONFIG_E1000 is not set 507# CONFIG_E1000 is not set
491# CONFIG_E1000E is not set 508# CONFIG_E1000E is not set
509# CONFIG_E1000E_ENABLED is not set
510# CONFIG_IP1000 is not set
511# CONFIG_IGB is not set
492# CONFIG_NS83820 is not set 512# CONFIG_NS83820 is not set
493# CONFIG_HAMACHI is not set 513# CONFIG_HAMACHI is not set
494# CONFIG_YELLOWFIN is not set 514# CONFIG_YELLOWFIN is not set
@@ -513,6 +533,7 @@ CONFIG_NETDEV_10000=y
513# CONFIG_NIU is not set 533# CONFIG_NIU is not set
514# CONFIG_MLX4_CORE is not set 534# CONFIG_MLX4_CORE is not set
515# CONFIG_TEHUTI is not set 535# CONFIG_TEHUTI is not set
536# CONFIG_BNX2X is not set
516# CONFIG_TR is not set 537# CONFIG_TR is not set
517 538
518# 539#
@@ -534,7 +555,6 @@ CONFIG_NETDEV_10000=y
534# CONFIG_HIPPI is not set 555# CONFIG_HIPPI is not set
535# CONFIG_PPP is not set 556# CONFIG_PPP is not set
536# CONFIG_SLIP is not set 557# CONFIG_SLIP is not set
537# CONFIG_SHAPER is not set
538# CONFIG_NETCONSOLE is not set 558# CONFIG_NETCONSOLE is not set
539# CONFIG_NETPOLL is not set 559# CONFIG_NETPOLL is not set
540# CONFIG_NET_POLL_CONTROLLER is not set 560# CONFIG_NET_POLL_CONTROLLER is not set
@@ -557,6 +577,7 @@ CONFIG_NETDEV_10000=y
557# 577#
558# CONFIG_VT is not set 578# CONFIG_VT is not set
559# CONFIG_SERIAL_NONSTANDARD is not set 579# CONFIG_SERIAL_NONSTANDARD is not set
580# CONFIG_NOZOMI is not set
560 581
561# 582#
562# Serial drivers 583# Serial drivers
@@ -602,6 +623,7 @@ CONFIG_DEVPORT=y
602# CONFIG_W1 is not set 623# CONFIG_W1 is not set
603# CONFIG_POWER_SUPPLY is not set 624# CONFIG_POWER_SUPPLY is not set
604# CONFIG_HWMON is not set 625# CONFIG_HWMON is not set
626CONFIG_THERMAL=y
605# CONFIG_WATCHDOG is not set 627# CONFIG_WATCHDOG is not set
606 628
607# 629#
@@ -647,6 +669,7 @@ CONFIG_USB_ARCH_HAS_OHCI=y
647CONFIG_USB_ARCH_HAS_EHCI=y 669CONFIG_USB_ARCH_HAS_EHCI=y
648CONFIG_USB=y 670CONFIG_USB=y
649# CONFIG_USB_DEBUG is not set 671# CONFIG_USB_DEBUG is not set
672# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
650 673
651# 674#
652# Miscellaneous USB options 675# Miscellaneous USB options
@@ -697,10 +720,6 @@ CONFIG_USB_MON=y
697# 720#
698# USB port drivers 721# USB port drivers
699# 722#
700
701#
702# USB Serial Converter support
703#
704# CONFIG_USB_SERIAL is not set 723# CONFIG_USB_SERIAL is not set
705 724
706# 725#
@@ -725,16 +744,9 @@ CONFIG_USB_MON=y
725# CONFIG_USB_TRANCEVIBRATOR is not set 744# CONFIG_USB_TRANCEVIBRATOR is not set
726# CONFIG_USB_IOWARRIOR is not set 745# CONFIG_USB_IOWARRIOR is not set
727# CONFIG_USB_TEST is not set 746# CONFIG_USB_TEST is not set
728
729#
730# USB DSL modem support
731#
732
733#
734# USB Gadget Support
735#
736# CONFIG_USB_GADGET is not set 747# CONFIG_USB_GADGET is not set
737# CONFIG_MMC is not set 748# CONFIG_MMC is not set
749# CONFIG_MEMSTICK is not set
738# CONFIG_NEW_LEDS is not set 750# CONFIG_NEW_LEDS is not set
739# CONFIG_INFINIBAND is not set 751# CONFIG_INFINIBAND is not set
740# CONFIG_EDAC is not set 752# CONFIG_EDAC is not set
@@ -759,12 +771,10 @@ CONFIG_EXT2_FS=y
759# CONFIG_XFS_FS is not set 771# CONFIG_XFS_FS is not set
760# CONFIG_GFS2_FS is not set 772# CONFIG_GFS2_FS is not set
761# CONFIG_OCFS2_FS is not set 773# CONFIG_OCFS2_FS is not set
762# CONFIG_MINIX_FS is not set 774CONFIG_DNOTIFY=y
763# CONFIG_ROMFS_FS is not set
764CONFIG_INOTIFY=y 775CONFIG_INOTIFY=y
765CONFIG_INOTIFY_USER=y 776CONFIG_INOTIFY_USER=y
766# CONFIG_QUOTA is not set 777# CONFIG_QUOTA is not set
767CONFIG_DNOTIFY=y
768# CONFIG_AUTOFS_FS is not set 778# CONFIG_AUTOFS_FS is not set
769# CONFIG_AUTOFS4_FS is not set 779# CONFIG_AUTOFS4_FS is not set
770# CONFIG_FUSE_FS is not set 780# CONFIG_FUSE_FS is not set
@@ -807,8 +817,10 @@ CONFIG_TMPFS=y
807# CONFIG_JFFS2_FS is not set 817# CONFIG_JFFS2_FS is not set
808CONFIG_CRAMFS=y 818CONFIG_CRAMFS=y
809# CONFIG_VXFS_FS is not set 819# CONFIG_VXFS_FS is not set
820# CONFIG_MINIX_FS is not set
810# CONFIG_HPFS_FS is not set 821# CONFIG_HPFS_FS is not set
811# CONFIG_QNX4FS_FS is not set 822# CONFIG_QNX4FS_FS is not set
823# CONFIG_ROMFS_FS is not set
812# CONFIG_SYSV_FS is not set 824# CONFIG_SYSV_FS is not set
813# CONFIG_UFS_FS is not set 825# CONFIG_UFS_FS is not set
814CONFIG_NETWORK_FILESYSTEMS=y 826CONFIG_NETWORK_FILESYSTEMS=y
@@ -839,7 +851,6 @@ CONFIG_SUNRPC=y
839CONFIG_MSDOS_PARTITION=y 851CONFIG_MSDOS_PARTITION=y
840# CONFIG_NLS is not set 852# CONFIG_NLS is not set
841# CONFIG_DLM is not set 853# CONFIG_DLM is not set
842# CONFIG_UCC_SLOW is not set
843 854
844# 855#
845# Library routines 856# Library routines
@@ -856,10 +867,6 @@ CONFIG_PLIST=y
856CONFIG_HAS_IOMEM=y 867CONFIG_HAS_IOMEM=y
857CONFIG_HAS_IOPORT=y 868CONFIG_HAS_IOPORT=y
858CONFIG_HAS_DMA=y 869CONFIG_HAS_DMA=y
859CONFIG_INSTRUMENTATION=y
860# CONFIG_PROFILING is not set
861# CONFIG_KPROBES is not set
862# CONFIG_MARKERS is not set
863 870
864# 871#
865# Kernel hacking 872# Kernel hacking
@@ -869,7 +876,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
869CONFIG_ENABLE_MUST_CHECK=y 876CONFIG_ENABLE_MUST_CHECK=y
870CONFIG_MAGIC_SYSRQ=y 877CONFIG_MAGIC_SYSRQ=y
871# CONFIG_UNUSED_SYMBOLS is not set 878# CONFIG_UNUSED_SYMBOLS is not set
872# CONFIG_DEBUG_FS is not set 879CONFIG_DEBUG_FS=y
873# CONFIG_HEADERS_CHECK is not set 880# CONFIG_HEADERS_CHECK is not set
874CONFIG_DEBUG_KERNEL=y 881CONFIG_DEBUG_KERNEL=y
875# CONFIG_DEBUG_SHIRQ is not set 882# CONFIG_DEBUG_SHIRQ is not set
@@ -878,6 +885,7 @@ CONFIG_SCHED_DEBUG=y
878# CONFIG_SCHEDSTATS is not set 885# CONFIG_SCHEDSTATS is not set
879# CONFIG_TIMER_STATS is not set 886# CONFIG_TIMER_STATS is not set
880# CONFIG_SLUB_DEBUG_ON is not set 887# CONFIG_SLUB_DEBUG_ON is not set
888# CONFIG_SLUB_STATS is not set
881# CONFIG_DEBUG_RT_MUTEXES is not set 889# CONFIG_DEBUG_RT_MUTEXES is not set
882# CONFIG_RT_MUTEX_TESTER is not set 890# CONFIG_RT_MUTEX_TESTER is not set
883# CONFIG_DEBUG_SPINLOCK is not set 891# CONFIG_DEBUG_SPINLOCK is not set
@@ -890,15 +898,16 @@ CONFIG_DEBUG_BUGVERBOSE=y
890# CONFIG_DEBUG_VM is not set 898# CONFIG_DEBUG_VM is not set
891# CONFIG_DEBUG_LIST is not set 899# CONFIG_DEBUG_LIST is not set
892# CONFIG_DEBUG_SG is not set 900# CONFIG_DEBUG_SG is not set
893CONFIG_FORCED_INLINING=y
894# CONFIG_BOOT_PRINTK_DELAY is not set 901# CONFIG_BOOT_PRINTK_DELAY is not set
895# CONFIG_RCU_TORTURE_TEST is not set 902# CONFIG_RCU_TORTURE_TEST is not set
903# CONFIG_BACKTRACE_SELF_TEST is not set
896# CONFIG_FAULT_INJECTION is not set 904# CONFIG_FAULT_INJECTION is not set
897# CONFIG_SAMPLES is not set 905# CONFIG_SAMPLES is not set
898# CONFIG_DEBUG_STACKOVERFLOW is not set 906# CONFIG_DEBUG_STACKOVERFLOW is not set
899# CONFIG_DEBUG_STACK_USAGE is not set 907# CONFIG_DEBUG_STACK_USAGE is not set
900# CONFIG_DEBUG_PAGEALLOC is not set 908# CONFIG_DEBUG_PAGEALLOC is not set
901# CONFIG_DEBUGGER is not set 909# CONFIG_DEBUGGER is not set
910# CONFIG_VIRQ_DEBUG is not set
902# CONFIG_BDI_SWITCH is not set 911# CONFIG_BDI_SWITCH is not set
903# CONFIG_PPC_EARLY_DEBUG is not set 912# CONFIG_PPC_EARLY_DEBUG is not set
904 913
@@ -911,6 +920,7 @@ CONFIG_FORCED_INLINING=y
911CONFIG_CRYPTO=y 920CONFIG_CRYPTO=y
912CONFIG_CRYPTO_ALGAPI=y 921CONFIG_CRYPTO_ALGAPI=y
913CONFIG_CRYPTO_BLKCIPHER=y 922CONFIG_CRYPTO_BLKCIPHER=y
923# CONFIG_CRYPTO_SEQIV is not set
914CONFIG_CRYPTO_MANAGER=y 924CONFIG_CRYPTO_MANAGER=y
915# CONFIG_CRYPTO_HMAC is not set 925# CONFIG_CRYPTO_HMAC is not set
916# CONFIG_CRYPTO_XCBC is not set 926# CONFIG_CRYPTO_XCBC is not set
@@ -928,6 +938,9 @@ CONFIG_CRYPTO_CBC=y
928CONFIG_CRYPTO_PCBC=y 938CONFIG_CRYPTO_PCBC=y
929# CONFIG_CRYPTO_LRW is not set 939# CONFIG_CRYPTO_LRW is not set
930# CONFIG_CRYPTO_XTS is not set 940# CONFIG_CRYPTO_XTS is not set
941# CONFIG_CRYPTO_CTR is not set
942# CONFIG_CRYPTO_GCM is not set
943# CONFIG_CRYPTO_CCM is not set
931# CONFIG_CRYPTO_CRYPTD is not set 944# CONFIG_CRYPTO_CRYPTD is not set
932CONFIG_CRYPTO_DES=y 945CONFIG_CRYPTO_DES=y
933# CONFIG_CRYPTO_FCRYPT is not set 946# CONFIG_CRYPTO_FCRYPT is not set
@@ -942,11 +955,14 @@ CONFIG_CRYPTO_DES=y
942# CONFIG_CRYPTO_KHAZAD is not set 955# CONFIG_CRYPTO_KHAZAD is not set
943# CONFIG_CRYPTO_ANUBIS is not set 956# CONFIG_CRYPTO_ANUBIS is not set
944# CONFIG_CRYPTO_SEED is not set 957# CONFIG_CRYPTO_SEED is not set
958# CONFIG_CRYPTO_SALSA20 is not set
945# CONFIG_CRYPTO_DEFLATE is not set 959# CONFIG_CRYPTO_DEFLATE is not set
946# CONFIG_CRYPTO_MICHAEL_MIC is not set 960# CONFIG_CRYPTO_MICHAEL_MIC is not set
947# CONFIG_CRYPTO_CRC32C is not set 961# CONFIG_CRYPTO_CRC32C is not set
948# CONFIG_CRYPTO_CAMELLIA is not set 962# CONFIG_CRYPTO_CAMELLIA is not set
949# CONFIG_CRYPTO_TEST is not set 963# CONFIG_CRYPTO_TEST is not set
950# CONFIG_CRYPTO_AUTHENC is not set 964# CONFIG_CRYPTO_AUTHENC is not set
965# CONFIG_CRYPTO_LZO is not set
951CONFIG_CRYPTO_HW=y 966CONFIG_CRYPTO_HW=y
967# CONFIG_CRYPTO_DEV_HIFN_795X is not set
952# CONFIG_PPC_CLOCK is not set 968# CONFIG_PPC_CLOCK is not set
diff --git a/arch/powerpc/configs/kilauea_defconfig b/arch/powerpc/configs/kilauea_defconfig
index 8dca3d451c0e..2f475391f1d1 100644
--- a/arch/powerpc/configs/kilauea_defconfig
+++ b/arch/powerpc/configs/kilauea_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc6 3# Linux kernel version: 2.6.25-rc2
4# Thu Jan 3 14:21:31 2008 4# Fri Feb 15 21:51:43 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -26,6 +26,7 @@ CONFIG_GENERIC_TIME=y
26CONFIG_GENERIC_TIME_VSYSCALL=y 26CONFIG_GENERIC_TIME_VSYSCALL=y
27CONFIG_GENERIC_CLOCKEVENTS=y 27CONFIG_GENERIC_CLOCKEVENTS=y
28CONFIG_GENERIC_HARDIRQS=y 28CONFIG_GENERIC_HARDIRQS=y
29# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
29CONFIG_IRQ_PER_CPU=y 30CONFIG_IRQ_PER_CPU=y
30CONFIG_RWSEM_XCHGADD_ALGORITHM=y 31CONFIG_RWSEM_XCHGADD_ALGORITHM=y
31CONFIG_ARCH_HAS_ILOG2_U32=y 32CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -64,15 +65,18 @@ CONFIG_SYSVIPC_SYSCTL=y
64CONFIG_POSIX_MQUEUE=y 65CONFIG_POSIX_MQUEUE=y
65# CONFIG_BSD_PROCESS_ACCT is not set 66# CONFIG_BSD_PROCESS_ACCT is not set
66# CONFIG_TASKSTATS is not set 67# CONFIG_TASKSTATS is not set
67# CONFIG_USER_NS is not set
68# CONFIG_PID_NS is not set
69# CONFIG_AUDIT is not set 68# CONFIG_AUDIT is not set
70# CONFIG_IKCONFIG is not set 69# CONFIG_IKCONFIG is not set
71CONFIG_LOG_BUF_SHIFT=14 70CONFIG_LOG_BUF_SHIFT=14
72# CONFIG_CGROUPS is not set 71# CONFIG_CGROUPS is not set
72CONFIG_GROUP_SCHED=y
73# CONFIG_FAIR_GROUP_SCHED is not set 73# CONFIG_FAIR_GROUP_SCHED is not set
74# CONFIG_RT_GROUP_SCHED is not set
75CONFIG_USER_SCHED=y
76# CONFIG_CGROUP_SCHED is not set
74CONFIG_SYSFS_DEPRECATED=y 77CONFIG_SYSFS_DEPRECATED=y
75# CONFIG_RELAY is not set 78# CONFIG_RELAY is not set
79# CONFIG_NAMESPACES is not set
76CONFIG_BLK_DEV_INITRD=y 80CONFIG_BLK_DEV_INITRD=y
77CONFIG_INITRAMFS_SOURCE="" 81CONFIG_INITRAMFS_SOURCE=""
78# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 82# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
@@ -86,11 +90,13 @@ CONFIG_HOTPLUG=y
86CONFIG_PRINTK=y 90CONFIG_PRINTK=y
87CONFIG_BUG=y 91CONFIG_BUG=y
88CONFIG_ELF_CORE=y 92CONFIG_ELF_CORE=y
93CONFIG_COMPAT_BRK=y
89CONFIG_BASE_FULL=y 94CONFIG_BASE_FULL=y
90CONFIG_FUTEX=y 95CONFIG_FUTEX=y
91CONFIG_ANON_INODES=y 96CONFIG_ANON_INODES=y
92CONFIG_EPOLL=y 97CONFIG_EPOLL=y
93CONFIG_SIGNALFD=y 98CONFIG_SIGNALFD=y
99CONFIG_TIMERFD=y
94CONFIG_EVENTFD=y 100CONFIG_EVENTFD=y
95CONFIG_SHMEM=y 101CONFIG_SHMEM=y
96CONFIG_VM_EVENT_COUNTERS=y 102CONFIG_VM_EVENT_COUNTERS=y
@@ -98,6 +104,13 @@ CONFIG_SLUB_DEBUG=y
98# CONFIG_SLAB is not set 104# CONFIG_SLAB is not set
99CONFIG_SLUB=y 105CONFIG_SLUB=y
100# CONFIG_SLOB is not set 106# CONFIG_SLOB is not set
107# CONFIG_PROFILING is not set
108# CONFIG_MARKERS is not set
109CONFIG_HAVE_OPROFILE=y
110# CONFIG_KPROBES is not set
111CONFIG_HAVE_KPROBES=y
112CONFIG_PROC_PAGE_MONITOR=y
113CONFIG_SLABINFO=y
101CONFIG_RT_MUTEXES=y 114CONFIG_RT_MUTEXES=y
102# CONFIG_TINY_SHMEM is not set 115# CONFIG_TINY_SHMEM is not set
103CONFIG_BASE_SMALL=0 116CONFIG_BASE_SMALL=0
@@ -125,13 +138,15 @@ CONFIG_DEFAULT_AS=y
125# CONFIG_DEFAULT_CFQ is not set 138# CONFIG_DEFAULT_CFQ is not set
126# CONFIG_DEFAULT_NOOP is not set 139# CONFIG_DEFAULT_NOOP is not set
127CONFIG_DEFAULT_IOSCHED="anticipatory" 140CONFIG_DEFAULT_IOSCHED="anticipatory"
141CONFIG_CLASSIC_RCU=y
142# CONFIG_PREEMPT_RCU is not set
128CONFIG_PPC4xx_PCI_EXPRESS=y 143CONFIG_PPC4xx_PCI_EXPRESS=y
129 144
130# 145#
131# Platform support 146# Platform support
132# 147#
133# CONFIG_PPC_MPC52xx is not set 148# CONFIG_PPC_MPC512x is not set
134# CONFIG_PPC_MPC5200 is not set 149# CONFIG_PPC_MPC5121 is not set
135# CONFIG_PPC_CELL is not set 150# CONFIG_PPC_CELL is not set
136# CONFIG_PPC_CELL_NATIVE is not set 151# CONFIG_PPC_CELL_NATIVE is not set
137# CONFIG_PQ2ADS is not set 152# CONFIG_PQ2ADS is not set
@@ -141,6 +156,7 @@ CONFIG_KILAUEA=y
141# CONFIG_WALNUT is not set 156# CONFIG_WALNUT is not set
142# CONFIG_XILINX_VIRTEX_GENERIC_BOARD is not set 157# CONFIG_XILINX_VIRTEX_GENERIC_BOARD is not set
143CONFIG_405EX=y 158CONFIG_405EX=y
159# CONFIG_IPIC is not set
144# CONFIG_MPIC is not set 160# CONFIG_MPIC is not set
145# CONFIG_MPIC_WEIRD is not set 161# CONFIG_MPIC_WEIRD is not set
146# CONFIG_PPC_I8259 is not set 162# CONFIG_PPC_I8259 is not set
@@ -151,7 +167,6 @@ CONFIG_405EX=y
151# CONFIG_PPC_INDIRECT_IO is not set 167# CONFIG_PPC_INDIRECT_IO is not set
152# CONFIG_GENERIC_IOMAP is not set 168# CONFIG_GENERIC_IOMAP is not set
153# CONFIG_CPU_FREQ is not set 169# CONFIG_CPU_FREQ is not set
154# CONFIG_CPM2 is not set
155# CONFIG_FSL_ULI1575 is not set 170# CONFIG_FSL_ULI1575 is not set
156 171
157# 172#
@@ -167,13 +182,18 @@ CONFIG_HZ_250=y
167# CONFIG_HZ_300 is not set 182# CONFIG_HZ_300 is not set
168# CONFIG_HZ_1000 is not set 183# CONFIG_HZ_1000 is not set
169CONFIG_HZ=250 184CONFIG_HZ=250
185# CONFIG_SCHED_HRTICK is not set
170CONFIG_PREEMPT_NONE=y 186CONFIG_PREEMPT_NONE=y
171# CONFIG_PREEMPT_VOLUNTARY is not set 187# CONFIG_PREEMPT_VOLUNTARY is not set
172# CONFIG_PREEMPT is not set 188# CONFIG_PREEMPT is not set
189CONFIG_RCU_TRACE=y
173CONFIG_BINFMT_ELF=y 190CONFIG_BINFMT_ELF=y
174# CONFIG_BINFMT_MISC is not set 191# CONFIG_BINFMT_MISC is not set
175# CONFIG_MATH_EMULATION is not set 192# CONFIG_MATH_EMULATION is not set
193# CONFIG_IOMMU_HELPER is not set
176CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 194CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
195CONFIG_ARCH_HAS_WALK_MEMORY=y
196CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
177CONFIG_ARCH_FLATMEM_ENABLE=y 197CONFIG_ARCH_FLATMEM_ENABLE=y
178CONFIG_ARCH_POPULATES_NODE_MAP=y 198CONFIG_ARCH_POPULATES_NODE_MAP=y
179CONFIG_SELECT_MEMORY_MODEL=y 199CONFIG_SELECT_MEMORY_MODEL=y
@@ -192,11 +212,7 @@ CONFIG_VIRT_TO_BUS=y
192CONFIG_PROC_DEVICETREE=y 212CONFIG_PROC_DEVICETREE=y
193# CONFIG_CMDLINE_BOOL is not set 213# CONFIG_CMDLINE_BOOL is not set
194# CONFIG_PM is not set 214# CONFIG_PM is not set
195CONFIG_SUSPEND_UP_POSSIBLE=y
196CONFIG_HIBERNATION_UP_POSSIBLE=y
197CONFIG_SECCOMP=y 215CONFIG_SECCOMP=y
198CONFIG_WANT_DEVICE_TREE=y
199CONFIG_DEVICE_TREE="kilauea.dts"
200CONFIG_ISA_DMA_API=y 216CONFIG_ISA_DMA_API=y
201 217
202# 218#
@@ -296,6 +312,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
296# 312#
297# CONFIG_NET_PKTGEN is not set 313# CONFIG_NET_PKTGEN is not set
298# CONFIG_HAMRADIO is not set 314# CONFIG_HAMRADIO is not set
315# CONFIG_CAN is not set
299# CONFIG_IRDA is not set 316# CONFIG_IRDA is not set
300# CONFIG_BT is not set 317# CONFIG_BT is not set
301# CONFIG_AF_RXRPC is not set 318# CONFIG_AF_RXRPC is not set
@@ -332,6 +349,7 @@ CONFIG_MTD=y
332CONFIG_MTD_PARTITIONS=y 349CONFIG_MTD_PARTITIONS=y
333# CONFIG_MTD_REDBOOT_PARTS is not set 350# CONFIG_MTD_REDBOOT_PARTS is not set
334CONFIG_MTD_CMDLINE_PARTS=y 351CONFIG_MTD_CMDLINE_PARTS=y
352CONFIG_MTD_OF_PARTS=y
335 353
336# 354#
337# User Modules And Translation Layers 355# User Modules And Translation Layers
@@ -418,11 +436,12 @@ CONFIG_BLK_DEV=y
418CONFIG_BLK_DEV_RAM=y 436CONFIG_BLK_DEV_RAM=y
419CONFIG_BLK_DEV_RAM_COUNT=16 437CONFIG_BLK_DEV_RAM_COUNT=16
420CONFIG_BLK_DEV_RAM_SIZE=35000 438CONFIG_BLK_DEV_RAM_SIZE=35000
421CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 439# CONFIG_BLK_DEV_XIP is not set
422# CONFIG_CDROM_PKTCDVD is not set 440# CONFIG_CDROM_PKTCDVD is not set
423# CONFIG_ATA_OVER_ETH is not set 441# CONFIG_ATA_OVER_ETH is not set
424# CONFIG_XILINX_SYSACE is not set 442# CONFIG_XILINX_SYSACE is not set
425# CONFIG_MISC_DEVICES is not set 443# CONFIG_MISC_DEVICES is not set
444CONFIG_HAVE_IDE=y
426# CONFIG_IDE is not set 445# CONFIG_IDE is not set
427 446
428# 447#
@@ -451,7 +470,6 @@ CONFIG_NETDEVICES=y
451# CONFIG_EQUALIZER is not set 470# CONFIG_EQUALIZER is not set
452# CONFIG_TUN is not set 471# CONFIG_TUN is not set
453# CONFIG_VETH is not set 472# CONFIG_VETH is not set
454# CONFIG_IP1000 is not set
455# CONFIG_ARCNET is not set 473# CONFIG_ARCNET is not set
456# CONFIG_PHYLIB is not set 474# CONFIG_PHYLIB is not set
457CONFIG_NET_ETHERNET=y 475CONFIG_NET_ETHERNET=y
@@ -489,7 +507,6 @@ CONFIG_IBM_NEW_EMAC_EMAC4=y
489# CONFIG_HIPPI is not set 507# CONFIG_HIPPI is not set
490# CONFIG_PPP is not set 508# CONFIG_PPP is not set
491# CONFIG_SLIP is not set 509# CONFIG_SLIP is not set
492# CONFIG_SHAPER is not set
493# CONFIG_NETCONSOLE is not set 510# CONFIG_NETCONSOLE is not set
494# CONFIG_NETPOLL is not set 511# CONFIG_NETPOLL is not set
495# CONFIG_NET_POLL_CONTROLLER is not set 512# CONFIG_NET_POLL_CONTROLLER is not set
@@ -512,6 +529,7 @@ CONFIG_IBM_NEW_EMAC_EMAC4=y
512# 529#
513# CONFIG_VT is not set 530# CONFIG_VT is not set
514# CONFIG_SERIAL_NONSTANDARD is not set 531# CONFIG_SERIAL_NONSTANDARD is not set
532# CONFIG_NOZOMI is not set
515 533
516# 534#
517# Serial drivers 535# Serial drivers
@@ -557,6 +575,7 @@ CONFIG_DEVPORT=y
557# CONFIG_W1 is not set 575# CONFIG_W1 is not set
558# CONFIG_POWER_SUPPLY is not set 576# CONFIG_POWER_SUPPLY is not set
559# CONFIG_HWMON is not set 577# CONFIG_HWMON is not set
578CONFIG_THERMAL=y
560# CONFIG_WATCHDOG is not set 579# CONFIG_WATCHDOG is not set
561 580
562# 581#
@@ -598,6 +617,7 @@ CONFIG_SSB_POSSIBLE=y
598# CONFIG_SOUND is not set 617# CONFIG_SOUND is not set
599# CONFIG_USB_SUPPORT is not set 618# CONFIG_USB_SUPPORT is not set
600# CONFIG_MMC is not set 619# CONFIG_MMC is not set
620# CONFIG_MEMSTICK is not set
601# CONFIG_NEW_LEDS is not set 621# CONFIG_NEW_LEDS is not set
602# CONFIG_INFINIBAND is not set 622# CONFIG_INFINIBAND is not set
603# CONFIG_EDAC is not set 623# CONFIG_EDAC is not set
@@ -622,12 +642,10 @@ CONFIG_EXT2_FS=y
622# CONFIG_XFS_FS is not set 642# CONFIG_XFS_FS is not set
623# CONFIG_GFS2_FS is not set 643# CONFIG_GFS2_FS is not set
624# CONFIG_OCFS2_FS is not set 644# CONFIG_OCFS2_FS is not set
625# CONFIG_MINIX_FS is not set 645CONFIG_DNOTIFY=y
626# CONFIG_ROMFS_FS is not set
627CONFIG_INOTIFY=y 646CONFIG_INOTIFY=y
628CONFIG_INOTIFY_USER=y 647CONFIG_INOTIFY_USER=y
629# CONFIG_QUOTA is not set 648# CONFIG_QUOTA is not set
630CONFIG_DNOTIFY=y
631# CONFIG_AUTOFS_FS is not set 649# CONFIG_AUTOFS_FS is not set
632# CONFIG_AUTOFS4_FS is not set 650# CONFIG_AUTOFS4_FS is not set
633# CONFIG_FUSE_FS is not set 651# CONFIG_FUSE_FS is not set
@@ -670,8 +688,10 @@ CONFIG_TMPFS=y
670# CONFIG_JFFS2_FS is not set 688# CONFIG_JFFS2_FS is not set
671CONFIG_CRAMFS=y 689CONFIG_CRAMFS=y
672# CONFIG_VXFS_FS is not set 690# CONFIG_VXFS_FS is not set
691# CONFIG_MINIX_FS is not set
673# CONFIG_HPFS_FS is not set 692# CONFIG_HPFS_FS is not set
674# CONFIG_QNX4FS_FS is not set 693# CONFIG_QNX4FS_FS is not set
694# CONFIG_ROMFS_FS is not set
675# CONFIG_SYSV_FS is not set 695# CONFIG_SYSV_FS is not set
676# CONFIG_UFS_FS is not set 696# CONFIG_UFS_FS is not set
677CONFIG_NETWORK_FILESYSTEMS=y 697CONFIG_NETWORK_FILESYSTEMS=y
@@ -702,7 +722,6 @@ CONFIG_SUNRPC=y
702CONFIG_MSDOS_PARTITION=y 722CONFIG_MSDOS_PARTITION=y
703# CONFIG_NLS is not set 723# CONFIG_NLS is not set
704# CONFIG_DLM is not set 724# CONFIG_DLM is not set
705# CONFIG_UCC_SLOW is not set
706 725
707# 726#
708# Library routines 727# Library routines
@@ -719,7 +738,6 @@ CONFIG_PLIST=y
719CONFIG_HAS_IOMEM=y 738CONFIG_HAS_IOMEM=y
720CONFIG_HAS_IOPORT=y 739CONFIG_HAS_IOPORT=y
721CONFIG_HAS_DMA=y 740CONFIG_HAS_DMA=y
722# CONFIG_INSTRUMENTATION is not set
723 741
724# 742#
725# Kernel hacking 743# Kernel hacking
@@ -729,7 +747,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
729CONFIG_ENABLE_MUST_CHECK=y 747CONFIG_ENABLE_MUST_CHECK=y
730CONFIG_MAGIC_SYSRQ=y 748CONFIG_MAGIC_SYSRQ=y
731# CONFIG_UNUSED_SYMBOLS is not set 749# CONFIG_UNUSED_SYMBOLS is not set
732# CONFIG_DEBUG_FS is not set 750CONFIG_DEBUG_FS=y
733# CONFIG_HEADERS_CHECK is not set 751# CONFIG_HEADERS_CHECK is not set
734CONFIG_DEBUG_KERNEL=y 752CONFIG_DEBUG_KERNEL=y
735# CONFIG_DEBUG_SHIRQ is not set 753# CONFIG_DEBUG_SHIRQ is not set
@@ -738,6 +756,7 @@ CONFIG_SCHED_DEBUG=y
738# CONFIG_SCHEDSTATS is not set 756# CONFIG_SCHEDSTATS is not set
739# CONFIG_TIMER_STATS is not set 757# CONFIG_TIMER_STATS is not set
740# CONFIG_SLUB_DEBUG_ON is not set 758# CONFIG_SLUB_DEBUG_ON is not set
759# CONFIG_SLUB_STATS is not set
741# CONFIG_DEBUG_RT_MUTEXES is not set 760# CONFIG_DEBUG_RT_MUTEXES is not set
742# CONFIG_RT_MUTEX_TESTER is not set 761# CONFIG_RT_MUTEX_TESTER is not set
743# CONFIG_DEBUG_SPINLOCK is not set 762# CONFIG_DEBUG_SPINLOCK is not set
@@ -750,15 +769,16 @@ CONFIG_DEBUG_BUGVERBOSE=y
750# CONFIG_DEBUG_VM is not set 769# CONFIG_DEBUG_VM is not set
751# CONFIG_DEBUG_LIST is not set 770# CONFIG_DEBUG_LIST is not set
752# CONFIG_DEBUG_SG is not set 771# CONFIG_DEBUG_SG is not set
753CONFIG_FORCED_INLINING=y
754# CONFIG_BOOT_PRINTK_DELAY is not set 772# CONFIG_BOOT_PRINTK_DELAY is not set
755# CONFIG_RCU_TORTURE_TEST is not set 773# CONFIG_RCU_TORTURE_TEST is not set
774# CONFIG_BACKTRACE_SELF_TEST is not set
756# CONFIG_FAULT_INJECTION is not set 775# CONFIG_FAULT_INJECTION is not set
757# CONFIG_SAMPLES is not set 776# CONFIG_SAMPLES is not set
758# CONFIG_DEBUG_STACKOVERFLOW is not set 777# CONFIG_DEBUG_STACKOVERFLOW is not set
759# CONFIG_DEBUG_STACK_USAGE is not set 778# CONFIG_DEBUG_STACK_USAGE is not set
760# CONFIG_DEBUG_PAGEALLOC is not set 779# CONFIG_DEBUG_PAGEALLOC is not set
761# CONFIG_DEBUGGER is not set 780# CONFIG_DEBUGGER is not set
781# CONFIG_VIRQ_DEBUG is not set
762# CONFIG_BDI_SWITCH is not set 782# CONFIG_BDI_SWITCH is not set
763# CONFIG_PPC_EARLY_DEBUG is not set 783# CONFIG_PPC_EARLY_DEBUG is not set
764 784
@@ -771,6 +791,7 @@ CONFIG_FORCED_INLINING=y
771CONFIG_CRYPTO=y 791CONFIG_CRYPTO=y
772CONFIG_CRYPTO_ALGAPI=y 792CONFIG_CRYPTO_ALGAPI=y
773CONFIG_CRYPTO_BLKCIPHER=y 793CONFIG_CRYPTO_BLKCIPHER=y
794# CONFIG_CRYPTO_SEQIV is not set
774CONFIG_CRYPTO_MANAGER=y 795CONFIG_CRYPTO_MANAGER=y
775# CONFIG_CRYPTO_HMAC is not set 796# CONFIG_CRYPTO_HMAC is not set
776# CONFIG_CRYPTO_XCBC is not set 797# CONFIG_CRYPTO_XCBC is not set
@@ -788,6 +809,9 @@ CONFIG_CRYPTO_CBC=y
788CONFIG_CRYPTO_PCBC=y 809CONFIG_CRYPTO_PCBC=y
789# CONFIG_CRYPTO_LRW is not set 810# CONFIG_CRYPTO_LRW is not set
790# CONFIG_CRYPTO_XTS is not set 811# CONFIG_CRYPTO_XTS is not set
812# CONFIG_CRYPTO_CTR is not set
813# CONFIG_CRYPTO_GCM is not set
814# CONFIG_CRYPTO_CCM is not set
791# CONFIG_CRYPTO_CRYPTD is not set 815# CONFIG_CRYPTO_CRYPTD is not set
792CONFIG_CRYPTO_DES=y 816CONFIG_CRYPTO_DES=y
793# CONFIG_CRYPTO_FCRYPT is not set 817# CONFIG_CRYPTO_FCRYPT is not set
@@ -802,11 +826,14 @@ CONFIG_CRYPTO_DES=y
802# CONFIG_CRYPTO_KHAZAD is not set 826# CONFIG_CRYPTO_KHAZAD is not set
803# CONFIG_CRYPTO_ANUBIS is not set 827# CONFIG_CRYPTO_ANUBIS is not set
804# CONFIG_CRYPTO_SEED is not set 828# CONFIG_CRYPTO_SEED is not set
829# CONFIG_CRYPTO_SALSA20 is not set
805# CONFIG_CRYPTO_DEFLATE is not set 830# CONFIG_CRYPTO_DEFLATE is not set
806# CONFIG_CRYPTO_MICHAEL_MIC is not set 831# CONFIG_CRYPTO_MICHAEL_MIC is not set
807# CONFIG_CRYPTO_CRC32C is not set 832# CONFIG_CRYPTO_CRC32C is not set
808# CONFIG_CRYPTO_CAMELLIA is not set 833# CONFIG_CRYPTO_CAMELLIA is not set
809# CONFIG_CRYPTO_TEST is not set 834# CONFIG_CRYPTO_TEST is not set
810# CONFIG_CRYPTO_AUTHENC is not set 835# CONFIG_CRYPTO_AUTHENC is not set
836# CONFIG_CRYPTO_LZO is not set
811CONFIG_CRYPTO_HW=y 837CONFIG_CRYPTO_HW=y
838# CONFIG_CRYPTO_DEV_HIFN_795X is not set
812# CONFIG_PPC_CLOCK is not set 839# CONFIG_PPC_CLOCK is not set
diff --git a/arch/powerpc/configs/makalu_defconfig b/arch/powerpc/configs/makalu_defconfig
index c5db0265e5d8..9ef4d8a312c8 100644
--- a/arch/powerpc/configs/makalu_defconfig
+++ b/arch/powerpc/configs/makalu_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc6 3# Linux kernel version: 2.6.25-rc2
4# Mon Dec 24 11:18:32 2007 4# Fri Feb 15 21:52:30 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -26,6 +26,7 @@ CONFIG_GENERIC_TIME=y
26CONFIG_GENERIC_TIME_VSYSCALL=y 26CONFIG_GENERIC_TIME_VSYSCALL=y
27CONFIG_GENERIC_CLOCKEVENTS=y 27CONFIG_GENERIC_CLOCKEVENTS=y
28CONFIG_GENERIC_HARDIRQS=y 28CONFIG_GENERIC_HARDIRQS=y
29# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
29CONFIG_IRQ_PER_CPU=y 30CONFIG_IRQ_PER_CPU=y
30CONFIG_RWSEM_XCHGADD_ALGORITHM=y 31CONFIG_RWSEM_XCHGADD_ALGORITHM=y
31CONFIG_ARCH_HAS_ILOG2_U32=y 32CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -64,15 +65,18 @@ CONFIG_SYSVIPC_SYSCTL=y
64CONFIG_POSIX_MQUEUE=y 65CONFIG_POSIX_MQUEUE=y
65# CONFIG_BSD_PROCESS_ACCT is not set 66# CONFIG_BSD_PROCESS_ACCT is not set
66# CONFIG_TASKSTATS is not set 67# CONFIG_TASKSTATS is not set
67# CONFIG_USER_NS is not set
68# CONFIG_PID_NS is not set
69# CONFIG_AUDIT is not set 68# CONFIG_AUDIT is not set
70# CONFIG_IKCONFIG is not set 69# CONFIG_IKCONFIG is not set
71CONFIG_LOG_BUF_SHIFT=14 70CONFIG_LOG_BUF_SHIFT=14
72# CONFIG_CGROUPS is not set 71# CONFIG_CGROUPS is not set
72CONFIG_GROUP_SCHED=y
73# CONFIG_FAIR_GROUP_SCHED is not set 73# CONFIG_FAIR_GROUP_SCHED is not set
74# CONFIG_RT_GROUP_SCHED is not set
75CONFIG_USER_SCHED=y
76# CONFIG_CGROUP_SCHED is not set
74CONFIG_SYSFS_DEPRECATED=y 77CONFIG_SYSFS_DEPRECATED=y
75# CONFIG_RELAY is not set 78# CONFIG_RELAY is not set
79# CONFIG_NAMESPACES is not set
76CONFIG_BLK_DEV_INITRD=y 80CONFIG_BLK_DEV_INITRD=y
77CONFIG_INITRAMFS_SOURCE="" 81CONFIG_INITRAMFS_SOURCE=""
78# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 82# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
@@ -86,11 +90,13 @@ CONFIG_HOTPLUG=y
86CONFIG_PRINTK=y 90CONFIG_PRINTK=y
87CONFIG_BUG=y 91CONFIG_BUG=y
88CONFIG_ELF_CORE=y 92CONFIG_ELF_CORE=y
93CONFIG_COMPAT_BRK=y
89CONFIG_BASE_FULL=y 94CONFIG_BASE_FULL=y
90CONFIG_FUTEX=y 95CONFIG_FUTEX=y
91CONFIG_ANON_INODES=y 96CONFIG_ANON_INODES=y
92CONFIG_EPOLL=y 97CONFIG_EPOLL=y
93CONFIG_SIGNALFD=y 98CONFIG_SIGNALFD=y
99CONFIG_TIMERFD=y
94CONFIG_EVENTFD=y 100CONFIG_EVENTFD=y
95CONFIG_SHMEM=y 101CONFIG_SHMEM=y
96CONFIG_VM_EVENT_COUNTERS=y 102CONFIG_VM_EVENT_COUNTERS=y
@@ -98,6 +104,13 @@ CONFIG_SLUB_DEBUG=y
98# CONFIG_SLAB is not set 104# CONFIG_SLAB is not set
99CONFIG_SLUB=y 105CONFIG_SLUB=y
100# CONFIG_SLOB is not set 106# CONFIG_SLOB is not set
107# CONFIG_PROFILING is not set
108# CONFIG_MARKERS is not set
109CONFIG_HAVE_OPROFILE=y
110# CONFIG_KPROBES is not set
111CONFIG_HAVE_KPROBES=y
112CONFIG_PROC_PAGE_MONITOR=y
113CONFIG_SLABINFO=y
101CONFIG_RT_MUTEXES=y 114CONFIG_RT_MUTEXES=y
102# CONFIG_TINY_SHMEM is not set 115# CONFIG_TINY_SHMEM is not set
103CONFIG_BASE_SMALL=0 116CONFIG_BASE_SMALL=0
@@ -125,13 +138,15 @@ CONFIG_DEFAULT_AS=y
125# CONFIG_DEFAULT_CFQ is not set 138# CONFIG_DEFAULT_CFQ is not set
126# CONFIG_DEFAULT_NOOP is not set 139# CONFIG_DEFAULT_NOOP is not set
127CONFIG_DEFAULT_IOSCHED="anticipatory" 140CONFIG_DEFAULT_IOSCHED="anticipatory"
141CONFIG_CLASSIC_RCU=y
142# CONFIG_PREEMPT_RCU is not set
128CONFIG_PPC4xx_PCI_EXPRESS=y 143CONFIG_PPC4xx_PCI_EXPRESS=y
129 144
130# 145#
131# Platform support 146# Platform support
132# 147#
133# CONFIG_PPC_MPC52xx is not set 148# CONFIG_PPC_MPC512x is not set
134# CONFIG_PPC_MPC5200 is not set 149# CONFIG_PPC_MPC5121 is not set
135# CONFIG_PPC_CELL is not set 150# CONFIG_PPC_CELL is not set
136# CONFIG_PPC_CELL_NATIVE is not set 151# CONFIG_PPC_CELL_NATIVE is not set
137# CONFIG_PQ2ADS is not set 152# CONFIG_PQ2ADS is not set
@@ -141,6 +156,7 @@ CONFIG_MAKALU=y
141# CONFIG_WALNUT is not set 156# CONFIG_WALNUT is not set
142# CONFIG_XILINX_VIRTEX_GENERIC_BOARD is not set 157# CONFIG_XILINX_VIRTEX_GENERIC_BOARD is not set
143CONFIG_405EX=y 158CONFIG_405EX=y
159# CONFIG_IPIC is not set
144# CONFIG_MPIC is not set 160# CONFIG_MPIC is not set
145# CONFIG_MPIC_WEIRD is not set 161# CONFIG_MPIC_WEIRD is not set
146# CONFIG_PPC_I8259 is not set 162# CONFIG_PPC_I8259 is not set
@@ -151,7 +167,6 @@ CONFIG_405EX=y
151# CONFIG_PPC_INDIRECT_IO is not set 167# CONFIG_PPC_INDIRECT_IO is not set
152# CONFIG_GENERIC_IOMAP is not set 168# CONFIG_GENERIC_IOMAP is not set
153# CONFIG_CPU_FREQ is not set 169# CONFIG_CPU_FREQ is not set
154# CONFIG_CPM2 is not set
155# CONFIG_FSL_ULI1575 is not set 170# CONFIG_FSL_ULI1575 is not set
156 171
157# 172#
@@ -167,13 +182,18 @@ CONFIG_HZ_250=y
167# CONFIG_HZ_300 is not set 182# CONFIG_HZ_300 is not set
168# CONFIG_HZ_1000 is not set 183# CONFIG_HZ_1000 is not set
169CONFIG_HZ=250 184CONFIG_HZ=250
185# CONFIG_SCHED_HRTICK is not set
170CONFIG_PREEMPT_NONE=y 186CONFIG_PREEMPT_NONE=y
171# CONFIG_PREEMPT_VOLUNTARY is not set 187# CONFIG_PREEMPT_VOLUNTARY is not set
172# CONFIG_PREEMPT is not set 188# CONFIG_PREEMPT is not set
189CONFIG_RCU_TRACE=y
173CONFIG_BINFMT_ELF=y 190CONFIG_BINFMT_ELF=y
174# CONFIG_BINFMT_MISC is not set 191# CONFIG_BINFMT_MISC is not set
175# CONFIG_MATH_EMULATION is not set 192# CONFIG_MATH_EMULATION is not set
193# CONFIG_IOMMU_HELPER is not set
176CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 194CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
195CONFIG_ARCH_HAS_WALK_MEMORY=y
196CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
177CONFIG_ARCH_FLATMEM_ENABLE=y 197CONFIG_ARCH_FLATMEM_ENABLE=y
178CONFIG_ARCH_POPULATES_NODE_MAP=y 198CONFIG_ARCH_POPULATES_NODE_MAP=y
179CONFIG_SELECT_MEMORY_MODEL=y 199CONFIG_SELECT_MEMORY_MODEL=y
@@ -192,11 +212,7 @@ CONFIG_VIRT_TO_BUS=y
192CONFIG_PROC_DEVICETREE=y 212CONFIG_PROC_DEVICETREE=y
193# CONFIG_CMDLINE_BOOL is not set 213# CONFIG_CMDLINE_BOOL is not set
194# CONFIG_PM is not set 214# CONFIG_PM is not set
195CONFIG_SUSPEND_UP_POSSIBLE=y
196CONFIG_HIBERNATION_UP_POSSIBLE=y
197CONFIG_SECCOMP=y 215CONFIG_SECCOMP=y
198CONFIG_WANT_DEVICE_TREE=y
199CONFIG_DEVICE_TREE="kilauea.dts"
200CONFIG_ISA_DMA_API=y 216CONFIG_ISA_DMA_API=y
201 217
202# 218#
@@ -296,6 +312,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
296# 312#
297# CONFIG_NET_PKTGEN is not set 313# CONFIG_NET_PKTGEN is not set
298# CONFIG_HAMRADIO is not set 314# CONFIG_HAMRADIO is not set
315# CONFIG_CAN is not set
299# CONFIG_IRDA is not set 316# CONFIG_IRDA is not set
300# CONFIG_BT is not set 317# CONFIG_BT is not set
301# CONFIG_AF_RXRPC is not set 318# CONFIG_AF_RXRPC is not set
@@ -332,6 +349,7 @@ CONFIG_MTD=y
332CONFIG_MTD_PARTITIONS=y 349CONFIG_MTD_PARTITIONS=y
333# CONFIG_MTD_REDBOOT_PARTS is not set 350# CONFIG_MTD_REDBOOT_PARTS is not set
334CONFIG_MTD_CMDLINE_PARTS=y 351CONFIG_MTD_CMDLINE_PARTS=y
352CONFIG_MTD_OF_PARTS=y
335 353
336# 354#
337# User Modules And Translation Layers 355# User Modules And Translation Layers
@@ -418,11 +436,12 @@ CONFIG_BLK_DEV=y
418CONFIG_BLK_DEV_RAM=y 436CONFIG_BLK_DEV_RAM=y
419CONFIG_BLK_DEV_RAM_COUNT=16 437CONFIG_BLK_DEV_RAM_COUNT=16
420CONFIG_BLK_DEV_RAM_SIZE=35000 438CONFIG_BLK_DEV_RAM_SIZE=35000
421CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 439# CONFIG_BLK_DEV_XIP is not set
422# CONFIG_CDROM_PKTCDVD is not set 440# CONFIG_CDROM_PKTCDVD is not set
423# CONFIG_ATA_OVER_ETH is not set 441# CONFIG_ATA_OVER_ETH is not set
424# CONFIG_XILINX_SYSACE is not set 442# CONFIG_XILINX_SYSACE is not set
425# CONFIG_MISC_DEVICES is not set 443# CONFIG_MISC_DEVICES is not set
444CONFIG_HAVE_IDE=y
426# CONFIG_IDE is not set 445# CONFIG_IDE is not set
427 446
428# 447#
@@ -451,7 +470,6 @@ CONFIG_NETDEVICES=y
451# CONFIG_EQUALIZER is not set 470# CONFIG_EQUALIZER is not set
452# CONFIG_TUN is not set 471# CONFIG_TUN is not set
453# CONFIG_VETH is not set 472# CONFIG_VETH is not set
454# CONFIG_IP1000 is not set
455# CONFIG_ARCNET is not set 473# CONFIG_ARCNET is not set
456# CONFIG_PHYLIB is not set 474# CONFIG_PHYLIB is not set
457CONFIG_NET_ETHERNET=y 475CONFIG_NET_ETHERNET=y
@@ -489,7 +507,6 @@ CONFIG_IBM_NEW_EMAC_EMAC4=y
489# CONFIG_HIPPI is not set 507# CONFIG_HIPPI is not set
490# CONFIG_PPP is not set 508# CONFIG_PPP is not set
491# CONFIG_SLIP is not set 509# CONFIG_SLIP is not set
492# CONFIG_SHAPER is not set
493# CONFIG_NETCONSOLE is not set 510# CONFIG_NETCONSOLE is not set
494# CONFIG_NETPOLL is not set 511# CONFIG_NETPOLL is not set
495# CONFIG_NET_POLL_CONTROLLER is not set 512# CONFIG_NET_POLL_CONTROLLER is not set
@@ -512,6 +529,7 @@ CONFIG_IBM_NEW_EMAC_EMAC4=y
512# 529#
513# CONFIG_VT is not set 530# CONFIG_VT is not set
514# CONFIG_SERIAL_NONSTANDARD is not set 531# CONFIG_SERIAL_NONSTANDARD is not set
532# CONFIG_NOZOMI is not set
515 533
516# 534#
517# Serial drivers 535# Serial drivers
@@ -557,6 +575,7 @@ CONFIG_DEVPORT=y
557# CONFIG_W1 is not set 575# CONFIG_W1 is not set
558# CONFIG_POWER_SUPPLY is not set 576# CONFIG_POWER_SUPPLY is not set
559# CONFIG_HWMON is not set 577# CONFIG_HWMON is not set
578CONFIG_THERMAL=y
560# CONFIG_WATCHDOG is not set 579# CONFIG_WATCHDOG is not set
561 580
562# 581#
@@ -598,6 +617,7 @@ CONFIG_SSB_POSSIBLE=y
598# CONFIG_SOUND is not set 617# CONFIG_SOUND is not set
599# CONFIG_USB_SUPPORT is not set 618# CONFIG_USB_SUPPORT is not set
600# CONFIG_MMC is not set 619# CONFIG_MMC is not set
620# CONFIG_MEMSTICK is not set
601# CONFIG_NEW_LEDS is not set 621# CONFIG_NEW_LEDS is not set
602# CONFIG_INFINIBAND is not set 622# CONFIG_INFINIBAND is not set
603# CONFIG_EDAC is not set 623# CONFIG_EDAC is not set
@@ -622,12 +642,10 @@ CONFIG_EXT2_FS=y
622# CONFIG_XFS_FS is not set 642# CONFIG_XFS_FS is not set
623# CONFIG_GFS2_FS is not set 643# CONFIG_GFS2_FS is not set
624# CONFIG_OCFS2_FS is not set 644# CONFIG_OCFS2_FS is not set
625# CONFIG_MINIX_FS is not set 645CONFIG_DNOTIFY=y
626# CONFIG_ROMFS_FS is not set
627CONFIG_INOTIFY=y 646CONFIG_INOTIFY=y
628CONFIG_INOTIFY_USER=y 647CONFIG_INOTIFY_USER=y
629# CONFIG_QUOTA is not set 648# CONFIG_QUOTA is not set
630CONFIG_DNOTIFY=y
631# CONFIG_AUTOFS_FS is not set 649# CONFIG_AUTOFS_FS is not set
632# CONFIG_AUTOFS4_FS is not set 650# CONFIG_AUTOFS4_FS is not set
633# CONFIG_FUSE_FS is not set 651# CONFIG_FUSE_FS is not set
@@ -670,8 +688,10 @@ CONFIG_TMPFS=y
670# CONFIG_JFFS2_FS is not set 688# CONFIG_JFFS2_FS is not set
671CONFIG_CRAMFS=y 689CONFIG_CRAMFS=y
672# CONFIG_VXFS_FS is not set 690# CONFIG_VXFS_FS is not set
691# CONFIG_MINIX_FS is not set
673# CONFIG_HPFS_FS is not set 692# CONFIG_HPFS_FS is not set
674# CONFIG_QNX4FS_FS is not set 693# CONFIG_QNX4FS_FS is not set
694# CONFIG_ROMFS_FS is not set
675# CONFIG_SYSV_FS is not set 695# CONFIG_SYSV_FS is not set
676# CONFIG_UFS_FS is not set 696# CONFIG_UFS_FS is not set
677CONFIG_NETWORK_FILESYSTEMS=y 697CONFIG_NETWORK_FILESYSTEMS=y
@@ -702,7 +722,6 @@ CONFIG_SUNRPC=y
702CONFIG_MSDOS_PARTITION=y 722CONFIG_MSDOS_PARTITION=y
703# CONFIG_NLS is not set 723# CONFIG_NLS is not set
704# CONFIG_DLM is not set 724# CONFIG_DLM is not set
705# CONFIG_UCC_SLOW is not set
706 725
707# 726#
708# Library routines 727# Library routines
@@ -719,7 +738,6 @@ CONFIG_PLIST=y
719CONFIG_HAS_IOMEM=y 738CONFIG_HAS_IOMEM=y
720CONFIG_HAS_IOPORT=y 739CONFIG_HAS_IOPORT=y
721CONFIG_HAS_DMA=y 740CONFIG_HAS_DMA=y
722# CONFIG_INSTRUMENTATION is not set
723 741
724# 742#
725# Kernel hacking 743# Kernel hacking
@@ -729,7 +747,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
729CONFIG_ENABLE_MUST_CHECK=y 747CONFIG_ENABLE_MUST_CHECK=y
730CONFIG_MAGIC_SYSRQ=y 748CONFIG_MAGIC_SYSRQ=y
731# CONFIG_UNUSED_SYMBOLS is not set 749# CONFIG_UNUSED_SYMBOLS is not set
732# CONFIG_DEBUG_FS is not set 750CONFIG_DEBUG_FS=y
733# CONFIG_HEADERS_CHECK is not set 751# CONFIG_HEADERS_CHECK is not set
734CONFIG_DEBUG_KERNEL=y 752CONFIG_DEBUG_KERNEL=y
735# CONFIG_DEBUG_SHIRQ is not set 753# CONFIG_DEBUG_SHIRQ is not set
@@ -738,6 +756,7 @@ CONFIG_SCHED_DEBUG=y
738# CONFIG_SCHEDSTATS is not set 756# CONFIG_SCHEDSTATS is not set
739# CONFIG_TIMER_STATS is not set 757# CONFIG_TIMER_STATS is not set
740# CONFIG_SLUB_DEBUG_ON is not set 758# CONFIG_SLUB_DEBUG_ON is not set
759# CONFIG_SLUB_STATS is not set
741# CONFIG_DEBUG_RT_MUTEXES is not set 760# CONFIG_DEBUG_RT_MUTEXES is not set
742# CONFIG_RT_MUTEX_TESTER is not set 761# CONFIG_RT_MUTEX_TESTER is not set
743# CONFIG_DEBUG_SPINLOCK is not set 762# CONFIG_DEBUG_SPINLOCK is not set
@@ -750,15 +769,16 @@ CONFIG_DEBUG_BUGVERBOSE=y
750# CONFIG_DEBUG_VM is not set 769# CONFIG_DEBUG_VM is not set
751# CONFIG_DEBUG_LIST is not set 770# CONFIG_DEBUG_LIST is not set
752# CONFIG_DEBUG_SG is not set 771# CONFIG_DEBUG_SG is not set
753CONFIG_FORCED_INLINING=y
754# CONFIG_BOOT_PRINTK_DELAY is not set 772# CONFIG_BOOT_PRINTK_DELAY is not set
755# CONFIG_RCU_TORTURE_TEST is not set 773# CONFIG_RCU_TORTURE_TEST is not set
774# CONFIG_BACKTRACE_SELF_TEST is not set
756# CONFIG_FAULT_INJECTION is not set 775# CONFIG_FAULT_INJECTION is not set
757# CONFIG_SAMPLES is not set 776# CONFIG_SAMPLES is not set
758# CONFIG_DEBUG_STACKOVERFLOW is not set 777# CONFIG_DEBUG_STACKOVERFLOW is not set
759# CONFIG_DEBUG_STACK_USAGE is not set 778# CONFIG_DEBUG_STACK_USAGE is not set
760# CONFIG_DEBUG_PAGEALLOC is not set 779# CONFIG_DEBUG_PAGEALLOC is not set
761# CONFIG_DEBUGGER is not set 780# CONFIG_DEBUGGER is not set
781# CONFIG_VIRQ_DEBUG is not set
762# CONFIG_BDI_SWITCH is not set 782# CONFIG_BDI_SWITCH is not set
763# CONFIG_PPC_EARLY_DEBUG is not set 783# CONFIG_PPC_EARLY_DEBUG is not set
764 784
@@ -771,6 +791,7 @@ CONFIG_FORCED_INLINING=y
771CONFIG_CRYPTO=y 791CONFIG_CRYPTO=y
772CONFIG_CRYPTO_ALGAPI=y 792CONFIG_CRYPTO_ALGAPI=y
773CONFIG_CRYPTO_BLKCIPHER=y 793CONFIG_CRYPTO_BLKCIPHER=y
794# CONFIG_CRYPTO_SEQIV is not set
774CONFIG_CRYPTO_MANAGER=y 795CONFIG_CRYPTO_MANAGER=y
775# CONFIG_CRYPTO_HMAC is not set 796# CONFIG_CRYPTO_HMAC is not set
776# CONFIG_CRYPTO_XCBC is not set 797# CONFIG_CRYPTO_XCBC is not set
@@ -788,6 +809,9 @@ CONFIG_CRYPTO_CBC=y
788CONFIG_CRYPTO_PCBC=y 809CONFIG_CRYPTO_PCBC=y
789# CONFIG_CRYPTO_LRW is not set 810# CONFIG_CRYPTO_LRW is not set
790# CONFIG_CRYPTO_XTS is not set 811# CONFIG_CRYPTO_XTS is not set
812# CONFIG_CRYPTO_CTR is not set
813# CONFIG_CRYPTO_GCM is not set
814# CONFIG_CRYPTO_CCM is not set
791# CONFIG_CRYPTO_CRYPTD is not set 815# CONFIG_CRYPTO_CRYPTD is not set
792CONFIG_CRYPTO_DES=y 816CONFIG_CRYPTO_DES=y
793# CONFIG_CRYPTO_FCRYPT is not set 817# CONFIG_CRYPTO_FCRYPT is not set
@@ -802,11 +826,14 @@ CONFIG_CRYPTO_DES=y
802# CONFIG_CRYPTO_KHAZAD is not set 826# CONFIG_CRYPTO_KHAZAD is not set
803# CONFIG_CRYPTO_ANUBIS is not set 827# CONFIG_CRYPTO_ANUBIS is not set
804# CONFIG_CRYPTO_SEED is not set 828# CONFIG_CRYPTO_SEED is not set
829# CONFIG_CRYPTO_SALSA20 is not set
805# CONFIG_CRYPTO_DEFLATE is not set 830# CONFIG_CRYPTO_DEFLATE is not set
806# CONFIG_CRYPTO_MICHAEL_MIC is not set 831# CONFIG_CRYPTO_MICHAEL_MIC is not set
807# CONFIG_CRYPTO_CRC32C is not set 832# CONFIG_CRYPTO_CRC32C is not set
808# CONFIG_CRYPTO_CAMELLIA is not set 833# CONFIG_CRYPTO_CAMELLIA is not set
809# CONFIG_CRYPTO_TEST is not set 834# CONFIG_CRYPTO_TEST is not set
810# CONFIG_CRYPTO_AUTHENC is not set 835# CONFIG_CRYPTO_AUTHENC is not set
836# CONFIG_CRYPTO_LZO is not set
811CONFIG_CRYPTO_HW=y 837CONFIG_CRYPTO_HW=y
838# CONFIG_CRYPTO_DEV_HIFN_795X is not set
812# CONFIG_PPC_CLOCK is not set 839# CONFIG_PPC_CLOCK is not set
diff --git a/arch/powerpc/configs/ppc44x_defconfig b/arch/powerpc/configs/ppc44x_defconfig
new file mode 100644
index 000000000000..57bd775ef777
--- /dev/null
+++ b/arch/powerpc/configs/ppc44x_defconfig
@@ -0,0 +1,904 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.25-rc2
4# Fri Feb 15 21:57:35 2008
5#
6# CONFIG_PPC64 is not set
7
8#
9# Processor support
10#
11# CONFIG_6xx is not set
12# CONFIG_PPC_85xx is not set
13# CONFIG_PPC_8xx is not set
14# CONFIG_40x is not set
15CONFIG_44x=y
16# CONFIG_E200 is not set
17CONFIG_PPC_FPU=y
18CONFIG_4xx=y
19CONFIG_BOOKE=y
20CONFIG_PTE_64BIT=y
21CONFIG_PHYS_64BIT=y
22# CONFIG_PPC_MM_SLICES is not set
23CONFIG_NOT_COHERENT_CACHE=y
24CONFIG_PPC32=y
25CONFIG_WORD_SIZE=32
26CONFIG_PPC_MERGE=y
27CONFIG_MMU=y
28CONFIG_GENERIC_CMOS_UPDATE=y
29CONFIG_GENERIC_TIME=y
30CONFIG_GENERIC_TIME_VSYSCALL=y
31CONFIG_GENERIC_CLOCKEVENTS=y
32CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y
35CONFIG_RWSEM_XCHGADD_ALGORITHM=y
36CONFIG_ARCH_HAS_ILOG2_U32=y
37CONFIG_GENERIC_HWEIGHT=y
38CONFIG_GENERIC_CALIBRATE_DELAY=y
39CONFIG_GENERIC_FIND_NEXT_BIT=y
40# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
41CONFIG_PPC=y
42CONFIG_EARLY_PRINTK=y
43CONFIG_GENERIC_NVRAM=y
44CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
45CONFIG_ARCH_MAY_HAVE_PC_FDC=y
46CONFIG_PPC_OF=y
47CONFIG_OF=y
48CONFIG_PPC_UDBG_16550=y
49# CONFIG_GENERIC_TBSYNC is not set
50CONFIG_AUDIT_ARCH=y
51CONFIG_GENERIC_BUG=y
52# CONFIG_DEFAULT_UIMAGE is not set
53CONFIG_PPC_DCR_NATIVE=y
54# CONFIG_PPC_DCR_MMIO is not set
55CONFIG_PPC_DCR=y
56CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
57
58#
59# General setup
60#
61CONFIG_EXPERIMENTAL=y
62CONFIG_BROKEN_ON_SMP=y
63CONFIG_INIT_ENV_ARG_LIMIT=32
64CONFIG_LOCALVERSION=""
65CONFIG_LOCALVERSION_AUTO=y
66CONFIG_SWAP=y
67CONFIG_SYSVIPC=y
68CONFIG_SYSVIPC_SYSCTL=y
69CONFIG_POSIX_MQUEUE=y
70# CONFIG_BSD_PROCESS_ACCT is not set
71# CONFIG_TASKSTATS is not set
72# CONFIG_AUDIT is not set
73# CONFIG_IKCONFIG is not set
74CONFIG_LOG_BUF_SHIFT=14
75# CONFIG_CGROUPS is not set
76CONFIG_GROUP_SCHED=y
77CONFIG_FAIR_GROUP_SCHED=y
78# CONFIG_RT_GROUP_SCHED is not set
79CONFIG_USER_SCHED=y
80# CONFIG_CGROUP_SCHED is not set
81CONFIG_SYSFS_DEPRECATED=y
82# CONFIG_RELAY is not set
83# CONFIG_NAMESPACES is not set
84CONFIG_BLK_DEV_INITRD=y
85CONFIG_INITRAMFS_SOURCE=""
86# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
87CONFIG_SYSCTL=y
88CONFIG_EMBEDDED=y
89CONFIG_SYSCTL_SYSCALL=y
90CONFIG_KALLSYMS=y
91CONFIG_KALLSYMS_ALL=y
92CONFIG_KALLSYMS_EXTRA_PASS=y
93CONFIG_HOTPLUG=y
94CONFIG_PRINTK=y
95CONFIG_BUG=y
96CONFIG_ELF_CORE=y
97CONFIG_COMPAT_BRK=y
98CONFIG_BASE_FULL=y
99CONFIG_FUTEX=y
100CONFIG_ANON_INODES=y
101CONFIG_EPOLL=y
102CONFIG_SIGNALFD=y
103CONFIG_TIMERFD=y
104CONFIG_EVENTFD=y
105CONFIG_SHMEM=y
106CONFIG_VM_EVENT_COUNTERS=y
107CONFIG_SLUB_DEBUG=y
108# CONFIG_SLAB is not set
109CONFIG_SLUB=y
110# CONFIG_SLOB is not set
111# CONFIG_PROFILING is not set
112# CONFIG_MARKERS is not set
113CONFIG_HAVE_OPROFILE=y
114# CONFIG_KPROBES is not set
115CONFIG_HAVE_KPROBES=y
116CONFIG_PROC_PAGE_MONITOR=y
117CONFIG_SLABINFO=y
118CONFIG_RT_MUTEXES=y
119# CONFIG_TINY_SHMEM is not set
120CONFIG_BASE_SMALL=0
121CONFIG_MODULES=y
122CONFIG_MODULE_UNLOAD=y
123# CONFIG_MODULE_FORCE_UNLOAD is not set
124# CONFIG_MODVERSIONS is not set
125# CONFIG_MODULE_SRCVERSION_ALL is not set
126CONFIG_KMOD=y
127CONFIG_BLOCK=y
128CONFIG_LBD=y
129# CONFIG_BLK_DEV_IO_TRACE is not set
130# CONFIG_LSF is not set
131# CONFIG_BLK_DEV_BSG is not set
132
133#
134# IO Schedulers
135#
136CONFIG_IOSCHED_NOOP=y
137CONFIG_IOSCHED_AS=y
138CONFIG_IOSCHED_DEADLINE=y
139CONFIG_IOSCHED_CFQ=y
140CONFIG_DEFAULT_AS=y
141# CONFIG_DEFAULT_DEADLINE is not set
142# CONFIG_DEFAULT_CFQ is not set
143# CONFIG_DEFAULT_NOOP is not set
144CONFIG_DEFAULT_IOSCHED="anticipatory"
145CONFIG_CLASSIC_RCU=y
146# CONFIG_PREEMPT_RCU is not set
147CONFIG_PPC4xx_PCI_EXPRESS=y
148
149#
150# Platform support
151#
152# CONFIG_PPC_MPC512x is not set
153# CONFIG_PPC_MPC5121 is not set
154# CONFIG_PPC_CELL is not set
155# CONFIG_PPC_CELL_NATIVE is not set
156# CONFIG_PQ2ADS is not set
157CONFIG_BAMBOO=y
158CONFIG_EBONY=y
159CONFIG_SEQUOIA=y
160CONFIG_TAISHAN=y
161CONFIG_KATMAI=y
162CONFIG_RAINIER=y
163CONFIG_WARP=y
164CONFIG_440EP=y
165CONFIG_440EPX=y
166CONFIG_440GRX=y
167CONFIG_440GP=y
168CONFIG_440GX=y
169CONFIG_440SPe=y
170CONFIG_IBM440EP_ERR42=y
171# CONFIG_IPIC is not set
172# CONFIG_MPIC is not set
173# CONFIG_MPIC_WEIRD is not set
174# CONFIG_PPC_I8259 is not set
175# CONFIG_PPC_RTAS is not set
176# CONFIG_MMIO_NVRAM is not set
177# CONFIG_PPC_MPC106 is not set
178# CONFIG_PPC_970_NAP is not set
179# CONFIG_PPC_INDIRECT_IO is not set
180# CONFIG_GENERIC_IOMAP is not set
181# CONFIG_CPU_FREQ is not set
182# CONFIG_FSL_ULI1575 is not set
183CONFIG_OF_RTC=y
184
185#
186# Kernel options
187#
188# CONFIG_HIGHMEM is not set
189# CONFIG_TICK_ONESHOT is not set
190# CONFIG_NO_HZ is not set
191# CONFIG_HIGH_RES_TIMERS is not set
192CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
193# CONFIG_HZ_100 is not set
194CONFIG_HZ_250=y
195# CONFIG_HZ_300 is not set
196# CONFIG_HZ_1000 is not set
197CONFIG_HZ=250
198# CONFIG_SCHED_HRTICK is not set
199CONFIG_PREEMPT_NONE=y
200# CONFIG_PREEMPT_VOLUNTARY is not set
201# CONFIG_PREEMPT is not set
202# CONFIG_RCU_TRACE is not set
203CONFIG_BINFMT_ELF=y
204# CONFIG_BINFMT_MISC is not set
205CONFIG_MATH_EMULATION=y
206# CONFIG_IOMMU_HELPER is not set
207CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
208CONFIG_ARCH_HAS_WALK_MEMORY=y
209CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
210CONFIG_ARCH_FLATMEM_ENABLE=y
211CONFIG_ARCH_POPULATES_NODE_MAP=y
212CONFIG_SELECT_MEMORY_MODEL=y
213CONFIG_FLATMEM_MANUAL=y
214# CONFIG_DISCONTIGMEM_MANUAL is not set
215# CONFIG_SPARSEMEM_MANUAL is not set
216CONFIG_FLATMEM=y
217CONFIG_FLAT_NODE_MEM_MAP=y
218# CONFIG_SPARSEMEM_STATIC is not set
219# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
220CONFIG_SPLIT_PTLOCK_CPUS=4
221CONFIG_RESOURCES_64BIT=y
222CONFIG_ZONE_DMA_FLAG=1
223CONFIG_BOUNCE=y
224CONFIG_VIRT_TO_BUS=y
225CONFIG_PROC_DEVICETREE=y
226# CONFIG_CMDLINE_BOOL is not set
227CONFIG_SECCOMP=y
228CONFIG_ISA_DMA_API=y
229
230#
231# Bus options
232#
233CONFIG_ZONE_DMA=y
234CONFIG_PPC_INDIRECT_PCI=y
235CONFIG_PCI=y
236CONFIG_PCI_DOMAINS=y
237CONFIG_PCI_SYSCALL=y
238# CONFIG_PCIEPORTBUS is not set
239CONFIG_ARCH_SUPPORTS_MSI=y
240# CONFIG_PCI_MSI is not set
241CONFIG_PCI_LEGACY=y
242# CONFIG_PCI_DEBUG is not set
243# CONFIG_PCCARD is not set
244# CONFIG_HOTPLUG_PCI is not set
245
246#
247# Advanced setup
248#
249# CONFIG_ADVANCED_OPTIONS is not set
250
251#
252# Default settings for advanced configuration options are used
253#
254CONFIG_HIGHMEM_START=0xfe000000
255CONFIG_LOWMEM_SIZE=0x30000000
256CONFIG_KERNEL_START=0xc0000000
257CONFIG_TASK_SIZE=0xc0000000
258CONFIG_CONSISTENT_START=0xff100000
259CONFIG_CONSISTENT_SIZE=0x00200000
260CONFIG_BOOT_LOAD=0x01000000
261
262#
263# Networking
264#
265CONFIG_NET=y
266
267#
268# Networking options
269#
270CONFIG_PACKET=y
271# CONFIG_PACKET_MMAP is not set
272CONFIG_UNIX=y
273# CONFIG_NET_KEY is not set
274CONFIG_INET=y
275# CONFIG_IP_MULTICAST is not set
276# CONFIG_IP_ADVANCED_ROUTER is not set
277CONFIG_IP_FIB_HASH=y
278CONFIG_IP_PNP=y
279CONFIG_IP_PNP_DHCP=y
280CONFIG_IP_PNP_BOOTP=y
281# CONFIG_IP_PNP_RARP is not set
282# CONFIG_NET_IPIP is not set
283# CONFIG_NET_IPGRE is not set
284# CONFIG_ARPD is not set
285# CONFIG_SYN_COOKIES is not set
286# CONFIG_INET_AH is not set
287# CONFIG_INET_ESP is not set
288# CONFIG_INET_IPCOMP is not set
289# CONFIG_INET_XFRM_TUNNEL is not set
290# CONFIG_INET_TUNNEL is not set
291# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
292# CONFIG_INET_XFRM_MODE_TUNNEL is not set
293# CONFIG_INET_XFRM_MODE_BEET is not set
294# CONFIG_INET_LRO is not set
295CONFIG_INET_DIAG=y
296CONFIG_INET_TCP_DIAG=y
297# CONFIG_TCP_CONG_ADVANCED is not set
298CONFIG_TCP_CONG_CUBIC=y
299CONFIG_DEFAULT_TCP_CONG="cubic"
300# CONFIG_TCP_MD5SIG is not set
301# CONFIG_IPV6 is not set
302# CONFIG_INET6_XFRM_TUNNEL is not set
303# CONFIG_INET6_TUNNEL is not set
304# CONFIG_NETWORK_SECMARK is not set
305# CONFIG_NETFILTER is not set
306# CONFIG_IP_DCCP is not set
307# CONFIG_IP_SCTP is not set
308# CONFIG_TIPC is not set
309# CONFIG_ATM is not set
310# CONFIG_BRIDGE is not set
311# CONFIG_VLAN_8021Q is not set
312# CONFIG_DECNET is not set
313# CONFIG_LLC2 is not set
314# CONFIG_IPX is not set
315# CONFIG_ATALK is not set
316# CONFIG_X25 is not set
317# CONFIG_LAPB is not set
318# CONFIG_ECONET is not set
319# CONFIG_WAN_ROUTER is not set
320# CONFIG_NET_SCHED is not set
321
322#
323# Network testing
324#
325# CONFIG_NET_PKTGEN is not set
326# CONFIG_HAMRADIO is not set
327# CONFIG_CAN is not set
328# CONFIG_IRDA is not set
329# CONFIG_BT is not set
330# CONFIG_AF_RXRPC is not set
331
332#
333# Wireless
334#
335# CONFIG_CFG80211 is not set
336# CONFIG_WIRELESS_EXT is not set
337# CONFIG_MAC80211 is not set
338# CONFIG_IEEE80211 is not set
339# CONFIG_RFKILL is not set
340# CONFIG_NET_9P is not set
341
342#
343# Device Drivers
344#
345
346#
347# Generic Driver Options
348#
349CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
350CONFIG_STANDALONE=y
351CONFIG_PREVENT_FIRMWARE_BUILD=y
352CONFIG_FW_LOADER=y
353# CONFIG_DEBUG_DRIVER is not set
354# CONFIG_DEBUG_DEVRES is not set
355# CONFIG_SYS_HYPERVISOR is not set
356CONFIG_CONNECTOR=y
357CONFIG_PROC_EVENTS=y
358CONFIG_MTD=y
359# CONFIG_MTD_DEBUG is not set
360# CONFIG_MTD_CONCAT is not set
361CONFIG_MTD_PARTITIONS=y
362# CONFIG_MTD_REDBOOT_PARTS is not set
363# CONFIG_MTD_CMDLINE_PARTS is not set
364CONFIG_MTD_OF_PARTS=y
365
366#
367# User Modules And Translation Layers
368#
369CONFIG_MTD_CHAR=y
370CONFIG_MTD_BLKDEVS=y
371CONFIG_MTD_BLOCK=y
372# CONFIG_FTL is not set
373# CONFIG_NFTL is not set
374# CONFIG_INFTL is not set
375# CONFIG_RFD_FTL is not set
376# CONFIG_SSFDC is not set
377# CONFIG_MTD_OOPS is not set
378
379#
380# RAM/ROM/Flash chip drivers
381#
382CONFIG_MTD_CFI=y
383CONFIG_MTD_JEDECPROBE=y
384CONFIG_MTD_GEN_PROBE=y
385# CONFIG_MTD_CFI_ADV_OPTIONS is not set
386CONFIG_MTD_MAP_BANK_WIDTH_1=y
387CONFIG_MTD_MAP_BANK_WIDTH_2=y
388CONFIG_MTD_MAP_BANK_WIDTH_4=y
389# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
390# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
391# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
392CONFIG_MTD_CFI_I1=y
393CONFIG_MTD_CFI_I2=y
394# CONFIG_MTD_CFI_I4 is not set
395# CONFIG_MTD_CFI_I8 is not set
396# CONFIG_MTD_CFI_INTELEXT is not set
397CONFIG_MTD_CFI_AMDSTD=y
398# CONFIG_MTD_CFI_STAA is not set
399CONFIG_MTD_CFI_UTIL=y
400# CONFIG_MTD_RAM is not set
401# CONFIG_MTD_ROM is not set
402# CONFIG_MTD_ABSENT is not set
403
404#
405# Mapping drivers for chip access
406#
407# CONFIG_MTD_COMPLEX_MAPPINGS is not set
408# CONFIG_MTD_PHYSMAP is not set
409CONFIG_MTD_PHYSMAP_OF=y
410# CONFIG_MTD_INTEL_VR_NOR is not set
411# CONFIG_MTD_PLATRAM is not set
412
413#
414# Self-contained MTD device drivers
415#
416# CONFIG_MTD_PMC551 is not set
417# CONFIG_MTD_SLRAM is not set
418# CONFIG_MTD_PHRAM is not set
419# CONFIG_MTD_MTDRAM is not set
420# CONFIG_MTD_BLOCK2MTD is not set
421
422#
423# Disk-On-Chip Device Drivers
424#
425# CONFIG_MTD_DOC2000 is not set
426# CONFIG_MTD_DOC2001 is not set
427# CONFIG_MTD_DOC2001PLUS is not set
428# CONFIG_MTD_NAND is not set
429# CONFIG_MTD_ONENAND is not set
430
431#
432# UBI - Unsorted block images
433#
434# CONFIG_MTD_UBI is not set
435CONFIG_OF_DEVICE=y
436# CONFIG_PARPORT is not set
437CONFIG_BLK_DEV=y
438# CONFIG_BLK_DEV_FD is not set
439# CONFIG_BLK_CPQ_DA is not set
440# CONFIG_BLK_CPQ_CISS_DA is not set
441# CONFIG_BLK_DEV_DAC960 is not set
442# CONFIG_BLK_DEV_UMEM is not set
443# CONFIG_BLK_DEV_COW_COMMON is not set
444# CONFIG_BLK_DEV_LOOP is not set
445# CONFIG_BLK_DEV_NBD is not set
446# CONFIG_BLK_DEV_SX8 is not set
447CONFIG_BLK_DEV_RAM=y
448CONFIG_BLK_DEV_RAM_COUNT=16
449CONFIG_BLK_DEV_RAM_SIZE=35000
450# CONFIG_BLK_DEV_XIP is not set
451# CONFIG_CDROM_PKTCDVD is not set
452# CONFIG_ATA_OVER_ETH is not set
453# CONFIG_XILINX_SYSACE is not set
454CONFIG_MISC_DEVICES=y
455# CONFIG_PHANTOM is not set
456# CONFIG_EEPROM_93CX6 is not set
457# CONFIG_SGI_IOC4 is not set
458# CONFIG_TIFM_CORE is not set
459# CONFIG_ENCLOSURE_SERVICES is not set
460CONFIG_HAVE_IDE=y
461# CONFIG_IDE is not set
462
463#
464# SCSI device support
465#
466# CONFIG_RAID_ATTRS is not set
467# CONFIG_SCSI is not set
468# CONFIG_SCSI_DMA is not set
469# CONFIG_SCSI_NETLINK is not set
470# CONFIG_ATA is not set
471# CONFIG_MD is not set
472# CONFIG_FUSION is not set
473
474#
475# IEEE 1394 (FireWire) support
476#
477# CONFIG_FIREWIRE is not set
478# CONFIG_IEEE1394 is not set
479# CONFIG_I2O is not set
480# CONFIG_MACINTOSH_DRIVERS is not set
481CONFIG_NETDEVICES=y
482# CONFIG_NETDEVICES_MULTIQUEUE is not set
483# CONFIG_DUMMY is not set
484# CONFIG_BONDING is not set
485# CONFIG_MACVLAN is not set
486# CONFIG_EQUALIZER is not set
487# CONFIG_TUN is not set
488# CONFIG_VETH is not set
489# CONFIG_ARCNET is not set
490# CONFIG_PHYLIB is not set
491CONFIG_NET_ETHERNET=y
492# CONFIG_MII is not set
493# CONFIG_HAPPYMEAL is not set
494# CONFIG_SUNGEM is not set
495# CONFIG_CASSINI is not set
496# CONFIG_NET_VENDOR_3COM is not set
497# CONFIG_NET_TULIP is not set
498# CONFIG_HP100 is not set
499CONFIG_IBM_NEW_EMAC=y
500CONFIG_IBM_NEW_EMAC_RXB=128
501CONFIG_IBM_NEW_EMAC_TXB=64
502CONFIG_IBM_NEW_EMAC_POLL_WEIGHT=32
503CONFIG_IBM_NEW_EMAC_RX_COPY_THRESHOLD=256
504CONFIG_IBM_NEW_EMAC_RX_SKB_HEADROOM=0
505# CONFIG_IBM_NEW_EMAC_DEBUG is not set
506CONFIG_IBM_NEW_EMAC_ZMII=y
507CONFIG_IBM_NEW_EMAC_RGMII=y
508CONFIG_IBM_NEW_EMAC_TAH=y
509CONFIG_IBM_NEW_EMAC_EMAC4=y
510# CONFIG_NET_PCI is not set
511# CONFIG_B44 is not set
512CONFIG_NETDEV_1000=y
513# CONFIG_ACENIC is not set
514# CONFIG_DL2K is not set
515# CONFIG_E1000 is not set
516# CONFIG_E1000E is not set
517# CONFIG_E1000E_ENABLED is not set
518# CONFIG_IP1000 is not set
519# CONFIG_IGB is not set
520# CONFIG_NS83820 is not set
521# CONFIG_HAMACHI is not set
522# CONFIG_YELLOWFIN is not set
523# CONFIG_R8169 is not set
524# CONFIG_SIS190 is not set
525# CONFIG_SKGE is not set
526# CONFIG_SKY2 is not set
527# CONFIG_SK98LIN is not set
528# CONFIG_VIA_VELOCITY is not set
529# CONFIG_TIGON3 is not set
530# CONFIG_BNX2 is not set
531# CONFIG_QLA3XXX is not set
532# CONFIG_ATL1 is not set
533CONFIG_NETDEV_10000=y
534# CONFIG_CHELSIO_T1 is not set
535# CONFIG_CHELSIO_T3 is not set
536# CONFIG_IXGBE is not set
537# CONFIG_IXGB is not set
538# CONFIG_S2IO is not set
539# CONFIG_MYRI10GE is not set
540# CONFIG_NETXEN_NIC is not set
541# CONFIG_NIU is not set
542# CONFIG_MLX4_CORE is not set
543# CONFIG_TEHUTI is not set
544# CONFIG_BNX2X is not set
545# CONFIG_TR is not set
546
547#
548# Wireless LAN
549#
550# CONFIG_WLAN_PRE80211 is not set
551# CONFIG_WLAN_80211 is not set
552# CONFIG_WAN is not set
553# CONFIG_FDDI is not set
554# CONFIG_HIPPI is not set
555# CONFIG_PPP is not set
556# CONFIG_SLIP is not set
557# CONFIG_NETCONSOLE is not set
558# CONFIG_NETPOLL is not set
559# CONFIG_NET_POLL_CONTROLLER is not set
560# CONFIG_ISDN is not set
561# CONFIG_PHONE is not set
562
563#
564# Input device support
565#
566# CONFIG_INPUT is not set
567
568#
569# Hardware I/O ports
570#
571# CONFIG_SERIO is not set
572# CONFIG_GAMEPORT is not set
573
574#
575# Character devices
576#
577# CONFIG_VT is not set
578# CONFIG_SERIAL_NONSTANDARD is not set
579# CONFIG_NOZOMI is not set
580
581#
582# Serial drivers
583#
584CONFIG_SERIAL_8250=y
585CONFIG_SERIAL_8250_CONSOLE=y
586# CONFIG_SERIAL_8250_PCI is not set
587CONFIG_SERIAL_8250_NR_UARTS=4
588CONFIG_SERIAL_8250_RUNTIME_UARTS=4
589CONFIG_SERIAL_8250_EXTENDED=y
590# CONFIG_SERIAL_8250_MANY_PORTS is not set
591CONFIG_SERIAL_8250_SHARE_IRQ=y
592# CONFIG_SERIAL_8250_DETECT_IRQ is not set
593# CONFIG_SERIAL_8250_RSA is not set
594
595#
596# Non-8250 serial port support
597#
598# CONFIG_SERIAL_UARTLITE is not set
599CONFIG_SERIAL_CORE=y
600CONFIG_SERIAL_CORE_CONSOLE=y
601# CONFIG_SERIAL_JSM is not set
602CONFIG_SERIAL_OF_PLATFORM=y
603CONFIG_UNIX98_PTYS=y
604CONFIG_LEGACY_PTYS=y
605CONFIG_LEGACY_PTY_COUNT=256
606# CONFIG_IPMI_HANDLER is not set
607# CONFIG_HW_RANDOM is not set
608# CONFIG_NVRAM is not set
609# CONFIG_GEN_RTC is not set
610# CONFIG_R3964 is not set
611# CONFIG_APPLICOM is not set
612# CONFIG_RAW_DRIVER is not set
613# CONFIG_TCG_TPM is not set
614CONFIG_DEVPORT=y
615# CONFIG_I2C is not set
616
617#
618# SPI support
619#
620# CONFIG_SPI is not set
621# CONFIG_SPI_MASTER is not set
622# CONFIG_W1 is not set
623# CONFIG_POWER_SUPPLY is not set
624# CONFIG_HWMON is not set
625# CONFIG_THERMAL is not set
626# CONFIG_WATCHDOG is not set
627
628#
629# Sonics Silicon Backplane
630#
631CONFIG_SSB_POSSIBLE=y
632# CONFIG_SSB is not set
633
634#
635# Multifunction device drivers
636#
637# CONFIG_MFD_SM501 is not set
638
639#
640# Multimedia devices
641#
642# CONFIG_VIDEO_DEV is not set
643# CONFIG_DVB_CORE is not set
644# CONFIG_DAB is not set
645
646#
647# Graphics support
648#
649# CONFIG_AGP is not set
650# CONFIG_DRM is not set
651# CONFIG_VGASTATE is not set
652# CONFIG_VIDEO_OUTPUT_CONTROL is not set
653# CONFIG_FB is not set
654# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
655
656#
657# Display device support
658#
659# CONFIG_DISPLAY_SUPPORT is not set
660
661#
662# Sound
663#
664# CONFIG_SOUND is not set
665CONFIG_USB_SUPPORT=y
666CONFIG_USB_ARCH_HAS_HCD=y
667CONFIG_USB_ARCH_HAS_OHCI=y
668CONFIG_USB_ARCH_HAS_EHCI=y
669# CONFIG_USB is not set
670
671#
672# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
673#
674# CONFIG_USB_GADGET is not set
675# CONFIG_MMC is not set
676# CONFIG_MEMSTICK is not set
677# CONFIG_NEW_LEDS is not set
678# CONFIG_INFINIBAND is not set
679# CONFIG_EDAC is not set
680# CONFIG_RTC_CLASS is not set
681
682#
683# Userspace I/O
684#
685# CONFIG_UIO is not set
686
687#
688# File systems
689#
690CONFIG_EXT2_FS=y
691# CONFIG_EXT2_FS_XATTR is not set
692# CONFIG_EXT2_FS_XIP is not set
693# CONFIG_EXT3_FS is not set
694# CONFIG_EXT4DEV_FS is not set
695# CONFIG_REISERFS_FS is not set
696# CONFIG_JFS_FS is not set
697# CONFIG_FS_POSIX_ACL is not set
698# CONFIG_XFS_FS is not set
699# CONFIG_GFS2_FS is not set
700# CONFIG_OCFS2_FS is not set
701CONFIG_DNOTIFY=y
702CONFIG_INOTIFY=y
703CONFIG_INOTIFY_USER=y
704# CONFIG_QUOTA is not set
705# CONFIG_AUTOFS_FS is not set
706# CONFIG_AUTOFS4_FS is not set
707# CONFIG_FUSE_FS is not set
708
709#
710# CD-ROM/DVD Filesystems
711#
712# CONFIG_ISO9660_FS is not set
713# CONFIG_UDF_FS is not set
714
715#
716# DOS/FAT/NT Filesystems
717#
718# CONFIG_MSDOS_FS is not set
719# CONFIG_VFAT_FS is not set
720# CONFIG_NTFS_FS is not set
721
722#
723# Pseudo filesystems
724#
725CONFIG_PROC_FS=y
726CONFIG_PROC_KCORE=y
727CONFIG_PROC_SYSCTL=y
728CONFIG_SYSFS=y
729CONFIG_TMPFS=y
730# CONFIG_TMPFS_POSIX_ACL is not set
731# CONFIG_HUGETLB_PAGE is not set
732# CONFIG_CONFIGFS_FS is not set
733
734#
735# Miscellaneous filesystems
736#
737# CONFIG_ADFS_FS is not set
738# CONFIG_AFFS_FS is not set
739# CONFIG_HFS_FS is not set
740# CONFIG_HFSPLUS_FS is not set
741# CONFIG_BEFS_FS is not set
742# CONFIG_BFS_FS is not set
743# CONFIG_EFS_FS is not set
744CONFIG_JFFS2_FS=y
745CONFIG_JFFS2_FS_DEBUG=0
746CONFIG_JFFS2_FS_WRITEBUFFER=y
747# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
748# CONFIG_JFFS2_SUMMARY is not set
749# CONFIG_JFFS2_FS_XATTR is not set
750# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
751CONFIG_JFFS2_ZLIB=y
752# CONFIG_JFFS2_LZO is not set
753CONFIG_JFFS2_RTIME=y
754# CONFIG_JFFS2_RUBIN is not set
755CONFIG_CRAMFS=y
756# CONFIG_VXFS_FS is not set
757# CONFIG_MINIX_FS is not set
758# CONFIG_HPFS_FS is not set
759# CONFIG_QNX4FS_FS is not set
760# CONFIG_ROMFS_FS is not set
761# CONFIG_SYSV_FS is not set
762# CONFIG_UFS_FS is not set
763CONFIG_NETWORK_FILESYSTEMS=y
764CONFIG_NFS_FS=y
765CONFIG_NFS_V3=y
766# CONFIG_NFS_V3_ACL is not set
767# CONFIG_NFS_V4 is not set
768# CONFIG_NFS_DIRECTIO is not set
769# CONFIG_NFSD is not set
770CONFIG_ROOT_NFS=y
771CONFIG_LOCKD=y
772CONFIG_LOCKD_V4=y
773CONFIG_NFS_COMMON=y
774CONFIG_SUNRPC=y
775# CONFIG_SUNRPC_BIND34 is not set
776# CONFIG_RPCSEC_GSS_KRB5 is not set
777# CONFIG_RPCSEC_GSS_SPKM3 is not set
778# CONFIG_SMB_FS is not set
779# CONFIG_CIFS is not set
780# CONFIG_NCP_FS is not set
781# CONFIG_CODA_FS is not set
782# CONFIG_AFS_FS is not set
783
784#
785# Partition Types
786#
787# CONFIG_PARTITION_ADVANCED is not set
788CONFIG_MSDOS_PARTITION=y
789# CONFIG_NLS is not set
790# CONFIG_DLM is not set
791
792#
793# Library routines
794#
795CONFIG_BITREVERSE=y
796# CONFIG_CRC_CCITT is not set
797# CONFIG_CRC16 is not set
798# CONFIG_CRC_ITU_T is not set
799CONFIG_CRC32=y
800# CONFIG_CRC7 is not set
801# CONFIG_LIBCRC32C is not set
802CONFIG_ZLIB_INFLATE=y
803CONFIG_ZLIB_DEFLATE=y
804CONFIG_PLIST=y
805CONFIG_HAS_IOMEM=y
806CONFIG_HAS_IOPORT=y
807CONFIG_HAS_DMA=y
808
809#
810# Kernel hacking
811#
812# CONFIG_PRINTK_TIME is not set
813CONFIG_ENABLE_WARN_DEPRECATED=y
814CONFIG_ENABLE_MUST_CHECK=y
815CONFIG_MAGIC_SYSRQ=y
816# CONFIG_UNUSED_SYMBOLS is not set
817# CONFIG_DEBUG_FS is not set
818# CONFIG_HEADERS_CHECK is not set
819CONFIG_DEBUG_KERNEL=y
820# CONFIG_DEBUG_SHIRQ is not set
821CONFIG_DETECT_SOFTLOCKUP=y
822CONFIG_SCHED_DEBUG=y
823# CONFIG_SCHEDSTATS is not set
824# CONFIG_TIMER_STATS is not set
825# CONFIG_SLUB_DEBUG_ON is not set
826# CONFIG_SLUB_STATS is not set
827# CONFIG_DEBUG_RT_MUTEXES is not set
828# CONFIG_RT_MUTEX_TESTER is not set
829# CONFIG_DEBUG_SPINLOCK is not set
830# CONFIG_DEBUG_MUTEXES is not set
831# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
832# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
833# CONFIG_DEBUG_KOBJECT is not set
834CONFIG_DEBUG_BUGVERBOSE=y
835# CONFIG_DEBUG_INFO is not set
836# CONFIG_DEBUG_VM is not set
837# CONFIG_DEBUG_LIST is not set
838# CONFIG_DEBUG_SG is not set
839# CONFIG_BOOT_PRINTK_DELAY is not set
840# CONFIG_RCU_TORTURE_TEST is not set
841# CONFIG_BACKTRACE_SELF_TEST is not set
842# CONFIG_FAULT_INJECTION is not set
843# CONFIG_SAMPLES is not set
844# CONFIG_DEBUG_STACKOVERFLOW is not set
845# CONFIG_DEBUG_STACK_USAGE is not set
846# CONFIG_DEBUG_PAGEALLOC is not set
847# CONFIG_DEBUGGER is not set
848# CONFIG_BDI_SWITCH is not set
849# CONFIG_PPC_EARLY_DEBUG is not set
850
851#
852# Security options
853#
854# CONFIG_KEYS is not set
855# CONFIG_SECURITY is not set
856# CONFIG_SECURITY_FILE_CAPABILITIES is not set
857CONFIG_CRYPTO=y
858CONFIG_CRYPTO_ALGAPI=y
859CONFIG_CRYPTO_BLKCIPHER=y
860# CONFIG_CRYPTO_SEQIV is not set
861CONFIG_CRYPTO_MANAGER=y
862# CONFIG_CRYPTO_HMAC is not set
863# CONFIG_CRYPTO_XCBC is not set
864# CONFIG_CRYPTO_NULL is not set
865# CONFIG_CRYPTO_MD4 is not set
866CONFIG_CRYPTO_MD5=y
867# CONFIG_CRYPTO_SHA1 is not set
868# CONFIG_CRYPTO_SHA256 is not set
869# CONFIG_CRYPTO_SHA512 is not set
870# CONFIG_CRYPTO_WP512 is not set
871# CONFIG_CRYPTO_TGR192 is not set
872# CONFIG_CRYPTO_GF128MUL is not set
873CONFIG_CRYPTO_ECB=y
874CONFIG_CRYPTO_CBC=y
875CONFIG_CRYPTO_PCBC=y
876# CONFIG_CRYPTO_LRW is not set
877# CONFIG_CRYPTO_XTS is not set
878# CONFIG_CRYPTO_CTR is not set
879# CONFIG_CRYPTO_GCM is not set
880# CONFIG_CRYPTO_CCM is not set
881# CONFIG_CRYPTO_CRYPTD is not set
882CONFIG_CRYPTO_DES=y
883# CONFIG_CRYPTO_FCRYPT is not set
884# CONFIG_CRYPTO_BLOWFISH is not set
885# CONFIG_CRYPTO_TWOFISH is not set
886# CONFIG_CRYPTO_SERPENT is not set
887# CONFIG_CRYPTO_AES is not set
888# CONFIG_CRYPTO_CAST5 is not set
889# CONFIG_CRYPTO_CAST6 is not set
890# CONFIG_CRYPTO_TEA is not set
891# CONFIG_CRYPTO_ARC4 is not set
892# CONFIG_CRYPTO_KHAZAD is not set
893# CONFIG_CRYPTO_ANUBIS is not set
894# CONFIG_CRYPTO_SEED is not set
895# CONFIG_CRYPTO_SALSA20 is not set
896# CONFIG_CRYPTO_DEFLATE is not set
897# CONFIG_CRYPTO_MICHAEL_MIC is not set
898# CONFIG_CRYPTO_CRC32C is not set
899# CONFIG_CRYPTO_CAMELLIA is not set
900# CONFIG_CRYPTO_TEST is not set
901# CONFIG_CRYPTO_AUTHENC is not set
902# CONFIG_CRYPTO_LZO is not set
903# CONFIG_CRYPTO_HW is not set
904# CONFIG_PPC_CLOCK is not set
diff --git a/arch/powerpc/configs/rainier_defconfig b/arch/powerpc/configs/rainier_defconfig
index 7b95001a22a8..dec18ca73519 100644
--- a/arch/powerpc/configs/rainier_defconfig
+++ b/arch/powerpc/configs/rainier_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc6 3# Linux kernel version: 2.6.25-rc2
4# Mon Dec 24 11:22:40 2007 4# Fri Feb 15 21:53:10 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -29,6 +29,7 @@ CONFIG_GENERIC_TIME=y
29CONFIG_GENERIC_TIME_VSYSCALL=y 29CONFIG_GENERIC_TIME_VSYSCALL=y
30CONFIG_GENERIC_CLOCKEVENTS=y 30CONFIG_GENERIC_CLOCKEVENTS=y
31CONFIG_GENERIC_HARDIRQS=y 31CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
32CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
33CONFIG_RWSEM_XCHGADD_ALGORITHM=y 34CONFIG_RWSEM_XCHGADD_ALGORITHM=y
34CONFIG_ARCH_HAS_ILOG2_U32=y 35CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -67,17 +68,18 @@ CONFIG_SYSVIPC_SYSCTL=y
67CONFIG_POSIX_MQUEUE=y 68CONFIG_POSIX_MQUEUE=y
68# CONFIG_BSD_PROCESS_ACCT is not set 69# CONFIG_BSD_PROCESS_ACCT is not set
69# CONFIG_TASKSTATS is not set 70# CONFIG_TASKSTATS is not set
70# CONFIG_USER_NS is not set
71# CONFIG_PID_NS is not set
72# CONFIG_AUDIT is not set 71# CONFIG_AUDIT is not set
73# CONFIG_IKCONFIG is not set 72# CONFIG_IKCONFIG is not set
74CONFIG_LOG_BUF_SHIFT=14 73CONFIG_LOG_BUF_SHIFT=14
75# CONFIG_CGROUPS is not set 74# CONFIG_CGROUPS is not set
75CONFIG_GROUP_SCHED=y
76CONFIG_FAIR_GROUP_SCHED=y 76CONFIG_FAIR_GROUP_SCHED=y
77CONFIG_FAIR_USER_SCHED=y 77# CONFIG_RT_GROUP_SCHED is not set
78# CONFIG_FAIR_CGROUP_SCHED is not set 78CONFIG_USER_SCHED=y
79# CONFIG_CGROUP_SCHED is not set
79CONFIG_SYSFS_DEPRECATED=y 80CONFIG_SYSFS_DEPRECATED=y
80# CONFIG_RELAY is not set 81# CONFIG_RELAY is not set
82# CONFIG_NAMESPACES is not set
81CONFIG_BLK_DEV_INITRD=y 83CONFIG_BLK_DEV_INITRD=y
82CONFIG_INITRAMFS_SOURCE="" 84CONFIG_INITRAMFS_SOURCE=""
83# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 85# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
@@ -91,11 +93,13 @@ CONFIG_HOTPLUG=y
91CONFIG_PRINTK=y 93CONFIG_PRINTK=y
92CONFIG_BUG=y 94CONFIG_BUG=y
93CONFIG_ELF_CORE=y 95CONFIG_ELF_CORE=y
96CONFIG_COMPAT_BRK=y
94CONFIG_BASE_FULL=y 97CONFIG_BASE_FULL=y
95CONFIG_FUTEX=y 98CONFIG_FUTEX=y
96CONFIG_ANON_INODES=y 99CONFIG_ANON_INODES=y
97CONFIG_EPOLL=y 100CONFIG_EPOLL=y
98CONFIG_SIGNALFD=y 101CONFIG_SIGNALFD=y
102CONFIG_TIMERFD=y
99CONFIG_EVENTFD=y 103CONFIG_EVENTFD=y
100CONFIG_SHMEM=y 104CONFIG_SHMEM=y
101CONFIG_VM_EVENT_COUNTERS=y 105CONFIG_VM_EVENT_COUNTERS=y
@@ -103,6 +107,13 @@ CONFIG_SLUB_DEBUG=y
103# CONFIG_SLAB is not set 107# CONFIG_SLAB is not set
104CONFIG_SLUB=y 108CONFIG_SLUB=y
105# CONFIG_SLOB is not set 109# CONFIG_SLOB is not set
110# CONFIG_PROFILING is not set
111# CONFIG_MARKERS is not set
112CONFIG_HAVE_OPROFILE=y
113# CONFIG_KPROBES is not set
114CONFIG_HAVE_KPROBES=y
115CONFIG_PROC_PAGE_MONITOR=y
116CONFIG_SLABINFO=y
106CONFIG_RT_MUTEXES=y 117CONFIG_RT_MUTEXES=y
107# CONFIG_TINY_SHMEM is not set 118# CONFIG_TINY_SHMEM is not set
108CONFIG_BASE_SMALL=0 119CONFIG_BASE_SMALL=0
@@ -130,13 +141,15 @@ CONFIG_DEFAULT_AS=y
130# CONFIG_DEFAULT_CFQ is not set 141# CONFIG_DEFAULT_CFQ is not set
131# CONFIG_DEFAULT_NOOP is not set 142# CONFIG_DEFAULT_NOOP is not set
132CONFIG_DEFAULT_IOSCHED="anticipatory" 143CONFIG_DEFAULT_IOSCHED="anticipatory"
144CONFIG_CLASSIC_RCU=y
145# CONFIG_PREEMPT_RCU is not set
133# CONFIG_PPC4xx_PCI_EXPRESS is not set 146# CONFIG_PPC4xx_PCI_EXPRESS is not set
134 147
135# 148#
136# Platform support 149# Platform support
137# 150#
138# CONFIG_PPC_MPC52xx is not set 151# CONFIG_PPC_MPC512x is not set
139# CONFIG_PPC_MPC5200 is not set 152# CONFIG_PPC_MPC5121 is not set
140# CONFIG_PPC_CELL is not set 153# CONFIG_PPC_CELL is not set
141# CONFIG_PPC_CELL_NATIVE is not set 154# CONFIG_PPC_CELL_NATIVE is not set
142# CONFIG_PQ2ADS is not set 155# CONFIG_PQ2ADS is not set
@@ -146,7 +159,9 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
146# CONFIG_TAISHAN is not set 159# CONFIG_TAISHAN is not set
147# CONFIG_KATMAI is not set 160# CONFIG_KATMAI is not set
148CONFIG_RAINIER=y 161CONFIG_RAINIER=y
162# CONFIG_WARP is not set
149CONFIG_440GRX=y 163CONFIG_440GRX=y
164# CONFIG_IPIC is not set
150# CONFIG_MPIC is not set 165# CONFIG_MPIC is not set
151# CONFIG_MPIC_WEIRD is not set 166# CONFIG_MPIC_WEIRD is not set
152# CONFIG_PPC_I8259 is not set 167# CONFIG_PPC_I8259 is not set
@@ -157,7 +172,6 @@ CONFIG_440GRX=y
157# CONFIG_PPC_INDIRECT_IO is not set 172# CONFIG_PPC_INDIRECT_IO is not set
158# CONFIG_GENERIC_IOMAP is not set 173# CONFIG_GENERIC_IOMAP is not set
159# CONFIG_CPU_FREQ is not set 174# CONFIG_CPU_FREQ is not set
160# CONFIG_CPM2 is not set
161# CONFIG_FSL_ULI1575 is not set 175# CONFIG_FSL_ULI1575 is not set
162 176
163# 177#
@@ -173,13 +187,18 @@ CONFIG_HZ_250=y
173# CONFIG_HZ_300 is not set 187# CONFIG_HZ_300 is not set
174# CONFIG_HZ_1000 is not set 188# CONFIG_HZ_1000 is not set
175CONFIG_HZ=250 189CONFIG_HZ=250
190# CONFIG_SCHED_HRTICK is not set
176CONFIG_PREEMPT_NONE=y 191CONFIG_PREEMPT_NONE=y
177# CONFIG_PREEMPT_VOLUNTARY is not set 192# CONFIG_PREEMPT_VOLUNTARY is not set
178# CONFIG_PREEMPT is not set 193# CONFIG_PREEMPT is not set
194CONFIG_RCU_TRACE=y
179CONFIG_BINFMT_ELF=y 195CONFIG_BINFMT_ELF=y
180# CONFIG_BINFMT_MISC is not set 196# CONFIG_BINFMT_MISC is not set
181CONFIG_MATH_EMULATION=y 197CONFIG_MATH_EMULATION=y
198# CONFIG_IOMMU_HELPER is not set
182CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 199CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
200CONFIG_ARCH_HAS_WALK_MEMORY=y
201CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
183CONFIG_ARCH_FLATMEM_ENABLE=y 202CONFIG_ARCH_FLATMEM_ENABLE=y
184CONFIG_ARCH_POPULATES_NODE_MAP=y 203CONFIG_ARCH_POPULATES_NODE_MAP=y
185CONFIG_SELECT_MEMORY_MODEL=y 204CONFIG_SELECT_MEMORY_MODEL=y
@@ -199,8 +218,6 @@ CONFIG_PROC_DEVICETREE=y
199CONFIG_CMDLINE_BOOL=y 218CONFIG_CMDLINE_BOOL=y
200CONFIG_CMDLINE="" 219CONFIG_CMDLINE=""
201CONFIG_SECCOMP=y 220CONFIG_SECCOMP=y
202CONFIG_WANT_DEVICE_TREE=y
203CONFIG_DEVICE_TREE="rainier.dts"
204CONFIG_ISA_DMA_API=y 221CONFIG_ISA_DMA_API=y
205 222
206# 223#
@@ -300,6 +317,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
300# 317#
301# CONFIG_NET_PKTGEN is not set 318# CONFIG_NET_PKTGEN is not set
302# CONFIG_HAMRADIO is not set 319# CONFIG_HAMRADIO is not set
320# CONFIG_CAN is not set
303# CONFIG_IRDA is not set 321# CONFIG_IRDA is not set
304# CONFIG_BT is not set 322# CONFIG_BT is not set
305# CONFIG_AF_RXRPC is not set 323# CONFIG_AF_RXRPC is not set
@@ -336,6 +354,7 @@ CONFIG_MTD=y
336CONFIG_MTD_PARTITIONS=y 354CONFIG_MTD_PARTITIONS=y
337# CONFIG_MTD_REDBOOT_PARTS is not set 355# CONFIG_MTD_REDBOOT_PARTS is not set
338CONFIG_MTD_CMDLINE_PARTS=y 356CONFIG_MTD_CMDLINE_PARTS=y
357CONFIG_MTD_OF_PARTS=y
339 358
340# 359#
341# User Modules And Translation Layers 360# User Modules And Translation Layers
@@ -422,7 +441,7 @@ CONFIG_BLK_DEV=y
422CONFIG_BLK_DEV_RAM=y 441CONFIG_BLK_DEV_RAM=y
423CONFIG_BLK_DEV_RAM_COUNT=16 442CONFIG_BLK_DEV_RAM_COUNT=16
424CONFIG_BLK_DEV_RAM_SIZE=35000 443CONFIG_BLK_DEV_RAM_SIZE=35000
425CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 444# CONFIG_BLK_DEV_XIP is not set
426# CONFIG_CDROM_PKTCDVD is not set 445# CONFIG_CDROM_PKTCDVD is not set
427# CONFIG_ATA_OVER_ETH is not set 446# CONFIG_ATA_OVER_ETH is not set
428# CONFIG_XILINX_SYSACE is not set 447# CONFIG_XILINX_SYSACE is not set
@@ -431,6 +450,8 @@ CONFIG_MISC_DEVICES=y
431# CONFIG_EEPROM_93CX6 is not set 450# CONFIG_EEPROM_93CX6 is not set
432# CONFIG_SGI_IOC4 is not set 451# CONFIG_SGI_IOC4 is not set
433# CONFIG_TIFM_CORE is not set 452# CONFIG_TIFM_CORE is not set
453# CONFIG_ENCLOSURE_SERVICES is not set
454CONFIG_HAVE_IDE=y
434# CONFIG_IDE is not set 455# CONFIG_IDE is not set
435 456
436# 457#
@@ -461,7 +482,6 @@ CONFIG_NETDEVICES=y
461# CONFIG_EQUALIZER is not set 482# CONFIG_EQUALIZER is not set
462# CONFIG_TUN is not set 483# CONFIG_TUN is not set
463# CONFIG_VETH is not set 484# CONFIG_VETH is not set
464# CONFIG_IP1000 is not set
465# CONFIG_ARCNET is not set 485# CONFIG_ARCNET is not set
466# CONFIG_NET_ETHERNET is not set 486# CONFIG_NET_ETHERNET is not set
467CONFIG_IBM_NEW_EMAC_ZMII=y 487CONFIG_IBM_NEW_EMAC_ZMII=y
@@ -472,6 +492,9 @@ CONFIG_NETDEV_1000=y
472# CONFIG_DL2K is not set 492# CONFIG_DL2K is not set
473# CONFIG_E1000 is not set 493# CONFIG_E1000 is not set
474# CONFIG_E1000E is not set 494# CONFIG_E1000E is not set
495# CONFIG_E1000E_ENABLED is not set
496# CONFIG_IP1000 is not set
497# CONFIG_IGB is not set
475# CONFIG_NS83820 is not set 498# CONFIG_NS83820 is not set
476# CONFIG_HAMACHI is not set 499# CONFIG_HAMACHI is not set
477# CONFIG_YELLOWFIN is not set 500# CONFIG_YELLOWFIN is not set
@@ -496,6 +519,7 @@ CONFIG_NETDEV_10000=y
496# CONFIG_NIU is not set 519# CONFIG_NIU is not set
497# CONFIG_MLX4_CORE is not set 520# CONFIG_MLX4_CORE is not set
498# CONFIG_TEHUTI is not set 521# CONFIG_TEHUTI is not set
522# CONFIG_BNX2X is not set
499# CONFIG_TR is not set 523# CONFIG_TR is not set
500 524
501# 525#
@@ -508,7 +532,6 @@ CONFIG_NETDEV_10000=y
508# CONFIG_HIPPI is not set 532# CONFIG_HIPPI is not set
509# CONFIG_PPP is not set 533# CONFIG_PPP is not set
510# CONFIG_SLIP is not set 534# CONFIG_SLIP is not set
511# CONFIG_SHAPER is not set
512# CONFIG_NETCONSOLE is not set 535# CONFIG_NETCONSOLE is not set
513# CONFIG_NETPOLL is not set 536# CONFIG_NETPOLL is not set
514# CONFIG_NET_POLL_CONTROLLER is not set 537# CONFIG_NET_POLL_CONTROLLER is not set
@@ -531,6 +554,7 @@ CONFIG_NETDEV_10000=y
531# 554#
532# CONFIG_VT is not set 555# CONFIG_VT is not set
533# CONFIG_SERIAL_NONSTANDARD is not set 556# CONFIG_SERIAL_NONSTANDARD is not set
557# CONFIG_NOZOMI is not set
534 558
535# 559#
536# Serial drivers 560# Serial drivers
@@ -576,6 +600,7 @@ CONFIG_DEVPORT=y
576# CONFIG_W1 is not set 600# CONFIG_W1 is not set
577# CONFIG_POWER_SUPPLY is not set 601# CONFIG_POWER_SUPPLY is not set
578# CONFIG_HWMON is not set 602# CONFIG_HWMON is not set
603CONFIG_THERMAL=y
579# CONFIG_WATCHDOG is not set 604# CONFIG_WATCHDOG is not set
580 605
581# 606#
@@ -624,12 +649,9 @@ CONFIG_USB_ARCH_HAS_EHCI=y
624# 649#
625# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 650# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
626# 651#
627
628#
629# USB Gadget Support
630#
631# CONFIG_USB_GADGET is not set 652# CONFIG_USB_GADGET is not set
632# CONFIG_MMC is not set 653# CONFIG_MMC is not set
654# CONFIG_MEMSTICK is not set
633# CONFIG_NEW_LEDS is not set 655# CONFIG_NEW_LEDS is not set
634# CONFIG_INFINIBAND is not set 656# CONFIG_INFINIBAND is not set
635# CONFIG_EDAC is not set 657# CONFIG_EDAC is not set
@@ -654,12 +676,10 @@ CONFIG_EXT2_FS=y
654# CONFIG_XFS_FS is not set 676# CONFIG_XFS_FS is not set
655# CONFIG_GFS2_FS is not set 677# CONFIG_GFS2_FS is not set
656# CONFIG_OCFS2_FS is not set 678# CONFIG_OCFS2_FS is not set
657# CONFIG_MINIX_FS is not set 679CONFIG_DNOTIFY=y
658# CONFIG_ROMFS_FS is not set
659CONFIG_INOTIFY=y 680CONFIG_INOTIFY=y
660CONFIG_INOTIFY_USER=y 681CONFIG_INOTIFY_USER=y
661# CONFIG_QUOTA is not set 682# CONFIG_QUOTA is not set
662CONFIG_DNOTIFY=y
663# CONFIG_AUTOFS_FS is not set 683# CONFIG_AUTOFS_FS is not set
664# CONFIG_AUTOFS4_FS is not set 684# CONFIG_AUTOFS4_FS is not set
665# CONFIG_FUSE_FS is not set 685# CONFIG_FUSE_FS is not set
@@ -712,8 +732,10 @@ CONFIG_JFFS2_RTIME=y
712# CONFIG_JFFS2_RUBIN is not set 732# CONFIG_JFFS2_RUBIN is not set
713CONFIG_CRAMFS=y 733CONFIG_CRAMFS=y
714# CONFIG_VXFS_FS is not set 734# CONFIG_VXFS_FS is not set
735# CONFIG_MINIX_FS is not set
715# CONFIG_HPFS_FS is not set 736# CONFIG_HPFS_FS is not set
716# CONFIG_QNX4FS_FS is not set 737# CONFIG_QNX4FS_FS is not set
738# CONFIG_ROMFS_FS is not set
717# CONFIG_SYSV_FS is not set 739# CONFIG_SYSV_FS is not set
718# CONFIG_UFS_FS is not set 740# CONFIG_UFS_FS is not set
719CONFIG_NETWORK_FILESYSTEMS=y 741CONFIG_NETWORK_FILESYSTEMS=y
@@ -744,7 +766,6 @@ CONFIG_SUNRPC=y
744CONFIG_MSDOS_PARTITION=y 766CONFIG_MSDOS_PARTITION=y
745# CONFIG_NLS is not set 767# CONFIG_NLS is not set
746# CONFIG_DLM is not set 768# CONFIG_DLM is not set
747# CONFIG_UCC_SLOW is not set
748 769
749# 770#
750# Library routines 771# Library routines
@@ -762,10 +783,6 @@ CONFIG_PLIST=y
762CONFIG_HAS_IOMEM=y 783CONFIG_HAS_IOMEM=y
763CONFIG_HAS_IOPORT=y 784CONFIG_HAS_IOPORT=y
764CONFIG_HAS_DMA=y 785CONFIG_HAS_DMA=y
765CONFIG_INSTRUMENTATION=y
766# CONFIG_PROFILING is not set
767# CONFIG_KPROBES is not set
768# CONFIG_MARKERS is not set
769 786
770# 787#
771# Kernel hacking 788# Kernel hacking
@@ -775,7 +792,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
775CONFIG_ENABLE_MUST_CHECK=y 792CONFIG_ENABLE_MUST_CHECK=y
776CONFIG_MAGIC_SYSRQ=y 793CONFIG_MAGIC_SYSRQ=y
777# CONFIG_UNUSED_SYMBOLS is not set 794# CONFIG_UNUSED_SYMBOLS is not set
778# CONFIG_DEBUG_FS is not set 795CONFIG_DEBUG_FS=y
779# CONFIG_HEADERS_CHECK is not set 796# CONFIG_HEADERS_CHECK is not set
780CONFIG_DEBUG_KERNEL=y 797CONFIG_DEBUG_KERNEL=y
781# CONFIG_DEBUG_SHIRQ is not set 798# CONFIG_DEBUG_SHIRQ is not set
@@ -784,6 +801,7 @@ CONFIG_SCHED_DEBUG=y
784# CONFIG_SCHEDSTATS is not set 801# CONFIG_SCHEDSTATS is not set
785# CONFIG_TIMER_STATS is not set 802# CONFIG_TIMER_STATS is not set
786# CONFIG_SLUB_DEBUG_ON is not set 803# CONFIG_SLUB_DEBUG_ON is not set
804# CONFIG_SLUB_STATS is not set
787# CONFIG_DEBUG_RT_MUTEXES is not set 805# CONFIG_DEBUG_RT_MUTEXES is not set
788# CONFIG_RT_MUTEX_TESTER is not set 806# CONFIG_RT_MUTEX_TESTER is not set
789# CONFIG_DEBUG_SPINLOCK is not set 807# CONFIG_DEBUG_SPINLOCK is not set
@@ -796,9 +814,9 @@ CONFIG_SCHED_DEBUG=y
796# CONFIG_DEBUG_VM is not set 814# CONFIG_DEBUG_VM is not set
797# CONFIG_DEBUG_LIST is not set 815# CONFIG_DEBUG_LIST is not set
798# CONFIG_DEBUG_SG is not set 816# CONFIG_DEBUG_SG is not set
799CONFIG_FORCED_INLINING=y
800# CONFIG_BOOT_PRINTK_DELAY is not set 817# CONFIG_BOOT_PRINTK_DELAY is not set
801# CONFIG_RCU_TORTURE_TEST is not set 818# CONFIG_RCU_TORTURE_TEST is not set
819# CONFIG_BACKTRACE_SELF_TEST is not set
802# CONFIG_FAULT_INJECTION is not set 820# CONFIG_FAULT_INJECTION is not set
803# CONFIG_SAMPLES is not set 821# CONFIG_SAMPLES is not set
804# CONFIG_DEBUG_STACKOVERFLOW is not set 822# CONFIG_DEBUG_STACKOVERFLOW is not set
@@ -807,6 +825,7 @@ CONFIG_FORCED_INLINING=y
807CONFIG_DEBUGGER=y 825CONFIG_DEBUGGER=y
808# CONFIG_KGDB is not set 826# CONFIG_KGDB is not set
809# CONFIG_XMON is not set 827# CONFIG_XMON is not set
828# CONFIG_VIRQ_DEBUG is not set
810# CONFIG_BDI_SWITCH is not set 829# CONFIG_BDI_SWITCH is not set
811CONFIG_PPC_EARLY_DEBUG=y 830CONFIG_PPC_EARLY_DEBUG=y
812# CONFIG_PPC_EARLY_DEBUG_LPAR is not set 831# CONFIG_PPC_EARLY_DEBUG_LPAR is not set
@@ -832,6 +851,7 @@ CONFIG_PPC_EARLY_DEBUG_44x_PHYSHIGH=0x1
832CONFIG_CRYPTO=y 851CONFIG_CRYPTO=y
833CONFIG_CRYPTO_ALGAPI=y 852CONFIG_CRYPTO_ALGAPI=y
834CONFIG_CRYPTO_BLKCIPHER=y 853CONFIG_CRYPTO_BLKCIPHER=y
854# CONFIG_CRYPTO_SEQIV is not set
835CONFIG_CRYPTO_MANAGER=y 855CONFIG_CRYPTO_MANAGER=y
836# CONFIG_CRYPTO_HMAC is not set 856# CONFIG_CRYPTO_HMAC is not set
837# CONFIG_CRYPTO_XCBC is not set 857# CONFIG_CRYPTO_XCBC is not set
@@ -849,6 +869,9 @@ CONFIG_CRYPTO_CBC=y
849CONFIG_CRYPTO_PCBC=y 869CONFIG_CRYPTO_PCBC=y
850# CONFIG_CRYPTO_LRW is not set 870# CONFIG_CRYPTO_LRW is not set
851# CONFIG_CRYPTO_XTS is not set 871# CONFIG_CRYPTO_XTS is not set
872# CONFIG_CRYPTO_CTR is not set
873# CONFIG_CRYPTO_GCM is not set
874# CONFIG_CRYPTO_CCM is not set
852# CONFIG_CRYPTO_CRYPTD is not set 875# CONFIG_CRYPTO_CRYPTD is not set
853CONFIG_CRYPTO_DES=y 876CONFIG_CRYPTO_DES=y
854# CONFIG_CRYPTO_FCRYPT is not set 877# CONFIG_CRYPTO_FCRYPT is not set
@@ -863,11 +886,14 @@ CONFIG_CRYPTO_DES=y
863# CONFIG_CRYPTO_KHAZAD is not set 886# CONFIG_CRYPTO_KHAZAD is not set
864# CONFIG_CRYPTO_ANUBIS is not set 887# CONFIG_CRYPTO_ANUBIS is not set
865# CONFIG_CRYPTO_SEED is not set 888# CONFIG_CRYPTO_SEED is not set
889# CONFIG_CRYPTO_SALSA20 is not set
866# CONFIG_CRYPTO_DEFLATE is not set 890# CONFIG_CRYPTO_DEFLATE is not set
867# CONFIG_CRYPTO_MICHAEL_MIC is not set 891# CONFIG_CRYPTO_MICHAEL_MIC is not set
868# CONFIG_CRYPTO_CRC32C is not set 892# CONFIG_CRYPTO_CRC32C is not set
869# CONFIG_CRYPTO_CAMELLIA is not set 893# CONFIG_CRYPTO_CAMELLIA is not set
870# CONFIG_CRYPTO_TEST is not set 894# CONFIG_CRYPTO_TEST is not set
871# CONFIG_CRYPTO_AUTHENC is not set 895# CONFIG_CRYPTO_AUTHENC is not set
896# CONFIG_CRYPTO_LZO is not set
872CONFIG_CRYPTO_HW=y 897CONFIG_CRYPTO_HW=y
898# CONFIG_CRYPTO_DEV_HIFN_795X is not set
873# CONFIG_PPC_CLOCK is not set 899# CONFIG_PPC_CLOCK is not set
diff --git a/arch/powerpc/configs/sequoia_defconfig b/arch/powerpc/configs/sequoia_defconfig
index abbfed6582e1..dd5d6303c396 100644
--- a/arch/powerpc/configs/sequoia_defconfig
+++ b/arch/powerpc/configs/sequoia_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc6 3# Linux kernel version: 2.6.25-rc2
4# Mon Dec 24 11:23:22 2007 4# Fri Feb 15 21:53:46 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -30,6 +30,7 @@ CONFIG_GENERIC_TIME=y
30CONFIG_GENERIC_TIME_VSYSCALL=y 30CONFIG_GENERIC_TIME_VSYSCALL=y
31CONFIG_GENERIC_CLOCKEVENTS=y 31CONFIG_GENERIC_CLOCKEVENTS=y
32CONFIG_GENERIC_HARDIRQS=y 32CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
34CONFIG_RWSEM_XCHGADD_ALGORITHM=y 35CONFIG_RWSEM_XCHGADD_ALGORITHM=y
35CONFIG_ARCH_HAS_ILOG2_U32=y 36CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -68,15 +69,18 @@ CONFIG_SYSVIPC_SYSCTL=y
68CONFIG_POSIX_MQUEUE=y 69CONFIG_POSIX_MQUEUE=y
69# CONFIG_BSD_PROCESS_ACCT is not set 70# CONFIG_BSD_PROCESS_ACCT is not set
70# CONFIG_TASKSTATS is not set 71# CONFIG_TASKSTATS is not set
71# CONFIG_USER_NS is not set
72# CONFIG_PID_NS is not set
73# CONFIG_AUDIT is not set 72# CONFIG_AUDIT is not set
74# CONFIG_IKCONFIG is not set 73# CONFIG_IKCONFIG is not set
75CONFIG_LOG_BUF_SHIFT=14 74CONFIG_LOG_BUF_SHIFT=14
76# CONFIG_CGROUPS is not set 75# CONFIG_CGROUPS is not set
76CONFIG_GROUP_SCHED=y
77# CONFIG_FAIR_GROUP_SCHED is not set 77# CONFIG_FAIR_GROUP_SCHED is not set
78# CONFIG_RT_GROUP_SCHED is not set
79CONFIG_USER_SCHED=y
80# CONFIG_CGROUP_SCHED is not set
78CONFIG_SYSFS_DEPRECATED=y 81CONFIG_SYSFS_DEPRECATED=y
79# CONFIG_RELAY is not set 82# CONFIG_RELAY is not set
83# CONFIG_NAMESPACES is not set
80CONFIG_BLK_DEV_INITRD=y 84CONFIG_BLK_DEV_INITRD=y
81CONFIG_INITRAMFS_SOURCE="" 85CONFIG_INITRAMFS_SOURCE=""
82# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 86# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
@@ -90,11 +94,13 @@ CONFIG_HOTPLUG=y
90CONFIG_PRINTK=y 94CONFIG_PRINTK=y
91CONFIG_BUG=y 95CONFIG_BUG=y
92CONFIG_ELF_CORE=y 96CONFIG_ELF_CORE=y
97CONFIG_COMPAT_BRK=y
93CONFIG_BASE_FULL=y 98CONFIG_BASE_FULL=y
94CONFIG_FUTEX=y 99CONFIG_FUTEX=y
95CONFIG_ANON_INODES=y 100CONFIG_ANON_INODES=y
96CONFIG_EPOLL=y 101CONFIG_EPOLL=y
97CONFIG_SIGNALFD=y 102CONFIG_SIGNALFD=y
103CONFIG_TIMERFD=y
98CONFIG_EVENTFD=y 104CONFIG_EVENTFD=y
99CONFIG_SHMEM=y 105CONFIG_SHMEM=y
100CONFIG_VM_EVENT_COUNTERS=y 106CONFIG_VM_EVENT_COUNTERS=y
@@ -102,6 +108,13 @@ CONFIG_SLUB_DEBUG=y
102# CONFIG_SLAB is not set 108# CONFIG_SLAB is not set
103CONFIG_SLUB=y 109CONFIG_SLUB=y
104# CONFIG_SLOB is not set 110# CONFIG_SLOB is not set
111# CONFIG_PROFILING is not set
112# CONFIG_MARKERS is not set
113CONFIG_HAVE_OPROFILE=y
114# CONFIG_KPROBES is not set
115CONFIG_HAVE_KPROBES=y
116CONFIG_PROC_PAGE_MONITOR=y
117CONFIG_SLABINFO=y
105CONFIG_RT_MUTEXES=y 118CONFIG_RT_MUTEXES=y
106# CONFIG_TINY_SHMEM is not set 119# CONFIG_TINY_SHMEM is not set
107CONFIG_BASE_SMALL=0 120CONFIG_BASE_SMALL=0
@@ -129,13 +142,15 @@ CONFIG_DEFAULT_AS=y
129# CONFIG_DEFAULT_CFQ is not set 142# CONFIG_DEFAULT_CFQ is not set
130# CONFIG_DEFAULT_NOOP is not set 143# CONFIG_DEFAULT_NOOP is not set
131CONFIG_DEFAULT_IOSCHED="anticipatory" 144CONFIG_DEFAULT_IOSCHED="anticipatory"
145CONFIG_CLASSIC_RCU=y
146# CONFIG_PREEMPT_RCU is not set
132# CONFIG_PPC4xx_PCI_EXPRESS is not set 147# CONFIG_PPC4xx_PCI_EXPRESS is not set
133 148
134# 149#
135# Platform support 150# Platform support
136# 151#
137# CONFIG_PPC_MPC52xx is not set 152# CONFIG_PPC_MPC512x is not set
138# CONFIG_PPC_MPC5200 is not set 153# CONFIG_PPC_MPC5121 is not set
139# CONFIG_PPC_CELL is not set 154# CONFIG_PPC_CELL is not set
140# CONFIG_PPC_CELL_NATIVE is not set 155# CONFIG_PPC_CELL_NATIVE is not set
141# CONFIG_PQ2ADS is not set 156# CONFIG_PQ2ADS is not set
@@ -145,7 +160,9 @@ CONFIG_SEQUOIA=y
145# CONFIG_TAISHAN is not set 160# CONFIG_TAISHAN is not set
146# CONFIG_KATMAI is not set 161# CONFIG_KATMAI is not set
147# CONFIG_RAINIER is not set 162# CONFIG_RAINIER is not set
163# CONFIG_WARP is not set
148CONFIG_440EPX=y 164CONFIG_440EPX=y
165# CONFIG_IPIC is not set
149# CONFIG_MPIC is not set 166# CONFIG_MPIC is not set
150# CONFIG_MPIC_WEIRD is not set 167# CONFIG_MPIC_WEIRD is not set
151# CONFIG_PPC_I8259 is not set 168# CONFIG_PPC_I8259 is not set
@@ -156,7 +173,6 @@ CONFIG_440EPX=y
156# CONFIG_PPC_INDIRECT_IO is not set 173# CONFIG_PPC_INDIRECT_IO is not set
157# CONFIG_GENERIC_IOMAP is not set 174# CONFIG_GENERIC_IOMAP is not set
158# CONFIG_CPU_FREQ is not set 175# CONFIG_CPU_FREQ is not set
159# CONFIG_CPM2 is not set
160# CONFIG_FSL_ULI1575 is not set 176# CONFIG_FSL_ULI1575 is not set
161 177
162# 178#
@@ -172,13 +188,18 @@ CONFIG_HZ_250=y
172# CONFIG_HZ_300 is not set 188# CONFIG_HZ_300 is not set
173# CONFIG_HZ_1000 is not set 189# CONFIG_HZ_1000 is not set
174CONFIG_HZ=250 190CONFIG_HZ=250
191# CONFIG_SCHED_HRTICK is not set
175CONFIG_PREEMPT_NONE=y 192CONFIG_PREEMPT_NONE=y
176# CONFIG_PREEMPT_VOLUNTARY is not set 193# CONFIG_PREEMPT_VOLUNTARY is not set
177# CONFIG_PREEMPT is not set 194# CONFIG_PREEMPT is not set
195CONFIG_RCU_TRACE=y
178CONFIG_BINFMT_ELF=y 196CONFIG_BINFMT_ELF=y
179# CONFIG_BINFMT_MISC is not set 197# CONFIG_BINFMT_MISC is not set
180# CONFIG_MATH_EMULATION is not set 198# CONFIG_MATH_EMULATION is not set
199# CONFIG_IOMMU_HELPER is not set
181CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 200CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
201CONFIG_ARCH_HAS_WALK_MEMORY=y
202CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
182CONFIG_ARCH_FLATMEM_ENABLE=y 203CONFIG_ARCH_FLATMEM_ENABLE=y
183CONFIG_ARCH_POPULATES_NODE_MAP=y 204CONFIG_ARCH_POPULATES_NODE_MAP=y
184CONFIG_SELECT_MEMORY_MODEL=y 205CONFIG_SELECT_MEMORY_MODEL=y
@@ -198,8 +219,6 @@ CONFIG_PROC_DEVICETREE=y
198CONFIG_CMDLINE_BOOL=y 219CONFIG_CMDLINE_BOOL=y
199CONFIG_CMDLINE="" 220CONFIG_CMDLINE=""
200CONFIG_SECCOMP=y 221CONFIG_SECCOMP=y
201CONFIG_WANT_DEVICE_TREE=y
202CONFIG_DEVICE_TREE="sequoia.dts"
203CONFIG_ISA_DMA_API=y 222CONFIG_ISA_DMA_API=y
204 223
205# 224#
@@ -299,6 +318,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
299# 318#
300# CONFIG_NET_PKTGEN is not set 319# CONFIG_NET_PKTGEN is not set
301# CONFIG_HAMRADIO is not set 320# CONFIG_HAMRADIO is not set
321# CONFIG_CAN is not set
302# CONFIG_IRDA is not set 322# CONFIG_IRDA is not set
303# CONFIG_BT is not set 323# CONFIG_BT is not set
304# CONFIG_AF_RXRPC is not set 324# CONFIG_AF_RXRPC is not set
@@ -335,6 +355,7 @@ CONFIG_MTD=y
335CONFIG_MTD_PARTITIONS=y 355CONFIG_MTD_PARTITIONS=y
336# CONFIG_MTD_REDBOOT_PARTS is not set 356# CONFIG_MTD_REDBOOT_PARTS is not set
337CONFIG_MTD_CMDLINE_PARTS=y 357CONFIG_MTD_CMDLINE_PARTS=y
358CONFIG_MTD_OF_PARTS=y
338 359
339# 360#
340# User Modules And Translation Layers 361# User Modules And Translation Layers
@@ -421,7 +442,7 @@ CONFIG_BLK_DEV=y
421CONFIG_BLK_DEV_RAM=y 442CONFIG_BLK_DEV_RAM=y
422CONFIG_BLK_DEV_RAM_COUNT=16 443CONFIG_BLK_DEV_RAM_COUNT=16
423CONFIG_BLK_DEV_RAM_SIZE=35000 444CONFIG_BLK_DEV_RAM_SIZE=35000
424CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 445# CONFIG_BLK_DEV_XIP is not set
425# CONFIG_CDROM_PKTCDVD is not set 446# CONFIG_CDROM_PKTCDVD is not set
426# CONFIG_ATA_OVER_ETH is not set 447# CONFIG_ATA_OVER_ETH is not set
427# CONFIG_XILINX_SYSACE is not set 448# CONFIG_XILINX_SYSACE is not set
@@ -430,6 +451,8 @@ CONFIG_MISC_DEVICES=y
430# CONFIG_EEPROM_93CX6 is not set 451# CONFIG_EEPROM_93CX6 is not set
431# CONFIG_SGI_IOC4 is not set 452# CONFIG_SGI_IOC4 is not set
432# CONFIG_TIFM_CORE is not set 453# CONFIG_TIFM_CORE is not set
454# CONFIG_ENCLOSURE_SERVICES is not set
455CONFIG_HAVE_IDE=y
433# CONFIG_IDE is not set 456# CONFIG_IDE is not set
434 457
435# 458#
@@ -458,7 +481,6 @@ CONFIG_NETDEVICES=y
458# CONFIG_EQUALIZER is not set 481# CONFIG_EQUALIZER is not set
459# CONFIG_TUN is not set 482# CONFIG_TUN is not set
460# CONFIG_VETH is not set 483# CONFIG_VETH is not set
461# CONFIG_IP1000 is not set
462# CONFIG_ARCNET is not set 484# CONFIG_ARCNET is not set
463# CONFIG_PHYLIB is not set 485# CONFIG_PHYLIB is not set
464CONFIG_NET_ETHERNET=y 486CONFIG_NET_ETHERNET=y
@@ -487,6 +509,9 @@ CONFIG_NETDEV_1000=y
487# CONFIG_DL2K is not set 509# CONFIG_DL2K is not set
488# CONFIG_E1000 is not set 510# CONFIG_E1000 is not set
489# CONFIG_E1000E is not set 511# CONFIG_E1000E is not set
512# CONFIG_E1000E_ENABLED is not set
513# CONFIG_IP1000 is not set
514# CONFIG_IGB is not set
490# CONFIG_NS83820 is not set 515# CONFIG_NS83820 is not set
491# CONFIG_HAMACHI is not set 516# CONFIG_HAMACHI is not set
492# CONFIG_YELLOWFIN is not set 517# CONFIG_YELLOWFIN is not set
@@ -511,6 +536,7 @@ CONFIG_NETDEV_10000=y
511# CONFIG_NIU is not set 536# CONFIG_NIU is not set
512# CONFIG_MLX4_CORE is not set 537# CONFIG_MLX4_CORE is not set
513# CONFIG_TEHUTI is not set 538# CONFIG_TEHUTI is not set
539# CONFIG_BNX2X is not set
514# CONFIG_TR is not set 540# CONFIG_TR is not set
515 541
516# 542#
@@ -523,7 +549,6 @@ CONFIG_NETDEV_10000=y
523# CONFIG_HIPPI is not set 549# CONFIG_HIPPI is not set
524# CONFIG_PPP is not set 550# CONFIG_PPP is not set
525# CONFIG_SLIP is not set 551# CONFIG_SLIP is not set
526# CONFIG_SHAPER is not set
527# CONFIG_NETCONSOLE is not set 552# CONFIG_NETCONSOLE is not set
528# CONFIG_NETPOLL is not set 553# CONFIG_NETPOLL is not set
529# CONFIG_NET_POLL_CONTROLLER is not set 554# CONFIG_NET_POLL_CONTROLLER is not set
@@ -546,6 +571,7 @@ CONFIG_NETDEV_10000=y
546# 571#
547# CONFIG_VT is not set 572# CONFIG_VT is not set
548# CONFIG_SERIAL_NONSTANDARD is not set 573# CONFIG_SERIAL_NONSTANDARD is not set
574# CONFIG_NOZOMI is not set
549 575
550# 576#
551# Serial drivers 577# Serial drivers
@@ -591,6 +617,7 @@ CONFIG_DEVPORT=y
591# CONFIG_W1 is not set 617# CONFIG_W1 is not set
592# CONFIG_POWER_SUPPLY is not set 618# CONFIG_POWER_SUPPLY is not set
593# CONFIG_HWMON is not set 619# CONFIG_HWMON is not set
620CONFIG_THERMAL=y
594# CONFIG_WATCHDOG is not set 621# CONFIG_WATCHDOG is not set
595 622
596# 623#
@@ -639,12 +666,9 @@ CONFIG_USB_ARCH_HAS_EHCI=y
639# 666#
640# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 667# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
641# 668#
642
643#
644# USB Gadget Support
645#
646# CONFIG_USB_GADGET is not set 669# CONFIG_USB_GADGET is not set
647# CONFIG_MMC is not set 670# CONFIG_MMC is not set
671# CONFIG_MEMSTICK is not set
648# CONFIG_NEW_LEDS is not set 672# CONFIG_NEW_LEDS is not set
649# CONFIG_INFINIBAND is not set 673# CONFIG_INFINIBAND is not set
650# CONFIG_EDAC is not set 674# CONFIG_EDAC is not set
@@ -669,12 +693,10 @@ CONFIG_EXT2_FS=y
669# CONFIG_XFS_FS is not set 693# CONFIG_XFS_FS is not set
670# CONFIG_GFS2_FS is not set 694# CONFIG_GFS2_FS is not set
671# CONFIG_OCFS2_FS is not set 695# CONFIG_OCFS2_FS is not set
672# CONFIG_MINIX_FS is not set 696CONFIG_DNOTIFY=y
673# CONFIG_ROMFS_FS is not set
674CONFIG_INOTIFY=y 697CONFIG_INOTIFY=y
675CONFIG_INOTIFY_USER=y 698CONFIG_INOTIFY_USER=y
676# CONFIG_QUOTA is not set 699# CONFIG_QUOTA is not set
677CONFIG_DNOTIFY=y
678# CONFIG_AUTOFS_FS is not set 700# CONFIG_AUTOFS_FS is not set
679# CONFIG_AUTOFS4_FS is not set 701# CONFIG_AUTOFS4_FS is not set
680# CONFIG_FUSE_FS is not set 702# CONFIG_FUSE_FS is not set
@@ -727,8 +749,10 @@ CONFIG_JFFS2_RTIME=y
727# CONFIG_JFFS2_RUBIN is not set 749# CONFIG_JFFS2_RUBIN is not set
728CONFIG_CRAMFS=y 750CONFIG_CRAMFS=y
729# CONFIG_VXFS_FS is not set 751# CONFIG_VXFS_FS is not set
752# CONFIG_MINIX_FS is not set
730# CONFIG_HPFS_FS is not set 753# CONFIG_HPFS_FS is not set
731# CONFIG_QNX4FS_FS is not set 754# CONFIG_QNX4FS_FS is not set
755# CONFIG_ROMFS_FS is not set
732# CONFIG_SYSV_FS is not set 756# CONFIG_SYSV_FS is not set
733# CONFIG_UFS_FS is not set 757# CONFIG_UFS_FS is not set
734CONFIG_NETWORK_FILESYSTEMS=y 758CONFIG_NETWORK_FILESYSTEMS=y
@@ -759,7 +783,6 @@ CONFIG_SUNRPC=y
759CONFIG_MSDOS_PARTITION=y 783CONFIG_MSDOS_PARTITION=y
760# CONFIG_NLS is not set 784# CONFIG_NLS is not set
761# CONFIG_DLM is not set 785# CONFIG_DLM is not set
762# CONFIG_UCC_SLOW is not set
763 786
764# 787#
765# Library routines 788# Library routines
@@ -777,7 +800,6 @@ CONFIG_PLIST=y
777CONFIG_HAS_IOMEM=y 800CONFIG_HAS_IOMEM=y
778CONFIG_HAS_IOPORT=y 801CONFIG_HAS_IOPORT=y
779CONFIG_HAS_DMA=y 802CONFIG_HAS_DMA=y
780# CONFIG_INSTRUMENTATION is not set
781 803
782# 804#
783# Kernel hacking 805# Kernel hacking
@@ -787,7 +809,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
787CONFIG_ENABLE_MUST_CHECK=y 809CONFIG_ENABLE_MUST_CHECK=y
788CONFIG_MAGIC_SYSRQ=y 810CONFIG_MAGIC_SYSRQ=y
789# CONFIG_UNUSED_SYMBOLS is not set 811# CONFIG_UNUSED_SYMBOLS is not set
790# CONFIG_DEBUG_FS is not set 812CONFIG_DEBUG_FS=y
791# CONFIG_HEADERS_CHECK is not set 813# CONFIG_HEADERS_CHECK is not set
792CONFIG_DEBUG_KERNEL=y 814CONFIG_DEBUG_KERNEL=y
793# CONFIG_DEBUG_SHIRQ is not set 815# CONFIG_DEBUG_SHIRQ is not set
@@ -796,6 +818,7 @@ CONFIG_SCHED_DEBUG=y
796# CONFIG_SCHEDSTATS is not set 818# CONFIG_SCHEDSTATS is not set
797# CONFIG_TIMER_STATS is not set 819# CONFIG_TIMER_STATS is not set
798# CONFIG_SLUB_DEBUG_ON is not set 820# CONFIG_SLUB_DEBUG_ON is not set
821# CONFIG_SLUB_STATS is not set
799# CONFIG_DEBUG_RT_MUTEXES is not set 822# CONFIG_DEBUG_RT_MUTEXES is not set
800# CONFIG_RT_MUTEX_TESTER is not set 823# CONFIG_RT_MUTEX_TESTER is not set
801# CONFIG_DEBUG_SPINLOCK is not set 824# CONFIG_DEBUG_SPINLOCK is not set
@@ -808,9 +831,9 @@ CONFIG_SCHED_DEBUG=y
808# CONFIG_DEBUG_VM is not set 831# CONFIG_DEBUG_VM is not set
809# CONFIG_DEBUG_LIST is not set 832# CONFIG_DEBUG_LIST is not set
810# CONFIG_DEBUG_SG is not set 833# CONFIG_DEBUG_SG is not set
811CONFIG_FORCED_INLINING=y
812# CONFIG_BOOT_PRINTK_DELAY is not set 834# CONFIG_BOOT_PRINTK_DELAY is not set
813# CONFIG_RCU_TORTURE_TEST is not set 835# CONFIG_RCU_TORTURE_TEST is not set
836# CONFIG_BACKTRACE_SELF_TEST is not set
814# CONFIG_FAULT_INJECTION is not set 837# CONFIG_FAULT_INJECTION is not set
815# CONFIG_SAMPLES is not set 838# CONFIG_SAMPLES is not set
816# CONFIG_DEBUG_STACKOVERFLOW is not set 839# CONFIG_DEBUG_STACKOVERFLOW is not set
@@ -819,6 +842,7 @@ CONFIG_FORCED_INLINING=y
819CONFIG_DEBUGGER=y 842CONFIG_DEBUGGER=y
820# CONFIG_KGDB is not set 843# CONFIG_KGDB is not set
821# CONFIG_XMON is not set 844# CONFIG_XMON is not set
845# CONFIG_VIRQ_DEBUG is not set
822# CONFIG_BDI_SWITCH is not set 846# CONFIG_BDI_SWITCH is not set
823CONFIG_PPC_EARLY_DEBUG=y 847CONFIG_PPC_EARLY_DEBUG=y
824# CONFIG_PPC_EARLY_DEBUG_LPAR is not set 848# CONFIG_PPC_EARLY_DEBUG_LPAR is not set
@@ -844,6 +868,7 @@ CONFIG_PPC_EARLY_DEBUG_44x_PHYSHIGH=0x1
844CONFIG_CRYPTO=y 868CONFIG_CRYPTO=y
845CONFIG_CRYPTO_ALGAPI=y 869CONFIG_CRYPTO_ALGAPI=y
846CONFIG_CRYPTO_BLKCIPHER=y 870CONFIG_CRYPTO_BLKCIPHER=y
871# CONFIG_CRYPTO_SEQIV is not set
847CONFIG_CRYPTO_MANAGER=y 872CONFIG_CRYPTO_MANAGER=y
848# CONFIG_CRYPTO_HMAC is not set 873# CONFIG_CRYPTO_HMAC is not set
849# CONFIG_CRYPTO_XCBC is not set 874# CONFIG_CRYPTO_XCBC is not set
@@ -861,6 +886,9 @@ CONFIG_CRYPTO_CBC=y
861CONFIG_CRYPTO_PCBC=y 886CONFIG_CRYPTO_PCBC=y
862# CONFIG_CRYPTO_LRW is not set 887# CONFIG_CRYPTO_LRW is not set
863# CONFIG_CRYPTO_XTS is not set 888# CONFIG_CRYPTO_XTS is not set
889# CONFIG_CRYPTO_CTR is not set
890# CONFIG_CRYPTO_GCM is not set
891# CONFIG_CRYPTO_CCM is not set
864# CONFIG_CRYPTO_CRYPTD is not set 892# CONFIG_CRYPTO_CRYPTD is not set
865CONFIG_CRYPTO_DES=y 893CONFIG_CRYPTO_DES=y
866# CONFIG_CRYPTO_FCRYPT is not set 894# CONFIG_CRYPTO_FCRYPT is not set
@@ -875,11 +903,14 @@ CONFIG_CRYPTO_DES=y
875# CONFIG_CRYPTO_KHAZAD is not set 903# CONFIG_CRYPTO_KHAZAD is not set
876# CONFIG_CRYPTO_ANUBIS is not set 904# CONFIG_CRYPTO_ANUBIS is not set
877# CONFIG_CRYPTO_SEED is not set 905# CONFIG_CRYPTO_SEED is not set
906# CONFIG_CRYPTO_SALSA20 is not set
878# CONFIG_CRYPTO_DEFLATE is not set 907# CONFIG_CRYPTO_DEFLATE is not set
879# CONFIG_CRYPTO_MICHAEL_MIC is not set 908# CONFIG_CRYPTO_MICHAEL_MIC is not set
880# CONFIG_CRYPTO_CRC32C is not set 909# CONFIG_CRYPTO_CRC32C is not set
881# CONFIG_CRYPTO_CAMELLIA is not set 910# CONFIG_CRYPTO_CAMELLIA is not set
882# CONFIG_CRYPTO_TEST is not set 911# CONFIG_CRYPTO_TEST is not set
883# CONFIG_CRYPTO_AUTHENC is not set 912# CONFIG_CRYPTO_AUTHENC is not set
913# CONFIG_CRYPTO_LZO is not set
884CONFIG_CRYPTO_HW=y 914CONFIG_CRYPTO_HW=y
915# CONFIG_CRYPTO_DEV_HIFN_795X is not set
885# CONFIG_PPC_CLOCK is not set 916# CONFIG_PPC_CLOCK is not set
diff --git a/arch/powerpc/configs/taishan_defconfig b/arch/powerpc/configs/taishan_defconfig
index ade84b92877e..087aedce1338 100644
--- a/arch/powerpc/configs/taishan_defconfig
+++ b/arch/powerpc/configs/taishan_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc6 3# Linux kernel version: 2.6.25-rc2
4# Mon Dec 24 11:23:39 2007 4# Fri Feb 15 21:40:44 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -29,6 +29,7 @@ CONFIG_GENERIC_TIME=y
29CONFIG_GENERIC_TIME_VSYSCALL=y 29CONFIG_GENERIC_TIME_VSYSCALL=y
30CONFIG_GENERIC_CLOCKEVENTS=y 30CONFIG_GENERIC_CLOCKEVENTS=y
31CONFIG_GENERIC_HARDIRQS=y 31CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
32CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
33CONFIG_RWSEM_XCHGADD_ALGORITHM=y 34CONFIG_RWSEM_XCHGADD_ALGORITHM=y
34CONFIG_ARCH_HAS_ILOG2_U32=y 35CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -67,17 +68,18 @@ CONFIG_SYSVIPC_SYSCTL=y
67CONFIG_POSIX_MQUEUE=y 68CONFIG_POSIX_MQUEUE=y
68# CONFIG_BSD_PROCESS_ACCT is not set 69# CONFIG_BSD_PROCESS_ACCT is not set
69# CONFIG_TASKSTATS is not set 70# CONFIG_TASKSTATS is not set
70# CONFIG_USER_NS is not set
71# CONFIG_PID_NS is not set
72# CONFIG_AUDIT is not set 71# CONFIG_AUDIT is not set
73# CONFIG_IKCONFIG is not set 72# CONFIG_IKCONFIG is not set
74CONFIG_LOG_BUF_SHIFT=14 73CONFIG_LOG_BUF_SHIFT=14
75# CONFIG_CGROUPS is not set 74# CONFIG_CGROUPS is not set
75CONFIG_GROUP_SCHED=y
76CONFIG_FAIR_GROUP_SCHED=y 76CONFIG_FAIR_GROUP_SCHED=y
77CONFIG_FAIR_USER_SCHED=y 77# CONFIG_RT_GROUP_SCHED is not set
78# CONFIG_FAIR_CGROUP_SCHED is not set 78CONFIG_USER_SCHED=y
79# CONFIG_CGROUP_SCHED is not set
79CONFIG_SYSFS_DEPRECATED=y 80CONFIG_SYSFS_DEPRECATED=y
80# CONFIG_RELAY is not set 81# CONFIG_RELAY is not set
82# CONFIG_NAMESPACES is not set
81CONFIG_BLK_DEV_INITRD=y 83CONFIG_BLK_DEV_INITRD=y
82CONFIG_INITRAMFS_SOURCE="" 84CONFIG_INITRAMFS_SOURCE=""
83# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 85# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
@@ -91,11 +93,13 @@ CONFIG_HOTPLUG=y
91CONFIG_PRINTK=y 93CONFIG_PRINTK=y
92CONFIG_BUG=y 94CONFIG_BUG=y
93CONFIG_ELF_CORE=y 95CONFIG_ELF_CORE=y
96CONFIG_COMPAT_BRK=y
94CONFIG_BASE_FULL=y 97CONFIG_BASE_FULL=y
95CONFIG_FUTEX=y 98CONFIG_FUTEX=y
96CONFIG_ANON_INODES=y 99CONFIG_ANON_INODES=y
97CONFIG_EPOLL=y 100CONFIG_EPOLL=y
98CONFIG_SIGNALFD=y 101CONFIG_SIGNALFD=y
102CONFIG_TIMERFD=y
99CONFIG_EVENTFD=y 103CONFIG_EVENTFD=y
100CONFIG_SHMEM=y 104CONFIG_SHMEM=y
101CONFIG_VM_EVENT_COUNTERS=y 105CONFIG_VM_EVENT_COUNTERS=y
@@ -103,6 +107,13 @@ CONFIG_SLUB_DEBUG=y
103# CONFIG_SLAB is not set 107# CONFIG_SLAB is not set
104CONFIG_SLUB=y 108CONFIG_SLUB=y
105# CONFIG_SLOB is not set 109# CONFIG_SLOB is not set
110# CONFIG_PROFILING is not set
111# CONFIG_MARKERS is not set
112CONFIG_HAVE_OPROFILE=y
113# CONFIG_KPROBES is not set
114CONFIG_HAVE_KPROBES=y
115CONFIG_PROC_PAGE_MONITOR=y
116CONFIG_SLABINFO=y
106CONFIG_RT_MUTEXES=y 117CONFIG_RT_MUTEXES=y
107# CONFIG_TINY_SHMEM is not set 118# CONFIG_TINY_SHMEM is not set
108CONFIG_BASE_SMALL=0 119CONFIG_BASE_SMALL=0
@@ -130,13 +141,15 @@ CONFIG_DEFAULT_AS=y
130# CONFIG_DEFAULT_CFQ is not set 141# CONFIG_DEFAULT_CFQ is not set
131# CONFIG_DEFAULT_NOOP is not set 142# CONFIG_DEFAULT_NOOP is not set
132CONFIG_DEFAULT_IOSCHED="anticipatory" 143CONFIG_DEFAULT_IOSCHED="anticipatory"
144CONFIG_CLASSIC_RCU=y
145# CONFIG_PREEMPT_RCU is not set
133# CONFIG_PPC4xx_PCI_EXPRESS is not set 146# CONFIG_PPC4xx_PCI_EXPRESS is not set
134 147
135# 148#
136# Platform support 149# Platform support
137# 150#
138# CONFIG_PPC_MPC52xx is not set 151# CONFIG_PPC_MPC512x is not set
139# CONFIG_PPC_MPC5200 is not set 152# CONFIG_PPC_MPC5121 is not set
140# CONFIG_PPC_CELL is not set 153# CONFIG_PPC_CELL is not set
141# CONFIG_PPC_CELL_NATIVE is not set 154# CONFIG_PPC_CELL_NATIVE is not set
142# CONFIG_PQ2ADS is not set 155# CONFIG_PQ2ADS is not set
@@ -146,7 +159,9 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
146CONFIG_TAISHAN=y 159CONFIG_TAISHAN=y
147# CONFIG_KATMAI is not set 160# CONFIG_KATMAI is not set
148# CONFIG_RAINIER is not set 161# CONFIG_RAINIER is not set
162# CONFIG_WARP is not set
149CONFIG_440GX=y 163CONFIG_440GX=y
164# CONFIG_IPIC is not set
150# CONFIG_MPIC is not set 165# CONFIG_MPIC is not set
151# CONFIG_MPIC_WEIRD is not set 166# CONFIG_MPIC_WEIRD is not set
152# CONFIG_PPC_I8259 is not set 167# CONFIG_PPC_I8259 is not set
@@ -157,7 +172,6 @@ CONFIG_440GX=y
157# CONFIG_PPC_INDIRECT_IO is not set 172# CONFIG_PPC_INDIRECT_IO is not set
158# CONFIG_GENERIC_IOMAP is not set 173# CONFIG_GENERIC_IOMAP is not set
159# CONFIG_CPU_FREQ is not set 174# CONFIG_CPU_FREQ is not set
160# CONFIG_CPM2 is not set
161# CONFIG_FSL_ULI1575 is not set 175# CONFIG_FSL_ULI1575 is not set
162 176
163# 177#
@@ -173,13 +187,18 @@ CONFIG_HZ_250=y
173# CONFIG_HZ_300 is not set 187# CONFIG_HZ_300 is not set
174# CONFIG_HZ_1000 is not set 188# CONFIG_HZ_1000 is not set
175CONFIG_HZ=250 189CONFIG_HZ=250
190# CONFIG_SCHED_HRTICK is not set
176CONFIG_PREEMPT_NONE=y 191CONFIG_PREEMPT_NONE=y
177# CONFIG_PREEMPT_VOLUNTARY is not set 192# CONFIG_PREEMPT_VOLUNTARY is not set
178# CONFIG_PREEMPT is not set 193# CONFIG_PREEMPT is not set
194CONFIG_RCU_TRACE=y
179CONFIG_BINFMT_ELF=y 195CONFIG_BINFMT_ELF=y
180# CONFIG_BINFMT_MISC is not set 196# CONFIG_BINFMT_MISC is not set
181# CONFIG_MATH_EMULATION is not set 197# CONFIG_MATH_EMULATION is not set
198# CONFIG_IOMMU_HELPER is not set
182CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 199CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
200CONFIG_ARCH_HAS_WALK_MEMORY=y
201CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
183CONFIG_ARCH_FLATMEM_ENABLE=y 202CONFIG_ARCH_FLATMEM_ENABLE=y
184CONFIG_ARCH_POPULATES_NODE_MAP=y 203CONFIG_ARCH_POPULATES_NODE_MAP=y
185CONFIG_SELECT_MEMORY_MODEL=y 204CONFIG_SELECT_MEMORY_MODEL=y
@@ -199,8 +218,6 @@ CONFIG_PROC_DEVICETREE=y
199CONFIG_CMDLINE_BOOL=y 218CONFIG_CMDLINE_BOOL=y
200CONFIG_CMDLINE="" 219CONFIG_CMDLINE=""
201CONFIG_SECCOMP=y 220CONFIG_SECCOMP=y
202CONFIG_WANT_DEVICE_TREE=y
203CONFIG_DEVICE_TREE="taishan.dts"
204CONFIG_ISA_DMA_API=y 221CONFIG_ISA_DMA_API=y
205 222
206# 223#
@@ -300,6 +317,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
300# 317#
301# CONFIG_NET_PKTGEN is not set 318# CONFIG_NET_PKTGEN is not set
302# CONFIG_HAMRADIO is not set 319# CONFIG_HAMRADIO is not set
320# CONFIG_CAN is not set
303# CONFIG_IRDA is not set 321# CONFIG_IRDA is not set
304# CONFIG_BT is not set 322# CONFIG_BT is not set
305# CONFIG_AF_RXRPC is not set 323# CONFIG_AF_RXRPC is not set
@@ -346,7 +364,7 @@ CONFIG_BLK_DEV=y
346CONFIG_BLK_DEV_RAM=y 364CONFIG_BLK_DEV_RAM=y
347CONFIG_BLK_DEV_RAM_COUNT=16 365CONFIG_BLK_DEV_RAM_COUNT=16
348CONFIG_BLK_DEV_RAM_SIZE=35000 366CONFIG_BLK_DEV_RAM_SIZE=35000
349CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 367# CONFIG_BLK_DEV_XIP is not set
350# CONFIG_CDROM_PKTCDVD is not set 368# CONFIG_CDROM_PKTCDVD is not set
351# CONFIG_ATA_OVER_ETH is not set 369# CONFIG_ATA_OVER_ETH is not set
352# CONFIG_XILINX_SYSACE is not set 370# CONFIG_XILINX_SYSACE is not set
@@ -355,6 +373,8 @@ CONFIG_MISC_DEVICES=y
355# CONFIG_EEPROM_93CX6 is not set 373# CONFIG_EEPROM_93CX6 is not set
356# CONFIG_SGI_IOC4 is not set 374# CONFIG_SGI_IOC4 is not set
357# CONFIG_TIFM_CORE is not set 375# CONFIG_TIFM_CORE is not set
376# CONFIG_ENCLOSURE_SERVICES is not set
377CONFIG_HAVE_IDE=y
358# CONFIG_IDE is not set 378# CONFIG_IDE is not set
359 379
360# 380#
@@ -385,7 +405,6 @@ CONFIG_NETDEVICES=y
385# CONFIG_EQUALIZER is not set 405# CONFIG_EQUALIZER is not set
386# CONFIG_TUN is not set 406# CONFIG_TUN is not set
387# CONFIG_VETH is not set 407# CONFIG_VETH is not set
388# CONFIG_IP1000 is not set
389# CONFIG_ARCNET is not set 408# CONFIG_ARCNET is not set
390# CONFIG_PHYLIB is not set 409# CONFIG_PHYLIB is not set
391CONFIG_NET_ETHERNET=y 410CONFIG_NET_ETHERNET=y
@@ -414,6 +433,9 @@ CONFIG_NETDEV_1000=y
414# CONFIG_DL2K is not set 433# CONFIG_DL2K is not set
415# CONFIG_E1000 is not set 434# CONFIG_E1000 is not set
416# CONFIG_E1000E is not set 435# CONFIG_E1000E is not set
436# CONFIG_E1000E_ENABLED is not set
437# CONFIG_IP1000 is not set
438# CONFIG_IGB is not set
417# CONFIG_NS83820 is not set 439# CONFIG_NS83820 is not set
418# CONFIG_HAMACHI is not set 440# CONFIG_HAMACHI is not set
419# CONFIG_YELLOWFIN is not set 441# CONFIG_YELLOWFIN is not set
@@ -438,6 +460,7 @@ CONFIG_NETDEV_10000=y
438# CONFIG_NIU is not set 460# CONFIG_NIU is not set
439# CONFIG_MLX4_CORE is not set 461# CONFIG_MLX4_CORE is not set
440# CONFIG_TEHUTI is not set 462# CONFIG_TEHUTI is not set
463# CONFIG_BNX2X is not set
441# CONFIG_TR is not set 464# CONFIG_TR is not set
442 465
443# 466#
@@ -450,7 +473,6 @@ CONFIG_NETDEV_10000=y
450# CONFIG_HIPPI is not set 473# CONFIG_HIPPI is not set
451# CONFIG_PPP is not set 474# CONFIG_PPP is not set
452# CONFIG_SLIP is not set 475# CONFIG_SLIP is not set
453# CONFIG_SHAPER is not set
454# CONFIG_NETCONSOLE is not set 476# CONFIG_NETCONSOLE is not set
455# CONFIG_NETPOLL is not set 477# CONFIG_NETPOLL is not set
456# CONFIG_NET_POLL_CONTROLLER is not set 478# CONFIG_NET_POLL_CONTROLLER is not set
@@ -473,6 +495,7 @@ CONFIG_NETDEV_10000=y
473# 495#
474# CONFIG_VT is not set 496# CONFIG_VT is not set
475# CONFIG_SERIAL_NONSTANDARD is not set 497# CONFIG_SERIAL_NONSTANDARD is not set
498# CONFIG_NOZOMI is not set
476 499
477# 500#
478# Serial drivers 501# Serial drivers
@@ -518,6 +541,7 @@ CONFIG_DEVPORT=y
518# CONFIG_W1 is not set 541# CONFIG_W1 is not set
519# CONFIG_POWER_SUPPLY is not set 542# CONFIG_POWER_SUPPLY is not set
520# CONFIG_HWMON is not set 543# CONFIG_HWMON is not set
544CONFIG_THERMAL=y
521# CONFIG_WATCHDOG is not set 545# CONFIG_WATCHDOG is not set
522 546
523# 547#
@@ -566,12 +590,9 @@ CONFIG_USB_ARCH_HAS_EHCI=y
566# 590#
567# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 591# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
568# 592#
569
570#
571# USB Gadget Support
572#
573# CONFIG_USB_GADGET is not set 593# CONFIG_USB_GADGET is not set
574# CONFIG_MMC is not set 594# CONFIG_MMC is not set
595# CONFIG_MEMSTICK is not set
575# CONFIG_NEW_LEDS is not set 596# CONFIG_NEW_LEDS is not set
576# CONFIG_INFINIBAND is not set 597# CONFIG_INFINIBAND is not set
577# CONFIG_EDAC is not set 598# CONFIG_EDAC is not set
@@ -596,12 +617,10 @@ CONFIG_EXT2_FS=y
596# CONFIG_XFS_FS is not set 617# CONFIG_XFS_FS is not set
597# CONFIG_GFS2_FS is not set 618# CONFIG_GFS2_FS is not set
598# CONFIG_OCFS2_FS is not set 619# CONFIG_OCFS2_FS is not set
599# CONFIG_MINIX_FS is not set 620CONFIG_DNOTIFY=y
600# CONFIG_ROMFS_FS is not set
601CONFIG_INOTIFY=y 621CONFIG_INOTIFY=y
602CONFIG_INOTIFY_USER=y 622CONFIG_INOTIFY_USER=y
603# CONFIG_QUOTA is not set 623# CONFIG_QUOTA is not set
604CONFIG_DNOTIFY=y
605# CONFIG_AUTOFS_FS is not set 624# CONFIG_AUTOFS_FS is not set
606# CONFIG_AUTOFS4_FS is not set 625# CONFIG_AUTOFS4_FS is not set
607# CONFIG_FUSE_FS is not set 626# CONFIG_FUSE_FS is not set
@@ -643,8 +662,10 @@ CONFIG_TMPFS=y
643# CONFIG_EFS_FS is not set 662# CONFIG_EFS_FS is not set
644CONFIG_CRAMFS=y 663CONFIG_CRAMFS=y
645# CONFIG_VXFS_FS is not set 664# CONFIG_VXFS_FS is not set
665# CONFIG_MINIX_FS is not set
646# CONFIG_HPFS_FS is not set 666# CONFIG_HPFS_FS is not set
647# CONFIG_QNX4FS_FS is not set 667# CONFIG_QNX4FS_FS is not set
668# CONFIG_ROMFS_FS is not set
648# CONFIG_SYSV_FS is not set 669# CONFIG_SYSV_FS is not set
649# CONFIG_UFS_FS is not set 670# CONFIG_UFS_FS is not set
650CONFIG_NETWORK_FILESYSTEMS=y 671CONFIG_NETWORK_FILESYSTEMS=y
@@ -675,7 +696,6 @@ CONFIG_SUNRPC=y
675CONFIG_MSDOS_PARTITION=y 696CONFIG_MSDOS_PARTITION=y
676# CONFIG_NLS is not set 697# CONFIG_NLS is not set
677# CONFIG_DLM is not set 698# CONFIG_DLM is not set
678# CONFIG_UCC_SLOW is not set
679 699
680# 700#
681# Library routines 701# Library routines
@@ -692,10 +712,6 @@ CONFIG_PLIST=y
692CONFIG_HAS_IOMEM=y 712CONFIG_HAS_IOMEM=y
693CONFIG_HAS_IOPORT=y 713CONFIG_HAS_IOPORT=y
694CONFIG_HAS_DMA=y 714CONFIG_HAS_DMA=y
695CONFIG_INSTRUMENTATION=y
696# CONFIG_PROFILING is not set
697# CONFIG_KPROBES is not set
698# CONFIG_MARKERS is not set
699 715
700# 716#
701# Kernel hacking 717# Kernel hacking
@@ -705,7 +721,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
705CONFIG_ENABLE_MUST_CHECK=y 721CONFIG_ENABLE_MUST_CHECK=y
706CONFIG_MAGIC_SYSRQ=y 722CONFIG_MAGIC_SYSRQ=y
707# CONFIG_UNUSED_SYMBOLS is not set 723# CONFIG_UNUSED_SYMBOLS is not set
708# CONFIG_DEBUG_FS is not set 724CONFIG_DEBUG_FS=y
709# CONFIG_HEADERS_CHECK is not set 725# CONFIG_HEADERS_CHECK is not set
710CONFIG_DEBUG_KERNEL=y 726CONFIG_DEBUG_KERNEL=y
711# CONFIG_DEBUG_SHIRQ is not set 727# CONFIG_DEBUG_SHIRQ is not set
@@ -714,6 +730,7 @@ CONFIG_SCHED_DEBUG=y
714# CONFIG_SCHEDSTATS is not set 730# CONFIG_SCHEDSTATS is not set
715# CONFIG_TIMER_STATS is not set 731# CONFIG_TIMER_STATS is not set
716# CONFIG_SLUB_DEBUG_ON is not set 732# CONFIG_SLUB_DEBUG_ON is not set
733# CONFIG_SLUB_STATS is not set
717# CONFIG_DEBUG_RT_MUTEXES is not set 734# CONFIG_DEBUG_RT_MUTEXES is not set
718# CONFIG_RT_MUTEX_TESTER is not set 735# CONFIG_RT_MUTEX_TESTER is not set
719# CONFIG_DEBUG_SPINLOCK is not set 736# CONFIG_DEBUG_SPINLOCK is not set
@@ -726,9 +743,9 @@ CONFIG_SCHED_DEBUG=y
726# CONFIG_DEBUG_VM is not set 743# CONFIG_DEBUG_VM is not set
727# CONFIG_DEBUG_LIST is not set 744# CONFIG_DEBUG_LIST is not set
728# CONFIG_DEBUG_SG is not set 745# CONFIG_DEBUG_SG is not set
729CONFIG_FORCED_INLINING=y
730# CONFIG_BOOT_PRINTK_DELAY is not set 746# CONFIG_BOOT_PRINTK_DELAY is not set
731# CONFIG_RCU_TORTURE_TEST is not set 747# CONFIG_RCU_TORTURE_TEST is not set
748# CONFIG_BACKTRACE_SELF_TEST is not set
732# CONFIG_FAULT_INJECTION is not set 749# CONFIG_FAULT_INJECTION is not set
733# CONFIG_SAMPLES is not set 750# CONFIG_SAMPLES is not set
734# CONFIG_DEBUG_STACKOVERFLOW is not set 751# CONFIG_DEBUG_STACKOVERFLOW is not set
@@ -737,6 +754,7 @@ CONFIG_FORCED_INLINING=y
737CONFIG_DEBUGGER=y 754CONFIG_DEBUGGER=y
738# CONFIG_KGDB is not set 755# CONFIG_KGDB is not set
739# CONFIG_XMON is not set 756# CONFIG_XMON is not set
757# CONFIG_VIRQ_DEBUG is not set
740# CONFIG_BDI_SWITCH is not set 758# CONFIG_BDI_SWITCH is not set
741# CONFIG_PPC_EARLY_DEBUG is not set 759# CONFIG_PPC_EARLY_DEBUG is not set
742 760
@@ -749,6 +767,7 @@ CONFIG_DEBUGGER=y
749CONFIG_CRYPTO=y 767CONFIG_CRYPTO=y
750CONFIG_CRYPTO_ALGAPI=y 768CONFIG_CRYPTO_ALGAPI=y
751CONFIG_CRYPTO_BLKCIPHER=y 769CONFIG_CRYPTO_BLKCIPHER=y
770# CONFIG_CRYPTO_SEQIV is not set
752CONFIG_CRYPTO_MANAGER=y 771CONFIG_CRYPTO_MANAGER=y
753# CONFIG_CRYPTO_HMAC is not set 772# CONFIG_CRYPTO_HMAC is not set
754# CONFIG_CRYPTO_XCBC is not set 773# CONFIG_CRYPTO_XCBC is not set
@@ -766,6 +785,9 @@ CONFIG_CRYPTO_CBC=y
766CONFIG_CRYPTO_PCBC=y 785CONFIG_CRYPTO_PCBC=y
767# CONFIG_CRYPTO_LRW is not set 786# CONFIG_CRYPTO_LRW is not set
768# CONFIG_CRYPTO_XTS is not set 787# CONFIG_CRYPTO_XTS is not set
788# CONFIG_CRYPTO_CTR is not set
789# CONFIG_CRYPTO_GCM is not set
790# CONFIG_CRYPTO_CCM is not set
769# CONFIG_CRYPTO_CRYPTD is not set 791# CONFIG_CRYPTO_CRYPTD is not set
770CONFIG_CRYPTO_DES=y 792CONFIG_CRYPTO_DES=y
771# CONFIG_CRYPTO_FCRYPT is not set 793# CONFIG_CRYPTO_FCRYPT is not set
@@ -780,11 +802,14 @@ CONFIG_CRYPTO_DES=y
780# CONFIG_CRYPTO_KHAZAD is not set 802# CONFIG_CRYPTO_KHAZAD is not set
781# CONFIG_CRYPTO_ANUBIS is not set 803# CONFIG_CRYPTO_ANUBIS is not set
782# CONFIG_CRYPTO_SEED is not set 804# CONFIG_CRYPTO_SEED is not set
805# CONFIG_CRYPTO_SALSA20 is not set
783# CONFIG_CRYPTO_DEFLATE is not set 806# CONFIG_CRYPTO_DEFLATE is not set
784# CONFIG_CRYPTO_MICHAEL_MIC is not set 807# CONFIG_CRYPTO_MICHAEL_MIC is not set
785# CONFIG_CRYPTO_CRC32C is not set 808# CONFIG_CRYPTO_CRC32C is not set
786# CONFIG_CRYPTO_CAMELLIA is not set 809# CONFIG_CRYPTO_CAMELLIA is not set
787# CONFIG_CRYPTO_TEST is not set 810# CONFIG_CRYPTO_TEST is not set
788# CONFIG_CRYPTO_AUTHENC is not set 811# CONFIG_CRYPTO_AUTHENC is not set
812# CONFIG_CRYPTO_LZO is not set
789CONFIG_CRYPTO_HW=y 813CONFIG_CRYPTO_HW=y
814# CONFIG_CRYPTO_DEV_HIFN_795X is not set
790# CONFIG_PPC_CLOCK is not set 815# CONFIG_PPC_CLOCK is not set
diff --git a/arch/powerpc/configs/walnut_defconfig b/arch/powerpc/configs/walnut_defconfig
index e431128e8e9e..3b2689e5002a 100644
--- a/arch/powerpc/configs/walnut_defconfig
+++ b/arch/powerpc/configs/walnut_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc6 3# Linux kernel version: 2.6.25-rc2
4# Mon Dec 24 11:23:58 2007 4# Fri Feb 15 21:54:12 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -26,6 +26,7 @@ CONFIG_GENERIC_TIME=y
26CONFIG_GENERIC_TIME_VSYSCALL=y 26CONFIG_GENERIC_TIME_VSYSCALL=y
27CONFIG_GENERIC_CLOCKEVENTS=y 27CONFIG_GENERIC_CLOCKEVENTS=y
28CONFIG_GENERIC_HARDIRQS=y 28CONFIG_GENERIC_HARDIRQS=y
29# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
29CONFIG_IRQ_PER_CPU=y 30CONFIG_IRQ_PER_CPU=y
30CONFIG_RWSEM_XCHGADD_ALGORITHM=y 31CONFIG_RWSEM_XCHGADD_ALGORITHM=y
31CONFIG_ARCH_HAS_ILOG2_U32=y 32CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -64,17 +65,18 @@ CONFIG_SYSVIPC_SYSCTL=y
64CONFIG_POSIX_MQUEUE=y 65CONFIG_POSIX_MQUEUE=y
65# CONFIG_BSD_PROCESS_ACCT is not set 66# CONFIG_BSD_PROCESS_ACCT is not set
66# CONFIG_TASKSTATS is not set 67# CONFIG_TASKSTATS is not set
67# CONFIG_USER_NS is not set
68# CONFIG_PID_NS is not set
69# CONFIG_AUDIT is not set 68# CONFIG_AUDIT is not set
70# CONFIG_IKCONFIG is not set 69# CONFIG_IKCONFIG is not set
71CONFIG_LOG_BUF_SHIFT=14 70CONFIG_LOG_BUF_SHIFT=14
72# CONFIG_CGROUPS is not set 71# CONFIG_CGROUPS is not set
72CONFIG_GROUP_SCHED=y
73CONFIG_FAIR_GROUP_SCHED=y 73CONFIG_FAIR_GROUP_SCHED=y
74CONFIG_FAIR_USER_SCHED=y 74# CONFIG_RT_GROUP_SCHED is not set
75# CONFIG_FAIR_CGROUP_SCHED is not set 75CONFIG_USER_SCHED=y
76# CONFIG_CGROUP_SCHED is not set
76CONFIG_SYSFS_DEPRECATED=y 77CONFIG_SYSFS_DEPRECATED=y
77# CONFIG_RELAY is not set 78# CONFIG_RELAY is not set
79# CONFIG_NAMESPACES is not set
78CONFIG_BLK_DEV_INITRD=y 80CONFIG_BLK_DEV_INITRD=y
79CONFIG_INITRAMFS_SOURCE="" 81CONFIG_INITRAMFS_SOURCE=""
80# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 82# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
@@ -88,11 +90,13 @@ CONFIG_HOTPLUG=y
88CONFIG_PRINTK=y 90CONFIG_PRINTK=y
89CONFIG_BUG=y 91CONFIG_BUG=y
90CONFIG_ELF_CORE=y 92CONFIG_ELF_CORE=y
93CONFIG_COMPAT_BRK=y
91CONFIG_BASE_FULL=y 94CONFIG_BASE_FULL=y
92CONFIG_FUTEX=y 95CONFIG_FUTEX=y
93CONFIG_ANON_INODES=y 96CONFIG_ANON_INODES=y
94CONFIG_EPOLL=y 97CONFIG_EPOLL=y
95CONFIG_SIGNALFD=y 98CONFIG_SIGNALFD=y
99CONFIG_TIMERFD=y
96CONFIG_EVENTFD=y 100CONFIG_EVENTFD=y
97CONFIG_SHMEM=y 101CONFIG_SHMEM=y
98CONFIG_VM_EVENT_COUNTERS=y 102CONFIG_VM_EVENT_COUNTERS=y
@@ -100,6 +104,13 @@ CONFIG_SLUB_DEBUG=y
100# CONFIG_SLAB is not set 104# CONFIG_SLAB is not set
101CONFIG_SLUB=y 105CONFIG_SLUB=y
102# CONFIG_SLOB is not set 106# CONFIG_SLOB is not set
107# CONFIG_PROFILING is not set
108# CONFIG_MARKERS is not set
109CONFIG_HAVE_OPROFILE=y
110# CONFIG_KPROBES is not set
111CONFIG_HAVE_KPROBES=y
112CONFIG_PROC_PAGE_MONITOR=y
113CONFIG_SLABINFO=y
103CONFIG_RT_MUTEXES=y 114CONFIG_RT_MUTEXES=y
104# CONFIG_TINY_SHMEM is not set 115# CONFIG_TINY_SHMEM is not set
105CONFIG_BASE_SMALL=0 116CONFIG_BASE_SMALL=0
@@ -127,13 +138,15 @@ CONFIG_DEFAULT_AS=y
127# CONFIG_DEFAULT_CFQ is not set 138# CONFIG_DEFAULT_CFQ is not set
128# CONFIG_DEFAULT_NOOP is not set 139# CONFIG_DEFAULT_NOOP is not set
129CONFIG_DEFAULT_IOSCHED="anticipatory" 140CONFIG_DEFAULT_IOSCHED="anticipatory"
141CONFIG_CLASSIC_RCU=y
142# CONFIG_PREEMPT_RCU is not set
130# CONFIG_PPC4xx_PCI_EXPRESS is not set 143# CONFIG_PPC4xx_PCI_EXPRESS is not set
131 144
132# 145#
133# Platform support 146# Platform support
134# 147#
135# CONFIG_PPC_MPC52xx is not set 148# CONFIG_PPC_MPC512x is not set
136# CONFIG_PPC_MPC5200 is not set 149# CONFIG_PPC_MPC5121 is not set
137# CONFIG_PPC_CELL is not set 150# CONFIG_PPC_CELL is not set
138# CONFIG_PPC_CELL_NATIVE is not set 151# CONFIG_PPC_CELL_NATIVE is not set
139# CONFIG_PQ2ADS is not set 152# CONFIG_PQ2ADS is not set
@@ -145,6 +158,7 @@ CONFIG_WALNUT=y
145CONFIG_405GP=y 158CONFIG_405GP=y
146CONFIG_IBM405_ERR77=y 159CONFIG_IBM405_ERR77=y
147CONFIG_IBM405_ERR51=y 160CONFIG_IBM405_ERR51=y
161# CONFIG_IPIC is not set
148# CONFIG_MPIC is not set 162# CONFIG_MPIC is not set
149# CONFIG_MPIC_WEIRD is not set 163# CONFIG_MPIC_WEIRD is not set
150# CONFIG_PPC_I8259 is not set 164# CONFIG_PPC_I8259 is not set
@@ -155,8 +169,8 @@ CONFIG_IBM405_ERR51=y
155# CONFIG_PPC_INDIRECT_IO is not set 169# CONFIG_PPC_INDIRECT_IO is not set
156# CONFIG_GENERIC_IOMAP is not set 170# CONFIG_GENERIC_IOMAP is not set
157# CONFIG_CPU_FREQ is not set 171# CONFIG_CPU_FREQ is not set
158# CONFIG_CPM2 is not set
159# CONFIG_FSL_ULI1575 is not set 172# CONFIG_FSL_ULI1575 is not set
173CONFIG_OF_RTC=y
160 174
161# 175#
162# Kernel options 176# Kernel options
@@ -171,13 +185,18 @@ CONFIG_HZ_250=y
171# CONFIG_HZ_300 is not set 185# CONFIG_HZ_300 is not set
172# CONFIG_HZ_1000 is not set 186# CONFIG_HZ_1000 is not set
173CONFIG_HZ=250 187CONFIG_HZ=250
188# CONFIG_SCHED_HRTICK is not set
174CONFIG_PREEMPT_NONE=y 189CONFIG_PREEMPT_NONE=y
175# CONFIG_PREEMPT_VOLUNTARY is not set 190# CONFIG_PREEMPT_VOLUNTARY is not set
176# CONFIG_PREEMPT is not set 191# CONFIG_PREEMPT is not set
192CONFIG_RCU_TRACE=y
177CONFIG_BINFMT_ELF=y 193CONFIG_BINFMT_ELF=y
178# CONFIG_BINFMT_MISC is not set 194# CONFIG_BINFMT_MISC is not set
179# CONFIG_MATH_EMULATION is not set 195# CONFIG_MATH_EMULATION is not set
196# CONFIG_IOMMU_HELPER is not set
180CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 197CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
198CONFIG_ARCH_HAS_WALK_MEMORY=y
199CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
181CONFIG_ARCH_FLATMEM_ENABLE=y 200CONFIG_ARCH_FLATMEM_ENABLE=y
182CONFIG_ARCH_POPULATES_NODE_MAP=y 201CONFIG_ARCH_POPULATES_NODE_MAP=y
183CONFIG_SELECT_MEMORY_MODEL=y 202CONFIG_SELECT_MEMORY_MODEL=y
@@ -196,11 +215,7 @@ CONFIG_VIRT_TO_BUS=y
196CONFIG_PROC_DEVICETREE=y 215CONFIG_PROC_DEVICETREE=y
197# CONFIG_CMDLINE_BOOL is not set 216# CONFIG_CMDLINE_BOOL is not set
198# CONFIG_PM is not set 217# CONFIG_PM is not set
199CONFIG_SUSPEND_UP_POSSIBLE=y
200CONFIG_HIBERNATION_UP_POSSIBLE=y
201CONFIG_SECCOMP=y 218CONFIG_SECCOMP=y
202CONFIG_WANT_DEVICE_TREE=y
203CONFIG_DEVICE_TREE="walnut.dts"
204CONFIG_ISA_DMA_API=y 219CONFIG_ISA_DMA_API=y
205 220
206# 221#
@@ -300,6 +315,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
300# 315#
301# CONFIG_NET_PKTGEN is not set 316# CONFIG_NET_PKTGEN is not set
302# CONFIG_HAMRADIO is not set 317# CONFIG_HAMRADIO is not set
318# CONFIG_CAN is not set
303# CONFIG_IRDA is not set 319# CONFIG_IRDA is not set
304# CONFIG_BT is not set 320# CONFIG_BT is not set
305# CONFIG_AF_RXRPC is not set 321# CONFIG_AF_RXRPC is not set
@@ -336,6 +352,7 @@ CONFIG_MTD=y
336CONFIG_MTD_PARTITIONS=y 352CONFIG_MTD_PARTITIONS=y
337# CONFIG_MTD_REDBOOT_PARTS is not set 353# CONFIG_MTD_REDBOOT_PARTS is not set
338CONFIG_MTD_CMDLINE_PARTS=y 354CONFIG_MTD_CMDLINE_PARTS=y
355CONFIG_MTD_OF_PARTS=y
339 356
340# 357#
341# User Modules And Translation Layers 358# User Modules And Translation Layers
@@ -422,7 +439,7 @@ CONFIG_BLK_DEV=y
422CONFIG_BLK_DEV_RAM=y 439CONFIG_BLK_DEV_RAM=y
423CONFIG_BLK_DEV_RAM_COUNT=16 440CONFIG_BLK_DEV_RAM_COUNT=16
424CONFIG_BLK_DEV_RAM_SIZE=35000 441CONFIG_BLK_DEV_RAM_SIZE=35000
425CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 442# CONFIG_BLK_DEV_XIP is not set
426# CONFIG_CDROM_PKTCDVD is not set 443# CONFIG_CDROM_PKTCDVD is not set
427# CONFIG_ATA_OVER_ETH is not set 444# CONFIG_ATA_OVER_ETH is not set
428# CONFIG_XILINX_SYSACE is not set 445# CONFIG_XILINX_SYSACE is not set
@@ -431,6 +448,8 @@ CONFIG_MISC_DEVICES=y
431# CONFIG_EEPROM_93CX6 is not set 448# CONFIG_EEPROM_93CX6 is not set
432# CONFIG_SGI_IOC4 is not set 449# CONFIG_SGI_IOC4 is not set
433# CONFIG_TIFM_CORE is not set 450# CONFIG_TIFM_CORE is not set
451# CONFIG_ENCLOSURE_SERVICES is not set
452CONFIG_HAVE_IDE=y
434# CONFIG_IDE is not set 453# CONFIG_IDE is not set
435 454
436# 455#
@@ -459,7 +478,6 @@ CONFIG_NETDEVICES=y
459# CONFIG_EQUALIZER is not set 478# CONFIG_EQUALIZER is not set
460# CONFIG_TUN is not set 479# CONFIG_TUN is not set
461# CONFIG_VETH is not set 480# CONFIG_VETH is not set
462# CONFIG_IP1000 is not set
463# CONFIG_ARCNET is not set 481# CONFIG_ARCNET is not set
464# CONFIG_PHYLIB is not set 482# CONFIG_PHYLIB is not set
465CONFIG_NET_ETHERNET=y 483CONFIG_NET_ETHERNET=y
@@ -488,6 +506,9 @@ CONFIG_NETDEV_1000=y
488# CONFIG_DL2K is not set 506# CONFIG_DL2K is not set
489# CONFIG_E1000 is not set 507# CONFIG_E1000 is not set
490# CONFIG_E1000E is not set 508# CONFIG_E1000E is not set
509# CONFIG_E1000E_ENABLED is not set
510# CONFIG_IP1000 is not set
511# CONFIG_IGB is not set
491# CONFIG_NS83820 is not set 512# CONFIG_NS83820 is not set
492# CONFIG_HAMACHI is not set 513# CONFIG_HAMACHI is not set
493# CONFIG_YELLOWFIN is not set 514# CONFIG_YELLOWFIN is not set
@@ -512,6 +533,7 @@ CONFIG_NETDEV_10000=y
512# CONFIG_NIU is not set 533# CONFIG_NIU is not set
513# CONFIG_MLX4_CORE is not set 534# CONFIG_MLX4_CORE is not set
514# CONFIG_TEHUTI is not set 535# CONFIG_TEHUTI is not set
536# CONFIG_BNX2X is not set
515# CONFIG_TR is not set 537# CONFIG_TR is not set
516 538
517# 539#
@@ -524,7 +546,6 @@ CONFIG_NETDEV_10000=y
524# CONFIG_HIPPI is not set 546# CONFIG_HIPPI is not set
525# CONFIG_PPP is not set 547# CONFIG_PPP is not set
526# CONFIG_SLIP is not set 548# CONFIG_SLIP is not set
527# CONFIG_SHAPER is not set
528# CONFIG_NETCONSOLE is not set 549# CONFIG_NETCONSOLE is not set
529# CONFIG_NETPOLL is not set 550# CONFIG_NETPOLL is not set
530# CONFIG_NET_POLL_CONTROLLER is not set 551# CONFIG_NET_POLL_CONTROLLER is not set
@@ -547,6 +568,7 @@ CONFIG_NETDEV_10000=y
547# 568#
548# CONFIG_VT is not set 569# CONFIG_VT is not set
549# CONFIG_SERIAL_NONSTANDARD is not set 570# CONFIG_SERIAL_NONSTANDARD is not set
571# CONFIG_NOZOMI is not set
550 572
551# 573#
552# Serial drivers 574# Serial drivers
@@ -592,6 +614,7 @@ CONFIG_DEVPORT=y
592# CONFIG_W1 is not set 614# CONFIG_W1 is not set
593# CONFIG_POWER_SUPPLY is not set 615# CONFIG_POWER_SUPPLY is not set
594# CONFIG_HWMON is not set 616# CONFIG_HWMON is not set
617CONFIG_THERMAL=y
595# CONFIG_WATCHDOG is not set 618# CONFIG_WATCHDOG is not set
596 619
597# 620#
@@ -640,12 +663,9 @@ CONFIG_USB_ARCH_HAS_EHCI=y
640# 663#
641# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 664# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
642# 665#
643
644#
645# USB Gadget Support
646#
647# CONFIG_USB_GADGET is not set 666# CONFIG_USB_GADGET is not set
648# CONFIG_MMC is not set 667# CONFIG_MMC is not set
668# CONFIG_MEMSTICK is not set
649# CONFIG_NEW_LEDS is not set 669# CONFIG_NEW_LEDS is not set
650# CONFIG_INFINIBAND is not set 670# CONFIG_INFINIBAND is not set
651# CONFIG_EDAC is not set 671# CONFIG_EDAC is not set
@@ -670,12 +690,10 @@ CONFIG_EXT2_FS=y
670# CONFIG_XFS_FS is not set 690# CONFIG_XFS_FS is not set
671# CONFIG_GFS2_FS is not set 691# CONFIG_GFS2_FS is not set
672# CONFIG_OCFS2_FS is not set 692# CONFIG_OCFS2_FS is not set
673# CONFIG_MINIX_FS is not set 693CONFIG_DNOTIFY=y
674# CONFIG_ROMFS_FS is not set
675CONFIG_INOTIFY=y 694CONFIG_INOTIFY=y
676CONFIG_INOTIFY_USER=y 695CONFIG_INOTIFY_USER=y
677# CONFIG_QUOTA is not set 696# CONFIG_QUOTA is not set
678CONFIG_DNOTIFY=y
679# CONFIG_AUTOFS_FS is not set 697# CONFIG_AUTOFS_FS is not set
680# CONFIG_AUTOFS4_FS is not set 698# CONFIG_AUTOFS4_FS is not set
681# CONFIG_FUSE_FS is not set 699# CONFIG_FUSE_FS is not set
@@ -718,8 +736,10 @@ CONFIG_TMPFS=y
718# CONFIG_JFFS2_FS is not set 736# CONFIG_JFFS2_FS is not set
719CONFIG_CRAMFS=y 737CONFIG_CRAMFS=y
720# CONFIG_VXFS_FS is not set 738# CONFIG_VXFS_FS is not set
739# CONFIG_MINIX_FS is not set
721# CONFIG_HPFS_FS is not set 740# CONFIG_HPFS_FS is not set
722# CONFIG_QNX4FS_FS is not set 741# CONFIG_QNX4FS_FS is not set
742# CONFIG_ROMFS_FS is not set
723# CONFIG_SYSV_FS is not set 743# CONFIG_SYSV_FS is not set
724# CONFIG_UFS_FS is not set 744# CONFIG_UFS_FS is not set
725CONFIG_NETWORK_FILESYSTEMS=y 745CONFIG_NETWORK_FILESYSTEMS=y
@@ -750,7 +770,6 @@ CONFIG_SUNRPC=y
750CONFIG_MSDOS_PARTITION=y 770CONFIG_MSDOS_PARTITION=y
751# CONFIG_NLS is not set 771# CONFIG_NLS is not set
752# CONFIG_DLM is not set 772# CONFIG_DLM is not set
753# CONFIG_UCC_SLOW is not set
754 773
755# 774#
756# Library routines 775# Library routines
@@ -767,7 +786,6 @@ CONFIG_PLIST=y
767CONFIG_HAS_IOMEM=y 786CONFIG_HAS_IOMEM=y
768CONFIG_HAS_IOPORT=y 787CONFIG_HAS_IOPORT=y
769CONFIG_HAS_DMA=y 788CONFIG_HAS_DMA=y
770# CONFIG_INSTRUMENTATION is not set
771 789
772# 790#
773# Kernel hacking 791# Kernel hacking
@@ -777,7 +795,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
777CONFIG_ENABLE_MUST_CHECK=y 795CONFIG_ENABLE_MUST_CHECK=y
778CONFIG_MAGIC_SYSRQ=y 796CONFIG_MAGIC_SYSRQ=y
779# CONFIG_UNUSED_SYMBOLS is not set 797# CONFIG_UNUSED_SYMBOLS is not set
780# CONFIG_DEBUG_FS is not set 798CONFIG_DEBUG_FS=y
781# CONFIG_HEADERS_CHECK is not set 799# CONFIG_HEADERS_CHECK is not set
782CONFIG_DEBUG_KERNEL=y 800CONFIG_DEBUG_KERNEL=y
783# CONFIG_DEBUG_SHIRQ is not set 801# CONFIG_DEBUG_SHIRQ is not set
@@ -786,6 +804,7 @@ CONFIG_SCHED_DEBUG=y
786# CONFIG_SCHEDSTATS is not set 804# CONFIG_SCHEDSTATS is not set
787# CONFIG_TIMER_STATS is not set 805# CONFIG_TIMER_STATS is not set
788# CONFIG_SLUB_DEBUG_ON is not set 806# CONFIG_SLUB_DEBUG_ON is not set
807# CONFIG_SLUB_STATS is not set
789# CONFIG_DEBUG_RT_MUTEXES is not set 808# CONFIG_DEBUG_RT_MUTEXES is not set
790# CONFIG_RT_MUTEX_TESTER is not set 809# CONFIG_RT_MUTEX_TESTER is not set
791# CONFIG_DEBUG_SPINLOCK is not set 810# CONFIG_DEBUG_SPINLOCK is not set
@@ -798,15 +817,16 @@ CONFIG_DEBUG_BUGVERBOSE=y
798# CONFIG_DEBUG_VM is not set 817# CONFIG_DEBUG_VM is not set
799# CONFIG_DEBUG_LIST is not set 818# CONFIG_DEBUG_LIST is not set
800# CONFIG_DEBUG_SG is not set 819# CONFIG_DEBUG_SG is not set
801CONFIG_FORCED_INLINING=y
802# CONFIG_BOOT_PRINTK_DELAY is not set 820# CONFIG_BOOT_PRINTK_DELAY is not set
803# CONFIG_RCU_TORTURE_TEST is not set 821# CONFIG_RCU_TORTURE_TEST is not set
822# CONFIG_BACKTRACE_SELF_TEST is not set
804# CONFIG_FAULT_INJECTION is not set 823# CONFIG_FAULT_INJECTION is not set
805# CONFIG_SAMPLES is not set 824# CONFIG_SAMPLES is not set
806# CONFIG_DEBUG_STACKOVERFLOW is not set 825# CONFIG_DEBUG_STACKOVERFLOW is not set
807# CONFIG_DEBUG_STACK_USAGE is not set 826# CONFIG_DEBUG_STACK_USAGE is not set
808# CONFIG_DEBUG_PAGEALLOC is not set 827# CONFIG_DEBUG_PAGEALLOC is not set
809# CONFIG_DEBUGGER is not set 828# CONFIG_DEBUGGER is not set
829# CONFIG_VIRQ_DEBUG is not set
810# CONFIG_BDI_SWITCH is not set 830# CONFIG_BDI_SWITCH is not set
811# CONFIG_PPC_EARLY_DEBUG is not set 831# CONFIG_PPC_EARLY_DEBUG is not set
812 832
@@ -819,6 +839,7 @@ CONFIG_FORCED_INLINING=y
819CONFIG_CRYPTO=y 839CONFIG_CRYPTO=y
820CONFIG_CRYPTO_ALGAPI=y 840CONFIG_CRYPTO_ALGAPI=y
821CONFIG_CRYPTO_BLKCIPHER=y 841CONFIG_CRYPTO_BLKCIPHER=y
842# CONFIG_CRYPTO_SEQIV is not set
822CONFIG_CRYPTO_MANAGER=y 843CONFIG_CRYPTO_MANAGER=y
823# CONFIG_CRYPTO_HMAC is not set 844# CONFIG_CRYPTO_HMAC is not set
824# CONFIG_CRYPTO_XCBC is not set 845# CONFIG_CRYPTO_XCBC is not set
@@ -836,6 +857,9 @@ CONFIG_CRYPTO_CBC=y
836CONFIG_CRYPTO_PCBC=y 857CONFIG_CRYPTO_PCBC=y
837# CONFIG_CRYPTO_LRW is not set 858# CONFIG_CRYPTO_LRW is not set
838# CONFIG_CRYPTO_XTS is not set 859# CONFIG_CRYPTO_XTS is not set
860# CONFIG_CRYPTO_CTR is not set
861# CONFIG_CRYPTO_GCM is not set
862# CONFIG_CRYPTO_CCM is not set
839# CONFIG_CRYPTO_CRYPTD is not set 863# CONFIG_CRYPTO_CRYPTD is not set
840CONFIG_CRYPTO_DES=y 864CONFIG_CRYPTO_DES=y
841# CONFIG_CRYPTO_FCRYPT is not set 865# CONFIG_CRYPTO_FCRYPT is not set
@@ -850,11 +874,14 @@ CONFIG_CRYPTO_DES=y
850# CONFIG_CRYPTO_KHAZAD is not set 874# CONFIG_CRYPTO_KHAZAD is not set
851# CONFIG_CRYPTO_ANUBIS is not set 875# CONFIG_CRYPTO_ANUBIS is not set
852# CONFIG_CRYPTO_SEED is not set 876# CONFIG_CRYPTO_SEED is not set
877# CONFIG_CRYPTO_SALSA20 is not set
853# CONFIG_CRYPTO_DEFLATE is not set 878# CONFIG_CRYPTO_DEFLATE is not set
854# CONFIG_CRYPTO_MICHAEL_MIC is not set 879# CONFIG_CRYPTO_MICHAEL_MIC is not set
855# CONFIG_CRYPTO_CRC32C is not set 880# CONFIG_CRYPTO_CRC32C is not set
856# CONFIG_CRYPTO_CAMELLIA is not set 881# CONFIG_CRYPTO_CAMELLIA is not set
857# CONFIG_CRYPTO_TEST is not set 882# CONFIG_CRYPTO_TEST is not set
858# CONFIG_CRYPTO_AUTHENC is not set 883# CONFIG_CRYPTO_AUTHENC is not set
884# CONFIG_CRYPTO_LZO is not set
859CONFIG_CRYPTO_HW=y 885CONFIG_CRYPTO_HW=y
886# CONFIG_CRYPTO_DEV_HIFN_795X is not set
860# CONFIG_PPC_CLOCK is not set 887# CONFIG_PPC_CLOCK is not set
diff --git a/arch/powerpc/configs/warp_defconfig b/arch/powerpc/configs/warp_defconfig
index 312557b5df53..2313c3e8ef61 100644
--- a/arch/powerpc/configs/warp_defconfig
+++ b/arch/powerpc/configs/warp_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc6 3# Linux kernel version: 2.6.25-rc2
4# Tue Jan 8 12:23:23 2008 4# Fri Feb 15 21:54:43 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -30,6 +30,7 @@ CONFIG_GENERIC_TIME=y
30CONFIG_GENERIC_TIME_VSYSCALL=y 30CONFIG_GENERIC_TIME_VSYSCALL=y
31CONFIG_GENERIC_CLOCKEVENTS=y 31CONFIG_GENERIC_CLOCKEVENTS=y
32CONFIG_GENERIC_HARDIRQS=y 32CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
34CONFIG_RWSEM_XCHGADD_ALGORITHM=y 35CONFIG_RWSEM_XCHGADD_ALGORITHM=y
35CONFIG_ARCH_HAS_ILOG2_U32=y 36CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -68,17 +69,18 @@ CONFIG_SYSVIPC_SYSCTL=y
68# CONFIG_POSIX_MQUEUE is not set 69# CONFIG_POSIX_MQUEUE is not set
69# CONFIG_BSD_PROCESS_ACCT is not set 70# CONFIG_BSD_PROCESS_ACCT is not set
70# CONFIG_TASKSTATS is not set 71# CONFIG_TASKSTATS is not set
71# CONFIG_USER_NS is not set
72# CONFIG_PID_NS is not set
73# CONFIG_AUDIT is not set 72# CONFIG_AUDIT is not set
74# CONFIG_IKCONFIG is not set 73# CONFIG_IKCONFIG is not set
75CONFIG_LOG_BUF_SHIFT=14 74CONFIG_LOG_BUF_SHIFT=14
76# CONFIG_CGROUPS is not set 75# CONFIG_CGROUPS is not set
76CONFIG_GROUP_SCHED=y
77CONFIG_FAIR_GROUP_SCHED=y 77CONFIG_FAIR_GROUP_SCHED=y
78CONFIG_FAIR_USER_SCHED=y 78# CONFIG_RT_GROUP_SCHED is not set
79# CONFIG_FAIR_CGROUP_SCHED is not set 79CONFIG_USER_SCHED=y
80# CONFIG_CGROUP_SCHED is not set
80CONFIG_SYSFS_DEPRECATED=y 81CONFIG_SYSFS_DEPRECATED=y
81# CONFIG_RELAY is not set 82# CONFIG_RELAY is not set
83# CONFIG_NAMESPACES is not set
82CONFIG_BLK_DEV_INITRD=y 84CONFIG_BLK_DEV_INITRD=y
83CONFIG_INITRAMFS_SOURCE="" 85CONFIG_INITRAMFS_SOURCE=""
84# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 86# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
@@ -92,17 +94,26 @@ CONFIG_KALLSYMS=y
92CONFIG_PRINTK=y 94CONFIG_PRINTK=y
93CONFIG_BUG=y 95CONFIG_BUG=y
94CONFIG_ELF_CORE=y 96CONFIG_ELF_CORE=y
97CONFIG_COMPAT_BRK=y
95CONFIG_BASE_FULL=y 98CONFIG_BASE_FULL=y
96CONFIG_FUTEX=y 99CONFIG_FUTEX=y
97CONFIG_ANON_INODES=y 100CONFIG_ANON_INODES=y
98CONFIG_EPOLL=y 101CONFIG_EPOLL=y
99CONFIG_SIGNALFD=y 102CONFIG_SIGNALFD=y
103CONFIG_TIMERFD=y
100CONFIG_EVENTFD=y 104CONFIG_EVENTFD=y
101CONFIG_SHMEM=y 105CONFIG_SHMEM=y
102CONFIG_VM_EVENT_COUNTERS=y 106CONFIG_VM_EVENT_COUNTERS=y
103CONFIG_SLAB=y 107CONFIG_SLAB=y
104# CONFIG_SLUB is not set 108# CONFIG_SLUB is not set
105# CONFIG_SLOB is not set 109# CONFIG_SLOB is not set
110# CONFIG_PROFILING is not set
111# CONFIG_MARKERS is not set
112CONFIG_HAVE_OPROFILE=y
113# CONFIG_KPROBES is not set
114CONFIG_HAVE_KPROBES=y
115CONFIG_PROC_PAGE_MONITOR=y
116CONFIG_SLABINFO=y
106CONFIG_RT_MUTEXES=y 117CONFIG_RT_MUTEXES=y
107# CONFIG_TINY_SHMEM is not set 118# CONFIG_TINY_SHMEM is not set
108CONFIG_BASE_SMALL=0 119CONFIG_BASE_SMALL=0
@@ -130,12 +141,14 @@ CONFIG_DEFAULT_AS=y
130# CONFIG_DEFAULT_CFQ is not set 141# CONFIG_DEFAULT_CFQ is not set
131# CONFIG_DEFAULT_NOOP is not set 142# CONFIG_DEFAULT_NOOP is not set
132CONFIG_DEFAULT_IOSCHED="anticipatory" 143CONFIG_DEFAULT_IOSCHED="anticipatory"
144CONFIG_CLASSIC_RCU=y
145# CONFIG_PREEMPT_RCU is not set
133 146
134# 147#
135# Platform support 148# Platform support
136# 149#
137# CONFIG_PPC_MPC52xx is not set 150# CONFIG_PPC_MPC512x is not set
138# CONFIG_PPC_MPC5200 is not set 151# CONFIG_PPC_MPC5121 is not set
139# CONFIG_PPC_CELL is not set 152# CONFIG_PPC_CELL is not set
140# CONFIG_PPC_CELL_NATIVE is not set 153# CONFIG_PPC_CELL_NATIVE is not set
141# CONFIG_PQ2ADS is not set 154# CONFIG_PQ2ADS is not set
@@ -148,6 +161,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
148CONFIG_WARP=y 161CONFIG_WARP=y
149CONFIG_440EP=y 162CONFIG_440EP=y
150CONFIG_IBM440EP_ERR42=y 163CONFIG_IBM440EP_ERR42=y
164# CONFIG_IPIC is not set
151# CONFIG_MPIC is not set 165# CONFIG_MPIC is not set
152# CONFIG_MPIC_WEIRD is not set 166# CONFIG_MPIC_WEIRD is not set
153# CONFIG_PPC_I8259 is not set 167# CONFIG_PPC_I8259 is not set
@@ -158,7 +172,6 @@ CONFIG_IBM440EP_ERR42=y
158# CONFIG_PPC_INDIRECT_IO is not set 172# CONFIG_PPC_INDIRECT_IO is not set
159# CONFIG_GENERIC_IOMAP is not set 173# CONFIG_GENERIC_IOMAP is not set
160# CONFIG_CPU_FREQ is not set 174# CONFIG_CPU_FREQ is not set
161# CONFIG_CPM2 is not set
162# CONFIG_FSL_ULI1575 is not set 175# CONFIG_FSL_ULI1575 is not set
163 176
164# 177#
@@ -174,13 +187,18 @@ CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
174# CONFIG_HZ_300 is not set 187# CONFIG_HZ_300 is not set
175CONFIG_HZ_1000=y 188CONFIG_HZ_1000=y
176CONFIG_HZ=1000 189CONFIG_HZ=1000
190# CONFIG_SCHED_HRTICK is not set
177CONFIG_PREEMPT_NONE=y 191CONFIG_PREEMPT_NONE=y
178# CONFIG_PREEMPT_VOLUNTARY is not set 192# CONFIG_PREEMPT_VOLUNTARY is not set
179# CONFIG_PREEMPT is not set 193# CONFIG_PREEMPT is not set
194CONFIG_RCU_TRACE=y
180CONFIG_BINFMT_ELF=y 195CONFIG_BINFMT_ELF=y
181# CONFIG_BINFMT_MISC is not set 196# CONFIG_BINFMT_MISC is not set
182# CONFIG_MATH_EMULATION is not set 197# CONFIG_MATH_EMULATION is not set
198# CONFIG_IOMMU_HELPER is not set
183CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 199CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
200CONFIG_ARCH_HAS_WALK_MEMORY=y
201CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
184CONFIG_ARCH_FLATMEM_ENABLE=y 202CONFIG_ARCH_FLATMEM_ENABLE=y
185CONFIG_ARCH_POPULATES_NODE_MAP=y 203CONFIG_ARCH_POPULATES_NODE_MAP=y
186CONFIG_SELECT_MEMORY_MODEL=y 204CONFIG_SELECT_MEMORY_MODEL=y
@@ -200,8 +218,6 @@ CONFIG_PROC_DEVICETREE=y
200CONFIG_CMDLINE_BOOL=y 218CONFIG_CMDLINE_BOOL=y
201CONFIG_CMDLINE="ip=on" 219CONFIG_CMDLINE="ip=on"
202CONFIG_SECCOMP=y 220CONFIG_SECCOMP=y
203CONFIG_WANT_DEVICE_TREE=y
204CONFIG_DEVICE_TREE="warp.dts"
205CONFIG_ISA_DMA_API=y 221CONFIG_ISA_DMA_API=y
206 222
207# 223#
@@ -244,6 +260,7 @@ CONFIG_XFRM=y
244# CONFIG_XFRM_USER is not set 260# CONFIG_XFRM_USER is not set
245# CONFIG_XFRM_SUB_POLICY is not set 261# CONFIG_XFRM_SUB_POLICY is not set
246# CONFIG_XFRM_MIGRATE is not set 262# CONFIG_XFRM_MIGRATE is not set
263# CONFIG_XFRM_STATISTICS is not set
247# CONFIG_NET_KEY is not set 264# CONFIG_NET_KEY is not set
248CONFIG_INET=y 265CONFIG_INET=y
249# CONFIG_IP_MULTICAST is not set 266# CONFIG_IP_MULTICAST is not set
@@ -279,12 +296,13 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
279# CONFIG_NETWORK_SECMARK is not set 296# CONFIG_NETWORK_SECMARK is not set
280CONFIG_NETFILTER=y 297CONFIG_NETFILTER=y
281# CONFIG_NETFILTER_DEBUG is not set 298# CONFIG_NETFILTER_DEBUG is not set
299CONFIG_NETFILTER_ADVANCED=y
282 300
283# 301#
284# Core Netfilter Configuration 302# Core Netfilter Configuration
285# 303#
286# CONFIG_NETFILTER_NETLINK is not set 304# CONFIG_NETFILTER_NETLINK_QUEUE is not set
287# CONFIG_NF_CONNTRACK_ENABLED is not set 305# CONFIG_NETFILTER_NETLINK_LOG is not set
288# CONFIG_NF_CONNTRACK is not set 306# CONFIG_NF_CONNTRACK is not set
289# CONFIG_NETFILTER_XTABLES is not set 307# CONFIG_NETFILTER_XTABLES is not set
290 308
@@ -315,6 +333,7 @@ CONFIG_VLAN_8021Q=y
315# 333#
316# CONFIG_NET_PKTGEN is not set 334# CONFIG_NET_PKTGEN is not set
317# CONFIG_HAMRADIO is not set 335# CONFIG_HAMRADIO is not set
336# CONFIG_CAN is not set
318# CONFIG_IRDA is not set 337# CONFIG_IRDA is not set
319# CONFIG_BT is not set 338# CONFIG_BT is not set
320# CONFIG_AF_RXRPC is not set 339# CONFIG_AF_RXRPC is not set
@@ -348,6 +367,7 @@ CONFIG_MTD=y
348CONFIG_MTD_PARTITIONS=y 367CONFIG_MTD_PARTITIONS=y
349# CONFIG_MTD_REDBOOT_PARTS is not set 368# CONFIG_MTD_REDBOOT_PARTS is not set
350# CONFIG_MTD_CMDLINE_PARTS is not set 369# CONFIG_MTD_CMDLINE_PARTS is not set
370CONFIG_MTD_OF_PARTS=y
351 371
352# 372#
353# User Modules And Translation Layers 373# User Modules And Translation Layers
@@ -414,11 +434,11 @@ CONFIG_MTD_NAND=y
414CONFIG_MTD_NAND_ECC_SMC=y 434CONFIG_MTD_NAND_ECC_SMC=y
415# CONFIG_MTD_NAND_MUSEUM_IDS is not set 435# CONFIG_MTD_NAND_MUSEUM_IDS is not set
416CONFIG_MTD_NAND_IDS=y 436CONFIG_MTD_NAND_IDS=y
417CONFIG_MTD_NAND_NDFC=y
418# CONFIG_MTD_NAND_DISKONCHIP is not set 437# CONFIG_MTD_NAND_DISKONCHIP is not set
419# CONFIG_MTD_NAND_NANDSIM is not set 438# CONFIG_MTD_NAND_NANDSIM is not set
420# CONFIG_MTD_NAND_PLATFORM is not set 439# CONFIG_MTD_NAND_PLATFORM is not set
421# CONFIG_MTD_ALAUDA is not set 440# CONFIG_MTD_ALAUDA is not set
441# CONFIG_MTD_NAND_FSL_ELBC is not set
422# CONFIG_MTD_ONENAND is not set 442# CONFIG_MTD_ONENAND is not set
423 443
424# 444#
@@ -436,12 +456,14 @@ CONFIG_BLK_DEV=y
436CONFIG_BLK_DEV_RAM=y 456CONFIG_BLK_DEV_RAM=y
437CONFIG_BLK_DEV_RAM_COUNT=16 457CONFIG_BLK_DEV_RAM_COUNT=16
438CONFIG_BLK_DEV_RAM_SIZE=4096 458CONFIG_BLK_DEV_RAM_SIZE=4096
439CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 459# CONFIG_BLK_DEV_XIP is not set
440# CONFIG_CDROM_PKTCDVD is not set 460# CONFIG_CDROM_PKTCDVD is not set
441# CONFIG_ATA_OVER_ETH is not set 461# CONFIG_ATA_OVER_ETH is not set
442# CONFIG_XILINX_SYSACE is not set 462# CONFIG_XILINX_SYSACE is not set
443CONFIG_MISC_DEVICES=y 463CONFIG_MISC_DEVICES=y
444# CONFIG_EEPROM_93CX6 is not set 464# CONFIG_EEPROM_93CX6 is not set
465# CONFIG_ENCLOSURE_SERVICES is not set
466CONFIG_HAVE_IDE=y
445# CONFIG_IDE is not set 467# CONFIG_IDE is not set
446 468
447# 469#
@@ -471,7 +493,7 @@ CONFIG_BLK_DEV_SD=y
471# CONFIG_SCSI_CONSTANTS is not set 493# CONFIG_SCSI_CONSTANTS is not set
472# CONFIG_SCSI_LOGGING is not set 494# CONFIG_SCSI_LOGGING is not set
473# CONFIG_SCSI_SCAN_ASYNC is not set 495# CONFIG_SCSI_SCAN_ASYNC is not set
474# CONFIG_SCSI_WAIT_SCAN is not set 496CONFIG_SCSI_WAIT_SCAN=m
475 497
476# 498#
477# SCSI Transports 499# SCSI Transports
@@ -528,7 +550,6 @@ CONFIG_IBM_NEW_EMAC_ZMII=y
528# CONFIG_WAN is not set 550# CONFIG_WAN is not set
529# CONFIG_PPP is not set 551# CONFIG_PPP is not set
530# CONFIG_SLIP is not set 552# CONFIG_SLIP is not set
531# CONFIG_SHAPER is not set
532# CONFIG_NETCONSOLE is not set 553# CONFIG_NETCONSOLE is not set
533# CONFIG_NETPOLL is not set 554# CONFIG_NETPOLL is not set
534# CONFIG_NET_POLL_CONTROLLER is not set 555# CONFIG_NET_POLL_CONTROLLER is not set
@@ -596,7 +617,6 @@ CONFIG_I2C_BOARDINFO=y
596# 617#
597# I2C Hardware Bus support 618# I2C Hardware Bus support
598# 619#
599CONFIG_I2C_IBM_IIC=y
600# CONFIG_I2C_MPC is not set 620# CONFIG_I2C_MPC is not set
601# CONFIG_I2C_OCORES is not set 621# CONFIG_I2C_OCORES is not set
602# CONFIG_I2C_PARPORT_LIGHT is not set 622# CONFIG_I2C_PARPORT_LIGHT is not set
@@ -608,14 +628,12 @@ CONFIG_I2C_IBM_IIC=y
608# 628#
609# Miscellaneous I2C Chip support 629# Miscellaneous I2C Chip support
610# 630#
611# CONFIG_SENSORS_DS1337 is not set
612# CONFIG_SENSORS_DS1374 is not set
613# CONFIG_DS1682 is not set 631# CONFIG_DS1682 is not set
614CONFIG_SENSORS_EEPROM=y 632CONFIG_SENSORS_EEPROM=y
615# CONFIG_SENSORS_PCF8574 is not set 633# CONFIG_SENSORS_PCF8574 is not set
616# CONFIG_SENSORS_PCA9539 is not set 634# CONFIG_PCF8575 is not set
617# CONFIG_SENSORS_PCF8591 is not set 635# CONFIG_SENSORS_PCF8591 is not set
618# CONFIG_SENSORS_M41T00 is not set 636# CONFIG_TPS65010 is not set
619# CONFIG_SENSORS_MAX6875 is not set 637# CONFIG_SENSORS_MAX6875 is not set
620# CONFIG_SENSORS_TSL2550 is not set 638# CONFIG_SENSORS_TSL2550 is not set
621# CONFIG_I2C_DEBUG_CORE is not set 639# CONFIG_I2C_DEBUG_CORE is not set
@@ -632,7 +650,6 @@ CONFIG_SENSORS_EEPROM=y
632# CONFIG_POWER_SUPPLY is not set 650# CONFIG_POWER_SUPPLY is not set
633CONFIG_HWMON=y 651CONFIG_HWMON=y
634# CONFIG_HWMON_VID is not set 652# CONFIG_HWMON_VID is not set
635CONFIG_SENSORS_AD7414=y
636# CONFIG_SENSORS_AD7418 is not set 653# CONFIG_SENSORS_AD7418 is not set
637# CONFIG_SENSORS_ADM1021 is not set 654# CONFIG_SENSORS_ADM1021 is not set
638# CONFIG_SENSORS_ADM1025 is not set 655# CONFIG_SENSORS_ADM1025 is not set
@@ -668,6 +685,7 @@ CONFIG_SENSORS_AD7414=y
668# CONFIG_SENSORS_SMSC47M1 is not set 685# CONFIG_SENSORS_SMSC47M1 is not set
669# CONFIG_SENSORS_SMSC47M192 is not set 686# CONFIG_SENSORS_SMSC47M192 is not set
670# CONFIG_SENSORS_SMSC47B397 is not set 687# CONFIG_SENSORS_SMSC47B397 is not set
688# CONFIG_SENSORS_ADS7828 is not set
671# CONFIG_SENSORS_THMC50 is not set 689# CONFIG_SENSORS_THMC50 is not set
672# CONFIG_SENSORS_VT1211 is not set 690# CONFIG_SENSORS_VT1211 is not set
673# CONFIG_SENSORS_W83781D is not set 691# CONFIG_SENSORS_W83781D is not set
@@ -675,9 +693,11 @@ CONFIG_SENSORS_AD7414=y
675# CONFIG_SENSORS_W83792D is not set 693# CONFIG_SENSORS_W83792D is not set
676# CONFIG_SENSORS_W83793 is not set 694# CONFIG_SENSORS_W83793 is not set
677# CONFIG_SENSORS_W83L785TS is not set 695# CONFIG_SENSORS_W83L785TS is not set
696# CONFIG_SENSORS_W83L786NG is not set
678# CONFIG_SENSORS_W83627HF is not set 697# CONFIG_SENSORS_W83627HF is not set
679# CONFIG_SENSORS_W83627EHF is not set 698# CONFIG_SENSORS_W83627EHF is not set
680# CONFIG_HWMON_DEBUG_CHIP is not set 699# CONFIG_HWMON_DEBUG_CHIP is not set
700CONFIG_THERMAL=y
681# CONFIG_WATCHDOG is not set 701# CONFIG_WATCHDOG is not set
682 702
683# 703#
@@ -721,6 +741,7 @@ CONFIG_USB_ARCH_HAS_OHCI=y
721# CONFIG_USB_ARCH_HAS_EHCI is not set 741# CONFIG_USB_ARCH_HAS_EHCI is not set
722CONFIG_USB=y 742CONFIG_USB=y
723# CONFIG_USB_DEBUG is not set 743# CONFIG_USB_DEBUG is not set
744# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
724 745
725# 746#
726# Miscellaneous USB options 747# Miscellaneous USB options
@@ -781,10 +802,6 @@ CONFIG_USB_MON=y
781# 802#
782# USB port drivers 803# USB port drivers
783# 804#
784
785#
786# USB Serial Converter support
787#
788# CONFIG_USB_SERIAL is not set 805# CONFIG_USB_SERIAL is not set
789 806
790# 807#
@@ -808,14 +825,6 @@ CONFIG_USB_MON=y
808# CONFIG_USB_LD is not set 825# CONFIG_USB_LD is not set
809# CONFIG_USB_TRANCEVIBRATOR is not set 826# CONFIG_USB_TRANCEVIBRATOR is not set
810# CONFIG_USB_IOWARRIOR is not set 827# CONFIG_USB_IOWARRIOR is not set
811
812#
813# USB DSL modem support
814#
815
816#
817# USB Gadget Support
818#
819# CONFIG_USB_GADGET is not set 828# CONFIG_USB_GADGET is not set
820CONFIG_MMC=m 829CONFIG_MMC=m
821# CONFIG_MMC_DEBUG is not set 830# CONFIG_MMC_DEBUG is not set
@@ -832,6 +841,7 @@ CONFIG_MMC_BLOCK_BOUNCE=y
832# MMC/SD Host Controller Drivers 841# MMC/SD Host Controller Drivers
833# 842#
834# CONFIG_MMC_WBSD is not set 843# CONFIG_MMC_WBSD is not set
844# CONFIG_MEMSTICK is not set
835# CONFIG_NEW_LEDS is not set 845# CONFIG_NEW_LEDS is not set
836# CONFIG_EDAC is not set 846# CONFIG_EDAC is not set
837# CONFIG_RTC_CLASS is not set 847# CONFIG_RTC_CLASS is not set
@@ -855,12 +865,10 @@ CONFIG_EXT2_FS=y
855# CONFIG_XFS_FS is not set 865# CONFIG_XFS_FS is not set
856# CONFIG_GFS2_FS is not set 866# CONFIG_GFS2_FS is not set
857# CONFIG_OCFS2_FS is not set 867# CONFIG_OCFS2_FS is not set
858# CONFIG_MINIX_FS is not set 868CONFIG_DNOTIFY=y
859# CONFIG_ROMFS_FS is not set
860CONFIG_INOTIFY=y 869CONFIG_INOTIFY=y
861CONFIG_INOTIFY_USER=y 870CONFIG_INOTIFY_USER=y
862# CONFIG_QUOTA is not set 871# CONFIG_QUOTA is not set
863CONFIG_DNOTIFY=y
864# CONFIG_AUTOFS_FS is not set 872# CONFIG_AUTOFS_FS is not set
865# CONFIG_AUTOFS4_FS is not set 873# CONFIG_AUTOFS4_FS is not set
866# CONFIG_FUSE_FS is not set 874# CONFIG_FUSE_FS is not set
@@ -915,8 +923,10 @@ CONFIG_JFFS2_RTIME=y
915# CONFIG_JFFS2_RUBIN is not set 923# CONFIG_JFFS2_RUBIN is not set
916CONFIG_CRAMFS=y 924CONFIG_CRAMFS=y
917# CONFIG_VXFS_FS is not set 925# CONFIG_VXFS_FS is not set
926# CONFIG_MINIX_FS is not set
918# CONFIG_HPFS_FS is not set 927# CONFIG_HPFS_FS is not set
919# CONFIG_QNX4FS_FS is not set 928# CONFIG_QNX4FS_FS is not set
929# CONFIG_ROMFS_FS is not set
920# CONFIG_SYSV_FS is not set 930# CONFIG_SYSV_FS is not set
921# CONFIG_UFS_FS is not set 931# CONFIG_UFS_FS is not set
922CONFIG_NETWORK_FILESYSTEMS=y 932CONFIG_NETWORK_FILESYSTEMS=y
@@ -986,7 +996,6 @@ CONFIG_NLS_ISO8859_15=y
986# CONFIG_NLS_KOI8_U is not set 996# CONFIG_NLS_KOI8_U is not set
987CONFIG_NLS_UTF8=y 997CONFIG_NLS_UTF8=y
988# CONFIG_DLM is not set 998# CONFIG_DLM is not set
989# CONFIG_UCC_SLOW is not set
990 999
991# 1000#
992# Library routines 1001# Library routines
@@ -1004,7 +1013,6 @@ CONFIG_PLIST=y
1004CONFIG_HAS_IOMEM=y 1013CONFIG_HAS_IOMEM=y
1005CONFIG_HAS_IOPORT=y 1014CONFIG_HAS_IOPORT=y
1006CONFIG_HAS_DMA=y 1015CONFIG_HAS_DMA=y
1007# CONFIG_INSTRUMENTATION is not set
1008 1016
1009# 1017#
1010# Kernel hacking 1018# Kernel hacking
@@ -1014,7 +1022,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
1014CONFIG_ENABLE_MUST_CHECK=y 1022CONFIG_ENABLE_MUST_CHECK=y
1015CONFIG_MAGIC_SYSRQ=y 1023CONFIG_MAGIC_SYSRQ=y
1016# CONFIG_UNUSED_SYMBOLS is not set 1024# CONFIG_UNUSED_SYMBOLS is not set
1017# CONFIG_DEBUG_FS is not set 1025CONFIG_DEBUG_FS=y
1018# CONFIG_HEADERS_CHECK is not set 1026# CONFIG_HEADERS_CHECK is not set
1019CONFIG_DEBUG_KERNEL=y 1027CONFIG_DEBUG_KERNEL=y
1020# CONFIG_DEBUG_SHIRQ is not set 1028# CONFIG_DEBUG_SHIRQ is not set
@@ -1035,15 +1043,16 @@ CONFIG_DEBUG_INFO=y
1035# CONFIG_DEBUG_VM is not set 1043# CONFIG_DEBUG_VM is not set
1036# CONFIG_DEBUG_LIST is not set 1044# CONFIG_DEBUG_LIST is not set
1037# CONFIG_DEBUG_SG is not set 1045# CONFIG_DEBUG_SG is not set
1038CONFIG_FORCED_INLINING=y
1039# CONFIG_BOOT_PRINTK_DELAY is not set 1046# CONFIG_BOOT_PRINTK_DELAY is not set
1040# CONFIG_RCU_TORTURE_TEST is not set 1047# CONFIG_RCU_TORTURE_TEST is not set
1048# CONFIG_BACKTRACE_SELF_TEST is not set
1041# CONFIG_FAULT_INJECTION is not set 1049# CONFIG_FAULT_INJECTION is not set
1042# CONFIG_SAMPLES is not set 1050# CONFIG_SAMPLES is not set
1043# CONFIG_DEBUG_STACKOVERFLOW is not set 1051# CONFIG_DEBUG_STACKOVERFLOW is not set
1044# CONFIG_DEBUG_STACK_USAGE is not set 1052# CONFIG_DEBUG_STACK_USAGE is not set
1045# CONFIG_DEBUG_PAGEALLOC is not set 1053# CONFIG_DEBUG_PAGEALLOC is not set
1046# CONFIG_DEBUGGER is not set 1054# CONFIG_DEBUGGER is not set
1055# CONFIG_VIRQ_DEBUG is not set
1047CONFIG_BDI_SWITCH=y 1056CONFIG_BDI_SWITCH=y
1048# CONFIG_PPC_EARLY_DEBUG is not set 1057# CONFIG_PPC_EARLY_DEBUG is not set
1049 1058
@@ -1053,5 +1062,49 @@ CONFIG_BDI_SWITCH=y
1053# CONFIG_KEYS is not set 1062# CONFIG_KEYS is not set
1054# CONFIG_SECURITY is not set 1063# CONFIG_SECURITY is not set
1055# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1064# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1056# CONFIG_CRYPTO is not set 1065CONFIG_CRYPTO=y
1066# CONFIG_CRYPTO_SEQIV is not set
1067# CONFIG_CRYPTO_MANAGER is not set
1068# CONFIG_CRYPTO_HMAC is not set
1069# CONFIG_CRYPTO_XCBC is not set
1070# CONFIG_CRYPTO_NULL is not set
1071# CONFIG_CRYPTO_MD4 is not set
1072# CONFIG_CRYPTO_MD5 is not set
1073# CONFIG_CRYPTO_SHA1 is not set
1074# CONFIG_CRYPTO_SHA256 is not set
1075# CONFIG_CRYPTO_SHA512 is not set
1076# CONFIG_CRYPTO_WP512 is not set
1077# CONFIG_CRYPTO_TGR192 is not set
1078# CONFIG_CRYPTO_GF128MUL is not set
1079# CONFIG_CRYPTO_ECB is not set
1080# CONFIG_CRYPTO_CBC is not set
1081# CONFIG_CRYPTO_PCBC is not set
1082# CONFIG_CRYPTO_LRW is not set
1083# CONFIG_CRYPTO_XTS is not set
1084# CONFIG_CRYPTO_CTR is not set
1085# CONFIG_CRYPTO_GCM is not set
1086# CONFIG_CRYPTO_CCM is not set
1087# CONFIG_CRYPTO_CRYPTD is not set
1088# CONFIG_CRYPTO_DES is not set
1089# CONFIG_CRYPTO_FCRYPT is not set
1090# CONFIG_CRYPTO_BLOWFISH is not set
1091# CONFIG_CRYPTO_TWOFISH is not set
1092# CONFIG_CRYPTO_SERPENT is not set
1093# CONFIG_CRYPTO_AES is not set
1094# CONFIG_CRYPTO_CAST5 is not set
1095# CONFIG_CRYPTO_CAST6 is not set
1096# CONFIG_CRYPTO_TEA is not set
1097# CONFIG_CRYPTO_ARC4 is not set
1098# CONFIG_CRYPTO_KHAZAD is not set
1099# CONFIG_CRYPTO_ANUBIS is not set
1100# CONFIG_CRYPTO_SEED is not set
1101# CONFIG_CRYPTO_SALSA20 is not set
1102# CONFIG_CRYPTO_DEFLATE is not set
1103# CONFIG_CRYPTO_MICHAEL_MIC is not set
1104# CONFIG_CRYPTO_CRC32C is not set
1105# CONFIG_CRYPTO_CAMELLIA is not set
1106# CONFIG_CRYPTO_TEST is not set
1107# CONFIG_CRYPTO_AUTHENC is not set
1108# CONFIG_CRYPTO_LZO is not set
1109CONFIG_CRYPTO_HW=y
1057# CONFIG_PPC_CLOCK is not set 1110# CONFIG_PPC_CLOCK is not set
diff --git a/arch/powerpc/kernel/kprobes.c b/arch/powerpc/kernel/kprobes.c
index 5338e4855712..c176c513566b 100644
--- a/arch/powerpc/kernel/kprobes.c
+++ b/arch/powerpc/kernel/kprobes.c
@@ -274,7 +274,7 @@ no_kprobe:
274 * - When the probed function returns, this probe 274 * - When the probed function returns, this probe
275 * causes the handlers to fire 275 * causes the handlers to fire
276 */ 276 */
277void kretprobe_trampoline_holder(void) 277static void __used kretprobe_trampoline_holder(void)
278{ 278{
279 asm volatile(".global kretprobe_trampoline\n" 279 asm volatile(".global kretprobe_trampoline\n"
280 "kretprobe_trampoline:\n" 280 "kretprobe_trampoline:\n"
@@ -284,7 +284,8 @@ void kretprobe_trampoline_holder(void)
284/* 284/*
285 * Called when the probe at kretprobe trampoline is hit 285 * Called when the probe at kretprobe trampoline is hit
286 */ 286 */
287int __kprobes trampoline_probe_handler(struct kprobe *p, struct pt_regs *regs) 287static int __kprobes trampoline_probe_handler(struct kprobe *p,
288 struct pt_regs *regs)
288{ 289{
289 struct kretprobe_instance *ri = NULL; 290 struct kretprobe_instance *ri = NULL;
290 struct hlist_head *head, empty_rp; 291 struct hlist_head *head, empty_rp;
@@ -517,12 +518,12 @@ int __kprobes setjmp_pre_handler(struct kprobe *p, struct pt_regs *regs)
517 return 1; 518 return 1;
518} 519}
519 520
520void __kprobes jprobe_return(void) 521void __used __kprobes jprobe_return(void)
521{ 522{
522 asm volatile("trap" ::: "memory"); 523 asm volatile("trap" ::: "memory");
523} 524}
524 525
525void __kprobes jprobe_return_end(void) 526static void __used __kprobes jprobe_return_end(void)
526{ 527{
527}; 528};
528 529
diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c
index 8b5efbce8d90..eac97f48b9b8 100644
--- a/arch/powerpc/kernel/prom.c
+++ b/arch/powerpc/kernel/prom.c
@@ -865,12 +865,12 @@ static int __init early_init_dt_scan_root(unsigned long node,
865 return 1; 865 return 1;
866} 866}
867 867
868static unsigned long __init dt_mem_next_cell(int s, cell_t **cellp) 868static u64 __init dt_mem_next_cell(int s, cell_t **cellp)
869{ 869{
870 cell_t *p = *cellp; 870 cell_t *p = *cellp;
871 871
872 *cellp = p + s; 872 *cellp = p + s;
873 return of_read_ulong(p, s); 873 return of_read_number(p, s);
874} 874}
875 875
876#ifdef CONFIG_PPC_PSERIES 876#ifdef CONFIG_PPC_PSERIES
@@ -883,8 +883,8 @@ static unsigned long __init dt_mem_next_cell(int s, cell_t **cellp)
883static int __init early_init_dt_scan_drconf_memory(unsigned long node) 883static int __init early_init_dt_scan_drconf_memory(unsigned long node)
884{ 884{
885 cell_t *dm, *ls; 885 cell_t *dm, *ls;
886 unsigned long l, n; 886 unsigned long l, n, flags;
887 unsigned long base, size, lmb_size, flags; 887 u64 base, size, lmb_size;
888 888
889 ls = (cell_t *)of_get_flat_dt_prop(node, "ibm,lmb-size", &l); 889 ls = (cell_t *)of_get_flat_dt_prop(node, "ibm,lmb-size", &l);
890 if (ls == NULL || l < dt_root_size_cells * sizeof(cell_t)) 890 if (ls == NULL || l < dt_root_size_cells * sizeof(cell_t))
@@ -959,14 +959,15 @@ static int __init early_init_dt_scan_memory(unsigned long node,
959 uname, l, reg[0], reg[1], reg[2], reg[3]); 959 uname, l, reg[0], reg[1], reg[2], reg[3]);
960 960
961 while ((endp - reg) >= (dt_root_addr_cells + dt_root_size_cells)) { 961 while ((endp - reg) >= (dt_root_addr_cells + dt_root_size_cells)) {
962 unsigned long base, size; 962 u64 base, size;
963 963
964 base = dt_mem_next_cell(dt_root_addr_cells, &reg); 964 base = dt_mem_next_cell(dt_root_addr_cells, &reg);
965 size = dt_mem_next_cell(dt_root_size_cells, &reg); 965 size = dt_mem_next_cell(dt_root_size_cells, &reg);
966 966
967 if (size == 0) 967 if (size == 0)
968 continue; 968 continue;
969 DBG(" - %lx , %lx\n", base, size); 969 DBG(" - %llx , %llx\n", (unsigned long long)base,
970 (unsigned long long)size);
970#ifdef CONFIG_PPC64 971#ifdef CONFIG_PPC64
971 if (iommu_is_off) { 972 if (iommu_is_off) {
972 if (base >= 0x80000000ul) 973 if (base >= 0x80000000ul)
diff --git a/arch/powerpc/platforms/44x/Kconfig b/arch/powerpc/platforms/44x/Kconfig
index c062c4cbbed5..1bfb2191010a 100644
--- a/arch/powerpc/platforms/44x/Kconfig
+++ b/arch/powerpc/platforms/44x/Kconfig
@@ -61,7 +61,7 @@ config WARP
61 select 440EP 61 select 440EP
62 help 62 help
63 This option enables support for the PIKA Warp(tm) Appliance. The Warp 63 This option enables support for the PIKA Warp(tm) Appliance. The Warp
64 is a small computer replacement with up to 9 ports of FXO/FXS plus VOIP 64 is a small computer replacement with up to 9 ports of FXO/FXS plus VOIP
65 stations and trunks. 65 stations and trunks.
66 66
67 See http://www.pikatechnologies.com/ and follow the "PIKA for Computer 67 See http://www.pikatechnologies.com/ and follow the "PIKA for Computer
@@ -110,17 +110,17 @@ config 440GP
110 110
111config 440GX 111config 440GX
112 bool 112 bool
113 select IBM_NEW_EMAC_EMAC4 113 select IBM_NEW_EMAC_EMAC4
114 select IBM_NEW_EMAC_RGMII 114 select IBM_NEW_EMAC_RGMII
115 select IBM_NEW_EMAC_ZMII #test only 115 select IBM_NEW_EMAC_ZMII #test only
116 select IBM_NEW_EMAC_TAH #test only 116 select IBM_NEW_EMAC_TAH #test only
117 117
118config 440SP 118config 440SP
119 bool 119 bool
120 120
121config 440SPe 121config 440SPe
122 select IBM_NEW_EMAC_EMAC4
123 bool 122 bool
123 select IBM_NEW_EMAC_EMAC4
124 124
125# 44x errata/workaround config symbols, selected by the CPU models above 125# 44x errata/workaround config symbols, selected by the CPU models above
126config IBM440EP_ERR42 126config IBM440EP_ERR42
diff --git a/arch/powerpc/platforms/cell/spu_base.c b/arch/powerpc/platforms/cell/spu_base.c
index e45cfa84911f..87eb07f94c5f 100644
--- a/arch/powerpc/platforms/cell/spu_base.c
+++ b/arch/powerpc/platforms/cell/spu_base.c
@@ -160,13 +160,6 @@ static int __spu_trap_data_seg(struct spu *spu, unsigned long ea)
160 160
161 pr_debug("%s\n", __FUNCTION__); 161 pr_debug("%s\n", __FUNCTION__);
162 162
163 if (test_bit(SPU_CONTEXT_SWITCH_ACTIVE, &spu->flags)) {
164 /* SLBs are pre-loaded for context switch, so
165 * we should never get here!
166 */
167 printk("%s: invalid access during switch!\n", __func__);
168 return 1;
169 }
170 slb.esid = (ea & ESID_MASK) | SLB_ESID_V; 163 slb.esid = (ea & ESID_MASK) | SLB_ESID_V;
171 164
172 switch(REGION_ID(ea)) { 165 switch(REGION_ID(ea)) {
@@ -226,11 +219,6 @@ static int __spu_trap_data_map(struct spu *spu, unsigned long ea, u64 dsisr)
226 return 0; 219 return 0;
227 } 220 }
228 221
229 if (test_bit(SPU_CONTEXT_SWITCH_ACTIVE, &spu->flags)) {
230 printk("%s: invalid access during switch!\n", __func__);
231 return 1;
232 }
233
234 spu->class_0_pending = 0; 222 spu->class_0_pending = 0;
235 spu->dar = ea; 223 spu->dar = ea;
236 spu->dsisr = dsisr; 224 spu->dsisr = dsisr;
diff --git a/arch/powerpc/platforms/cell/spufs/run.c b/arch/powerpc/platforms/cell/spufs/run.c
index fca22e18069a..6221968c2a3c 100644
--- a/arch/powerpc/platforms/cell/spufs/run.c
+++ b/arch/powerpc/platforms/cell/spufs/run.c
@@ -234,6 +234,7 @@ static int spu_run_fini(struct spu_context *ctx, u32 *npc,
234 *npc = ctx->ops->npc_read(ctx); 234 *npc = ctx->ops->npc_read(ctx);
235 235
236 spuctx_switch_state(ctx, SPU_UTIL_IDLE_LOADED); 236 spuctx_switch_state(ctx, SPU_UTIL_IDLE_LOADED);
237 ctx->policy = SCHED_IDLE;
237 spu_release(ctx); 238 spu_release(ctx);
238 239
239 if (signal_pending(current)) 240 if (signal_pending(current))
diff --git a/arch/powerpc/platforms/cell/spufs/sched.c b/arch/powerpc/platforms/cell/spufs/sched.c
index 5915343e2599..3a5972117de7 100644
--- a/arch/powerpc/platforms/cell/spufs/sched.c
+++ b/arch/powerpc/platforms/cell/spufs/sched.c
@@ -856,21 +856,18 @@ static noinline void spusched_tick(struct spu_context *ctx)
856{ 856{
857 struct spu_context *new = NULL; 857 struct spu_context *new = NULL;
858 struct spu *spu = NULL; 858 struct spu *spu = NULL;
859 u32 status;
860 859
861 if (spu_acquire(ctx)) 860 if (spu_acquire(ctx))
862 BUG(); /* a kernel thread never has signals pending */ 861 BUG(); /* a kernel thread never has signals pending */
863 862
864 if (ctx->state != SPU_STATE_RUNNABLE) 863 if (ctx->state != SPU_STATE_RUNNABLE)
865 goto out; 864 goto out;
866 if (spu_stopped(ctx, &status))
867 goto out;
868 if (ctx->flags & SPU_CREATE_NOSCHED) 865 if (ctx->flags & SPU_CREATE_NOSCHED)
869 goto out; 866 goto out;
870 if (ctx->policy == SCHED_FIFO) 867 if (ctx->policy == SCHED_FIFO)
871 goto out; 868 goto out;
872 869
873 if (--ctx->time_slice) 870 if (--ctx->time_slice && ctx->policy != SCHED_IDLE)
874 goto out; 871 goto out;
875 872
876 spu = ctx->spu; 873 spu = ctx->spu;
@@ -880,7 +877,8 @@ static noinline void spusched_tick(struct spu_context *ctx)
880 new = grab_runnable_context(ctx->prio + 1, spu->node); 877 new = grab_runnable_context(ctx->prio + 1, spu->node);
881 if (new) { 878 if (new) {
882 spu_unschedule(spu, ctx); 879 spu_unschedule(spu, ctx);
883 spu_add_to_rq(ctx); 880 if (ctx->policy != SCHED_IDLE)
881 spu_add_to_rq(ctx);
884 } else { 882 } else {
885 spu_context_nospu_trace(spusched_tick__newslice, ctx); 883 spu_context_nospu_trace(spusched_tick__newslice, ctx);
886 ctx->time_slice++; 884 ctx->time_slice++;
diff --git a/arch/powerpc/platforms/cell/spufs/switch.c b/arch/powerpc/platforms/cell/spufs/switch.c
index 6063c88c26d2..6f5886c7b1f9 100644
--- a/arch/powerpc/platforms/cell/spufs/switch.c
+++ b/arch/powerpc/platforms/cell/spufs/switch.c
@@ -720,8 +720,9 @@ static inline void set_switch_active(struct spu_state *csa, struct spu *spu)
720 * Restore, Step 23. 720 * Restore, Step 23.
721 * Change the software context switch pending flag 721 * Change the software context switch pending flag
722 * to context switch active. 722 * to context switch active.
723 *
724 * This implementation does not uses a switch active flag.
723 */ 725 */
724 set_bit(SPU_CONTEXT_SWITCH_ACTIVE, &spu->flags);
725 clear_bit(SPU_CONTEXT_SWITCH_PENDING, &spu->flags); 726 clear_bit(SPU_CONTEXT_SWITCH_PENDING, &spu->flags);
726 mb(); 727 mb();
727} 728}
@@ -1739,9 +1740,8 @@ static inline void reset_switch_active(struct spu_state *csa, struct spu *spu)
1739{ 1740{
1740 /* Restore, Step 74: 1741 /* Restore, Step 74:
1741 * Reset the "context switch active" flag. 1742 * Reset the "context switch active" flag.
1743 * Not performed by this implementation.
1742 */ 1744 */
1743 clear_bit(SPU_CONTEXT_SWITCH_ACTIVE, &spu->flags);
1744 mb();
1745} 1745}
1746 1746
1747static inline void reenable_interrupts(struct spu_state *csa, struct spu *spu) 1747static inline void reenable_interrupts(struct spu_state *csa, struct spu *spu)
diff --git a/arch/powerpc/platforms/pasemi/Makefile b/arch/powerpc/platforms/pasemi/Makefile
index 8f52d7515793..ce6d789e0741 100644
--- a/arch/powerpc/platforms/pasemi/Makefile
+++ b/arch/powerpc/platforms/pasemi/Makefile
@@ -1,3 +1,3 @@
1obj-y += setup.o pci.o time.o idle.o powersave.o iommu.o dma_lib.o 1obj-y += setup.o pci.o time.o idle.o powersave.o iommu.o dma_lib.o misc.o
2obj-$(CONFIG_PPC_PASEMI_MDIO) += gpio_mdio.o 2obj-$(CONFIG_PPC_PASEMI_MDIO) += gpio_mdio.o
3obj-$(CONFIG_PPC_PASEMI_CPUFREQ) += cpufreq.o 3obj-$(CONFIG_PPC_PASEMI_CPUFREQ) += cpufreq.o
diff --git a/arch/powerpc/platforms/pasemi/misc.c b/arch/powerpc/platforms/pasemi/misc.c
new file mode 100644
index 000000000000..ded7d152d00c
--- /dev/null
+++ b/arch/powerpc/platforms/pasemi/misc.c
@@ -0,0 +1,97 @@
1/*
2 * Copyright (C) 2007 PA Semi, Inc
3 *
4 * Parts based on arch/powerpc/sysdev/fsl_soc.c:
5 *
6 * 2006 (c) MontaVista Software, Inc.
7 *
8 * This program is free software; you can redistribute it and/or modify it
9 * under the terms of the GNU General Public License as published by the
10 * Free Software Foundation; either version 2 of the License, or (at your
11 * option) any later version.
12 */
13
14#include <linux/errno.h>
15#include <linux/kernel.h>
16#include <linux/pci.h>
17#include <linux/of.h>
18#include <linux/i2c.h>
19
20#ifdef CONFIG_I2C_BOARDINFO
21/* The below is from fsl_soc.c. It's copied because since there are no
22 * official bus bindings at this time it doesn't make sense to share across
23 * the platforms, even though they happen to be common.
24 */
25struct i2c_driver_device {
26 char *of_device;
27 char *i2c_driver;
28 char *i2c_type;
29};
30
31static struct i2c_driver_device i2c_devices[] __initdata = {
32 {"dallas,ds1338", "rtc-ds1307", "ds1338"},
33};
34
35static int __init find_i2c_driver(struct device_node *node,
36 struct i2c_board_info *info)
37{
38 int i;
39
40 for (i = 0; i < ARRAY_SIZE(i2c_devices); i++) {
41 if (!of_device_is_compatible(node, i2c_devices[i].of_device))
42 continue;
43 if (strlcpy(info->driver_name, i2c_devices[i].i2c_driver,
44 KOBJ_NAME_LEN) >= KOBJ_NAME_LEN ||
45 strlcpy(info->type, i2c_devices[i].i2c_type,
46 I2C_NAME_SIZE) >= I2C_NAME_SIZE)
47 return -ENOMEM;
48 return 0;
49 }
50 return -ENODEV;
51}
52
53static int __init pasemi_register_i2c_devices(void)
54{
55 struct pci_dev *pdev;
56 struct device_node *adap_node;
57 struct device_node *node;
58
59 pdev = NULL;
60 while ((pdev = pci_get_device(PCI_VENDOR_ID_PASEMI, 0xa003, pdev))) {
61 adap_node = pci_device_to_OF_node(pdev);
62
63 if (!adap_node)
64 continue;
65
66 node = NULL;
67 while ((node = of_get_next_child(adap_node, node))) {
68 struct i2c_board_info info = {};
69 const u32 *addr;
70 int len;
71
72 addr = of_get_property(node, "reg", &len);
73 if (!addr || len < sizeof(int) ||
74 *addr > (1 << 10) - 1) {
75 printk(KERN_WARNING
76 "pasemi_register_i2c_devices: "
77 "invalid i2c device entry\n");
78 continue;
79 }
80
81 info.irq = irq_of_parse_and_map(node, 0);
82 if (info.irq == NO_IRQ)
83 info.irq = -1;
84
85 if (find_i2c_driver(node, &info) < 0)
86 continue;
87
88 info.addr = *addr;
89
90 i2c_register_board_info(PCI_FUNC(pdev->devfn), &info,
91 1);
92 }
93 }
94 return 0;
95}
96device_initcall(pasemi_register_i2c_devices);
97#endif
diff --git a/arch/powerpc/platforms/pseries/power.c b/arch/powerpc/platforms/pseries/power.c
index e95fc1594c84..6d6266236446 100644
--- a/arch/powerpc/platforms/pseries/power.c
+++ b/arch/powerpc/platforms/pseries/power.c
@@ -75,7 +75,7 @@ core_initcall(pm_init);
75#else 75#else
76static int __init apo_pm_init(void) 76static int __init apo_pm_init(void)
77{ 77{
78 return (sysfs_create_file(power_kobj, &auto_poweron_attr)); 78 return (sysfs_create_file(power_kobj, &auto_poweron_attr.attr));
79} 79}
80__initcall(apo_pm_init); 80__initcall(apo_pm_init);
81#endif 81#endif
diff --git a/arch/powerpc/sysdev/mpic_pasemi_msi.c b/arch/powerpc/sysdev/mpic_pasemi_msi.c
index d6bfda30ac87..33cbfb22ce3e 100644
--- a/arch/powerpc/sysdev/mpic_pasemi_msi.c
+++ b/arch/powerpc/sysdev/mpic_pasemi_msi.c
@@ -95,7 +95,6 @@ static int pasemi_msi_setup_msi_irqs(struct pci_dev *pdev, int nvec, int type)
95 unsigned int virq; 95 unsigned int virq;
96 struct msi_desc *entry; 96 struct msi_desc *entry;
97 struct msi_msg msg; 97 struct msi_msg msg;
98 u64 addr;
99 98
100 pr_debug("pasemi_msi_setup_msi_irqs, pdev %p nvec %d type %d\n", 99 pr_debug("pasemi_msi_setup_msi_irqs, pdev %p nvec %d type %d\n",
101 pdev, nvec, type); 100 pdev, nvec, type);
@@ -132,8 +131,8 @@ static int pasemi_msi_setup_msi_irqs(struct pci_dev *pdev, int nvec, int type)
132 set_irq_chip(virq, &mpic_pasemi_msi_chip); 131 set_irq_chip(virq, &mpic_pasemi_msi_chip);
133 set_irq_type(virq, IRQ_TYPE_EDGE_RISING); 132 set_irq_type(virq, IRQ_TYPE_EDGE_RISING);
134 133
135 pr_debug("pasemi_msi: allocated virq 0x%x (hw 0x%lx) addr 0x%lx\n", 134 pr_debug("pasemi_msi: allocated virq 0x%x (hw 0x%lx) addr 0x%x\n",
136 virq, hwirq, addr); 135 virq, hwirq, msg.address_lo);
137 136
138 /* Likewise, the device writes [0...511] into the target 137 /* Likewise, the device writes [0...511] into the target
139 * register to generate MSI [512...1023] 138 * register to generate MSI [512...1023]
diff --git a/arch/ppc/platforms/4xx/ibm440ep.c b/arch/ppc/platforms/4xx/ibm440ep.c
index 1fed6638c81f..0de91532aabb 100644
--- a/arch/ppc/platforms/4xx/ibm440ep.c
+++ b/arch/ppc/platforms/4xx/ibm440ep.c
@@ -172,11 +172,11 @@ struct ocp_def core_ocp[] = {
172/* Polarity and triggering settings for internal interrupt sources */ 172/* Polarity and triggering settings for internal interrupt sources */
173struct ppc4xx_uic_settings ppc4xx_core_uic_cfg[] __initdata = { 173struct ppc4xx_uic_settings ppc4xx_core_uic_cfg[] __initdata = {
174 { .polarity = 0xffbffe03, 174 { .polarity = 0xffbffe03,
175 .triggering = 0xfffffe00, 175 .triggering = 0x00000000,
176 .ext_irq_mask = 0x000001fc, /* IRQ0 - IRQ6 */ 176 .ext_irq_mask = 0x000001fc, /* IRQ0 - IRQ6 */
177 }, 177 },
178 { .polarity = 0xffffc6ef, 178 { .polarity = 0xffffc6af,
179 .triggering = 0xffffc7ff, 179 .triggering = 0x06000140,
180 .ext_irq_mask = 0x00003800, /* IRQ7 - IRQ9 */ 180 .ext_irq_mask = 0x00003800, /* IRQ7 - IRQ9 */
181 }, 181 },
182}; 182};
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig
index 92a4f7b4323a..b21444b681b6 100644
--- a/arch/s390/Kconfig
+++ b/arch/s390/Kconfig
@@ -100,7 +100,8 @@ config NR_CPUS
100 int "Maximum number of CPUs (2-64)" 100 int "Maximum number of CPUs (2-64)"
101 range 2 64 101 range 2 64
102 depends on SMP 102 depends on SMP
103 default "32" 103 default "32" if !64BIT
104 default "64" if 64BIT
104 help 105 help
105 This allows you to specify the maximum number of CPUs which this 106 This allows you to specify the maximum number of CPUs which this
106 kernel will support. The maximum supported value is 64 and the 107 kernel will support. The maximum supported value is 64 and the
diff --git a/arch/s390/kernel/process.c b/arch/s390/kernel/process.c
index a6a4729e0e94..1c59ec161cf8 100644
--- a/arch/s390/kernel/process.c
+++ b/arch/s390/kernel/process.c
@@ -114,24 +114,27 @@ extern void s390_handle_mcck(void);
114static void default_idle(void) 114static void default_idle(void)
115{ 115{
116 int cpu, rc; 116 int cpu, rc;
117 int nr_calls = 0;
118 void *hcpu;
117#ifdef CONFIG_SMP 119#ifdef CONFIG_SMP
118 struct s390_idle_data *idle; 120 struct s390_idle_data *idle;
119#endif 121#endif
120 122
121 /* CPU is going idle. */ 123 /* CPU is going idle. */
122 cpu = smp_processor_id(); 124 cpu = smp_processor_id();
123 125 hcpu = (void *)(long)cpu;
124 local_irq_disable(); 126 local_irq_disable();
125 if (need_resched()) { 127 if (need_resched()) {
126 local_irq_enable(); 128 local_irq_enable();
127 return; 129 return;
128 } 130 }
129 131
130 rc = atomic_notifier_call_chain(&idle_chain, 132 rc = __atomic_notifier_call_chain(&idle_chain, S390_CPU_IDLE, hcpu, -1,
131 S390_CPU_IDLE, (void *)(long) cpu); 133 &nr_calls);
132 if (rc != NOTIFY_OK && rc != NOTIFY_DONE) 134 if (rc == NOTIFY_BAD) {
133 BUG(); 135 nr_calls--;
134 if (rc != NOTIFY_OK) { 136 __atomic_notifier_call_chain(&idle_chain, S390_CPU_NOT_IDLE,
137 hcpu, nr_calls, NULL);
135 local_irq_enable(); 138 local_irq_enable();
136 return; 139 return;
137 } 140 }
diff --git a/arch/s390/kernel/smp.c b/arch/s390/kernel/smp.c
index 85060659fb12..818bd09c0260 100644
--- a/arch/s390/kernel/smp.c
+++ b/arch/s390/kernel/smp.c
@@ -626,13 +626,17 @@ static int __cpuinit smp_alloc_lowcore(int cpu)
626 if (!lowcore) 626 if (!lowcore)
627 return -ENOMEM; 627 return -ENOMEM;
628 async_stack = __get_free_pages(GFP_KERNEL, ASYNC_ORDER); 628 async_stack = __get_free_pages(GFP_KERNEL, ASYNC_ORDER);
629 if (!async_stack)
630 goto out_async_stack;
631 panic_stack = __get_free_page(GFP_KERNEL); 629 panic_stack = __get_free_page(GFP_KERNEL);
632 if (!panic_stack) 630 if (!panic_stack || !async_stack)
633 goto out_panic_stack; 631 goto out;
634 632 /*
635 *lowcore = S390_lowcore; 633 * Only need to copy the first 512 bytes from address 0. But since
634 * the compiler emits a warning if src == NULL for memcpy use copy_page
635 * instead. Copies more than needed but this code is not performance
636 * critical.
637 */
638 copy_page(lowcore, &S390_lowcore);
639 memset((void *)lowcore + 512, 0, sizeof(*lowcore) - 512);
636 lowcore->async_stack = async_stack + ASYNC_SIZE; 640 lowcore->async_stack = async_stack + ASYNC_SIZE;
637 lowcore->panic_stack = panic_stack + PAGE_SIZE; 641 lowcore->panic_stack = panic_stack + PAGE_SIZE;
638 642
@@ -653,9 +657,8 @@ static int __cpuinit smp_alloc_lowcore(int cpu)
653out_save_area: 657out_save_area:
654 free_page(panic_stack); 658 free_page(panic_stack);
655#endif 659#endif
656out_panic_stack: 660out:
657 free_pages(async_stack, ASYNC_ORDER); 661 free_pages(async_stack, ASYNC_ORDER);
658out_async_stack:
659 free_pages((unsigned long) lowcore, lc_order); 662 free_pages((unsigned long) lowcore, lc_order);
660 return -ENOMEM; 663 return -ENOMEM;
661} 664}
@@ -719,8 +722,8 @@ int __cpuinit __cpu_up(unsigned int cpu)
719 cpu_lowcore->percpu_offset = __per_cpu_offset[cpu]; 722 cpu_lowcore->percpu_offset = __per_cpu_offset[cpu];
720 cpu_lowcore->current_task = (unsigned long) idle; 723 cpu_lowcore->current_task = (unsigned long) idle;
721 cpu_lowcore->cpu_data.cpu_nr = cpu; 724 cpu_lowcore->cpu_data.cpu_nr = cpu;
722 cpu_lowcore->softirq_pending = 0; 725 cpu_lowcore->kernel_asce = S390_lowcore.kernel_asce;
723 cpu_lowcore->ext_call_fast = 0; 726 cpu_lowcore->ipl_device = S390_lowcore.ipl_device;
724 eieio(); 727 eieio();
725 728
726 while (signal_processor(cpu, sigp_restart) == sigp_busy) 729 while (signal_processor(cpu, sigp_restart) == sigp_busy)
@@ -797,23 +800,43 @@ void cpu_die(void)
797 800
798void __init smp_prepare_cpus(unsigned int max_cpus) 801void __init smp_prepare_cpus(unsigned int max_cpus)
799{ 802{
803#ifndef CONFIG_64BIT
804 unsigned long save_area = 0;
805#endif
806 unsigned long async_stack, panic_stack;
807 struct _lowcore *lowcore;
800 unsigned int cpu; 808 unsigned int cpu;
809 int lc_order;
801 810
802 smp_detect_cpus(); 811 smp_detect_cpus();
803 812
804 /* request the 0x1201 emergency signal external interrupt */ 813 /* request the 0x1201 emergency signal external interrupt */
805 if (register_external_interrupt(0x1201, do_ext_call_interrupt) != 0) 814 if (register_external_interrupt(0x1201, do_ext_call_interrupt) != 0)
806 panic("Couldn't request external interrupt 0x1201"); 815 panic("Couldn't request external interrupt 0x1201");
807 memset(lowcore_ptr, 0, sizeof(lowcore_ptr));
808 print_cpu_info(&S390_lowcore.cpu_data); 816 print_cpu_info(&S390_lowcore.cpu_data);
809 smp_alloc_lowcore(smp_processor_id());
810 817
818 /* Reallocate current lowcore, but keep its contents. */
819 lc_order = sizeof(long) == 8 ? 1 : 0;
820 lowcore = (void *) __get_free_pages(GFP_KERNEL | GFP_DMA, lc_order);
821 panic_stack = __get_free_page(GFP_KERNEL);
822 async_stack = __get_free_pages(GFP_KERNEL, ASYNC_ORDER);
811#ifndef CONFIG_64BIT 823#ifndef CONFIG_64BIT
812 if (MACHINE_HAS_IEEE) 824 if (MACHINE_HAS_IEEE)
813 ctl_set_bit(14, 29); /* enable extended save area */ 825 save_area = get_zeroed_page(GFP_KERNEL);
814#endif 826#endif
815 set_prefix((u32)(unsigned long) lowcore_ptr[smp_processor_id()]); 827 local_irq_disable();
816 828 local_mcck_disable();
829 lowcore_ptr[smp_processor_id()] = lowcore;
830 *lowcore = S390_lowcore;
831 lowcore->panic_stack = panic_stack + PAGE_SIZE;
832 lowcore->async_stack = async_stack + ASYNC_SIZE;
833#ifndef CONFIG_64BIT
834 if (MACHINE_HAS_IEEE)
835 lowcore->extended_save_area_addr = (u32) save_area;
836#endif
837 set_prefix((u32)(unsigned long) lowcore);
838 local_mcck_enable();
839 local_irq_enable();
817 for_each_possible_cpu(cpu) 840 for_each_possible_cpu(cpu)
818 if (cpu != smp_processor_id()) 841 if (cpu != smp_processor_id())
819 smp_create_idle(cpu); 842 smp_create_idle(cpu);
diff --git a/arch/s390/kernel/time.c b/arch/s390/kernel/time.c
index 3bbac1293be4..76a5dd1b4ce9 100644
--- a/arch/s390/kernel/time.c
+++ b/arch/s390/kernel/time.c
@@ -744,7 +744,6 @@ static void etr_adjust_time(unsigned long long clock, unsigned long long delay)
744 } 744 }
745} 745}
746 746
747#ifdef CONFIG_SMP
748static void etr_sync_cpu_start(void *dummy) 747static void etr_sync_cpu_start(void *dummy)
749{ 748{
750 int *in_sync = dummy; 749 int *in_sync = dummy;
@@ -777,7 +776,6 @@ static void etr_sync_cpu_start(void *dummy)
777static void etr_sync_cpu_end(void *dummy) 776static void etr_sync_cpu_end(void *dummy)
778{ 777{
779} 778}
780#endif /* CONFIG_SMP */
781 779
782/* 780/*
783 * Sync the TOD clock using the port refered to by aibp. This port 781 * Sync the TOD clock using the port refered to by aibp. This port
diff --git a/arch/s390/lib/uaccess_std.c b/arch/s390/lib/uaccess_std.c
index 28c4500a58d0..d2ffbadb51a7 100644
--- a/arch/s390/lib/uaccess_std.c
+++ b/arch/s390/lib/uaccess_std.c
@@ -293,10 +293,10 @@ int futex_atomic_cmpxchg_std(int __user *uaddr, int oldval, int newval)
293 293
294 asm volatile( 294 asm volatile(
295 " sacf 256\n" 295 " sacf 256\n"
296 " cs %1,%4,0(%5)\n" 296 "0: cs %1,%4,0(%5)\n"
297 "0: lr %0,%1\n" 297 "1: lr %0,%1\n"
298 "1: sacf 0\n" 298 "2: sacf 0\n"
299 EX_TABLE(0b,1b) 299 EX_TABLE(0b,2b) EX_TABLE(1b,2b)
300 : "=d" (ret), "+d" (oldval), "=m" (*uaddr) 300 : "=d" (ret), "+d" (oldval), "=m" (*uaddr)
301 : "0" (-EFAULT), "d" (newval), "a" (uaddr), "m" (*uaddr) 301 : "0" (-EFAULT), "d" (newval), "a" (uaddr), "m" (*uaddr)
302 : "cc", "memory" ); 302 : "cc", "memory" );
diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig
index b3400b5ad5c6..783cfbbf87ca 100644
--- a/arch/sh/Kconfig
+++ b/arch/sh/Kconfig
@@ -330,6 +330,7 @@ config CPU_SUBTYPE_SH5_101
330 330
331config CPU_SUBTYPE_SH5_103 331config CPU_SUBTYPE_SH5_103
332 bool "Support SH5-103 processor" 332 bool "Support SH5-103 processor"
333 select CPU_SH5
333 334
334endchoice 335endchoice
335 336
diff --git a/arch/sh/drivers/dma/dma-sh.c b/arch/sh/drivers/dma/dma-sh.c
index 5c3359756a92..71ff3d6f26e2 100644
--- a/arch/sh/drivers/dma/dma-sh.c
+++ b/arch/sh/drivers/dma/dma-sh.c
@@ -90,7 +90,7 @@ static irqreturn_t dma_tei(int irq, void *dev_id)
90 90
91static int sh_dmac_request_dma(struct dma_channel *chan) 91static int sh_dmac_request_dma(struct dma_channel *chan)
92{ 92{
93 if (unlikely(!chan->flags & DMA_TEI_CAPABLE)) 93 if (unlikely(!(chan->flags & DMA_TEI_CAPABLE)))
94 return 0; 94 return 0;
95 95
96 return request_irq(get_dmte_irq(chan->chan), dma_tei, 96 return request_irq(get_dmte_irq(chan->chan), dma_tei,
diff --git a/arch/sh/drivers/heartbeat.c b/arch/sh/drivers/heartbeat.c
index b76a14f12ce2..ab77b0e0fa0e 100644
--- a/arch/sh/drivers/heartbeat.c
+++ b/arch/sh/drivers/heartbeat.c
@@ -93,7 +93,7 @@ static int heartbeat_drv_probe(struct platform_device *pdev)
93 } 93 }
94 94
95 hd->base = ioremap_nocache(res->start, res->end - res->start + 1); 95 hd->base = ioremap_nocache(res->start, res->end - res->start + 1);
96 if (!unlikely(hd->base)) { 96 if (unlikely(!hd->base)) {
97 dev_err(&pdev->dev, "ioremap failed\n"); 97 dev_err(&pdev->dev, "ioremap failed\n");
98 98
99 if (!pdev->dev.platform_data) 99 if (!pdev->dev.platform_data)
diff --git a/arch/sh/drivers/pci/ops-dreamcast.c b/arch/sh/drivers/pci/ops-dreamcast.c
index 0dac87b19624..e1284fc69361 100644
--- a/arch/sh/drivers/pci/ops-dreamcast.c
+++ b/arch/sh/drivers/pci/ops-dreamcast.c
@@ -83,9 +83,9 @@ static int gapspci_read(struct pci_bus *bus, unsigned int devfn, int where, int
83 return PCIBIOS_DEVICE_NOT_FOUND; 83 return PCIBIOS_DEVICE_NOT_FOUND;
84 84
85 switch (size) { 85 switch (size) {
86 case 1: *val = ctrl_inb(GAPSPCI_BBA_CONFIG+where); break; 86 case 1: *val = inb(GAPSPCI_BBA_CONFIG+where); break;
87 case 2: *val = ctrl_inw(GAPSPCI_BBA_CONFIG+where); break; 87 case 2: *val = inw(GAPSPCI_BBA_CONFIG+where); break;
88 case 4: *val = ctrl_inl(GAPSPCI_BBA_CONFIG+where); break; 88 case 4: *val = inl(GAPSPCI_BBA_CONFIG+where); break;
89 } 89 }
90 90
91 return PCIBIOS_SUCCESSFUL; 91 return PCIBIOS_SUCCESSFUL;
@@ -97,9 +97,9 @@ static int gapspci_write(struct pci_bus *bus, unsigned int devfn, int where, int
97 return PCIBIOS_DEVICE_NOT_FOUND; 97 return PCIBIOS_DEVICE_NOT_FOUND;
98 98
99 switch (size) { 99 switch (size) {
100 case 1: ctrl_outb(( u8)val, GAPSPCI_BBA_CONFIG+where); break; 100 case 1: outb(( u8)val, GAPSPCI_BBA_CONFIG+where); break;
101 case 2: ctrl_outw((u16)val, GAPSPCI_BBA_CONFIG+where); break; 101 case 2: outw((u16)val, GAPSPCI_BBA_CONFIG+where); break;
102 case 4: ctrl_outl((u32)val, GAPSPCI_BBA_CONFIG+where); break; 102 case 4: outl((u32)val, GAPSPCI_BBA_CONFIG+where); break;
103 } 103 }
104 104
105 return PCIBIOS_SUCCESSFUL; 105 return PCIBIOS_SUCCESSFUL;
@@ -127,36 +127,36 @@ int __init gapspci_init(void)
127 */ 127 */
128 128
129 for (i=0; i<16; i++) 129 for (i=0; i<16; i++)
130 idbuf[i] = ctrl_inb(GAPSPCI_REGS+i); 130 idbuf[i] = inb(GAPSPCI_REGS+i);
131 131
132 if (strncmp(idbuf, "GAPSPCI_BRIDGE_2", 16)) 132 if (strncmp(idbuf, "GAPSPCI_BRIDGE_2", 16))
133 return -ENODEV; 133 return -ENODEV;
134 134
135 ctrl_outl(0x5a14a501, GAPSPCI_REGS+0x18); 135 outl(0x5a14a501, GAPSPCI_REGS+0x18);
136 136
137 for (i=0; i<1000000; i++) 137 for (i=0; i<1000000; i++)
138 ; 138 ;
139 139
140 if (ctrl_inl(GAPSPCI_REGS+0x18) != 1) 140 if (inl(GAPSPCI_REGS+0x18) != 1)
141 return -EINVAL; 141 return -EINVAL;
142 142
143 ctrl_outl(0x01000000, GAPSPCI_REGS+0x20); 143 outl(0x01000000, GAPSPCI_REGS+0x20);
144 ctrl_outl(0x01000000, GAPSPCI_REGS+0x24); 144 outl(0x01000000, GAPSPCI_REGS+0x24);
145 145
146 ctrl_outl(GAPSPCI_DMA_BASE, GAPSPCI_REGS+0x28); 146 outl(GAPSPCI_DMA_BASE, GAPSPCI_REGS+0x28);
147 ctrl_outl(GAPSPCI_DMA_BASE+GAPSPCI_DMA_SIZE, GAPSPCI_REGS+0x2c); 147 outl(GAPSPCI_DMA_BASE+GAPSPCI_DMA_SIZE, GAPSPCI_REGS+0x2c);
148 148
149 ctrl_outl(1, GAPSPCI_REGS+0x14); 149 outl(1, GAPSPCI_REGS+0x14);
150 ctrl_outl(1, GAPSPCI_REGS+0x34); 150 outl(1, GAPSPCI_REGS+0x34);
151 151
152 /* Setting Broadband Adapter */ 152 /* Setting Broadband Adapter */
153 ctrl_outw(0xf900, GAPSPCI_BBA_CONFIG+0x06); 153 outw(0xf900, GAPSPCI_BBA_CONFIG+0x06);
154 ctrl_outl(0x00000000, GAPSPCI_BBA_CONFIG+0x30); 154 outl(0x00000000, GAPSPCI_BBA_CONFIG+0x30);
155 ctrl_outb(0x00, GAPSPCI_BBA_CONFIG+0x3c); 155 outb(0x00, GAPSPCI_BBA_CONFIG+0x3c);
156 ctrl_outb(0xf0, GAPSPCI_BBA_CONFIG+0x0d); 156 outb(0xf0, GAPSPCI_BBA_CONFIG+0x0d);
157 ctrl_outw(0x0006, GAPSPCI_BBA_CONFIG+0x04); 157 outw(0x0006, GAPSPCI_BBA_CONFIG+0x04);
158 ctrl_outl(0x00002001, GAPSPCI_BBA_CONFIG+0x10); 158 outl(0x00002001, GAPSPCI_BBA_CONFIG+0x10);
159 ctrl_outl(0x01000000, GAPSPCI_BBA_CONFIG+0x14); 159 outl(0x01000000, GAPSPCI_BBA_CONFIG+0x14);
160 160
161 return 0; 161 return 0;
162} 162}
diff --git a/arch/sh/kernel/cpu/sh2/setup-sh7619.c b/arch/sh/kernel/cpu/sh2/setup-sh7619.c
index b230eb278cef..cc530f4d84d6 100644
--- a/arch/sh/kernel/cpu/sh2/setup-sh7619.c
+++ b/arch/sh/kernel/cpu/sh2/setup-sh7619.c
@@ -10,7 +10,7 @@
10#include <linux/platform_device.h> 10#include <linux/platform_device.h>
11#include <linux/init.h> 11#include <linux/init.h>
12#include <linux/serial.h> 12#include <linux/serial.h>
13#include <asm/sci.h> 13#include <linux/serial_sci.h>
14 14
15enum { 15enum {
16 UNUSED = 0, 16 UNUSED = 0,
diff --git a/arch/sh/kernel/cpu/sh2a/clock-sh7203.c b/arch/sh/kernel/cpu/sh2a/clock-sh7203.c
index 3feb95a4fcbc..fb781329848a 100644
--- a/arch/sh/kernel/cpu/sh2a/clock-sh7203.c
+++ b/arch/sh/kernel/cpu/sh2a/clock-sh7203.c
@@ -21,8 +21,8 @@
21#include <asm/freq.h> 21#include <asm/freq.h>
22#include <asm/io.h> 22#include <asm/io.h>
23 23
24const static int pll1rate[]={8,12,16,0}; 24static const int pll1rate[]={8,12,16,0};
25const static int pfc_divisors[]={1,2,3,4,6,8,12}; 25static const int pfc_divisors[]={1,2,3,4,6,8,12};
26#define ifc_divisors pfc_divisors 26#define ifc_divisors pfc_divisors
27 27
28#if (CONFIG_SH_CLK_MD == 0) 28#if (CONFIG_SH_CLK_MD == 0)
diff --git a/arch/sh/kernel/cpu/sh2a/setup-sh7203.c b/arch/sh/kernel/cpu/sh2a/setup-sh7203.c
index db6ef5cecde1..e98dc4450352 100644
--- a/arch/sh/kernel/cpu/sh2a/setup-sh7203.c
+++ b/arch/sh/kernel/cpu/sh2a/setup-sh7203.c
@@ -10,7 +10,7 @@
10#include <linux/platform_device.h> 10#include <linux/platform_device.h>
11#include <linux/init.h> 11#include <linux/init.h>
12#include <linux/serial.h> 12#include <linux/serial.h>
13#include <asm/sci.h> 13#include <linux/serial_sci.h>
14 14
15enum { 15enum {
16 UNUSED = 0, 16 UNUSED = 0,
diff --git a/arch/sh/kernel/cpu/sh2a/setup-sh7206.c b/arch/sh/kernel/cpu/sh2a/setup-sh7206.c
index a564425b905f..e6d4ec445dd8 100644
--- a/arch/sh/kernel/cpu/sh2a/setup-sh7206.c
+++ b/arch/sh/kernel/cpu/sh2a/setup-sh7206.c
@@ -10,7 +10,7 @@
10#include <linux/platform_device.h> 10#include <linux/platform_device.h>
11#include <linux/init.h> 11#include <linux/init.h>
12#include <linux/serial.h> 12#include <linux/serial.h>
13#include <asm/sci.h> 13#include <linux/serial_sci.h>
14 14
15enum { 15enum {
16 UNUSED = 0, 16 UNUSED = 0,
diff --git a/arch/sh/kernel/cpu/sh3/probe.c b/arch/sh/kernel/cpu/sh3/probe.c
index fcc80bb7bee7..10f2a760c5ee 100644
--- a/arch/sh/kernel/cpu/sh3/probe.c
+++ b/arch/sh/kernel/cpu/sh3/probe.c
@@ -94,9 +94,9 @@ int __uses_jump_to_uncached detect_cpu_and_cache_system(void)
94 boot_cpu_data.dcache.way_incr = (1 << 13); 94 boot_cpu_data.dcache.way_incr = (1 << 13);
95 boot_cpu_data.dcache.entry_mask = 0x1ff0; 95 boot_cpu_data.dcache.entry_mask = 0x1ff0;
96 boot_cpu_data.dcache.sets = 512; 96 boot_cpu_data.dcache.sets = 512;
97 ctrl_outl(CCR_CACHE_32KB, CCR3); 97 ctrl_outl(CCR_CACHE_32KB, CCR3_REG);
98#else 98#else
99 ctrl_outl(CCR_CACHE_16KB, CCR3); 99 ctrl_outl(CCR_CACHE_16KB, CCR3_REG);
100#endif 100#endif
101#endif 101#endif
102 } 102 }
diff --git a/arch/sh/kernel/cpu/sh3/setup-sh7705.c b/arch/sh/kernel/cpu/sh3/setup-sh7705.c
index dd0a20a685f7..f581534cb732 100644
--- a/arch/sh/kernel/cpu/sh3/setup-sh7705.c
+++ b/arch/sh/kernel/cpu/sh3/setup-sh7705.c
@@ -12,7 +12,7 @@
12#include <linux/init.h> 12#include <linux/init.h>
13#include <linux/irq.h> 13#include <linux/irq.h>
14#include <linux/serial.h> 14#include <linux/serial.h>
15#include <asm/sci.h> 15#include <linux/serial_sci.h>
16#include <asm/rtc.h> 16#include <asm/rtc.h>
17 17
18enum { 18enum {
diff --git a/arch/sh/kernel/cpu/sh3/setup-sh770x.c b/arch/sh/kernel/cpu/sh3/setup-sh770x.c
index 969804bb523b..d3733b13ea52 100644
--- a/arch/sh/kernel/cpu/sh3/setup-sh770x.c
+++ b/arch/sh/kernel/cpu/sh3/setup-sh770x.c
@@ -16,7 +16,7 @@
16#include <linux/irq.h> 16#include <linux/irq.h>
17#include <linux/platform_device.h> 17#include <linux/platform_device.h>
18#include <linux/serial.h> 18#include <linux/serial.h>
19#include <asm/sci.h> 19#include <linux/serial_sci.h>
20 20
21enum { 21enum {
22 UNUSED = 0, 22 UNUSED = 0,
@@ -123,15 +123,15 @@ static struct resource rtc_resources[] = {
123 .flags = IORESOURCE_IO, 123 .flags = IORESOURCE_IO,
124 }, 124 },
125 [1] = { 125 [1] = {
126 .start = 20, 126 .start = 21,
127 .flags = IORESOURCE_IRQ, 127 .flags = IORESOURCE_IRQ,
128 }, 128 },
129 [2] = { 129 [2] = {
130 .start = 21, 130 .start = 22,
131 .flags = IORESOURCE_IRQ, 131 .flags = IORESOURCE_IRQ,
132 }, 132 },
133 [3] = { 133 [3] = {
134 .start = 22, 134 .start = 20,
135 .flags = IORESOURCE_IRQ, 135 .flags = IORESOURCE_IRQ,
136 }, 136 },
137}; 137};
diff --git a/arch/sh/kernel/cpu/sh3/setup-sh7710.c b/arch/sh/kernel/cpu/sh3/setup-sh7710.c
index 0cc0e2bf135d..7406c9ad9259 100644
--- a/arch/sh/kernel/cpu/sh3/setup-sh7710.c
+++ b/arch/sh/kernel/cpu/sh3/setup-sh7710.c
@@ -12,7 +12,7 @@
12#include <linux/init.h> 12#include <linux/init.h>
13#include <linux/irq.h> 13#include <linux/irq.h>
14#include <linux/serial.h> 14#include <linux/serial.h>
15#include <asm/sci.h> 15#include <linux/serial_sci.h>
16#include <asm/rtc.h> 16#include <asm/rtc.h>
17 17
18enum { 18enum {
diff --git a/arch/sh/kernel/cpu/sh3/setup-sh7720.c b/arch/sh/kernel/cpu/sh3/setup-sh7720.c
index 3855ea4c21c8..8028082527c5 100644
--- a/arch/sh/kernel/cpu/sh3/setup-sh7720.c
+++ b/arch/sh/kernel/cpu/sh3/setup-sh7720.c
@@ -16,7 +16,7 @@
16#include <linux/init.h> 16#include <linux/init.h>
17#include <linux/serial.h> 17#include <linux/serial.h>
18#include <linux/io.h> 18#include <linux/io.h>
19#include <asm/sci.h> 19#include <linux/serial_sci.h>
20#include <asm/rtc.h> 20#include <asm/rtc.h>
21 21
22#define INTC_ICR1 0xA4140010UL 22#define INTC_ICR1 0xA4140010UL
diff --git a/arch/sh/kernel/cpu/sh4/setup-sh4-202.c b/arch/sh/kernel/cpu/sh4/setup-sh4-202.c
index dab193293f20..7371abf64f80 100644
--- a/arch/sh/kernel/cpu/sh4/setup-sh4-202.c
+++ b/arch/sh/kernel/cpu/sh4/setup-sh4-202.c
@@ -10,7 +10,7 @@
10#include <linux/platform_device.h> 10#include <linux/platform_device.h>
11#include <linux/init.h> 11#include <linux/init.h>
12#include <linux/serial.h> 12#include <linux/serial.h>
13#include <asm/sci.h> 13#include <linux/serial_sci.h>
14 14
15static struct plat_sci_port sci_platform_data[] = { 15static struct plat_sci_port sci_platform_data[] = {
16 { 16 {
diff --git a/arch/sh/kernel/cpu/sh4/setup-sh7750.c b/arch/sh/kernel/cpu/sh4/setup-sh7750.c
index ae3603aca615..ec884039b914 100644
--- a/arch/sh/kernel/cpu/sh4/setup-sh7750.c
+++ b/arch/sh/kernel/cpu/sh4/setup-sh7750.c
@@ -12,7 +12,7 @@
12#include <linux/init.h> 12#include <linux/init.h>
13#include <linux/serial.h> 13#include <linux/serial.h>
14#include <linux/io.h> 14#include <linux/io.h>
15#include <asm/sci.h> 15#include <linux/serial_sci.h>
16 16
17static struct resource rtc_resources[] = { 17static struct resource rtc_resources[] = {
18 [0] = { 18 [0] = {
diff --git a/arch/sh/kernel/cpu/sh4/setup-sh7760.c b/arch/sh/kernel/cpu/sh4/setup-sh7760.c
index 85f81579b97e..254c5c55ab91 100644
--- a/arch/sh/kernel/cpu/sh4/setup-sh7760.c
+++ b/arch/sh/kernel/cpu/sh4/setup-sh7760.c
@@ -10,7 +10,7 @@
10#include <linux/platform_device.h> 10#include <linux/platform_device.h>
11#include <linux/init.h> 11#include <linux/init.h>
12#include <linux/serial.h> 12#include <linux/serial.h>
13#include <asm/sci.h> 13#include <linux/serial_sci.h>
14 14
15enum { 15enum {
16 UNUSED = 0, 16 UNUSED = 0,
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7343.c b/arch/sh/kernel/cpu/sh4a/setup-sh7343.c
index c0a3f079dfdc..6d4f50cd4aaf 100644
--- a/arch/sh/kernel/cpu/sh4a/setup-sh7343.c
+++ b/arch/sh/kernel/cpu/sh4a/setup-sh7343.c
@@ -10,7 +10,7 @@
10#include <linux/platform_device.h> 10#include <linux/platform_device.h>
11#include <linux/init.h> 11#include <linux/init.h>
12#include <linux/serial.h> 12#include <linux/serial.h>
13#include <asm/sci.h> 13#include <linux/serial_sci.h>
14 14
15static struct plat_sci_port sci_platform_data[] = { 15static struct plat_sci_port sci_platform_data[] = {
16 { 16 {
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7366.c b/arch/sh/kernel/cpu/sh4a/setup-sh7366.c
index 967e8b69a2f8..f26b5cdad0d1 100644
--- a/arch/sh/kernel/cpu/sh4a/setup-sh7366.c
+++ b/arch/sh/kernel/cpu/sh4a/setup-sh7366.c
@@ -12,7 +12,7 @@
12#include <linux/platform_device.h> 12#include <linux/platform_device.h>
13#include <linux/init.h> 13#include <linux/init.h>
14#include <linux/serial.h> 14#include <linux/serial.h>
15#include <asm/sci.h> 15#include <linux/serial_sci.h>
16 16
17static struct plat_sci_port sci_platform_data[] = { 17static struct plat_sci_port sci_platform_data[] = {
18 { 18 {
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7722.c b/arch/sh/kernel/cpu/sh4a/setup-sh7722.c
index 73c778d40d13..b98b4bc93ec9 100644
--- a/arch/sh/kernel/cpu/sh4a/setup-sh7722.c
+++ b/arch/sh/kernel/cpu/sh4a/setup-sh7722.c
@@ -10,9 +10,9 @@
10#include <linux/platform_device.h> 10#include <linux/platform_device.h>
11#include <linux/init.h> 11#include <linux/init.h>
12#include <linux/serial.h> 12#include <linux/serial.h>
13#include <linux/serial_sci.h>
13#include <linux/mm.h> 14#include <linux/mm.h>
14#include <asm/mmzone.h> 15#include <asm/mmzone.h>
15#include <asm/sci.h>
16 16
17static struct resource usbf_resources[] = { 17static struct resource usbf_resources[] = {
18 [0] = { 18 [0] = {
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7763.c b/arch/sh/kernel/cpu/sh4a/setup-sh7763.c
index eabd5386812d..07c988dc9de6 100644
--- a/arch/sh/kernel/cpu/sh4a/setup-sh7763.c
+++ b/arch/sh/kernel/cpu/sh4a/setup-sh7763.c
@@ -12,7 +12,7 @@
12#include <linux/init.h> 12#include <linux/init.h>
13#include <linux/serial.h> 13#include <linux/serial.h>
14#include <linux/io.h> 14#include <linux/io.h>
15#include <asm/sci.h> 15#include <linux/serial_sci.h>
16 16
17static struct resource rtc_resources[] = { 17static struct resource rtc_resources[] = {
18 [0] = { 18 [0] = {
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7770.c b/arch/sh/kernel/cpu/sh4a/setup-sh7770.c
index 32f4f59a837b..b9cec48b1808 100644
--- a/arch/sh/kernel/cpu/sh4a/setup-sh7770.c
+++ b/arch/sh/kernel/cpu/sh4a/setup-sh7770.c
@@ -10,7 +10,7 @@
10#include <linux/platform_device.h> 10#include <linux/platform_device.h>
11#include <linux/init.h> 11#include <linux/init.h>
12#include <linux/serial.h> 12#include <linux/serial.h>
13#include <asm/sci.h> 13#include <linux/serial_sci.h>
14 14
15static struct plat_sci_port sci_platform_data[] = { 15static struct plat_sci_port sci_platform_data[] = {
16 { 16 {
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7780.c b/arch/sh/kernel/cpu/sh4a/setup-sh7780.c
index 293004b526ff..18dbbe23fea1 100644
--- a/arch/sh/kernel/cpu/sh4a/setup-sh7780.c
+++ b/arch/sh/kernel/cpu/sh4a/setup-sh7780.c
@@ -11,7 +11,7 @@
11#include <linux/init.h> 11#include <linux/init.h>
12#include <linux/serial.h> 12#include <linux/serial.h>
13#include <linux/io.h> 13#include <linux/io.h>
14#include <asm/sci.h> 14#include <linux/serial_sci.h>
15 15
16static struct resource rtc_resources[] = { 16static struct resource rtc_resources[] = {
17 [0] = { 17 [0] = {
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7785.c b/arch/sh/kernel/cpu/sh4a/setup-sh7785.c
index 74b60e96cdf4..621e7329ec63 100644
--- a/arch/sh/kernel/cpu/sh4a/setup-sh7785.c
+++ b/arch/sh/kernel/cpu/sh4a/setup-sh7785.c
@@ -10,10 +10,10 @@
10#include <linux/platform_device.h> 10#include <linux/platform_device.h>
11#include <linux/init.h> 11#include <linux/init.h>
12#include <linux/serial.h> 12#include <linux/serial.h>
13#include <linux/serial_sci.h>
13#include <linux/io.h> 14#include <linux/io.h>
14#include <linux/mm.h> 15#include <linux/mm.h>
15#include <asm/mmzone.h> 16#include <asm/mmzone.h>
16#include <asm/sci.h>
17 17
18static struct plat_sci_port sci_platform_data[] = { 18static struct plat_sci_port sci_platform_data[] = {
19 { 19 {
diff --git a/arch/sh/kernel/cpu/sh4a/setup-shx3.c b/arch/sh/kernel/cpu/sh4a/setup-shx3.c
index 4dc958b6b314..bd35f32534b9 100644
--- a/arch/sh/kernel/cpu/sh4a/setup-shx3.c
+++ b/arch/sh/kernel/cpu/sh4a/setup-shx3.c
@@ -10,9 +10,9 @@
10#include <linux/platform_device.h> 10#include <linux/platform_device.h>
11#include <linux/init.h> 11#include <linux/init.h>
12#include <linux/serial.h> 12#include <linux/serial.h>
13#include <linux/serial_sci.h>
13#include <linux/io.h> 14#include <linux/io.h>
14#include <asm/mmzone.h> 15#include <asm/mmzone.h>
15#include <asm/sci.h>
16 16
17static struct plat_sci_port sci_platform_data[] = { 17static struct plat_sci_port sci_platform_data[] = {
18 { 18 {
diff --git a/arch/sparc/kernel/led.c b/arch/sparc/kernel/led.c
index 313d1620ae8e..59e9344e7a0d 100644
--- a/arch/sparc/kernel/led.c
+++ b/arch/sparc/kernel/led.c
@@ -3,6 +3,9 @@
3#include <linux/init.h> 3#include <linux/init.h>
4#include <linux/proc_fs.h> 4#include <linux/proc_fs.h>
5#include <linux/string.h> 5#include <linux/string.h>
6#include <linux/jiffies.h>
7#include <linux/timer.h>
8#include <linux/uaccess.h>
6 9
7#include <asm/auxio.h> 10#include <asm/auxio.h>
8 11
diff --git a/arch/sparc/kernel/process.c b/arch/sparc/kernel/process.c
index 19186ce8850d..0bd69d0b5cd7 100644
--- a/arch/sparc/kernel/process.c
+++ b/arch/sparc/kernel/process.c
@@ -141,16 +141,12 @@ void cpu_idle(void)
141 141
142extern char reboot_command []; 142extern char reboot_command [];
143 143
144extern void (*prom_palette)(int);
145
146/* XXX cli/sti -> local_irq_xxx here, check this works once SMP is fixed. */ 144/* XXX cli/sti -> local_irq_xxx here, check this works once SMP is fixed. */
147void machine_halt(void) 145void machine_halt(void)
148{ 146{
149 local_irq_enable(); 147 local_irq_enable();
150 mdelay(8); 148 mdelay(8);
151 local_irq_disable(); 149 local_irq_disable();
152 if (prom_palette)
153 prom_palette (1);
154 prom_halt(); 150 prom_halt();
155 panic("Halt failed!"); 151 panic("Halt failed!");
156} 152}
@@ -165,8 +161,6 @@ void machine_restart(char * cmd)
165 161
166 p = strchr (reboot_command, '\n'); 162 p = strchr (reboot_command, '\n');
167 if (p) *p = 0; 163 if (p) *p = 0;
168 if (prom_palette)
169 prom_palette (1);
170 if (cmd) 164 if (cmd)
171 prom_reboot(cmd); 165 prom_reboot(cmd);
172 if (*reboot_command) 166 if (*reboot_command)
diff --git a/arch/sparc/kernel/setup.c b/arch/sparc/kernel/setup.c
index 3cf78f160846..3c13137685da 100644
--- a/arch/sparc/kernel/setup.c
+++ b/arch/sparc/kernel/setup.c
@@ -65,7 +65,6 @@ struct screen_info screen_info = {
65 */ 65 */
66 66
67extern unsigned long trapbase; 67extern unsigned long trapbase;
68void (*prom_palette)(int);
69 68
70/* Pretty sick eh? */ 69/* Pretty sick eh? */
71void prom_sync_me(void) 70void prom_sync_me(void)
@@ -80,8 +79,6 @@ void prom_sync_me(void)
80 "nop\n\t" 79 "nop\n\t"
81 "nop\n\t" : : "r" (&trapbase)); 80 "nop\n\t" : : "r" (&trapbase));
82 81
83 if (prom_palette)
84 prom_palette(1);
85 prom_printf("PROM SYNC COMMAND...\n"); 82 prom_printf("PROM SYNC COMMAND...\n");
86 show_free_areas(); 83 show_free_areas();
87 if(current->pid != 0) { 84 if(current->pid != 0) {
@@ -191,7 +188,6 @@ extern int prom_probe_memory(void);
191extern void sun4c_probe_vac(void); 188extern void sun4c_probe_vac(void);
192extern char cputypval; 189extern char cputypval;
193extern unsigned long start, end; 190extern unsigned long start, end;
194extern void panic_setup(char *, int *);
195 191
196extern unsigned short root_flags; 192extern unsigned short root_flags;
197extern unsigned short root_dev; 193extern unsigned short root_dev;
diff --git a/arch/sparc/mm/sun4c.c b/arch/sparc/mm/sun4c.c
index c0442e8c4b15..2375fe9dc312 100644
--- a/arch/sparc/mm/sun4c.c
+++ b/arch/sparc/mm/sun4c.c
@@ -1941,9 +1941,7 @@ static pte_t *sun4c_pte_alloc_one_kernel(struct mm_struct *mm, unsigned long add
1941 if ((pte = sun4c_pte_alloc_one_fast(mm, address)) != NULL) 1941 if ((pte = sun4c_pte_alloc_one_fast(mm, address)) != NULL)
1942 return pte; 1942 return pte;
1943 1943
1944 pte = (pte_t *)__get_free_page(GFP_KERNEL|__GFP_REPEAT); 1944 pte = (pte_t *)get_zeroed_page(GFP_KERNEL|__GFP_REPEAT);
1945 if (pte)
1946 memset(pte, 0, PAGE_SIZE);
1947 return pte; 1945 return pte;
1948} 1946}
1949 1947
diff --git a/arch/sparc/prom/misc.c b/arch/sparc/prom/misc.c
index 37cff5f54704..d9fb3af41c1f 100644
--- a/arch/sparc/prom/misc.c
+++ b/arch/sparc/prom/misc.c
@@ -45,9 +45,6 @@ prom_feval(char *fstring)
45 spin_unlock_irqrestore(&prom_lock, flags); 45 spin_unlock_irqrestore(&prom_lock, flags);
46} 46}
47 47
48/* We want to do this more nicely some day. */
49extern void (*prom_palette)(int);
50
51/* Drop into the prom, with the chance to continue with the 'go' 48/* Drop into the prom, with the chance to continue with the 'go'
52 * prom command. 49 * prom command.
53 */ 50 */
@@ -58,8 +55,6 @@ prom_cmdline(void)
58 extern void install_linux_ticker(void); 55 extern void install_linux_ticker(void);
59 unsigned long flags; 56 unsigned long flags;
60 57
61 if (prom_palette)
62 prom_palette (1);
63 spin_lock_irqsave(&prom_lock, flags); 58 spin_lock_irqsave(&prom_lock, flags);
64 install_obp_ticker(); 59 install_obp_ticker();
65 (*(romvec->pv_abort))(); 60 (*(romvec->pv_abort))();
@@ -69,8 +64,6 @@ prom_cmdline(void)
69#ifdef CONFIG_SUN_AUXIO 64#ifdef CONFIG_SUN_AUXIO
70 set_auxio(AUXIO_LED, 0); 65 set_auxio(AUXIO_LED, 0);
71#endif 66#endif
72 if (prom_palette)
73 prom_palette (0);
74} 67}
75 68
76/* Drop into the prom, but completely terminate the program. 69/* Drop into the prom, but completely terminate the program.
diff --git a/arch/sparc64/Kconfig.debug b/arch/sparc64/Kconfig.debug
index a5faa3683bd6..6a4d28a4076d 100644
--- a/arch/sparc64/Kconfig.debug
+++ b/arch/sparc64/Kconfig.debug
@@ -23,10 +23,6 @@ config STACK_DEBUG
23 depends on DEBUG_KERNEL 23 depends on DEBUG_KERNEL
24 bool "Stack Overflow Detection Support" 24 bool "Stack Overflow Detection Support"
25 25
26config DEBUG_BOOTMEM
27 depends on DEBUG_KERNEL
28 bool "Debug BOOTMEM initialization"
29
30config DEBUG_PAGEALLOC 26config DEBUG_PAGEALLOC
31 bool "Debug page memory allocations" 27 bool "Debug page memory allocations"
32 depends on DEBUG_KERNEL && !HIBERNATION 28 depends on DEBUG_KERNEL && !HIBERNATION
diff --git a/arch/sparc64/Makefile b/arch/sparc64/Makefile
index 01159cb5f16d..f0c22f826982 100644
--- a/arch/sparc64/Makefile
+++ b/arch/sparc64/Makefile
@@ -12,39 +12,13 @@ CHECKFLAGS += -D__sparc__ -D__sparc_v9__ -m64
12 12
13CPPFLAGS_vmlinux.lds += -Usparc 13CPPFLAGS_vmlinux.lds += -Usparc
14 14
15CC := $(shell if $(CC) -m64 -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo $(CC); else echo sparc64-linux-gcc; fi )
16
17NEW_GCC := $(call cc-option-yn, -m64 -mcmodel=medlow)
18NEW_GAS := $(shell if $(LD) -V 2>&1 | grep 'elf64_sparc' > /dev/null; then echo y; else echo n; fi)
19UNDECLARED_REGS := $(shell if $(CC) -c -x assembler /dev/null -Wa,--help | grep undeclared-regs > /dev/null; then echo y; else echo n; fi; )
20
21ifneq ($(NEW_GAS),y)
22AS = sparc64-linux-as
23LD = sparc64-linux-ld
24NM = sparc64-linux-nm
25AR = sparc64-linux-ar
26RANLIB = sparc64-linux-ranlib
27else
28AS := $(AS) -64
29LDFLAGS := -m elf64_sparc 15LDFLAGS := -m elf64_sparc
30endif
31 16
32ifneq ($(UNDECLARED_REGS),y) 17KBUILD_CFLAGS += -m64 -pipe -mno-fpu -mcpu=ultrasparc -mcmodel=medlow \
33CC_UNDECL = 18 -ffixed-g4 -ffixed-g5 -fcall-used-g7 -Wno-sign-compare \
34else 19 -Wa,--undeclared-regs
35CC_UNDECL = -Wa,--undeclared-regs 20KBUILD_CFLAGS += $(call cc-option,-mtune=ultrasparc3)
36AS := $(AS) --undeclared-regs 21KBUILD_AFLAGS += -m64 -mcpu=ultrasparc -Wa,--undeclared-regs
37endif
38
39ifneq ($(NEW_GCC),y)
40 KBUILD_CFLAGS += -pipe -mno-fpu -mtune=ultrasparc -mmedlow \
41 -ffixed-g4 -ffixed-g5 -fcall-used-g7 -Wno-sign-compare
42else
43 KBUILD_CFLAGS += -m64 -pipe -mno-fpu -mcpu=ultrasparc -mcmodel=medlow \
44 -ffixed-g4 -ffixed-g5 -fcall-used-g7 -Wno-sign-compare \
45 $(CC_UNDECL)
46 KBUILD_AFLAGS += -m64 -mcpu=ultrasparc $(CC_UNDECL)
47endif
48 22
49ifeq ($(CONFIG_MCOUNT),y) 23ifeq ($(CONFIG_MCOUNT),y)
50 KBUILD_CFLAGS += -pg 24 KBUILD_CFLAGS += -pg
diff --git a/arch/sparc64/defconfig b/arch/sparc64/defconfig
index 833d74b2b192..250958d1e3cb 100644
--- a/arch/sparc64/defconfig
+++ b/arch/sparc64/defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24 3# Linux kernel version: 2.6.25-rc1
4# Tue Feb 5 17:28:19 2008 4# Sun Feb 17 22:44:12 2008
5# 5#
6CONFIG_SPARC=y 6CONFIG_SPARC=y
7CONFIG_SPARC64=y 7CONFIG_SPARC64=y
@@ -10,6 +10,7 @@ CONFIG_GENERIC_CMOS_UPDATE=y
10CONFIG_GENERIC_CLOCKEVENTS=y 10CONFIG_GENERIC_CLOCKEVENTS=y
11CONFIG_64BIT=y 11CONFIG_64BIT=y
12CONFIG_MMU=y 12CONFIG_MMU=y
13CONFIG_IOMMU_HELPER=y
13CONFIG_QUICKLIST=y 14CONFIG_QUICKLIST=y
14CONFIG_STACKTRACE_SUPPORT=y 15CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y 16CONFIG_LOCKDEP_SUPPORT=y
@@ -21,6 +22,7 @@ CONFIG_HAVE_SETUP_PER_CPU_AREA=y
21CONFIG_ARCH_NO_VIRT_TO_BUS=y 22CONFIG_ARCH_NO_VIRT_TO_BUS=y
22CONFIG_OF=y 23CONFIG_OF=y
23CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y 24CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
25CONFIG_ARCH_SUPPORTS_AOUT=y
24CONFIG_SPARC64_PAGE_SIZE_8KB=y 26CONFIG_SPARC64_PAGE_SIZE_8KB=y
25# CONFIG_SPARC64_PAGE_SIZE_64KB is not set 27# CONFIG_SPARC64_PAGE_SIZE_64KB is not set
26# CONFIG_SPARC64_PAGE_SIZE_512KB is not set 28# CONFIG_SPARC64_PAGE_SIZE_512KB is not set
@@ -49,8 +51,6 @@ CONFIG_SYSVIPC_SYSCTL=y
49CONFIG_POSIX_MQUEUE=y 51CONFIG_POSIX_MQUEUE=y
50# CONFIG_BSD_PROCESS_ACCT is not set 52# CONFIG_BSD_PROCESS_ACCT is not set
51# CONFIG_TASKSTATS is not set 53# CONFIG_TASKSTATS is not set
52# CONFIG_USER_NS is not set
53# CONFIG_PID_NS is not set
54# CONFIG_AUDIT is not set 54# CONFIG_AUDIT is not set
55# CONFIG_IKCONFIG is not set 55# CONFIG_IKCONFIG is not set
56CONFIG_LOG_BUF_SHIFT=18 56CONFIG_LOG_BUF_SHIFT=18
@@ -60,6 +60,11 @@ CONFIG_FAIR_USER_SCHED=y
60# CONFIG_FAIR_CGROUP_SCHED is not set 60# CONFIG_FAIR_CGROUP_SCHED is not set
61CONFIG_SYSFS_DEPRECATED=y 61CONFIG_SYSFS_DEPRECATED=y
62CONFIG_RELAY=y 62CONFIG_RELAY=y
63CONFIG_NAMESPACES=y
64# CONFIG_UTS_NS is not set
65# CONFIG_IPC_NS is not set
66# CONFIG_USER_NS is not set
67# CONFIG_PID_NS is not set
63CONFIG_BLK_DEV_INITRD=y 68CONFIG_BLK_DEV_INITRD=y
64CONFIG_INITRAMFS_SOURCE="" 69CONFIG_INITRAMFS_SOURCE=""
65CONFIG_CC_OPTIMIZE_FOR_SIZE=y 70CONFIG_CC_OPTIMIZE_FOR_SIZE=y
@@ -74,6 +79,7 @@ CONFIG_HOTPLUG=y
74CONFIG_PRINTK=y 79CONFIG_PRINTK=y
75CONFIG_BUG=y 80CONFIG_BUG=y
76CONFIG_ELF_CORE=y 81CONFIG_ELF_CORE=y
82# CONFIG_COMPAT_BRK is not set
77CONFIG_BASE_FULL=y 83CONFIG_BASE_FULL=y
78CONFIG_FUTEX=y 84CONFIG_FUTEX=y
79CONFIG_ANON_INODES=y 85CONFIG_ANON_INODES=y
@@ -176,13 +182,13 @@ CONFIG_PCI_MSI=y
176CONFIG_SUN_OPENPROMFS=m 182CONFIG_SUN_OPENPROMFS=m
177CONFIG_SPARC32_COMPAT=y 183CONFIG_SPARC32_COMPAT=y
178CONFIG_COMPAT=y 184CONFIG_COMPAT=y
179CONFIG_BINFMT_ELF32=y
180# CONFIG_BINFMT_AOUT32 is not set 185# CONFIG_BINFMT_AOUT32 is not set
181 186
182# 187#
183# Executable file formats 188# Executable file formats
184# 189#
185CONFIG_BINFMT_ELF=y 190CONFIG_BINFMT_ELF=y
191CONFIG_COMPAT_BINFMT_ELF=y
186CONFIG_BINFMT_MISC=m 192CONFIG_BINFMT_MISC=m
187CONFIG_SOLARIS_EMUL=y 193CONFIG_SOLARIS_EMUL=y
188CONFIG_SCHED_SMT=y 194CONFIG_SCHED_SMT=y
@@ -354,6 +360,8 @@ CONFIG_MISC_DEVICES=y
354# CONFIG_EEPROM_93CX6 is not set 360# CONFIG_EEPROM_93CX6 is not set
355# CONFIG_SGI_IOC4 is not set 361# CONFIG_SGI_IOC4 is not set
356# CONFIG_TIFM_CORE is not set 362# CONFIG_TIFM_CORE is not set
363# CONFIG_ENCLOSURE_SERVICES is not set
364CONFIG_HAVE_IDE=y
357CONFIG_IDE=y 365CONFIG_IDE=y
358CONFIG_BLK_DEV_IDE=y 366CONFIG_BLK_DEV_IDE=y
359 367
@@ -376,6 +384,7 @@ CONFIG_IDE_PROC_FS=y
376# 384#
377CONFIG_IDE_GENERIC=y 385CONFIG_IDE_GENERIC=y
378# CONFIG_BLK_DEV_PLATFORM is not set 386# CONFIG_BLK_DEV_PLATFORM is not set
387CONFIG_BLK_DEV_IDEDMA_SFF=y
379 388
380# 389#
381# PCI IDE chipsets support 390# PCI IDE chipsets support
@@ -775,7 +784,6 @@ CONFIG_I2C_ALGOBIT=y
775# CONFIG_SENSORS_EEPROM is not set 784# CONFIG_SENSORS_EEPROM is not set
776# CONFIG_SENSORS_PCF8574 is not set 785# CONFIG_SENSORS_PCF8574 is not set
777# CONFIG_PCF8575 is not set 786# CONFIG_PCF8575 is not set
778# CONFIG_SENSORS_PCA9539 is not set
779# CONFIG_SENSORS_PCF8591 is not set 787# CONFIG_SENSORS_PCF8591 is not set
780# CONFIG_TPS65010 is not set 788# CONFIG_TPS65010 is not set
781# CONFIG_SENSORS_MAX6875 is not set 789# CONFIG_SENSORS_MAX6875 is not set
@@ -831,6 +839,7 @@ CONFIG_HWMON=y
831# CONFIG_SENSORS_SMSC47M1 is not set 839# CONFIG_SENSORS_SMSC47M1 is not set
832# CONFIG_SENSORS_SMSC47M192 is not set 840# CONFIG_SENSORS_SMSC47M192 is not set
833# CONFIG_SENSORS_SMSC47B397 is not set 841# CONFIG_SENSORS_SMSC47B397 is not set
842# CONFIG_SENSORS_ADS7828 is not set
834# CONFIG_SENSORS_THMC50 is not set 843# CONFIG_SENSORS_THMC50 is not set
835# CONFIG_SENSORS_VIA686A is not set 844# CONFIG_SENSORS_VIA686A is not set
836# CONFIG_SENSORS_VT1211 is not set 845# CONFIG_SENSORS_VT1211 is not set
@@ -840,9 +849,11 @@ CONFIG_HWMON=y
840# CONFIG_SENSORS_W83792D is not set 849# CONFIG_SENSORS_W83792D is not set
841# CONFIG_SENSORS_W83793 is not set 850# CONFIG_SENSORS_W83793 is not set
842# CONFIG_SENSORS_W83L785TS is not set 851# CONFIG_SENSORS_W83L785TS is not set
852# CONFIG_SENSORS_W83L786NG is not set
843# CONFIG_SENSORS_W83627HF is not set 853# CONFIG_SENSORS_W83627HF is not set
844# CONFIG_SENSORS_W83627EHF is not set 854# CONFIG_SENSORS_W83627EHF is not set
845# CONFIG_HWMON_DEBUG_CHIP is not set 855# CONFIG_HWMON_DEBUG_CHIP is not set
856# CONFIG_THERMAL is not set
846# CONFIG_WATCHDOG is not set 857# CONFIG_WATCHDOG is not set
847 858
848# 859#
@@ -1201,6 +1212,7 @@ CONFIG_USB_STORAGE=m
1201# CONFIG_USB_TEST is not set 1212# CONFIG_USB_TEST is not set
1202# CONFIG_USB_GADGET is not set 1213# CONFIG_USB_GADGET is not set
1203# CONFIG_MMC is not set 1214# CONFIG_MMC is not set
1215# CONFIG_MEMSTICK is not set
1204# CONFIG_NEW_LEDS is not set 1216# CONFIG_NEW_LEDS is not set
1205# CONFIG_INFINIBAND is not set 1217# CONFIG_INFINIBAND is not set
1206# CONFIG_RTC_CLASS is not set 1218# CONFIG_RTC_CLASS is not set
@@ -1242,12 +1254,10 @@ CONFIG_FS_POSIX_ACL=y
1242# CONFIG_XFS_FS is not set 1254# CONFIG_XFS_FS is not set
1243# CONFIG_GFS2_FS is not set 1255# CONFIG_GFS2_FS is not set
1244# CONFIG_OCFS2_FS is not set 1256# CONFIG_OCFS2_FS is not set
1245# CONFIG_MINIX_FS is not set 1257CONFIG_DNOTIFY=y
1246# CONFIG_ROMFS_FS is not set
1247CONFIG_INOTIFY=y 1258CONFIG_INOTIFY=y
1248CONFIG_INOTIFY_USER=y 1259CONFIG_INOTIFY_USER=y
1249# CONFIG_QUOTA is not set 1260# CONFIG_QUOTA is not set
1250CONFIG_DNOTIFY=y
1251# CONFIG_AUTOFS_FS is not set 1261# CONFIG_AUTOFS_FS is not set
1252# CONFIG_AUTOFS4_FS is not set 1262# CONFIG_AUTOFS4_FS is not set
1253# CONFIG_FUSE_FS is not set 1263# CONFIG_FUSE_FS is not set
@@ -1291,8 +1301,10 @@ CONFIG_HUGETLB_PAGE=y
1291# CONFIG_EFS_FS is not set 1301# CONFIG_EFS_FS is not set
1292# CONFIG_CRAMFS is not set 1302# CONFIG_CRAMFS is not set
1293# CONFIG_VXFS_FS is not set 1303# CONFIG_VXFS_FS is not set
1304# CONFIG_MINIX_FS is not set
1294# CONFIG_HPFS_FS is not set 1305# CONFIG_HPFS_FS is not set
1295# CONFIG_QNX4FS_FS is not set 1306# CONFIG_QNX4FS_FS is not set
1307# CONFIG_ROMFS_FS is not set
1296# CONFIG_SYSV_FS is not set 1308# CONFIG_SYSV_FS is not set
1297# CONFIG_UFS_FS is not set 1309# CONFIG_UFS_FS is not set
1298CONFIG_NETWORK_FILESYSTEMS=y 1310CONFIG_NETWORK_FILESYSTEMS=y
@@ -1370,6 +1382,7 @@ CONFIG_DETECT_SOFTLOCKUP=y
1370CONFIG_SCHEDSTATS=y 1382CONFIG_SCHEDSTATS=y
1371# CONFIG_TIMER_STATS is not set 1383# CONFIG_TIMER_STATS is not set
1372# CONFIG_SLUB_DEBUG_ON is not set 1384# CONFIG_SLUB_DEBUG_ON is not set
1385# CONFIG_SLUB_STATS is not set
1373# CONFIG_DEBUG_RT_MUTEXES is not set 1386# CONFIG_DEBUG_RT_MUTEXES is not set
1374# CONFIG_RT_MUTEX_TESTER is not set 1387# CONFIG_RT_MUTEX_TESTER is not set
1375# CONFIG_DEBUG_SPINLOCK is not set 1388# CONFIG_DEBUG_SPINLOCK is not set
@@ -1385,7 +1398,6 @@ CONFIG_DEBUG_BUGVERBOSE=y
1385# CONFIG_DEBUG_VM is not set 1398# CONFIG_DEBUG_VM is not set
1386# CONFIG_DEBUG_LIST is not set 1399# CONFIG_DEBUG_LIST is not set
1387# CONFIG_DEBUG_SG is not set 1400# CONFIG_DEBUG_SG is not set
1388CONFIG_FORCED_INLINING=y
1389# CONFIG_BOOT_PRINTK_DELAY is not set 1401# CONFIG_BOOT_PRINTK_DELAY is not set
1390# CONFIG_RCU_TORTURE_TEST is not set 1402# CONFIG_RCU_TORTURE_TEST is not set
1391# CONFIG_KPROBES_SANITY_TEST is not set 1403# CONFIG_KPROBES_SANITY_TEST is not set
@@ -1396,7 +1408,6 @@ CONFIG_FORCED_INLINING=y
1396# CONFIG_DEBUG_STACK_USAGE is not set 1408# CONFIG_DEBUG_STACK_USAGE is not set
1397# CONFIG_DEBUG_DCFLUSH is not set 1409# CONFIG_DEBUG_DCFLUSH is not set
1398# CONFIG_STACK_DEBUG is not set 1410# CONFIG_STACK_DEBUG is not set
1399# CONFIG_DEBUG_BOOTMEM is not set
1400# CONFIG_DEBUG_PAGEALLOC is not set 1411# CONFIG_DEBUG_PAGEALLOC is not set
1401 1412
1402# 1413#
diff --git a/arch/sparc64/kernel/ds.c b/arch/sparc64/kernel/ds.c
index eeb5a2fc788d..bd76482077be 100644
--- a/arch/sparc64/kernel/ds.c
+++ b/arch/sparc64/kernel/ds.c
@@ -525,10 +525,10 @@ static void dr_cpu_mark(struct ds_data *resp, int cpu, int ncpus,
525 } 525 }
526} 526}
527 527
528static int dr_cpu_configure(struct ds_info *dp, 528static int __cpuinit dr_cpu_configure(struct ds_info *dp,
529 struct ds_cap_state *cp, 529 struct ds_cap_state *cp,
530 u64 req_num, 530 u64 req_num,
531 cpumask_t *mask) 531 cpumask_t *mask)
532{ 532{
533 struct ds_data *resp; 533 struct ds_data *resp;
534 int resp_len, ncpus, cpu; 534 int resp_len, ncpus, cpu;
@@ -623,9 +623,9 @@ static int dr_cpu_unconfigure(struct ds_info *dp,
623 return 0; 623 return 0;
624} 624}
625 625
626static void dr_cpu_data(struct ds_info *dp, 626static void __cpuinit dr_cpu_data(struct ds_info *dp,
627 struct ds_cap_state *cp, 627 struct ds_cap_state *cp,
628 void *buf, int len) 628 void *buf, int len)
629{ 629{
630 struct ds_data *data = buf; 630 struct ds_data *data = buf;
631 struct dr_cpu_tag *tag = (struct dr_cpu_tag *) (data + 1); 631 struct dr_cpu_tag *tag = (struct dr_cpu_tag *) (data + 1);
diff --git a/arch/sparc64/kernel/hvtramp.S b/arch/sparc64/kernel/hvtramp.S
index b692e044a463..0236c43772fa 100644
--- a/arch/sparc64/kernel/hvtramp.S
+++ b/arch/sparc64/kernel/hvtramp.S
@@ -3,6 +3,8 @@
3 * Copyright (C) 2007 David S. Miller <davem@davemloft.net> 3 * Copyright (C) 2007 David S. Miller <davem@davemloft.net>
4 */ 4 */
5 5
6#include <linux/init.h>
7
6#include <asm/thread_info.h> 8#include <asm/thread_info.h>
7#include <asm/hypervisor.h> 9#include <asm/hypervisor.h>
8#include <asm/scratchpad.h> 10#include <asm/scratchpad.h>
@@ -13,7 +15,7 @@
13#include <asm/head.h> 15#include <asm/head.h>
14#include <asm/asi.h> 16#include <asm/asi.h>
15 17
16 .text 18 __CPUINIT
17 .align 8 19 .align 8
18 .globl hv_cpu_startup, hv_cpu_startup_end 20 .globl hv_cpu_startup, hv_cpu_startup_end
19 21
diff --git a/arch/sparc64/kernel/iommu.c b/arch/sparc64/kernel/iommu.c
index d3276ebcfb47..fbaab3497bfd 100644
--- a/arch/sparc64/kernel/iommu.c
+++ b/arch/sparc64/kernel/iommu.c
@@ -134,7 +134,8 @@ unsigned long iommu_range_alloc(struct device *dev,
134 else 134 else
135 boundary_size = ALIGN(1UL << 32, 1 << IO_PAGE_SHIFT); 135 boundary_size = ALIGN(1UL << 32, 1 << IO_PAGE_SHIFT);
136 136
137 n = iommu_area_alloc(arena->map, limit, start, npages, 0, 137 n = iommu_area_alloc(arena->map, limit, start, npages,
138 iommu->page_table_map_base >> IO_PAGE_SHIFT,
138 boundary_size >> IO_PAGE_SHIFT, 0); 139 boundary_size >> IO_PAGE_SHIFT, 0);
139 if (n == -1) { 140 if (n == -1) {
140 if (likely(pass < 1)) { 141 if (likely(pass < 1)) {
@@ -200,12 +201,11 @@ int iommu_table_init(struct iommu *iommu, int tsbsize,
200 /* Allocate and initialize the dummy page which we 201 /* Allocate and initialize the dummy page which we
201 * set inactive IO PTEs to point to. 202 * set inactive IO PTEs to point to.
202 */ 203 */
203 iommu->dummy_page = __get_free_pages(GFP_KERNEL, 0); 204 iommu->dummy_page = get_zeroed_page(GFP_KERNEL);
204 if (!iommu->dummy_page) { 205 if (!iommu->dummy_page) {
205 printk(KERN_ERR "IOMMU: Error, gfp(dummy_page) failed.\n"); 206 printk(KERN_ERR "IOMMU: Error, gfp(dummy_page) failed.\n");
206 goto out_free_map; 207 goto out_free_map;
207 } 208 }
208 memset((void *)iommu->dummy_page, 0, PAGE_SIZE);
209 iommu->dummy_page_pa = (unsigned long) __pa(iommu->dummy_page); 209 iommu->dummy_page_pa = (unsigned long) __pa(iommu->dummy_page);
210 210
211 /* Now allocate and setup the IOMMU page table itself. */ 211 /* Now allocate and setup the IOMMU page table itself. */
diff --git a/arch/sparc64/kernel/kprobes.c b/arch/sparc64/kernel/kprobes.c
index 34fc3ddd5002..f43b5d755354 100644
--- a/arch/sparc64/kernel/kprobes.c
+++ b/arch/sparc64/kernel/kprobes.c
@@ -465,8 +465,6 @@ void __kprobes jprobe_return(void)
465 465
466extern void jprobe_return_trap_instruction(void); 466extern void jprobe_return_trap_instruction(void);
467 467
468extern void __show_regs(struct pt_regs * regs);
469
470int __kprobes longjmp_break_handler(struct kprobe *p, struct pt_regs *regs) 468int __kprobes longjmp_break_handler(struct kprobe *p, struct pt_regs *regs)
471{ 469{
472 u32 *addr = (u32 *) regs->tpc; 470 u32 *addr = (u32 *) regs->tpc;
diff --git a/arch/sparc64/kernel/mdesc.c b/arch/sparc64/kernel/mdesc.c
index 856659bb1311..910083589569 100644
--- a/arch/sparc64/kernel/mdesc.c
+++ b/arch/sparc64/kernel/mdesc.c
@@ -758,7 +758,7 @@ static void __devinit get_mondo_data(struct mdesc_handle *hp, u64 mp,
758 get_one_mondo_bits(val, &tb->nonresum_qmask, 2); 758 get_one_mondo_bits(val, &tb->nonresum_qmask, 2);
759} 759}
760 760
761void __devinit mdesc_fill_in_cpu_data(cpumask_t mask) 761void __cpuinit mdesc_fill_in_cpu_data(cpumask_t mask)
762{ 762{
763 struct mdesc_handle *hp = mdesc_grab(); 763 struct mdesc_handle *hp = mdesc_grab();
764 u64 mp; 764 u64 mp;
diff --git a/arch/sparc64/kernel/pci.c b/arch/sparc64/kernel/pci.c
index a61c38fe75ea..545356b00e2e 100644
--- a/arch/sparc64/kernel/pci.c
+++ b/arch/sparc64/kernel/pci.c
@@ -225,20 +225,6 @@ static int __init pci_controller_init(const char *model_name, int namelen, struc
225 return 0; 225 return 0;
226} 226}
227 227
228static int __init pci_is_controller(const char *model_name, int namelen, struct device_node *dp)
229{
230 int i;
231
232 for (i = 0; i < PCI_NUM_CONTROLLER_TYPES; i++) {
233 if (!strncmp(model_name,
234 pci_controller_table[i].model_name,
235 namelen)) {
236 return 1;
237 }
238 }
239 return 0;
240}
241
242static int __init pci_controller_scan(int (*handler)(const char *, int, struct device_node *)) 228static int __init pci_controller_scan(int (*handler)(const char *, int, struct device_node *))
243{ 229{
244 struct device_node *dp; 230 struct device_node *dp;
@@ -273,13 +259,6 @@ static int __init pci_controller_scan(int (*handler)(const char *, int, struct d
273 return count; 259 return count;
274} 260}
275 261
276
277/* Is there some PCI controller in the system? */
278int __init pcic_present(void)
279{
280 return pci_controller_scan(pci_is_controller);
281}
282
283/* Find each controller in the system, attach and initialize 262/* Find each controller in the system, attach and initialize
284 * software state structure for each and link into the 263 * software state structure for each and link into the
285 * pci_pbm_root. Setup the controller enough such 264 * pci_pbm_root. Setup the controller enough such
diff --git a/arch/sparc64/kernel/power.c b/arch/sparc64/kernel/power.c
index 850cdffdd69c..eae8ca2a6ba5 100644
--- a/arch/sparc64/kernel/power.c
+++ b/arch/sparc64/kernel/power.c
@@ -20,6 +20,7 @@
20#include <asm/of_device.h> 20#include <asm/of_device.h>
21#include <asm/io.h> 21#include <asm/io.h>
22#include <asm/sstate.h> 22#include <asm/sstate.h>
23#include <asm/reboot.h>
23 24
24#include <linux/unistd.h> 25#include <linux/unistd.h>
25 26
@@ -39,8 +40,6 @@ static irqreturn_t power_handler(int irq, void *dev_id)
39 return IRQ_HANDLED; 40 return IRQ_HANDLED;
40} 41}
41 42
42extern void machine_halt(void);
43extern void machine_alt_power_off(void);
44static void (*poweroff_method)(void) = machine_alt_power_off; 43static void (*poweroff_method)(void) = machine_alt_power_off;
45 44
46void machine_power_off(void) 45void machine_power_off(void)
diff --git a/arch/sparc64/kernel/process.c b/arch/sparc64/kernel/process.c
index 1b2379174988..2aafce7dfc0e 100644
--- a/arch/sparc64/kernel/process.c
+++ b/arch/sparc64/kernel/process.c
@@ -30,6 +30,7 @@
30#include <linux/tick.h> 30#include <linux/tick.h>
31#include <linux/init.h> 31#include <linux/init.h>
32#include <linux/cpu.h> 32#include <linux/cpu.h>
33#include <linux/elfcore.h>
33 34
34#include <asm/oplib.h> 35#include <asm/oplib.h>
35#include <asm/uaccess.h> 36#include <asm/uaccess.h>
@@ -47,6 +48,8 @@
47#include <asm/unistd.h> 48#include <asm/unistd.h>
48#include <asm/hypervisor.h> 49#include <asm/hypervisor.h>
49#include <asm/sstate.h> 50#include <asm/sstate.h>
51#include <asm/reboot.h>
52#include <asm/syscalls.h>
50 53
51/* #define VERBOSE_SHOWREGS */ 54/* #define VERBOSE_SHOWREGS */
52 55
@@ -113,16 +116,9 @@ void cpu_idle(void)
113 116
114extern char reboot_command []; 117extern char reboot_command [];
115 118
116extern void (*prom_palette)(int);
117extern void (*prom_keyboard)(void);
118
119void machine_halt(void) 119void machine_halt(void)
120{ 120{
121 sstate_halt(); 121 sstate_halt();
122 if (prom_palette)
123 prom_palette (1);
124 if (prom_keyboard)
125 prom_keyboard();
126 prom_halt(); 122 prom_halt();
127 panic("Halt failed!"); 123 panic("Halt failed!");
128} 124}
@@ -130,10 +126,6 @@ void machine_halt(void)
130void machine_alt_power_off(void) 126void machine_alt_power_off(void)
131{ 127{
132 sstate_poweroff(); 128 sstate_poweroff();
133 if (prom_palette)
134 prom_palette(1);
135 if (prom_keyboard)
136 prom_keyboard();
137 prom_halt_power_off(); 129 prom_halt_power_off();
138 panic("Power-off failed!"); 130 panic("Power-off failed!");
139} 131}
@@ -145,10 +137,6 @@ void machine_restart(char * cmd)
145 sstate_reboot(); 137 sstate_reboot();
146 p = strchr (reboot_command, '\n'); 138 p = strchr (reboot_command, '\n');
147 if (p) *p = 0; 139 if (p) *p = 0;
148 if (prom_palette)
149 prom_palette (1);
150 if (prom_keyboard)
151 prom_keyboard();
152 if (cmd) 140 if (cmd)
153 prom_reboot(cmd); 141 prom_reboot(cmd);
154 if (*reboot_command) 142 if (*reboot_command)
@@ -226,62 +214,6 @@ static void show_regwindow(struct pt_regs *regs)
226 print_symbol("I7: <%s>\n", rwk->ins[7]); 214 print_symbol("I7: <%s>\n", rwk->ins[7]);
227} 215}
228 216
229void show_stackframe(struct sparc_stackf *sf)
230{
231 unsigned long size;
232 unsigned long *stk;
233 int i;
234
235 printk("l0: %016lx l1: %016lx l2: %016lx l3: %016lx\n"
236 "l4: %016lx l5: %016lx l6: %016lx l7: %016lx\n",
237 sf->locals[0], sf->locals[1], sf->locals[2], sf->locals[3],
238 sf->locals[4], sf->locals[5], sf->locals[6], sf->locals[7]);
239 printk("i0: %016lx i1: %016lx i2: %016lx i3: %016lx\n"
240 "i4: %016lx i5: %016lx fp: %016lx ret_pc: %016lx\n",
241 sf->ins[0], sf->ins[1], sf->ins[2], sf->ins[3],
242 sf->ins[4], sf->ins[5], (unsigned long)sf->fp, sf->callers_pc);
243 printk("sp: %016lx x0: %016lx x1: %016lx x2: %016lx\n"
244 "x3: %016lx x4: %016lx x5: %016lx xx: %016lx\n",
245 (unsigned long)sf->structptr, sf->xargs[0], sf->xargs[1],
246 sf->xargs[2], sf->xargs[3], sf->xargs[4], sf->xargs[5],
247 sf->xxargs[0]);
248 size = ((unsigned long)sf->fp) - ((unsigned long)sf);
249 size -= STACKFRAME_SZ;
250 stk = (unsigned long *)((unsigned long)sf + STACKFRAME_SZ);
251 i = 0;
252 do {
253 printk("s%d: %016lx\n", i++, *stk++);
254 } while ((size -= sizeof(unsigned long)));
255}
256
257void show_stackframe32(struct sparc_stackf32 *sf)
258{
259 unsigned long size;
260 unsigned *stk;
261 int i;
262
263 printk("l0: %08x l1: %08x l2: %08x l3: %08x\n",
264 sf->locals[0], sf->locals[1], sf->locals[2], sf->locals[3]);
265 printk("l4: %08x l5: %08x l6: %08x l7: %08x\n",
266 sf->locals[4], sf->locals[5], sf->locals[6], sf->locals[7]);
267 printk("i0: %08x i1: %08x i2: %08x i3: %08x\n",
268 sf->ins[0], sf->ins[1], sf->ins[2], sf->ins[3]);
269 printk("i4: %08x i5: %08x fp: %08x ret_pc: %08x\n",
270 sf->ins[4], sf->ins[5], sf->fp, sf->callers_pc);
271 printk("sp: %08x x0: %08x x1: %08x x2: %08x\n"
272 "x3: %08x x4: %08x x5: %08x xx: %08x\n",
273 sf->structptr, sf->xargs[0], sf->xargs[1],
274 sf->xargs[2], sf->xargs[3], sf->xargs[4], sf->xargs[5],
275 sf->xxargs[0]);
276 size = ((unsigned long)sf->fp) - ((unsigned long)sf);
277 size -= STACKFRAME32_SZ;
278 stk = (unsigned *)((unsigned long)sf + STACKFRAME32_SZ);
279 i = 0;
280 do {
281 printk("s%d: %08x\n", i++, *stk++);
282 } while ((size -= sizeof(unsigned)));
283}
284
285#ifdef CONFIG_SMP 217#ifdef CONFIG_SMP
286static DEFINE_SPINLOCK(regdump_lock); 218static DEFINE_SPINLOCK(regdump_lock);
287#endif 219#endif
@@ -369,24 +301,6 @@ void show_regs(struct pt_regs *regs)
369#endif 301#endif
370} 302}
371 303
372void show_regs32(struct pt_regs32 *regs)
373{
374 printk("PSR: %08x PC: %08x NPC: %08x Y: %08x %s\n", regs->psr,
375 regs->pc, regs->npc, regs->y, print_tainted());
376 printk("g0: %08x g1: %08x g2: %08x g3: %08x ",
377 regs->u_regs[0], regs->u_regs[1], regs->u_regs[2],
378 regs->u_regs[3]);
379 printk("g4: %08x g5: %08x g6: %08x g7: %08x\n",
380 regs->u_regs[4], regs->u_regs[5], regs->u_regs[6],
381 regs->u_regs[7]);
382 printk("o0: %08x o1: %08x o2: %08x o3: %08x ",
383 regs->u_regs[8], regs->u_regs[9], regs->u_regs[10],
384 regs->u_regs[11]);
385 printk("o4: %08x o5: %08x sp: %08x ret_pc: %08x\n",
386 regs->u_regs[12], regs->u_regs[13], regs->u_regs[14],
387 regs->u_regs[15]);
388}
389
390unsigned long thread_saved_pc(struct task_struct *tsk) 304unsigned long thread_saved_pc(struct task_struct *tsk)
391{ 305{
392 struct thread_info *ti = task_thread_info(tsk); 306 struct thread_info *ti = task_thread_info(tsk);
diff --git a/arch/sparc64/kernel/prom.c b/arch/sparc64/kernel/prom.c
index a246e962e5a7..68964ddcde1e 100644
--- a/arch/sparc64/kernel/prom.c
+++ b/arch/sparc64/kernel/prom.c
@@ -1716,7 +1716,6 @@ static void __init of_console_init(void)
1716 1716
1717 of_console_device = dp; 1717 of_console_device = dp;
1718 1718
1719 prom_printf(msg, of_console_path);
1720 printk(msg, of_console_path); 1719 printk(msg, of_console_path);
1721} 1720}
1722 1721
diff --git a/arch/sparc64/kernel/setup.c b/arch/sparc64/kernel/setup.c
index 5964d8653ade..d036dbe72864 100644
--- a/arch/sparc64/kernel/setup.c
+++ b/arch/sparc64/kernel/setup.c
@@ -68,33 +68,22 @@ struct screen_info screen_info = {
68 16 /* orig-video-points */ 68 16 /* orig-video-points */
69}; 69};
70 70
71void (*prom_palette)(int);
72void (*prom_keyboard)(void);
73
74static void 71static void
75prom_console_write(struct console *con, const char *s, unsigned n) 72prom_console_write(struct console *con, const char *s, unsigned n)
76{ 73{
77 prom_write(s, n); 74 prom_write(s, n);
78} 75}
79 76
80unsigned int boot_flags = 0;
81#define BOOTME_DEBUG 0x1
82
83/* Exported for mm/init.c:paging_init. */ 77/* Exported for mm/init.c:paging_init. */
84unsigned long cmdline_memory_size = 0; 78unsigned long cmdline_memory_size = 0;
85 79
86static struct console prom_debug_console = { 80static struct console prom_early_console = {
87 .name = "debug", 81 .name = "earlyprom",
88 .write = prom_console_write, 82 .write = prom_console_write,
89 .flags = CON_PRINTBUFFER, 83 .flags = CON_PRINTBUFFER | CON_BOOT,
90 .index = -1, 84 .index = -1,
91}; 85};
92 86
93/* XXX Implement this at some point... */
94void kernel_enter_debugger(void)
95{
96}
97
98/* 87/*
99 * Process kernel command line switches that are specific to the 88 * Process kernel command line switches that are specific to the
100 * SPARC or that require special low-level processing. 89 * SPARC or that require special low-level processing.
@@ -103,8 +92,6 @@ static void __init process_switch(char c)
103{ 92{
104 switch (c) { 93 switch (c) {
105 case 'd': 94 case 'd':
106 boot_flags |= BOOTME_DEBUG;
107 break;
108 case 's': 95 case 's':
109 break; 96 break;
110 case 'h': 97 case 'h':
@@ -112,8 +99,7 @@ static void __init process_switch(char c)
112 prom_halt(); 99 prom_halt();
113 break; 100 break;
114 case 'p': 101 case 'p':
115 /* Use PROM debug console. */ 102 /* Just ignore, this behavior is now the default. */
116 register_console(&prom_debug_console);
117 break; 103 break;
118 case 'P': 104 case 'P':
119 /* Force UltraSPARC-III P-Cache on. */ 105 /* Force UltraSPARC-III P-Cache on. */
@@ -168,8 +154,6 @@ static void __init boot_flags_init(char *commands)
168 } 154 }
169} 155}
170 156
171extern void panic_setup(char *, int *);
172
173extern unsigned short root_flags; 157extern unsigned short root_flags;
174extern unsigned short root_dev; 158extern unsigned short root_dev;
175extern unsigned short ram_flags; 159extern unsigned short ram_flags;
@@ -296,6 +280,9 @@ void __init setup_arch(char **cmdline_p)
296 *cmdline_p = prom_getbootargs(); 280 *cmdline_p = prom_getbootargs();
297 strcpy(boot_command_line, *cmdline_p); 281 strcpy(boot_command_line, *cmdline_p);
298 282
283 boot_flags_init(*cmdline_p);
284 register_console(&prom_early_console);
285
299 if (tlb_type == hypervisor) 286 if (tlb_type == hypervisor)
300 printk("ARCH: SUN4V\n"); 287 printk("ARCH: SUN4V\n");
301 else 288 else
@@ -307,8 +294,6 @@ void __init setup_arch(char **cmdline_p)
307 conswitchp = &prom_con; 294 conswitchp = &prom_con;
308#endif 295#endif
309 296
310 boot_flags_init(*cmdline_p);
311
312 idprom_init(); 297 idprom_init();
313 298
314 if (!root_flags) 299 if (!root_flags)
diff --git a/arch/sparc64/kernel/smp.c b/arch/sparc64/kernel/smp.c
index a8052b76df41..cc454731d879 100644
--- a/arch/sparc64/kernel/smp.c
+++ b/arch/sparc64/kernel/smp.c
@@ -86,7 +86,7 @@ extern void setup_sparc64_timer(void);
86 86
87static volatile unsigned long callin_flag = 0; 87static volatile unsigned long callin_flag = 0;
88 88
89void __devinit smp_callin(void) 89void __cpuinit smp_callin(void)
90{ 90{
91 int cpuid = hard_smp_processor_id(); 91 int cpuid = hard_smp_processor_id();
92 92
diff --git a/arch/sparc64/kernel/sparc64_ksyms.c b/arch/sparc64/kernel/sparc64_ksyms.c
index 68db08930399..51fa773f38c9 100644
--- a/arch/sparc64/kernel/sparc64_ksyms.c
+++ b/arch/sparc64/kernel/sparc64_ksyms.c
@@ -85,7 +85,6 @@ extern int (*handle_mathemu)(struct pt_regs *, struct fpustate *);
85extern long sparc32_open(const char __user * filename, int flags, int mode); 85extern long sparc32_open(const char __user * filename, int flags, int mode);
86extern int io_remap_pfn_range(struct vm_area_struct *vma, unsigned long from, 86extern int io_remap_pfn_range(struct vm_area_struct *vma, unsigned long from,
87 unsigned long pfn, unsigned long size, pgprot_t prot); 87 unsigned long pfn, unsigned long size, pgprot_t prot);
88extern void (*prom_palette)(int);
89 88
90extern int __ashrdi3(int, int); 89extern int __ashrdi3(int, int);
91 90
@@ -355,5 +354,3 @@ EXPORT_SYMBOL(xor_niagara_2);
355EXPORT_SYMBOL(xor_niagara_3); 354EXPORT_SYMBOL(xor_niagara_3);
356EXPORT_SYMBOL(xor_niagara_4); 355EXPORT_SYMBOL(xor_niagara_4);
357EXPORT_SYMBOL(xor_niagara_5); 356EXPORT_SYMBOL(xor_niagara_5);
358
359EXPORT_SYMBOL(prom_palette);
diff --git a/arch/sparc64/kernel/trampoline.S b/arch/sparc64/kernel/trampoline.S
index 04e81dda13d0..4ae2e525d68b 100644
--- a/arch/sparc64/kernel/trampoline.S
+++ b/arch/sparc64/kernel/trampoline.S
@@ -4,6 +4,8 @@
4 * Copyright (C) 1997 David S. Miller (davem@caip.rutgers.edu) 4 * Copyright (C) 1997 David S. Miller (davem@caip.rutgers.edu)
5 */ 5 */
6 6
7#include <linux/init.h>
8
7#include <asm/head.h> 9#include <asm/head.h>
8#include <asm/asi.h> 10#include <asm/asi.h>
9#include <asm/lsu.h> 11#include <asm/lsu.h>
@@ -36,7 +38,7 @@ dtlb_load:
36tramp_stack: 38tramp_stack:
37 .skip TRAMP_STACK_SIZE 39 .skip TRAMP_STACK_SIZE
38 40
39 .text 41 __CPUINIT
40 .align 8 42 .align 8
41 .globl sparc64_cpu_startup, sparc64_cpu_startup_end 43 .globl sparc64_cpu_startup, sparc64_cpu_startup_end
42sparc64_cpu_startup: 44sparc64_cpu_startup:
diff --git a/arch/sparc64/kernel/traps.c b/arch/sparc64/kernel/traps.c
index 2b6abf633343..007f5317c0de 100644
--- a/arch/sparc64/kernel/traps.c
+++ b/arch/sparc64/kernel/traps.c
@@ -1791,8 +1791,6 @@ static const char *sun4v_err_type_to_str(u32 type)
1791 }; 1791 };
1792} 1792}
1793 1793
1794extern void __show_regs(struct pt_regs * regs);
1795
1796static void sun4v_log_error(struct pt_regs *regs, struct sun4v_error_entry *ent, int cpu, const char *pfx, atomic_t *ocnt) 1794static void sun4v_log_error(struct pt_regs *regs, struct sun4v_error_entry *ent, int cpu, const char *pfx, atomic_t *ocnt)
1797{ 1795{
1798 int cnt; 1796 int cnt;
diff --git a/arch/sparc64/kernel/unaligned.c b/arch/sparc64/kernel/unaligned.c
index dc7bf1b6321c..1a511e9f0d3e 100644
--- a/arch/sparc64/kernel/unaligned.c
+++ b/arch/sparc64/kernel/unaligned.c
@@ -7,6 +7,7 @@
7 */ 7 */
8 8
9 9
10#include <linux/jiffies.h>
10#include <linux/kernel.h> 11#include <linux/kernel.h>
11#include <linux/sched.h> 12#include <linux/sched.h>
12#include <linux/mm.h> 13#include <linux/mm.h>
@@ -283,7 +284,7 @@ static void log_unaligned(struct pt_regs *regs)
283{ 284{
284 static unsigned long count, last_time; 285 static unsigned long count, last_time;
285 286
286 if (jiffies - last_time > 5 * HZ) 287 if (time_after(jiffies, last_time + 5 * HZ))
287 count = 0; 288 count = 0;
288 if (count < 5) { 289 if (count < 5) {
289 last_time = jiffies; 290 last_time = jiffies;
diff --git a/arch/sparc64/mm/fault.c b/arch/sparc64/mm/fault.c
index e2027f27c0fe..2650d0d33ac2 100644
--- a/arch/sparc64/mm/fault.c
+++ b/arch/sparc64/mm/fault.c
@@ -244,16 +244,8 @@ static void do_kernel_fault(struct pt_regs *regs, int si_code, int fault_code,
244 if (regs->tstate & TSTATE_PRIV) { 244 if (regs->tstate & TSTATE_PRIV) {
245 const struct exception_table_entry *entry; 245 const struct exception_table_entry *entry;
246 246
247 if (asi == ASI_P && (insn & 0xc0800000) == 0xc0800000) { 247 entry = search_exception_tables(regs->tpc);
248 if (insn & 0x2000) 248 if (entry) {
249 asi = (regs->tstate >> 24);
250 else
251 asi = (insn >> 5);
252 }
253
254 /* Look in asi.h: All _S asis have LS bit set */
255 if ((asi & 0x1) &&
256 (entry = search_exception_tables(regs->tpc))) {
257 regs->tpc = entry->fixup; 249 regs->tpc = entry->fixup;
258 regs->tnpc = regs->tpc + 4; 250 regs->tnpc = regs->tpc + 4;
259 return; 251 return;
@@ -294,7 +286,7 @@ asmlinkage void __kprobes do_sparc64_fault(struct pt_regs *regs)
294 unsigned long tpc = regs->tpc; 286 unsigned long tpc = regs->tpc;
295 287
296 /* Sanity check the PC. */ 288 /* Sanity check the PC. */
297 if ((tpc >= KERNBASE && tpc < (unsigned long) _etext) || 289 if ((tpc >= KERNBASE && tpc < (unsigned long) __init_end) ||
298 (tpc >= MODULES_VADDR && tpc < MODULES_END)) { 290 (tpc >= MODULES_VADDR && tpc < MODULES_END)) {
299 /* Valid, no problems... */ 291 /* Valid, no problems... */
300 } else { 292 } else {
diff --git a/arch/sparc64/mm/init.c b/arch/sparc64/mm/init.c
index e726c45645ff..b5c30416fdac 100644
--- a/arch/sparc64/mm/init.c
+++ b/arch/sparc64/mm/init.c
@@ -618,9 +618,9 @@ static void __init inherit_prom_mappings(void)
618 read_obp_translations(); 618 read_obp_translations();
619 619
620 /* Now fixup OBP's idea about where we really are mapped. */ 620 /* Now fixup OBP's idea about where we really are mapped. */
621 prom_printf("Remapping the kernel... "); 621 printk("Remapping the kernel... ");
622 remap_kernel(); 622 remap_kernel();
623 prom_printf("done.\n"); 623 printk("done.\n");
624} 624}
625 625
626void prom_world(int enter) 626void prom_world(int enter)
@@ -739,11 +739,6 @@ static unsigned long __init choose_bootmap_pfn(unsigned long start_pfn,
739 avoid_end = PAGE_ALIGN(initrd_end); 739 avoid_end = PAGE_ALIGN(initrd_end);
740#endif 740#endif
741 741
742#ifdef CONFIG_DEBUG_BOOTMEM
743 prom_printf("choose_bootmap_pfn: kern[%lx:%lx] avoid[%lx:%lx]\n",
744 kern_base, PAGE_ALIGN(kern_base + kern_size),
745 avoid_start, avoid_end);
746#endif
747 for (i = 0; i < pavail_ents; i++) { 742 for (i = 0; i < pavail_ents; i++) {
748 unsigned long start, end; 743 unsigned long start, end;
749 744
@@ -777,10 +772,6 @@ static unsigned long __init choose_bootmap_pfn(unsigned long start_pfn,
777 } 772 }
778 773
779 /* OK, it doesn't overlap anything, use it. */ 774 /* OK, it doesn't overlap anything, use it. */
780#ifdef CONFIG_DEBUG_BOOTMEM
781 prom_printf("choose_bootmap_pfn: Using %lx [%lx]\n",
782 start >> PAGE_SHIFT, start);
783#endif
784 return start >> PAGE_SHIFT; 775 return start >> PAGE_SHIFT;
785 } 776 }
786 } 777 }
@@ -920,10 +911,6 @@ static unsigned long __init bootmem_init(unsigned long *pages_avail,
920 unsigned long bootmap_pfn, bytes_avail, size; 911 unsigned long bootmap_pfn, bytes_avail, size;
921 int i; 912 int i;
922 913
923#ifdef CONFIG_DEBUG_BOOTMEM
924 prom_printf("bootmem_init: Scan pavail, ");
925#endif
926
927 bytes_avail = 0UL; 914 bytes_avail = 0UL;
928 for (i = 0; i < pavail_ents; i++) { 915 for (i = 0; i < pavail_ents; i++) {
929 end_of_phys_memory = pavail[i].phys_addr + 916 end_of_phys_memory = pavail[i].phys_addr +
@@ -970,33 +957,20 @@ static unsigned long __init bootmem_init(unsigned long *pages_avail,
970 957
971 bootmap_pfn = choose_bootmap_pfn(min_low_pfn, end_pfn); 958 bootmap_pfn = choose_bootmap_pfn(min_low_pfn, end_pfn);
972 959
973#ifdef CONFIG_DEBUG_BOOTMEM
974 prom_printf("init_bootmem(min[%lx], bootmap[%lx], max[%lx])\n",
975 min_low_pfn, bootmap_pfn, max_low_pfn);
976#endif
977 bootmap_size = init_bootmem_node(NODE_DATA(0), bootmap_pfn, 960 bootmap_size = init_bootmem_node(NODE_DATA(0), bootmap_pfn,
978 min_low_pfn, end_pfn); 961 min_low_pfn, end_pfn);
979 962
980 /* Now register the available physical memory with the 963 /* Now register the available physical memory with the
981 * allocator. 964 * allocator.
982 */ 965 */
983 for (i = 0; i < pavail_ents; i++) { 966 for (i = 0; i < pavail_ents; i++)
984#ifdef CONFIG_DEBUG_BOOTMEM
985 prom_printf("free_bootmem(pavail:%d): base[%lx] size[%lx]\n",
986 i, pavail[i].phys_addr, pavail[i].reg_size);
987#endif
988 free_bootmem(pavail[i].phys_addr, pavail[i].reg_size); 967 free_bootmem(pavail[i].phys_addr, pavail[i].reg_size);
989 }
990 968
991#ifdef CONFIG_BLK_DEV_INITRD 969#ifdef CONFIG_BLK_DEV_INITRD
992 if (initrd_start) { 970 if (initrd_start) {
993 size = initrd_end - initrd_start; 971 size = initrd_end - initrd_start;
994 972
995 /* Reserve the initrd image area. */ 973 /* Reserve the initrd image area. */
996#ifdef CONFIG_DEBUG_BOOTMEM
997 prom_printf("reserve_bootmem(initrd): base[%llx] size[%lx]\n",
998 initrd_start, initrd_end);
999#endif
1000 reserve_bootmem(initrd_start, size, BOOTMEM_DEFAULT); 974 reserve_bootmem(initrd_start, size, BOOTMEM_DEFAULT);
1001 975
1002 initrd_start += PAGE_OFFSET; 976 initrd_start += PAGE_OFFSET;
@@ -1004,9 +978,6 @@ static unsigned long __init bootmem_init(unsigned long *pages_avail,
1004 } 978 }
1005#endif 979#endif
1006 /* Reserve the kernel text/data/bss. */ 980 /* Reserve the kernel text/data/bss. */
1007#ifdef CONFIG_DEBUG_BOOTMEM
1008 prom_printf("reserve_bootmem(kernel): base[%lx] size[%lx]\n", kern_base, kern_size);
1009#endif
1010 reserve_bootmem(kern_base, kern_size, BOOTMEM_DEFAULT); 981 reserve_bootmem(kern_base, kern_size, BOOTMEM_DEFAULT);
1011 *pages_avail -= PAGE_ALIGN(kern_size) >> PAGE_SHIFT; 982 *pages_avail -= PAGE_ALIGN(kern_size) >> PAGE_SHIFT;
1012 983
@@ -1020,10 +991,6 @@ static unsigned long __init bootmem_init(unsigned long *pages_avail,
1020 * in free_all_bootmem. 991 * in free_all_bootmem.
1021 */ 992 */
1022 size = bootmap_size; 993 size = bootmap_size;
1023#ifdef CONFIG_DEBUG_BOOTMEM
1024 prom_printf("reserve_bootmem(bootmap): base[%lx] size[%lx]\n",
1025 (bootmap_pfn << PAGE_SHIFT), size);
1026#endif
1027 reserve_bootmem((bootmap_pfn << PAGE_SHIFT), size, BOOTMEM_DEFAULT); 994 reserve_bootmem((bootmap_pfn << PAGE_SHIFT), size, BOOTMEM_DEFAULT);
1028 995
1029 for (i = 0; i < pavail_ents; i++) { 996 for (i = 0; i < pavail_ents; i++) {
@@ -1031,10 +998,6 @@ static unsigned long __init bootmem_init(unsigned long *pages_avail,
1031 998
1032 start_pfn = pavail[i].phys_addr >> PAGE_SHIFT; 999 start_pfn = pavail[i].phys_addr >> PAGE_SHIFT;
1033 end_pfn = (start_pfn + (pavail[i].reg_size >> PAGE_SHIFT)); 1000 end_pfn = (start_pfn + (pavail[i].reg_size >> PAGE_SHIFT));
1034#ifdef CONFIG_DEBUG_BOOTMEM
1035 prom_printf("memory_present(0, %lx, %lx)\n",
1036 start_pfn, end_pfn);
1037#endif
1038 memory_present(0, start_pfn, end_pfn); 1001 memory_present(0, start_pfn, end_pfn);
1039 } 1002 }
1040 1003
@@ -1047,7 +1010,8 @@ static struct linux_prom64_registers pall[MAX_BANKS] __initdata;
1047static int pall_ents __initdata; 1010static int pall_ents __initdata;
1048 1011
1049#ifdef CONFIG_DEBUG_PAGEALLOC 1012#ifdef CONFIG_DEBUG_PAGEALLOC
1050static unsigned long kernel_map_range(unsigned long pstart, unsigned long pend, pgprot_t prot) 1013static unsigned long __ref kernel_map_range(unsigned long pstart,
1014 unsigned long pend, pgprot_t prot)
1051{ 1015{
1052 unsigned long vstart = PAGE_OFFSET + pstart; 1016 unsigned long vstart = PAGE_OFFSET + pstart;
1053 unsigned long vend = PAGE_OFFSET + pend; 1017 unsigned long vend = PAGE_OFFSET + pend;
@@ -1451,7 +1415,7 @@ void __init paging_init(void)
1451 zholes_size); 1415 zholes_size);
1452 } 1416 }
1453 1417
1454 prom_printf("Booting Linux...\n"); 1418 printk("Booting Linux...\n");
1455 1419
1456 central_probe(); 1420 central_probe();
1457 cpu_probe(); 1421 cpu_probe();
@@ -1549,10 +1513,6 @@ void __init mem_init(void)
1549 1513
1550 high_memory = __va(last_valid_pfn << PAGE_SHIFT); 1514 high_memory = __va(last_valid_pfn << PAGE_SHIFT);
1551 1515
1552#ifdef CONFIG_DEBUG_BOOTMEM
1553 prom_printf("mem_init: Calling free_all_bootmem().\n");
1554#endif
1555
1556 /* We subtract one to account for the mem_map_zero page 1516 /* We subtract one to account for the mem_map_zero page
1557 * allocated below. 1517 * allocated below.
1558 */ 1518 */
diff --git a/arch/sparc64/prom/misc.c b/arch/sparc64/prom/misc.c
index bbec7522826c..47a877a15abd 100644
--- a/arch/sparc64/prom/misc.c
+++ b/arch/sparc64/prom/misc.c
@@ -55,9 +55,6 @@ void prom_feval(const char *fstring)
55 P1275_INOUT(1, 1), fstring); 55 P1275_INOUT(1, 1), fstring);
56} 56}
57 57
58/* We want to do this more nicely some day. */
59extern void (*prom_palette)(int);
60
61#ifdef CONFIG_SMP 58#ifdef CONFIG_SMP
62extern void smp_capture(void); 59extern void smp_capture(void);
63extern void smp_release(void); 60extern void smp_release(void);
@@ -72,9 +69,6 @@ void prom_cmdline(void)
72 69
73 local_irq_save(flags); 70 local_irq_save(flags);
74 71
75 if (prom_palette)
76 prom_palette(1);
77
78#ifdef CONFIG_SMP 72#ifdef CONFIG_SMP
79 smp_capture(); 73 smp_capture();
80#endif 74#endif
@@ -85,9 +79,6 @@ void prom_cmdline(void)
85 smp_release(); 79 smp_release();
86#endif 80#endif
87 81
88 if (prom_palette)
89 prom_palette(0);
90
91 local_irq_restore(flags); 82 local_irq_restore(flags);
92} 83}
93 84
diff --git a/arch/um/defconfig b/arch/um/defconfig
index 59215bc264ef..6bd456f96f90 100644
--- a/arch/um/defconfig
+++ b/arch/um/defconfig
@@ -1,13 +1,22 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.17-rc3 3# Linux kernel version: 2.6.24
4# Fri Apr 28 09:31:20 2006 4# Thu Feb 7 11:48:55 2008
5# 5#
6CONFIG_DEFCONFIG_LIST="arch/$ARCH/defconfig"
6CONFIG_GENERIC_HARDIRQS=y 7CONFIG_GENERIC_HARDIRQS=y
7CONFIG_UML=y 8CONFIG_UML=y
8CONFIG_MMU=y 9CONFIG_MMU=y
10CONFIG_NO_IOMEM=y
11# CONFIG_TRACE_IRQFLAGS_SUPPORT is not set
12CONFIG_LOCKDEP_SUPPORT=y
13# CONFIG_STACKTRACE_SUPPORT is not set
9CONFIG_GENERIC_CALIBRATE_DELAY=y 14CONFIG_GENERIC_CALIBRATE_DELAY=y
15CONFIG_GENERIC_BUG=y
16CONFIG_GENERIC_TIME=y
17CONFIG_GENERIC_CLOCKEVENTS=y
10CONFIG_IRQ_RELEASE_METHOD=y 18CONFIG_IRQ_RELEASE_METHOD=y
19CONFIG_HZ=100
11 20
12# 21#
13# UML-specific options 22# UML-specific options
@@ -40,11 +49,13 @@ CONFIG_M686=y
40# CONFIG_MCYRIXIII is not set 49# CONFIG_MCYRIXIII is not set
41# CONFIG_MVIAC3_2 is not set 50# CONFIG_MVIAC3_2 is not set
42# CONFIG_MVIAC7 is not set 51# CONFIG_MVIAC7 is not set
52# CONFIG_MPSC is not set
53# CONFIG_MCORE2 is not set
54# CONFIG_GENERIC_CPU is not set
43# CONFIG_X86_GENERIC is not set 55# CONFIG_X86_GENERIC is not set
44CONFIG_X86_CMPXCHG=y 56CONFIG_X86_CMPXCHG=y
45CONFIG_X86_XADD=y
46CONFIG_X86_L1_CACHE_SHIFT=5 57CONFIG_X86_L1_CACHE_SHIFT=5
47CONFIG_RWSEM_XCHGADD_ALGORITHM=y 58CONFIG_X86_XADD=y
48CONFIG_X86_PPRO_FENCE=y 59CONFIG_X86_PPRO_FENCE=y
49CONFIG_X86_WP_WORKS_OK=y 60CONFIG_X86_WP_WORKS_OK=y
50CONFIG_X86_INVLPG=y 61CONFIG_X86_INVLPG=y
@@ -53,7 +64,12 @@ CONFIG_X86_POPAD_OK=y
53CONFIG_X86_GOOD_APIC=y 64CONFIG_X86_GOOD_APIC=y
54CONFIG_X86_USE_PPRO_CHECKSUM=y 65CONFIG_X86_USE_PPRO_CHECKSUM=y
55CONFIG_X86_TSC=y 66CONFIG_X86_TSC=y
67CONFIG_X86_CMOV=y
68CONFIG_X86_MINIMUM_CPU_FAMILY=4
69CONFIG_X86_DEBUGCTLMSR=y
56CONFIG_UML_X86=y 70CONFIG_UML_X86=y
71CONFIG_X86_32=y
72CONFIG_RWSEM_XCHGADD_ALGORITHM=y
57# CONFIG_64BIT is not set 73# CONFIG_64BIT is not set
58CONFIG_SEMAPHORE_SLEEPERS=y 74CONFIG_SEMAPHORE_SLEEPERS=y
59# CONFIG_3_LEVEL_PGTABLES is not set 75# CONFIG_3_LEVEL_PGTABLES is not set
@@ -67,13 +83,18 @@ CONFIG_FLATMEM_MANUAL=y
67CONFIG_FLATMEM=y 83CONFIG_FLATMEM=y
68CONFIG_FLAT_NODE_MEM_MAP=y 84CONFIG_FLAT_NODE_MEM_MAP=y
69# CONFIG_SPARSEMEM_STATIC is not set 85# CONFIG_SPARSEMEM_STATIC is not set
86# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
70CONFIG_SPLIT_PTLOCK_CPUS=4 87CONFIG_SPLIT_PTLOCK_CPUS=4
88# CONFIG_RESOURCES_64BIT is not set
89CONFIG_ZONE_DMA_FLAG=0
90CONFIG_VIRT_TO_BUS=y
71CONFIG_TICK_ONESHOT=y 91CONFIG_TICK_ONESHOT=y
72CONFIG_NO_HZ=y 92CONFIG_NO_HZ=y
73CONFIG_HIGH_RES_TIMERS=y 93CONFIG_HIGH_RES_TIMERS=y
94CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
74CONFIG_LD_SCRIPT_DYN=y 95CONFIG_LD_SCRIPT_DYN=y
75CONFIG_NET=y
76CONFIG_BINFMT_ELF=y 96CONFIG_BINFMT_ELF=y
97# CONFIG_BINFMT_AOUT is not set
77CONFIG_BINFMT_MISC=m 98CONFIG_BINFMT_MISC=m
78CONFIG_HOSTFS=y 99CONFIG_HOSTFS=y
79# CONFIG_HPPFS is not set 100# CONFIG_HPPFS is not set
@@ -83,31 +104,38 @@ CONFIG_MAGIC_SYSRQ=y
83CONFIG_KERNEL_STACK_ORDER=0 104CONFIG_KERNEL_STACK_ORDER=0
84 105
85# 106#
86# Code maturity level options 107# General setup
87# 108#
88CONFIG_EXPERIMENTAL=y 109CONFIG_EXPERIMENTAL=y
89CONFIG_BROKEN_ON_SMP=y 110CONFIG_BROKEN_ON_SMP=y
90CONFIG_INIT_ENV_ARG_LIMIT=32 111CONFIG_INIT_ENV_ARG_LIMIT=128
91
92#
93# General setup
94#
95CONFIG_LOCALVERSION="" 112CONFIG_LOCALVERSION=""
96CONFIG_LOCALVERSION_AUTO=y 113CONFIG_LOCALVERSION_AUTO=y
97CONFIG_SWAP=y 114CONFIG_SWAP=y
98CONFIG_SYSVIPC=y 115CONFIG_SYSVIPC=y
116CONFIG_SYSVIPC_SYSCTL=y
99CONFIG_POSIX_MQUEUE=y 117CONFIG_POSIX_MQUEUE=y
100CONFIG_BSD_PROCESS_ACCT=y 118CONFIG_BSD_PROCESS_ACCT=y
101# CONFIG_BSD_PROCESS_ACCT_V3 is not set 119# CONFIG_BSD_PROCESS_ACCT_V3 is not set
102CONFIG_SYSCTL=y 120# CONFIG_TASKSTATS is not set
121# CONFIG_USER_NS is not set
122# CONFIG_PID_NS is not set
103# CONFIG_AUDIT is not set 123# CONFIG_AUDIT is not set
104CONFIG_IKCONFIG=y 124CONFIG_IKCONFIG=y
105CONFIG_IKCONFIG_PROC=y 125CONFIG_IKCONFIG_PROC=y
126CONFIG_LOG_BUF_SHIFT=14
127# CONFIG_CGROUPS is not set
128CONFIG_FAIR_GROUP_SCHED=y
129CONFIG_FAIR_USER_SCHED=y
130# CONFIG_FAIR_CGROUP_SCHED is not set
131CONFIG_SYSFS_DEPRECATED=y
106# CONFIG_RELAY is not set 132# CONFIG_RELAY is not set
107CONFIG_INITRAMFS_SOURCE="" 133# CONFIG_BLK_DEV_INITRD is not set
108CONFIG_UID16=y
109CONFIG_CC_OPTIMIZE_FOR_SIZE=y 134CONFIG_CC_OPTIMIZE_FOR_SIZE=y
135CONFIG_SYSCTL=y
110# CONFIG_EMBEDDED is not set 136# CONFIG_EMBEDDED is not set
137CONFIG_UID16=y
138CONFIG_SYSCTL_SYSCALL=y
111CONFIG_KALLSYMS=y 139CONFIG_KALLSYMS=y
112# CONFIG_KALLSYMS_ALL is not set 140# CONFIG_KALLSYMS_ALL is not set
113CONFIG_KALLSYMS_EXTRA_PASS=y 141CONFIG_KALLSYMS_EXTRA_PASS=y
@@ -117,29 +145,36 @@ CONFIG_BUG=y
117CONFIG_ELF_CORE=y 145CONFIG_ELF_CORE=y
118CONFIG_BASE_FULL=y 146CONFIG_BASE_FULL=y
119CONFIG_FUTEX=y 147CONFIG_FUTEX=y
148CONFIG_ANON_INODES=y
120CONFIG_EPOLL=y 149CONFIG_EPOLL=y
150CONFIG_SIGNALFD=y
151CONFIG_TIMERFD=y
152CONFIG_EVENTFD=y
121CONFIG_SHMEM=y 153CONFIG_SHMEM=y
154CONFIG_VM_EVENT_COUNTERS=y
122CONFIG_SLAB=y 155CONFIG_SLAB=y
156# CONFIG_SLUB is not set
157# CONFIG_SLOB is not set
158# CONFIG_PROFILING is not set
159# CONFIG_MARKERS is not set
160# CONFIG_HAVE_OPROFILE is not set
161# CONFIG_HAVE_KPROBES is not set
162CONFIG_PROC_PAGE_MONITOR=y
163CONFIG_SLABINFO=y
164CONFIG_RT_MUTEXES=y
123# CONFIG_TINY_SHMEM is not set 165# CONFIG_TINY_SHMEM is not set
124CONFIG_BASE_SMALL=0 166CONFIG_BASE_SMALL=0
125# CONFIG_SLOB is not set
126
127#
128# Loadable module support
129#
130CONFIG_MODULES=y 167CONFIG_MODULES=y
131CONFIG_MODULE_UNLOAD=y 168CONFIG_MODULE_UNLOAD=y
132# CONFIG_MODULE_FORCE_UNLOAD is not set 169# CONFIG_MODULE_FORCE_UNLOAD is not set
133# CONFIG_MODVERSIONS is not set 170# CONFIG_MODVERSIONS is not set
134# CONFIG_MODULE_SRCVERSION_ALL is not set 171# CONFIG_MODULE_SRCVERSION_ALL is not set
135CONFIG_KMOD=y 172CONFIG_KMOD=y
136 173CONFIG_BLOCK=y
137#
138# Block layer
139#
140# CONFIG_LBD is not set 174# CONFIG_LBD is not set
141# CONFIG_BLK_DEV_IO_TRACE is not set 175# CONFIG_BLK_DEV_IO_TRACE is not set
142# CONFIG_LSF is not set 176# CONFIG_LSF is not set
177# CONFIG_BLK_DEV_BSG is not set
143 178
144# 179#
145# IO Schedulers 180# IO Schedulers
@@ -153,19 +188,16 @@ CONFIG_DEFAULT_AS=y
153# CONFIG_DEFAULT_CFQ is not set 188# CONFIG_DEFAULT_CFQ is not set
154# CONFIG_DEFAULT_NOOP is not set 189# CONFIG_DEFAULT_NOOP is not set
155CONFIG_DEFAULT_IOSCHED="anticipatory" 190CONFIG_DEFAULT_IOSCHED="anticipatory"
156 191CONFIG_CLASSIC_RCU=y
157# 192# CONFIG_PREEMPT_RCU is not set
158# Block devices 193CONFIG_BLK_DEV=y
159#
160CONFIG_BLK_DEV_UBD=y 194CONFIG_BLK_DEV_UBD=y
161# CONFIG_BLK_DEV_UBD_SYNC is not set 195# CONFIG_BLK_DEV_UBD_SYNC is not set
162CONFIG_BLK_DEV_COW_COMMON=y 196CONFIG_BLK_DEV_COW_COMMON=y
163# CONFIG_MMAPPER is not set
164CONFIG_BLK_DEV_LOOP=m 197CONFIG_BLK_DEV_LOOP=m
165# CONFIG_BLK_DEV_CRYPTOLOOP is not set 198# CONFIG_BLK_DEV_CRYPTOLOOP is not set
166CONFIG_BLK_DEV_NBD=m 199CONFIG_BLK_DEV_NBD=m
167# CONFIG_BLK_DEV_RAM is not set 200# CONFIG_BLK_DEV_RAM is not set
168# CONFIG_BLK_DEV_INITRD is not set
169# CONFIG_ATA_OVER_ETH is not set 201# CONFIG_ATA_OVER_ETH is not set
170 202
171# 203#
@@ -185,32 +217,43 @@ CONFIG_CON_CHAN="xterm"
185CONFIG_SSL_CHAN="pts" 217CONFIG_SSL_CHAN="pts"
186CONFIG_UNIX98_PTYS=y 218CONFIG_UNIX98_PTYS=y
187CONFIG_LEGACY_PTYS=y 219CONFIG_LEGACY_PTYS=y
220# CONFIG_RAW_DRIVER is not set
188CONFIG_LEGACY_PTY_COUNT=32 221CONFIG_LEGACY_PTY_COUNT=32
189# CONFIG_WATCHDOG is not set 222# CONFIG_WATCHDOG is not set
190CONFIG_UML_SOUND=m 223CONFIG_UML_SOUND=m
191CONFIG_SOUND=m 224CONFIG_SOUND=m
192CONFIG_HOSTAUDIO=m 225CONFIG_HOSTAUDIO=m
226# CONFIG_HW_RANDOM is not set
193CONFIG_UML_RANDOM=y 227CONFIG_UML_RANDOM=y
228# CONFIG_MMAPPER is not set
194 229
195# 230#
196# Generic Driver Options 231# Generic Driver Options
197# 232#
233CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
198CONFIG_STANDALONE=y 234CONFIG_STANDALONE=y
199CONFIG_PREVENT_FIRMWARE_BUILD=y 235CONFIG_PREVENT_FIRMWARE_BUILD=y
200# CONFIG_FW_LOADER is not set 236# CONFIG_FW_LOADER is not set
201# CONFIG_DEBUG_DRIVER is not set 237# CONFIG_DEBUG_DRIVER is not set
238# CONFIG_DEBUG_DEVRES is not set
239# CONFIG_SYS_HYPERVISOR is not set
202 240
203# 241#
204# Networking 242# Networking
205# 243#
244CONFIG_NET=y
206 245
207# 246#
208# Networking options 247# Networking options
209# 248#
210# CONFIG_NETDEBUG is not set
211CONFIG_PACKET=y 249CONFIG_PACKET=y
212CONFIG_PACKET_MMAP=y 250CONFIG_PACKET_MMAP=y
213CONFIG_UNIX=y 251CONFIG_UNIX=y
252CONFIG_XFRM=y
253# CONFIG_XFRM_USER is not set
254# CONFIG_XFRM_SUB_POLICY is not set
255# CONFIG_XFRM_MIGRATE is not set
256# CONFIG_XFRM_STATISTICS is not set
214# CONFIG_NET_KEY is not set 257# CONFIG_NET_KEY is not set
215CONFIG_INET=y 258CONFIG_INET=y
216# CONFIG_IP_MULTICAST is not set 259# CONFIG_IP_MULTICAST is not set
@@ -226,28 +269,23 @@ CONFIG_IP_FIB_HASH=y
226# CONFIG_INET_IPCOMP is not set 269# CONFIG_INET_IPCOMP is not set
227# CONFIG_INET_XFRM_TUNNEL is not set 270# CONFIG_INET_XFRM_TUNNEL is not set
228# CONFIG_INET_TUNNEL is not set 271# CONFIG_INET_TUNNEL is not set
272CONFIG_INET_XFRM_MODE_TRANSPORT=y
273CONFIG_INET_XFRM_MODE_TUNNEL=y
274CONFIG_INET_XFRM_MODE_BEET=y
275# CONFIG_INET_LRO is not set
229CONFIG_INET_DIAG=y 276CONFIG_INET_DIAG=y
230CONFIG_INET_TCP_DIAG=y 277CONFIG_INET_TCP_DIAG=y
231# CONFIG_TCP_CONG_ADVANCED is not set 278# CONFIG_TCP_CONG_ADVANCED is not set
232CONFIG_TCP_CONG_BIC=y 279CONFIG_TCP_CONG_CUBIC=y
280CONFIG_DEFAULT_TCP_CONG="cubic"
281# CONFIG_TCP_MD5SIG is not set
233# CONFIG_IPV6 is not set 282# CONFIG_IPV6 is not set
234# CONFIG_INET6_XFRM_TUNNEL is not set 283# CONFIG_INET6_XFRM_TUNNEL is not set
235# CONFIG_INET6_TUNNEL is not set 284# CONFIG_INET6_TUNNEL is not set
285# CONFIG_NETWORK_SECMARK is not set
236# CONFIG_NETFILTER is not set 286# CONFIG_NETFILTER is not set
237
238#
239# DCCP Configuration (EXPERIMENTAL)
240#
241# CONFIG_IP_DCCP is not set 287# CONFIG_IP_DCCP is not set
242
243#
244# SCTP Configuration (EXPERIMENTAL)
245#
246# CONFIG_IP_SCTP is not set 288# CONFIG_IP_SCTP is not set
247
248#
249# TIPC Configuration (EXPERIMENTAL)
250#
251# CONFIG_TIPC is not set 289# CONFIG_TIPC is not set
252# CONFIG_ATM is not set 290# CONFIG_ATM is not set
253# CONFIG_BRIDGE is not set 291# CONFIG_BRIDGE is not set
@@ -258,13 +296,8 @@ CONFIG_TCP_CONG_BIC=y
258# CONFIG_ATALK is not set 296# CONFIG_ATALK is not set
259# CONFIG_X25 is not set 297# CONFIG_X25 is not set
260# CONFIG_LAPB is not set 298# CONFIG_LAPB is not set
261# CONFIG_NET_DIVERT is not set
262# CONFIG_ECONET is not set 299# CONFIG_ECONET is not set
263# CONFIG_WAN_ROUTER is not set 300# CONFIG_WAN_ROUTER is not set
264
265#
266# QoS and/or fair queueing
267#
268# CONFIG_NET_SCHED is not set 301# CONFIG_NET_SCHED is not set
269 302
270# 303#
@@ -272,9 +305,20 @@ CONFIG_TCP_CONG_BIC=y
272# 305#
273# CONFIG_NET_PKTGEN is not set 306# CONFIG_NET_PKTGEN is not set
274# CONFIG_HAMRADIO is not set 307# CONFIG_HAMRADIO is not set
308# CONFIG_CAN is not set
275# CONFIG_IRDA is not set 309# CONFIG_IRDA is not set
276# CONFIG_BT is not set 310# CONFIG_BT is not set
311# CONFIG_AF_RXRPC is not set
312
313#
314# Wireless
315#
316# CONFIG_CFG80211 is not set
317# CONFIG_WIRELESS_EXT is not set
318# CONFIG_MAC80211 is not set
277# CONFIG_IEEE80211 is not set 319# CONFIG_IEEE80211 is not set
320# CONFIG_RFKILL is not set
321# CONFIG_NET_9P is not set
278 322
279# 323#
280# UML Network Devices 324# UML Network Devices
@@ -284,31 +328,24 @@ CONFIG_UML_NET_ETHERTAP=y
284CONFIG_UML_NET_TUNTAP=y 328CONFIG_UML_NET_TUNTAP=y
285CONFIG_UML_NET_SLIP=y 329CONFIG_UML_NET_SLIP=y
286CONFIG_UML_NET_DAEMON=y 330CONFIG_UML_NET_DAEMON=y
331# CONFIG_UML_NET_VDE is not set
287CONFIG_UML_NET_MCAST=y 332CONFIG_UML_NET_MCAST=y
288# CONFIG_UML_NET_PCAP is not set 333# CONFIG_UML_NET_PCAP is not set
289CONFIG_UML_NET_SLIRP=y 334CONFIG_UML_NET_SLIRP=y
290
291#
292# Network device support
293#
294CONFIG_NETDEVICES=y 335CONFIG_NETDEVICES=y
336# CONFIG_NETDEVICES_MULTIQUEUE is not set
295CONFIG_DUMMY=m 337CONFIG_DUMMY=m
296# CONFIG_BONDING is not set 338# CONFIG_BONDING is not set
339# CONFIG_MACVLAN is not set
297# CONFIG_EQUALIZER is not set 340# CONFIG_EQUALIZER is not set
298CONFIG_TUN=m 341CONFIG_TUN=m
342# CONFIG_VETH is not set
299 343
300# 344#
301# PHY device support 345# Wireless LAN
302#
303
304#
305# Wireless LAN (non-hamradio)
306#
307# CONFIG_NET_RADIO is not set
308
309#
310# Wan interfaces
311# 346#
347# CONFIG_WLAN_PRE80211 is not set
348# CONFIG_WLAN_80211 is not set
312# CONFIG_WAN is not set 349# CONFIG_WAN is not set
313CONFIG_PPP=m 350CONFIG_PPP=m
314# CONFIG_PPP_MULTILINK is not set 351# CONFIG_PPP_MULTILINK is not set
@@ -319,18 +356,15 @@ CONFIG_PPP=m
319# CONFIG_PPP_BSDCOMP is not set 356# CONFIG_PPP_BSDCOMP is not set
320# CONFIG_PPP_MPPE is not set 357# CONFIG_PPP_MPPE is not set
321# CONFIG_PPPOE is not set 358# CONFIG_PPPOE is not set
359# CONFIG_PPPOL2TP is not set
322CONFIG_SLIP=m 360CONFIG_SLIP=m
323# CONFIG_SLIP_COMPRESSED is not set 361# CONFIG_SLIP_COMPRESSED is not set
362CONFIG_SLHC=m
324# CONFIG_SLIP_SMART is not set 363# CONFIG_SLIP_SMART is not set
325# CONFIG_SLIP_MODE_SLIP6 is not set 364# CONFIG_SLIP_MODE_SLIP6 is not set
326# CONFIG_SHAPER is not set
327# CONFIG_NETCONSOLE is not set 365# CONFIG_NETCONSOLE is not set
328# CONFIG_NETPOLL is not set 366# CONFIG_NETPOLL is not set
329# CONFIG_NET_POLL_CONTROLLER is not set 367# CONFIG_NET_POLL_CONTROLLER is not set
330
331#
332# Connector - unified userspace <-> kernelspace linker
333#
334# CONFIG_CONNECTOR is not set 368# CONFIG_CONNECTOR is not set
335 369
336# 370#
@@ -341,8 +375,8 @@ CONFIG_EXT2_FS=y
341# CONFIG_EXT2_FS_XIP is not set 375# CONFIG_EXT2_FS_XIP is not set
342CONFIG_EXT3_FS=y 376CONFIG_EXT3_FS=y
343# CONFIG_EXT3_FS_XATTR is not set 377# CONFIG_EXT3_FS_XATTR is not set
378# CONFIG_EXT4DEV_FS is not set
344CONFIG_JBD=y 379CONFIG_JBD=y
345# CONFIG_JBD_DEBUG is not set
346CONFIG_REISERFS_FS=y 380CONFIG_REISERFS_FS=y
347# CONFIG_REISERFS_CHECK is not set 381# CONFIG_REISERFS_CHECK is not set
348# CONFIG_REISERFS_PROC_INFO is not set 382# CONFIG_REISERFS_PROC_INFO is not set
@@ -350,11 +384,15 @@ CONFIG_REISERFS_FS=y
350# CONFIG_JFS_FS is not set 384# CONFIG_JFS_FS is not set
351# CONFIG_FS_POSIX_ACL is not set 385# CONFIG_FS_POSIX_ACL is not set
352# CONFIG_XFS_FS is not set 386# CONFIG_XFS_FS is not set
387# CONFIG_GFS2_FS is not set
353# CONFIG_OCFS2_FS is not set 388# CONFIG_OCFS2_FS is not set
354# CONFIG_MINIX_FS is not set 389# CONFIG_MINIX_FS is not set
355# CONFIG_ROMFS_FS is not set 390# CONFIG_ROMFS_FS is not set
356CONFIG_INOTIFY=y 391CONFIG_INOTIFY=y
392CONFIG_INOTIFY_USER=y
357CONFIG_QUOTA=y 393CONFIG_QUOTA=y
394# CONFIG_QUOTA_NETLINK_INTERFACE is not set
395CONFIG_PRINT_QUOTA_WARNING=y
358# CONFIG_QFMT_V1 is not set 396# CONFIG_QFMT_V1 is not set
359# CONFIG_QFMT_V2 is not set 397# CONFIG_QFMT_V2 is not set
360CONFIG_QUOTACTL=y 398CONFIG_QUOTACTL=y
@@ -383,10 +421,11 @@ CONFIG_JOLIET=y
383# 421#
384CONFIG_PROC_FS=y 422CONFIG_PROC_FS=y
385CONFIG_PROC_KCORE=y 423CONFIG_PROC_KCORE=y
424CONFIG_PROC_SYSCTL=y
386CONFIG_SYSFS=y 425CONFIG_SYSFS=y
387CONFIG_TMPFS=y 426CONFIG_TMPFS=y
427# CONFIG_TMPFS_POSIX_ACL is not set
388# CONFIG_HUGETLB_PAGE is not set 428# CONFIG_HUGETLB_PAGE is not set
389CONFIG_RAMFS=y
390# CONFIG_CONFIGFS_FS is not set 429# CONFIG_CONFIGFS_FS is not set
391 430
392# 431#
@@ -405,10 +444,7 @@ CONFIG_RAMFS=y
405# CONFIG_QNX4FS_FS is not set 444# CONFIG_QNX4FS_FS is not set
406# CONFIG_SYSV_FS is not set 445# CONFIG_SYSV_FS is not set
407# CONFIG_UFS_FS is not set 446# CONFIG_UFS_FS is not set
408 447CONFIG_NETWORK_FILESYSTEMS=y
409#
410# Network File Systems
411#
412# CONFIG_NFS_FS is not set 448# CONFIG_NFS_FS is not set
413# CONFIG_NFSD is not set 449# CONFIG_NFSD is not set
414# CONFIG_SMB_FS is not set 450# CONFIG_SMB_FS is not set
@@ -416,17 +452,12 @@ CONFIG_RAMFS=y
416# CONFIG_NCP_FS is not set 452# CONFIG_NCP_FS is not set
417# CONFIG_CODA_FS is not set 453# CONFIG_CODA_FS is not set
418# CONFIG_AFS_FS is not set 454# CONFIG_AFS_FS is not set
419# CONFIG_9P_FS is not set
420 455
421# 456#
422# Partition Types 457# Partition Types
423# 458#
424# CONFIG_PARTITION_ADVANCED is not set 459# CONFIG_PARTITION_ADVANCED is not set
425CONFIG_MSDOS_PARTITION=y 460CONFIG_MSDOS_PARTITION=y
426
427#
428# Native Language Support
429#
430CONFIG_NLS=y 461CONFIG_NLS=y
431CONFIG_NLS_DEFAULT="iso8859-1" 462CONFIG_NLS_DEFAULT="iso8859-1"
432# CONFIG_NLS_CODEPAGE_437 is not set 463# CONFIG_NLS_CODEPAGE_437 is not set
@@ -467,33 +498,83 @@ CONFIG_NLS_DEFAULT="iso8859-1"
467# CONFIG_NLS_KOI8_R is not set 498# CONFIG_NLS_KOI8_R is not set
468# CONFIG_NLS_KOI8_U is not set 499# CONFIG_NLS_KOI8_U is not set
469# CONFIG_NLS_UTF8 is not set 500# CONFIG_NLS_UTF8 is not set
501# CONFIG_DLM is not set
470 502
471# 503#
472# Security options 504# Security options
473# 505#
474# CONFIG_KEYS is not set 506# CONFIG_KEYS is not set
475# CONFIG_SECURITY is not set 507# CONFIG_SECURITY is not set
476 508# CONFIG_SECURITY_FILE_CAPABILITIES is not set
477# 509CONFIG_CRYPTO=y
478# Cryptographic options 510# CONFIG_CRYPTO_SEQIV is not set
479# 511# CONFIG_CRYPTO_MANAGER is not set
480# CONFIG_CRYPTO is not set 512# CONFIG_CRYPTO_HMAC is not set
481 513# CONFIG_CRYPTO_XCBC is not set
482# 514# CONFIG_CRYPTO_NULL is not set
483# Hardware crypto devices 515# CONFIG_CRYPTO_MD4 is not set
484# 516# CONFIG_CRYPTO_MD5 is not set
517# CONFIG_CRYPTO_SHA1 is not set
518# CONFIG_CRYPTO_SHA256 is not set
519# CONFIG_CRYPTO_SHA512 is not set
520# CONFIG_CRYPTO_WP512 is not set
521# CONFIG_CRYPTO_TGR192 is not set
522# CONFIG_CRYPTO_GF128MUL is not set
523# CONFIG_CRYPTO_ECB is not set
524# CONFIG_CRYPTO_CBC is not set
525# CONFIG_CRYPTO_PCBC is not set
526# CONFIG_CRYPTO_LRW is not set
527# CONFIG_CRYPTO_XTS is not set
528# CONFIG_CRYPTO_CTR is not set
529# CONFIG_CRYPTO_GCM is not set
530# CONFIG_CRYPTO_CCM is not set
531# CONFIG_CRYPTO_CRYPTD is not set
532# CONFIG_CRYPTO_DES is not set
533# CONFIG_CRYPTO_FCRYPT is not set
534# CONFIG_CRYPTO_BLOWFISH is not set
535# CONFIG_CRYPTO_TWOFISH is not set
536# CONFIG_CRYPTO_TWOFISH_586 is not set
537# CONFIG_CRYPTO_SERPENT is not set
538# CONFIG_CRYPTO_AES is not set
539# CONFIG_CRYPTO_AES_586 is not set
540# CONFIG_CRYPTO_CAST5 is not set
541# CONFIG_CRYPTO_CAST6 is not set
542# CONFIG_CRYPTO_TEA is not set
543# CONFIG_CRYPTO_ARC4 is not set
544# CONFIG_CRYPTO_KHAZAD is not set
545# CONFIG_CRYPTO_ANUBIS is not set
546# CONFIG_CRYPTO_SEED is not set
547# CONFIG_CRYPTO_SALSA20 is not set
548# CONFIG_CRYPTO_SALSA20_586 is not set
549# CONFIG_CRYPTO_DEFLATE is not set
550# CONFIG_CRYPTO_MICHAEL_MIC is not set
551# CONFIG_CRYPTO_CRC32C is not set
552# CONFIG_CRYPTO_CAMELLIA is not set
553# CONFIG_CRYPTO_TEST is not set
554# CONFIG_CRYPTO_AUTHENC is not set
555# CONFIG_CRYPTO_LZO is not set
556CONFIG_CRYPTO_HW=y
485 557
486# 558#
487# Library routines 559# Library routines
488# 560#
561CONFIG_BITREVERSE=m
489# CONFIG_CRC_CCITT is not set 562# CONFIG_CRC_CCITT is not set
490# CONFIG_CRC16 is not set 563# CONFIG_CRC16 is not set
564# CONFIG_CRC_ITU_T is not set
491CONFIG_CRC32=m 565CONFIG_CRC32=m
566# CONFIG_CRC7 is not set
492# CONFIG_LIBCRC32C is not set 567# CONFIG_LIBCRC32C is not set
568CONFIG_PLIST=y
569CONFIG_HAS_DMA=y
493 570
494# 571#
495# Multi-device support (RAID and LVM) 572# SCSI device support
496# 573#
574# CONFIG_RAID_ATTRS is not set
575# CONFIG_SCSI is not set
576# CONFIG_SCSI_DMA is not set
577# CONFIG_SCSI_NETLINK is not set
497# CONFIG_MD is not set 578# CONFIG_MD is not set
498# CONFIG_INPUT is not set 579# CONFIG_INPUT is not set
499 580
@@ -501,23 +582,36 @@ CONFIG_CRC32=m
501# Kernel hacking 582# Kernel hacking
502# 583#
503# CONFIG_PRINTK_TIME is not set 584# CONFIG_PRINTK_TIME is not set
585CONFIG_ENABLE_WARN_DEPRECATED=y
586CONFIG_ENABLE_MUST_CHECK=y
587# CONFIG_UNUSED_SYMBOLS is not set
588# CONFIG_DEBUG_FS is not set
504CONFIG_DEBUG_KERNEL=y 589CONFIG_DEBUG_KERNEL=y
505CONFIG_LOG_BUF_SHIFT=14 590# CONFIG_DEBUG_SHIRQ is not set
506CONFIG_DETECT_SOFTLOCKUP=y 591CONFIG_DETECT_SOFTLOCKUP=y
592CONFIG_SCHED_DEBUG=y
507# CONFIG_SCHEDSTATS is not set 593# CONFIG_SCHEDSTATS is not set
594# CONFIG_TIMER_STATS is not set
508# CONFIG_DEBUG_SLAB is not set 595# CONFIG_DEBUG_SLAB is not set
509# CONFIG_DEBUG_SLAB_LEAK is not set 596# CONFIG_DEBUG_RT_MUTEXES is not set
510# CONFIG_DEBUG_MUTEXES is not set 597# CONFIG_RT_MUTEX_TESTER is not set
511# CONFIG_DEBUG_SPINLOCK is not set 598# CONFIG_DEBUG_SPINLOCK is not set
599# CONFIG_DEBUG_MUTEXES is not set
512# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 600# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
601# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
513# CONFIG_DEBUG_KOBJECT is not set 602# CONFIG_DEBUG_KOBJECT is not set
603CONFIG_DEBUG_BUGVERBOSE=y
514CONFIG_DEBUG_INFO=y 604CONFIG_DEBUG_INFO=y
515# CONFIG_DEBUG_FS is not set
516# CONFIG_DEBUG_VM is not set 605# CONFIG_DEBUG_VM is not set
606# CONFIG_DEBUG_LIST is not set
607# CONFIG_DEBUG_SG is not set
517CONFIG_FRAME_POINTER=y 608CONFIG_FRAME_POINTER=y
518# CONFIG_UNWIND_INFO is not set
519CONFIG_FORCED_INLINING=y 609CONFIG_FORCED_INLINING=y
610# CONFIG_BOOT_PRINTK_DELAY is not set
520# CONFIG_RCU_TORTURE_TEST is not set 611# CONFIG_RCU_TORTURE_TEST is not set
612# CONFIG_BACKTRACE_SELF_TEST is not set
613# CONFIG_FAULT_INJECTION is not set
614# CONFIG_SAMPLES is not set
521# CONFIG_GPROF is not set 615# CONFIG_GPROF is not set
522# CONFIG_GCOV is not set 616# CONFIG_GCOV is not set
523# CONFIG_DEBUG_STACK_USAGE is not set 617# CONFIG_DEBUG_STACK_USAGE is not set
diff --git a/arch/um/drivers/harddog_user.c b/arch/um/drivers/harddog_user.c
index 448ba59207a1..b56f8e0196a9 100644
--- a/arch/um/drivers/harddog_user.c
+++ b/arch/um/drivers/harddog_user.c
@@ -79,14 +79,14 @@ int start_watchdog(int *in_fd_ret, int *out_fd_ret, char *sock)
79 n = read(in_fds[0], &c, sizeof(c)); 79 n = read(in_fds[0], &c, sizeof(c));
80 if (n == 0) { 80 if (n == 0) {
81 printk("harddog_open - EOF on watchdog pipe\n"); 81 printk("harddog_open - EOF on watchdog pipe\n");
82 helper_wait(pid, 1, NULL); 82 helper_wait(pid);
83 err = -EIO; 83 err = -EIO;
84 goto out_close_out; 84 goto out_close_out;
85 } 85 }
86 else if (n < 0) { 86 else if (n < 0) {
87 printk("harddog_open - read of watchdog pipe failed, " 87 printk("harddog_open - read of watchdog pipe failed, "
88 "err = %d\n", errno); 88 "err = %d\n", errno);
89 helper_wait(pid, 1, NULL); 89 helper_wait(pid);
90 err = n; 90 err = n;
91 goto out_close_out; 91 goto out_close_out;
92 } 92 }
diff --git a/arch/um/include/registers.h b/arch/um/include/registers.h
index 9ea1ae3c8f46..b0b4589e0ebc 100644
--- a/arch/um/include/registers.h
+++ b/arch/um/include/registers.h
@@ -18,5 +18,7 @@ extern int restore_registers(int pid, struct uml_pt_regs *regs);
18extern int init_registers(int pid); 18extern int init_registers(int pid);
19extern void get_safe_registers(unsigned long *regs); 19extern void get_safe_registers(unsigned long *regs);
20extern unsigned long get_thread_reg(int reg, jmp_buf *buf); 20extern unsigned long get_thread_reg(int reg, jmp_buf *buf);
21extern int get_fp_registers(int pid, unsigned long *regs);
22extern int put_fp_registers(int pid, unsigned long *regs);
21 23
22#endif 24#endif
diff --git a/arch/um/include/sysdep-i386/ptrace_user.h b/arch/um/include/sysdep-i386/ptrace_user.h
index 899aa4b2a78d..75650723c38f 100644
--- a/arch/um/include/sysdep-i386/ptrace_user.h
+++ b/arch/um/include/sysdep-i386/ptrace_user.h
@@ -9,6 +9,7 @@
9#include <sys/ptrace.h> 9#include <sys/ptrace.h>
10#include <linux/ptrace.h> 10#include <linux/ptrace.h>
11#include <asm/ptrace.h> 11#include <asm/ptrace.h>
12#include "user_constants.h"
12 13
13#define PT_OFFSET(r) ((r) * sizeof(long)) 14#define PT_OFFSET(r) ((r) * sizeof(long))
14 15
@@ -40,6 +41,8 @@
40#define PT_SP_OFFSET PT_OFFSET(UESP) 41#define PT_SP_OFFSET PT_OFFSET(UESP)
41#define PT_SP(regs) ((regs)[UESP]) 42#define PT_SP(regs) ((regs)[UESP])
42 43
44#define FP_SIZE ((HOST_XFP_SIZE > HOST_FP_SIZE) ? HOST_XFP_SIZE : HOST_FP_SIZE)
45
43#ifndef FRAME_SIZE 46#ifndef FRAME_SIZE
44#define FRAME_SIZE (17) 47#define FRAME_SIZE (17)
45#endif 48#endif
diff --git a/arch/um/include/sysdep-x86_64/ptrace_user.h b/arch/um/include/sysdep-x86_64/ptrace_user.h
index 4cd61a852fab..45c0bd881cb3 100644
--- a/arch/um/include/sysdep-x86_64/ptrace_user.h
+++ b/arch/um/include/sysdep-x86_64/ptrace_user.h
@@ -12,6 +12,7 @@
12#include <linux/ptrace.h> 12#include <linux/ptrace.h>
13#include <asm/ptrace.h> 13#include <asm/ptrace.h>
14#undef __FRAME_OFFSETS 14#undef __FRAME_OFFSETS
15#include "user_constants.h"
15 16
16#define PT_INDEX(off) ((off) / sizeof(unsigned long)) 17#define PT_INDEX(off) ((off) / sizeof(unsigned long))
17 18
@@ -69,6 +70,8 @@
69#define REGS_IP_INDEX PT_INDEX(RIP) 70#define REGS_IP_INDEX PT_INDEX(RIP)
70#define REGS_SP_INDEX PT_INDEX(RSP) 71#define REGS_SP_INDEX PT_INDEX(RSP)
71 72
73#define FP_SIZE (HOST_FP_SIZE)
74
72#endif 75#endif
73 76
74/* 77/*
diff --git a/arch/um/kernel/initrd.c b/arch/um/kernel/initrd.c
index fa015565001b..d386c75c88eb 100644
--- a/arch/um/kernel/initrd.c
+++ b/arch/um/kernel/initrd.c
@@ -32,7 +32,7 @@ static int __init read_initrd(void)
32 * ask for no memory. 32 * ask for no memory.
33 */ 33 */
34 if (size == 0) { 34 if (size == 0) {
35 printk(KERN_ERR "\"%\" is a zero-size initrd\n"); 35 printk(KERN_ERR "\"%s\" is a zero-size initrd\n", initrd);
36 return 0; 36 return 0;
37 } 37 }
38 38
diff --git a/arch/um/kernel/mem.c b/arch/um/kernel/mem.c
index 2627ce82e918..2eea1ff235e6 100644
--- a/arch/um/kernel/mem.c
+++ b/arch/um/kernel/mem.c
@@ -299,7 +299,7 @@ void show_mem(void)
299{ 299{
300 int pfn, total = 0, reserved = 0; 300 int pfn, total = 0, reserved = 0;
301 int shared = 0, cached = 0; 301 int shared = 0, cached = 0;
302 int highmem = 0; 302 int high_mem = 0;
303 struct page *page; 303 struct page *page;
304 304
305 printk(KERN_INFO "Mem-info:\n"); 305 printk(KERN_INFO "Mem-info:\n");
@@ -311,7 +311,7 @@ void show_mem(void)
311 page = pfn_to_page(pfn); 311 page = pfn_to_page(pfn);
312 total++; 312 total++;
313 if (PageHighMem(page)) 313 if (PageHighMem(page))
314 highmem++; 314 high_mem++;
315 if (PageReserved(page)) 315 if (PageReserved(page))
316 reserved++; 316 reserved++;
317 else if (PageSwapCache(page)) 317 else if (PageSwapCache(page))
@@ -320,7 +320,7 @@ void show_mem(void)
320 shared += page_count(page) - 1; 320 shared += page_count(page) - 1;
321 } 321 }
322 printk(KERN_INFO "%d pages of RAM\n", total); 322 printk(KERN_INFO "%d pages of RAM\n", total);
323 printk(KERN_INFO "%d pages of HIGHMEM\n", highmem); 323 printk(KERN_INFO "%d pages of HIGHMEM\n", high_mem);
324 printk(KERN_INFO "%d reserved pages\n", reserved); 324 printk(KERN_INFO "%d reserved pages\n", reserved);
325 printk(KERN_INFO "%d pages shared\n", shared); 325 printk(KERN_INFO "%d pages shared\n", shared);
326 printk(KERN_INFO "%d pages swap cached\n", cached); 326 printk(KERN_INFO "%d pages swap cached\n", cached);
diff --git a/arch/um/kernel/process.c b/arch/um/kernel/process.c
index fc50d2f959d1..e8cb9ff183e9 100644
--- a/arch/um/kernel/process.c
+++ b/arch/um/kernel/process.c
@@ -128,8 +128,6 @@ void *get_current(void)
128 return current; 128 return current;
129} 129}
130 130
131extern void schedule_tail(struct task_struct *prev);
132
133/* 131/*
134 * This is called magically, by its address being stuffed in a jmp_buf 132 * This is called magically, by its address being stuffed in a jmp_buf
135 * and being longjmp-d to. 133 * and being longjmp-d to.
diff --git a/arch/um/os-Linux/skas/process.c b/arch/um/os-Linux/skas/process.c
index b14829469fae..1e8cba6550a9 100644
--- a/arch/um/os-Linux/skas/process.c
+++ b/arch/um/os-Linux/skas/process.c
@@ -115,6 +115,14 @@ void get_skas_faultinfo(int pid, struct faultinfo * fi)
115 sizeof(struct ptrace_faultinfo)); 115 sizeof(struct ptrace_faultinfo));
116 } 116 }
117 else { 117 else {
118 unsigned long fpregs[FP_SIZE];
119
120 err = get_fp_registers(pid, fpregs);
121 if (err < 0) {
122 printk(UM_KERN_ERR "save_fp_registers returned %d\n",
123 err);
124 fatal_sigsegv();
125 }
118 err = ptrace(PTRACE_CONT, pid, 0, SIGSEGV); 126 err = ptrace(PTRACE_CONT, pid, 0, SIGSEGV);
119 if (err) { 127 if (err) {
120 printk(UM_KERN_ERR "Failed to continue stub, pid = %d, " 128 printk(UM_KERN_ERR "Failed to continue stub, pid = %d, "
@@ -128,6 +136,13 @@ void get_skas_faultinfo(int pid, struct faultinfo * fi)
128 * the stub stack page. We just have to copy it. 136 * the stub stack page. We just have to copy it.
129 */ 137 */
130 memcpy(fi, (void *)current_stub_stack(), sizeof(*fi)); 138 memcpy(fi, (void *)current_stub_stack(), sizeof(*fi));
139
140 err = put_fp_registers(pid, fpregs);
141 if (err < 0) {
142 printk(UM_KERN_ERR "put_fp_registers returned %d\n",
143 err);
144 fatal_sigsegv();
145 }
131 } 146 }
132} 147}
133 148
diff --git a/arch/um/os-Linux/sys-i386/registers.c b/arch/um/os-Linux/sys-i386/registers.c
index f74d853a0ee0..b613473b3ec1 100644
--- a/arch/um/os-Linux/sys-i386/registers.c
+++ b/arch/um/os-Linux/sys-i386/registers.c
@@ -56,6 +56,22 @@ unsigned long get_thread_reg(int reg, jmp_buf *buf)
56 56
57int have_fpx_regs = 1; 57int have_fpx_regs = 1;
58 58
59int get_fp_registers(int pid, unsigned long *regs)
60{
61 if (have_fpx_regs)
62 return save_fpx_registers(pid, regs);
63 else
64 return save_fp_registers(pid, regs);
65}
66
67int put_fp_registers(int pid, unsigned long *regs)
68{
69 if (have_fpx_regs)
70 return restore_fpx_registers(pid, regs);
71 else
72 return restore_fp_registers(pid, regs);
73}
74
59void arch_init_registers(int pid) 75void arch_init_registers(int pid)
60{ 76{
61 unsigned long fpx_regs[HOST_XFP_SIZE]; 77 unsigned long fpx_regs[HOST_XFP_SIZE];
diff --git a/arch/um/os-Linux/sys-x86_64/registers.c b/arch/um/os-Linux/sys-x86_64/registers.c
index a375853337a7..594d97ad02b3 100644
--- a/arch/um/os-Linux/sys-x86_64/registers.c
+++ b/arch/um/os-Linux/sys-x86_64/registers.c
@@ -40,3 +40,13 @@ unsigned long get_thread_reg(int reg, jmp_buf *buf)
40 return 0; 40 return 0;
41 } 41 }
42} 42}
43
44int get_fp_registers(int pid, unsigned long *regs)
45{
46 return save_fp_registers(pid, regs);
47}
48
49int put_fp_registers(int pid, unsigned long *regs)
50{
51 return restore_fp_registers(pid, regs);
52}
diff --git a/arch/um/sys-i386/user-offsets.c b/arch/um/sys-i386/user-offsets.c
index 514241526a1b..39bd32bf84f0 100644
--- a/arch/um/sys-i386/user-offsets.c
+++ b/arch/um/sys-i386/user-offsets.c
@@ -17,36 +17,9 @@
17 17
18void foo(void) 18void foo(void)
19{ 19{
20 OFFSET(HOST_SC_IP, sigcontext, eip);
21 OFFSET(HOST_SC_SP, sigcontext, esp);
22 OFFSET(HOST_SC_FS, sigcontext, fs);
23 OFFSET(HOST_SC_GS, sigcontext, gs);
24 OFFSET(HOST_SC_DS, sigcontext, ds);
25 OFFSET(HOST_SC_ES, sigcontext, es);
26 OFFSET(HOST_SC_SS, sigcontext, ss);
27 OFFSET(HOST_SC_CS, sigcontext, cs);
28 OFFSET(HOST_SC_EFLAGS, sigcontext, eflags);
29 OFFSET(HOST_SC_EAX, sigcontext, eax);
30 OFFSET(HOST_SC_EBX, sigcontext, ebx);
31 OFFSET(HOST_SC_ECX, sigcontext, ecx);
32 OFFSET(HOST_SC_EDX, sigcontext, edx);
33 OFFSET(HOST_SC_EDI, sigcontext, edi);
34 OFFSET(HOST_SC_ESI, sigcontext, esi);
35 OFFSET(HOST_SC_EBP, sigcontext, ebp);
36 OFFSET(HOST_SC_TRAPNO, sigcontext, trapno); 20 OFFSET(HOST_SC_TRAPNO, sigcontext, trapno);
37 OFFSET(HOST_SC_ERR, sigcontext, err); 21 OFFSET(HOST_SC_ERR, sigcontext, err);
38 OFFSET(HOST_SC_CR2, sigcontext, cr2); 22 OFFSET(HOST_SC_CR2, sigcontext, cr2);
39 OFFSET(HOST_SC_FPSTATE, sigcontext, fpstate);
40 OFFSET(HOST_SC_SIGMASK, sigcontext, oldmask);
41 OFFSET(HOST_SC_FP_CW, _fpstate, cw);
42 OFFSET(HOST_SC_FP_SW, _fpstate, sw);
43 OFFSET(HOST_SC_FP_TAG, _fpstate, tag);
44 OFFSET(HOST_SC_FP_IPOFF, _fpstate, ipoff);
45 OFFSET(HOST_SC_FP_CSSEL, _fpstate, cssel);
46 OFFSET(HOST_SC_FP_DATAOFF, _fpstate, dataoff);
47 OFFSET(HOST_SC_FP_DATASEL, _fpstate, datasel);
48 OFFSET(HOST_SC_FP_ST, _fpstate, _st);
49 OFFSET(HOST_SC_FXSR_ENV, _fpstate, _fxsr_env);
50 23
51 DEFINE_LONGS(HOST_FP_SIZE, sizeof(struct user_fpregs_struct)); 24 DEFINE_LONGS(HOST_FP_SIZE, sizeof(struct user_fpregs_struct));
52 DEFINE_LONGS(HOST_XFP_SIZE, sizeof(struct user_fpxregs_struct)); 25 DEFINE_LONGS(HOST_XFP_SIZE, sizeof(struct user_fpxregs_struct));
diff --git a/arch/um/sys-x86_64/user-offsets.c b/arch/um/sys-x86_64/user-offsets.c
index f1ef2a8dfbc6..2f3443c6e859 100644
--- a/arch/um/sys-x86_64/user-offsets.c
+++ b/arch/um/sys-x86_64/user-offsets.c
@@ -19,37 +19,9 @@
19 19
20void foo(void) 20void foo(void)
21{ 21{
22 OFFSET(HOST_SC_RBX, sigcontext, rbx);
23 OFFSET(HOST_SC_RCX, sigcontext, rcx);
24 OFFSET(HOST_SC_RDX, sigcontext, rdx);
25 OFFSET(HOST_SC_RSI, sigcontext, rsi);
26 OFFSET(HOST_SC_RDI, sigcontext, rdi);
27 OFFSET(HOST_SC_RBP, sigcontext, rbp);
28 OFFSET(HOST_SC_RAX, sigcontext, rax);
29 OFFSET(HOST_SC_R8, sigcontext, r8);
30 OFFSET(HOST_SC_R9, sigcontext, r9);
31 OFFSET(HOST_SC_R10, sigcontext, r10);
32 OFFSET(HOST_SC_R11, sigcontext, r11);
33 OFFSET(HOST_SC_R12, sigcontext, r12);
34 OFFSET(HOST_SC_R13, sigcontext, r13);
35 OFFSET(HOST_SC_R14, sigcontext, r14);
36 OFFSET(HOST_SC_R15, sigcontext, r15);
37 OFFSET(HOST_SC_IP, sigcontext, rip);
38 OFFSET(HOST_SC_SP, sigcontext, rsp);
39 OFFSET(HOST_SC_CR2, sigcontext, cr2); 22 OFFSET(HOST_SC_CR2, sigcontext, cr2);
40 OFFSET(HOST_SC_ERR, sigcontext, err); 23 OFFSET(HOST_SC_ERR, sigcontext, err);
41 OFFSET(HOST_SC_TRAPNO, sigcontext, trapno); 24 OFFSET(HOST_SC_TRAPNO, sigcontext, trapno);
42 OFFSET(HOST_SC_CS, sigcontext, cs);
43 OFFSET(HOST_SC_FS, sigcontext, fs);
44 OFFSET(HOST_SC_GS, sigcontext, gs);
45 OFFSET(HOST_SC_EFLAGS, sigcontext, eflags);
46 OFFSET(HOST_SC_SIGMASK, sigcontext, oldmask);
47#if 0
48 OFFSET(HOST_SC_ORIG_RAX, sigcontext, orig_rax);
49 OFFSET(HOST_SC_DS, sigcontext, ds);
50 OFFSET(HOST_SC_ES, sigcontext, es);
51 OFFSET(HOST_SC_SS, sigcontext, ss);
52#endif
53 25
54 DEFINE(HOST_FP_SIZE, sizeof(struct _fpstate) / sizeof(unsigned long)); 26 DEFINE(HOST_FP_SIZE, sizeof(struct _fpstate) / sizeof(unsigned long));
55 DEFINE(HOST_XFP_SIZE, 0); 27 DEFINE(HOST_XFP_SIZE, 0);
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 3be2305709b7..4a88cf7695b4 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -1054,7 +1054,7 @@ config SECCOMP
1054 1054
1055config CC_STACKPROTECTOR 1055config CC_STACKPROTECTOR
1056 bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)" 1056 bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)"
1057 depends on X86_64 && EXPERIMENTAL 1057 depends on X86_64 && EXPERIMENTAL && BROKEN
1058 help 1058 help
1059 This option turns on the -fstack-protector GCC feature. This 1059 This option turns on the -fstack-protector GCC feature. This
1060 feature puts, at the beginning of critical functions, a canary 1060 feature puts, at the beginning of critical functions, a canary
diff --git a/arch/x86/Kconfig.cpu b/arch/x86/Kconfig.cpu
index e09a6b73a1aa..6d50064db182 100644
--- a/arch/x86/Kconfig.cpu
+++ b/arch/x86/Kconfig.cpu
@@ -377,6 +377,19 @@ config X86_OOSTORE
377 def_bool y 377 def_bool y
378 depends on (MWINCHIP3D || MWINCHIP2 || MWINCHIPC6) && MTRR 378 depends on (MWINCHIP3D || MWINCHIP2 || MWINCHIPC6) && MTRR
379 379
380#
381# P6_NOPs are a relatively minor optimization that require a family >=
382# 6 processor, except that it is broken on certain VIA chips.
383# Furthermore, AMD chips prefer a totally different sequence of NOPs
384# (which work on all CPUs). As a result, disallow these if we're
385# compiling X86_GENERIC but not X86_64 (these NOPs do work on all
386# x86-64 capable chips); the list of processors in the right-hand clause
387# are the cores that benefit from this optimization.
388#
389config X86_P6_NOP
390 def_bool y
391 depends on (X86_64 || !X86_GENERIC) && (M686 || MPENTIUMII || MPENTIUMIII || MPENTIUMM || MCORE2 || PENTIUM4)
392
380config X86_TSC 393config X86_TSC
381 def_bool y 394 def_bool y
382 depends on ((MWINCHIP3D || MWINCHIP2 || MCRUSOE || MEFFICEON || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || MK8 || MVIAC3_2 || MVIAC7 || MGEODEGX1 || MGEODE_LX || MCORE2) && !X86_NUMAQ) || X86_64 395 depends on ((MWINCHIP3D || MWINCHIP2 || MCRUSOE || MEFFICEON || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || MK8 || MVIAC3_2 || MVIAC7 || MGEODEGX1 || MGEODE_LX || MCORE2) && !X86_NUMAQ) || X86_64
@@ -390,6 +403,7 @@ config X86_CMOV
390config X86_MINIMUM_CPU_FAMILY 403config X86_MINIMUM_CPU_FAMILY
391 int 404 int
392 default "64" if X86_64 405 default "64" if X86_64
406 default "6" if X86_32 && X86_P6_NOP
393 default "4" if X86_32 && (X86_XADD || X86_CMPXCHG || X86_BSWAP || X86_WP_WORKS_OK) 407 default "4" if X86_32 && (X86_XADD || X86_CMPXCHG || X86_BSWAP || X86_WP_WORKS_OK)
394 default "3" 408 default "3"
395 409
diff --git a/arch/x86/Kconfig.debug b/arch/x86/Kconfig.debug
index 864affc9a7b0..702eb39901ca 100644
--- a/arch/x86/Kconfig.debug
+++ b/arch/x86/Kconfig.debug
@@ -156,7 +156,7 @@ config IO_DELAY_TYPE_NONE
156 156
157choice 157choice
158 prompt "IO delay type" 158 prompt "IO delay type"
159 default IO_DELAY_0XED 159 default IO_DELAY_0X80
160 160
161config IO_DELAY_0X80 161config IO_DELAY_0X80
162 bool "port 0x80 based port-IO delay [recommended]" 162 bool "port 0x80 based port-IO delay [recommended]"
diff --git a/arch/x86/Makefile b/arch/x86/Makefile
index 204af43535c5..f1e739a43d41 100644
--- a/arch/x86/Makefile
+++ b/arch/x86/Makefile
@@ -229,7 +229,7 @@ zdisk bzdisk: vmlinux
229fdimage fdimage144 fdimage288 isoimage: vmlinux 229fdimage fdimage144 fdimage288 isoimage: vmlinux
230 $(Q)$(MAKE) $(build)=$(boot) BOOTIMAGE=$(KBUILD_IMAGE) $@ 230 $(Q)$(MAKE) $(build)=$(boot) BOOTIMAGE=$(KBUILD_IMAGE) $@
231 231
232install: vdso_install 232install:
233 $(Q)$(MAKE) $(build)=$(boot) BOOTIMAGE=$(KBUILD_IMAGE) install 233 $(Q)$(MAKE) $(build)=$(boot) BOOTIMAGE=$(KBUILD_IMAGE) install
234 234
235PHONY += vdso_install 235PHONY += vdso_install
diff --git a/arch/x86/boot/memory.c b/arch/x86/boot/memory.c
index 378353956b5d..e77d89f9e8aa 100644
--- a/arch/x86/boot/memory.c
+++ b/arch/x86/boot/memory.c
@@ -37,6 +37,12 @@ static int detect_memory_e820(void)
37 "=m" (*desc) 37 "=m" (*desc)
38 : "D" (desc), "d" (SMAP), "a" (0xe820)); 38 : "D" (desc), "d" (SMAP), "a" (0xe820));
39 39
40 /* BIOSes which terminate the chain with CF = 1 as opposed
41 to %ebx = 0 don't always report the SMAP signature on
42 the final, failing, probe. */
43 if (err)
44 break;
45
40 /* Some BIOSes stop returning SMAP in the middle of 46 /* Some BIOSes stop returning SMAP in the middle of
41 the search loop. We don't know exactly how the BIOS 47 the search loop. We don't know exactly how the BIOS
42 screwed up the map at that point, we might have a 48 screwed up the map at that point, we might have a
@@ -47,9 +53,6 @@ static int detect_memory_e820(void)
47 break; 53 break;
48 } 54 }
49 55
50 if (err)
51 break;
52
53 count++; 56 count++;
54 desc++; 57 desc++;
55 } while (next && count < E820MAX); 58 } while (next && count < E820MAX);
diff --git a/arch/x86/kernel/Makefile b/arch/x86/kernel/Makefile
index 76ec0f8f138a..4eb5ce841106 100644
--- a/arch/x86/kernel/Makefile
+++ b/arch/x86/kernel/Makefile
@@ -6,7 +6,15 @@ extra-y := head_$(BITS).o init_task.o vmlinux.lds
6extra-$(CONFIG_X86_64) += head64.o 6extra-$(CONFIG_X86_64) += head64.o
7 7
8CPPFLAGS_vmlinux.lds += -U$(UTS_MACHINE) 8CPPFLAGS_vmlinux.lds += -U$(UTS_MACHINE)
9CFLAGS_vsyscall_64.o := $(PROFILING) -g0 9
10#
11# vsyscalls (which work on the user stack) should have
12# no stack-protector checks:
13#
14nostackp := $(call cc-option, -fno-stack-protector)
15CFLAGS_vsyscall_64.o := $(PROFILING) -g0 $(nostackp)
16CFLAGS_hpet.o := $(nostackp)
17CFLAGS_tsc_64.o := $(nostackp)
10 18
11obj-y := process_$(BITS).o signal_$(BITS).o entry_$(BITS).o 19obj-y := process_$(BITS).o signal_$(BITS).o entry_$(BITS).o
12obj-y += traps_$(BITS).o irq_$(BITS).o 20obj-y += traps_$(BITS).o irq_$(BITS).o
diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
index 680b7300a489..2cdc9de9371d 100644
--- a/arch/x86/kernel/acpi/boot.c
+++ b/arch/x86/kernel/acpi/boot.c
@@ -72,7 +72,8 @@ static inline int acpi_madt_oem_check(char *oem_id, char *oem_table_id) { return
72#define PREFIX "ACPI: " 72#define PREFIX "ACPI: "
73 73
74int acpi_noirq; /* skip ACPI IRQ initialization */ 74int acpi_noirq; /* skip ACPI IRQ initialization */
75int acpi_pci_disabled __initdata; /* skip ACPI PCI scan and IRQ initialization */ 75int acpi_pci_disabled; /* skip ACPI PCI scan and IRQ initialization */
76EXPORT_SYMBOL(acpi_pci_disabled);
76int acpi_ht __initdata = 1; /* enable HT */ 77int acpi_ht __initdata = 1; /* enable HT */
77 78
78int acpi_lapic; 79int acpi_lapic;
diff --git a/arch/x86/kernel/asm-offsets_32.c b/arch/x86/kernel/asm-offsets_32.c
index afd84463b712..8ea040124f7d 100644
--- a/arch/x86/kernel/asm-offsets_32.c
+++ b/arch/x86/kernel/asm-offsets_32.c
@@ -20,10 +20,8 @@
20 20
21#include <xen/interface/xen.h> 21#include <xen/interface/xen.h>
22 22
23#ifdef CONFIG_LGUEST_GUEST
24#include <linux/lguest.h> 23#include <linux/lguest.h>
25#include "../../../drivers/lguest/lg.h" 24#include "../../../drivers/lguest/lg.h"
26#endif
27 25
28#define DEFINE(sym, val) \ 26#define DEFINE(sym, val) \
29 asm volatile("\n->" #sym " %0 " #val : : "i" (val)) 27 asm volatile("\n->" #sym " %0 " #val : : "i" (val))
@@ -130,10 +128,12 @@ void foo(void)
130 OFFSET(XEN_vcpu_info_pending, vcpu_info, evtchn_upcall_pending); 128 OFFSET(XEN_vcpu_info_pending, vcpu_info, evtchn_upcall_pending);
131#endif 129#endif
132 130
133#ifdef CONFIG_LGUEST_GUEST 131#if defined(CONFIG_LGUEST) || defined(CONFIG_LGUEST_GUEST) || defined(CONFIG_LGUEST_MODULE)
134 BLANK(); 132 BLANK();
135 OFFSET(LGUEST_DATA_irq_enabled, lguest_data, irq_enabled); 133 OFFSET(LGUEST_DATA_irq_enabled, lguest_data, irq_enabled);
136 OFFSET(LGUEST_DATA_pgdir, lguest_data, pgdir); 134 OFFSET(LGUEST_DATA_pgdir, lguest_data, pgdir);
135
136 BLANK();
137 OFFSET(LGUEST_PAGES_host_gdt_desc, lguest_pages, state.host_gdt_desc); 137 OFFSET(LGUEST_PAGES_host_gdt_desc, lguest_pages, state.host_gdt_desc);
138 OFFSET(LGUEST_PAGES_host_idt_desc, lguest_pages, state.host_idt_desc); 138 OFFSET(LGUEST_PAGES_host_idt_desc, lguest_pages, state.host_idt_desc);
139 OFFSET(LGUEST_PAGES_host_cr3, lguest_pages, state.host_cr3); 139 OFFSET(LGUEST_PAGES_host_cr3, lguest_pages, state.host_cr3);
diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c
index 9b95edcfc6ae..027e5c003b16 100644
--- a/arch/x86/kernel/cpu/bugs.c
+++ b/arch/x86/kernel/cpu/bugs.c
@@ -25,14 +25,6 @@ static int __init no_halt(char *s)
25 25
26__setup("no-hlt", no_halt); 26__setup("no-hlt", no_halt);
27 27
28static int __init mca_pentium(char *s)
29{
30 mca_pentium_flag = 1;
31 return 1;
32}
33
34__setup("mca-pentium", mca_pentium);
35
36static int __init no_387(char *s) 28static int __init no_387(char *s)
37{ 29{
38 boot_cpu_data.hard_math = 0; 30 boot_cpu_data.hard_math = 0;
diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
index f86a3c4a2669..a38aafaefc23 100644
--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -504,7 +504,7 @@ void __cpuinit identify_cpu(struct cpuinfo_x86 *c)
504 504
505 /* Clear all flags overriden by options */ 505 /* Clear all flags overriden by options */
506 for (i = 0; i < NCAPINTS; i++) 506 for (i = 0; i < NCAPINTS; i++)
507 c->x86_capability[i] ^= cleared_cpu_caps[i]; 507 c->x86_capability[i] &= ~cleared_cpu_caps[i];
508 508
509 /* Init Machine Check Exception if available. */ 509 /* Init Machine Check Exception if available. */
510 mcheck_init(c); 510 mcheck_init(c);
diff --git a/arch/x86/kernel/cpu/mtrr/main.c b/arch/x86/kernel/cpu/mtrr/main.c
index b6e136f23d3d..be83336fddba 100644
--- a/arch/x86/kernel/cpu/mtrr/main.c
+++ b/arch/x86/kernel/cpu/mtrr/main.c
@@ -43,6 +43,7 @@
43#include <asm/uaccess.h> 43#include <asm/uaccess.h>
44#include <asm/processor.h> 44#include <asm/processor.h>
45#include <asm/msr.h> 45#include <asm/msr.h>
46#include <asm/kvm_para.h>
46#include "mtrr.h" 47#include "mtrr.h"
47 48
48u32 num_var_ranges = 0; 49u32 num_var_ranges = 0;
@@ -649,6 +650,7 @@ static __init int amd_special_default_mtrr(void)
649 650
650/** 651/**
651 * mtrr_trim_uncached_memory - trim RAM not covered by MTRRs 652 * mtrr_trim_uncached_memory - trim RAM not covered by MTRRs
653 * @end_pfn: ending page frame number
652 * 654 *
653 * Some buggy BIOSes don't setup the MTRRs properly for systems with certain 655 * Some buggy BIOSes don't setup the MTRRs properly for systems with certain
654 * memory configurations. This routine checks that the highest MTRR matches 656 * memory configurations. This routine checks that the highest MTRR matches
@@ -688,8 +690,11 @@ int __init mtrr_trim_uncached_memory(unsigned long end_pfn)
688 690
689 /* kvm/qemu doesn't have mtrr set right, don't trim them all */ 691 /* kvm/qemu doesn't have mtrr set right, don't trim them all */
690 if (!highest_pfn) { 692 if (!highest_pfn) {
691 printk(KERN_WARNING "WARNING: strange, CPU MTRRs all blank?\n"); 693 if (!kvm_para_available()) {
692 WARN_ON(1); 694 printk(KERN_WARNING
695 "WARNING: strange, CPU MTRRs all blank?\n");
696 WARN_ON(1);
697 }
693 return 0; 698 return 0;
694 } 699 }
695 700
diff --git a/arch/x86/kernel/cpu/transmeta.c b/arch/x86/kernel/cpu/transmeta.c
index 200fb3f9ebfb..e8b422c1c512 100644
--- a/arch/x86/kernel/cpu/transmeta.c
+++ b/arch/x86/kernel/cpu/transmeta.c
@@ -76,13 +76,6 @@ static void __cpuinit init_transmeta(struct cpuinfo_x86 *c)
76 /* All Transmeta CPUs have a constant TSC */ 76 /* All Transmeta CPUs have a constant TSC */
77 set_bit(X86_FEATURE_CONSTANT_TSC, c->x86_capability); 77 set_bit(X86_FEATURE_CONSTANT_TSC, c->x86_capability);
78 78
79 /* If we can run i686 user-space code, call us an i686 */
80#define USER686 ((1 << X86_FEATURE_TSC)|\
81 (1 << X86_FEATURE_CX8)|\
82 (1 << X86_FEATURE_CMOV))
83 if (c->x86 == 5 && (c->x86_capability[0] & USER686) == USER686)
84 c->x86 = 6;
85
86#ifdef CONFIG_SYSCTL 79#ifdef CONFIG_SYSCTL
87 /* randomize_va_space slows us down enormously; 80 /* randomize_va_space slows us down enormously;
88 it probably triggers retranslation of x86->native bytecode */ 81 it probably triggers retranslation of x86->native bytecode */
diff --git a/arch/x86/kernel/efi.c b/arch/x86/kernel/efi.c
index 0c0eeb163d90..759e02bec070 100644
--- a/arch/x86/kernel/efi.c
+++ b/arch/x86/kernel/efi.c
@@ -54,7 +54,7 @@ EXPORT_SYMBOL(efi);
54 54
55struct efi_memory_map memmap; 55struct efi_memory_map memmap;
56 56
57struct efi efi_phys __initdata; 57static struct efi efi_phys __initdata;
58static efi_system_table_t efi_systab __initdata; 58static efi_system_table_t efi_systab __initdata;
59 59
60static int __init setup_noefi(char *arg) 60static int __init setup_noefi(char *arg)
diff --git a/arch/x86/kernel/efi_32.c b/arch/x86/kernel/efi_32.c
index cb91f985b4a1..5d23d85624d4 100644
--- a/arch/x86/kernel/efi_32.c
+++ b/arch/x86/kernel/efi_32.c
@@ -28,6 +28,7 @@
28#include <asm/page.h> 28#include <asm/page.h>
29#include <asm/pgtable.h> 29#include <asm/pgtable.h>
30#include <asm/tlbflush.h> 30#include <asm/tlbflush.h>
31#include <asm/efi.h>
31 32
32/* 33/*
33 * To make EFI call EFI runtime service in physical addressing mode we need 34 * To make EFI call EFI runtime service in physical addressing mode we need
diff --git a/arch/x86/kernel/entry_32.S b/arch/x86/kernel/entry_32.S
index 824e21b80aad..4b87c32b639f 100644
--- a/arch/x86/kernel/entry_32.S
+++ b/arch/x86/kernel/entry_32.S
@@ -409,7 +409,7 @@ restore_nocheck_notrace:
409 RESTORE_REGS 409 RESTORE_REGS
410 addl $4, %esp # skip orig_eax/error_code 410 addl $4, %esp # skip orig_eax/error_code
411 CFI_ADJUST_CFA_OFFSET -4 411 CFI_ADJUST_CFA_OFFSET -4
412ENTRY(irq_return) 412irq_return:
413 INTERRUPT_RETURN 413 INTERRUPT_RETURN
414.section .fixup,"ax" 414.section .fixup,"ax"
415iret_exc: 415iret_exc:
diff --git a/arch/x86/kernel/entry_64.S b/arch/x86/kernel/entry_64.S
index 6be39a387c5a..c20c9e7e08dd 100644
--- a/arch/x86/kernel/entry_64.S
+++ b/arch/x86/kernel/entry_64.S
@@ -453,6 +453,7 @@ ENTRY(stub_execve)
453 CFI_REGISTER rip, r11 453 CFI_REGISTER rip, r11
454 SAVE_REST 454 SAVE_REST
455 FIXUP_TOP_OF_STACK %r11 455 FIXUP_TOP_OF_STACK %r11
456 movq %rsp, %rcx
456 call sys_execve 457 call sys_execve
457 RESTORE_TOP_OF_STACK %r11 458 RESTORE_TOP_OF_STACK %r11
458 movq %rax,RAX(%rsp) 459 movq %rax,RAX(%rsp)
@@ -583,7 +584,7 @@ retint_restore_args: /* return to kernel space */
583restore_args: 584restore_args:
584 RESTORE_ARGS 0,8,0 585 RESTORE_ARGS 0,8,0
585 586
586ENTRY(irq_return) 587irq_return:
587 INTERRUPT_RETURN 588 INTERRUPT_RETURN
588 589
589 .section __ex_table, "a" 590 .section __ex_table, "a"
@@ -1036,15 +1037,16 @@ ENDPROC(child_rip)
1036 * rdi: name, rsi: argv, rdx: envp 1037 * rdi: name, rsi: argv, rdx: envp
1037 * 1038 *
1038 * We want to fallback into: 1039 * We want to fallback into:
1039 * extern long sys_execve(char *name, char **argv,char **envp, struct pt_regs regs) 1040 * extern long sys_execve(char *name, char **argv,char **envp, struct pt_regs *regs)
1040 * 1041 *
1041 * do_sys_execve asm fallback arguments: 1042 * do_sys_execve asm fallback arguments:
1042 * rdi: name, rsi: argv, rdx: envp, fake frame on the stack 1043 * rdi: name, rsi: argv, rdx: envp, rcx: fake frame on the stack
1043 */ 1044 */
1044ENTRY(kernel_execve) 1045ENTRY(kernel_execve)
1045 CFI_STARTPROC 1046 CFI_STARTPROC
1046 FAKE_STACK_FRAME $0 1047 FAKE_STACK_FRAME $0
1047 SAVE_ALL 1048 SAVE_ALL
1049 movq %rsp,%rcx
1048 call sys_execve 1050 call sys_execve
1049 movq %rax, RAX(%rsp) 1051 movq %rax, RAX(%rsp)
1050 RESTORE_REST 1052 RESTORE_REST
diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c
index 24dbf56928d7..ad2440832de0 100644
--- a/arch/x86/kernel/head64.c
+++ b/arch/x86/kernel/head64.c
@@ -88,6 +88,9 @@ void __init x86_64_start_kernel(char * real_mode_data)
88 /* Make NULL pointers segfault */ 88 /* Make NULL pointers segfault */
89 zap_identity_mappings(); 89 zap_identity_mappings();
90 90
91 /* Cleanup the over mapped high alias */
92 cleanup_highmap();
93
91 for (i = 0; i < IDT_ENTRIES; i++) { 94 for (i = 0; i < IDT_ENTRIES; i++) {
92#ifdef CONFIG_EARLY_PRINTK 95#ifdef CONFIG_EARLY_PRINTK
93 set_intr_gate(i, &early_idt_handlers[i]); 96 set_intr_gate(i, &early_idt_handlers[i]);
diff --git a/arch/x86/kernel/head_32.S b/arch/x86/kernel/head_32.S
index 74ef4a41f224..fd8ca53943a8 100644
--- a/arch/x86/kernel/head_32.S
+++ b/arch/x86/kernel/head_32.S
@@ -606,13 +606,13 @@ ENTRY(_stext)
606.section ".bss.page_aligned","wa" 606.section ".bss.page_aligned","wa"
607 .align PAGE_SIZE_asm 607 .align PAGE_SIZE_asm
608#ifdef CONFIG_X86_PAE 608#ifdef CONFIG_X86_PAE
609ENTRY(swapper_pg_pmd) 609swapper_pg_pmd:
610 .fill 1024*KPMDS,4,0 610 .fill 1024*KPMDS,4,0
611#else 611#else
612ENTRY(swapper_pg_dir) 612ENTRY(swapper_pg_dir)
613 .fill 1024,4,0 613 .fill 1024,4,0
614#endif 614#endif
615ENTRY(swapper_pg_fixmap) 615swapper_pg_fixmap:
616 .fill 1024,4,0 616 .fill 1024,4,0
617ENTRY(empty_zero_page) 617ENTRY(empty_zero_page)
618 .fill 4096,1,0 618 .fill 4096,1,0
diff --git a/arch/x86/kernel/head_64.S b/arch/x86/kernel/head_64.S
index 09b38d539b09..a007454133a3 100644
--- a/arch/x86/kernel/head_64.S
+++ b/arch/x86/kernel/head_64.S
@@ -107,8 +107,13 @@ startup_64:
107 movq %rdx, 0(%rbx, %rax, 8) 107 movq %rdx, 0(%rbx, %rax, 8)
108ident_complete: 108ident_complete:
109 109
110 /* Fixup the kernel text+data virtual addresses 110 /*
111 * Fixup the kernel text+data virtual addresses. Note that
112 * we might write invalid pmds, when the kernel is relocated
113 * cleanup_highmap() fixes this up along with the mappings
114 * beyond _end.
111 */ 115 */
116
112 leaq level2_kernel_pgt(%rip), %rdi 117 leaq level2_kernel_pgt(%rip), %rdi
113 leaq 4096(%rdi), %r8 118 leaq 4096(%rdi), %r8
114 /* See if it is a valid page table entry */ 119 /* See if it is a valid page table entry */
@@ -250,7 +255,7 @@ ENTRY(secondary_startup_64)
250 lretq 255 lretq
251 256
252 /* SMP bootup changes these two */ 257 /* SMP bootup changes these two */
253 __CPUINITDATA 258 __REFDATA
254 .align 8 259 .align 8
255 ENTRY(initial_code) 260 ENTRY(initial_code)
256 .quad x86_64_start_kernel 261 .quad x86_64_start_kernel
@@ -374,18 +379,24 @@ NEXT_PAGE(level2_ident_pgt)
374 /* Since I easily can, map the first 1G. 379 /* Since I easily can, map the first 1G.
375 * Don't set NX because code runs from these pages. 380 * Don't set NX because code runs from these pages.
376 */ 381 */
377 PMDS(0x0000000000000000, __PAGE_KERNEL_LARGE_EXEC, PTRS_PER_PMD) 382 PMDS(0, __PAGE_KERNEL_LARGE_EXEC, PTRS_PER_PMD)
378 383
379NEXT_PAGE(level2_kernel_pgt) 384NEXT_PAGE(level2_kernel_pgt)
380 /* 40MB kernel mapping. The kernel code cannot be bigger than that. 385 /*
381 When you change this change KERNEL_TEXT_SIZE in page.h too. */ 386 * 128 MB kernel mapping. We spend a full page on this pagetable
382 /* (2^48-(2*1024*1024*1024)-((2^39)*511)-((2^30)*510)) = 0 */ 387 * anyway.
383 PMDS(0x0000000000000000, __PAGE_KERNEL_LARGE_EXEC|_PAGE_GLOBAL, KERNEL_TEXT_SIZE/PMD_SIZE) 388 *
384 /* Module mapping starts here */ 389 * The kernel code+data+bss must not be bigger than that.
385 .fill (PTRS_PER_PMD - (KERNEL_TEXT_SIZE/PMD_SIZE)),8,0 390 *
391 * (NOTE: at +128MB starts the module area, see MODULES_VADDR.
392 * If you want to increase this then increase MODULES_VADDR
393 * too.)
394 */
395 PMDS(0, __PAGE_KERNEL_LARGE_EXEC|_PAGE_GLOBAL,
396 KERNEL_IMAGE_SIZE/PMD_SIZE)
386 397
387NEXT_PAGE(level2_spare_pgt) 398NEXT_PAGE(level2_spare_pgt)
388 .fill 512,8,0 399 .fill 512, 8, 0
389 400
390#undef PMDS 401#undef PMDS
391#undef NEXT_PAGE 402#undef NEXT_PAGE
diff --git a/arch/x86/kernel/hpet.c b/arch/x86/kernel/hpet.c
index 429d084e014d..235fd6c77504 100644
--- a/arch/x86/kernel/hpet.c
+++ b/arch/x86/kernel/hpet.c
@@ -368,8 +368,8 @@ static int hpet_clocksource_register(void)
368 return 0; 368 return 0;
369} 369}
370 370
371/* 371/**
372 * Try to setup the HPET timer 372 * hpet_enable - Try to setup the HPET timer. Returns 1 on success.
373 */ 373 */
374int __init hpet_enable(void) 374int __init hpet_enable(void)
375{ 375{
diff --git a/arch/x86/kernel/i387.c b/arch/x86/kernel/i387.c
index 26719bd2c77c..763dfc407232 100644
--- a/arch/x86/kernel/i387.c
+++ b/arch/x86/kernel/i387.c
@@ -39,7 +39,7 @@
39#define HAVE_HWFP 1 39#define HAVE_HWFP 1
40#endif 40#endif
41 41
42unsigned int mxcsr_feature_mask __read_mostly = 0xffffffffu; 42static unsigned int mxcsr_feature_mask __read_mostly = 0xffffffffu;
43 43
44void mxcsr_feature_mask_init(void) 44void mxcsr_feature_mask_init(void)
45{ 45{
diff --git a/arch/x86/kernel/i8259_32.c b/arch/x86/kernel/i8259_32.c
index 2d25b77102fe..fe631967d625 100644
--- a/arch/x86/kernel/i8259_32.c
+++ b/arch/x86/kernel/i8259_32.c
@@ -26,8 +26,6 @@
26 * present in the majority of PC/AT boxes. 26 * present in the majority of PC/AT boxes.
27 * plus some generic x86 specific things if generic specifics makes 27 * plus some generic x86 specific things if generic specifics makes
28 * any sense at all. 28 * any sense at all.
29 * this file should become arch/i386/kernel/irq.c when the old irq.c
30 * moves to arch independent land
31 */ 29 */
32 30
33static int i8259A_auto_eoi; 31static int i8259A_auto_eoi;
@@ -362,23 +360,12 @@ void __init init_ISA_irqs (void)
362#endif 360#endif
363 init_8259A(0); 361 init_8259A(0);
364 362
365 for (i = 0; i < NR_IRQS; i++) { 363 /*
366 irq_desc[i].status = IRQ_DISABLED; 364 * 16 old-style INTA-cycle interrupts:
367 irq_desc[i].action = NULL; 365 */
368 irq_desc[i].depth = 1; 366 for (i = 0; i < 16; i++) {
369 367 set_irq_chip_and_handler_name(i, &i8259A_chip,
370 if (i < 16) { 368 handle_level_irq, "XT");
371 /*
372 * 16 old-style INTA-cycle interrupts:
373 */
374 set_irq_chip_and_handler_name(i, &i8259A_chip,
375 handle_level_irq, "XT");
376 } else {
377 /*
378 * 'high' PCI IRQs filled in on demand
379 */
380 irq_desc[i].chip = &no_irq_chip;
381 }
382 } 369 }
383} 370}
384 371
diff --git a/arch/x86/kernel/init_task.c b/arch/x86/kernel/init_task.c
index 5b3ce7934363..3d01e47777db 100644
--- a/arch/x86/kernel/init_task.c
+++ b/arch/x86/kernel/init_task.c
@@ -15,6 +15,7 @@ static struct files_struct init_files = INIT_FILES;
15static struct signal_struct init_signals = INIT_SIGNALS(init_signals); 15static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
16static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand); 16static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
17struct mm_struct init_mm = INIT_MM(init_mm); 17struct mm_struct init_mm = INIT_MM(init_mm);
18EXPORT_UNUSED_SYMBOL(init_mm); /* will be removed in 2.6.26 */
18 19
19/* 20/*
20 * Initial thread structure. 21 * Initial thread structure.
diff --git a/arch/x86/kernel/io_delay.c b/arch/x86/kernel/io_delay.c
index bd49321034db..c706a3061553 100644
--- a/arch/x86/kernel/io_delay.c
+++ b/arch/x86/kernel/io_delay.c
@@ -13,7 +13,6 @@
13#include <asm/io.h> 13#include <asm/io.h>
14 14
15int io_delay_type __read_mostly = CONFIG_DEFAULT_IO_DELAY_TYPE; 15int io_delay_type __read_mostly = CONFIG_DEFAULT_IO_DELAY_TYPE;
16EXPORT_SYMBOL_GPL(io_delay_type);
17 16
18static int __initdata io_delay_override; 17static int __initdata io_delay_override;
19 18
diff --git a/arch/x86/kernel/kprobes.c b/arch/x86/kernel/kprobes.c
index a99e764fd66a..34a591283f5d 100644
--- a/arch/x86/kernel/kprobes.c
+++ b/arch/x86/kernel/kprobes.c
@@ -581,7 +581,7 @@ static int __kprobes kprobe_handler(struct pt_regs *regs)
581 * When a retprobed function returns, this code saves registers and 581 * When a retprobed function returns, this code saves registers and
582 * calls trampoline_handler() runs, which calls the kretprobe's handler. 582 * calls trampoline_handler() runs, which calls the kretprobe's handler.
583 */ 583 */
584void __kprobes kretprobe_trampoline_holder(void) 584static void __used __kprobes kretprobe_trampoline_holder(void)
585{ 585{
586 asm volatile ( 586 asm volatile (
587 ".global kretprobe_trampoline\n" 587 ".global kretprobe_trampoline\n"
@@ -673,7 +673,7 @@ void __kprobes kretprobe_trampoline_holder(void)
673/* 673/*
674 * Called from kretprobe_trampoline 674 * Called from kretprobe_trampoline
675 */ 675 */
676void * __kprobes trampoline_handler(struct pt_regs *regs) 676static __used __kprobes void *trampoline_handler(struct pt_regs *regs)
677{ 677{
678 struct kretprobe_instance *ri = NULL; 678 struct kretprobe_instance *ri = NULL;
679 struct hlist_head *head, empty_rp; 679 struct hlist_head *head, empty_rp;
diff --git a/arch/x86/kernel/nmi_32.c b/arch/x86/kernel/nmi_32.c
index edd413650b3b..6a0aa7038685 100644
--- a/arch/x86/kernel/nmi_32.c
+++ b/arch/x86/kernel/nmi_32.c
@@ -46,9 +46,6 @@ static unsigned int nmi_hz = HZ;
46 46
47static DEFINE_PER_CPU(short, wd_enabled); 47static DEFINE_PER_CPU(short, wd_enabled);
48 48
49/* local prototypes */
50static int unknown_nmi_panic_callback(struct pt_regs *regs, int cpu);
51
52static int endflag __initdata = 0; 49static int endflag __initdata = 0;
53 50
54#ifdef CONFIG_SMP 51#ifdef CONFIG_SMP
@@ -391,15 +388,6 @@ __kprobes int nmi_watchdog_tick(struct pt_regs * regs, unsigned reason)
391 return rc; 388 return rc;
392} 389}
393 390
394int do_nmi_callback(struct pt_regs * regs, int cpu)
395{
396#ifdef CONFIG_SYSCTL
397 if (unknown_nmi_panic)
398 return unknown_nmi_panic_callback(regs, cpu);
399#endif
400 return 0;
401}
402
403#ifdef CONFIG_SYSCTL 391#ifdef CONFIG_SYSCTL
404 392
405static int unknown_nmi_panic_callback(struct pt_regs *regs, int cpu) 393static int unknown_nmi_panic_callback(struct pt_regs *regs, int cpu)
@@ -453,6 +441,15 @@ int proc_nmi_enabled(struct ctl_table *table, int write, struct file *file,
453 441
454#endif 442#endif
455 443
444int do_nmi_callback(struct pt_regs *regs, int cpu)
445{
446#ifdef CONFIG_SYSCTL
447 if (unknown_nmi_panic)
448 return unknown_nmi_panic_callback(regs, cpu);
449#endif
450 return 0;
451}
452
456void __trigger_all_cpu_backtrace(void) 453void __trigger_all_cpu_backtrace(void)
457{ 454{
458 int i; 455 int i;
diff --git a/arch/x86/kernel/nmi_64.c b/arch/x86/kernel/nmi_64.c
index fb99484d21cf..9a4fde74bee1 100644
--- a/arch/x86/kernel/nmi_64.c
+++ b/arch/x86/kernel/nmi_64.c
@@ -46,9 +46,6 @@ static unsigned int nmi_hz = HZ;
46 46
47static DEFINE_PER_CPU(short, wd_enabled); 47static DEFINE_PER_CPU(short, wd_enabled);
48 48
49/* local prototypes */
50static int unknown_nmi_panic_callback(struct pt_regs *regs, int cpu);
51
52/* Run after command line and cpu_init init, but before all other checks */ 49/* Run after command line and cpu_init init, but before all other checks */
53void nmi_watchdog_default(void) 50void nmi_watchdog_default(void)
54{ 51{
@@ -394,15 +391,6 @@ asmlinkage __kprobes void do_nmi(struct pt_regs * regs, long error_code)
394 nmi_exit(); 391 nmi_exit();
395} 392}
396 393
397int do_nmi_callback(struct pt_regs * regs, int cpu)
398{
399#ifdef CONFIG_SYSCTL
400 if (unknown_nmi_panic)
401 return unknown_nmi_panic_callback(regs, cpu);
402#endif
403 return 0;
404}
405
406void stop_nmi(void) 394void stop_nmi(void)
407{ 395{
408 acpi_nmi_disable(); 396 acpi_nmi_disable();
@@ -464,6 +452,15 @@ int proc_nmi_enabled(struct ctl_table *table, int write, struct file *file,
464 452
465#endif 453#endif
466 454
455int do_nmi_callback(struct pt_regs *regs, int cpu)
456{
457#ifdef CONFIG_SYSCTL
458 if (unknown_nmi_panic)
459 return unknown_nmi_panic_callback(regs, cpu);
460#endif
461 return 0;
462}
463
467void __trigger_all_cpu_backtrace(void) 464void __trigger_all_cpu_backtrace(void)
468{ 465{
469 int i; 466 int i;
diff --git a/arch/x86/kernel/process_32.c b/arch/x86/kernel/process_32.c
index a7d50a547dc2..be3c7a299f02 100644
--- a/arch/x86/kernel/process_32.c
+++ b/arch/x86/kernel/process_32.c
@@ -603,11 +603,13 @@ __switch_to_xtra(struct task_struct *prev_p, struct task_struct *next_p,
603 } 603 }
604#endif 604#endif
605 605
606#ifdef X86_BTS
606 if (test_tsk_thread_flag(prev_p, TIF_BTS_TRACE_TS)) 607 if (test_tsk_thread_flag(prev_p, TIF_BTS_TRACE_TS))
607 ptrace_bts_take_timestamp(prev_p, BTS_TASK_DEPARTS); 608 ptrace_bts_take_timestamp(prev_p, BTS_TASK_DEPARTS);
608 609
609 if (test_tsk_thread_flag(next_p, TIF_BTS_TRACE_TS)) 610 if (test_tsk_thread_flag(next_p, TIF_BTS_TRACE_TS))
610 ptrace_bts_take_timestamp(next_p, BTS_TASK_ARRIVES); 611 ptrace_bts_take_timestamp(next_p, BTS_TASK_ARRIVES);
612#endif
611 613
612 614
613 if (!test_tsk_thread_flag(next_p, TIF_IO_BITMAP)) { 615 if (!test_tsk_thread_flag(next_p, TIF_IO_BITMAP)) {
diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c
index b0cc8f0136d8..3baf9b9f4c87 100644
--- a/arch/x86/kernel/process_64.c
+++ b/arch/x86/kernel/process_64.c
@@ -604,11 +604,13 @@ static inline void __switch_to_xtra(struct task_struct *prev_p,
604 memset(tss->io_bitmap, 0xff, prev->io_bitmap_max); 604 memset(tss->io_bitmap, 0xff, prev->io_bitmap_max);
605 } 605 }
606 606
607#ifdef X86_BTS
607 if (test_tsk_thread_flag(prev_p, TIF_BTS_TRACE_TS)) 608 if (test_tsk_thread_flag(prev_p, TIF_BTS_TRACE_TS))
608 ptrace_bts_take_timestamp(prev_p, BTS_TASK_DEPARTS); 609 ptrace_bts_take_timestamp(prev_p, BTS_TASK_DEPARTS);
609 610
610 if (test_tsk_thread_flag(next_p, TIF_BTS_TRACE_TS)) 611 if (test_tsk_thread_flag(next_p, TIF_BTS_TRACE_TS))
611 ptrace_bts_take_timestamp(next_p, BTS_TASK_ARRIVES); 612 ptrace_bts_take_timestamp(next_p, BTS_TASK_ARRIVES);
613#endif
612} 614}
613 615
614/* 616/*
@@ -730,16 +732,16 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
730 */ 732 */
731asmlinkage 733asmlinkage
732long sys_execve(char __user *name, char __user * __user *argv, 734long sys_execve(char __user *name, char __user * __user *argv,
733 char __user * __user *envp, struct pt_regs regs) 735 char __user * __user *envp, struct pt_regs *regs)
734{ 736{
735 long error; 737 long error;
736 char * filename; 738 char * filename;
737 739
738 filename = getname(name); 740 filename = getname(name);
739 error = PTR_ERR(filename); 741 error = PTR_ERR(filename);
740 if (IS_ERR(filename)) 742 if (IS_ERR(filename))
741 return error; 743 return error;
742 error = do_execve(filename, argv, envp, &regs); 744 error = do_execve(filename, argv, envp, regs);
743 putname(filename); 745 putname(filename);
744 return error; 746 return error;
745} 747}
diff --git a/arch/x86/kernel/ptrace.c b/arch/x86/kernel/ptrace.c
index 702c33efea84..f41fdc98efb1 100644
--- a/arch/x86/kernel/ptrace.c
+++ b/arch/x86/kernel/ptrace.c
@@ -544,6 +544,8 @@ static int ptrace_set_debugreg(struct task_struct *child,
544 return 0; 544 return 0;
545} 545}
546 546
547#ifdef X86_BTS
548
547static int ptrace_bts_get_size(struct task_struct *child) 549static int ptrace_bts_get_size(struct task_struct *child)
548{ 550{
549 if (!child->thread.ds_area_msr) 551 if (!child->thread.ds_area_msr)
@@ -826,6 +828,7 @@ void ptrace_bts_take_timestamp(struct task_struct *tsk,
826 828
827 ptrace_bts_write_record(tsk, &rec); 829 ptrace_bts_write_record(tsk, &rec);
828} 830}
831#endif /* X86_BTS */
829 832
830/* 833/*
831 * Called by kernel/ptrace.c when detaching.. 834 * Called by kernel/ptrace.c when detaching..
@@ -839,7 +842,9 @@ void ptrace_disable(struct task_struct *child)
839 clear_tsk_thread_flag(child, TIF_SYSCALL_EMU); 842 clear_tsk_thread_flag(child, TIF_SYSCALL_EMU);
840#endif 843#endif
841 if (child->thread.ds_area_msr) { 844 if (child->thread.ds_area_msr) {
845#ifdef X86_BTS
842 ptrace_bts_realloc(child, 0, 0); 846 ptrace_bts_realloc(child, 0, 0);
847#endif
843 child->thread.debugctlmsr &= ~ds_debugctl_mask(); 848 child->thread.debugctlmsr &= ~ds_debugctl_mask();
844 if (!child->thread.debugctlmsr) 849 if (!child->thread.debugctlmsr)
845 clear_tsk_thread_flag(child, TIF_DEBUGCTLMSR); 850 clear_tsk_thread_flag(child, TIF_DEBUGCTLMSR);
@@ -961,6 +966,10 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
961 break; 966 break;
962#endif 967#endif
963 968
969 /*
970 * These bits need more cooking - not enabled yet:
971 */
972#ifdef X86_BTS
964 case PTRACE_BTS_CONFIG: 973 case PTRACE_BTS_CONFIG:
965 ret = ptrace_bts_config 974 ret = ptrace_bts_config
966 (child, data, (struct ptrace_bts_config __user *)addr); 975 (child, data, (struct ptrace_bts_config __user *)addr);
@@ -988,6 +997,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
988 ret = ptrace_bts_drain 997 ret = ptrace_bts_drain
989 (child, data, (struct bts_struct __user *) addr); 998 (child, data, (struct bts_struct __user *) addr);
990 break; 999 break;
1000#endif
991 1001
992 default: 1002 default:
993 ret = ptrace_request(child, request, addr, data); 1003 ret = ptrace_request(child, request, addr, data);
@@ -1160,7 +1170,7 @@ static int genregs32_set(struct task_struct *target,
1160 if (kbuf) { 1170 if (kbuf) {
1161 const compat_ulong_t *k = kbuf; 1171 const compat_ulong_t *k = kbuf;
1162 while (count > 0 && !ret) { 1172 while (count > 0 && !ret) {
1163 ret = putreg(target, pos, *k++); 1173 ret = putreg32(target, pos, *k++);
1164 count -= sizeof(*k); 1174 count -= sizeof(*k);
1165 pos += sizeof(*k); 1175 pos += sizeof(*k);
1166 } 1176 }
@@ -1171,7 +1181,7 @@ static int genregs32_set(struct task_struct *target,
1171 ret = __get_user(word, u++); 1181 ret = __get_user(word, u++);
1172 if (ret) 1182 if (ret)
1173 break; 1183 break;
1174 ret = putreg(target, pos, word); 1184 ret = putreg32(target, pos, word);
1175 count -= sizeof(*u); 1185 count -= sizeof(*u);
1176 pos += sizeof(*u); 1186 pos += sizeof(*u);
1177 } 1187 }
@@ -1226,12 +1236,14 @@ asmlinkage long sys32_ptrace(long request, u32 pid, u32 addr, u32 data)
1226 case PTRACE_SETOPTIONS: 1236 case PTRACE_SETOPTIONS:
1227 case PTRACE_SET_THREAD_AREA: 1237 case PTRACE_SET_THREAD_AREA:
1228 case PTRACE_GET_THREAD_AREA: 1238 case PTRACE_GET_THREAD_AREA:
1239#ifdef X86_BTS
1229 case PTRACE_BTS_CONFIG: 1240 case PTRACE_BTS_CONFIG:
1230 case PTRACE_BTS_STATUS: 1241 case PTRACE_BTS_STATUS:
1231 case PTRACE_BTS_SIZE: 1242 case PTRACE_BTS_SIZE:
1232 case PTRACE_BTS_GET: 1243 case PTRACE_BTS_GET:
1233 case PTRACE_BTS_CLEAR: 1244 case PTRACE_BTS_CLEAR:
1234 case PTRACE_BTS_DRAIN: 1245 case PTRACE_BTS_DRAIN:
1246#endif
1235 return sys_ptrace(request, pid, addr, data); 1247 return sys_ptrace(request, pid, addr, data);
1236 1248
1237 default: 1249 default:
diff --git a/arch/x86/kernel/setup_32.c b/arch/x86/kernel/setup_32.c
index 691ab4cb167b..a1d7071a51c9 100644
--- a/arch/x86/kernel/setup_32.c
+++ b/arch/x86/kernel/setup_32.c
@@ -164,7 +164,6 @@ unsigned long mmu_cr4_features = X86_CR4_PAE;
164unsigned int machine_id; 164unsigned int machine_id;
165unsigned int machine_submodel_id; 165unsigned int machine_submodel_id;
166unsigned int BIOS_revision; 166unsigned int BIOS_revision;
167unsigned int mca_pentium_flag;
168 167
169/* Boot loader ID as an integer, for the benefit of proc_dointvec */ 168/* Boot loader ID as an integer, for the benefit of proc_dointvec */
170int bootloader_type; 169int bootloader_type;
diff --git a/arch/x86/kernel/setup_64.c b/arch/x86/kernel/setup_64.c
index c0d8208af12a..7637dc91c79b 100644
--- a/arch/x86/kernel/setup_64.c
+++ b/arch/x86/kernel/setup_64.c
@@ -518,7 +518,7 @@ static void __cpuinit display_cacheinfo(struct cpuinfo_x86 *c)
518} 518}
519 519
520#ifdef CONFIG_NUMA 520#ifdef CONFIG_NUMA
521static int nearby_node(int apicid) 521static int __cpuinit nearby_node(int apicid)
522{ 522{
523 int i, node; 523 int i, node;
524 524
@@ -791,7 +791,7 @@ static int __cpuinit intel_num_cpu_cores(struct cpuinfo_x86 *c)
791 return 1; 791 return 1;
792} 792}
793 793
794static void srat_detect_node(void) 794static void __cpuinit srat_detect_node(void)
795{ 795{
796#ifdef CONFIG_NUMA 796#ifdef CONFIG_NUMA
797 unsigned node; 797 unsigned node;
@@ -1021,7 +1021,7 @@ void __cpuinit identify_cpu(struct cpuinfo_x86 *c)
1021 1021
1022 /* Clear all flags overriden by options */ 1022 /* Clear all flags overriden by options */
1023 for (i = 0; i < NCAPINTS; i++) 1023 for (i = 0; i < NCAPINTS; i++)
1024 c->x86_capability[i] ^= cleared_cpu_caps[i]; 1024 c->x86_capability[i] &= ~cleared_cpu_caps[i];
1025 1025
1026#ifdef CONFIG_X86_MCE 1026#ifdef CONFIG_X86_MCE
1027 mcheck_init(c); 1027 mcheck_init(c);
@@ -1046,7 +1046,7 @@ __setup("noclflush", setup_noclflush);
1046void __cpuinit print_cpu_info(struct cpuinfo_x86 *c) 1046void __cpuinit print_cpu_info(struct cpuinfo_x86 *c)
1047{ 1047{
1048 if (c->x86_model_id[0]) 1048 if (c->x86_model_id[0])
1049 printk(KERN_INFO "%s", c->x86_model_id); 1049 printk(KERN_CONT "%s", c->x86_model_id);
1050 1050
1051 if (c->x86_mask || c->cpuid_level >= 0) 1051 if (c->x86_mask || c->cpuid_level >= 0)
1052 printk(KERN_CONT " stepping %02x\n", c->x86_mask); 1052 printk(KERN_CONT " stepping %02x\n", c->x86_mask);
diff --git a/arch/x86/kernel/smpboot_64.c b/arch/x86/kernel/smpboot_64.c
index d53bd6fcb428..0880f2c388a9 100644
--- a/arch/x86/kernel/smpboot_64.c
+++ b/arch/x86/kernel/smpboot_64.c
@@ -554,10 +554,10 @@ static int __cpuinit do_boot_cpu(int cpu, int apicid)
554 int timeout; 554 int timeout;
555 unsigned long start_rip; 555 unsigned long start_rip;
556 struct create_idle c_idle = { 556 struct create_idle c_idle = {
557 .work = __WORK_INITIALIZER(c_idle.work, do_fork_idle),
558 .cpu = cpu, 557 .cpu = cpu,
559 .done = COMPLETION_INITIALIZER_ONSTACK(c_idle.done), 558 .done = COMPLETION_INITIALIZER_ONSTACK(c_idle.done),
560 }; 559 };
560 INIT_WORK(&c_idle.work, do_fork_idle);
561 561
562 /* allocate memory for gdts of secondary cpus. Hotplug is considered */ 562 /* allocate memory for gdts of secondary cpus. Hotplug is considered */
563 if (!cpu_gdt_descr[cpu].address && 563 if (!cpu_gdt_descr[cpu].address &&
diff --git a/arch/x86/kernel/stacktrace.c b/arch/x86/kernel/stacktrace.c
index 02f0f61f5b11..c28c342c162f 100644
--- a/arch/x86/kernel/stacktrace.c
+++ b/arch/x86/kernel/stacktrace.c
@@ -25,6 +25,8 @@ static int save_stack_stack(void *data, char *name)
25static void save_stack_address(void *data, unsigned long addr, int reliable) 25static void save_stack_address(void *data, unsigned long addr, int reliable)
26{ 26{
27 struct stack_trace *trace = data; 27 struct stack_trace *trace = data;
28 if (!reliable)
29 return;
28 if (trace->skip > 0) { 30 if (trace->skip > 0) {
29 trace->skip--; 31 trace->skip--;
30 return; 32 return;
@@ -37,6 +39,8 @@ static void
37save_stack_address_nosched(void *data, unsigned long addr, int reliable) 39save_stack_address_nosched(void *data, unsigned long addr, int reliable)
38{ 40{
39 struct stack_trace *trace = (struct stack_trace *)data; 41 struct stack_trace *trace = (struct stack_trace *)data;
42 if (!reliable)
43 return;
40 if (in_sched_functions(addr)) 44 if (in_sched_functions(addr))
41 return; 45 return;
42 if (trace->skip > 0) { 46 if (trace->skip > 0) {
diff --git a/arch/x86/kernel/tls.c b/arch/x86/kernel/tls.c
index 6dfd4e76661a..022bcaa3b42e 100644
--- a/arch/x86/kernel/tls.c
+++ b/arch/x86/kernel/tls.c
@@ -91,7 +91,9 @@ int do_set_thread_area(struct task_struct *p, int idx,
91 91
92asmlinkage int sys_set_thread_area(struct user_desc __user *u_info) 92asmlinkage int sys_set_thread_area(struct user_desc __user *u_info)
93{ 93{
94 return do_set_thread_area(current, -1, u_info, 1); 94 int ret = do_set_thread_area(current, -1, u_info, 1);
95 prevent_tail_call(ret);
96 return ret;
95} 97}
96 98
97 99
@@ -139,7 +141,9 @@ int do_get_thread_area(struct task_struct *p, int idx,
139 141
140asmlinkage int sys_get_thread_area(struct user_desc __user *u_info) 142asmlinkage int sys_get_thread_area(struct user_desc __user *u_info)
141{ 143{
142 return do_get_thread_area(current, -1, u_info); 144 int ret = do_get_thread_area(current, -1, u_info);
145 prevent_tail_call(ret);
146 return ret;
143} 147}
144 148
145int regset_tls_active(struct task_struct *target, 149int regset_tls_active(struct task_struct *target,
diff --git a/arch/x86/kernel/topology.c b/arch/x86/kernel/topology.c
index a40051b71d9b..0fcc95a354f7 100644
--- a/arch/x86/kernel/topology.c
+++ b/arch/x86/kernel/topology.c
@@ -34,7 +34,7 @@
34static DEFINE_PER_CPU(struct x86_cpu, cpu_devices); 34static DEFINE_PER_CPU(struct x86_cpu, cpu_devices);
35 35
36#ifdef CONFIG_HOTPLUG_CPU 36#ifdef CONFIG_HOTPLUG_CPU
37int arch_register_cpu(int num) 37int __ref arch_register_cpu(int num)
38{ 38{
39 /* 39 /*
40 * CPU0 cannot be offlined due to several 40 * CPU0 cannot be offlined due to several
diff --git a/arch/x86/kernel/tsc_32.c b/arch/x86/kernel/tsc_32.c
index 43517e324be8..f14cfd9d1f94 100644
--- a/arch/x86/kernel/tsc_32.c
+++ b/arch/x86/kernel/tsc_32.c
@@ -28,7 +28,8 @@ EXPORT_SYMBOL_GPL(tsc_khz);
28static int __init tsc_setup(char *str) 28static int __init tsc_setup(char *str)
29{ 29{
30 printk(KERN_WARNING "notsc: Kernel compiled with CONFIG_X86_TSC, " 30 printk(KERN_WARNING "notsc: Kernel compiled with CONFIG_X86_TSC, "
31 "cannot disable TSC.\n"); 31 "cannot disable TSC completely.\n");
32 mark_tsc_unstable("user disabled TSC");
32 return 1; 33 return 1;
33} 34}
34#else 35#else
diff --git a/arch/x86/kernel/vmlinux_32.lds.S b/arch/x86/kernel/vmlinux_32.lds.S
index f1148ac8abe3..2ffa9656fe7a 100644
--- a/arch/x86/kernel/vmlinux_32.lds.S
+++ b/arch/x86/kernel/vmlinux_32.lds.S
@@ -38,7 +38,7 @@ SECTIONS
38 38
39 /* read-only */ 39 /* read-only */
40 .text : AT(ADDR(.text) - LOAD_OFFSET) { 40 .text : AT(ADDR(.text) - LOAD_OFFSET) {
41 . = ALIGN(4096); /* not really needed, already page aligned */ 41 . = ALIGN(PAGE_SIZE); /* not really needed, already page aligned */
42 *(.text.page_aligned) 42 *(.text.page_aligned)
43 TEXT_TEXT 43 TEXT_TEXT
44 SCHED_TEXT 44 SCHED_TEXT
@@ -70,21 +70,21 @@ SECTIONS
70 RODATA 70 RODATA
71 71
72 /* writeable */ 72 /* writeable */
73 . = ALIGN(4096); 73 . = ALIGN(PAGE_SIZE);
74 .data : AT(ADDR(.data) - LOAD_OFFSET) { /* Data */ 74 .data : AT(ADDR(.data) - LOAD_OFFSET) { /* Data */
75 DATA_DATA 75 DATA_DATA
76 CONSTRUCTORS 76 CONSTRUCTORS
77 } :data 77 } :data
78 78
79 . = ALIGN(4096); 79 . = ALIGN(PAGE_SIZE);
80 .data_nosave : AT(ADDR(.data_nosave) - LOAD_OFFSET) { 80 .data_nosave : AT(ADDR(.data_nosave) - LOAD_OFFSET) {
81 __nosave_begin = .; 81 __nosave_begin = .;
82 *(.data.nosave) 82 *(.data.nosave)
83 . = ALIGN(4096); 83 . = ALIGN(PAGE_SIZE);
84 __nosave_end = .; 84 __nosave_end = .;
85 } 85 }
86 86
87 . = ALIGN(4096); 87 . = ALIGN(PAGE_SIZE);
88 .data.page_aligned : AT(ADDR(.data.page_aligned) - LOAD_OFFSET) { 88 .data.page_aligned : AT(ADDR(.data.page_aligned) - LOAD_OFFSET) {
89 *(.data.page_aligned) 89 *(.data.page_aligned)
90 *(.data.idt) 90 *(.data.idt)
@@ -108,7 +108,7 @@ SECTIONS
108 } 108 }
109 109
110 /* might get freed after init */ 110 /* might get freed after init */
111 . = ALIGN(4096); 111 . = ALIGN(PAGE_SIZE);
112 .smp_locks : AT(ADDR(.smp_locks) - LOAD_OFFSET) { 112 .smp_locks : AT(ADDR(.smp_locks) - LOAD_OFFSET) {
113 __smp_locks = .; 113 __smp_locks = .;
114 *(.smp_locks) 114 *(.smp_locks)
@@ -120,10 +120,10 @@ SECTIONS
120 * after boot. Always make sure that ALIGN() directive is present after 120 * after boot. Always make sure that ALIGN() directive is present after
121 * the section which contains __smp_alt_end. 121 * the section which contains __smp_alt_end.
122 */ 122 */
123 . = ALIGN(4096); 123 . = ALIGN(PAGE_SIZE);
124 124
125 /* will be freed after init */ 125 /* will be freed after init */
126 . = ALIGN(4096); /* Init code and data */ 126 . = ALIGN(PAGE_SIZE); /* Init code and data */
127 .init.text : AT(ADDR(.init.text) - LOAD_OFFSET) { 127 .init.text : AT(ADDR(.init.text) - LOAD_OFFSET) {
128 __init_begin = .; 128 __init_begin = .;
129 _sinittext = .; 129 _sinittext = .;
@@ -174,23 +174,23 @@ SECTIONS
174 EXIT_DATA 174 EXIT_DATA
175 } 175 }
176#if defined(CONFIG_BLK_DEV_INITRD) 176#if defined(CONFIG_BLK_DEV_INITRD)
177 . = ALIGN(4096); 177 . = ALIGN(PAGE_SIZE);
178 .init.ramfs : AT(ADDR(.init.ramfs) - LOAD_OFFSET) { 178 .init.ramfs : AT(ADDR(.init.ramfs) - LOAD_OFFSET) {
179 __initramfs_start = .; 179 __initramfs_start = .;
180 *(.init.ramfs) 180 *(.init.ramfs)
181 __initramfs_end = .; 181 __initramfs_end = .;
182 } 182 }
183#endif 183#endif
184 . = ALIGN(4096); 184 . = ALIGN(PAGE_SIZE);
185 .data.percpu : AT(ADDR(.data.percpu) - LOAD_OFFSET) { 185 .data.percpu : AT(ADDR(.data.percpu) - LOAD_OFFSET) {
186 __per_cpu_start = .; 186 __per_cpu_start = .;
187 *(.data.percpu) 187 *(.data.percpu)
188 *(.data.percpu.shared_aligned) 188 *(.data.percpu.shared_aligned)
189 __per_cpu_end = .; 189 __per_cpu_end = .;
190 } 190 }
191 . = ALIGN(4096); 191 . = ALIGN(PAGE_SIZE);
192 /* freed after init ends here */ 192 /* freed after init ends here */
193 193
194 .bss : AT(ADDR(.bss) - LOAD_OFFSET) { 194 .bss : AT(ADDR(.bss) - LOAD_OFFSET) {
195 __init_end = .; 195 __init_end = .;
196 __bss_start = .; /* BSS */ 196 __bss_start = .; /* BSS */
@@ -200,7 +200,7 @@ SECTIONS
200 __bss_stop = .; 200 __bss_stop = .;
201 _end = . ; 201 _end = . ;
202 /* This is where the kernel creates the early boot page tables */ 202 /* This is where the kernel creates the early boot page tables */
203 . = ALIGN(4096); 203 . = ALIGN(PAGE_SIZE);
204 pg0 = . ; 204 pg0 = . ;
205 } 205 }
206 206
diff --git a/arch/x86/kernel/vmlinux_64.lds.S b/arch/x86/kernel/vmlinux_64.lds.S
index 0992b9946c6f..fab132299735 100644
--- a/arch/x86/kernel/vmlinux_64.lds.S
+++ b/arch/x86/kernel/vmlinux_64.lds.S
@@ -37,7 +37,7 @@ SECTIONS
37 KPROBES_TEXT 37 KPROBES_TEXT
38 *(.fixup) 38 *(.fixup)
39 *(.gnu.warning) 39 *(.gnu.warning)
40 _etext = .; /* End of text section */ 40 _etext = .; /* End of text section */
41 } :text = 0x9090 41 } :text = 0x9090
42 42
43 . = ALIGN(16); /* Exception table */ 43 . = ALIGN(16); /* Exception table */
@@ -60,7 +60,7 @@ SECTIONS
60 __tracedata_end = .; 60 __tracedata_end = .;
61 } 61 }
62 62
63 . = ALIGN(PAGE_SIZE); /* Align data segment to page size boundary */ 63 . = ALIGN(PAGE_SIZE); /* Align data segment to page size boundary */
64 /* Data */ 64 /* Data */
65 .data : AT(ADDR(.data) - LOAD_OFFSET) { 65 .data : AT(ADDR(.data) - LOAD_OFFSET) {
66 DATA_DATA 66 DATA_DATA
@@ -119,7 +119,7 @@ SECTIONS
119 .vsyscall_3 ADDR(.vsyscall_0) + 3072: AT(VLOAD(.vsyscall_3)) 119 .vsyscall_3 ADDR(.vsyscall_0) + 3072: AT(VLOAD(.vsyscall_3))
120 { *(.vsyscall_3) } 120 { *(.vsyscall_3) }
121 121
122 . = VSYSCALL_VIRT_ADDR + 4096; 122 . = VSYSCALL_VIRT_ADDR + PAGE_SIZE;
123 123
124#undef VSYSCALL_ADDR 124#undef VSYSCALL_ADDR
125#undef VSYSCALL_PHYS_ADDR 125#undef VSYSCALL_PHYS_ADDR
@@ -129,28 +129,28 @@ SECTIONS
129#undef VVIRT_OFFSET 129#undef VVIRT_OFFSET
130#undef VVIRT 130#undef VVIRT
131 131
132 . = ALIGN(8192); /* init_task */ 132 . = ALIGN(THREAD_SIZE); /* init_task */
133 .data.init_task : AT(ADDR(.data.init_task) - LOAD_OFFSET) { 133 .data.init_task : AT(ADDR(.data.init_task) - LOAD_OFFSET) {
134 *(.data.init_task) 134 *(.data.init_task)
135 }:data.init 135 }:data.init
136 136
137 . = ALIGN(4096); 137 . = ALIGN(PAGE_SIZE);
138 .data.page_aligned : AT(ADDR(.data.page_aligned) - LOAD_OFFSET) { 138 .data.page_aligned : AT(ADDR(.data.page_aligned) - LOAD_OFFSET) {
139 *(.data.page_aligned) 139 *(.data.page_aligned)
140 } 140 }
141 141
142 /* might get freed after init */ 142 /* might get freed after init */
143 . = ALIGN(4096); 143 . = ALIGN(PAGE_SIZE);
144 __smp_alt_begin = .; 144 __smp_alt_begin = .;
145 __smp_locks = .; 145 __smp_locks = .;
146 .smp_locks : AT(ADDR(.smp_locks) - LOAD_OFFSET) { 146 .smp_locks : AT(ADDR(.smp_locks) - LOAD_OFFSET) {
147 *(.smp_locks) 147 *(.smp_locks)
148 } 148 }
149 __smp_locks_end = .; 149 __smp_locks_end = .;
150 . = ALIGN(4096); 150 . = ALIGN(PAGE_SIZE);
151 __smp_alt_end = .; 151 __smp_alt_end = .;
152 152
153 . = ALIGN(4096); /* Init code and data */ 153 . = ALIGN(PAGE_SIZE); /* Init code and data */
154 __init_begin = .; 154 __init_begin = .;
155 .init.text : AT(ADDR(.init.text) - LOAD_OFFSET) { 155 .init.text : AT(ADDR(.init.text) - LOAD_OFFSET) {
156 _sinittext = .; 156 _sinittext = .;
@@ -191,7 +191,7 @@ SECTIONS
191 .altinstructions : AT(ADDR(.altinstructions) - LOAD_OFFSET) { 191 .altinstructions : AT(ADDR(.altinstructions) - LOAD_OFFSET) {
192 *(.altinstructions) 192 *(.altinstructions)
193 } 193 }
194 __alt_instructions_end = .; 194 __alt_instructions_end = .;
195 .altinstr_replacement : AT(ADDR(.altinstr_replacement) - LOAD_OFFSET) { 195 .altinstr_replacement : AT(ADDR(.altinstr_replacement) - LOAD_OFFSET) {
196 *(.altinstr_replacement) 196 *(.altinstr_replacement)
197 } 197 }
@@ -207,25 +207,25 @@ SECTIONS
207/* vdso blob that is mapped into user space */ 207/* vdso blob that is mapped into user space */
208 vdso_start = . ; 208 vdso_start = . ;
209 .vdso : AT(ADDR(.vdso) - LOAD_OFFSET) { *(.vdso) } 209 .vdso : AT(ADDR(.vdso) - LOAD_OFFSET) { *(.vdso) }
210 . = ALIGN(4096); 210 . = ALIGN(PAGE_SIZE);
211 vdso_end = .; 211 vdso_end = .;
212 212
213#ifdef CONFIG_BLK_DEV_INITRD 213#ifdef CONFIG_BLK_DEV_INITRD
214 . = ALIGN(4096); 214 . = ALIGN(PAGE_SIZE);
215 __initramfs_start = .; 215 __initramfs_start = .;
216 .init.ramfs : AT(ADDR(.init.ramfs) - LOAD_OFFSET) { *(.init.ramfs) } 216 .init.ramfs : AT(ADDR(.init.ramfs) - LOAD_OFFSET) { *(.init.ramfs) }
217 __initramfs_end = .; 217 __initramfs_end = .;
218#endif 218#endif
219 219
220 PERCPU(4096) 220 PERCPU(PAGE_SIZE)
221 221
222 . = ALIGN(4096); 222 . = ALIGN(PAGE_SIZE);
223 __init_end = .; 223 __init_end = .;
224 224
225 . = ALIGN(4096); 225 . = ALIGN(PAGE_SIZE);
226 __nosave_begin = .; 226 __nosave_begin = .;
227 .data_nosave : AT(ADDR(.data_nosave) - LOAD_OFFSET) { *(.data.nosave) } 227 .data_nosave : AT(ADDR(.data_nosave) - LOAD_OFFSET) { *(.data.nosave) }
228 . = ALIGN(4096); 228 . = ALIGN(PAGE_SIZE);
229 __nosave_end = .; 229 __nosave_end = .;
230 230
231 __bss_start = .; /* BSS */ 231 __bss_start = .; /* BSS */
diff --git a/arch/x86/kernel/vsyscall_64.c b/arch/x86/kernel/vsyscall_64.c
index 3f8242774580..edff4c985485 100644
--- a/arch/x86/kernel/vsyscall_64.c
+++ b/arch/x86/kernel/vsyscall_64.c
@@ -44,11 +44,6 @@
44 44
45#define __vsyscall(nr) __attribute__ ((unused,__section__(".vsyscall_" #nr))) 45#define __vsyscall(nr) __attribute__ ((unused,__section__(".vsyscall_" #nr)))
46#define __syscall_clobber "r11","cx","memory" 46#define __syscall_clobber "r11","cx","memory"
47#define __pa_vsymbol(x) \
48 ({unsigned long v; \
49 extern char __vsyscall_0; \
50 asm("" : "=r" (v) : "0" (x)); \
51 ((v - VSYSCALL_START) + __pa_symbol(&__vsyscall_0)); })
52 47
53/* 48/*
54 * vsyscall_gtod_data contains data that is : 49 * vsyscall_gtod_data contains data that is :
@@ -102,7 +97,7 @@ static __always_inline void do_get_tz(struct timezone * tz)
102static __always_inline int gettimeofday(struct timeval *tv, struct timezone *tz) 97static __always_inline int gettimeofday(struct timeval *tv, struct timezone *tz)
103{ 98{
104 int ret; 99 int ret;
105 asm volatile("vsysc2: syscall" 100 asm volatile("syscall"
106 : "=a" (ret) 101 : "=a" (ret)
107 : "0" (__NR_gettimeofday),"D" (tv),"S" (tz) 102 : "0" (__NR_gettimeofday),"D" (tv),"S" (tz)
108 : __syscall_clobber ); 103 : __syscall_clobber );
@@ -112,7 +107,7 @@ static __always_inline int gettimeofday(struct timeval *tv, struct timezone *tz)
112static __always_inline long time_syscall(long *t) 107static __always_inline long time_syscall(long *t)
113{ 108{
114 long secs; 109 long secs;
115 asm volatile("vsysc1: syscall" 110 asm volatile("syscall"
116 : "=a" (secs) 111 : "=a" (secs)
117 : "0" (__NR_time),"D" (t) : __syscall_clobber); 112 : "0" (__NR_time),"D" (t) : __syscall_clobber);
118 return secs; 113 return secs;
@@ -228,42 +223,11 @@ long __vsyscall(3) venosys_1(void)
228 223
229#ifdef CONFIG_SYSCTL 224#ifdef CONFIG_SYSCTL
230 225
231#define SYSCALL 0x050f 226static int
232#define NOP2 0x9090 227vsyscall_sysctl_change(ctl_table *ctl, int write, struct file * filp,
233 228 void __user *buffer, size_t *lenp, loff_t *ppos)
234/*
235 * NOP out syscall in vsyscall page when not needed.
236 */
237static int vsyscall_sysctl_change(ctl_table *ctl, int write, struct file * filp,
238 void __user *buffer, size_t *lenp, loff_t *ppos)
239{ 229{
240 extern u16 vsysc1, vsysc2; 230 return proc_dointvec(ctl, write, filp, buffer, lenp, ppos);
241 u16 __iomem *map1;
242 u16 __iomem *map2;
243 int ret = proc_dointvec(ctl, write, filp, buffer, lenp, ppos);
244 if (!write)
245 return ret;
246 /* gcc has some trouble with __va(__pa()), so just do it this
247 way. */
248 map1 = ioremap(__pa_vsymbol(&vsysc1), 2);
249 if (!map1)
250 return -ENOMEM;
251 map2 = ioremap(__pa_vsymbol(&vsysc2), 2);
252 if (!map2) {
253 ret = -ENOMEM;
254 goto out;
255 }
256 if (!vsyscall_gtod_data.sysctl_enabled) {
257 writew(SYSCALL, map1);
258 writew(SYSCALL, map2);
259 } else {
260 writew(NOP2, map1);
261 writew(NOP2, map2);
262 }
263 iounmap(map2);
264out:
265 iounmap(map1);
266 return ret;
267} 231}
268 232
269static ctl_table kernel_table2[] = { 233static ctl_table kernel_table2[] = {
@@ -279,7 +243,6 @@ static ctl_table kernel_root_table2[] = {
279 .child = kernel_table2 }, 243 .child = kernel_table2 },
280 {} 244 {}
281}; 245};
282
283#endif 246#endif
284 247
285/* Assume __initcall executes before all user space. Hopefully kmod 248/* Assume __initcall executes before all user space. Hopefully kmod
diff --git a/arch/x86/lguest/boot.c b/arch/x86/lguest/boot.c
index 5afdde4895dc..cccb38a59653 100644
--- a/arch/x86/lguest/boot.c
+++ b/arch/x86/lguest/boot.c
@@ -57,6 +57,7 @@
57#include <linux/lguest_launcher.h> 57#include <linux/lguest_launcher.h>
58#include <linux/virtio_console.h> 58#include <linux/virtio_console.h>
59#include <linux/pm.h> 59#include <linux/pm.h>
60#include <asm/lguest.h>
60#include <asm/paravirt.h> 61#include <asm/paravirt.h>
61#include <asm/param.h> 62#include <asm/param.h>
62#include <asm/page.h> 63#include <asm/page.h>
@@ -75,15 +76,6 @@
75 * behaving in simplified but equivalent ways. In particular, the Guest is the 76 * behaving in simplified but equivalent ways. In particular, the Guest is the
76 * same kernel as the Host (or at least, built from the same source code). :*/ 77 * same kernel as the Host (or at least, built from the same source code). :*/
77 78
78/* Declarations for definitions in lguest_guest.S */
79extern char lguest_noirq_start[], lguest_noirq_end[];
80extern const char lgstart_cli[], lgend_cli[];
81extern const char lgstart_sti[], lgend_sti[];
82extern const char lgstart_popf[], lgend_popf[];
83extern const char lgstart_pushf[], lgend_pushf[];
84extern const char lgstart_iret[], lgend_iret[];
85extern void lguest_iret(void);
86
87struct lguest_data lguest_data = { 79struct lguest_data lguest_data = {
88 .hcall_status = { [0 ... LHCALL_RING_SIZE-1] = 0xFF }, 80 .hcall_status = { [0 ... LHCALL_RING_SIZE-1] = 0xFF },
89 .noirq_start = (u32)lguest_noirq_start, 81 .noirq_start = (u32)lguest_noirq_start,
@@ -489,7 +481,7 @@ static void lguest_set_pmd(pmd_t *pmdp, pmd_t pmdval)
489{ 481{
490 *pmdp = pmdval; 482 *pmdp = pmdval;
491 lazy_hcall(LHCALL_SET_PMD, __pa(pmdp)&PAGE_MASK, 483 lazy_hcall(LHCALL_SET_PMD, __pa(pmdp)&PAGE_MASK,
492 (__pa(pmdp)&(PAGE_SIZE-1))/4, 0); 484 (__pa(pmdp)&(PAGE_SIZE-1)), 0);
493} 485}
494 486
495/* There are a couple of legacy places where the kernel sets a PTE, but we 487/* There are a couple of legacy places where the kernel sets a PTE, but we
diff --git a/arch/x86/lib/csum-wrappers_64.c b/arch/x86/lib/csum-wrappers_64.c
index fd42a4a095fc..459b58a8a15c 100644
--- a/arch/x86/lib/csum-wrappers_64.c
+++ b/arch/x86/lib/csum-wrappers_64.c
@@ -1,117 +1,129 @@
1/* Copyright 2002,2003 Andi Kleen, SuSE Labs. 1/*
2 * Copyright 2002, 2003 Andi Kleen, SuSE Labs.
2 * Subject to the GNU Public License v.2 3 * Subject to the GNU Public License v.2
3 * 4 *
4 * Wrappers of assembly checksum functions for x86-64. 5 * Wrappers of assembly checksum functions for x86-64.
5 */ 6 */
6
7#include <asm/checksum.h> 7#include <asm/checksum.h>
8#include <linux/module.h> 8#include <linux/module.h>
9 9
10/** 10/**
11 * csum_partial_copy_from_user - Copy and checksum from user space. 11 * csum_partial_copy_from_user - Copy and checksum from user space.
12 * @src: source address (user space) 12 * @src: source address (user space)
13 * @dst: destination address 13 * @dst: destination address
14 * @len: number of bytes to be copied. 14 * @len: number of bytes to be copied.
15 * @isum: initial sum that is added into the result (32bit unfolded) 15 * @isum: initial sum that is added into the result (32bit unfolded)
16 * @errp: set to -EFAULT for an bad source address. 16 * @errp: set to -EFAULT for an bad source address.
17 * 17 *
18 * Returns an 32bit unfolded checksum of the buffer. 18 * Returns an 32bit unfolded checksum of the buffer.
19 * src and dst are best aligned to 64bits. 19 * src and dst are best aligned to 64bits.
20 */ 20 */
21__wsum 21__wsum
22csum_partial_copy_from_user(const void __user *src, void *dst, 22csum_partial_copy_from_user(const void __user *src, void *dst,
23 int len, __wsum isum, int *errp) 23 int len, __wsum isum, int *errp)
24{ 24{
25 might_sleep(); 25 might_sleep();
26 *errp = 0; 26 *errp = 0;
27 if (likely(access_ok(VERIFY_READ,src, len))) { 27
28 /* Why 6, not 7? To handle odd addresses aligned we 28 if (!likely(access_ok(VERIFY_READ, src, len)))
29 would need to do considerable complications to fix the 29 goto out_err;
30 checksum which is defined as an 16bit accumulator. The 30
31 fix alignment code is primarily for performance 31 /*
32 compatibility with 32bit and that will handle odd 32 * Why 6, not 7? To handle odd addresses aligned we
33 addresses slowly too. */ 33 * would need to do considerable complications to fix the
34 if (unlikely((unsigned long)src & 6)) { 34 * checksum which is defined as an 16bit accumulator. The
35 while (((unsigned long)src & 6) && len >= 2) { 35 * fix alignment code is primarily for performance
36 __u16 val16; 36 * compatibility with 32bit and that will handle odd
37 *errp = __get_user(val16, (const __u16 __user *)src); 37 * addresses slowly too.
38 if (*errp) 38 */
39 return isum; 39 if (unlikely((unsigned long)src & 6)) {
40 *(__u16 *)dst = val16; 40 while (((unsigned long)src & 6) && len >= 2) {
41 isum = (__force __wsum)add32_with_carry( 41 __u16 val16;
42 (__force unsigned)isum, val16); 42
43 src += 2; 43 *errp = __get_user(val16, (const __u16 __user *)src);
44 dst += 2; 44 if (*errp)
45 len -= 2; 45 return isum;
46 } 46
47 *(__u16 *)dst = val16;
48 isum = (__force __wsum)add32_with_carry(
49 (__force unsigned)isum, val16);
50 src += 2;
51 dst += 2;
52 len -= 2;
47 } 53 }
48 isum = csum_partial_copy_generic((__force const void *)src, 54 }
49 dst, len, isum, errp, NULL); 55 isum = csum_partial_copy_generic((__force const void *)src,
50 if (likely(*errp == 0)) 56 dst, len, isum, errp, NULL);
51 return isum; 57 if (unlikely(*errp))
52 } 58 goto out_err;
59
60 return isum;
61
62out_err:
53 *errp = -EFAULT; 63 *errp = -EFAULT;
54 memset(dst,0,len); 64 memset(dst, 0, len);
55 return isum;
56}
57 65
66 return isum;
67}
58EXPORT_SYMBOL(csum_partial_copy_from_user); 68EXPORT_SYMBOL(csum_partial_copy_from_user);
59 69
60/** 70/**
61 * csum_partial_copy_to_user - Copy and checksum to user space. 71 * csum_partial_copy_to_user - Copy and checksum to user space.
62 * @src: source address 72 * @src: source address
63 * @dst: destination address (user space) 73 * @dst: destination address (user space)
64 * @len: number of bytes to be copied. 74 * @len: number of bytes to be copied.
65 * @isum: initial sum that is added into the result (32bit unfolded) 75 * @isum: initial sum that is added into the result (32bit unfolded)
66 * @errp: set to -EFAULT for an bad destination address. 76 * @errp: set to -EFAULT for an bad destination address.
67 * 77 *
68 * Returns an 32bit unfolded checksum of the buffer. 78 * Returns an 32bit unfolded checksum of the buffer.
69 * src and dst are best aligned to 64bits. 79 * src and dst are best aligned to 64bits.
70 */ 80 */
71__wsum 81__wsum
72csum_partial_copy_to_user(const void *src, void __user *dst, 82csum_partial_copy_to_user(const void *src, void __user *dst,
73 int len, __wsum isum, int *errp) 83 int len, __wsum isum, int *errp)
74{ 84{
75 might_sleep(); 85 might_sleep();
86
76 if (unlikely(!access_ok(VERIFY_WRITE, dst, len))) { 87 if (unlikely(!access_ok(VERIFY_WRITE, dst, len))) {
77 *errp = -EFAULT; 88 *errp = -EFAULT;
78 return 0; 89 return 0;
79 } 90 }
80 91
81 if (unlikely((unsigned long)dst & 6)) { 92 if (unlikely((unsigned long)dst & 6)) {
82 while (((unsigned long)dst & 6) && len >= 2) { 93 while (((unsigned long)dst & 6) && len >= 2) {
83 __u16 val16 = *(__u16 *)src; 94 __u16 val16 = *(__u16 *)src;
95
84 isum = (__force __wsum)add32_with_carry( 96 isum = (__force __wsum)add32_with_carry(
85 (__force unsigned)isum, val16); 97 (__force unsigned)isum, val16);
86 *errp = __put_user(val16, (__u16 __user *)dst); 98 *errp = __put_user(val16, (__u16 __user *)dst);
87 if (*errp) 99 if (*errp)
88 return isum; 100 return isum;
89 src += 2; 101 src += 2;
90 dst += 2; 102 dst += 2;
91 len -= 2; 103 len -= 2;
92 } 104 }
93 } 105 }
94 106
95 *errp = 0; 107 *errp = 0;
96 return csum_partial_copy_generic(src, (void __force *)dst,len,isum,NULL,errp); 108 return csum_partial_copy_generic(src, (void __force *)dst,
97} 109 len, isum, NULL, errp);
98 110}
99EXPORT_SYMBOL(csum_partial_copy_to_user); 111EXPORT_SYMBOL(csum_partial_copy_to_user);
100 112
101/** 113/**
102 * csum_partial_copy_nocheck - Copy and checksum. 114 * csum_partial_copy_nocheck - Copy and checksum.
103 * @src: source address 115 * @src: source address
104 * @dst: destination address 116 * @dst: destination address
105 * @len: number of bytes to be copied. 117 * @len: number of bytes to be copied.
106 * @isum: initial sum that is added into the result (32bit unfolded) 118 * @isum: initial sum that is added into the result (32bit unfolded)
107 * 119 *
108 * Returns an 32bit unfolded checksum of the buffer. 120 * Returns an 32bit unfolded checksum of the buffer.
109 */ 121 */
110__wsum 122__wsum
111csum_partial_copy_nocheck(const void *src, void *dst, int len, __wsum sum) 123csum_partial_copy_nocheck(const void *src, void *dst, int len, __wsum sum)
112{ 124{
113 return csum_partial_copy_generic(src,dst,len,sum,NULL,NULL); 125 return csum_partial_copy_generic(src, dst, len, sum, NULL, NULL);
114} 126}
115EXPORT_SYMBOL(csum_partial_copy_nocheck); 127EXPORT_SYMBOL(csum_partial_copy_nocheck);
116 128
117__sum16 csum_ipv6_magic(const struct in6_addr *saddr, 129__sum16 csum_ipv6_magic(const struct in6_addr *saddr,
@@ -119,17 +131,20 @@ __sum16 csum_ipv6_magic(const struct in6_addr *saddr,
119 __u32 len, unsigned short proto, __wsum sum) 131 __u32 len, unsigned short proto, __wsum sum)
120{ 132{
121 __u64 rest, sum64; 133 __u64 rest, sum64;
122 134
123 rest = (__force __u64)htonl(len) + (__force __u64)htons(proto) + 135 rest = (__force __u64)htonl(len) + (__force __u64)htons(proto) +
124 (__force __u64)sum; 136 (__force __u64)sum;
125 asm(" addq (%[saddr]),%[sum]\n"
126 " adcq 8(%[saddr]),%[sum]\n"
127 " adcq (%[daddr]),%[sum]\n"
128 " adcq 8(%[daddr]),%[sum]\n"
129 " adcq $0,%[sum]\n"
130 : [sum] "=r" (sum64)
131 : "[sum]" (rest),[saddr] "r" (saddr), [daddr] "r" (daddr));
132 return csum_fold((__force __wsum)add32_with_carry(sum64 & 0xffffffff, sum64>>32));
133}
134 137
138 asm(" addq (%[saddr]),%[sum]\n"
139 " adcq 8(%[saddr]),%[sum]\n"
140 " adcq (%[daddr]),%[sum]\n"
141 " adcq 8(%[daddr]),%[sum]\n"
142 " adcq $0,%[sum]\n"
143
144 : [sum] "=r" (sum64)
145 : "[sum]" (rest), [saddr] "r" (saddr), [daddr] "r" (daddr));
146
147 return csum_fold(
148 (__force __wsum)add32_with_carry(sum64 & 0xffffffff, sum64>>32));
149}
135EXPORT_SYMBOL(csum_ipv6_magic); 150EXPORT_SYMBOL(csum_ipv6_magic);
diff --git a/arch/x86/lib/io_64.c b/arch/x86/lib/io_64.c
index 87b4a4e18039..3f1eb59b5f08 100644
--- a/arch/x86/lib/io_64.c
+++ b/arch/x86/lib/io_64.c
@@ -1,23 +1,25 @@
1#include <linux/string.h> 1#include <linux/string.h>
2#include <asm/io.h>
3#include <linux/module.h> 2#include <linux/module.h>
3#include <asm/io.h>
4 4
5void __memcpy_toio(unsigned long dst,const void*src,unsigned len) 5void __memcpy_toio(unsigned long dst, const void *src, unsigned len)
6{ 6{
7 __inline_memcpy((void *) dst,src,len); 7 __inline_memcpy((void *)dst, src, len);
8} 8}
9EXPORT_SYMBOL(__memcpy_toio); 9EXPORT_SYMBOL(__memcpy_toio);
10 10
11void __memcpy_fromio(void *dst,unsigned long src,unsigned len) 11void __memcpy_fromio(void *dst, unsigned long src, unsigned len)
12{ 12{
13 __inline_memcpy(dst,(const void *) src,len); 13 __inline_memcpy(dst, (const void *)src, len);
14} 14}
15EXPORT_SYMBOL(__memcpy_fromio); 15EXPORT_SYMBOL(__memcpy_fromio);
16 16
17void memset_io(volatile void __iomem *a, int b, size_t c) 17void memset_io(volatile void __iomem *a, int b, size_t c)
18{ 18{
19 /* XXX: memset can mangle the IO patterns quite a bit. 19 /*
20 perhaps it would be better to use a dumb one */ 20 * TODO: memset can mangle the IO patterns quite a bit.
21 memset((void *)a,b,c); 21 * perhaps it would be better to use a dumb one:
22 */
23 memset((void *)a, b, c);
22} 24}
23EXPORT_SYMBOL(memset_io); 25EXPORT_SYMBOL(memset_io);
diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
index a4a9cccdd4f2..a02a14f0f324 100644
--- a/arch/x86/mm/init_64.c
+++ b/arch/x86/mm/init_64.c
@@ -171,6 +171,34 @@ set_pte_phys(unsigned long vaddr, unsigned long phys, pgprot_t prot)
171 __flush_tlb_one(vaddr); 171 __flush_tlb_one(vaddr);
172} 172}
173 173
174/*
175 * The head.S code sets up the kernel high mapping:
176 *
177 * from __START_KERNEL_map to __START_KERNEL_map + size (== _end-_text)
178 *
179 * phys_addr holds the negative offset to the kernel, which is added
180 * to the compile time generated pmds. This results in invalid pmds up
181 * to the point where we hit the physaddr 0 mapping.
182 *
183 * We limit the mappings to the region from _text to _end. _end is
184 * rounded up to the 2MB boundary. This catches the invalid pmds as
185 * well, as they are located before _text:
186 */
187void __init cleanup_highmap(void)
188{
189 unsigned long vaddr = __START_KERNEL_map;
190 unsigned long end = round_up((unsigned long)_end, PMD_SIZE) - 1;
191 pmd_t *pmd = level2_kernel_pgt;
192 pmd_t *last_pmd = pmd + PTRS_PER_PMD;
193
194 for (; pmd < last_pmd; pmd++, vaddr += PMD_SIZE) {
195 if (!pmd_present(*pmd))
196 continue;
197 if (vaddr < (unsigned long) _text || vaddr > end)
198 set_pmd(pmd, __pmd(0));
199 }
200}
201
174/* NOTE: this is meant to be run only at boot */ 202/* NOTE: this is meant to be run only at boot */
175void __init 203void __init
176__set_fixmap(enum fixed_addresses idx, unsigned long phys, pgprot_t prot) 204__set_fixmap(enum fixed_addresses idx, unsigned long phys, pgprot_t prot)
@@ -488,14 +516,6 @@ void __init mem_init(void)
488 516
489 /* clear_bss() already clear the empty_zero_page */ 517 /* clear_bss() already clear the empty_zero_page */
490 518
491 /* temporary debugging - double check it's true: */
492 {
493 int i;
494
495 for (i = 0; i < 1024; i++)
496 WARN_ON_ONCE(empty_zero_page[i]);
497 }
498
499 reservedpages = 0; 519 reservedpages = 0;
500 520
501 /* this will put all low memory onto the freelists */ 521 /* this will put all low memory onto the freelists */
diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c
index 9f42d7e9c158..ac3c959e271d 100644
--- a/arch/x86/mm/ioremap.c
+++ b/arch/x86/mm/ioremap.c
@@ -42,6 +42,22 @@ int page_is_ram(unsigned long pagenr)
42 unsigned long addr, end; 42 unsigned long addr, end;
43 int i; 43 int i;
44 44
45 /*
46 * A special case is the first 4Kb of memory;
47 * This is a BIOS owned area, not kernel ram, but generally
48 * not listed as such in the E820 table.
49 */
50 if (pagenr == 0)
51 return 0;
52
53 /*
54 * Second special case: Some BIOSen report the PC BIOS
55 * area (640->1Mb) as ram even though it is not.
56 */
57 if (pagenr >= (BIOS_BEGIN >> PAGE_SHIFT) &&
58 pagenr < (BIOS_END >> PAGE_SHIFT))
59 return 0;
60
45 for (i = 0; i < e820.nr_map; i++) { 61 for (i = 0; i < e820.nr_map; i++) {
46 /* 62 /*
47 * Not usable memory: 63 * Not usable memory:
@@ -51,14 +67,6 @@ int page_is_ram(unsigned long pagenr)
51 addr = (e820.map[i].addr + PAGE_SIZE-1) >> PAGE_SHIFT; 67 addr = (e820.map[i].addr + PAGE_SIZE-1) >> PAGE_SHIFT;
52 end = (e820.map[i].addr + e820.map[i].size) >> PAGE_SHIFT; 68 end = (e820.map[i].addr + e820.map[i].size) >> PAGE_SHIFT;
53 69
54 /*
55 * Sanity check: Some BIOSen report areas as RAM that
56 * are not. Notably the 640->1Mb area, which is the
57 * PCI BIOS area.
58 */
59 if (addr >= (BIOS_BEGIN >> PAGE_SHIFT) &&
60 end < (BIOS_END >> PAGE_SHIFT))
61 continue;
62 70
63 if ((pagenr >= addr) && (pagenr < end)) 71 if ((pagenr >= addr) && (pagenr < end))
64 return 1; 72 return 1;
@@ -126,6 +134,8 @@ static void __iomem *__ioremap(unsigned long phys_addr, unsigned long size,
126 return NULL; 134 return NULL;
127 } 135 }
128 136
137 WARN_ON_ONCE(page_is_ram(pfn));
138
129 switch (mode) { 139 switch (mode) {
130 case IOR_MODE_UNCACHED: 140 case IOR_MODE_UNCACHED:
131 default: 141 default:
@@ -152,7 +162,7 @@ static void __iomem *__ioremap(unsigned long phys_addr, unsigned long size,
152 area->phys_addr = phys_addr; 162 area->phys_addr = phys_addr;
153 vaddr = (unsigned long) area->addr; 163 vaddr = (unsigned long) area->addr;
154 if (ioremap_page_range(vaddr, vaddr + size, phys_addr, prot)) { 164 if (ioremap_page_range(vaddr, vaddr + size, phys_addr, prot)) {
155 remove_vm_area((void *)(vaddr & PAGE_MASK)); 165 free_vm_area(area);
156 return NULL; 166 return NULL;
157 } 167 }
158 168
diff --git a/arch/x86/mm/numa_64.c b/arch/x86/mm/numa_64.c
index 1aecc658cd7d..59898fb0a4aa 100644
--- a/arch/x86/mm/numa_64.c
+++ b/arch/x86/mm/numa_64.c
@@ -494,11 +494,13 @@ void __init numa_initmem_init(unsigned long start_pfn, unsigned long end_pfn)
494 int i; 494 int i;
495 495
496 nodes_clear(node_possible_map); 496 nodes_clear(node_possible_map);
497 nodes_clear(node_online_map);
497 498
498#ifdef CONFIG_NUMA_EMU 499#ifdef CONFIG_NUMA_EMU
499 if (cmdline && !numa_emulation(start_pfn, end_pfn)) 500 if (cmdline && !numa_emulation(start_pfn, end_pfn))
500 return; 501 return;
501 nodes_clear(node_possible_map); 502 nodes_clear(node_possible_map);
503 nodes_clear(node_online_map);
502#endif 504#endif
503 505
504#ifdef CONFIG_ACPI_NUMA 506#ifdef CONFIG_ACPI_NUMA
@@ -506,6 +508,7 @@ void __init numa_initmem_init(unsigned long start_pfn, unsigned long end_pfn)
506 end_pfn << PAGE_SHIFT)) 508 end_pfn << PAGE_SHIFT))
507 return; 509 return;
508 nodes_clear(node_possible_map); 510 nodes_clear(node_possible_map);
511 nodes_clear(node_online_map);
509#endif 512#endif
510 513
511#ifdef CONFIG_K8_NUMA 514#ifdef CONFIG_K8_NUMA
@@ -513,6 +516,7 @@ void __init numa_initmem_init(unsigned long start_pfn, unsigned long end_pfn)
513 end_pfn<<PAGE_SHIFT)) 516 end_pfn<<PAGE_SHIFT))
514 return; 517 return;
515 nodes_clear(node_possible_map); 518 nodes_clear(node_possible_map);
519 nodes_clear(node_online_map);
516#endif 520#endif
517 printk(KERN_INFO "%s\n", 521 printk(KERN_INFO "%s\n",
518 numa_off ? "NUMA turned off" : "No NUMA configuration found"); 522 numa_off ? "NUMA turned off" : "No NUMA configuration found");
@@ -524,7 +528,6 @@ void __init numa_initmem_init(unsigned long start_pfn, unsigned long end_pfn)
524 memnode_shift = 63; 528 memnode_shift = 63;
525 memnodemap = memnode.embedded_map; 529 memnodemap = memnode.embedded_map;
526 memnodemap[0] = 0; 530 memnodemap[0] = 0;
527 nodes_clear(node_online_map);
528 node_set_online(0); 531 node_set_online(0);
529 node_set(0, node_possible_map); 532 node_set(0, node_possible_map);
530 for (i = 0; i < NR_CPUS; i++) 533 for (i = 0; i < NR_CPUS; i++)
diff --git a/arch/x86/mm/pageattr.c b/arch/x86/mm/pageattr.c
index 4119379f80ff..7049294fb469 100644
--- a/arch/x86/mm/pageattr.c
+++ b/arch/x86/mm/pageattr.c
@@ -16,6 +16,7 @@
16#include <asm/sections.h> 16#include <asm/sections.h>
17#include <asm/uaccess.h> 17#include <asm/uaccess.h>
18#include <asm/pgalloc.h> 18#include <asm/pgalloc.h>
19#include <asm/proto.h>
19 20
20/* 21/*
21 * The current flushing context - we pass it instead of 5 arguments: 22 * The current flushing context - we pass it instead of 5 arguments:
@@ -25,9 +26,31 @@ struct cpa_data {
25 pgprot_t mask_set; 26 pgprot_t mask_set;
26 pgprot_t mask_clr; 27 pgprot_t mask_clr;
27 int numpages; 28 int numpages;
29 int processed;
28 int flushtlb; 30 int flushtlb;
31 unsigned long pfn;
29}; 32};
30 33
34#ifdef CONFIG_X86_64
35
36static inline unsigned long highmap_start_pfn(void)
37{
38 return __pa(_text) >> PAGE_SHIFT;
39}
40
41static inline unsigned long highmap_end_pfn(void)
42{
43 return __pa(round_up((unsigned long)_end, PMD_SIZE)) >> PAGE_SHIFT;
44}
45
46#endif
47
48#ifdef CONFIG_DEBUG_PAGEALLOC
49# define debug_pagealloc 1
50#else
51# define debug_pagealloc 0
52#endif
53
31static inline int 54static inline int
32within(unsigned long addr, unsigned long start, unsigned long end) 55within(unsigned long addr, unsigned long start, unsigned long end)
33{ 56{
@@ -123,29 +146,14 @@ static void cpa_flush_range(unsigned long start, int numpages, int cache)
123 } 146 }
124} 147}
125 148
126#define HIGH_MAP_START __START_KERNEL_map
127#define HIGH_MAP_END (__START_KERNEL_map + KERNEL_TEXT_SIZE)
128
129
130/*
131 * Converts a virtual address to a X86-64 highmap address
132 */
133static unsigned long virt_to_highmap(void *address)
134{
135#ifdef CONFIG_X86_64
136 return __pa((unsigned long)address) + HIGH_MAP_START - phys_base;
137#else
138 return (unsigned long)address;
139#endif
140}
141
142/* 149/*
143 * Certain areas of memory on x86 require very specific protection flags, 150 * Certain areas of memory on x86 require very specific protection flags,
144 * for example the BIOS area or kernel text. Callers don't always get this 151 * for example the BIOS area or kernel text. Callers don't always get this
145 * right (again, ioremap() on BIOS memory is not uncommon) so this function 152 * right (again, ioremap() on BIOS memory is not uncommon) so this function
146 * checks and fixes these known static required protection bits. 153 * checks and fixes these known static required protection bits.
147 */ 154 */
148static inline pgprot_t static_protections(pgprot_t prot, unsigned long address) 155static inline pgprot_t static_protections(pgprot_t prot, unsigned long address,
156 unsigned long pfn)
149{ 157{
150 pgprot_t forbidden = __pgprot(0); 158 pgprot_t forbidden = __pgprot(0);
151 159
@@ -153,30 +161,23 @@ static inline pgprot_t static_protections(pgprot_t prot, unsigned long address)
153 * The BIOS area between 640k and 1Mb needs to be executable for 161 * The BIOS area between 640k and 1Mb needs to be executable for
154 * PCI BIOS based config access (CONFIG_PCI_GOBIOS) support. 162 * PCI BIOS based config access (CONFIG_PCI_GOBIOS) support.
155 */ 163 */
156 if (within(__pa(address), BIOS_BEGIN, BIOS_END)) 164 if (within(pfn, BIOS_BEGIN >> PAGE_SHIFT, BIOS_END >> PAGE_SHIFT))
157 pgprot_val(forbidden) |= _PAGE_NX; 165 pgprot_val(forbidden) |= _PAGE_NX;
158 166
159 /* 167 /*
160 * The kernel text needs to be executable for obvious reasons 168 * The kernel text needs to be executable for obvious reasons
161 * Does not cover __inittext since that is gone later on 169 * Does not cover __inittext since that is gone later on. On
170 * 64bit we do not enforce !NX on the low mapping
162 */ 171 */
163 if (within(address, (unsigned long)_text, (unsigned long)_etext)) 172 if (within(address, (unsigned long)_text, (unsigned long)_etext))
164 pgprot_val(forbidden) |= _PAGE_NX; 173 pgprot_val(forbidden) |= _PAGE_NX;
165 /*
166 * Do the same for the x86-64 high kernel mapping
167 */
168 if (within(address, virt_to_highmap(_text), virt_to_highmap(_etext)))
169 pgprot_val(forbidden) |= _PAGE_NX;
170 174
171 /* The .rodata section needs to be read-only */
172 if (within(address, (unsigned long)__start_rodata,
173 (unsigned long)__end_rodata))
174 pgprot_val(forbidden) |= _PAGE_RW;
175 /* 175 /*
176 * Do the same for the x86-64 high kernel mapping 176 * The .rodata section needs to be read-only. Using the pfn
177 * catches all aliases.
177 */ 178 */
178 if (within(address, virt_to_highmap(__start_rodata), 179 if (within(pfn, __pa((unsigned long)__start_rodata) >> PAGE_SHIFT,
179 virt_to_highmap(__end_rodata))) 180 __pa((unsigned long)__end_rodata) >> PAGE_SHIFT))
180 pgprot_val(forbidden) |= _PAGE_RW; 181 pgprot_val(forbidden) |= _PAGE_RW;
181 182
182 prot = __pgprot(pgprot_val(prot) & ~pgprot_val(forbidden)); 183 prot = __pgprot(pgprot_val(prot) & ~pgprot_val(forbidden));
@@ -253,7 +254,7 @@ static int
253try_preserve_large_page(pte_t *kpte, unsigned long address, 254try_preserve_large_page(pte_t *kpte, unsigned long address,
254 struct cpa_data *cpa) 255 struct cpa_data *cpa)
255{ 256{
256 unsigned long nextpage_addr, numpages, pmask, psize, flags, addr; 257 unsigned long nextpage_addr, numpages, pmask, psize, flags, addr, pfn;
257 pte_t new_pte, old_pte, *tmp; 258 pte_t new_pte, old_pte, *tmp;
258 pgprot_t old_prot, new_prot; 259 pgprot_t old_prot, new_prot;
259 int i, do_split = 1; 260 int i, do_split = 1;
@@ -290,8 +291,8 @@ try_preserve_large_page(pte_t *kpte, unsigned long address,
290 */ 291 */
291 nextpage_addr = (address + psize) & pmask; 292 nextpage_addr = (address + psize) & pmask;
292 numpages = (nextpage_addr - address) >> PAGE_SHIFT; 293 numpages = (nextpage_addr - address) >> PAGE_SHIFT;
293 if (numpages < cpa->numpages) 294 if (numpages < cpa->processed)
294 cpa->numpages = numpages; 295 cpa->processed = numpages;
295 296
296 /* 297 /*
297 * We are safe now. Check whether the new pgprot is the same: 298 * We are safe now. Check whether the new pgprot is the same:
@@ -301,7 +302,15 @@ try_preserve_large_page(pte_t *kpte, unsigned long address,
301 302
302 pgprot_val(new_prot) &= ~pgprot_val(cpa->mask_clr); 303 pgprot_val(new_prot) &= ~pgprot_val(cpa->mask_clr);
303 pgprot_val(new_prot) |= pgprot_val(cpa->mask_set); 304 pgprot_val(new_prot) |= pgprot_val(cpa->mask_set);
304 new_prot = static_protections(new_prot, address); 305
306 /*
307 * old_pte points to the large page base address. So we need
308 * to add the offset of the virtual address:
309 */
310 pfn = pte_pfn(old_pte) + ((address & (psize - 1)) >> PAGE_SHIFT);
311 cpa->pfn = pfn;
312
313 new_prot = static_protections(new_prot, address, pfn);
305 314
306 /* 315 /*
307 * We need to check the full range, whether 316 * We need to check the full range, whether
@@ -309,8 +318,9 @@ try_preserve_large_page(pte_t *kpte, unsigned long address,
309 * the pages in the range we try to preserve: 318 * the pages in the range we try to preserve:
310 */ 319 */
311 addr = address + PAGE_SIZE; 320 addr = address + PAGE_SIZE;
312 for (i = 1; i < cpa->numpages; i++, addr += PAGE_SIZE) { 321 pfn++;
313 pgprot_t chk_prot = static_protections(new_prot, addr); 322 for (i = 1; i < cpa->processed; i++, addr += PAGE_SIZE, pfn++) {
323 pgprot_t chk_prot = static_protections(new_prot, addr, pfn);
314 324
315 if (pgprot_val(chk_prot) != pgprot_val(new_prot)) 325 if (pgprot_val(chk_prot) != pgprot_val(new_prot))
316 goto out_unlock; 326 goto out_unlock;
@@ -333,7 +343,7 @@ try_preserve_large_page(pte_t *kpte, unsigned long address,
333 * that we limited the number of possible pages already to 343 * that we limited the number of possible pages already to
334 * the number of pages in the large page. 344 * the number of pages in the large page.
335 */ 345 */
336 if (address == (nextpage_addr - psize) && cpa->numpages == numpages) { 346 if (address == (nextpage_addr - psize) && cpa->processed == numpages) {
337 /* 347 /*
338 * The address is aligned and the number of pages 348 * The address is aligned and the number of pages
339 * covers the full page. 349 * covers the full page.
@@ -352,45 +362,48 @@ out_unlock:
352 362
353static LIST_HEAD(page_pool); 363static LIST_HEAD(page_pool);
354static unsigned long pool_size, pool_pages, pool_low; 364static unsigned long pool_size, pool_pages, pool_low;
355static unsigned long pool_used, pool_failed, pool_refill; 365static unsigned long pool_used, pool_failed;
356 366
357static void cpa_fill_pool(void) 367static void cpa_fill_pool(struct page **ret)
358{ 368{
359 struct page *p;
360 gfp_t gfp = GFP_KERNEL; 369 gfp_t gfp = GFP_KERNEL;
370 unsigned long flags;
371 struct page *p;
361 372
362 /* Do not allocate from interrupt context */
363 if (in_irq() || irqs_disabled())
364 return;
365 /* 373 /*
366 * Check unlocked. I does not matter when we have one more 374 * Avoid recursion (on debug-pagealloc) and also signal
367 * page in the pool. The bit lock avoids recursive pool 375 * our priority to get to these pagetables:
368 * allocations:
369 */ 376 */
370 if (pool_pages >= pool_size || test_and_set_bit_lock(0, &pool_refill)) 377 if (current->flags & PF_MEMALLOC)
371 return; 378 return;
379 current->flags |= PF_MEMALLOC;
372 380
373#ifdef CONFIG_DEBUG_PAGEALLOC
374 /* 381 /*
375 * We could do: 382 * Allocate atomically from atomic contexts:
376 * gfp = in_atomic() ? GFP_ATOMIC : GFP_KERNEL;
377 * but this fails on !PREEMPT kernels
378 */ 383 */
379 gfp = GFP_ATOMIC | __GFP_NORETRY | __GFP_NOWARN; 384 if (in_atomic() || irqs_disabled() || debug_pagealloc)
380#endif 385 gfp = GFP_ATOMIC | __GFP_NORETRY | __GFP_NOWARN;
381 386
382 while (pool_pages < pool_size) { 387 while (pool_pages < pool_size || (ret && !*ret)) {
383 p = alloc_pages(gfp, 0); 388 p = alloc_pages(gfp, 0);
384 if (!p) { 389 if (!p) {
385 pool_failed++; 390 pool_failed++;
386 break; 391 break;
387 } 392 }
388 spin_lock_irq(&pgd_lock); 393 /*
394 * If the call site needs a page right now, provide it:
395 */
396 if (ret && !*ret) {
397 *ret = p;
398 continue;
399 }
400 spin_lock_irqsave(&pgd_lock, flags);
389 list_add(&p->lru, &page_pool); 401 list_add(&p->lru, &page_pool);
390 pool_pages++; 402 pool_pages++;
391 spin_unlock_irq(&pgd_lock); 403 spin_unlock_irqrestore(&pgd_lock, flags);
392 } 404 }
393 clear_bit_unlock(0, &pool_refill); 405
406 current->flags &= ~PF_MEMALLOC;
394} 407}
395 408
396#define SHIFT_MB (20 - PAGE_SHIFT) 409#define SHIFT_MB (20 - PAGE_SHIFT)
@@ -411,11 +424,15 @@ void __init cpa_init(void)
411 * GiB. Shift MiB to Gib and multiply the result by 424 * GiB. Shift MiB to Gib and multiply the result by
412 * POOL_PAGES_PER_GB: 425 * POOL_PAGES_PER_GB:
413 */ 426 */
414 gb = ((si.totalram >> SHIFT_MB) + ROUND_MB_GB) >> SHIFT_MB_GB; 427 if (debug_pagealloc) {
415 pool_size = POOL_PAGES_PER_GB * gb; 428 gb = ((si.totalram >> SHIFT_MB) + ROUND_MB_GB) >> SHIFT_MB_GB;
429 pool_size = POOL_PAGES_PER_GB * gb;
430 } else {
431 pool_size = 1;
432 }
416 pool_low = pool_size; 433 pool_low = pool_size;
417 434
418 cpa_fill_pool(); 435 cpa_fill_pool(NULL);
419 printk(KERN_DEBUG 436 printk(KERN_DEBUG
420 "CPA: page pool initialized %lu of %lu pages preallocated\n", 437 "CPA: page pool initialized %lu of %lu pages preallocated\n",
421 pool_pages, pool_size); 438 pool_pages, pool_size);
@@ -437,16 +454,20 @@ static int split_large_page(pte_t *kpte, unsigned long address)
437 spin_lock_irqsave(&pgd_lock, flags); 454 spin_lock_irqsave(&pgd_lock, flags);
438 if (list_empty(&page_pool)) { 455 if (list_empty(&page_pool)) {
439 spin_unlock_irqrestore(&pgd_lock, flags); 456 spin_unlock_irqrestore(&pgd_lock, flags);
440 return -ENOMEM; 457 base = NULL;
458 cpa_fill_pool(&base);
459 if (!base)
460 return -ENOMEM;
461 spin_lock_irqsave(&pgd_lock, flags);
462 } else {
463 base = list_first_entry(&page_pool, struct page, lru);
464 list_del(&base->lru);
465 pool_pages--;
466
467 if (pool_pages < pool_low)
468 pool_low = pool_pages;
441 } 469 }
442 470
443 base = list_first_entry(&page_pool, struct page, lru);
444 list_del(&base->lru);
445 pool_pages--;
446
447 if (pool_pages < pool_low)
448 pool_low = pool_pages;
449
450 /* 471 /*
451 * Check for races, another CPU might have split this page 472 * Check for races, another CPU might have split this page
452 * up for us already: 473 * up for us already:
@@ -505,46 +526,46 @@ out_unlock:
505 return 0; 526 return 0;
506} 527}
507 528
508static int __change_page_attr(unsigned long address, struct cpa_data *cpa) 529static int __change_page_attr(struct cpa_data *cpa, int primary)
509{ 530{
531 unsigned long address = cpa->vaddr;
510 int do_split, err; 532 int do_split, err;
511 unsigned int level; 533 unsigned int level;
512 struct page *kpte_page; 534 pte_t *kpte, old_pte;
513 pte_t *kpte;
514 535
515repeat: 536repeat:
516 kpte = lookup_address(address, &level); 537 kpte = lookup_address(address, &level);
517 if (!kpte) 538 if (!kpte)
518 return -EINVAL; 539 return primary ? -EINVAL : 0;
519 540
520 kpte_page = virt_to_page(kpte); 541 old_pte = *kpte;
521 BUG_ON(PageLRU(kpte_page)); 542 if (!pte_val(old_pte)) {
522 BUG_ON(PageCompound(kpte_page)); 543 if (!primary)
544 return 0;
545 printk(KERN_WARNING "CPA: called for zero pte. "
546 "vaddr = %lx cpa->vaddr = %lx\n", address,
547 cpa->vaddr);
548 WARN_ON(1);
549 return -EINVAL;
550 }
523 551
524 if (level == PG_LEVEL_4K) { 552 if (level == PG_LEVEL_4K) {
525 pte_t new_pte, old_pte = *kpte; 553 pte_t new_pte;
526 pgprot_t new_prot = pte_pgprot(old_pte); 554 pgprot_t new_prot = pte_pgprot(old_pte);
527 555 unsigned long pfn = pte_pfn(old_pte);
528 if(!pte_val(old_pte)) {
529 printk(KERN_WARNING "CPA: called for zero pte. "
530 "vaddr = %lx cpa->vaddr = %lx\n", address,
531 cpa->vaddr);
532 WARN_ON(1);
533 return -EINVAL;
534 }
535 556
536 pgprot_val(new_prot) &= ~pgprot_val(cpa->mask_clr); 557 pgprot_val(new_prot) &= ~pgprot_val(cpa->mask_clr);
537 pgprot_val(new_prot) |= pgprot_val(cpa->mask_set); 558 pgprot_val(new_prot) |= pgprot_val(cpa->mask_set);
538 559
539 new_prot = static_protections(new_prot, address); 560 new_prot = static_protections(new_prot, address, pfn);
540 561
541 /* 562 /*
542 * We need to keep the pfn from the existing PTE, 563 * We need to keep the pfn from the existing PTE,
543 * after all we're only going to change it's attributes 564 * after all we're only going to change it's attributes
544 * not the memory it points to 565 * not the memory it points to
545 */ 566 */
546 new_pte = pfn_pte(pte_pfn(old_pte), canon_pgprot(new_prot)); 567 new_pte = pfn_pte(pfn, canon_pgprot(new_prot));
547 568 cpa->pfn = pfn;
548 /* 569 /*
549 * Do we really change anything ? 570 * Do we really change anything ?
550 */ 571 */
@@ -552,7 +573,7 @@ repeat:
552 set_pte_atomic(kpte, new_pte); 573 set_pte_atomic(kpte, new_pte);
553 cpa->flushtlb = 1; 574 cpa->flushtlb = 1;
554 } 575 }
555 cpa->numpages = 1; 576 cpa->processed = 1;
556 return 0; 577 return 0;
557 } 578 }
558 579
@@ -563,7 +584,7 @@ repeat:
563 do_split = try_preserve_large_page(kpte, address, cpa); 584 do_split = try_preserve_large_page(kpte, address, cpa);
564 /* 585 /*
565 * When the range fits into the existing large page, 586 * When the range fits into the existing large page,
566 * return. cp->numpages and cpa->tlbflush have been updated in 587 * return. cp->processed and cpa->tlbflush have been updated in
567 * try_large_page: 588 * try_large_page:
568 */ 589 */
569 if (do_split <= 0) 590 if (do_split <= 0)
@@ -581,67 +602,59 @@ repeat:
581 return err; 602 return err;
582} 603}
583 604
584/** 605static int __change_page_attr_set_clr(struct cpa_data *cpa, int checkalias);
585 * change_page_attr_addr - Change page table attributes in linear mapping 606
586 * @address: Virtual address in linear mapping. 607static int cpa_process_alias(struct cpa_data *cpa)
587 * @prot: New page table attribute (PAGE_*)
588 *
589 * Change page attributes of a page in the direct mapping. This is a variant
590 * of change_page_attr() that also works on memory holes that do not have
591 * mem_map entry (pfn_valid() is false).
592 *
593 * See change_page_attr() documentation for more details.
594 *
595 * Modules and drivers should use the set_memory_* APIs instead.
596 */
597static int change_page_attr_addr(struct cpa_data *cpa)
598{ 608{
599 int err; 609 struct cpa_data alias_cpa;
600 unsigned long address = cpa->vaddr; 610 int ret = 0;
601 611
602#ifdef CONFIG_X86_64 612 if (cpa->pfn > max_pfn_mapped)
603 unsigned long phys_addr = __pa(address); 613 return 0;
604 614
605 /* 615 /*
606 * If we are inside the high mapped kernel range, then we 616 * No need to redo, when the primary call touched the direct
607 * fixup the low mapping first. __va() returns the virtual 617 * mapping already:
608 * address in the linear mapping:
609 */ 618 */
610 if (within(address, HIGH_MAP_START, HIGH_MAP_END)) 619 if (!within(cpa->vaddr, PAGE_OFFSET,
611 address = (unsigned long) __va(phys_addr); 620 PAGE_OFFSET + (max_pfn_mapped << PAGE_SHIFT))) {
612#endif
613 621
614 err = __change_page_attr(address, cpa); 622 alias_cpa = *cpa;
615 if (err) 623 alias_cpa.vaddr = (unsigned long) __va(cpa->pfn << PAGE_SHIFT);
616 return err; 624
625 ret = __change_page_attr_set_clr(&alias_cpa, 0);
626 }
617 627
618#ifdef CONFIG_X86_64 628#ifdef CONFIG_X86_64
629 if (ret)
630 return ret;
631 /*
632 * No need to redo, when the primary call touched the high
633 * mapping already:
634 */
635 if (within(cpa->vaddr, (unsigned long) _text, (unsigned long) _end))
636 return 0;
637
619 /* 638 /*
620 * If the physical address is inside the kernel map, we need 639 * If the physical address is inside the kernel map, we need
621 * to touch the high mapped kernel as well: 640 * to touch the high mapped kernel as well:
622 */ 641 */
623 if (within(phys_addr, 0, KERNEL_TEXT_SIZE)) { 642 if (!within(cpa->pfn, highmap_start_pfn(), highmap_end_pfn()))
624 /* 643 return 0;
625 * Calc the high mapping address. See __phys_addr()
626 * for the non obvious details.
627 *
628 * Note that NX and other required permissions are
629 * checked in static_protections().
630 */
631 address = phys_addr + HIGH_MAP_START - phys_base;
632 644
633 /* 645 alias_cpa = *cpa;
634 * Our high aliases are imprecise, because we check 646 alias_cpa.vaddr =
635 * everything between 0 and KERNEL_TEXT_SIZE, so do 647 (cpa->pfn << PAGE_SHIFT) + __START_KERNEL_map - phys_base;
636 * not propagate lookup failures back to users: 648
637 */ 649 /*
638 __change_page_attr(address, cpa); 650 * The high mapping range is imprecise, so ignore the return value.
639 } 651 */
652 __change_page_attr_set_clr(&alias_cpa, 0);
640#endif 653#endif
641 return err; 654 return ret;
642} 655}
643 656
644static int __change_page_attr_set_clr(struct cpa_data *cpa) 657static int __change_page_attr_set_clr(struct cpa_data *cpa, int checkalias)
645{ 658{
646 int ret, numpages = cpa->numpages; 659 int ret, numpages = cpa->numpages;
647 660
@@ -650,19 +663,26 @@ static int __change_page_attr_set_clr(struct cpa_data *cpa)
650 * Store the remaining nr of pages for the large page 663 * Store the remaining nr of pages for the large page
651 * preservation check. 664 * preservation check.
652 */ 665 */
653 cpa->numpages = numpages; 666 cpa->numpages = cpa->processed = numpages;
654 ret = change_page_attr_addr(cpa); 667
668 ret = __change_page_attr(cpa, checkalias);
655 if (ret) 669 if (ret)
656 return ret; 670 return ret;
657 671
672 if (checkalias) {
673 ret = cpa_process_alias(cpa);
674 if (ret)
675 return ret;
676 }
677
658 /* 678 /*
659 * Adjust the number of pages with the result of the 679 * Adjust the number of pages with the result of the
660 * CPA operation. Either a large page has been 680 * CPA operation. Either a large page has been
661 * preserved or a single page update happened. 681 * preserved or a single page update happened.
662 */ 682 */
663 BUG_ON(cpa->numpages > numpages); 683 BUG_ON(cpa->processed > numpages);
664 numpages -= cpa->numpages; 684 numpages -= cpa->processed;
665 cpa->vaddr += cpa->numpages * PAGE_SIZE; 685 cpa->vaddr += cpa->processed * PAGE_SIZE;
666 } 686 }
667 return 0; 687 return 0;
668} 688}
@@ -677,7 +697,7 @@ static int change_page_attr_set_clr(unsigned long addr, int numpages,
677 pgprot_t mask_set, pgprot_t mask_clr) 697 pgprot_t mask_set, pgprot_t mask_clr)
678{ 698{
679 struct cpa_data cpa; 699 struct cpa_data cpa;
680 int ret, cache; 700 int ret, cache, checkalias;
681 701
682 /* 702 /*
683 * Check, if we are requested to change a not supported 703 * Check, if we are requested to change a not supported
@@ -703,7 +723,10 @@ static int change_page_attr_set_clr(unsigned long addr, int numpages,
703 cpa.mask_clr = mask_clr; 723 cpa.mask_clr = mask_clr;
704 cpa.flushtlb = 0; 724 cpa.flushtlb = 0;
705 725
706 ret = __change_page_attr_set_clr(&cpa); 726 /* No alias checking for _NX bit modifications */
727 checkalias = (pgprot_val(mask_set) | pgprot_val(mask_clr)) != _PAGE_NX;
728
729 ret = __change_page_attr_set_clr(&cpa, checkalias);
707 730
708 /* 731 /*
709 * Check whether we really changed something: 732 * Check whether we really changed something:
@@ -729,7 +752,8 @@ static int change_page_attr_set_clr(unsigned long addr, int numpages,
729 cpa_flush_all(cache); 752 cpa_flush_all(cache);
730 753
731out: 754out:
732 cpa_fill_pool(); 755 cpa_fill_pool(NULL);
756
733 return ret; 757 return ret;
734} 758}
735 759
@@ -841,7 +865,7 @@ static int __set_pages_p(struct page *page, int numpages)
841 .mask_set = __pgprot(_PAGE_PRESENT | _PAGE_RW), 865 .mask_set = __pgprot(_PAGE_PRESENT | _PAGE_RW),
842 .mask_clr = __pgprot(0)}; 866 .mask_clr = __pgprot(0)};
843 867
844 return __change_page_attr_set_clr(&cpa); 868 return __change_page_attr_set_clr(&cpa, 1);
845} 869}
846 870
847static int __set_pages_np(struct page *page, int numpages) 871static int __set_pages_np(struct page *page, int numpages)
@@ -851,7 +875,7 @@ static int __set_pages_np(struct page *page, int numpages)
851 .mask_set = __pgprot(0), 875 .mask_set = __pgprot(0),
852 .mask_clr = __pgprot(_PAGE_PRESENT | _PAGE_RW)}; 876 .mask_clr = __pgprot(_PAGE_PRESENT | _PAGE_RW)};
853 877
854 return __change_page_attr_set_clr(&cpa); 878 return __change_page_attr_set_clr(&cpa, 1);
855} 879}
856 880
857void kernel_map_pages(struct page *page, int numpages, int enable) 881void kernel_map_pages(struct page *page, int numpages, int enable)
@@ -892,9 +916,26 @@ void kernel_map_pages(struct page *page, int numpages, int enable)
892 * Try to refill the page pool here. We can do this only after 916 * Try to refill the page pool here. We can do this only after
893 * the tlb flush. 917 * the tlb flush.
894 */ 918 */
895 cpa_fill_pool(); 919 cpa_fill_pool(NULL);
896} 920}
897#endif 921
922#ifdef CONFIG_HIBERNATION
923
924bool kernel_page_present(struct page *page)
925{
926 unsigned int level;
927 pte_t *pte;
928
929 if (PageHighMem(page))
930 return false;
931
932 pte = lookup_address((unsigned long)page_address(page), &level);
933 return (pte_val(*pte) & _PAGE_PRESENT);
934}
935
936#endif /* CONFIG_HIBERNATION */
937
938#endif /* CONFIG_DEBUG_PAGEALLOC */
898 939
899/* 940/*
900 * The testcases use internal knowledge of the implementation that shouldn't 941 * The testcases use internal knowledge of the implementation that shouldn't
diff --git a/arch/x86/mm/srat_64.c b/arch/x86/mm/srat_64.c
index ecd91ea8a8ae..845001c617cc 100644
--- a/arch/x86/mm/srat_64.c
+++ b/arch/x86/mm/srat_64.c
@@ -166,7 +166,8 @@ static inline int save_add_info(void) {return 0;}
166 * Both SPARSE and RESERVE need nodes_add information. 166 * Both SPARSE and RESERVE need nodes_add information.
167 * This code supports one contiguous hot add area per node. 167 * This code supports one contiguous hot add area per node.
168 */ 168 */
169static int reserve_hotadd(int node, unsigned long start, unsigned long end) 169static int __init
170reserve_hotadd(int node, unsigned long start, unsigned long end)
170{ 171{
171 unsigned long s_pfn = start >> PAGE_SHIFT; 172 unsigned long s_pfn = start >> PAGE_SHIFT;
172 unsigned long e_pfn = end >> PAGE_SHIFT; 173 unsigned long e_pfn = end >> PAGE_SHIFT;
diff --git a/arch/x86/pci/common.c b/arch/x86/pci/common.c
index b7c67a187b6b..7b6e3bb9b28c 100644
--- a/arch/x86/pci/common.c
+++ b/arch/x86/pci/common.c
@@ -541,7 +541,7 @@ void pcibios_disable_device (struct pci_dev *dev)
541 pcibios_disable_irq(dev); 541 pcibios_disable_irq(dev);
542} 542}
543 543
544struct pci_bus *pci_scan_bus_with_sysdata(int busno) 544struct pci_bus *__devinit pci_scan_bus_with_sysdata(int busno)
545{ 545{
546 struct pci_bus *bus = NULL; 546 struct pci_bus *bus = NULL;
547 struct pci_sysdata *sd; 547 struct pci_sysdata *sd;
diff --git a/arch/x86/pci/irq.c b/arch/x86/pci/irq.c
index ed07ce6c171b..a8715861877e 100644
--- a/arch/x86/pci/irq.c
+++ b/arch/x86/pci/irq.c
@@ -583,6 +583,10 @@ static __init int intel_router_probe(struct irq_router *r, struct pci_dev *route
583 case PCI_DEVICE_ID_INTEL_ICH9_4: 583 case PCI_DEVICE_ID_INTEL_ICH9_4:
584 case PCI_DEVICE_ID_INTEL_ICH9_5: 584 case PCI_DEVICE_ID_INTEL_ICH9_5:
585 case PCI_DEVICE_ID_INTEL_TOLAPAI_0: 585 case PCI_DEVICE_ID_INTEL_TOLAPAI_0:
586 case PCI_DEVICE_ID_INTEL_ICH10_0:
587 case PCI_DEVICE_ID_INTEL_ICH10_1:
588 case PCI_DEVICE_ID_INTEL_ICH10_2:
589 case PCI_DEVICE_ID_INTEL_ICH10_3:
586 r->name = "PIIX/ICH"; 590 r->name = "PIIX/ICH";
587 r->get = pirq_piix_get; 591 r->get = pirq_piix_get;
588 r->set = pirq_piix_set; 592 r->set = pirq_piix_set;
diff --git a/arch/x86/power/hibernate_asm_64.S b/arch/x86/power/hibernate_asm_64.S
index 1deb3244b99b..000415947d93 100644
--- a/arch/x86/power/hibernate_asm_64.S
+++ b/arch/x86/power/hibernate_asm_64.S
@@ -20,6 +20,7 @@
20#include <asm/segment.h> 20#include <asm/segment.h>
21#include <asm/page.h> 21#include <asm/page.h>
22#include <asm/asm-offsets.h> 22#include <asm/asm-offsets.h>
23#include <asm/processor-flags.h>
23 24
24ENTRY(swsusp_arch_suspend) 25ENTRY(swsusp_arch_suspend)
25 movq $saved_context, %rax 26 movq $saved_context, %rax
@@ -60,7 +61,7 @@ ENTRY(restore_image)
60 /* Flush TLB */ 61 /* Flush TLB */
61 movq mmu_cr4_features(%rip), %rax 62 movq mmu_cr4_features(%rip), %rax
62 movq %rax, %rdx 63 movq %rax, %rdx
63 andq $~(1<<7), %rdx # PGE 64 andq $~(X86_CR4_PGE), %rdx
64 movq %rdx, %cr4; # turn off PGE 65 movq %rdx, %cr4; # turn off PGE
65 movq %cr3, %rcx; # flush TLB 66 movq %cr3, %rcx; # flush TLB
66 movq %rcx, %cr3; 67 movq %rcx, %cr3;
@@ -112,7 +113,7 @@ ENTRY(restore_registers)
112 /* Flush TLB, including "global" things (vmalloc) */ 113 /* Flush TLB, including "global" things (vmalloc) */
113 movq mmu_cr4_features(%rip), %rax 114 movq mmu_cr4_features(%rip), %rax
114 movq %rax, %rdx 115 movq %rax, %rdx
115 andq $~(1<<7), %rdx; # PGE 116 andq $~(X86_CR4_PGE), %rdx
116 movq %rdx, %cr4; # turn off PGE 117 movq %rdx, %cr4; # turn off PGE
117 movq %cr3, %rcx; # flush TLB 118 movq %cr3, %rcx; # flush TLB
118 movq %rcx, %cr3 119 movq %rcx, %cr3
diff --git a/arch/x86/vdso/Makefile b/arch/x86/vdso/Makefile
index f385a4b4a484..0a8f4742ef51 100644
--- a/arch/x86/vdso/Makefile
+++ b/arch/x86/vdso/Makefile
@@ -50,7 +50,9 @@ obj-$(VDSO64-y) += vdso-syms.lds
50sed-vdsosym := -e 's/^00*/0/' \ 50sed-vdsosym := -e 's/^00*/0/' \
51 -e 's/^\([0-9a-fA-F]*\) . \(VDSO[a-zA-Z0-9_]*\)$$/\2 = 0x\1;/p' 51 -e 's/^\([0-9a-fA-F]*\) . \(VDSO[a-zA-Z0-9_]*\)$$/\2 = 0x\1;/p'
52quiet_cmd_vdsosym = VDSOSYM $@ 52quiet_cmd_vdsosym = VDSOSYM $@
53 cmd_vdsosym = $(NM) $< | sed -n $(sed-vdsosym) | LC_ALL=C sort > $@ 53define cmd_vdsosym
54 $(NM) $< | LC_ALL=C sed -n $(sed-vdsosym) | LC_ALL=C sort > $@
55endef
54 56
55$(obj)/%-syms.lds: $(obj)/%.so.dbg FORCE 57$(obj)/%-syms.lds: $(obj)/%.so.dbg FORCE
56 $(call if_changed,vdsosym) 58 $(call if_changed,vdsosym)
diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
index 49e5358f481a..8b9ee27805fd 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -153,6 +153,7 @@ static void xen_cpuid(unsigned int *ax, unsigned int *bx,
153 if (*ax == 1) 153 if (*ax == 1)
154 maskedx = ~((1 << X86_FEATURE_APIC) | /* disable APIC */ 154 maskedx = ~((1 << X86_FEATURE_APIC) | /* disable APIC */
155 (1 << X86_FEATURE_ACPI) | /* disable ACPI */ 155 (1 << X86_FEATURE_ACPI) | /* disable ACPI */
156 (1 << X86_FEATURE_SEP) | /* disable SEP */
156 (1 << X86_FEATURE_ACC)); /* thermal monitoring */ 157 (1 << X86_FEATURE_ACC)); /* thermal monitoring */
157 158
158 asm(XEN_EMULATE_PREFIX "cpuid" 159 asm(XEN_EMULATE_PREFIX "cpuid"
diff --git a/arch/xtensa/Makefile b/arch/xtensa/Makefile
index 56685a883347..4bd1e14c6b90 100644
--- a/arch/xtensa/Makefile
+++ b/arch/xtensa/Makefile
@@ -59,7 +59,7 @@ LIBGCC := $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name)
59head-y := arch/xtensa/kernel/head.o 59head-y := arch/xtensa/kernel/head.o
60core-y += arch/xtensa/kernel/ arch/xtensa/mm/ 60core-y += arch/xtensa/kernel/ arch/xtensa/mm/
61ifneq ($(PLATFORM),) 61ifneq ($(PLATFORM),)
62core-y += arch/xtensa/platform-$(PLATFORM)/ 62core-y += arch/xtensa/platforms/$(PLATFORM)/
63endif 63endif
64libs-y += arch/xtensa/lib/ $(LIBGCC) 64libs-y += arch/xtensa/lib/ $(LIBGCC)
65 65
diff --git a/arch/xtensa/boot/boot-elf/Makefile b/arch/xtensa/boot/boot-elf/Makefile
index 734db7f76583..08e8814f8c71 100644
--- a/arch/xtensa/boot/boot-elf/Makefile
+++ b/arch/xtensa/boot/boot-elf/Makefile
@@ -14,25 +14,26 @@ OBJCOPY_ARGS := -O elf32-xtensa-le
14endif 14endif
15 15
16export OBJCOPY_ARGS 16export OBJCOPY_ARGS
17export CPPFLAGS_boot.lds += -P -C
17 18
18boot-y := bootstrap.o 19boot-y := bootstrap.o
19 20
20OBJS := $(addprefix $(obj)/,$(boot-y)) 21OBJS := $(addprefix $(obj)/,$(boot-y))
21 22
22Image: vmlinux $(OBJS) 23Image: vmlinux $(OBJS) arch/$(ARCH)/boot/boot-elf/boot.lds
23 $(OBJCOPY) --strip-all -R .comment -R .xt.insn -O binary \ 24 $(OBJCOPY) --strip-all -R .comment -R .note.gnu.build-id -O binary \
24 vmlinux vmlinux.tmp 25 vmlinux vmlinux.tmp
25 $(OBJCOPY) $(OBJCOPY_ARGS) -R .comment \ 26 $(OBJCOPY) $(OBJCOPY_ARGS) -R .comment \
26 --add-section image=vmlinux.tmp \ 27 --add-section image=vmlinux.tmp \
27 --set-section-flags image=contents,alloc,load,load,data \ 28 --set-section-flags image=contents,alloc,load,load,data \
28 $(OBJS) $@.tmp 29 $(OBJS) $@.tmp
29 $(LD) $(LDFLAGS) $(LDFLAGS_vmlinux) \ 30 $(LD) $(LDFLAGS) $(LDFLAGS_vmlinux) \
30 -T $(srctree)/arch/$(ARCH)/boot/boot-elf/boot.ld \ 31 -T arch/$(ARCH)/boot/boot-elf/boot.lds \
31 -o arch/$(ARCH)/boot/$@.elf $@.tmp 32 -o arch/$(ARCH)/boot/$@.elf $@.tmp
32 rm -f $@.tmp vmlinux.tmp 33 rm -f $@.tmp vmlinux.tmp
33 34
34Image.initrd: vmlinux $(OBJS) 35Image.initrd: vmlinux $(OBJS)
35 $(OBJCOPY) --strip-all -R .comment -R .xt.insn -O binary \ 36 $(OBJCOPY) --strip-all -R .comment -R .note.gnu.build-id -O binary \
36 --add-section .initrd=arch/$(ARCH)/boot/ramdisk \ 37 --add-section .initrd=arch/$(ARCH)/boot/ramdisk \
37 --set-section-flags .initrd=contents,alloc,load,load,data \ 38 --set-section-flags .initrd=contents,alloc,load,load,data \
38 vmlinux vmlinux.tmp 39 vmlinux vmlinux.tmp
diff --git a/arch/xtensa/boot/boot-elf/boot.ld b/arch/xtensa/boot/boot-elf/boot.lds.S
index 4ab06a0a7a6b..849dfcafd518 100644
--- a/arch/xtensa/boot/boot-elf/boot.ld
+++ b/arch/xtensa/boot/boot-elf/boot.lds.S
@@ -1,4 +1,6 @@
1#include <asm/variant/core.h>
1OUTPUT_ARCH(xtensa) 2OUTPUT_ARCH(xtensa)
3ENTRY(_ResetVector)
2 4
3SECTIONS 5SECTIONS
4{ 6{
@@ -61,7 +63,7 @@ SECTIONS
61 _end = .; 63 _end = .;
62 _param_start = .; 64 _param_start = .;
63 65
64 .ResetVector.text 0xfe000020 : 66 .ResetVector.text XCHAL_RESET_VECTOR_VADDR :
65 { 67 {
66 *(.ResetVector.text) 68 *(.ResetVector.text)
67 } 69 }
diff --git a/arch/xtensa/boot/boot-redboot/Makefile b/arch/xtensa/boot/boot-redboot/Makefile
index 74d15d08077b..872029b84435 100644
--- a/arch/xtensa/boot/boot-redboot/Makefile
+++ b/arch/xtensa/boot/boot-redboot/Makefile
@@ -22,7 +22,7 @@ LIBS := arch/xtensa/boot/lib/lib.a arch/xtensa/lib/lib.a
22LIBGCC := $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name) 22LIBGCC := $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name)
23 23
24zImage: vmlinux $(OBJS) $(LIBS) 24zImage: vmlinux $(OBJS) $(LIBS)
25 $(OBJCOPY) --strip-all -R .comment -R .xt.insn -O binary \ 25 $(OBJCOPY) --strip-all -R .comment -R .note.gnu.build-id -O binary \
26 vmlinux vmlinux.tmp 26 vmlinux vmlinux.tmp
27 gzip -vf9 vmlinux.tmp 27 gzip -vf9 vmlinux.tmp
28 $(OBJCOPY) $(OBJCOPY_ARGS) -R .comment \ 28 $(OBJCOPY) $(OBJCOPY_ARGS) -R .comment \
diff --git a/arch/xtensa/boot/boot-redboot/boot.ld b/arch/xtensa/boot/boot-redboot/boot.ld
index 65b726410e8a..774db20d11f7 100644
--- a/arch/xtensa/boot/boot-redboot/boot.ld
+++ b/arch/xtensa/boot/boot-redboot/boot.ld
@@ -2,7 +2,7 @@ OUTPUT_ARCH(xtensa)
2 2
3SECTIONS 3SECTIONS
4{ 4{
5 .start 0xD0200000 : { *(.start) } 5 .start 0xD1000000 : { *(.start) }
6 6
7 .text : 7 .text :
8 { 8 {
diff --git a/arch/xtensa/kernel/asm-offsets.c b/arch/xtensa/kernel/asm-offsets.c
index d5ffe7b6443e..ef63adadf7f4 100644
--- a/arch/xtensa/kernel/asm-offsets.c
+++ b/arch/xtensa/kernel/asm-offsets.c
@@ -21,7 +21,6 @@
21#include <linux/mm.h> 21#include <linux/mm.h>
22 22
23#include <asm/ptrace.h> 23#include <asm/ptrace.h>
24#include <asm/processor.h>
25#include <asm/uaccess.h> 24#include <asm/uaccess.h>
26 25
27#define DEFINE(sym, val) asm volatile("\n->" #sym " %0 " #val : : "i" (val)) 26#define DEFINE(sym, val) asm volatile("\n->" #sym " %0 " #val : : "i" (val))
@@ -64,6 +63,8 @@ int main(void)
64 DEFINE(PT_SIZE, sizeof(struct pt_regs)); 63 DEFINE(PT_SIZE, sizeof(struct pt_regs));
65 DEFINE(PT_AREG_END, offsetof (struct pt_regs, areg[XCHAL_NUM_AREGS])); 64 DEFINE(PT_AREG_END, offsetof (struct pt_regs, areg[XCHAL_NUM_AREGS]));
66 DEFINE(PT_USER_SIZE, offsetof(struct pt_regs, areg[XCHAL_NUM_AREGS])); 65 DEFINE(PT_USER_SIZE, offsetof(struct pt_regs, areg[XCHAL_NUM_AREGS]));
66 DEFINE(PT_XTREGS_OPT, offsetof(struct pt_regs, xtregs_opt));
67 DEFINE(XTREGS_OPT_SIZE, sizeof(xtregs_opt_t));
67 68
68 /* struct task_struct */ 69 /* struct task_struct */
69 DEFINE(TASK_PTRACE, offsetof (struct task_struct, ptrace)); 70 DEFINE(TASK_PTRACE, offsetof (struct task_struct, ptrace));
@@ -77,7 +78,19 @@ int main(void)
77 /* struct thread_info (offset from start_struct) */ 78 /* struct thread_info (offset from start_struct) */
78 DEFINE(THREAD_RA, offsetof (struct task_struct, thread.ra)); 79 DEFINE(THREAD_RA, offsetof (struct task_struct, thread.ra));
79 DEFINE(THREAD_SP, offsetof (struct task_struct, thread.sp)); 80 DEFINE(THREAD_SP, offsetof (struct task_struct, thread.sp));
80 DEFINE(THREAD_CP_SAVE, offsetof (struct task_struct, thread.cp_save)); 81 DEFINE(THREAD_CPENABLE, offsetof (struct thread_info, cpenable));
82#if XTENSA_HAVE_COPROCESSORS
83 DEFINE(THREAD_XTREGS_CP0, offsetof (struct thread_info, xtregs_cp));
84 DEFINE(THREAD_XTREGS_CP1, offsetof (struct thread_info, xtregs_cp));
85 DEFINE(THREAD_XTREGS_CP2, offsetof (struct thread_info, xtregs_cp));
86 DEFINE(THREAD_XTREGS_CP3, offsetof (struct thread_info, xtregs_cp));
87 DEFINE(THREAD_XTREGS_CP4, offsetof (struct thread_info, xtregs_cp));
88 DEFINE(THREAD_XTREGS_CP5, offsetof (struct thread_info, xtregs_cp));
89 DEFINE(THREAD_XTREGS_CP6, offsetof (struct thread_info, xtregs_cp));
90 DEFINE(THREAD_XTREGS_CP7, offsetof (struct thread_info, xtregs_cp));
91#endif
92 DEFINE(THREAD_XTREGS_USER, offsetof (struct thread_info, xtregs_user));
93 DEFINE(XTREGS_USER_SIZE, sizeof(xtregs_user_t));
81 DEFINE(THREAD_CURRENT_DS, offsetof (struct task_struct, thread.current_ds)); 94 DEFINE(THREAD_CURRENT_DS, offsetof (struct task_struct, thread.current_ds));
82 95
83 /* struct mm_struct */ 96 /* struct mm_struct */
diff --git a/arch/xtensa/kernel/coprocessor.S b/arch/xtensa/kernel/coprocessor.S
index 01bcb9fcfcbd..2bc1e145c0a4 100644
--- a/arch/xtensa/kernel/coprocessor.S
+++ b/arch/xtensa/kernel/coprocessor.S
@@ -8,193 +8,328 @@
8 * License. See the file "COPYING" in the main directory of this archive 8 * License. See the file "COPYING" in the main directory of this archive
9 * for more details. 9 * for more details.
10 * 10 *
11 * Copyright (C) 2003 - 2005 Tensilica Inc. 11 * Copyright (C) 2003 - 2007 Tensilica Inc.
12 *
13 * Marc Gauthier <marc@tensilica.com> <marc@alumni.uwaterloo.ca>
14 */ 12 */
15 13
16/*
17 * This module contains a table that describes the layout of the various
18 * custom registers and states associated with each coprocessor, as well
19 * as those not associated with any coprocessor ("extra state").
20 * This table is included with core dumps and is available via the ptrace
21 * interface, allowing the layout of such register/state information to
22 * be modified in the kernel without affecting the debugger. Each
23 * register or state is identified using a 32-bit "libdb target number"
24 * assigned when the Xtensa processor is generated.
25 */
26 14
27#include <linux/linkage.h> 15#include <linux/linkage.h>
16#include <asm/asm-offsets.h>
28#include <asm/processor.h> 17#include <asm/processor.h>
18#include <asm/coprocessor.h>
19#include <asm/thread_info.h>
20#include <asm/uaccess.h>
21#include <asm/unistd.h>
22#include <asm/ptrace.h>
23#include <asm/current.h>
24#include <asm/pgtable.h>
25#include <asm/page.h>
26#include <asm/signal.h>
27#include <asm/tlbflush.h>
29 28
30#if XCHAL_HAVE_CP 29/*
30 * Entry condition:
31 *
32 * a0: trashed, original value saved on stack (PT_AREG0)
33 * a1: a1
34 * a2: new stack pointer, original in DEPC
35 * a3: dispatch table
36 * depc: a2, original value saved on stack (PT_DEPC)
37 * excsave_1: a3
38 *
39 * PT_DEPC >= VALID_DOUBLE_EXCEPTION_ADDRESS: double exception, DEPC
40 * < VALID_DOUBLE_EXCEPTION_ADDRESS: regular exception
41 */
31 42
32#define CP_LAST ((XCHAL_CP_MAX - 1) * COPROCESSOR_INFO_SIZE) 43/* IO protection is currently unsupported. */
33 44
34ENTRY(release_coprocessors) 45ENTRY(fast_io_protect)
46 wsr a0, EXCSAVE_1
47 movi a0, unrecoverable_exception
48 callx0 a0
35 49
36 entry a1, 16 50#if XTENSA_HAVE_COPROCESSORS
37 # a2: task
38 movi a3, 1 << XCHAL_CP_MAX # a3: coprocessor-bit
39 movi a4, coprocessor_info+CP_LAST # a4: owner-table
40 # a5: tmp
41 movi a6, 0 # a6: 0
42 rsil a7, LOCKLEVEL # a7: PS
43 51
441: /* Check if task is coprocessor owner of coprocessor[i]. */ 52/*
53 * Macros for lazy context switch.
54 */
45 55
46 l32i a5, a4, COPROCESSOR_INFO_OWNER 56#define SAVE_CP_REGS(x) \
47 srli a3, a3, 1 57 .align 4; \
48 beqz a3, 1f 58 .Lsave_cp_regs_cp##x: \
49 addi a4, a4, -8 59 .if XTENSA_HAVE_COPROCESSOR(x); \
50 beq a2, a5, 1b 60 xchal_cp##x##_store a2 a4 a5 a6 a7; \
61 .endif; \
62 jx a0
51 63
52 /* Found an entry: Clear entry CPENABLE bit to disable CP. */ 64#define SAVE_CP_REGS_TAB(x) \
65 .if XTENSA_HAVE_COPROCESSOR(x); \
66 .long .Lsave_cp_regs_cp##x - .Lsave_cp_regs_jump_table; \
67 .else; \
68 .long 0; \
69 .endif; \
70 .long THREAD_XTREGS_CP##x
53 71
54 rsr a5, CPENABLE
55 s32i a6, a4, COPROCESSOR_INFO_OWNER
56 xor a5, a3, a5
57 wsr a5, CPENABLE
58 72
59 bnez a3, 1b 73#define LOAD_CP_REGS(x) \
74 .align 4; \
75 .Lload_cp_regs_cp##x: \
76 .if XTENSA_HAVE_COPROCESSOR(x); \
77 xchal_cp##x##_load a2 a4 a5 a6 a7; \
78 .endif; \
79 jx a0
60 80
611: wsr a7, PS 81#define LOAD_CP_REGS_TAB(x) \
62 rsync 82 .if XTENSA_HAVE_COPROCESSOR(x); \
63 retw 83 .long .Lload_cp_regs_cp##x - .Lload_cp_regs_jump_table; \
84 .else; \
85 .long 0; \
86 .endif; \
87 .long THREAD_XTREGS_CP##x
64 88
89 SAVE_CP_REGS(0)
90 SAVE_CP_REGS(1)
91 SAVE_CP_REGS(2)
92 SAVE_CP_REGS(3)
93 SAVE_CP_REGS(4)
94 SAVE_CP_REGS(5)
95 SAVE_CP_REGS(6)
96 SAVE_CP_REGS(7)
65 97
66ENTRY(disable_coprocessor) 98 LOAD_CP_REGS(0)
67 entry sp, 16 99 LOAD_CP_REGS(1)
68 rsil a7, LOCKLEVEL 100 LOAD_CP_REGS(2)
69 rsr a3, CPENABLE 101 LOAD_CP_REGS(3)
70 movi a4, 1 102 LOAD_CP_REGS(4)
71 ssl a2 103 LOAD_CP_REGS(5)
72 sll a4, a4 104 LOAD_CP_REGS(6)
73 and a4, a3, a4 105 LOAD_CP_REGS(7)
74 xor a3, a3, a4
75 wsr a3, CPENABLE
76 wsr a7, PS
77 rsync
78 retw
79 106
80ENTRY(enable_coprocessor) 107 .align 4
81 entry sp, 16 108.Lsave_cp_regs_jump_table:
82 rsil a7, LOCKLEVEL 109 SAVE_CP_REGS_TAB(0)
83 rsr a3, CPENABLE 110 SAVE_CP_REGS_TAB(1)
84 movi a4, 1 111 SAVE_CP_REGS_TAB(2)
85 ssl a2 112 SAVE_CP_REGS_TAB(3)
86 sll a4, a4 113 SAVE_CP_REGS_TAB(4)
87 or a3, a3, a4 114 SAVE_CP_REGS_TAB(5)
88 wsr a3, CPENABLE 115 SAVE_CP_REGS_TAB(6)
89 wsr a7, PS 116 SAVE_CP_REGS_TAB(7)
90 rsync
91 retw
92 117
118.Lload_cp_regs_jump_table:
119 LOAD_CP_REGS_TAB(0)
120 LOAD_CP_REGS_TAB(1)
121 LOAD_CP_REGS_TAB(2)
122 LOAD_CP_REGS_TAB(3)
123 LOAD_CP_REGS_TAB(4)
124 LOAD_CP_REGS_TAB(5)
125 LOAD_CP_REGS_TAB(6)
126 LOAD_CP_REGS_TAB(7)
93 127
94ENTRY(save_coprocessor_extra) 128/*
95 entry sp, 16 129 * coprocessor_save(buffer, index)
96 xchal_extra_store_funcbody 130 * a2 a3
97 retw 131 * coprocessor_load(buffer, index)
132 * a2 a3
133 *
134 * Save or load coprocessor registers for coprocessor 'index'.
135 * The register values are saved to or loaded from them 'buffer' address.
136 *
137 * Note that these functions don't update the coprocessor_owner information!
138 *
139 */
98 140
99ENTRY(restore_coprocessor_extra) 141ENTRY(coprocessor_save)
100 entry sp, 16 142 entry a1, 32
101 xchal_extra_load_funcbody 143 s32i a0, a1, 0
144 movi a0, .Lsave_cp_regs_jump_table
145 addx8 a3, a3, a0
146 l32i a3, a3, 0
147 beqz a3, 1f
148 add a0, a0, a3
149 callx0 a0
1501: l32i a0, a1, 0
102 retw 151 retw
103 152
104ENTRY(save_coprocessor_registers) 153ENTRY(coprocessor_load)
105 entry sp, 16 154 entry a1, 32
106 xchal_cpi_store_funcbody 155 s32i a0, a1, 0
156 movi a0, .Lload_cp_regs_jump_table
157 addx4 a3, a3, a0
158 l32i a3, a3, 0
159 beqz a3, 1f
160 add a0, a0, a3
161 callx0 a0
1621: l32i a0, a1, 0
107 retw 163 retw
108 164
109ENTRY(restore_coprocessor_registers) 165/*
110 entry sp, 16 166 * coprocessor_flush(struct task_info*, index)
111 xchal_cpi_load_funcbody 167 * a2 a3
168 * coprocessor_restore(struct task_info*, index)
169 * a2 a3
170 *
171 * Save or load coprocessor registers for coprocessor 'index'.
172 * The register values are saved to or loaded from the coprocessor area
173 * inside the task_info structure.
174 *
175 * Note that these functions don't update the coprocessor_owner information!
176 *
177 */
178
179
180ENTRY(coprocessor_flush)
181 entry a1, 32
182 s32i a0, a1, 0
183 movi a0, .Lsave_cp_regs_jump_table
184 addx8 a3, a3, a0
185 l32i a4, a3, 4
186 l32i a3, a3, 0
187 add a2, a2, a4
188 beqz a3, 1f
189 add a0, a0, a3
190 callx0 a0
1911: l32i a0, a1, 0
112 retw 192 retw
113 193
194ENTRY(coprocessor_restore)
195 entry a1, 32
196 s32i a0, a1, 0
197 movi a0, .Lload_cp_regs_jump_table
198 addx4 a3, a3, a0
199 l32i a4, a3, 4
200 l32i a3, a3, 0
201 add a2, a2, a4
202 beqz a3, 1f
203 add a0, a0, a3
204 callx0 a0
2051: l32i a0, a1, 0
206 retw
114 207
115/* 208/*
116 * The Xtensa compile-time HAL (core.h) XCHAL_*_SA_CONTENTS_LIBDB macros 209 * Entry condition:
117 * describe the contents of coprocessor & extra save areas in terms of
118 * undefined CONTENTS_LIBDB_{SREG,UREG,REGF} macros. We define these
119 * latter macros here; they expand into a table of the format we want.
120 * The general format is:
121 * 210 *
122 * CONTENTS_LIBDB_SREG(libdbnum, offset, size, align, rsv1, name, sregnum, 211 * a0: trashed, original value saved on stack (PT_AREG0)
123 * bitmask, rsv2, rsv3) 212 * a1: a1
124 * CONTENTS_LIBDB_UREG(libdbnum, offset, size, align, rsv1, name, uregnum, 213 * a2: new stack pointer, original in DEPC
125 * bitmask, rsv2, rsv3) 214 * a3: dispatch table
126 * CONTENTS_LIBDB_REGF(libdbnum, offset, size, align, rsv1, name, index, 215 * depc: a2, original value saved on stack (PT_DEPC)
127 * numentries, contentsize, regname_base, 216 * excsave_1: a3
128 * regfile_name, rsv2, rsv3)
129 * 217 *
130 * For this table, we only care about the <libdbnum>, <offset> and <size> 218 * PT_DEPC >= VALID_DOUBLE_EXCEPTION_ADDRESS: double exception, DEPC
131 * fields. 219 * < VALID_DOUBLE_EXCEPTION_ADDRESS: regular exception
132 */ 220 */
133 221
134/* Map all XCHAL CONTENTS macros to the reg_entry asm macro defined below: */ 222ENTRY(fast_coprocessor_double)
135 223 wsr a0, EXCSAVE_1
136#define CONTENTS_LIBDB_SREG(libdbnum,offset,size,align,rsv1,name,sregnum, \ 224 movi a0, unrecoverable_exception
137 bitmask, rsv2, rsv3) \ 225 callx0 a0
138 reg_entry libdbnum, offset, size ;
139#define CONTENTS_LIBDB_UREG(libdbnum,offset,size,align,rsv1,name,uregnum, \
140 bitmask, rsv2, rsv3) \
141 reg_entry libdbnum, offset, size ;
142#define CONTENTS_LIBDB_REGF(libdbnum, offset, size, align, rsv1, name, index, \
143 numentries, contentsize, regname_base, \
144 regfile_name, rsv2, rsv3) \
145 reg_entry libdbnum, offset, size ;
146
147/* A single table entry: */
148 .macro reg_entry libdbnum, offset, size
149 .ifne (__last_offset-(__last_group_offset+\offset))
150 /* padding entry */
151 .word (0xFC000000+__last_offset-(__last_group_offset+\offset))
152 .endif
153 .word \libdbnum /* actual entry */
154 .set __last_offset, __last_group_offset+\offset+\size
155 .endm /* reg_entry */
156
157
158/* Table entry that marks the beginning of a group (coprocessor or "extra"): */
159 .macro reg_group cpnum, num_entries, align
160 .set __last_group_offset, (__last_offset + \align- 1) & -\align
161 .ifne \num_entries
162 .word 0xFD000000+(\cpnum<<16)+\num_entries
163 .endif
164 .endm /* reg_group */
165 226
166/*
167 * Register info tables.
168 */
169 227
170 .section .rodata, "a" 228ENTRY(fast_coprocessor)
171 .globl _xtensa_reginfo_tables 229
172 .globl _xtensa_reginfo_table_size 230 /* Save remaining registers a1-a3 and SAR */
173 .align 4 231
174_xtensa_reginfo_table_size: 232 xsr a3, EXCSAVE_1
175 .word _xtensa_reginfo_table_end - _xtensa_reginfo_tables 233 s32i a3, a2, PT_AREG3
176 234 rsr a3, SAR
177_xtensa_reginfo_tables: 235 s32i a1, a2, PT_AREG1
178 .set __last_offset, 0 236 s32i a3, a2, PT_SAR
179 reg_group 0xFF, XCHAL_EXTRA_SA_CONTENTS_LIBDB_NUM, XCHAL_EXTRA_SA_ALIGN 237 mov a1, a2
180 XCHAL_EXTRA_SA_CONTENTS_LIBDB 238 rsr a2, DEPC
181 reg_group 0, XCHAL_CP0_SA_CONTENTS_LIBDB_NUM, XCHAL_CP0_SA_ALIGN 239 s32i a2, a1, PT_AREG2
182 XCHAL_CP0_SA_CONTENTS_LIBDB 240
183 reg_group 1, XCHAL_CP1_SA_CONTENTS_LIBDB_NUM, XCHAL_CP1_SA_ALIGN 241 /*
184 XCHAL_CP1_SA_CONTENTS_LIBDB 242 * The hal macros require up to 4 temporary registers. We use a3..a6.
185 reg_group 2, XCHAL_CP2_SA_CONTENTS_LIBDB_NUM, XCHAL_CP2_SA_ALIGN 243 */
186 XCHAL_CP2_SA_CONTENTS_LIBDB 244
187 reg_group 3, XCHAL_CP3_SA_CONTENTS_LIBDB_NUM, XCHAL_CP3_SA_ALIGN 245 s32i a4, a1, PT_AREG4
188 XCHAL_CP3_SA_CONTENTS_LIBDB 246 s32i a5, a1, PT_AREG5
189 reg_group 4, XCHAL_CP4_SA_CONTENTS_LIBDB_NUM, XCHAL_CP4_SA_ALIGN 247 s32i a6, a1, PT_AREG6
190 XCHAL_CP4_SA_CONTENTS_LIBDB 248
191 reg_group 5, XCHAL_CP5_SA_CONTENTS_LIBDB_NUM, XCHAL_CP5_SA_ALIGN 249 /* Find coprocessor number. Subtract first CP EXCCAUSE from EXCCAUSE */
192 XCHAL_CP5_SA_CONTENTS_LIBDB 250
193 reg_group 6, XCHAL_CP6_SA_CONTENTS_LIBDB_NUM, XCHAL_CP6_SA_ALIGN 251 rsr a3, EXCCAUSE
194 XCHAL_CP6_SA_CONTENTS_LIBDB 252 addi a3, a3, -EXCCAUSE_COPROCESSOR0_DISABLED
195 reg_group 7, XCHAL_CP7_SA_CONTENTS_LIBDB_NUM, XCHAL_CP7_SA_ALIGN 253
196 XCHAL_CP7_SA_CONTENTS_LIBDB 254 /* Set corresponding CPENABLE bit -> (sar:cp-index, a3: 1<<cp-index)*/
197 .word 0xFC000000 /* invalid register number,marks end of table*/ 255
198_xtensa_reginfo_table_end: 256 ssl a3 # SAR: 32 - coprocessor_number
199#endif 257 movi a2, 1
258 rsr a0, CPENABLE
259 sll a2, a2
260 or a0, a0, a2
261 wsr a0, CPENABLE
262 rsync
263
264 /* Retrieve previous owner. (a3 still holds CP number) */
265
266 movi a0, coprocessor_owner # list of owners
267 addx4 a0, a3, a0 # entry for CP
268 l32i a4, a0, 0
269
270 beqz a4, 1f # skip 'save' if no previous owner
271
272 /* Disable coprocessor for previous owner. (a2 = 1 << CP number) */
273
274 l32i a5, a4, THREAD_CPENABLE
275 xor a5, a5, a2 # (1 << cp-id) still in a2
276 s32i a5, a4, THREAD_CPENABLE
277
278 /*
279 * Get context save area and 'call' save routine.
280 * (a4 still holds previous owner (thread_info), a3 CP number)
281 */
282
283 movi a5, .Lsave_cp_regs_jump_table
284 movi a0, 2f # a0: 'return' address
285 addx8 a3, a3, a5 # a3: coprocessor number
286 l32i a2, a3, 4 # a2: xtregs offset
287 l32i a3, a3, 0 # a3: jump offset
288 add a2, a2, a4
289 add a4, a3, a5 # a4: address of save routine
290 jx a4
291
292 /* Note that only a0 and a1 were preserved. */
293
2942: rsr a3, EXCCAUSE
295 addi a3, a3, -EXCCAUSE_COPROCESSOR0_DISABLED
296 movi a0, coprocessor_owner
297 addx4 a0, a3, a0
298
299 /* Set new 'owner' (a0 points to the CP owner, a3 contains the CP nr) */
300
3011: GET_THREAD_INFO (a4, a1)
302 s32i a4, a0, 0
303
304 /* Get context save area and 'call' load routine. */
305
306 movi a5, .Lload_cp_regs_jump_table
307 movi a0, 1f
308 addx8 a3, a3, a5
309 l32i a2, a3, 4 # a2: xtregs offset
310 l32i a3, a3, 0 # a3: jump offset
311 add a2, a2, a4
312 add a4, a3, a5
313 jx a4
314
315 /* Restore all registers and return from exception handler. */
316
3171: l32i a6, a1, PT_AREG6
318 l32i a5, a1, PT_AREG5
319 l32i a4, a1, PT_AREG4
320
321 l32i a0, a1, PT_SAR
322 l32i a3, a1, PT_AREG3
323 l32i a2, a1, PT_AREG2
324 wsr a0, SAR
325 l32i a0, a1, PT_AREG0
326 l32i a1, a1, PT_AREG1
327
328 rfe
329
330 .data
331ENTRY(coprocessor_owner)
332 .fill XCHAL_CP_MAX, 4, 0
333
334#endif /* XTENSA_HAVE_COPROCESSORS */
200 335
diff --git a/arch/xtensa/kernel/entry.S b/arch/xtensa/kernel/entry.S
index 91a689eca43d..dfd35dcc1cb5 100644
--- a/arch/xtensa/kernel/entry.S
+++ b/arch/xtensa/kernel/entry.S
@@ -25,10 +25,10 @@
25#include <asm/page.h> 25#include <asm/page.h>
26#include <asm/signal.h> 26#include <asm/signal.h>
27#include <asm/tlbflush.h> 27#include <asm/tlbflush.h>
28#include <asm/variant/tie-asm.h>
28 29
29/* Unimplemented features. */ 30/* Unimplemented features. */
30 31
31#undef SIGNAL_HANDLING_IN_DOUBLE_EXCEPTION
32#undef KERNEL_STACK_OVERFLOW_CHECK 32#undef KERNEL_STACK_OVERFLOW_CHECK
33#undef PREEMPTIBLE_KERNEL 33#undef PREEMPTIBLE_KERNEL
34#undef ALLOCA_EXCEPTION_IN_IRAM 34#undef ALLOCA_EXCEPTION_IN_IRAM
@@ -214,19 +214,7 @@ _user_exception:
214 214
215 /* We are back to the original stack pointer (a1) */ 215 /* We are back to the original stack pointer (a1) */
216 216
2172: 2172: /* Now, jump to the common exception handler. */
218#if XCHAL_EXTRA_SA_SIZE
219
220 /* For user exceptions, save the extra state into the user's TCB.
221 * Note: We must assume that xchal_extra_store_funcbody destroys a2..a15
222 */
223
224 GET_CURRENT(a2,a1)
225 addi a2, a2, THREAD_CP_SAVE
226 xchal_extra_store_funcbody
227#endif
228
229 /* Now, jump to the common exception handler. */
230 218
231 j common_exception 219 j common_exception
232 220
@@ -382,6 +370,10 @@ common_exception:
382 s32i a2, a1, PT_LBEG 370 s32i a2, a1, PT_LBEG
383 s32i a3, a1, PT_LEND 371 s32i a3, a1, PT_LEND
384 372
373 /* Save optional registers. */
374
375 save_xtregs_opt a1 a2 a4 a5 a6 a7 PT_XTREGS_OPT
376
385 /* Go to second-level dispatcher. Set up parameters to pass to the 377 /* Go to second-level dispatcher. Set up parameters to pass to the
386 * exception handler and call the exception handler. 378 * exception handler and call the exception handler.
387 */ 379 */
@@ -403,74 +395,49 @@ common_exception_return:
403 /* Jump if we are returning from kernel exceptions. */ 395 /* Jump if we are returning from kernel exceptions. */
404 396
4051: l32i a3, a1, PT_PS 3971: l32i a3, a1, PT_PS
406 _bbsi.l a3, PS_UM_BIT, 2f 398 _bbci.l a3, PS_UM_BIT, 4f
407 j kernel_exception_exit
408 399
409 /* Specific to a user exception exit: 400 /* Specific to a user exception exit:
410 * We need to check some flags for signal handling and rescheduling, 401 * We need to check some flags for signal handling and rescheduling,
411 * and have to restore WB and WS, extra states, and all registers 402 * and have to restore WB and WS, extra states, and all registers
412 * in the register file that were in use in the user task. 403 * in the register file that were in use in the user task.
413 */ 404 * Note that we don't disable interrupts here.
414
4152: wsr a3, PS /* disable interrupts */
416
417 /* Check for signals (keep interrupts disabled while we read TI_FLAGS)
418 * Note: PS.INTLEVEL = 0, PS.EXCM = 1
419 */ 405 */
420 406
421 GET_THREAD_INFO(a2,a1) 407 GET_THREAD_INFO(a2,a1)
422 l32i a4, a2, TI_FLAGS 408 l32i a4, a2, TI_FLAGS
423 409
424 /* Enable interrupts again.
425 * Note: When we get here, we certainly have handled any interrupts.
426 * (Hint: There is only one user exception frame on stack)
427 */
428
429 movi a3, 1 << PS_WOE_BIT
430
431 _bbsi.l a4, TIF_NEED_RESCHED, 3f 410 _bbsi.l a4, TIF_NEED_RESCHED, 3f
432 _bbci.l a4, TIF_SIGPENDING, 4f 411 _bbci.l a4, TIF_SIGPENDING, 4f
433 412
434#ifndef SIGNAL_HANDLING_IN_DOUBLE_EXCEPTION
435 l32i a4, a1, PT_DEPC 413 l32i a4, a1, PT_DEPC
436 bgeui a4, VALID_DOUBLE_EXCEPTION_ADDRESS, 4f 414 bgeui a4, VALID_DOUBLE_EXCEPTION_ADDRESS, 4f
437#endif
438 415
439 /* Reenable interrupts and call do_signal() */ 416 /* Call do_signal() */
440 417
441 wsr a3, PS
442 movi a4, do_signal # int do_signal(struct pt_regs*, sigset_t*) 418 movi a4, do_signal # int do_signal(struct pt_regs*, sigset_t*)
443 mov a6, a1 419 mov a6, a1
444 movi a7, 0 420 movi a7, 0
445 callx4 a4 421 callx4 a4
446 j 1b 422 j 1b
447 423
4483: /* Reenable interrupts and reschedule */ 4243: /* Reschedule */
449 425
450 wsr a3, PS
451 movi a4, schedule # void schedule (void) 426 movi a4, schedule # void schedule (void)
452 callx4 a4 427 callx4 a4
453 j 1b 428 j 1b
454 429
455 /* Restore the state of the task and return from the exception. */ 4304: /* Restore optional registers. */
456
4574: /* a2 holds GET_CURRENT(a2,a1) */
458
459#if XCHAL_EXTRA_SA_SIZE
460 431
461 /* For user exceptions, restore the extra state from the user's TCB. */ 432 load_xtregs_opt a1 a2 a4 a5 a6 a7 PT_XTREGS_OPT
462 433
463 /* Note: a2 still contains GET_CURRENT(a2,a1) */ 434 wsr a3, PS /* disable interrupts */
464 addi a2, a2, THREAD_CP_SAVE
465 xchal_extra_load_funcbody
466 435
467 /* We must assume that xchal_extra_store_funcbody destroys 436 _bbci.l a3, PS_UM_BIT, kernel_exception_exit
468 * registers a2..a15. FIXME, this list can eventually be
469 * reduced once real register requirements of the macro are
470 * finalized. */
471 437
472#endif /* XCHAL_EXTRA_SA_SIZE */ 438user_exception_exit:
473 439
440 /* Restore the state of the task and return from the exception. */
474 441
475 /* Switch to the user thread WINDOWBASE. Save SP temporarily in DEPC */ 442 /* Switch to the user thread WINDOWBASE. Save SP temporarily in DEPC */
476 443
@@ -536,10 +503,6 @@ common_exception_return:
536 503
537kernel_exception_exit: 504kernel_exception_exit:
538 505
539 /* Disable interrupts (a3 holds PT_PS) */
540
541 wsr a3, PS
542
543#ifdef PREEMPTIBLE_KERNEL 506#ifdef PREEMPTIBLE_KERNEL
544 507
545#ifdef CONFIG_PREEMPT 508#ifdef CONFIG_PREEMPT
@@ -618,6 +581,8 @@ kernel_exception_exit:
618 581
619common_exception_exit: 582common_exception_exit:
620 583
584 /* Restore address registers. */
585
621 _bbsi.l a2, 1, 1f 586 _bbsi.l a2, 1, 1f
622 l32i a4, a1, PT_AREG4 587 l32i a4, a1, PT_AREG4
623 l32i a5, a1, PT_AREG5 588 l32i a5, a1, PT_AREG5
@@ -1150,7 +1115,6 @@ CATCH
1150 * excsave_1: a3 1115 * excsave_1: a3
1151 * 1116 *
1152 * Note: We assume the stack pointer is EXC_TABLE_KSTK in the fixup handler. 1117 * Note: We assume the stack pointer is EXC_TABLE_KSTK in the fixup handler.
1153 * Note: We don't need to save a2 in depc (return value)
1154 */ 1118 */
1155 1119
1156ENTRY(fast_syscall_spill_registers) 1120ENTRY(fast_syscall_spill_registers)
@@ -1166,29 +1130,31 @@ ENTRY(fast_syscall_spill_registers)
1166 1130
1167 rsr a0, SAR 1131 rsr a0, SAR
1168 xsr a3, EXCSAVE_1 # restore a3 and excsave_1 1132 xsr a3, EXCSAVE_1 # restore a3 and excsave_1
1169 s32i a0, a2, PT_AREG4 # store SAR to PT_AREG4
1170 s32i a3, a2, PT_AREG3 1133 s32i a3, a2, PT_AREG3
1134 s32i a4, a2, PT_AREG4
1135 s32i a0, a2, PT_AREG5 # store SAR to PT_AREG5
1171 1136
1172 /* The spill routine might clobber a7, a11, and a15. */ 1137 /* The spill routine might clobber a7, a11, and a15. */
1173 1138
1174 s32i a7, a2, PT_AREG5 1139 s32i a7, a2, PT_AREG7
1175 s32i a11, a2, PT_AREG6 1140 s32i a11, a2, PT_AREG11
1176 s32i a15, a2, PT_AREG7 1141 s32i a15, a2, PT_AREG15
1177 1142
1178 call0 _spill_registers # destroys a3, DEPC, and SAR 1143 call0 _spill_registers # destroys a3, a4, and SAR
1179 1144
1180 /* Advance PC, restore registers and SAR, and return from exception. */ 1145 /* Advance PC, restore registers and SAR, and return from exception. */
1181 1146
1182 l32i a3, a2, PT_AREG4 1147 l32i a3, a2, PT_AREG5
1148 l32i a4, a2, PT_AREG4
1183 l32i a0, a2, PT_AREG0 1149 l32i a0, a2, PT_AREG0
1184 wsr a3, SAR 1150 wsr a3, SAR
1185 l32i a3, a2, PT_AREG3 1151 l32i a3, a2, PT_AREG3
1186 1152
1187 /* Restore clobbered registers. */ 1153 /* Restore clobbered registers. */
1188 1154
1189 l32i a7, a2, PT_AREG5 1155 l32i a7, a2, PT_AREG7
1190 l32i a11, a2, PT_AREG6 1156 l32i a11, a2, PT_AREG11
1191 l32i a15, a2, PT_AREG7 1157 l32i a15, a2, PT_AREG15
1192 1158
1193 movi a2, 0 1159 movi a2, 0
1194 rfe 1160 rfe
@@ -1247,16 +1213,6 @@ fast_syscall_spill_registers_fixup:
1247 * Note: This frame might be the same as above. 1213 * Note: This frame might be the same as above.
1248 */ 1214 */
1249 1215
1250#ifdef SIGNAL_HANDLING_IN_DOUBLE_EXCEPTION
1251 /* Restore registers we precautiously saved.
1252 * We have the value of the 'right' a3
1253 */
1254
1255 l32i a7, a2, PT_AREG5
1256 l32i a11, a2, PT_AREG6
1257 l32i a15, a2, PT_AREG7
1258#endif
1259
1260 /* Setup stack pointer. */ 1216 /* Setup stack pointer. */
1261 1217
1262 addi a2, a2, -PT_USER_SIZE 1218 addi a2, a2, -PT_USER_SIZE
@@ -1271,9 +1227,9 @@ fast_syscall_spill_registers_fixup:
1271 1227
1272 movi a3, exc_table 1228 movi a3, exc_table
1273 rsr a0, EXCCAUSE 1229 rsr a0, EXCCAUSE
1274 addx4 a0, a0, a3 # find entry in table 1230 addx4 a0, a0, a3 # find entry in table
1275 l32i a0, a0, EXC_TABLE_FAST_USER # load handler 1231 l32i a0, a0, EXC_TABLE_FAST_USER # load handler
1276 jx a0 1232 jx a0
1277 1233
1278fast_syscall_spill_registers_fixup_return: 1234fast_syscall_spill_registers_fixup_return:
1279 1235
@@ -1290,14 +1246,6 @@ fast_syscall_spill_registers_fixup_return:
1290 s32i a2, a3, EXC_TABLE_PARAM 1246 s32i a2, a3, EXC_TABLE_PARAM
1291 l32i a2, a3, EXC_TABLE_KSTK 1247 l32i a2, a3, EXC_TABLE_KSTK
1292 1248
1293#ifdef SIGNAL_HANDLING_IN_DOUBLE_EXCEPTION
1294 /* Save registers again that might be clobbered. */
1295
1296 s32i a7, a2, PT_AREG5
1297 s32i a11, a2, PT_AREG6
1298 s32i a15, a2, PT_AREG7
1299#endif
1300
1301 /* Load WB at the time the exception occurred. */ 1249 /* Load WB at the time the exception occurred. */
1302 1250
1303 rsr a3, SAR # WB is still in SAR 1251 rsr a3, SAR # WB is still in SAR
@@ -1319,7 +1267,7 @@ fast_syscall_spill_registers_fixup_return:
1319 * This is not a real function. The following conditions must be met: 1267 * This is not a real function. The following conditions must be met:
1320 * 1268 *
1321 * - must be called with call0. 1269 * - must be called with call0.
1322 * - uses DEPC, a3 and SAR. 1270 * - uses a3, a4 and SAR.
1323 * - the last 'valid' register of each frame are clobbered. 1271 * - the last 'valid' register of each frame are clobbered.
1324 * - the caller must have registered a fixup handler 1272 * - the caller must have registered a fixup handler
1325 * (or be inside a critical section) 1273 * (or be inside a critical section)
@@ -1331,41 +1279,39 @@ ENTRY(_spill_registers)
1331 /* 1279 /*
1332 * Rotate ws so that the current windowbase is at bit 0. 1280 * Rotate ws so that the current windowbase is at bit 0.
1333 * Assume ws = xxxwww1yy (www1 current window frame). 1281 * Assume ws = xxxwww1yy (www1 current window frame).
1334 * Rotate ws right so that a2 = yyxxxwww1. 1282 * Rotate ws right so that a4 = yyxxxwww1.
1335 */ 1283 */
1336 1284
1337 wsr a2, DEPC # preserve a2 1285 rsr a4, WINDOWBASE
1338 rsr a2, WINDOWBASE 1286 rsr a3, WINDOWSTART # a3 = xxxwww1yy
1339 rsr a3, WINDOWSTART 1287 ssr a4 # holds WB
1340 ssr a2 # holds WB 1288 slli a4, a3, WSBITS
1341 slli a2, a3, WSBITS 1289 or a3, a3, a4 # a3 = xxxwww1yyxxxwww1yy
1342 or a3, a3, a2 # a2 = xxxwww1yyxxxwww1yy 1290 srl a3, a3 # a3 = 00xxxwww1yyxxxwww1
1343 srl a3, a3
1344 1291
1345 /* We are done if there are no more than the current register frame. */ 1292 /* We are done if there are no more than the current register frame. */
1346 1293
1347 extui a3, a3, 1, WSBITS-2 # a3 = 0yyxxxwww 1294 extui a3, a3, 1, WSBITS-1 # a3 = 0yyxxxwww
1348 movi a2, (1 << (WSBITS-1)) 1295 movi a4, (1 << (WSBITS-1))
1349 _beqz a3, .Lnospill # only one active frame? jump 1296 _beqz a3, .Lnospill # only one active frame? jump
1350 1297
1351 /* We want 1 at the top, so that we return to the current windowbase */ 1298 /* We want 1 at the top, so that we return to the current windowbase */
1352 1299
1353 or a3, a3, a2 # 1yyxxxwww 1300 or a3, a3, a4 # 1yyxxxwww
1354 1301
1355 /* Skip empty frames - get 'oldest' WINDOWSTART-bit. */ 1302 /* Skip empty frames - get 'oldest' WINDOWSTART-bit. */
1356 1303
1357 wsr a3, WINDOWSTART # save shifted windowstart 1304 wsr a3, WINDOWSTART # save shifted windowstart
1358 neg a2, a3 1305 neg a4, a3
1359 and a3, a2, a3 # first bit set from right: 000010000 1306 and a3, a4, a3 # first bit set from right: 000010000
1360 1307
1361 ffs_ws a2, a3 # a2: shifts to skip empty frames 1308 ffs_ws a4, a3 # a4: shifts to skip empty frames
1362 movi a3, WSBITS 1309 movi a3, WSBITS
1363 sub a2, a3, a2 # WSBITS-a2:number of 0-bits from right 1310 sub a4, a3, a4 # WSBITS-a4:number of 0-bits from right
1364 ssr a2 # save in SAR for later. 1311 ssr a4 # save in SAR for later.
1365 1312
1366 rsr a3, WINDOWBASE 1313 rsr a3, WINDOWBASE
1367 add a3, a3, a2 1314 add a3, a3, a4
1368 rsr a2, DEPC # restore a2
1369 wsr a3, WINDOWBASE 1315 wsr a3, WINDOWBASE
1370 rsync 1316 rsync
1371 1317
@@ -1394,6 +1340,9 @@ ENTRY(_spill_registers)
1394 l32e a4, a1, -16 1340 l32e a4, a1, -16
1395 j .Lc12c 1341 j .Lc12c
1396 1342
1343.Lnospill:
1344 ret
1345
1397.Lloop: _bbsi.l a3, 1, .Lc4 1346.Lloop: _bbsi.l a3, 1, .Lc4
1398 _bbci.l a3, 2, .Lc12 1347 _bbci.l a3, 2, .Lc12
1399 1348
@@ -1419,9 +1368,7 @@ ENTRY(_spill_registers)
1419 movi a3, 1 1368 movi a3, 1
1420 sll a3, a3 1369 sll a3, a3
1421 wsr a3, WINDOWSTART 1370 wsr a3, WINDOWSTART
1422 1371 ret
1423.Lnospill:
1424 jx a0
1425 1372
1426.Lc4: s32e a4, a9, -16 1373.Lc4: s32e a4, a9, -16
1427 s32e a5, a9, -12 1374 s32e a5, a9, -12
@@ -1830,154 +1777,6 @@ ENTRY(fast_store_prohibited)
18301: j _user_exception 17771: j _user_exception
1831 1778
1832 1779
1833#if XCHAL_EXTRA_SA_SIZE
1834
1835#warning fast_coprocessor untested
1836
1837/*
1838 * Entry condition:
1839 *
1840 * a0: trashed, original value saved on stack (PT_AREG0)
1841 * a1: a1
1842 * a2: new stack pointer, original in DEPC
1843 * a3: dispatch table
1844 * depc: a2, original value saved on stack (PT_DEPC)
1845 * excsave_1: a3
1846 *
1847 * PT_DEPC >= VALID_DOUBLE_EXCEPTION_ADDRESS: double exception, DEPC
1848 * < VALID_DOUBLE_EXCEPTION_ADDRESS: regular exception
1849 */
1850
1851ENTRY(fast_coprocessor_double)
1852 wsr a0, EXCSAVE_1
1853 movi a0, unrecoverable_exception
1854 callx0 a0
1855
1856ENTRY(fast_coprocessor)
1857
1858 /* Fatal if we are in a double exception. */
1859
1860 l32i a0, a2, PT_DEPC
1861 _bgeui a0, VALID_DOUBLE_EXCEPTION_ADDRESS, fast_coprocessor_double
1862
1863 /* Save some registers a1, a3, a4, SAR */
1864
1865 xsr a3, EXCSAVE_1
1866 s32i a3, a2, PT_AREG3
1867 rsr a3, SAR
1868 s32i a4, a2, PT_AREG4
1869 s32i a1, a2, PT_AREG1
1870 s32i a5, a1, PT_AREG5
1871 s32i a3, a2, PT_SAR
1872 mov a1, a2
1873
1874 /* Currently, the HAL macros only guarantee saving a0 and a1.
1875 * These can and will be refined in the future, but for now,
1876 * just save the remaining registers of a2...a15.
1877 */
1878 s32i a6, a1, PT_AREG6
1879 s32i a7, a1, PT_AREG7
1880 s32i a8, a1, PT_AREG8
1881 s32i a9, a1, PT_AREG9
1882 s32i a10, a1, PT_AREG10
1883 s32i a11, a1, PT_AREG11
1884 s32i a12, a1, PT_AREG12
1885 s32i a13, a1, PT_AREG13
1886 s32i a14, a1, PT_AREG14
1887 s32i a15, a1, PT_AREG15
1888
1889 /* Find coprocessor number. Subtract first CP EXCCAUSE from EXCCAUSE */
1890
1891 rsr a0, EXCCAUSE
1892 addi a3, a0, -XCHAL_EXCCAUSE_COPROCESSOR0_DISABLED
1893
1894 /* Set corresponding CPENABLE bit */
1895
1896 movi a4, 1
1897 ssl a3 # SAR: 32 - coprocessor_number
1898 rsr a5, CPENABLE
1899 sll a4, a4
1900 or a4, a5, a4
1901 wsr a4, CPENABLE
1902 rsync
1903 movi a5, coprocessor_info # list of owner and offset into cp_save
1904 addx8 a0, a4, a5 # entry for CP
1905
1906 bne a4, a5, .Lload # bit wasn't set before, cp not in use
1907
1908 /* Now compare the current task with the owner of the coprocessor.
1909 * If they are the same, there is no reason to save or restore any
1910 * coprocessor state. Having already enabled the coprocessor,
1911 * branch ahead to return.
1912 */
1913 GET_CURRENT(a5,a1)
1914 l32i a4, a0, COPROCESSOR_INFO_OWNER # a4: current owner for this CP
1915 beq a4, a5, .Ldone
1916
1917 /* Find location to dump current coprocessor state:
1918 * task_struct->task_cp_save_offset + coprocessor_offset[coprocessor]
1919 *
1920 * Note: a0 pointer to the entry in the coprocessor owner table,
1921 * a3 coprocessor number,
1922 * a4 current owner of coprocessor.
1923 */
1924 l32i a5, a0, COPROCESSOR_INFO_OFFSET
1925 addi a2, a4, THREAD_CP_SAVE
1926 add a2, a2, a5
1927
1928 /* Store current coprocessor states. (a5 still has CP number) */
1929
1930 xchal_cpi_store_funcbody
1931
1932 /* The macro might have destroyed a3 (coprocessor number), but
1933 * SAR still has 32 - coprocessor_number!
1934 */
1935 movi a3, 32
1936 rsr a4, SAR
1937 sub a3, a3, a4
1938
1939.Lload: /* A new task now owns the corpocessors. Save its TCB pointer into
1940 * the coprocessor owner table.
1941 *
1942 * Note: a0 pointer to the entry in the coprocessor owner table,
1943 * a3 coprocessor number.
1944 */
1945 GET_CURRENT(a4,a1)
1946 s32i a4, a0, 0
1947
1948 /* Find location from where to restore the current coprocessor state.*/
1949
1950 l32i a5, a0, COPROCESSOR_INFO_OFFSET
1951 addi a2, a4, THREAD_CP_SAVE
1952 add a2, a2, a4
1953
1954 xchal_cpi_load_funcbody
1955
1956 /* We must assume that the xchal_cpi_store_funcbody macro destroyed
1957 * registers a2..a15.
1958 */
1959
1960.Ldone: l32i a15, a1, PT_AREG15
1961 l32i a14, a1, PT_AREG14
1962 l32i a13, a1, PT_AREG13
1963 l32i a12, a1, PT_AREG12
1964 l32i a11, a1, PT_AREG11
1965 l32i a10, a1, PT_AREG10
1966 l32i a9, a1, PT_AREG9
1967 l32i a8, a1, PT_AREG8
1968 l32i a7, a1, PT_AREG7
1969 l32i a6, a1, PT_AREG6
1970 l32i a5, a1, PT_AREG5
1971 l32i a4, a1, PT_AREG4
1972 l32i a3, a1, PT_AREG3
1973 l32i a2, a1, PT_AREG2
1974 l32i a0, a1, PT_AREG0
1975 l32i a1, a1, PT_AREG1
1976
1977 rfe
1978
1979#endif /* XCHAL_EXTRA_SA_SIZE */
1980
1981/* 1780/*
1982 * System Calls. 1781 * System Calls.
1983 * 1782 *
@@ -2086,20 +1885,36 @@ ENTRY(_switch_to)
2086 1885
2087 entry a1, 16 1886 entry a1, 16
2088 1887
2089 mov a4, a3 # preserve a3 1888 mov a12, a2 # preserve 'prev' (a2)
1889 mov a13, a3 # and 'next' (a3)
1890
1891 l32i a4, a2, TASK_THREAD_INFO
1892 l32i a5, a3, TASK_THREAD_INFO
1893
1894 save_xtregs_user a4 a6 a8 a9 a10 a11 THREAD_XTREGS_USER
2090 1895
2091 s32i a0, a2, THREAD_RA # save return address 1896 s32i a0, a12, THREAD_RA # save return address
2092 s32i a1, a2, THREAD_SP # save stack pointer 1897 s32i a1, a12, THREAD_SP # save stack pointer
2093 1898
2094 /* Disable ints while we manipulate the stack pointer; spill regs. */ 1899 /* Disable ints while we manipulate the stack pointer. */
2095 1900
2096 movi a5, (1 << PS_EXCM_BIT) | LOCKLEVEL 1901 movi a14, (1 << PS_EXCM_BIT) | LOCKLEVEL
2097 xsr a5, PS 1902 xsr a14, PS
2098 rsr a3, EXCSAVE_1 1903 rsr a3, EXCSAVE_1
2099 rsync 1904 rsync
2100 s32i a3, a3, EXC_TABLE_FIXUP /* enter critical section */ 1905 s32i a3, a3, EXC_TABLE_FIXUP /* enter critical section */
2101 1906
2102 call0 _spill_registers 1907 /* Switch CPENABLE */
1908
1909#if (XTENSA_HAVE_COPROCESSORS || XTENSA_HAVE_IO_PORTS)
1910 l32i a3, a5, THREAD_CPENABLE
1911 xsr a3, CPENABLE
1912 s32i a3, a4, THREAD_CPENABLE
1913#endif
1914
1915 /* Flush register file. */
1916
1917 call0 _spill_registers # destroys a3, a4, and SAR
2103 1918
2104 /* Set kernel stack (and leave critical section) 1919 /* Set kernel stack (and leave critical section)
2105 * Note: It's save to set it here. The stack will not be overwritten 1920 * Note: It's save to set it here. The stack will not be overwritten
@@ -2107,19 +1922,21 @@ ENTRY(_switch_to)
2107 * we return from kernel space. 1922 * we return from kernel space.
2108 */ 1923 */
2109 1924
2110 l32i a0, a4, TASK_THREAD_INFO
2111 rsr a3, EXCSAVE_1 # exc_table 1925 rsr a3, EXCSAVE_1 # exc_table
2112 movi a1, 0 1926 movi a6, 0
2113 addi a0, a0, PT_REGS_OFFSET 1927 addi a7, a5, PT_REGS_OFFSET
2114 s32i a1, a3, EXC_TABLE_FIXUP 1928 s32i a6, a3, EXC_TABLE_FIXUP
2115 s32i a0, a3, EXC_TABLE_KSTK 1929 s32i a7, a3, EXC_TABLE_KSTK
2116 1930
2117 /* restore context of the task that 'next' addresses */ 1931 /* restore context of the task that 'next' addresses */
2118 1932
2119 l32i a0, a4, THREAD_RA /* restore return address */ 1933 l32i a0, a13, THREAD_RA # restore return address
2120 l32i a1, a4, THREAD_SP /* restore stack pointer */ 1934 l32i a1, a13, THREAD_SP # restore stack pointer
1935
1936 load_xtregs_user a5 a6 a8 a9 a10 a11 THREAD_XTREGS_USER
2121 1937
2122 wsr a5, PS 1938 wsr a14, PS
1939 mov a2, a12 # return 'prev'
2123 rsync 1940 rsync
2124 1941
2125 retw 1942 retw
diff --git a/arch/xtensa/kernel/module.c b/arch/xtensa/kernel/module.c
index ddf14dcf2ad9..3981a466c779 100644
--- a/arch/xtensa/kernel/module.c
+++ b/arch/xtensa/kernel/module.c
@@ -28,7 +28,7 @@ void *module_alloc(unsigned long size)
28{ 28{
29 if (size == 0) 29 if (size == 0)
30 return NULL; 30 return NULL;
31 return vmalloc(size); 31 return vmalloc_exec(size);
32} 32}
33 33
34void module_free(struct module *mod, void *module_region) 34void module_free(struct module *mod, void *module_region)
diff --git a/arch/xtensa/kernel/process.c b/arch/xtensa/kernel/process.c
index f53d7bd9dfb2..9185597eb6a0 100644
--- a/arch/xtensa/kernel/process.c
+++ b/arch/xtensa/kernel/process.c
@@ -52,6 +52,55 @@ void (*pm_power_off)(void) = NULL;
52EXPORT_SYMBOL(pm_power_off); 52EXPORT_SYMBOL(pm_power_off);
53 53
54 54
55#if XTENSA_HAVE_COPROCESSORS
56
57void coprocessor_release_all(struct thread_info *ti)
58{
59 unsigned long cpenable;
60 int i;
61
62 /* Make sure we don't switch tasks during this operation. */
63
64 preempt_disable();
65
66 /* Walk through all cp owners and release it for the requested one. */
67
68 cpenable = ti->cpenable;
69
70 for (i = 0; i < XCHAL_CP_MAX; i++) {
71 if (coprocessor_owner[i] == ti) {
72 coprocessor_owner[i] = 0;
73 cpenable &= ~(1 << i);
74 }
75 }
76
77 ti->cpenable = cpenable;
78 coprocessor_clear_cpenable();
79
80 preempt_enable();
81}
82
83void coprocessor_flush_all(struct thread_info *ti)
84{
85 unsigned long cpenable;
86 int i;
87
88 preempt_disable();
89
90 cpenable = ti->cpenable;
91
92 for (i = 0; i < XCHAL_CP_MAX; i++) {
93 if ((cpenable & 1) != 0 && coprocessor_owner[i] == ti)
94 coprocessor_flush(ti, i);
95 cpenable >>= 1;
96 }
97
98 preempt_enable();
99}
100
101#endif
102
103
55/* 104/*
56 * Powermanagement idle function, if any is provided by the platform. 105 * Powermanagement idle function, if any is provided by the platform.
57 */ 106 */
@@ -71,15 +120,36 @@ void cpu_idle(void)
71} 120}
72 121
73/* 122/*
74 * Free current thread data structures etc.. 123 * This is called when the thread calls exit().
75 */ 124 */
76
77void exit_thread(void) 125void exit_thread(void)
78{ 126{
127#if XTENSA_HAVE_COPROCESSORS
128 coprocessor_release_all(current_thread_info());
129#endif
79} 130}
80 131
132/*
133 * Flush thread state. This is called when a thread does an execve()
134 * Note that we flush coprocessor registers for the case execve fails.
135 */
81void flush_thread(void) 136void flush_thread(void)
82{ 137{
138#if XTENSA_HAVE_COPROCESSORS
139 struct thread_info *ti = current_thread_info();
140 coprocessor_flush_all(ti);
141 coprocessor_release_all(ti);
142#endif
143}
144
145/*
146 * This is called before the thread is copied.
147 */
148void prepare_to_copy(struct task_struct *tsk)
149{
150#if XTENSA_HAVE_COPROCESSORS
151 coprocessor_flush_all(task_thread_info(tsk));
152#endif
83} 153}
84 154
85/* 155/*
@@ -107,6 +177,7 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long usp,
107 struct task_struct * p, struct pt_regs * regs) 177 struct task_struct * p, struct pt_regs * regs)
108{ 178{
109 struct pt_regs *childregs; 179 struct pt_regs *childregs;
180 struct thread_info *ti;
110 unsigned long tos; 181 unsigned long tos;
111 int user_mode = user_mode(regs); 182 int user_mode = user_mode(regs);
112 183
@@ -128,13 +199,14 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long usp,
128 p->set_child_tid = p->clear_child_tid = NULL; 199 p->set_child_tid = p->clear_child_tid = NULL;
129 p->thread.ra = MAKE_RA_FOR_CALL((unsigned long)ret_from_fork, 0x1); 200 p->thread.ra = MAKE_RA_FOR_CALL((unsigned long)ret_from_fork, 0x1);
130 p->thread.sp = (unsigned long)childregs; 201 p->thread.sp = (unsigned long)childregs;
202
131 if (user_mode(regs)) { 203 if (user_mode(regs)) {
132 204
133 int len = childregs->wmask & ~0xf; 205 int len = childregs->wmask & ~0xf;
134 childregs->areg[1] = usp; 206 childregs->areg[1] = usp;
135 memcpy(&childregs->areg[XCHAL_NUM_AREGS - len/4], 207 memcpy(&childregs->areg[XCHAL_NUM_AREGS - len/4],
136 &regs->areg[XCHAL_NUM_AREGS - len/4], len); 208 &regs->areg[XCHAL_NUM_AREGS - len/4], len);
137 209// FIXME: we need to set THREADPTR in thread_info...
138 if (clone_flags & CLONE_SETTLS) 210 if (clone_flags & CLONE_SETTLS)
139 childregs->areg[2] = childregs->areg[6]; 211 childregs->areg[2] = childregs->areg[6];
140 212
@@ -142,6 +214,12 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long usp,
142 /* In kernel space, we start a new thread with a new stack. */ 214 /* In kernel space, we start a new thread with a new stack. */
143 childregs->wmask = 1; 215 childregs->wmask = 1;
144 } 216 }
217
218#if (XTENSA_HAVE_COPROCESSORS || XTENSA_HAVE_IO_PORTS)
219 ti = task_thread_info(p);
220 ti->cpenable = 0;
221#endif
222
145 return 0; 223 return 0;
146} 224}
147 225
@@ -179,10 +257,6 @@ unsigned long get_wchan(struct task_struct *p)
179} 257}
180 258
181/* 259/*
182 * do_copy_regs() gathers information from 'struct pt_regs' and
183 * 'current->thread.areg[]' to fill in the xtensa_gregset_t
184 * structure.
185 *
186 * xtensa_gregset_t and 'struct pt_regs' are vastly different formats 260 * xtensa_gregset_t and 'struct pt_regs' are vastly different formats
187 * of processor registers. Besides different ordering, 261 * of processor registers. Besides different ordering,
188 * xtensa_gregset_t contains non-live register information that 262 * xtensa_gregset_t contains non-live register information that
@@ -191,18 +265,19 @@ unsigned long get_wchan(struct task_struct *p)
191 * 265 *
192 */ 266 */
193 267
194void do_copy_regs (xtensa_gregset_t *elfregs, struct pt_regs *regs, 268void xtensa_elf_core_copy_regs (xtensa_gregset_t *elfregs, struct pt_regs *regs)
195 struct task_struct *tsk)
196{ 269{
197 int i, n, wb_offset; 270 unsigned long wb, ws, wm;
271 int live, last;
198 272
199 elfregs->xchal_config_id0 = XCHAL_HW_CONFIGID0; 273 wb = regs->windowbase;
200 elfregs->xchal_config_id1 = XCHAL_HW_CONFIGID1; 274 ws = regs->windowstart;
275 wm = regs->wmask;
276 ws = ((ws >> wb) | (ws << (WSBITS - wb))) & ((1 << WSBITS) - 1);
201 277
202 __asm__ __volatile__ ("rsr %0, 176\n" : "=a" (i)); 278 /* Don't leak any random bits. */
203 elfregs->cpux = i; 279
204 __asm__ __volatile__ ("rsr %0, 208\n" : "=a" (i)); 280 memset(elfregs, 0, sizeof (elfregs));
205 elfregs->cpuy = i;
206 281
207 /* Note: PS.EXCM is not set while user task is running; its 282 /* Note: PS.EXCM is not set while user task is running; its
208 * being set in regs->ps is for exception handling convenience. 283 * being set in regs->ps is for exception handling convenience.
@@ -210,204 +285,22 @@ void do_copy_regs (xtensa_gregset_t *elfregs, struct pt_regs *regs,
210 285
211 elfregs->pc = regs->pc; 286 elfregs->pc = regs->pc;
212 elfregs->ps = (regs->ps & ~(1 << PS_EXCM_BIT)); 287 elfregs->ps = (regs->ps & ~(1 << PS_EXCM_BIT));
213 elfregs->exccause = regs->exccause;
214 elfregs->excvaddr = regs->excvaddr;
215 elfregs->windowbase = regs->windowbase;
216 elfregs->windowstart = regs->windowstart;
217 elfregs->lbeg = regs->lbeg; 288 elfregs->lbeg = regs->lbeg;
218 elfregs->lend = regs->lend; 289 elfregs->lend = regs->lend;
219 elfregs->lcount = regs->lcount; 290 elfregs->lcount = regs->lcount;
220 elfregs->sar = regs->sar; 291 elfregs->sar = regs->sar;
221 elfregs->syscall = regs->syscall; 292 elfregs->windowstart = ws;
222
223 /* Copy register file.
224 * The layout looks like this:
225 *
226 * | a0 ... a15 | Z ... Z | arX ... arY |
227 * current window unused saved frames
228 */
229
230 memset (elfregs->ar, 0, sizeof(elfregs->ar));
231 293
232 wb_offset = regs->windowbase * 4; 294 live = (wm & 2) ? 4 : (wm & 4) ? 8 : (wm & 8) ? 12 : 16;
233 n = (regs->wmask&1)? 4 : (regs->wmask&2)? 8 : (regs->wmask&4)? 12 : 16; 295 last = XCHAL_NUM_AREGS - (wm >> 4) * 4;
234 296 memcpy(elfregs->a, regs->areg, live * 4);
235 for (i = 0; i < n; i++) 297 memcpy(elfregs->a + last, regs->areg + last, (wm >> 4) * 16);
236 elfregs->ar[(wb_offset + i) % XCHAL_NUM_AREGS] = regs->areg[i];
237
238 n = (regs->wmask >> 4) * 4;
239
240 for (i = XCHAL_NUM_AREGS - n; n > 0; i++, n--)
241 elfregs->ar[(wb_offset + i) % XCHAL_NUM_AREGS] = regs->areg[i];
242} 298}
243 299
244void xtensa_elf_core_copy_regs (xtensa_gregset_t *elfregs, struct pt_regs *regs) 300int dump_fpu(void)
245{ 301{
246 do_copy_regs ((xtensa_gregset_t *)elfregs, regs, current);
247}
248
249
250/* The inverse of do_copy_regs(). No error or sanity checking. */
251
252void do_restore_regs (xtensa_gregset_t *elfregs, struct pt_regs *regs,
253 struct task_struct *tsk)
254{
255 int i, n, wb_offset;
256
257 /* Note: PS.EXCM is not set while user task is running; it
258 * needs to be set in regs->ps is for exception handling convenience.
259 */
260
261 regs->pc = elfregs->pc;
262 regs->ps = (elfregs->ps | (1 << PS_EXCM_BIT));
263 regs->exccause = elfregs->exccause;
264 regs->excvaddr = elfregs->excvaddr;
265 regs->windowbase = elfregs->windowbase;
266 regs->windowstart = elfregs->windowstart;
267 regs->lbeg = elfregs->lbeg;
268 regs->lend = elfregs->lend;
269 regs->lcount = elfregs->lcount;
270 regs->sar = elfregs->sar;
271 regs->syscall = elfregs->syscall;
272
273 /* Clear everything. */
274
275 memset (regs->areg, 0, sizeof(regs->areg));
276
277 /* Copy regs from live window frame. */
278
279 wb_offset = regs->windowbase * 4;
280 n = (regs->wmask&1)? 4 : (regs->wmask&2)? 8 : (regs->wmask&4)? 12 : 16;
281
282 for (i = 0; i < n; i++)
283 regs->areg[(wb_offset+i) % XCHAL_NUM_AREGS] = elfregs->ar[i];
284
285 n = (regs->wmask >> 4) * 4;
286
287 for (i = XCHAL_NUM_AREGS - n; n > 0; i++, n--)
288 regs->areg[(wb_offset+i) % XCHAL_NUM_AREGS] = elfregs->ar[i];
289}
290
291/*
292 * do_save_fpregs() gathers information from 'struct pt_regs' and
293 * 'current->thread' to fill in the elf_fpregset_t structure.
294 *
295 * Core files and ptrace use elf_fpregset_t.
296 */
297
298void do_save_fpregs (elf_fpregset_t *fpregs, struct pt_regs *regs,
299 struct task_struct *tsk)
300{
301#if XCHAL_HAVE_CP
302
303 extern unsigned char _xtensa_reginfo_tables[];
304 extern unsigned _xtensa_reginfo_table_size;
305 int i;
306 unsigned long flags;
307
308 /* Before dumping coprocessor state from memory,
309 * ensure any live coprocessor contents for this
310 * task are first saved to memory:
311 */
312 local_irq_save(flags);
313
314 for (i = 0; i < XCHAL_CP_MAX; i++) {
315 if (tsk == coprocessor_info[i].owner) {
316 enable_coprocessor(i);
317 save_coprocessor_registers(
318 tsk->thread.cp_save+coprocessor_info[i].offset,i);
319 disable_coprocessor(i);
320 }
321 }
322
323 local_irq_restore(flags);
324
325 /* Now dump coprocessor & extra state: */
326 memcpy((unsigned char*)fpregs,
327 _xtensa_reginfo_tables, _xtensa_reginfo_table_size);
328 memcpy((unsigned char*)fpregs + _xtensa_reginfo_table_size,
329 tsk->thread.cp_save, XTENSA_CP_EXTRA_SIZE);
330#endif
331}
332
333/*
334 * The inverse of do_save_fpregs().
335 * Copies coprocessor and extra state from fpregs into regs and tsk->thread.
336 * Returns 0 on success, non-zero if layout doesn't match.
337 */
338
339int do_restore_fpregs (elf_fpregset_t *fpregs, struct pt_regs *regs,
340 struct task_struct *tsk)
341{
342#if XCHAL_HAVE_CP
343
344 extern unsigned char _xtensa_reginfo_tables[];
345 extern unsigned _xtensa_reginfo_table_size;
346 int i;
347 unsigned long flags;
348
349 /* Make sure save area layouts match.
350 * FIXME: in the future we could allow restoring from
351 * a different layout of the same registers, by comparing
352 * fpregs' table with _xtensa_reginfo_tables and matching
353 * entries and copying registers one at a time.
354 * Not too sure yet whether that's very useful.
355 */
356
357 if( memcmp((unsigned char*)fpregs,
358 _xtensa_reginfo_tables, _xtensa_reginfo_table_size) ) {
359 return -1;
360 }
361
362 /* Before restoring coprocessor state from memory,
363 * ensure any live coprocessor contents for this
364 * task are first invalidated.
365 */
366
367 local_irq_save(flags);
368
369 for (i = 0; i < XCHAL_CP_MAX; i++) {
370 if (tsk == coprocessor_info[i].owner) {
371 enable_coprocessor(i);
372 save_coprocessor_registers(
373 tsk->thread.cp_save+coprocessor_info[i].offset,i);
374 coprocessor_info[i].owner = 0;
375 disable_coprocessor(i);
376 }
377 }
378
379 local_irq_restore(flags);
380
381 /* Now restore coprocessor & extra state: */
382
383 memcpy(tsk->thread.cp_save,
384 (unsigned char*)fpregs + _xtensa_reginfo_table_size,
385 XTENSA_CP_EXTRA_SIZE);
386#endif
387 return 0; 302 return 0;
388} 303}
389/*
390 * Fill in the CP structure for a core dump for a particular task.
391 */
392
393int
394dump_task_fpu(struct pt_regs *regs, struct task_struct *task, elf_fpregset_t *r)
395{
396 return 0; /* no coprocessors active on this processor */
397}
398
399/*
400 * Fill in the CP structure for a core dump.
401 * This includes any FPU coprocessor.
402 * Here, we dump all coprocessors, and other ("extra") custom state.
403 *
404 * This function is called by elf_core_dump() in fs/binfmt_elf.c
405 * (in which case 'regs' comes from calls to do_coredump, see signals.c).
406 */
407int dump_fpu(struct pt_regs *regs, elf_fpregset_t *r)
408{
409 return dump_task_fpu(regs, current, r);
410}
411 304
412asmlinkage 305asmlinkage
413long xtensa_clone(unsigned long clone_flags, unsigned long newsp, 306long xtensa_clone(unsigned long clone_flags, unsigned long newsp,
@@ -421,8 +314,8 @@ long xtensa_clone(unsigned long clone_flags, unsigned long newsp,
421} 314}
422 315
423/* 316/*
424 * * xtensa_execve() executes a new program. 317 * xtensa_execve() executes a new program.
425 * */ 318 */
426 319
427asmlinkage 320asmlinkage
428long xtensa_execve(char __user *name, char __user * __user *argv, 321long xtensa_execve(char __user *name, char __user * __user *argv,
@@ -437,7 +330,6 @@ long xtensa_execve(char __user *name, char __user * __user *argv,
437 error = PTR_ERR(filename); 330 error = PTR_ERR(filename);
438 if (IS_ERR(filename)) 331 if (IS_ERR(filename))
439 goto out; 332 goto out;
440 // FIXME: release coprocessor??
441 error = do_execve(filename, argv, envp, regs); 333 error = do_execve(filename, argv, envp, regs);
442 if (error == 0) { 334 if (error == 0) {
443 task_lock(current); 335 task_lock(current);
diff --git a/arch/xtensa/kernel/ptrace.c b/arch/xtensa/kernel/ptrace.c
index 5533c7850d53..9486882ef0af 100644
--- a/arch/xtensa/kernel/ptrace.c
+++ b/arch/xtensa/kernel/ptrace.c
@@ -4,7 +4,7 @@
4 * License. See the file "COPYING" in the main directory of this archive 4 * License. See the file "COPYING" in the main directory of this archive
5 * for more details. 5 * for more details.
6 * 6 *
7 * Copyright (C) 2001 - 2005 Tensilica Inc. 7 * Copyright (C) 2001 - 2007 Tensilica Inc.
8 * 8 *
9 * Joe Taylor <joe@tensilica.com, joetylr@yahoo.com> 9 * Joe Taylor <joe@tensilica.com, joetylr@yahoo.com>
10 * Chris Zankel <chris@zankel.net> 10 * Chris Zankel <chris@zankel.net>
@@ -28,14 +28,10 @@
28#include <asm/uaccess.h> 28#include <asm/uaccess.h>
29#include <asm/ptrace.h> 29#include <asm/ptrace.h>
30#include <asm/elf.h> 30#include <asm/elf.h>
31 31#include <asm/coprocessor.h>
32#define TEST_KERNEL // verify kernel operations FIXME: remove
33
34 32
35/* 33/*
36 * Called by kernel/ptrace.c when detaching.. 34 * Called by kernel/ptrace.c when detaching to disable single stepping.
37 *
38 * Make sure single step bits etc are not set.
39 */ 35 */
40 36
41void ptrace_disable(struct task_struct *child) 37void ptrace_disable(struct task_struct *child)
@@ -43,136 +39,237 @@ void ptrace_disable(struct task_struct *child)
43 /* Nothing to do.. */ 39 /* Nothing to do.. */
44} 40}
45 41
46long arch_ptrace(struct task_struct *child, long request, long addr, long data) 42int ptrace_getregs(struct task_struct *child, void __user *uregs)
47{ 43{
48 int ret = -EPERM; 44 struct pt_regs *regs = task_pt_regs(child);
45 xtensa_gregset_t __user *gregset = uregs;
46 unsigned long wm = regs->wmask;
47 unsigned long wb = regs->windowbase;
48 int live, i;
49
50 if (!access_ok(VERIFY_WRITE, uregs, sizeof(xtensa_gregset_t)))
51 return -EIO;
52
53 __put_user(regs->pc, &gregset->pc);
54 __put_user(regs->ps & ~(1 << PS_EXCM_BIT), &gregset->ps);
55 __put_user(regs->lbeg, &gregset->lbeg);
56 __put_user(regs->lend, &gregset->lend);
57 __put_user(regs->lcount, &gregset->lcount);
58 __put_user(regs->windowstart, &gregset->windowstart);
59 __put_user(regs->windowbase, &gregset->windowbase);
60
61 live = (wm & 2) ? 4 : (wm & 4) ? 8 : (wm & 8) ? 12 : 16;
62
63 for (i = 0; i < live; i++)
64 __put_user(regs->areg[i],gregset->a+((wb*4+i)%XCHAL_NUM_AREGS));
65 for (i = XCHAL_NUM_AREGS - (wm >> 4) * 4; i < XCHAL_NUM_AREGS; i++)
66 __put_user(regs->areg[i],gregset->a+((wb*4+i)%XCHAL_NUM_AREGS));
67
68 return 0;
69}
49 70
50 switch (request) { 71int ptrace_setregs(struct task_struct *child, void __user *uregs)
51 case PTRACE_PEEKTEXT: /* read word at location addr. */ 72{
52 case PTRACE_PEEKDATA: 73 struct pt_regs *regs = task_pt_regs(child);
53 ret = generic_ptrace_peekdata(child, addr, data); 74 xtensa_gregset_t *gregset = uregs;
54 goto out; 75 const unsigned long ps_mask = PS_CALLINC_MASK | PS_OWB_MASK;
76 unsigned long ps;
77 unsigned long wb;
55 78
56 /* Read the word at location addr in the USER area. */ 79 if (!access_ok(VERIFY_WRITE, uregs, sizeof(xtensa_gregset_t)))
80 return -EIO;
57 81
58 case PTRACE_PEEKUSR: 82 __get_user(regs->pc, &gregset->pc);
59 { 83 __get_user(ps, &gregset->ps);
60 struct pt_regs *regs; 84 __get_user(regs->lbeg, &gregset->lbeg);
61 unsigned long tmp; 85 __get_user(regs->lend, &gregset->lend);
86 __get_user(regs->lcount, &gregset->lcount);
87 __get_user(regs->windowstart, &gregset->windowstart);
88 __get_user(wb, &gregset->windowbase);
89
90 regs->ps = (regs->ps & ~ps_mask) | (ps & ps_mask) | (1 << PS_EXCM_BIT);
91
92 if (wb >= XCHAL_NUM_AREGS / 4)
93 return -EFAULT;
94
95 regs->windowbase = wb;
96
97 if (wb != 0 && __copy_from_user(regs->areg + XCHAL_NUM_AREGS - wb * 4,
98 gregset->a, wb * 16))
99 return -EFAULT;
100
101 if (__copy_from_user(regs->areg, gregset->a + wb*4, (WSBITS-wb) * 16))
102 return -EFAULT;
103
104 return 0;
105}
106
107
108int ptrace_getxregs(struct task_struct *child, void __user *uregs)
109{
110 struct pt_regs *regs = task_pt_regs(child);
111 struct thread_info *ti = task_thread_info(child);
112 elf_xtregs_t __user *xtregs = uregs;
113 int ret = 0;
114
115 if (!access_ok(VERIFY_WRITE, uregs, sizeof(elf_xtregs_t)))
116 return -EIO;
117
118#if XTENSA_HAVE_COPROCESSORS
119 /* Flush all coprocessor registers to memory. */
120 coprocessor_flush_all(ti);
121 ret |= __copy_to_user(&xtregs->cp0, &ti->xtregs_cp,
122 sizeof(xtregs_coprocessor_t));
123#endif
124 ret |= __copy_to_user(&xtregs->opt, &regs->xtregs_opt,
125 sizeof(xtregs->opt));
126 ret |= __copy_to_user(&xtregs->user,&ti->xtregs_user,
127 sizeof(xtregs->user));
128
129 return ret ? -EFAULT : 0;
130}
131
132int ptrace_setxregs(struct task_struct *child, void __user *uregs)
133{
134 struct thread_info *ti = task_thread_info(child);
135 struct pt_regs *regs = task_pt_regs(child);
136 elf_xtregs_t *xtregs = uregs;
137 int ret = 0;
138
139#if XTENSA_HAVE_COPROCESSORS
140 /* Flush all coprocessors before we overwrite them. */
141 coprocessor_flush_all(ti);
142 coprocessor_release_all(ti);
143
144 ret |= __copy_from_user(&ti->xtregs_cp, &xtregs->cp0,
145 sizeof(xtregs_coprocessor_t));
146#endif
147 ret |= __copy_from_user(&regs->xtregs_opt, &xtregs->opt,
148 sizeof(xtregs->opt));
149 ret |= __copy_from_user(&ti->xtregs_user, &xtregs->user,
150 sizeof(xtregs->user));
151
152 return ret ? -EFAULT : 0;
153}
154
155int ptrace_peekusr(struct task_struct *child, long regno, long __user *ret)
156{
157 struct pt_regs *regs;
158 unsigned long tmp;
62 159
63 regs = task_pt_regs(child); 160 regs = task_pt_regs(child);
64 tmp = 0; /* Default return value. */ 161 tmp = 0; /* Default return value. */
65 162
66 switch(addr) { 163 switch(regno) {
67 164
68 case REG_AR_BASE ... REG_AR_BASE + XCHAL_NUM_AREGS - 1: 165 case REG_AR_BASE ... REG_AR_BASE + XCHAL_NUM_AREGS - 1:
69 { 166 tmp = regs->areg[regno - REG_AR_BASE];
70 int ar = addr - REG_AR_BASE - regs->windowbase * 4;
71 ar &= (XCHAL_NUM_AREGS - 1);
72 if (ar < 16 && ar + (regs->wmask >> 4) * 4 >= 0)
73 tmp = regs->areg[ar];
74 else
75 ret = -EIO;
76 break; 167 break;
77 } 168
78 case REG_A_BASE ... REG_A_BASE + 15: 169 case REG_A_BASE ... REG_A_BASE + 15:
79 tmp = regs->areg[addr - REG_A_BASE]; 170 tmp = regs->areg[regno - REG_A_BASE];
80 break; 171 break;
172
81 case REG_PC: 173 case REG_PC:
82 tmp = regs->pc; 174 tmp = regs->pc;
83 break; 175 break;
176
84 case REG_PS: 177 case REG_PS:
85 /* Note: PS.EXCM is not set while user task is running; 178 /* Note: PS.EXCM is not set while user task is running;
86 * its being set in regs is for exception handling 179 * its being set in regs is for exception handling
87 * convenience. */ 180 * convenience. */
88 tmp = (regs->ps & ~(1 << PS_EXCM_BIT)); 181 tmp = (regs->ps & ~(1 << PS_EXCM_BIT));
89 break; 182 break;
183
90 case REG_WB: 184 case REG_WB:
91 tmp = regs->windowbase; 185 break; /* tmp = 0 */
92 break; 186
93 case REG_WS: 187 case REG_WS:
94 tmp = regs->windowstart; 188 {
189 unsigned long wb = regs->windowbase;
190 unsigned long ws = regs->windowstart;
191 tmp = ((ws>>wb) | (ws<<(WSBITS-wb))) & ((1<<WSBITS)-1);
95 break; 192 break;
193 }
96 case REG_LBEG: 194 case REG_LBEG:
97 tmp = regs->lbeg; 195 tmp = regs->lbeg;
98 break; 196 break;
197
99 case REG_LEND: 198 case REG_LEND:
100 tmp = regs->lend; 199 tmp = regs->lend;
101 break; 200 break;
201
102 case REG_LCOUNT: 202 case REG_LCOUNT:
103 tmp = regs->lcount; 203 tmp = regs->lcount;
104 break; 204 break;
205
105 case REG_SAR: 206 case REG_SAR:
106 tmp = regs->sar; 207 tmp = regs->sar;
107 break; 208 break;
108 case REG_DEPC: 209
109 tmp = regs->depc;
110 break;
111 case REG_EXCCAUSE:
112 tmp = regs->exccause;
113 break;
114 case REG_EXCVADDR:
115 tmp = regs->excvaddr;
116 break;
117 case SYSCALL_NR: 210 case SYSCALL_NR:
118 tmp = regs->syscall; 211 tmp = regs->syscall;
119 break; 212 break;
120 default:
121 tmp = 0;
122 ret = -EIO;
123 goto out;
124 }
125 ret = put_user(tmp, (unsigned long *) data);
126 goto out;
127 }
128 213
129 case PTRACE_POKETEXT: /* write the word at location addr. */ 214 default:
130 case PTRACE_POKEDATA: 215 return -EIO;
131 ret = generic_ptrace_pokedata(child, addr, data); 216 }
132 goto out; 217 return put_user(tmp, ret);
218}
133 219
134 case PTRACE_POKEUSR: 220int ptrace_pokeusr(struct task_struct *child, long regno, long val)
135 { 221{
136 struct pt_regs *regs; 222 struct pt_regs *regs;
137 regs = task_pt_regs(child); 223 regs = task_pt_regs(child);
138 224
139 switch (addr) { 225 switch (regno) {
140 case REG_AR_BASE ... REG_AR_BASE + XCHAL_NUM_AREGS - 1: 226 case REG_AR_BASE ... REG_AR_BASE + XCHAL_NUM_AREGS - 1:
141 { 227 regs->areg[regno - REG_AR_BASE] = val;
142 int ar = addr - REG_AR_BASE - regs->windowbase * 4;
143 if (ar < 16 && ar + (regs->wmask >> 4) * 4 >= 0)
144 regs->areg[ar & (XCHAL_NUM_AREGS - 1)] = data;
145 else
146 ret = -EIO;
147 break; 228 break;
148 } 229
149 case REG_A_BASE ... REG_A_BASE + 15: 230 case REG_A_BASE ... REG_A_BASE + 15:
150 regs->areg[addr - REG_A_BASE] = data; 231 regs->areg[regno - REG_A_BASE] = val;
151 break; 232 break;
233
152 case REG_PC: 234 case REG_PC:
153 regs->pc = data; 235 regs->pc = val;
154 break; 236 break;
237
155 case SYSCALL_NR: 238 case SYSCALL_NR:
156 regs->syscall = data; 239 regs->syscall = val;
157 break;
158#ifdef TEST_KERNEL
159 case REG_WB:
160 regs->windowbase = data;
161 break;
162 case REG_WS:
163 regs->windowstart = data;
164 break; 240 break;
165#endif
166 241
167 default: 242 default:
168 /* The rest are not allowed. */ 243 return -EIO;
169 ret = -EIO; 244 }
170 break; 245 return 0;
171 } 246}
247
248long arch_ptrace(struct task_struct *child, long request, long addr, long data)
249{
250 int ret = -EPERM;
251
252 switch (request) {
253 case PTRACE_PEEKTEXT: /* read word at location addr. */
254 case PTRACE_PEEKDATA:
255 ret = generic_ptrace_peekdata(child, addr, data);
256 break;
257
258 case PTRACE_PEEKUSR: /* read register specified by addr. */
259 ret = ptrace_peekusr(child, addr, (void __user *) data);
260 break;
261
262 case PTRACE_POKETEXT: /* write the word at location addr. */
263 case PTRACE_POKEDATA:
264 ret = generic_ptrace_pokedata(child, addr, data);
265 break;
266
267 case PTRACE_POKEUSR: /* write register specified by addr. */
268 ret = ptrace_pokeusr(child, addr, data);
172 break; 269 break;
173 }
174 270
175 /* continue and stop at next (return from) syscall */ 271 /* continue and stop at next (return from) syscall */
272
176 case PTRACE_SYSCALL: 273 case PTRACE_SYSCALL:
177 case PTRACE_CONT: /* restart after signal. */ 274 case PTRACE_CONT: /* restart after signal. */
178 { 275 {
@@ -217,98 +314,26 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
217 break; 314 break;
218 315
219 case PTRACE_GETREGS: 316 case PTRACE_GETREGS:
220 { 317 ret = ptrace_getregs(child, (void __user *) data);
221 /* 'data' points to user memory in which to write.
222 * Mainly due to the non-live register values, we
223 * reformat the register values into something more
224 * standard. For convenience, we use the handy
225 * elf_gregset_t format. */
226
227 xtensa_gregset_t format;
228 struct pt_regs *regs = task_pt_regs(child);
229
230 do_copy_regs (&format, regs, child);
231
232 /* Now, copy to user space nice and easy... */
233 ret = 0;
234 if (copy_to_user((void *)data, &format, sizeof(elf_gregset_t)))
235 ret = -EFAULT;
236 break; 318 break;
237 }
238 319
239 case PTRACE_SETREGS: 320 case PTRACE_SETREGS:
240 { 321 ret = ptrace_setregs(child, (void __user *) data);
241 /* 'data' points to user memory that contains the new
242 * values in the elf_gregset_t format. */
243
244 xtensa_gregset_t format;
245 struct pt_regs *regs = task_pt_regs(child);
246
247 if (copy_from_user(&format,(void *)data,sizeof(elf_gregset_t))){
248 ret = -EFAULT;
249 break;
250 }
251
252 /* FIXME: Perhaps we want some sanity checks on
253 * these user-space values? See ARM version. Are
254 * debuggers a security concern? */
255
256 do_restore_regs (&format, regs, child);
257
258 ret = 0;
259 break;
260 }
261
262 case PTRACE_GETFPREGS:
263 {
264 /* 'data' points to user memory in which to write.
265 * For convenience, we use the handy
266 * elf_fpregset_t format. */
267
268 elf_fpregset_t fpregs;
269 struct pt_regs *regs = task_pt_regs(child);
270
271 do_save_fpregs (&fpregs, regs, child);
272
273 /* Now, copy to user space nice and easy... */
274 ret = 0;
275 if (copy_to_user((void *)data, &fpregs, sizeof(elf_fpregset_t)))
276 ret = -EFAULT;
277
278 break; 322 break;
279 }
280
281 case PTRACE_SETFPREGS:
282 {
283 /* 'data' points to user memory that contains the new
284 * values in the elf_fpregset_t format.
285 */
286 elf_fpregset_t fpregs;
287 struct pt_regs *regs = task_pt_regs(child);
288 323
289 ret = 0; 324 case PTRACE_GETXTREGS:
290 if (copy_from_user(&fpregs, (void *)data, sizeof(elf_fpregset_t))) { 325 ret = ptrace_getxregs(child, (void __user *) data);
291 ret = -EFAULT;
292 break;
293 }
294
295 if (do_restore_fpregs (&fpregs, regs, child))
296 ret = -EIO;
297 break; 326 break;
298 }
299 327
300 case PTRACE_GETFPREGSIZE: 328 case PTRACE_SETXTREGS:
301 /* 'data' points to 'unsigned long' set to the size 329 ret = ptrace_setxregs(child, (void __user *) data);
302 * of elf_fpregset_t
303 */
304 ret = put_user(sizeof(elf_fpregset_t), (unsigned long *) data);
305 break; 330 break;
306 331
307 default: 332 default:
308 ret = ptrace_request(child, request, addr, data); 333 ret = ptrace_request(child, request, addr, data);
309 goto out; 334 break;
310 } 335 }
311 out: 336
312 return ret; 337 return ret;
313} 338}
314 339
diff --git a/arch/xtensa/kernel/setup.c b/arch/xtensa/kernel/setup.c
index b80f2cb1b4fb..5e6d75c9f92b 100644
--- a/arch/xtensa/kernel/setup.c
+++ b/arch/xtensa/kernel/setup.c
@@ -60,11 +60,6 @@ struct ide_ops *ide_ops;
60extern struct rtc_ops no_rtc_ops; 60extern struct rtc_ops no_rtc_ops;
61struct rtc_ops *rtc_ops; 61struct rtc_ops *rtc_ops;
62 62
63#ifdef CONFIG_PC_KEYB
64extern struct kbd_ops no_kbd_ops;
65struct kbd_ops *kbd_ops;
66#endif
67
68#ifdef CONFIG_BLK_DEV_INITRD 63#ifdef CONFIG_BLK_DEV_INITRD
69extern void *initrd_start; 64extern void *initrd_start;
70extern void *initrd_end; 65extern void *initrd_end;
diff --git a/arch/xtensa/kernel/signal.c b/arch/xtensa/kernel/signal.c
index 033aae0336d2..f2220b5bdce6 100644
--- a/arch/xtensa/kernel/signal.c
+++ b/arch/xtensa/kernel/signal.c
@@ -35,13 +35,17 @@ asmlinkage int do_signal(struct pt_regs *regs, sigset_t *oldset);
35 35
36extern struct task_struct *coproc_owners[]; 36extern struct task_struct *coproc_owners[];
37 37
38extern void release_all_cp (struct task_struct *);
39
40struct rt_sigframe 38struct rt_sigframe
41{ 39{
42 struct siginfo info; 40 struct siginfo info;
43 struct ucontext uc; 41 struct ucontext uc;
44 cp_state_t cpstate; 42 struct {
43 xtregs_opt_t opt;
44 xtregs_user_t user;
45#if XTENSA_HAVE_COPROCESSORS
46 xtregs_coprocessor_t cp;
47#endif
48 } xtregs;
45 unsigned char retcode[6]; 49 unsigned char retcode[6];
46 unsigned int window[4]; 50 unsigned int window[4];
47}; 51};
@@ -49,8 +53,6 @@ struct rt_sigframe
49/* 53/*
50 * Flush register windows stored in pt_regs to stack. 54 * Flush register windows stored in pt_regs to stack.
51 * Returns 1 for errors. 55 * Returns 1 for errors.
52 *
53 * Note that windowbase, windowstart, and wmask are not updated!
54 */ 56 */
55 57
56int 58int
@@ -116,6 +118,9 @@ flush_window_regs_user(struct pt_regs *regs)
116 base += inc; 118 base += inc;
117 } 119 }
118 120
121 regs->wmask = 1;
122 regs->windowstart = 1 << wb;
123
119 return 0; 124 return 0;
120 125
121errout: 126errout:
@@ -131,9 +136,10 @@ errout:
131 */ 136 */
132 137
133static int 138static int
134setup_sigcontext(struct sigcontext __user *sc, cp_state_t *cpstate, 139setup_sigcontext(struct rt_sigframe __user *frame, struct pt_regs *regs)
135 struct pt_regs *regs, unsigned long mask)
136{ 140{
141 struct sigcontext __user *sc = &frame->uc.uc_mcontext;
142 struct thread_info *ti = current_thread_info();
137 int err = 0; 143 int err = 0;
138 144
139#define COPY(x) err |= __put_user(regs->x, &sc->sc_##x) 145#define COPY(x) err |= __put_user(regs->x, &sc->sc_##x)
@@ -147,23 +153,32 @@ setup_sigcontext(struct sigcontext __user *sc, cp_state_t *cpstate,
147 153
148 err |= flush_window_regs_user(regs); 154 err |= flush_window_regs_user(regs);
149 err |= __copy_to_user (sc->sc_a, regs->areg, 16 * 4); 155 err |= __copy_to_user (sc->sc_a, regs->areg, 16 * 4);
156 err |= __put_user(0, &sc->sc_xtregs);
150 157
151 // err |= __copy_to_user (sc->sc_a, regs->areg, XCHAL_NUM_AREGS * 4) 158 if (err)
159 return err;
152 160
153#if XCHAL_HAVE_CP 161#if XTENSA_HAVE_COPROCESSORS
154# error Coprocessors unsupported 162 coprocessor_flush_all(ti);
155 err |= save_cpextra(cpstate); 163 coprocessor_release_all(ti);
156 err |= __put_user(err ? NULL : cpstate, &sc->sc_cpstate); 164 err |= __copy_to_user(&frame->xtregs.cp, &ti->xtregs_cp,
165 sizeof (frame->xtregs.cp));
157#endif 166#endif
158 /* non-iBCS2 extensions.. */ 167 err |= __copy_to_user(&frame->xtregs.opt, &regs->xtregs_opt,
159 err |= __put_user(mask, &sc->oldmask); 168 sizeof (xtregs_opt_t));
169 err |= __copy_to_user(&frame->xtregs.user, &ti->xtregs_user,
170 sizeof (xtregs_user_t));
171
172 err |= __put_user(err ? NULL : &frame->xtregs, &sc->sc_xtregs);
160 173
161 return err; 174 return err;
162} 175}
163 176
164static int 177static int
165restore_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc) 178restore_sigcontext(struct pt_regs *regs, struct rt_sigframe __user *frame)
166{ 179{
180 struct sigcontext __user *sc = &frame->uc.uc_mcontext;
181 struct thread_info *ti = current_thread_info();
167 unsigned int err = 0; 182 unsigned int err = 0;
168 unsigned long ps; 183 unsigned long ps;
169 184
@@ -181,6 +196,8 @@ restore_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc)
181 regs->windowbase = 0; 196 regs->windowbase = 0;
182 regs->windowstart = 1; 197 regs->windowstart = 1;
183 198
199 regs->syscall = -1; /* disable syscall checks */
200
184 /* For PS, restore only PS.CALLINC. 201 /* For PS, restore only PS.CALLINC.
185 * Assume that all other bits are either the same as for the signal 202 * Assume that all other bits are either the same as for the signal
186 * handler, or the user mode value doesn't matter (e.g. PS.OWB). 203 * handler, or the user mode value doesn't matter (e.g. PS.OWB).
@@ -196,8 +213,9 @@ restore_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc)
196 213
197 err |= __copy_from_user(regs->areg, sc->sc_a, 16 * 4); 214 err |= __copy_from_user(regs->areg, sc->sc_a, 16 * 4);
198 215
199#if XCHAL_HAVE_CP 216 if (err)
200# error Coprocessors unsupported 217 return err;
218
201 /* The signal handler may have used coprocessors in which 219 /* The signal handler may have used coprocessors in which
202 * case they are still enabled. We disable them to force a 220 * case they are still enabled. We disable them to force a
203 * reloading of the original task's CP state by the lazy 221 * reloading of the original task's CP state by the lazy
@@ -205,20 +223,20 @@ restore_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc)
205 * Also, we essentially discard any coprocessor state that the 223 * Also, we essentially discard any coprocessor state that the
206 * signal handler created. */ 224 * signal handler created. */
207 225
208 if (!err) { 226#if XTENSA_HAVE_COPROCESSORS
209 struct task_struct *tsk = current; 227 coprocessor_release_all(ti);
210 release_all_cp(tsk); 228 err |= __copy_from_user(&ti->xtregs_cp, &frame->xtregs.cp,
211 err |= __copy_from_user(tsk->thread.cpextra, sc->sc_cpstate, 229 sizeof (frame->xtregs.cp));
212 XTENSA_CP_EXTRA_SIZE);
213 }
214#endif 230#endif
231 err |= __copy_from_user(&ti->xtregs_user, &frame->xtregs.user,
232 sizeof (xtregs_user_t));
233 err |= __copy_from_user(&regs->xtregs_opt, &frame->xtregs.opt,
234 sizeof (xtregs_opt_t));
215 235
216 regs->syscall = -1; /* disable syscall checks */
217 return err; 236 return err;
218} 237}
219 238
220 239
221
222/* 240/*
223 * Do a signal return; undo the signal stack. 241 * Do a signal return; undo the signal stack.
224 */ 242 */
@@ -247,7 +265,7 @@ asmlinkage long xtensa_rt_sigreturn(long a0, long a1, long a2, long a3,
247 recalc_sigpending(); 265 recalc_sigpending();
248 spin_unlock_irq(&current->sighand->siglock); 266 spin_unlock_irq(&current->sighand->siglock);
249 267
250 if (restore_sigcontext(regs, &frame->uc.uc_mcontext)) 268 if (restore_sigcontext(regs, frame))
251 goto badframe; 269 goto badframe;
252 270
253 ret = regs->areg[2]; 271 ret = regs->areg[2];
@@ -360,18 +378,22 @@ static void setup_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
360 err |= __put_user(sas_ss_flags(regs->areg[1]), 378 err |= __put_user(sas_ss_flags(regs->areg[1]),
361 &frame->uc.uc_stack.ss_flags); 379 &frame->uc.uc_stack.ss_flags);
362 err |= __put_user(current->sas_ss_size, &frame->uc.uc_stack.ss_size); 380 err |= __put_user(current->sas_ss_size, &frame->uc.uc_stack.ss_size);
363 err |= setup_sigcontext(&frame->uc.uc_mcontext, &frame->cpstate, 381 err |= setup_sigcontext(frame, regs);
364 regs, set->sig[0]);
365 err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set)); 382 err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set));
366 383
367 /* Create sys_rt_sigreturn syscall in stack frame */ 384 if (ka->sa.sa_flags & SA_RESTORER) {
385 ra = (unsigned long)ka->sa.sa_restorer;
386 } else {
368 387
369 err |= gen_return_code(frame->retcode); 388 /* Create sys_rt_sigreturn syscall in stack frame */
370 389
371 if (err) { 390 err |= gen_return_code(frame->retcode);
372 goto give_sigsegv; 391
392 if (err) {
393 goto give_sigsegv;
394 }
395 ra = (unsigned long) frame->retcode;
373 } 396 }
374
375 397
376 /* 398 /*
377 * Create signal handler execution context. 399 * Create signal handler execution context.
@@ -385,7 +407,6 @@ static void setup_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
385 /* Set up a stack frame for a call4 407 /* Set up a stack frame for a call4
386 * Note: PS.CALLINC is set to one by start_thread 408 * Note: PS.CALLINC is set to one by start_thread
387 */ 409 */
388 ra = (unsigned long) frame->retcode;
389 regs->areg[4] = (((unsigned long) ra) & 0x3fffffff) | 0x40000000; 410 regs->areg[4] = (((unsigned long) ra) & 0x3fffffff) | 0x40000000;
390 regs->areg[6] = (unsigned long) signal; 411 regs->areg[6] = (unsigned long) signal;
391 regs->areg[7] = (unsigned long) &frame->info; 412 regs->areg[7] = (unsigned long) &frame->info;
diff --git a/arch/xtensa/kernel/traps.c b/arch/xtensa/kernel/traps.c
index 397bcd6ad08d..c7a021d9f696 100644
--- a/arch/xtensa/kernel/traps.c
+++ b/arch/xtensa/kernel/traps.c
@@ -118,28 +118,28 @@ static dispatch_init_table_t __initdata dispatch_init_table[] = {
118{ EXCCAUSE_STORE_CACHE_ATTRIBUTE, 0, do_page_fault }, 118{ EXCCAUSE_STORE_CACHE_ATTRIBUTE, 0, do_page_fault },
119{ EXCCAUSE_LOAD_CACHE_ATTRIBUTE, 0, do_page_fault }, 119{ EXCCAUSE_LOAD_CACHE_ATTRIBUTE, 0, do_page_fault },
120/* XCCHAL_EXCCAUSE_FLOATING_POINT unhandled */ 120/* XCCHAL_EXCCAUSE_FLOATING_POINT unhandled */
121#if (XCHAL_CP_MASK & 1) 121#if XTENSA_HAVE_COPROCESSOR(0)
122COPROCESSOR(0), 122COPROCESSOR(0),
123#endif 123#endif
124#if (XCHAL_CP_MASK & 2) 124#if XTENSA_HAVE_COPROCESSOR(1)
125COPROCESSOR(1), 125COPROCESSOR(1),
126#endif 126#endif
127#if (XCHAL_CP_MASK & 4) 127#if XTENSA_HAVE_COPROCESSOR(2)
128COPROCESSOR(2), 128COPROCESSOR(2),
129#endif 129#endif
130#if (XCHAL_CP_MASK & 8) 130#if XTENSA_HAVE_COPROCESSOR(3)
131COPROCESSOR(3), 131COPROCESSOR(3),
132#endif 132#endif
133#if (XCHAL_CP_MASK & 16) 133#if XTENSA_HAVE_COPROCESSOR(4)
134COPROCESSOR(4), 134COPROCESSOR(4),
135#endif 135#endif
136#if (XCHAL_CP_MASK & 32) 136#if XTENSA_HAVE_COPROCESSOR(5)
137COPROCESSOR(5), 137COPROCESSOR(5),
138#endif 138#endif
139#if (XCHAL_CP_MASK & 64) 139#if XTENSA_HAVE_COPROCESSOR(6)
140COPROCESSOR(6), 140COPROCESSOR(6),
141#endif 141#endif
142#if (XCHAL_CP_MASK & 128) 142#if XTENSA_HAVE_COPROCESSOR(7)
143COPROCESSOR(7), 143COPROCESSOR(7),
144#endif 144#endif
145{ EXCCAUSE_MAPPED_DEBUG, 0, do_debug }, 145{ EXCCAUSE_MAPPED_DEBUG, 0, do_debug },
@@ -349,9 +349,7 @@ void show_regs(struct pt_regs * regs)
349 349
350 wmask = regs->wmask & ~1; 350 wmask = regs->wmask & ~1;
351 351
352 for (i = 0; i < 32; i++) { 352 for (i = 0; i < 16; i++) {
353 if (wmask & (1 << (i / 4)))
354 break;
355 if ((i % 8) == 0) 353 if ((i % 8) == 0)
356 printk ("\n" KERN_INFO "a%02d: ", i); 354 printk ("\n" KERN_INFO "a%02d: ", i);
357 printk("%08lx ", regs->areg[i]); 355 printk("%08lx ", regs->areg[i]);
diff --git a/arch/xtensa/kernel/vmlinux.lds.S b/arch/xtensa/kernel/vmlinux.lds.S
index 7d0f55a4982d..51f4fb6f16f9 100644
--- a/arch/xtensa/kernel/vmlinux.lds.S
+++ b/arch/xtensa/kernel/vmlinux.lds.S
@@ -136,7 +136,9 @@ SECTIONS
136 __init_begin = .; 136 __init_begin = .;
137 .init.text : { 137 .init.text : {
138 _sinittext = .; 138 _sinittext = .;
139 *(.init.literal) INIT_TEXT 139 *(.init.literal) *(.cpuinit.literal)
140 *(.devinit.literal) *(.meminit.literal)
141 INIT_TEXT
140 _einittext = .; 142 _einittext = .;
141 } 143 }
142 144
@@ -161,6 +163,8 @@ SECTIONS
161 .DoubleExceptionVector.literal); 163 .DoubleExceptionVector.literal);
162 RELOCATE_ENTRY(_DoubleExceptionVector_text, 164 RELOCATE_ENTRY(_DoubleExceptionVector_text,
163 .DoubleExceptionVector.text); 165 .DoubleExceptionVector.text);
166 RELOCATE_ENTRY(_DebugInterruptVector_text,
167 .DebugInterruptVector.text);
164 168
165 __boot_reloc_table_end = ABSOLUTE(.) ; 169 __boot_reloc_table_end = ABSOLUTE(.) ;
166 } 170 }
diff --git a/arch/xtensa/mm/cache.c b/arch/xtensa/mm/cache.c
index 9a1fa9478ae7..3ba990c67676 100644
--- a/arch/xtensa/mm/cache.c
+++ b/arch/xtensa/mm/cache.c
@@ -25,7 +25,6 @@
25#include <linux/swap.h> 25#include <linux/swap.h>
26#include <linux/pagemap.h> 26#include <linux/pagemap.h>
27 27
28#include <asm/pgtable.h>
29#include <asm/bootparam.h> 28#include <asm/bootparam.h>
30#include <asm/mmu_context.h> 29#include <asm/mmu_context.h>
31#include <asm/tlb.h> 30#include <asm/tlb.h>
@@ -181,9 +180,9 @@ update_mmu_cache(struct vm_area_struct * vma, unsigned long addr, pte_t pte)
181#else 180#else
182 if (!PageReserved(page) && !test_bit(PG_arch_1, &page->flags) 181 if (!PageReserved(page) && !test_bit(PG_arch_1, &page->flags)
183 && (vma->vm_flags & VM_EXEC) != 0) { 182 && (vma->vm_flags & VM_EXEC) != 0) {
184 unsigned long vaddr = addr & PAGE_MASK; 183 unsigned long paddr = (unsigned long) page_address(page);
185 __flush_dcache_page(vaddr); 184 __flush_dcache_page(paddr);
186 __invalidate_icache_page(vaddr); 185 __invalidate_icache_page(paddr);
187 set_bit(PG_arch_1, &page->flags); 186 set_bit(PG_arch_1, &page->flags);
188 } 187 }
189#endif 188#endif
diff --git a/arch/xtensa/mm/init.c b/arch/xtensa/mm/init.c
index b3086f34a8e7..81d0560eaea2 100644
--- a/arch/xtensa/mm/init.c
+++ b/arch/xtensa/mm/init.c
@@ -309,7 +309,7 @@ void show_mem(void)
309 309
310struct kmem_cache *pgtable_cache __read_mostly; 310struct kmem_cache *pgtable_cache __read_mostly;
311 311
312static void pgd_ctor(void *addr, struct kmem_cache *cache, unsigned long flags) 312static void pgd_ctor(struct kmem_cache *cache, void* addr)
313{ 313{
314 pte_t* ptep = (pte_t*)addr; 314 pte_t* ptep = (pte_t*)addr;
315 int i; 315 int i;
diff --git a/arch/xtensa/mm/misc.S b/arch/xtensa/mm/misc.S
index e1f880368e32..c885664211d1 100644
--- a/arch/xtensa/mm/misc.S
+++ b/arch/xtensa/mm/misc.S
@@ -295,7 +295,7 @@ ENTRY(__tlbtemp_mapping_itlb)
295ENTRY(__invalidate_icache_page_alias) 295ENTRY(__invalidate_icache_page_alias)
296 entry sp, 16 296 entry sp, 16
297 297
298 addi a6, a3, (PAGE_KERNEL | _PAGE_HW_WRITE) 298 addi a6, a3, (PAGE_KERNEL_EXEC | _PAGE_HW_WRITE)
299 mov a4, a2 299 mov a4, a2
300 witlb a6, a2 300 witlb a6, a2
301 isync 301 isync
diff --git a/arch/xtensa/platform-iss/Makefile b/arch/xtensa/platforms/iss/Makefile
index af96e314d71f..af96e314d71f 100644
--- a/arch/xtensa/platform-iss/Makefile
+++ b/arch/xtensa/platforms/iss/Makefile
diff --git a/arch/xtensa/platform-iss/console.c b/arch/xtensa/platforms/iss/console.c
index 854677d0c3f6..9141e3690731 100644
--- a/arch/xtensa/platform-iss/console.c
+++ b/arch/xtensa/platforms/iss/console.c
@@ -43,6 +43,7 @@ static DEFINE_SPINLOCK(timer_lock);
43 43
44int errno; 44int errno;
45 45
46static int __simc (int a, int b, int c, int d, int e, int f) __attribute__((__noinline__));
46static int __simc (int a, int b, int c, int d, int e, int f) 47static int __simc (int a, int b, int c, int d, int e, int f)
47{ 48{
48 int ret; 49 int ret;
diff --git a/arch/xtensa/platform-iss/io.c b/arch/xtensa/platforms/iss/io.c
index 5b161a5cb65f..5b161a5cb65f 100644
--- a/arch/xtensa/platform-iss/io.c
+++ b/arch/xtensa/platforms/iss/io.c
diff --git a/arch/xtensa/platform-iss/network.c b/arch/xtensa/platforms/iss/network.c
index f21b9b0899a8..a2e252217428 100644
--- a/arch/xtensa/platform-iss/network.c
+++ b/arch/xtensa/platforms/iss/network.c
@@ -31,7 +31,6 @@
31#include <linux/bootmem.h> 31#include <linux/bootmem.h>
32#include <linux/ethtool.h> 32#include <linux/ethtool.h>
33#include <linux/rtnetlink.h> 33#include <linux/rtnetlink.h>
34#include <linux/timer.h>
35#include <linux/platform_device.h> 34#include <linux/platform_device.h>
36 35
37#include <asm/platform/simcall.h> 36#include <asm/platform/simcall.h>
@@ -108,6 +107,7 @@ struct iss_net_private {
108 107
109static int errno; 108static int errno;
110 109
110static int __simc (int a, int b, int c, int d, int e, int f) __attribute__((__noinline__));
111static int __simc (int a, int b, int c, int d, int e, int f) 111static int __simc (int a, int b, int c, int d, int e, int f)
112{ 112{
113 int ret; 113 int ret;
diff --git a/arch/xtensa/platform-iss/setup.c b/arch/xtensa/platforms/iss/setup.c
index f60c8cf6dfbe..f60c8cf6dfbe 100644
--- a/arch/xtensa/platform-iss/setup.c
+++ b/arch/xtensa/platforms/iss/setup.c