aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/kernel/entry-common.S4
-rw-r--r--arch/arm/kernel/fiq.c4
-rw-r--r--arch/arm/mach-ep93xx/include/mach/platform.h2
-rw-r--r--arch/arm/mach-mx1/devices.c2
-rw-r--r--arch/arm/mach-mx1/mx1ads.c1
-rw-r--r--arch/arm/mach-omap2/board-omap3beagle.c4
-rw-r--r--arch/arm/mach-orion5x/common.c7
-rw-r--r--arch/arm/mach-s3c6410/mach-smdk6410.c4
-rw-r--r--arch/arm/mm/copypage-feroceon.c2
-rw-r--r--arch/arm/mm/copypage-v3.c2
-rw-r--r--arch/arm/mm/copypage-v4mc.c2
-rw-r--r--arch/arm/mm/copypage-v4wb.c2
-rw-r--r--arch/arm/mm/copypage-v4wt.c2
-rw-r--r--arch/arm/mm/copypage-xsc3.c2
-rw-r--r--arch/arm/mm/copypage-xscale.c2
-rw-r--r--arch/arm/mm/dma-mapping.c20
-rw-r--r--arch/arm/mm/init.c2
-rw-r--r--arch/arm/mm/mmap.c2
-rw-r--r--arch/arm/plat-omap/Makefile3
-rw-r--r--arch/arm/plat-omap/common.c14
-rw-r--r--arch/arm/plat-omap/include/mach/common.h2
-rw-r--r--arch/arm/plat-omap/include/mach/pm.h2
-rw-r--r--arch/arm/plat-s3c64xx/clock.c2
-rw-r--r--arch/arm/plat-s3c64xx/gpiolib.c2
-rw-r--r--arch/arm/plat-s3c64xx/include/plat/irqs.h2
-rw-r--r--arch/arm/plat-s3c64xx/irq-eint.c15
-rw-r--r--arch/arm/plat-s3c64xx/irq.c2
-rw-r--r--arch/arm/plat-s3c64xx/s3c6400-clock.c24
-rw-r--r--arch/arm/tools/mach-types136
-rw-r--r--arch/mips/Kconfig26
-rw-r--r--arch/mips/Makefile2
-rw-r--r--arch/mips/configs/markeins_defconfig (renamed from arch/mips/configs/emma2rh_defconfig)10
-rw-r--r--arch/mips/emma/Kconfig29
-rw-r--r--arch/mips/emma/markeins/platform.c39
-rw-r--r--arch/mips/include/asm/seccomp.h4
-rw-r--r--arch/mips/include/asm/thread_info.h6
-rw-r--r--arch/parisc/configs/712_defconfig429
-rw-r--r--arch/parisc/configs/a500_defconfig490
-rw-r--r--arch/parisc/configs/b180_defconfig433
-rw-r--r--arch/parisc/configs/c3000_defconfig575
-rw-r--r--arch/parisc/configs/default_defconfig585
-rw-r--r--arch/parisc/hpux/fs.c1
-rw-r--r--arch/parisc/include/asm/assembly.h11
-rw-r--r--arch/parisc/include/asm/io.h51
-rw-r--r--arch/parisc/include/asm/irq.h2
-rw-r--r--arch/parisc/include/asm/uaccess.h1
-rw-r--r--arch/parisc/kernel/cache.c5
-rw-r--r--arch/parisc/kernel/entry.S6
-rw-r--r--arch/parisc/kernel/firmware.c12
-rw-r--r--arch/parisc/kernel/irq.c18
-rw-r--r--arch/parisc/kernel/pci-dma.c22
-rw-r--r--arch/parisc/mm/init.c6
-rw-r--r--arch/x86/boot/pmjump.S1
-rw-r--r--arch/x86/boot/setup.ld3
-rw-r--r--arch/x86/include/asm/apic.h13
-rwxr-xr-xarch/x86/include/asm/cpu_debug.h33
-rw-r--r--arch/x86/include/asm/dmi.h14
-rw-r--r--arch/x86/include/asm/io_apic.h5
-rw-r--r--arch/x86/include/asm/irq_remapping.h2
-rw-r--r--arch/x86/include/asm/msidef.h1
-rw-r--r--arch/x86/include/asm/page_32_types.h5
-rw-r--r--arch/x86/include/asm/paravirt.h4
-rw-r--r--arch/x86/include/asm/pgtable_32.h3
-rw-r--r--arch/x86/include/asm/sections.h7
-rw-r--r--arch/x86/include/asm/setup.h37
-rw-r--r--arch/x86/kernel/apic/apic.c20
-rw-r--r--arch/x86/kernel/apic/io_apic.c268
-rw-r--r--arch/x86/kernel/apic/probe_64.c7
-rw-r--r--arch/x86/kernel/apic/x2apic_cluster.c6
-rw-r--r--arch/x86/kernel/apic/x2apic_phys.c6
-rw-r--r--arch/x86/kernel/check.c6
-rwxr-xr-xarch/x86/kernel/cpu/cpu_debug.c150
-rw-r--r--arch/x86/kernel/cpu/mcheck/mce_amd_64.c40
-rw-r--r--arch/x86/kernel/cpu/mcheck/mce_intel_64.c2
-rw-r--r--arch/x86/kernel/cpu/mtrr/Makefile2
-rw-r--r--arch/x86/kernel/cpu/mtrr/cleanup.c1101
-rw-r--r--arch/x86/kernel/cpu/mtrr/generic.c202
-rw-r--r--arch/x86/kernel/cpu/mtrr/main.c1069
-rw-r--r--arch/x86/kernel/cpu/mtrr/mtrr.h4
-rw-r--r--arch/x86/kernel/e820.c79
-rw-r--r--arch/x86/kernel/head32.c5
-rw-r--r--arch/x86/kernel/head64.c2
-rw-r--r--arch/x86/kernel/head_32.S76
-rw-r--r--arch/x86/kernel/kprobes.c3
-rw-r--r--arch/x86/kernel/process.c5
-rw-r--r--arch/x86/kernel/setup.c54
-rw-r--r--arch/x86/kernel/tlb_uv.c3
-rw-r--r--arch/x86/kernel/tsc.c110
-rw-r--r--arch/x86/kernel/vmlinux_32.lds.S21
-rw-r--r--arch/x86/kernel/vmlinux_64.lds.S94
-rw-r--r--arch/x86/lguest/boot.c8
-rw-r--r--arch/x86/mm/iomap_32.c1
-rw-r--r--arch/x86/mm/pageattr.c5
-rw-r--r--arch/x86/mm/tlb.c5
-rw-r--r--arch/x86/xen/mmu.c6
95 files changed, 3952 insertions, 2569 deletions
diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S
index 49a6ba926c2b..159d0416f270 100644
--- a/arch/arm/kernel/entry-common.S
+++ b/arch/arm/kernel/entry-common.S
@@ -111,6 +111,7 @@ ENTRY(mcount)
111 .globl mcount_call 111 .globl mcount_call
112mcount_call: 112mcount_call:
113 bl ftrace_stub 113 bl ftrace_stub
114 ldr lr, [fp, #-4] @ restore lr
114 ldmia sp!, {r0-r3, pc} 115 ldmia sp!, {r0-r3, pc}
115 116
116ENTRY(ftrace_caller) 117ENTRY(ftrace_caller)
@@ -122,6 +123,7 @@ ENTRY(ftrace_caller)
122 .globl ftrace_call 123 .globl ftrace_call
123ftrace_call: 124ftrace_call:
124 bl ftrace_stub 125 bl ftrace_stub
126 ldr lr, [fp, #-4] @ restore lr
125 ldmia sp!, {r0-r3, pc} 127 ldmia sp!, {r0-r3, pc}
126 128
127#else 129#else
@@ -133,6 +135,7 @@ ENTRY(mcount)
133 adr r0, ftrace_stub 135 adr r0, ftrace_stub
134 cmp r0, r2 136 cmp r0, r2
135 bne trace 137 bne trace
138 ldr lr, [fp, #-4] @ restore lr
136 ldmia sp!, {r0-r3, pc} 139 ldmia sp!, {r0-r3, pc}
137 140
138trace: 141trace:
@@ -141,6 +144,7 @@ trace:
141 sub r0, r0, #MCOUNT_INSN_SIZE 144 sub r0, r0, #MCOUNT_INSN_SIZE
142 mov lr, pc 145 mov lr, pc
143 mov pc, r2 146 mov pc, r2
147 mov lr, r1 @ restore lr
144 ldmia sp!, {r0-r3, pc} 148 ldmia sp!, {r0-r3, pc}
145 149
146#endif /* CONFIG_DYNAMIC_FTRACE */ 150#endif /* CONFIG_DYNAMIC_FTRACE */
diff --git a/arch/arm/kernel/fiq.c b/arch/arm/kernel/fiq.c
index 36f81d967979..6ff7919613d7 100644
--- a/arch/arm/kernel/fiq.c
+++ b/arch/arm/kernel/fiq.c
@@ -88,7 +88,7 @@ void set_fiq_handler(void *start, unsigned int length)
88 * disable irqs for the duration. Note - these functions are almost 88 * disable irqs for the duration. Note - these functions are almost
89 * entirely coded in assembly. 89 * entirely coded in assembly.
90 */ 90 */
91void __attribute__((naked)) set_fiq_regs(struct pt_regs *regs) 91void __naked set_fiq_regs(struct pt_regs *regs)
92{ 92{
93 register unsigned long tmp; 93 register unsigned long tmp;
94 asm volatile ( 94 asm volatile (
@@ -106,7 +106,7 @@ void __attribute__((naked)) set_fiq_regs(struct pt_regs *regs)
106 : "r" (&regs->ARM_r8), "I" (PSR_I_BIT | PSR_F_BIT | FIQ_MODE)); 106 : "r" (&regs->ARM_r8), "I" (PSR_I_BIT | PSR_F_BIT | FIQ_MODE));
107} 107}
108 108
109void __attribute__((naked)) get_fiq_regs(struct pt_regs *regs) 109void __naked get_fiq_regs(struct pt_regs *regs)
110{ 110{
111 register unsigned long tmp; 111 register unsigned long tmp;
112 asm volatile ( 112 asm volatile (
diff --git a/arch/arm/mach-ep93xx/include/mach/platform.h b/arch/arm/mach-ep93xx/include/mach/platform.h
index 88f7e88f152f..05f0f4f2f3ce 100644
--- a/arch/arm/mach-ep93xx/include/mach/platform.h
+++ b/arch/arm/mach-ep93xx/include/mach/platform.h
@@ -4,6 +4,8 @@
4 4
5#ifndef __ASSEMBLY__ 5#ifndef __ASSEMBLY__
6 6
7struct i2c_board_info;
8
7struct ep93xx_eth_data 9struct ep93xx_eth_data
8{ 10{
9 unsigned char dev_addr[6]; 11 unsigned char dev_addr[6];
diff --git a/arch/arm/mach-mx1/devices.c b/arch/arm/mach-mx1/devices.c
index 686d8d2dbb24..a95644193f3f 100644
--- a/arch/arm/mach-mx1/devices.c
+++ b/arch/arm/mach-mx1/devices.c
@@ -23,6 +23,8 @@
23#include <linux/init.h> 23#include <linux/init.h>
24#include <linux/platform_device.h> 24#include <linux/platform_device.h>
25#include <linux/gpio.h> 25#include <linux/gpio.h>
26
27#include <mach/irqs.h>
26#include <mach/hardware.h> 28#include <mach/hardware.h>
27 29
28static struct resource imx_csi_resources[] = { 30static struct resource imx_csi_resources[] = {
diff --git a/arch/arm/mach-mx1/mx1ads.c b/arch/arm/mach-mx1/mx1ads.c
index 2e4b185fe4a9..3200cf60e384 100644
--- a/arch/arm/mach-mx1/mx1ads.c
+++ b/arch/arm/mach-mx1/mx1ads.c
@@ -21,6 +21,7 @@
21#include <asm/mach/arch.h> 21#include <asm/mach/arch.h>
22#include <asm/mach/time.h> 22#include <asm/mach/time.h>
23 23
24#include <mach/irqs.h>
24#include <mach/hardware.h> 25#include <mach/hardware.h>
25#include <mach/common.h> 26#include <mach/common.h>
26#include <mach/imx-uart.h> 27#include <mach/imx-uart.h>
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
index 38c88fbe658d..e39cd2c46cfa 100644
--- a/arch/arm/mach-omap2/board-omap3beagle.c
+++ b/arch/arm/mach-omap2/board-omap3beagle.c
@@ -178,7 +178,9 @@ static int __init omap3_beagle_i2c_init(void)
178#ifdef CONFIG_I2C2_OMAP_BEAGLE 178#ifdef CONFIG_I2C2_OMAP_BEAGLE
179 omap_register_i2c_bus(2, 400, NULL, 0); 179 omap_register_i2c_bus(2, 400, NULL, 0);
180#endif 180#endif
181 omap_register_i2c_bus(3, 400, NULL, 0); 181 /* Bus 3 is attached to the DVI port where devices like the pico DLP
182 * projector don't work reliably with 400kHz */
183 omap_register_i2c_bus(3, 100, NULL, 0);
182 return 0; 184 return 0;
183} 185}
184 186
diff --git a/arch/arm/mach-orion5x/common.c b/arch/arm/mach-orion5x/common.c
index 0a623379789f..8a0e49d84256 100644
--- a/arch/arm/mach-orion5x/common.c
+++ b/arch/arm/mach-orion5x/common.c
@@ -431,6 +431,10 @@ void __init orion5x_uart1_init(void)
431/***************************************************************************** 431/*****************************************************************************
432 * XOR engine 432 * XOR engine
433 ****************************************************************************/ 433 ****************************************************************************/
434struct mv_xor_platform_shared_data orion5x_xor_shared_data = {
435 .dram = &orion5x_mbus_dram_info,
436};
437
434static struct resource orion5x_xor_shared_resources[] = { 438static struct resource orion5x_xor_shared_resources[] = {
435 { 439 {
436 .name = "xor low", 440 .name = "xor low",
@@ -448,6 +452,9 @@ static struct resource orion5x_xor_shared_resources[] = {
448static struct platform_device orion5x_xor_shared = { 452static struct platform_device orion5x_xor_shared = {
449 .name = MV_XOR_SHARED_NAME, 453 .name = MV_XOR_SHARED_NAME,
450 .id = 0, 454 .id = 0,
455 .dev = {
456 .platform_data = &orion5x_xor_shared_data,
457 },
451 .num_resources = ARRAY_SIZE(orion5x_xor_shared_resources), 458 .num_resources = ARRAY_SIZE(orion5x_xor_shared_resources),
452 .resource = orion5x_xor_shared_resources, 459 .resource = orion5x_xor_shared_resources,
453}; 460};
diff --git a/arch/arm/mach-s3c6410/mach-smdk6410.c b/arch/arm/mach-s3c6410/mach-smdk6410.c
index 3c4d47145c83..25f7935576f8 100644
--- a/arch/arm/mach-s3c6410/mach-smdk6410.c
+++ b/arch/arm/mach-s3c6410/mach-smdk6410.c
@@ -129,7 +129,7 @@ static struct s3c_fb_platdata smdk6410_lcd_pdata __initdata = {
129 .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC, 129 .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC,
130}; 130};
131 131
132struct map_desc smdk6410_iodesc[] = {}; 132static struct map_desc smdk6410_iodesc[] = {};
133 133
134static struct platform_device *smdk6410_devices[] __initdata = { 134static struct platform_device *smdk6410_devices[] __initdata = {
135#ifdef CONFIG_SMDK6410_SD_CH0 135#ifdef CONFIG_SMDK6410_SD_CH0
@@ -146,7 +146,7 @@ static struct platform_device *smdk6410_devices[] __initdata = {
146 146
147static struct i2c_board_info i2c_devs0[] __initdata = { 147static struct i2c_board_info i2c_devs0[] __initdata = {
148 { I2C_BOARD_INFO("24c08", 0x50), }, 148 { I2C_BOARD_INFO("24c08", 0x50), },
149 { I2C_BOARD_INFO("WM8580", 0X1b), }, 149 { I2C_BOARD_INFO("wm8580", 0x1b), },
150}; 150};
151 151
152static struct i2c_board_info i2c_devs1[] __initdata = { 152static struct i2c_board_info i2c_devs1[] __initdata = {
diff --git a/arch/arm/mm/copypage-feroceon.c b/arch/arm/mm/copypage-feroceon.c
index c3ba6a94da0c..70997d5bee2d 100644
--- a/arch/arm/mm/copypage-feroceon.c
+++ b/arch/arm/mm/copypage-feroceon.c
@@ -13,7 +13,7 @@
13#include <linux/init.h> 13#include <linux/init.h>
14#include <linux/highmem.h> 14#include <linux/highmem.h>
15 15
16static void __attribute__((naked)) 16static void __naked
17feroceon_copy_user_page(void *kto, const void *kfrom) 17feroceon_copy_user_page(void *kto, const void *kfrom)
18{ 18{
19 asm("\ 19 asm("\
diff --git a/arch/arm/mm/copypage-v3.c b/arch/arm/mm/copypage-v3.c
index 70ed96c8af8e..de9c06854ad7 100644
--- a/arch/arm/mm/copypage-v3.c
+++ b/arch/arm/mm/copypage-v3.c
@@ -15,7 +15,7 @@
15 * 15 *
16 * FIXME: do we need to handle cache stuff... 16 * FIXME: do we need to handle cache stuff...
17 */ 17 */
18static void __attribute__((naked)) 18static void __naked
19v3_copy_user_page(void *kto, const void *kfrom) 19v3_copy_user_page(void *kto, const void *kfrom)
20{ 20{
21 asm("\n\ 21 asm("\n\
diff --git a/arch/arm/mm/copypage-v4mc.c b/arch/arm/mm/copypage-v4mc.c
index 1601698b9800..7370a7142b04 100644
--- a/arch/arm/mm/copypage-v4mc.c
+++ b/arch/arm/mm/copypage-v4mc.c
@@ -44,7 +44,7 @@ static DEFINE_SPINLOCK(minicache_lock);
44 * instruction. If your processor does not supply this, you have to write your 44 * instruction. If your processor does not supply this, you have to write your
45 * own copy_user_highpage that does the right thing. 45 * own copy_user_highpage that does the right thing.
46 */ 46 */
47static void __attribute__((naked)) 47static void __naked
48mc_copy_user_page(void *from, void *to) 48mc_copy_user_page(void *from, void *to)
49{ 49{
50 asm volatile( 50 asm volatile(
diff --git a/arch/arm/mm/copypage-v4wb.c b/arch/arm/mm/copypage-v4wb.c
index 3ec93dab7656..9ab098414227 100644
--- a/arch/arm/mm/copypage-v4wb.c
+++ b/arch/arm/mm/copypage-v4wb.c
@@ -22,7 +22,7 @@
22 * instruction. If your processor does not supply this, you have to write your 22 * instruction. If your processor does not supply this, you have to write your
23 * own copy_user_highpage that does the right thing. 23 * own copy_user_highpage that does the right thing.
24 */ 24 */
25static void __attribute__((naked)) 25static void __naked
26v4wb_copy_user_page(void *kto, const void *kfrom) 26v4wb_copy_user_page(void *kto, const void *kfrom)
27{ 27{
28 asm("\ 28 asm("\
diff --git a/arch/arm/mm/copypage-v4wt.c b/arch/arm/mm/copypage-v4wt.c
index 0f1188efae45..300efafd6643 100644
--- a/arch/arm/mm/copypage-v4wt.c
+++ b/arch/arm/mm/copypage-v4wt.c
@@ -20,7 +20,7 @@
20 * dirty data in the cache. However, we do have to ensure that 20 * dirty data in the cache. However, we do have to ensure that
21 * subsequent reads are up to date. 21 * subsequent reads are up to date.
22 */ 22 */
23static void __attribute__((naked)) 23static void __naked
24v4wt_copy_user_page(void *kto, const void *kfrom) 24v4wt_copy_user_page(void *kto, const void *kfrom)
25{ 25{
26 asm("\ 26 asm("\
diff --git a/arch/arm/mm/copypage-xsc3.c b/arch/arm/mm/copypage-xsc3.c
index 39a994542cad..bc4525f5ab23 100644
--- a/arch/arm/mm/copypage-xsc3.c
+++ b/arch/arm/mm/copypage-xsc3.c
@@ -29,7 +29,7 @@
29 * if we eventually end up using our copied page. 29 * if we eventually end up using our copied page.
30 * 30 *
31 */ 31 */
32static void __attribute__((naked)) 32static void __naked
33xsc3_mc_copy_user_page(void *kto, const void *kfrom) 33xsc3_mc_copy_user_page(void *kto, const void *kfrom)
34{ 34{
35 asm("\ 35 asm("\
diff --git a/arch/arm/mm/copypage-xscale.c b/arch/arm/mm/copypage-xscale.c
index d18f2397ee2d..76824d3e966a 100644
--- a/arch/arm/mm/copypage-xscale.c
+++ b/arch/arm/mm/copypage-xscale.c
@@ -42,7 +42,7 @@ static DEFINE_SPINLOCK(minicache_lock);
42 * Dcache aliasing issue. The writes will be forwarded to the write buffer, 42 * Dcache aliasing issue. The writes will be forwarded to the write buffer,
43 * and merged as appropriate. 43 * and merged as appropriate.
44 */ 44 */
45static void __attribute__((naked)) 45static void __naked
46mc_copy_user_page(void *from, void *to) 46mc_copy_user_page(void *from, void *to)
47{ 47{
48 /* 48 /*
diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c
index 310e479309ef..f1ef5613ccd4 100644
--- a/arch/arm/mm/dma-mapping.c
+++ b/arch/arm/mm/dma-mapping.c
@@ -490,26 +490,30 @@ core_initcall(consistent_init);
490 */ 490 */
491void dma_cache_maint(const void *start, size_t size, int direction) 491void dma_cache_maint(const void *start, size_t size, int direction)
492{ 492{
493 const void *end = start + size; 493 void (*inner_op)(const void *, const void *);
494 void (*outer_op)(unsigned long, unsigned long);
494 495
495 BUG_ON(!virt_addr_valid(start) || !virt_addr_valid(end - 1)); 496 BUG_ON(!virt_addr_valid(start) || !virt_addr_valid(start + size - 1));
496 497
497 switch (direction) { 498 switch (direction) {
498 case DMA_FROM_DEVICE: /* invalidate only */ 499 case DMA_FROM_DEVICE: /* invalidate only */
499 dmac_inv_range(start, end); 500 inner_op = dmac_inv_range;
500 outer_inv_range(__pa(start), __pa(end)); 501 outer_op = outer_inv_range;
501 break; 502 break;
502 case DMA_TO_DEVICE: /* writeback only */ 503 case DMA_TO_DEVICE: /* writeback only */
503 dmac_clean_range(start, end); 504 inner_op = dmac_clean_range;
504 outer_clean_range(__pa(start), __pa(end)); 505 outer_op = outer_clean_range;
505 break; 506 break;
506 case DMA_BIDIRECTIONAL: /* writeback and invalidate */ 507 case DMA_BIDIRECTIONAL: /* writeback and invalidate */
507 dmac_flush_range(start, end); 508 inner_op = dmac_flush_range;
508 outer_flush_range(__pa(start), __pa(end)); 509 outer_op = outer_flush_range;
509 break; 510 break;
510 default: 511 default:
511 BUG(); 512 BUG();
512 } 513 }
514
515 inner_op(start, start + size);
516 outer_op(__pa(start), __pa(start) + size);
513} 517}
514EXPORT_SYMBOL(dma_cache_maint); 518EXPORT_SYMBOL(dma_cache_maint);
515 519
diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c
index 34df4d9d03a6..80fd3b69ae1f 100644
--- a/arch/arm/mm/init.c
+++ b/arch/arm/mm/init.c
@@ -382,7 +382,7 @@ void __init bootmem_init(void)
382 for_each_node(node) 382 for_each_node(node)
383 bootmem_free_node(node, mi); 383 bootmem_free_node(node, mi);
384 384
385 high_memory = __va(memend_pfn << PAGE_SHIFT); 385 high_memory = __va((memend_pfn << PAGE_SHIFT) - 1) + 1;
386 386
387 /* 387 /*
388 * This doesn't seem to be used by the Linux memory manager any 388 * This doesn't seem to be used by the Linux memory manager any
diff --git a/arch/arm/mm/mmap.c b/arch/arm/mm/mmap.c
index 5358fcc7f61e..f7457fea6de8 100644
--- a/arch/arm/mm/mmap.c
+++ b/arch/arm/mm/mmap.c
@@ -124,7 +124,7 @@ int valid_phys_addr_range(unsigned long addr, size_t size)
124{ 124{
125 if (addr < PHYS_OFFSET) 125 if (addr < PHYS_OFFSET)
126 return 0; 126 return 0;
127 if (addr + size > __pa(high_memory)) 127 if (addr + size >= __pa(high_memory - 1))
128 return 0; 128 return 0;
129 129
130 return 1; 130 return 1;
diff --git a/arch/arm/plat-omap/Makefile b/arch/arm/plat-omap/Makefile
index deaff58878a2..04a100cfb8e5 100644
--- a/arch/arm/plat-omap/Makefile
+++ b/arch/arm/plat-omap/Makefile
@@ -18,7 +18,8 @@ obj-$(CONFIG_CPU_FREQ) += cpu-omap.o
18obj-$(CONFIG_OMAP_DM_TIMER) += dmtimer.o 18obj-$(CONFIG_OMAP_DM_TIMER) += dmtimer.o
19obj-$(CONFIG_OMAP_DEBUG_DEVICES) += debug-devices.o 19obj-$(CONFIG_OMAP_DEBUG_DEVICES) += debug-devices.o
20obj-$(CONFIG_OMAP_DEBUG_LEDS) += debug-leds.o 20obj-$(CONFIG_OMAP_DEBUG_LEDS) += debug-leds.o
21obj-$(CONFIG_I2C_OMAP) += i2c.o 21i2c-omap-$(CONFIG_I2C_OMAP) := i2c.o
22obj-y += $(i2c-omap-m) $(i2c-omap-y)
22 23
23# OMAP mailbox framework 24# OMAP mailbox framework
24obj-$(CONFIG_OMAP_MBOX_FWK) += mailbox.o 25obj-$(CONFIG_OMAP_MBOX_FWK) += mailbox.o
diff --git a/arch/arm/plat-omap/common.c b/arch/arm/plat-omap/common.c
index 0843b8882f93..6825fbb5a056 100644
--- a/arch/arm/plat-omap/common.c
+++ b/arch/arm/plat-omap/common.c
@@ -200,20 +200,16 @@ static struct clocksource clocksource_32k = {
200}; 200};
201 201
202/* 202/*
203 * Rounds down to nearest nsec.
204 */
205unsigned long long omap_32k_ticks_to_nsecs(unsigned long ticks_32k)
206{
207 return cyc2ns(&clocksource_32k, ticks_32k);
208}
209
210/*
211 * Returns current time from boot in nsecs. It's OK for this to wrap 203 * Returns current time from boot in nsecs. It's OK for this to wrap
212 * around for now, as it's just a relative time stamp. 204 * around for now, as it's just a relative time stamp.
213 */ 205 */
214unsigned long long sched_clock(void) 206unsigned long long sched_clock(void)
215{ 207{
216 return omap_32k_ticks_to_nsecs(omap_32k_read()); 208 unsigned long long ret;
209
210 ret = (unsigned long long)omap_32k_read();
211 ret = (ret * clocksource_32k.mult_orig) >> clocksource_32k.shift;
212 return ret;
217} 213}
218 214
219static int __init omap_init_clocksource_32k(void) 215static int __init omap_init_clocksource_32k(void)
diff --git a/arch/arm/plat-omap/include/mach/common.h b/arch/arm/plat-omap/include/mach/common.h
index ef70e2b0f054..e746ec7e785e 100644
--- a/arch/arm/plat-omap/include/mach/common.h
+++ b/arch/arm/plat-omap/include/mach/common.h
@@ -35,7 +35,7 @@ extern void omap_map_common_io(void);
35extern struct sys_timer omap_timer; 35extern struct sys_timer omap_timer;
36extern void omap_serial_init(void); 36extern void omap_serial_init(void);
37extern void omap_serial_enable_clocks(int enable); 37extern void omap_serial_enable_clocks(int enable);
38#ifdef CONFIG_I2C_OMAP 38#if defined(CONFIG_I2C_OMAP) || defined(CONFIG_I2C_OMAP_MODULE)
39extern int omap_register_i2c_bus(int bus_id, u32 clkrate, 39extern int omap_register_i2c_bus(int bus_id, u32 clkrate,
40 struct i2c_board_info const *info, 40 struct i2c_board_info const *info,
41 unsigned len); 41 unsigned len);
diff --git a/arch/arm/plat-omap/include/mach/pm.h b/arch/arm/plat-omap/include/mach/pm.h
index 2a9c27ad4c37..37e2f0f38b46 100644
--- a/arch/arm/plat-omap/include/mach/pm.h
+++ b/arch/arm/plat-omap/include/mach/pm.h
@@ -108,7 +108,7 @@
108 !defined(CONFIG_ARCH_OMAP15XX) && \ 108 !defined(CONFIG_ARCH_OMAP15XX) && \
109 !defined(CONFIG_ARCH_OMAP16XX) && \ 109 !defined(CONFIG_ARCH_OMAP16XX) && \
110 !defined(CONFIG_ARCH_OMAP24XX) 110 !defined(CONFIG_ARCH_OMAP24XX)
111#error "Power management for this processor not implemented yet" 111#warning "Power management for this processor not implemented yet"
112#endif 112#endif
113 113
114#ifndef __ASSEMBLER__ 114#ifndef __ASSEMBLER__
diff --git a/arch/arm/plat-s3c64xx/clock.c b/arch/arm/plat-s3c64xx/clock.c
index 136c982c68e1..ad1b9682c9c3 100644
--- a/arch/arm/plat-s3c64xx/clock.c
+++ b/arch/arm/plat-s3c64xx/clock.c
@@ -248,7 +248,7 @@ static struct clk *clks[] __initdata = {
248 &clk_48m, 248 &clk_48m,
249}; 249};
250 250
251void s3c64xx_register_clocks(void) 251void __init s3c64xx_register_clocks(void)
252{ 252{
253 struct clk *clkp; 253 struct clk *clkp;
254 int ret; 254 int ret;
diff --git a/arch/arm/plat-s3c64xx/gpiolib.c b/arch/arm/plat-s3c64xx/gpiolib.c
index cc62941d7b5c..ee9188add8fb 100644
--- a/arch/arm/plat-s3c64xx/gpiolib.c
+++ b/arch/arm/plat-s3c64xx/gpiolib.c
@@ -417,4 +417,4 @@ static __init int s3c64xx_gpiolib_init(void)
417 return 0; 417 return 0;
418} 418}
419 419
420arch_initcall(s3c64xx_gpiolib_init); 420core_initcall(s3c64xx_gpiolib_init);
diff --git a/arch/arm/plat-s3c64xx/include/plat/irqs.h b/arch/arm/plat-s3c64xx/include/plat/irqs.h
index 2846f550b727..f865bf4d709e 100644
--- a/arch/arm/plat-s3c64xx/include/plat/irqs.h
+++ b/arch/arm/plat-s3c64xx/include/plat/irqs.h
@@ -117,7 +117,7 @@
117#define IRQ_ONENAND1 S3C64XX_IRQ_VIC1(12) 117#define IRQ_ONENAND1 S3C64XX_IRQ_VIC1(12)
118#define IRQ_NFC S3C64XX_IRQ_VIC1(13) 118#define IRQ_NFC S3C64XX_IRQ_VIC1(13)
119#define IRQ_CFCON S3C64XX_IRQ_VIC1(14) 119#define IRQ_CFCON S3C64XX_IRQ_VIC1(14)
120#define IRQ_UHOST S3C64XX_IRQ_VIC1(15) 120#define IRQ_USBH S3C64XX_IRQ_VIC1(15)
121#define IRQ_SPI0 S3C64XX_IRQ_VIC1(16) 121#define IRQ_SPI0 S3C64XX_IRQ_VIC1(16)
122#define IRQ_SPI1 S3C64XX_IRQ_VIC1(17) 122#define IRQ_SPI1 S3C64XX_IRQ_VIC1(17)
123#define IRQ_IIC S3C64XX_IRQ_VIC1(18) 123#define IRQ_IIC S3C64XX_IRQ_VIC1(18)
diff --git a/arch/arm/plat-s3c64xx/irq-eint.c b/arch/arm/plat-s3c64xx/irq-eint.c
index ebb305ce7689..cf524826c93a 100644
--- a/arch/arm/plat-s3c64xx/irq-eint.c
+++ b/arch/arm/plat-s3c64xx/irq-eint.c
@@ -14,12 +14,15 @@
14 14
15#include <linux/kernel.h> 15#include <linux/kernel.h>
16#include <linux/interrupt.h> 16#include <linux/interrupt.h>
17#include <linux/gpio.h>
17#include <linux/irq.h> 18#include <linux/irq.h>
18#include <linux/io.h> 19#include <linux/io.h>
19 20
20#include <asm/hardware/vic.h> 21#include <asm/hardware/vic.h>
21 22
22#include <plat/regs-irqtype.h> 23#include <plat/regs-irqtype.h>
24#include <plat/regs-gpio.h>
25#include <plat/gpio-cfg.h>
23 26
24#include <mach/map.h> 27#include <mach/map.h>
25#include <plat/cpu.h> 28#include <plat/cpu.h>
@@ -74,6 +77,7 @@ static void s3c_irq_eint_maskack(unsigned int irq)
74static int s3c_irq_eint_set_type(unsigned int irq, unsigned int type) 77static int s3c_irq_eint_set_type(unsigned int irq, unsigned int type)
75{ 78{
76 int offs = eint_offset(irq); 79 int offs = eint_offset(irq);
80 int pin;
77 int shift; 81 int shift;
78 u32 ctrl, mask; 82 u32 ctrl, mask;
79 u32 newvalue = 0; 83 u32 newvalue = 0;
@@ -125,6 +129,15 @@ static int s3c_irq_eint_set_type(unsigned int irq, unsigned int type)
125 ctrl |= newvalue << shift; 129 ctrl |= newvalue << shift;
126 __raw_writel(ctrl, reg); 130 __raw_writel(ctrl, reg);
127 131
132 /* set the GPIO pin appropriately */
133
134 if (offs < 23)
135 pin = S3C64XX_GPN(offs);
136 else
137 pin = S3C64XX_GPM(offs - 23);
138
139 s3c_gpio_cfgpin(pin, S3C_GPIO_SFN(2));
140
128 return 0; 141 return 0;
129} 142}
130 143
@@ -181,7 +194,7 @@ static void s3c_irq_demux_eint20_27(unsigned int irq, struct irq_desc *desc)
181 s3c_irq_demux_eint(20, 27); 194 s3c_irq_demux_eint(20, 27);
182} 195}
183 196
184int __init s3c64xx_init_irq_eint(void) 197static int __init s3c64xx_init_irq_eint(void)
185{ 198{
186 int irq; 199 int irq;
187 200
diff --git a/arch/arm/plat-s3c64xx/irq.c b/arch/arm/plat-s3c64xx/irq.c
index a94f1d5e819d..f22edf7c2d2d 100644
--- a/arch/arm/plat-s3c64xx/irq.c
+++ b/arch/arm/plat-s3c64xx/irq.c
@@ -207,7 +207,7 @@ static struct irq_chip s3c_irq_uart = {
207 207
208static void __init s3c64xx_uart_irq(struct uart_irq *uirq) 208static void __init s3c64xx_uart_irq(struct uart_irq *uirq)
209{ 209{
210 void *reg_base = uirq->regs; 210 void __iomem *reg_base = uirq->regs;
211 unsigned int irq; 211 unsigned int irq;
212 int offs; 212 int offs;
213 213
diff --git a/arch/arm/plat-s3c64xx/s3c6400-clock.c b/arch/arm/plat-s3c64xx/s3c6400-clock.c
index 8d9a0cada668..05b17528041e 100644
--- a/arch/arm/plat-s3c64xx/s3c6400-clock.c
+++ b/arch/arm/plat-s3c64xx/s3c6400-clock.c
@@ -36,7 +36,7 @@
36 * ext_xtal_mux for want of an actual name from the manual. 36 * ext_xtal_mux for want of an actual name from the manual.
37*/ 37*/
38 38
39struct clk clk_ext_xtal_mux = { 39static struct clk clk_ext_xtal_mux = {
40 .name = "ext_xtal", 40 .name = "ext_xtal",
41 .id = -1, 41 .id = -1,
42}; 42};
@@ -63,7 +63,7 @@ struct clksrc_clk {
63 void __iomem *reg_divider; 63 void __iomem *reg_divider;
64}; 64};
65 65
66struct clk clk_fout_apll = { 66static struct clk clk_fout_apll = {
67 .name = "fout_apll", 67 .name = "fout_apll",
68 .id = -1, 68 .id = -1,
69}; 69};
@@ -78,7 +78,7 @@ static struct clk_sources clk_src_apll = {
78 .nr_sources = ARRAY_SIZE(clk_src_apll_list), 78 .nr_sources = ARRAY_SIZE(clk_src_apll_list),
79}; 79};
80 80
81struct clksrc_clk clk_mout_apll = { 81static struct clksrc_clk clk_mout_apll = {
82 .clk = { 82 .clk = {
83 .name = "mout_apll", 83 .name = "mout_apll",
84 .id = -1, 84 .id = -1,
@@ -88,7 +88,7 @@ struct clksrc_clk clk_mout_apll = {
88 .sources = &clk_src_apll, 88 .sources = &clk_src_apll,
89}; 89};
90 90
91struct clk clk_fout_epll = { 91static struct clk clk_fout_epll = {
92 .name = "fout_epll", 92 .name = "fout_epll",
93 .id = -1, 93 .id = -1,
94}; 94};
@@ -103,7 +103,7 @@ static struct clk_sources clk_src_epll = {
103 .nr_sources = ARRAY_SIZE(clk_src_epll_list), 103 .nr_sources = ARRAY_SIZE(clk_src_epll_list),
104}; 104};
105 105
106struct clksrc_clk clk_mout_epll = { 106static struct clksrc_clk clk_mout_epll = {
107 .clk = { 107 .clk = {
108 .name = "mout_epll", 108 .name = "mout_epll",
109 .id = -1, 109 .id = -1,
@@ -123,7 +123,7 @@ static struct clk_sources clk_src_mpll = {
123 .nr_sources = ARRAY_SIZE(clk_src_mpll_list), 123 .nr_sources = ARRAY_SIZE(clk_src_mpll_list),
124}; 124};
125 125
126struct clksrc_clk clk_mout_mpll = { 126static struct clksrc_clk clk_mout_mpll = {
127 .clk = { 127 .clk = {
128 .name = "mout_mpll", 128 .name = "mout_mpll",
129 .id = -1, 129 .id = -1,
@@ -145,7 +145,7 @@ static unsigned long s3c64xx_clk_doutmpll_get_rate(struct clk *clk)
145 return rate; 145 return rate;
146} 146}
147 147
148struct clk clk_dout_mpll = { 148static struct clk clk_dout_mpll = {
149 .name = "dout_mpll", 149 .name = "dout_mpll",
150 .id = -1, 150 .id = -1,
151 .parent = &clk_mout_mpll.clk, 151 .parent = &clk_mout_mpll.clk,
@@ -189,10 +189,10 @@ static struct clk_sources clkset_uart = {
189}; 189};
190 190
191static struct clk *clkset_uhost_list[] = { 191static struct clk *clkset_uhost_list[] = {
192 &clk_48m,
192 &clk_mout_epll.clk, 193 &clk_mout_epll.clk,
193 &clk_dout_mpll, 194 &clk_dout_mpll,
194 &clk_fin_epll, 195 &clk_fin_epll,
195 &clk_48m,
196}; 196};
197 197
198static struct clk_sources clkset_uhost = { 198static struct clk_sources clkset_uhost = {
@@ -239,10 +239,12 @@ static int s3c64xx_setrate_clksrc(struct clk *clk, unsigned long rate)
239 239
240 rate = clk_round_rate(clk, rate); 240 rate = clk_round_rate(clk, rate);
241 div = clk_get_rate(clk->parent) / rate; 241 div = clk_get_rate(clk->parent) / rate;
242 if (div > 16)
243 return -EINVAL;
242 244
243 val = __raw_readl(reg); 245 val = __raw_readl(reg);
244 val &= ~sclk->mask; 246 val &= ~(0xf << sclk->shift);
245 val |= (rate - 1) << sclk->shift; 247 val |= (div - 1) << sclk->shift;
246 __raw_writel(val, reg); 248 __raw_writel(val, reg);
247 249
248 return 0; 250 return 0;
@@ -351,7 +353,7 @@ static struct clksrc_clk clk_mmc2 = {
351 353
352static struct clksrc_clk clk_usbhost = { 354static struct clksrc_clk clk_usbhost = {
353 .clk = { 355 .clk = {
354 .name = "usb-host-bus", 356 .name = "usb-bus-host",
355 .id = -1, 357 .id = -1,
356 .ctrlbit = S3C_CLKCON_SCLK_UHOST, 358 .ctrlbit = S3C_CLKCON_SCLK_UHOST,
357 .enable = s3c64xx_sclk_ctrl, 359 .enable = s3c64xx_sclk_ctrl,
diff --git a/arch/arm/tools/mach-types b/arch/arm/tools/mach-types
index fd23c0e9e698..b4211d8b2ac7 100644
--- a/arch/arm/tools/mach-types
+++ b/arch/arm/tools/mach-types
@@ -12,7 +12,7 @@
12# 12#
13# http://www.arm.linux.org.uk/developer/machines/?action=new 13# http://www.arm.linux.org.uk/developer/machines/?action=new
14# 14#
15# Last update: Sun Nov 30 16:39:36 2008 15# Last update: Thu Mar 12 18:01:45 2009
16# 16#
17# machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number 17# machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number
18# 18#
@@ -1811,7 +1811,7 @@ pilz_pmi5 MACH_PILZ_PMI5 PILZ_PMI5 1820
1811jade MACH_JADE JADE 1821 1811jade MACH_JADE JADE 1821
1812ks8695_softplc MACH_KS8695_SOFTPLC KS8695_SOFTPLC 1822 1812ks8695_softplc MACH_KS8695_SOFTPLC KS8695_SOFTPLC 1822
1813gprisc3 MACH_GPRISC3 GPRISC3 1823 1813gprisc3 MACH_GPRISC3 GPRISC3 1823
1814stamp9260 MACH_STAMP9260 STAMP9260 1824 1814stamp9g20 MACH_STAMP9G20 STAMP9G20 1824
1815smdk6430 MACH_SMDK6430 SMDK6430 1825 1815smdk6430 MACH_SMDK6430 SMDK6430 1825
1816smdkc100 MACH_SMDKC100 SMDKC100 1826 1816smdkc100 MACH_SMDKC100 SMDKC100 1826
1817tavorevb MACH_TAVOREVB TAVOREVB 1827 1817tavorevb MACH_TAVOREVB TAVOREVB 1827
@@ -1993,4 +1993,134 @@ spark MACH_SPARK SPARK 2002
1993benzina MACH_BENZINA BENZINA 2003 1993benzina MACH_BENZINA BENZINA 2003
1994blaze MACH_BLAZE BLAZE 2004 1994blaze MACH_BLAZE BLAZE 2004
1995linkstation_ls_hgl MACH_LINKSTATION_LS_HGL LINKSTATION_LS_HGL 2005 1995linkstation_ls_hgl MACH_LINKSTATION_LS_HGL LINKSTATION_LS_HGL 2005
1996htcvenus MACH_HTCVENUS HTCVENUS 2006 1996htckovsky MACH_HTCVENUS HTCVENUS 2006
1997sony_prs505 MACH_SONY_PRS505 SONY_PRS505 2007
1998hanlin_v3 MACH_HANLIN_V3 HANLIN_V3 2008
1999sapphira MACH_SAPPHIRA SAPPHIRA 2009
2000dack_sda_01 MACH_DACK_SDA_01 DACK_SDA_01 2010
2001armbox MACH_ARMBOX ARMBOX 2011
2002harris_rvp MACH_HARRIS_RVP HARRIS_RVP 2012
2003ribaldo MACH_RIBALDO RIBALDO 2013
2004agora MACH_AGORA AGORA 2014
2005omap3_mini MACH_OMAP3_MINI OMAP3_MINI 2015
2006a9sam6432_b MACH_A9SAM6432_B A9SAM6432_B 2016
2007usg2410 MACH_USG2410 USG2410 2017
2008pc72052_i10_revb MACH_PC72052_I10_REVB PC72052_I10_REVB 2018
2009mx35_exm32 MACH_MX35_EXM32 MX35_EXM32 2019
2010topas910 MACH_TOPAS910 TOPAS910 2020
2011hyena MACH_HYENA HYENA 2021
2012pospax MACH_POSPAX POSPAX 2022
2013hdl_gx MACH_HDL_GX HDL_GX 2023
2014ctera_4bay MACH_CTERA_4BAY CTERA_4BAY 2024
2015ctera_plug_c MACH_CTERA_PLUG_C CTERA_PLUG_C 2025
2016crwea_plug_i MACH_CRWEA_PLUG_I CRWEA_PLUG_I 2026
2017egauge2 MACH_EGAUGE2 EGAUGE2 2027
2018didj MACH_DIDJ DIDJ 2028
2019m_s3c2443 MACH_MEISTER MEISTER 2029
2020htcblackstone MACH_HTCBLACKSTONE HTCBLACKSTONE 2030
2021cpuat9g20 MACH_CPUAT9G20 CPUAT9G20 2031
2022smdk6440 MACH_SMDK6440 SMDK6440 2032
2023omap_35xx_mvp MACH_OMAP_35XX_MVP OMAP_35XX_MVP 2033
2024ctera_plug_i MACH_CTERA_PLUG_I CTERA_PLUG_I 2034
2025pvg610_100 MACH_PVG610 PVG610 2035
2026hprw6815 MACH_HPRW6815 HPRW6815 2036
2027omap3_oswald MACH_OMAP3_OSWALD OMAP3_OSWALD 2037
2028nas4220b MACH_NAS4220B NAS4220B 2038
2029htcraphael_cdma MACH_HTCRAPHAEL_CDMA HTCRAPHAEL_CDMA 2039
2030htcdiamond_cdma MACH_HTCDIAMOND_CDMA HTCDIAMOND_CDMA 2040
2031scaler MACH_SCALER SCALER 2041
2032zylonite2 MACH_ZYLONITE2 ZYLONITE2 2042
2033aspenite MACH_ASPENITE ASPENITE 2043
2034teton MACH_TETON TETON 2044
2035ttc_dkb MACH_TTC_DKB TTC_DKB 2045
2036bishop2 MACH_BISHOP2 BISHOP2 2046
2037ippv5 MACH_IPPV5 IPPV5 2047
2038farm926 MACH_FARM926 FARM926 2048
2039mmccpu MACH_MMCCPU MMCCPU 2049
2040sgmsfl MACH_SGMSFL SGMSFL 2050
2041tt8000 MACH_TT8000 TT8000 2051
2042zrn4300lp MACH_ZRN4300LP ZRN4300LP 2052
2043mptc MACH_MPTC MPTC 2053
2044h6051 MACH_H6051 H6051 2054
2045pvg610_101 MACH_PVG610_101 PVG610_101 2055
2046stamp9261_pc_evb MACH_STAMP9261_PC_EVB STAMP9261_PC_EVB 2056
2047pelco_odysseus MACH_PELCO_ODYSSEUS PELCO_ODYSSEUS 2057
2048tny_a9260 MACH_TNY_A9260 TNY_A9260 2058
2049tny_a9g20 MACH_TNY_A9G20 TNY_A9G20 2059
2050aesop_mp2530f MACH_AESOP_MP2530F AESOP_MP2530F 2060
2051dx900 MACH_DX900 DX900 2061
2052cpodc2 MACH_CPODC2 CPODC2 2062
2053tilt_8925 MACH_TILT_8925 TILT_8925 2063
2054davinci_dm357_evm MACH_DAVINCI_DM357_EVM DAVINCI_DM357_EVM 2064
2055swordfish MACH_SWORDFISH SWORDFISH 2065
2056corvus MACH_CORVUS CORVUS 2066
2057taurus MACH_TAURUS TAURUS 2067
2058axm MACH_AXM AXM 2068
2059axc MACH_AXC AXC 2069
2060baby MACH_BABY BABY 2070
2061mp200 MACH_MP200 MP200 2071
2062pcm043 MACH_PCM043 PCM043 2072
2063hanlin_v3c MACH_HANLIN_V3C HANLIN_V3C 2073
2064kbk9g20 MACH_KBK9G20 KBK9G20 2074
2065adsturbog5 MACH_ADSTURBOG5 ADSTURBOG5 2075
2066avenger_lite1 MACH_AVENGER_LITE1 AVENGER_LITE1 2076
2067suc82x MACH_SUC SUC 2077
2068at91sam7s256 MACH_AT91SAM7S256 AT91SAM7S256 2078
2069mendoza MACH_MENDOZA MENDOZA 2079
2070kira MACH_KIRA KIRA 2080
2071mx1hbm MACH_MX1HBM MX1HBM 2081
2072quatro43xx MACH_QUATRO43XX QUATRO43XX 2082
2073quatro4230 MACH_QUATRO4230 QUATRO4230 2083
2074nsb400 MACH_NSB400 NSB400 2084
2075drp255 MACH_DRP255 DRP255 2085
2076thoth MACH_THOTH THOTH 2086
2077firestone MACH_FIRESTONE FIRESTONE 2087
2078asusp750 MACH_ASUSP750 ASUSP750 2088
2079ctera_dl MACH_CTERA_DL CTERA_DL 2089
2080socr MACH_SOCR SOCR 2090
2081htcoxygen MACH_HTCOXYGEN HTCOXYGEN 2091
2082heroc MACH_HEROC HEROC 2092
2083zeno6800 MACH_ZENO6800 ZENO6800 2093
2084sc2mcs MACH_SC2MCS SC2MCS 2094
2085gene100 MACH_GENE100 GENE100 2095
2086as353x MACH_AS353X AS353X 2096
2087sheevaplug MACH_SHEEVAPLUG SHEEVAPLUG 2097
2088at91sam9g20 MACH_AT91SAM9G20 AT91SAM9G20 2098
2089mv88f6192gtw_fe MACH_MV88F6192GTW_FE MV88F6192GTW_FE 2099
2090cc9200 MACH_CC9200 CC9200 2100
2091sm9200 MACH_SM9200 SM9200 2101
2092tp9200 MACH_TP9200 TP9200 2102
2093snapperdv MACH_SNAPPERDV SNAPPERDV 2103
2094avengers_lite MACH_AVENGERS_LITE AVENGERS_LITE 2104
2095avengers_lite1 MACH_AVENGERS_LITE1 AVENGERS_LITE1 2105
2096omap3axon MACH_OMAP3AXON OMAP3AXON 2106
2097ma8xx MACH_MA8XX MA8XX 2107
2098mp201ek MACH_MP201EK MP201EK 2108
2099davinci_tux MACH_DAVINCI_TUX DAVINCI_TUX 2109
2100mpa1600 MACH_MPA1600 MPA1600 2110
2101pelco_troy MACH_PELCO_TROY PELCO_TROY 2111
2102nsb667 MACH_NSB667 NSB667 2112
2103rovers5_4mpix MACH_ROVERS5_4MPIX ROVERS5_4MPIX 2113
2104twocom MACH_TWOCOM TWOCOM 2114
2105ubisys_p9_rcu3r2 MACH_UBISYS_P9_RCU3R2 UBISYS_P9_RCU3R2 2115
2106hero_espresso MACH_HERO_ESPRESSO HERO_ESPRESSO 2116
2107afeusb MACH_AFEUSB AFEUSB 2117
2108t830 MACH_T830 T830 2118
2109spd8020_cc MACH_SPD8020_CC SPD8020_CC 2119
2110om_3d7k MACH_OM_3D7K OM_3D7K 2120
2111picocom2 MACH_PICOCOM2 PICOCOM2 2121
2112uwg4mx27 MACH_UWG4MX27 UWG4MX27 2122
2113uwg4mx31 MACH_UWG4MX31 UWG4MX31 2123
2114cherry MACH_CHERRY CHERRY 2124
2115mx51_babbage MACH_MX51_BABBAGE MX51_BABBAGE 2125
2116s3c2440turkiye MACH_S3C2440TURKIYE S3C2440TURKIYE 2126
2117tx37 MACH_TX37 TX37 2127
2118sbc2800_9g20 MACH_SBC2800_9G20 SBC2800_9G20 2128
2119benzglb MACH_BENZGLB BENZGLB 2129
2120benztd MACH_BENZTD BENZTD 2130
2121cartesio_plus MACH_CARTESIO_PLUS CARTESIO_PLUS 2131
2122solrad_g20 MACH_SOLRAD_G20 SOLRAD_G20 2132
2123mx27wallace MACH_MX27WALLACE MX27WALLACE 2133
2124fmzwebmodul MACH_FMZWEBMODUL FMZWEBMODUL 2134
2125rd78x00_masa MACH_RD78X00_MASA RD78X00_MASA 2135
2126smallogger MACH_SMALLOGGER SMALLOGGER 2136
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index e61465a18c7e..206cb7953b0c 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -238,8 +238,12 @@ config MIPS_SIM
238 This option enables support for MIPS Technologies MIPSsim software 238 This option enables support for MIPS Technologies MIPSsim software
239 emulator. 239 emulator.
240 240
241config MACH_EMMA 241config NEC_MARKEINS
242 bool "NEC EMMA series based machines" 242 bool "NEC EMMA2RH Mark-eins board"
243 select SOC_EMMA2RH
244 select HW_HAS_PCI
245 help
246 This enables support for the NEC Electronics Mark-eins boards.
243 247
244config MACH_VR41XX 248config MACH_VR41XX
245 bool "NEC VR4100 series based machines" 249 bool "NEC VR4100 series based machines"
@@ -637,7 +641,6 @@ endchoice
637 641
638source "arch/mips/alchemy/Kconfig" 642source "arch/mips/alchemy/Kconfig"
639source "arch/mips/basler/excite/Kconfig" 643source "arch/mips/basler/excite/Kconfig"
640source "arch/mips/emma/Kconfig"
641source "arch/mips/jazz/Kconfig" 644source "arch/mips/jazz/Kconfig"
642source "arch/mips/lasat/Kconfig" 645source "arch/mips/lasat/Kconfig"
643source "arch/mips/pmc-sierra/Kconfig" 646source "arch/mips/pmc-sierra/Kconfig"
@@ -895,6 +898,18 @@ config MIPS_RM9122
895 bool 898 bool
896 select SERIAL_RM9000 899 select SERIAL_RM9000
897 900
901config SOC_EMMA2RH
902 bool
903 select CEVT_R4K
904 select CSRC_R4K
905 select DMA_NONCOHERENT
906 select IRQ_CPU
907 select SWAP_IO_SPACE
908 select SYS_HAS_CPU_R5500
909 select SYS_SUPPORTS_32BIT_KERNEL
910 select SYS_SUPPORTS_64BIT_KERNEL
911 select SYS_SUPPORTS_BIG_ENDIAN
912
898config SOC_PNX833X 913config SOC_PNX833X
899 bool 914 bool
900 select CEVT_R4K 915 select CEVT_R4K
@@ -930,11 +945,6 @@ config SOC_PNX8550
930config SWAP_IO_SPACE 945config SWAP_IO_SPACE
931 bool 946 bool
932 947
933config EMMA2RH
934 bool
935 depends on MARKEINS
936 default y
937
938config SERIAL_RM9000 948config SERIAL_RM9000
939 bool 949 bool
940 950
diff --git a/arch/mips/Makefile b/arch/mips/Makefile
index 21b00e95daef..22dab2e14348 100644
--- a/arch/mips/Makefile
+++ b/arch/mips/Makefile
@@ -416,7 +416,7 @@ load-$(CONFIG_PNX8550_STB810) += 0xffffffff80060000
416# 416#
417# Common NEC EMMAXXX 417# Common NEC EMMAXXX
418# 418#
419core-$(CONFIG_SOC_EMMA) += arch/mips/emma/common/ 419core-$(CONFIG_SOC_EMMA2RH) += arch/mips/emma/common/
420cflags-$(CONFIG_SOC_EMMA2RH) += -I$(srctree)/arch/mips/include/asm/mach-emma2rh 420cflags-$(CONFIG_SOC_EMMA2RH) += -I$(srctree)/arch/mips/include/asm/mach-emma2rh
421 421
422# 422#
diff --git a/arch/mips/configs/emma2rh_defconfig b/arch/mips/configs/markeins_defconfig
index fea9bc9865a3..bad8901f8f3c 100644
--- a/arch/mips/configs/emma2rh_defconfig
+++ b/arch/mips/configs/markeins_defconfig
@@ -35,7 +35,7 @@ CONFIG_ZONE_DMA=y
35# CONFIG_PNX8550_STB810 is not set 35# CONFIG_PNX8550_STB810 is not set
36# CONFIG_MACH_VR41XX is not set 36# CONFIG_MACH_VR41XX is not set
37# CONFIG_PMC_YOSEMITE is not set 37# CONFIG_PMC_YOSEMITE is not set
38CONFIG_MARKEINS=y 38CONFIG_NEC_MARKEINS=y
39# CONFIG_SGI_IP22 is not set 39# CONFIG_SGI_IP22 is not set
40# CONFIG_SGI_IP27 is not set 40# CONFIG_SGI_IP27 is not set
41# CONFIG_SGI_IP32 is not set 41# CONFIG_SGI_IP32 is not set
@@ -68,7 +68,7 @@ CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y
68CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y 68CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
69CONFIG_IRQ_CPU=y 69CONFIG_IRQ_CPU=y
70CONFIG_SWAP_IO_SPACE=y 70CONFIG_SWAP_IO_SPACE=y
71CONFIG_EMMA2RH=y 71CONFIG_SOC_EMMA2RH=y
72CONFIG_MIPS_L1_CACHE_SHIFT=5 72CONFIG_MIPS_L1_CACHE_SHIFT=5
73 73
74# 74#
@@ -574,9 +574,9 @@ CONFIG_MTD_CFI_UTIL=y
574# 574#
575# CONFIG_MTD_COMPLEX_MAPPINGS is not set 575# CONFIG_MTD_COMPLEX_MAPPINGS is not set
576CONFIG_MTD_PHYSMAP=y 576CONFIG_MTD_PHYSMAP=y
577CONFIG_MTD_PHYSMAP_START=0x1e000000 577CONFIG_MTD_PHYSMAP_START=0x0
578CONFIG_MTD_PHYSMAP_LEN=0x02000000 578CONFIG_MTD_PHYSMAP_LEN=0x0
579CONFIG_MTD_PHYSMAP_BANKWIDTH=2 579CONFIG_MTD_PHYSMAP_BANKWIDTH=0
580# CONFIG_MTD_PLATRAM is not set 580# CONFIG_MTD_PLATRAM is not set
581 581
582# 582#
diff --git a/arch/mips/emma/Kconfig b/arch/mips/emma/Kconfig
deleted file mode 100644
index 9669c72123c9..000000000000
--- a/arch/mips/emma/Kconfig
+++ /dev/null
@@ -1,29 +0,0 @@
1choice
2 prompt "Machine type"
3 depends on MACH_EMMA
4 default NEC_MARKEINS
5
6config NEC_MARKEINS
7 bool "NEC EMMA2RH Mark-eins board"
8 select SOC_EMMA2RH
9 select HW_HAS_PCI
10 help
11 This enables support for the NEC Electronics Mark-eins boards.
12
13endchoice
14
15config SOC_EMMA2RH
16 bool
17 select SOC_EMMA
18 select SYS_HAS_CPU_R5500
19 select SYS_SUPPORTS_32BIT_KERNEL
20 select SYS_SUPPORTS_64BIT_KERNEL
21
22config SOC_EMMA
23 bool
24 select CEVT_R4K
25 select CSRC_R4K
26 select DMA_NONCOHERENT
27 select IRQ_CPU
28 select SWAP_IO_SPACE
29 select SYS_SUPPORTS_BIG_ENDIAN
diff --git a/arch/mips/emma/markeins/platform.c b/arch/mips/emma/markeins/platform.c
index 88e87f6b3442..d5f47e4f0d18 100644
--- a/arch/mips/emma/markeins/platform.c
+++ b/arch/mips/emma/markeins/platform.c
@@ -141,13 +141,6 @@ static struct platform_device serial_emma = {
141 }, 141 },
142}; 142};
143 143
144static struct platform_device *devices[] = {
145 &i2c_emma_devices[0],
146 &i2c_emma_devices[1],
147 &i2c_emma_devices[2],
148 &serial_emma,
149};
150
151static struct mtd_partition markeins_parts[] = { 144static struct mtd_partition markeins_parts[] = {
152 [0] = { 145 [0] = {
153 .name = "RootFS", 146 .name = "RootFS",
@@ -181,11 +174,39 @@ static struct mtd_partition markeins_parts[] = {
181 }, 174 },
182}; 175};
183 176
177static struct physmap_flash_data markeins_flash_data = {
178 .width = 2,
179 .nr_parts = ARRAY_SIZE(markeins_parts),
180 .parts = markeins_parts
181};
182
183static struct resource markeins_flash_resource = {
184 .start = 0x1e000000,
185 .end = 0x02000000,
186 .flags = IORESOURCE_MEM
187};
188
189static struct platform_device markeins_flash_device = {
190 .name = "physmap-flash",
191 .id = 0,
192 .dev = {
193 .platform_data = &markeins_flash_data,
194 },
195 .num_resources = 1,
196 .resource = &markeins_flash_resource,
197};
198
199static struct platform_device *devices[] = {
200 i2c_emma_devices,
201 i2c_emma_devices + 1,
202 i2c_emma_devices + 2,
203 &serial_emma,
204 &markeins_flash_device,
205};
206
184static int __init platform_devices_setup(void) 207static int __init platform_devices_setup(void)
185{ 208{
186 physmap_set_partitions(markeins_parts, ARRAY_SIZE(markeins_parts));
187 return platform_add_devices(devices, ARRAY_SIZE(devices)); 209 return platform_add_devices(devices, ARRAY_SIZE(devices));
188} 210}
189 211
190arch_initcall(platform_devices_setup); 212arch_initcall(platform_devices_setup);
191
diff --git a/arch/mips/include/asm/seccomp.h b/arch/mips/include/asm/seccomp.h
index a6772e9507f5..ae6306ebdcad 100644
--- a/arch/mips/include/asm/seccomp.h
+++ b/arch/mips/include/asm/seccomp.h
@@ -15,8 +15,6 @@
15 */ 15 */
16#ifdef CONFIG_MIPS32_O32 16#ifdef CONFIG_MIPS32_O32
17 17
18#define TIF_32BIT TIF_32BIT_REGS
19
20#define __NR_seccomp_read_32 4003 18#define __NR_seccomp_read_32 4003
21#define __NR_seccomp_write_32 4004 19#define __NR_seccomp_write_32 4004
22#define __NR_seccomp_exit_32 4001 20#define __NR_seccomp_exit_32 4001
@@ -24,8 +22,6 @@
24 22
25#elif defined(CONFIG_MIPS32_N32) 23#elif defined(CONFIG_MIPS32_N32)
26 24
27#define TIF_32BIT _TIF_32BIT_ADDR
28
29#define __NR_seccomp_read_32 6000 25#define __NR_seccomp_read_32 6000
30#define __NR_seccomp_write_32 6001 26#define __NR_seccomp_write_32 6001
31#define __NR_seccomp_exit_32 6058 27#define __NR_seccomp_exit_32 6058
diff --git a/arch/mips/include/asm/thread_info.h b/arch/mips/include/asm/thread_info.h
index 3f76de73c943..676aa2ae1913 100644
--- a/arch/mips/include/asm/thread_info.h
+++ b/arch/mips/include/asm/thread_info.h
@@ -127,6 +127,12 @@ register struct thread_info *__current_thread_info __asm__("$28");
127#define TIF_LOAD_WATCH 25 /* If set, load watch registers */ 127#define TIF_LOAD_WATCH 25 /* If set, load watch registers */
128#define TIF_SYSCALL_TRACE 31 /* syscall trace active */ 128#define TIF_SYSCALL_TRACE 31 /* syscall trace active */
129 129
130#ifdef CONFIG_MIPS32_O32
131#define TIF_32BIT TIF_32BIT_REGS
132#elif defined(CONFIG_MIPS32_N32)
133#define TIF_32BIT _TIF_32BIT_ADDR
134#endif /* CONFIG_MIPS32_O32 */
135
130#define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE) 136#define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE)
131#define _TIF_SIGPENDING (1<<TIF_SIGPENDING) 137#define _TIF_SIGPENDING (1<<TIF_SIGPENDING)
132#define _TIF_NEED_RESCHED (1<<TIF_NEED_RESCHED) 138#define _TIF_NEED_RESCHED (1<<TIF_NEED_RESCHED)
diff --git a/arch/parisc/configs/712_defconfig b/arch/parisc/configs/712_defconfig
index 9fc96e727165..bf34a28895fa 100644
--- a/arch/parisc/configs/712_defconfig
+++ b/arch/parisc/configs/712_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.23 3# Linux kernel version: 2.6.29-rc8
4# Fri Oct 12 21:00:07 2007 4# Fri Mar 13 01:32:55 2009
5# 5#
6CONFIG_PARISC=y 6CONFIG_PARISC=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -33,17 +33,35 @@ CONFIG_SYSVIPC_SYSCTL=y
33CONFIG_POSIX_MQUEUE=y 33CONFIG_POSIX_MQUEUE=y
34# CONFIG_BSD_PROCESS_ACCT is not set 34# CONFIG_BSD_PROCESS_ACCT is not set
35# CONFIG_TASKSTATS is not set 35# CONFIG_TASKSTATS is not set
36# CONFIG_USER_NS is not set
37# CONFIG_AUDIT is not set 36# CONFIG_AUDIT is not set
37
38#
39# RCU Subsystem
40#
41CONFIG_CLASSIC_RCU=y
42# CONFIG_TREE_RCU is not set
43# CONFIG_PREEMPT_RCU is not set
44# CONFIG_TREE_RCU_TRACE is not set
45# CONFIG_PREEMPT_RCU_TRACE is not set
38CONFIG_IKCONFIG=y 46CONFIG_IKCONFIG=y
39CONFIG_IKCONFIG_PROC=y 47CONFIG_IKCONFIG_PROC=y
40CONFIG_LOG_BUF_SHIFT=16 48CONFIG_LOG_BUF_SHIFT=16
49# CONFIG_GROUP_SCHED is not set
50# CONFIG_CGROUPS is not set
41CONFIG_SYSFS_DEPRECATED=y 51CONFIG_SYSFS_DEPRECATED=y
52CONFIG_SYSFS_DEPRECATED_V2=y
42# CONFIG_RELAY is not set 53# CONFIG_RELAY is not set
54CONFIG_NAMESPACES=y
55# CONFIG_UTS_NS is not set
56# CONFIG_IPC_NS is not set
57# CONFIG_USER_NS is not set
58# CONFIG_PID_NS is not set
59# CONFIG_NET_NS is not set
43CONFIG_BLK_DEV_INITRD=y 60CONFIG_BLK_DEV_INITRD=y
44CONFIG_INITRAMFS_SOURCE="" 61CONFIG_INITRAMFS_SOURCE=""
45CONFIG_CC_OPTIMIZE_FOR_SIZE=y 62CONFIG_CC_OPTIMIZE_FOR_SIZE=y
46CONFIG_SYSCTL=y 63CONFIG_SYSCTL=y
64CONFIG_ANON_INODES=y
47# CONFIG_EMBEDDED is not set 65# CONFIG_EMBEDDED is not set
48CONFIG_SYSCTL_SYSCALL=y 66CONFIG_SYSCTL_SYSCALL=y
49CONFIG_KALLSYMS=y 67CONFIG_KALLSYMS=y
@@ -55,29 +73,38 @@ CONFIG_BUG=y
55CONFIG_ELF_CORE=y 73CONFIG_ELF_CORE=y
56CONFIG_BASE_FULL=y 74CONFIG_BASE_FULL=y
57CONFIG_FUTEX=y 75CONFIG_FUTEX=y
58CONFIG_ANON_INODES=y
59CONFIG_EPOLL=y 76CONFIG_EPOLL=y
60CONFIG_SIGNALFD=y 77CONFIG_SIGNALFD=y
78CONFIG_TIMERFD=y
61CONFIG_EVENTFD=y 79CONFIG_EVENTFD=y
62CONFIG_SHMEM=y 80CONFIG_SHMEM=y
81CONFIG_AIO=y
63CONFIG_VM_EVENT_COUNTERS=y 82CONFIG_VM_EVENT_COUNTERS=y
83CONFIG_COMPAT_BRK=y
64CONFIG_SLAB=y 84CONFIG_SLAB=y
65# CONFIG_SLUB is not set 85# CONFIG_SLUB is not set
66# CONFIG_SLOB is not set 86# CONFIG_SLOB is not set
87CONFIG_PROFILING=y
88CONFIG_TRACEPOINTS=y
89# CONFIG_MARKERS is not set
90CONFIG_OPROFILE=m
91CONFIG_HAVE_OPROFILE=y
92# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
93CONFIG_SLABINFO=y
67CONFIG_RT_MUTEXES=y 94CONFIG_RT_MUTEXES=y
68# CONFIG_TINY_SHMEM is not set
69CONFIG_BASE_SMALL=0 95CONFIG_BASE_SMALL=0
70CONFIG_MODULES=y 96CONFIG_MODULES=y
97# CONFIG_MODULE_FORCE_LOAD is not set
71CONFIG_MODULE_UNLOAD=y 98CONFIG_MODULE_UNLOAD=y
72CONFIG_MODULE_FORCE_UNLOAD=y 99CONFIG_MODULE_FORCE_UNLOAD=y
73# CONFIG_MODVERSIONS is not set 100# CONFIG_MODVERSIONS is not set
74# CONFIG_MODULE_SRCVERSION_ALL is not set 101# CONFIG_MODULE_SRCVERSION_ALL is not set
75CONFIG_KMOD=y 102CONFIG_INIT_ALL_POSSIBLE=y
76CONFIG_BLOCK=y 103CONFIG_BLOCK=y
77# CONFIG_LBD is not set 104# CONFIG_LBD is not set
78# CONFIG_BLK_DEV_IO_TRACE is not set 105# CONFIG_BLK_DEV_IO_TRACE is not set
79# CONFIG_LSF is not set
80# CONFIG_BLK_DEV_BSG is not set 106# CONFIG_BLK_DEV_BSG is not set
107# CONFIG_BLK_DEV_INTEGRITY is not set
81 108
82# 109#
83# IO Schedulers 110# IO Schedulers
@@ -91,6 +118,7 @@ CONFIG_DEFAULT_AS=y
91# CONFIG_DEFAULT_CFQ is not set 118# CONFIG_DEFAULT_CFQ is not set
92# CONFIG_DEFAULT_NOOP is not set 119# CONFIG_DEFAULT_NOOP is not set
93CONFIG_DEFAULT_IOSCHED="anticipatory" 120CONFIG_DEFAULT_IOSCHED="anticipatory"
121# CONFIG_FREEZER is not set
94 122
95# 123#
96# Processor type and features 124# Processor type and features
@@ -114,17 +142,19 @@ CONFIG_HZ_250=y
114# CONFIG_HZ_300 is not set 142# CONFIG_HZ_300 is not set
115# CONFIG_HZ_1000 is not set 143# CONFIG_HZ_1000 is not set
116CONFIG_HZ=250 144CONFIG_HZ=250
145# CONFIG_SCHED_HRTICK is not set
117CONFIG_SELECT_MEMORY_MODEL=y 146CONFIG_SELECT_MEMORY_MODEL=y
118CONFIG_FLATMEM_MANUAL=y 147CONFIG_FLATMEM_MANUAL=y
119# CONFIG_DISCONTIGMEM_MANUAL is not set 148# CONFIG_DISCONTIGMEM_MANUAL is not set
120# CONFIG_SPARSEMEM_MANUAL is not set 149# CONFIG_SPARSEMEM_MANUAL is not set
121CONFIG_FLATMEM=y 150CONFIG_FLATMEM=y
122CONFIG_FLAT_NODE_MEM_MAP=y 151CONFIG_FLAT_NODE_MEM_MAP=y
123# CONFIG_SPARSEMEM_STATIC is not set 152CONFIG_PAGEFLAGS_EXTENDED=y
124CONFIG_SPLIT_PTLOCK_CPUS=4096 153CONFIG_SPLIT_PTLOCK_CPUS=4096
125# CONFIG_RESOURCES_64BIT is not set 154# CONFIG_PHYS_ADDR_T_64BIT is not set
126CONFIG_ZONE_DMA_FLAG=0 155CONFIG_ZONE_DMA_FLAG=0
127CONFIG_VIRT_TO_BUS=y 156CONFIG_VIRT_TO_BUS=y
157CONFIG_UNEVICTABLE_LRU=y
128# CONFIG_HPUX is not set 158# CONFIG_HPUX is not set
129 159
130# 160#
@@ -138,10 +168,6 @@ CONFIG_GSC_LASI=y
138# CONFIG_EISA is not set 168# CONFIG_EISA is not set
139# CONFIG_PCI is not set 169# CONFIG_PCI is not set
140# CONFIG_ARCH_SUPPORTS_MSI is not set 170# CONFIG_ARCH_SUPPORTS_MSI is not set
141
142#
143# PCCARD (PCMCIA/CardBus) support
144#
145# CONFIG_PCCARD is not set 171# CONFIG_PCCARD is not set
146 172
147# 173#
@@ -156,16 +182,15 @@ CONFIG_PDC_STABLE=y
156# Executable file formats 182# Executable file formats
157# 183#
158CONFIG_BINFMT_ELF=y 184CONFIG_BINFMT_ELF=y
185# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
186# CONFIG_HAVE_AOUT is not set
159CONFIG_BINFMT_MISC=m 187CONFIG_BINFMT_MISC=m
160
161#
162# Networking
163#
164CONFIG_NET=y 188CONFIG_NET=y
165 189
166# 190#
167# Networking options 191# Networking options
168# 192#
193CONFIG_COMPAT_NET_DEV_OPS=y
169CONFIG_PACKET=y 194CONFIG_PACKET=y
170CONFIG_PACKET_MMAP=y 195CONFIG_PACKET_MMAP=y
171CONFIG_UNIX=y 196CONFIG_UNIX=y
@@ -173,6 +198,7 @@ CONFIG_XFRM=y
173CONFIG_XFRM_USER=m 198CONFIG_XFRM_USER=m
174# CONFIG_XFRM_SUB_POLICY is not set 199# CONFIG_XFRM_SUB_POLICY is not set
175# CONFIG_XFRM_MIGRATE is not set 200# CONFIG_XFRM_MIGRATE is not set
201# CONFIG_XFRM_STATISTICS is not set
176CONFIG_NET_KEY=m 202CONFIG_NET_KEY=m
177# CONFIG_NET_KEY_MIGRATE is not set 203# CONFIG_NET_KEY_MIGRATE is not set
178CONFIG_INET=y 204CONFIG_INET=y
@@ -203,25 +229,25 @@ CONFIG_INET_TCP_DIAG=m
203CONFIG_TCP_CONG_CUBIC=y 229CONFIG_TCP_CONG_CUBIC=y
204CONFIG_DEFAULT_TCP_CONG="cubic" 230CONFIG_DEFAULT_TCP_CONG="cubic"
205# CONFIG_TCP_MD5SIG is not set 231# CONFIG_TCP_MD5SIG is not set
206# CONFIG_IP_VS is not set
207# CONFIG_IPV6 is not set 232# CONFIG_IPV6 is not set
208# CONFIG_INET6_XFRM_TUNNEL is not set
209# CONFIG_INET6_TUNNEL is not set
210# CONFIG_NETWORK_SECMARK is not set 233# CONFIG_NETWORK_SECMARK is not set
211CONFIG_NETFILTER=y 234CONFIG_NETFILTER=y
212# CONFIG_NETFILTER_DEBUG is not set 235# CONFIG_NETFILTER_DEBUG is not set
236CONFIG_NETFILTER_ADVANCED=y
213 237
214# 238#
215# Core Netfilter Configuration 239# Core Netfilter Configuration
216# 240#
217# CONFIG_NETFILTER_NETLINK is not set 241# CONFIG_NETFILTER_NETLINK_QUEUE is not set
218# CONFIG_NF_CONNTRACK_ENABLED is not set 242# CONFIG_NETFILTER_NETLINK_LOG is not set
219# CONFIG_NF_CONNTRACK is not set 243# CONFIG_NF_CONNTRACK is not set
220# CONFIG_NETFILTER_XTABLES is not set 244# CONFIG_NETFILTER_XTABLES is not set
245# CONFIG_IP_VS is not set
221 246
222# 247#
223# IP: Netfilter Configuration 248# IP: Netfilter Configuration
224# 249#
250# CONFIG_NF_DEFRAG_IPV4 is not set
225CONFIG_IP_NF_QUEUE=m 251CONFIG_IP_NF_QUEUE=m
226# CONFIG_IP_NF_IPTABLES is not set 252# CONFIG_IP_NF_IPTABLES is not set
227# CONFIG_IP_NF_ARPTABLES is not set 253# CONFIG_IP_NF_ARPTABLES is not set
@@ -230,6 +256,7 @@ CONFIG_IP_NF_QUEUE=m
230# CONFIG_TIPC is not set 256# CONFIG_TIPC is not set
231# CONFIG_ATM is not set 257# CONFIG_ATM is not set
232# CONFIG_BRIDGE is not set 258# CONFIG_BRIDGE is not set
259# CONFIG_NET_DSA is not set
233# CONFIG_VLAN_8021Q is not set 260# CONFIG_VLAN_8021Q is not set
234# CONFIG_DECNET is not set 261# CONFIG_DECNET is not set
235CONFIG_LLC=m 262CONFIG_LLC=m
@@ -240,28 +267,26 @@ CONFIG_LLC2=m
240# CONFIG_LAPB is not set 267# CONFIG_LAPB is not set
241# CONFIG_ECONET is not set 268# CONFIG_ECONET is not set
242# CONFIG_WAN_ROUTER is not set 269# CONFIG_WAN_ROUTER is not set
243
244#
245# QoS and/or fair queueing
246#
247# CONFIG_NET_SCHED is not set 270# CONFIG_NET_SCHED is not set
271# CONFIG_DCB is not set
248 272
249# 273#
250# Network testing 274# Network testing
251# 275#
252CONFIG_NET_PKTGEN=m 276CONFIG_NET_PKTGEN=m
253# CONFIG_HAMRADIO is not set 277# CONFIG_HAMRADIO is not set
278# CONFIG_CAN is not set
254# CONFIG_IRDA is not set 279# CONFIG_IRDA is not set
255# CONFIG_BT is not set 280# CONFIG_BT is not set
256# CONFIG_AF_RXRPC is not set 281# CONFIG_AF_RXRPC is not set
257 282# CONFIG_PHONET is not set
258# 283CONFIG_WIRELESS=y
259# Wireless
260#
261# CONFIG_CFG80211 is not set 284# CONFIG_CFG80211 is not set
285CONFIG_WIRELESS_OLD_REGULATORY=y
262# CONFIG_WIRELESS_EXT is not set 286# CONFIG_WIRELESS_EXT is not set
287# CONFIG_LIB80211 is not set
263# CONFIG_MAC80211 is not set 288# CONFIG_MAC80211 is not set
264# CONFIG_IEEE80211 is not set 289# CONFIG_WIMAX is not set
265# CONFIG_RFKILL is not set 290# CONFIG_RFKILL is not set
266# CONFIG_NET_9P is not set 291# CONFIG_NET_9P is not set
267 292
@@ -276,6 +301,8 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
276# CONFIG_STANDALONE is not set 301# CONFIG_STANDALONE is not set
277# CONFIG_PREVENT_FIRMWARE_BUILD is not set 302# CONFIG_PREVENT_FIRMWARE_BUILD is not set
278CONFIG_FW_LOADER=y 303CONFIG_FW_LOADER=y
304CONFIG_FIRMWARE_IN_KERNEL=y
305CONFIG_EXTRA_FIRMWARE=""
279# CONFIG_DEBUG_DRIVER is not set 306# CONFIG_DEBUG_DRIVER is not set
280# CONFIG_DEBUG_DEVRES is not set 307# CONFIG_DEBUG_DEVRES is not set
281# CONFIG_SYS_HYPERVISOR is not set 308# CONFIG_SYS_HYPERVISOR is not set
@@ -298,11 +325,19 @@ CONFIG_BLK_DEV_CRYPTOLOOP=y
298CONFIG_BLK_DEV_RAM=y 325CONFIG_BLK_DEV_RAM=y
299CONFIG_BLK_DEV_RAM_COUNT=16 326CONFIG_BLK_DEV_RAM_COUNT=16
300CONFIG_BLK_DEV_RAM_SIZE=6144 327CONFIG_BLK_DEV_RAM_SIZE=6144
301CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 328# CONFIG_BLK_DEV_XIP is not set
302# CONFIG_CDROM_PKTCDVD is not set 329# CONFIG_CDROM_PKTCDVD is not set
303CONFIG_ATA_OVER_ETH=m 330CONFIG_ATA_OVER_ETH=m
331# CONFIG_BLK_DEV_HD is not set
304CONFIG_MISC_DEVICES=y 332CONFIG_MISC_DEVICES=y
333# CONFIG_ENCLOSURE_SERVICES is not set
334# CONFIG_C2PORT is not set
335
336#
337# EEPROM support
338#
305# CONFIG_EEPROM_93CX6 is not set 339# CONFIG_EEPROM_93CX6 is not set
340CONFIG_HAVE_IDE=y
306# CONFIG_IDE is not set 341# CONFIG_IDE is not set
307 342
308# 343#
@@ -342,14 +377,17 @@ CONFIG_SCSI_SPI_ATTRS=y
342# CONFIG_SCSI_FC_ATTRS is not set 377# CONFIG_SCSI_FC_ATTRS is not set
343CONFIG_SCSI_ISCSI_ATTRS=m 378CONFIG_SCSI_ISCSI_ATTRS=m
344# CONFIG_SCSI_SAS_LIBSAS is not set 379# CONFIG_SCSI_SAS_LIBSAS is not set
380# CONFIG_SCSI_SRP_ATTRS is not set
345CONFIG_SCSI_LOWLEVEL=y 381CONFIG_SCSI_LOWLEVEL=y
346# CONFIG_ISCSI_TCP is not set 382# CONFIG_ISCSI_TCP is not set
383# CONFIG_LIBFC is not set
347# CONFIG_SCSI_PPA is not set 384# CONFIG_SCSI_PPA is not set
348# CONFIG_SCSI_IMM is not set 385# CONFIG_SCSI_IMM is not set
349CONFIG_SCSI_LASI700=y 386CONFIG_SCSI_LASI700=y
350CONFIG_53C700_LE_ON_BE=y 387CONFIG_53C700_LE_ON_BE=y
351# CONFIG_SCSI_ZALON is not set 388# CONFIG_SCSI_ZALON is not set
352CONFIG_SCSI_DEBUG=m 389CONFIG_SCSI_DEBUG=m
390# CONFIG_SCSI_DH is not set
353# CONFIG_ATA is not set 391# CONFIG_ATA is not set
354CONFIG_MD=y 392CONFIG_MD=y
355CONFIG_BLK_DEV_MD=m 393CONFIG_BLK_DEV_MD=m
@@ -362,7 +400,6 @@ CONFIG_MD_RAID1=m
362# CONFIG_MD_FAULTY is not set 400# CONFIG_MD_FAULTY is not set
363# CONFIG_BLK_DEV_DM is not set 401# CONFIG_BLK_DEV_DM is not set
364CONFIG_NETDEVICES=y 402CONFIG_NETDEVICES=y
365# CONFIG_NETDEVICES_MULTIQUEUE is not set
366CONFIG_DUMMY=m 403CONFIG_DUMMY=m
367CONFIG_BONDING=m 404CONFIG_BONDING=m
368# CONFIG_MACVLAN is not set 405# CONFIG_MACVLAN is not set
@@ -377,6 +414,9 @@ CONFIG_LASI_82596=y
377# CONFIG_IBM_NEW_EMAC_RGMII is not set 414# CONFIG_IBM_NEW_EMAC_RGMII is not set
378# CONFIG_IBM_NEW_EMAC_TAH is not set 415# CONFIG_IBM_NEW_EMAC_TAH is not set
379# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 416# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
417# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
418# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
419# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
380# CONFIG_B44 is not set 420# CONFIG_B44 is not set
381# CONFIG_NET_POCKET is not set 421# CONFIG_NET_POCKET is not set
382CONFIG_NETDEV_1000=y 422CONFIG_NETDEV_1000=y
@@ -387,6 +427,11 @@ CONFIG_NETDEV_10000=y
387# 427#
388# CONFIG_WLAN_PRE80211 is not set 428# CONFIG_WLAN_PRE80211 is not set
389# CONFIG_WLAN_80211 is not set 429# CONFIG_WLAN_80211 is not set
430# CONFIG_IWLWIFI_LEDS is not set
431
432#
433# Enable WiMAX (Networking options) to see the WiMAX drivers
434#
390# CONFIG_WAN is not set 435# CONFIG_WAN is not set
391# CONFIG_PLIP is not set 436# CONFIG_PLIP is not set
392CONFIG_PPP=m 437CONFIG_PPP=m
@@ -401,7 +446,6 @@ CONFIG_PPPOE=m
401# CONFIG_PPPOL2TP is not set 446# CONFIG_PPPOL2TP is not set
402# CONFIG_SLIP is not set 447# CONFIG_SLIP is not set
403CONFIG_SLHC=m 448CONFIG_SLHC=m
404# CONFIG_SHAPER is not set
405# CONFIG_NETCONSOLE is not set 449# CONFIG_NETCONSOLE is not set
406# CONFIG_NETPOLL is not set 450# CONFIG_NETPOLL is not set
407# CONFIG_NET_POLL_CONTROLLER is not set 451# CONFIG_NET_POLL_CONTROLLER is not set
@@ -423,7 +467,6 @@ CONFIG_INPUT_MOUSEDEV_PSAUX=y
423CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 467CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
424CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 468CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
425# CONFIG_INPUT_JOYDEV is not set 469# CONFIG_INPUT_JOYDEV is not set
426# CONFIG_INPUT_TSDEV is not set
427# CONFIG_INPUT_EVDEV is not set 470# CONFIG_INPUT_EVDEV is not set
428# CONFIG_INPUT_EVBUG is not set 471# CONFIG_INPUT_EVBUG is not set
429 472
@@ -446,8 +489,8 @@ CONFIG_MOUSE_PS2=y
446CONFIG_MOUSE_PS2_ALPS=y 489CONFIG_MOUSE_PS2_ALPS=y
447CONFIG_MOUSE_PS2_LOGIPS2PP=y 490CONFIG_MOUSE_PS2_LOGIPS2PP=y
448CONFIG_MOUSE_PS2_SYNAPTICS=y 491CONFIG_MOUSE_PS2_SYNAPTICS=y
449CONFIG_MOUSE_PS2_LIFEBOOK=y
450CONFIG_MOUSE_PS2_TRACKPOINT=y 492CONFIG_MOUSE_PS2_TRACKPOINT=y
493# CONFIG_MOUSE_PS2_ELANTECH is not set
451# CONFIG_MOUSE_PS2_TOUCHKIT is not set 494# CONFIG_MOUSE_PS2_TOUCHKIT is not set
452CONFIG_MOUSE_SERIAL=m 495CONFIG_MOUSE_SERIAL=m
453# CONFIG_MOUSE_VSXXXAA is not set 496# CONFIG_MOUSE_VSXXXAA is not set
@@ -474,9 +517,11 @@ CONFIG_SERIO_LIBPS2=y
474# Character devices 517# Character devices
475# 518#
476CONFIG_VT=y 519CONFIG_VT=y
520CONFIG_CONSOLE_TRANSLATIONS=y
477CONFIG_VT_CONSOLE=y 521CONFIG_VT_CONSOLE=y
478CONFIG_HW_CONSOLE=y 522CONFIG_HW_CONSOLE=y
479# CONFIG_VT_HW_CONSOLE_BINDING is not set 523# CONFIG_VT_HW_CONSOLE_BINDING is not set
524CONFIG_DEVKMEM=y
480# CONFIG_SERIAL_NONSTANDARD is not set 525# CONFIG_SERIAL_NONSTANDARD is not set
481 526
482# 527#
@@ -501,72 +546,76 @@ CONFIG_PDC_CONSOLE=y
501CONFIG_SERIAL_CORE=y 546CONFIG_SERIAL_CORE=y
502CONFIG_SERIAL_CORE_CONSOLE=y 547CONFIG_SERIAL_CORE_CONSOLE=y
503CONFIG_UNIX98_PTYS=y 548CONFIG_UNIX98_PTYS=y
549# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
504CONFIG_LEGACY_PTYS=y 550CONFIG_LEGACY_PTYS=y
505CONFIG_LEGACY_PTY_COUNT=64 551CONFIG_LEGACY_PTY_COUNT=64
506CONFIG_PRINTER=m 552CONFIG_PRINTER=m
507# CONFIG_LP_CONSOLE is not set 553# CONFIG_LP_CONSOLE is not set
508CONFIG_PPDEV=m 554CONFIG_PPDEV=m
509# CONFIG_TIPAR is not set
510# CONFIG_IPMI_HANDLER is not set 555# CONFIG_IPMI_HANDLER is not set
511# CONFIG_WATCHDOG is not set
512# CONFIG_HW_RANDOM is not set 556# CONFIG_HW_RANDOM is not set
513CONFIG_GEN_RTC=y
514CONFIG_GEN_RTC_X=y
515# CONFIG_R3964 is not set 557# CONFIG_R3964 is not set
516CONFIG_RAW_DRIVER=y 558CONFIG_RAW_DRIVER=y
517CONFIG_MAX_RAW_DEVS=256 559CONFIG_MAX_RAW_DEVS=256
518# CONFIG_TCG_TPM is not set 560# CONFIG_TCG_TPM is not set
519# CONFIG_I2C is not set 561# CONFIG_I2C is not set
520
521#
522# SPI support
523#
524# CONFIG_SPI is not set 562# CONFIG_SPI is not set
525# CONFIG_SPI_MASTER is not set
526# CONFIG_W1 is not set 563# CONFIG_W1 is not set
527# CONFIG_POWER_SUPPLY is not set 564# CONFIG_POWER_SUPPLY is not set
528# CONFIG_HWMON is not set 565# CONFIG_HWMON is not set
566# CONFIG_THERMAL is not set
567# CONFIG_THERMAL_HWMON is not set
568# CONFIG_WATCHDOG is not set
569CONFIG_SSB_POSSIBLE=y
529 570
530# 571#
531# Sonics Silicon Backplane 572# Sonics Silicon Backplane
532# 573#
533CONFIG_SSB_POSSIBLE=y
534# CONFIG_SSB is not set 574# CONFIG_SSB is not set
535 575
536# 576#
537# Multifunction device drivers 577# Multifunction device drivers
538# 578#
579# CONFIG_MFD_CORE is not set
539# CONFIG_MFD_SM501 is not set 580# CONFIG_MFD_SM501 is not set
581# CONFIG_HTC_PASIC3 is not set
582# CONFIG_MFD_TMIO is not set
583# CONFIG_REGULATOR is not set
540 584
541# 585#
542# Multimedia devices 586# Multimedia devices
543# 587#
588
589#
590# Multimedia core support
591#
544# CONFIG_VIDEO_DEV is not set 592# CONFIG_VIDEO_DEV is not set
545# CONFIG_DVB_CORE is not set 593# CONFIG_DVB_CORE is not set
546# CONFIG_DAB is not set 594# CONFIG_VIDEO_MEDIA is not set
547 595
548# 596#
549# Graphics support 597# Multimedia drivers
550# 598#
551# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 599# CONFIG_DAB is not set
552 600
553# 601#
554# Display device support 602# Graphics support
555# 603#
556# CONFIG_DISPLAY_SUPPORT is not set
557# CONFIG_VGASTATE is not set 604# CONFIG_VGASTATE is not set
558CONFIG_VIDEO_OUTPUT_CONTROL=m 605CONFIG_VIDEO_OUTPUT_CONTROL=m
559CONFIG_FB=y 606CONFIG_FB=y
560# CONFIG_FIRMWARE_EDID is not set 607# CONFIG_FIRMWARE_EDID is not set
561# CONFIG_FB_DDC is not set 608# CONFIG_FB_DDC is not set
609# CONFIG_FB_BOOT_VESA_SUPPORT is not set
562CONFIG_FB_CFB_FILLRECT=y 610CONFIG_FB_CFB_FILLRECT=y
563CONFIG_FB_CFB_COPYAREA=y 611CONFIG_FB_CFB_COPYAREA=y
564CONFIG_FB_CFB_IMAGEBLIT=y 612CONFIG_FB_CFB_IMAGEBLIT=y
613# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
565# CONFIG_FB_SYS_FILLRECT is not set 614# CONFIG_FB_SYS_FILLRECT is not set
566# CONFIG_FB_SYS_COPYAREA is not set 615# CONFIG_FB_SYS_COPYAREA is not set
567# CONFIG_FB_SYS_IMAGEBLIT is not set 616# CONFIG_FB_SYS_IMAGEBLIT is not set
617# CONFIG_FB_FOREIGN_ENDIAN is not set
568# CONFIG_FB_SYS_FOPS is not set 618# CONFIG_FB_SYS_FOPS is not set
569CONFIG_FB_DEFERRED_IO=y
570# CONFIG_FB_SVGALIB is not set 619# CONFIG_FB_SVGALIB is not set
571# CONFIG_FB_MACMODES is not set 620# CONFIG_FB_MACMODES is not set
572# CONFIG_FB_BACKLIGHT is not set 621# CONFIG_FB_BACKLIGHT is not set
@@ -579,6 +628,14 @@ CONFIG_FB_TILEBLITTING=y
579CONFIG_FB_STI=y 628CONFIG_FB_STI=y
580# CONFIG_FB_S1D13XXX is not set 629# CONFIG_FB_S1D13XXX is not set
581# CONFIG_FB_VIRTUAL is not set 630# CONFIG_FB_VIRTUAL is not set
631# CONFIG_FB_METRONOME is not set
632# CONFIG_FB_MB862XX is not set
633# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
634
635#
636# Display device support
637#
638# CONFIG_DISPLAY_SUPPORT is not set
582 639
583# 640#
584# Console display driver support 641# Console display driver support
@@ -606,15 +663,8 @@ CONFIG_LOGO=y
606# CONFIG_LOGO_LINUX_VGA16 is not set 663# CONFIG_LOGO_LINUX_VGA16 is not set
607# CONFIG_LOGO_LINUX_CLUT224 is not set 664# CONFIG_LOGO_LINUX_CLUT224 is not set
608CONFIG_LOGO_PARISC_CLUT224=y 665CONFIG_LOGO_PARISC_CLUT224=y
609
610#
611# Sound
612#
613CONFIG_SOUND=y 666CONFIG_SOUND=y
614 667CONFIG_SOUND_OSS_CORE=y
615#
616# Advanced Linux Sound Architecture
617#
618CONFIG_SND=y 668CONFIG_SND=y
619CONFIG_SND_TIMER=y 669CONFIG_SND_TIMER=y
620CONFIG_SND_PCM=y 670CONFIG_SND_PCM=y
@@ -630,10 +680,7 @@ CONFIG_SND_SUPPORT_OLD_API=y
630CONFIG_SND_VERBOSE_PROCFS=y 680CONFIG_SND_VERBOSE_PROCFS=y
631# CONFIG_SND_VERBOSE_PRINTK is not set 681# CONFIG_SND_VERBOSE_PRINTK is not set
632# CONFIG_SND_DEBUG is not set 682# CONFIG_SND_DEBUG is not set
633 683CONFIG_SND_DRIVERS=y
634#
635# Generic devices
636#
637# CONFIG_SND_DUMMY is not set 684# CONFIG_SND_DUMMY is not set
638# CONFIG_SND_VIRMIDI is not set 685# CONFIG_SND_VIRMIDI is not set
639# CONFIG_SND_MTPAV is not set 686# CONFIG_SND_MTPAV is not set
@@ -641,63 +688,82 @@ CONFIG_SND_VERBOSE_PROCFS=y
641# CONFIG_SND_SERIAL_U16550 is not set 688# CONFIG_SND_SERIAL_U16550 is not set
642# CONFIG_SND_MPU401 is not set 689# CONFIG_SND_MPU401 is not set
643# CONFIG_SND_PORTMAN2X4 is not set 690# CONFIG_SND_PORTMAN2X4 is not set
644 691CONFIG_SND_GSC=y
645#
646# GSC devices
647#
648CONFIG_SND_HARMONY=y 692CONFIG_SND_HARMONY=y
649
650#
651# System on Chip audio support
652#
653# CONFIG_SND_SOC is not set 693# CONFIG_SND_SOC is not set
654
655#
656# SoC Audio support for SuperH
657#
658
659#
660# Open Sound System
661#
662# CONFIG_SOUND_PRIME is not set 694# CONFIG_SOUND_PRIME is not set
663CONFIG_HID_SUPPORT=y 695CONFIG_HID_SUPPORT=y
664CONFIG_HID=y 696CONFIG_HID=y
665CONFIG_HID_DEBUG=y 697CONFIG_HID_DEBUG=y
698# CONFIG_HIDRAW is not set
699# CONFIG_HID_PID is not set
700
701#
702# Special HID drivers
703#
704CONFIG_HID_COMPAT=y
666CONFIG_USB_SUPPORT=y 705CONFIG_USB_SUPPORT=y
667# CONFIG_USB_ARCH_HAS_HCD is not set 706# CONFIG_USB_ARCH_HAS_HCD is not set
668# CONFIG_USB_ARCH_HAS_OHCI is not set 707# CONFIG_USB_ARCH_HAS_OHCI is not set
669# CONFIG_USB_ARCH_HAS_EHCI is not set 708# CONFIG_USB_ARCH_HAS_EHCI is not set
670 709
671# 710#
672# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 711# Enable Host or Gadget support to see Inventra options
673# 712#
674 713
675# 714#
676# USB Gadget Support 715# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
677# 716#
678# CONFIG_USB_GADGET is not set 717# CONFIG_USB_GADGET is not set
718
719#
720# OTG and related infrastructure
721#
679# CONFIG_MMC is not set 722# CONFIG_MMC is not set
723# CONFIG_MEMSTICK is not set
680# CONFIG_NEW_LEDS is not set 724# CONFIG_NEW_LEDS is not set
681# CONFIG_RTC_CLASS is not set 725# CONFIG_ACCESSIBILITY is not set
726CONFIG_RTC_LIB=y
727CONFIG_RTC_CLASS=y
728CONFIG_RTC_HCTOSYS=y
729CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
730# CONFIG_RTC_DEBUG is not set
682 731
683# 732#
684# DMA Engine support 733# RTC interfaces
685# 734#
686# CONFIG_DMA_ENGINE is not set 735CONFIG_RTC_INTF_SYSFS=y
736CONFIG_RTC_INTF_PROC=y
737CONFIG_RTC_INTF_DEV=y
738# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
739# CONFIG_RTC_DRV_TEST is not set
687 740
688# 741#
689# DMA Clients 742# SPI RTC drivers
690# 743#
691 744
692# 745#
693# DMA Devices 746# Platform RTC drivers
694# 747#
695# CONFIG_AUXDISPLAY is not set 748# CONFIG_RTC_DRV_DS1286 is not set
749# CONFIG_RTC_DRV_DS1511 is not set
750# CONFIG_RTC_DRV_DS1553 is not set
751# CONFIG_RTC_DRV_DS1742 is not set
752# CONFIG_RTC_DRV_STK17TA8 is not set
753# CONFIG_RTC_DRV_M48T86 is not set
754# CONFIG_RTC_DRV_M48T35 is not set
755# CONFIG_RTC_DRV_M48T59 is not set
756# CONFIG_RTC_DRV_BQ4802 is not set
757# CONFIG_RTC_DRV_V3020 is not set
696 758
697# 759#
698# Userspace I/O 760# on-CPU RTC drivers
699# 761#
762CONFIG_RTC_DRV_PARISC=y
763# CONFIG_DMADEVICES is not set
764# CONFIG_AUXDISPLAY is not set
700# CONFIG_UIO is not set 765# CONFIG_UIO is not set
766# CONFIG_STAGING is not set
701 767
702# 768#
703# File systems 769# File systems
@@ -707,7 +773,7 @@ CONFIG_EXT2_FS=y
707# CONFIG_EXT2_FS_XIP is not set 773# CONFIG_EXT2_FS_XIP is not set
708CONFIG_EXT3_FS=y 774CONFIG_EXT3_FS=y
709# CONFIG_EXT3_FS_XATTR is not set 775# CONFIG_EXT3_FS_XATTR is not set
710# CONFIG_EXT4DEV_FS is not set 776# CONFIG_EXT4_FS is not set
711CONFIG_JBD=y 777CONFIG_JBD=y
712# CONFIG_JBD_DEBUG is not set 778# CONFIG_JBD_DEBUG is not set
713# CONFIG_REISERFS_FS is not set 779# CONFIG_REISERFS_FS is not set
@@ -717,19 +783,18 @@ CONFIG_JFS_FS=m
717# CONFIG_JFS_DEBUG is not set 783# CONFIG_JFS_DEBUG is not set
718# CONFIG_JFS_STATISTICS is not set 784# CONFIG_JFS_STATISTICS is not set
719CONFIG_FS_POSIX_ACL=y 785CONFIG_FS_POSIX_ACL=y
786CONFIG_FILE_LOCKING=y
720CONFIG_XFS_FS=m 787CONFIG_XFS_FS=m
721# CONFIG_XFS_QUOTA is not set 788# CONFIG_XFS_QUOTA is not set
722# CONFIG_XFS_SECURITY is not set
723# CONFIG_XFS_POSIX_ACL is not set 789# CONFIG_XFS_POSIX_ACL is not set
724# CONFIG_XFS_RT is not set 790# CONFIG_XFS_RT is not set
725# CONFIG_GFS2_FS is not set 791# CONFIG_XFS_DEBUG is not set
726# CONFIG_OCFS2_FS is not set 792# CONFIG_OCFS2_FS is not set
727# CONFIG_MINIX_FS is not set 793# CONFIG_BTRFS_FS is not set
728# CONFIG_ROMFS_FS is not set 794CONFIG_DNOTIFY=y
729CONFIG_INOTIFY=y 795CONFIG_INOTIFY=y
730CONFIG_INOTIFY_USER=y 796CONFIG_INOTIFY_USER=y
731# CONFIG_QUOTA is not set 797# CONFIG_QUOTA is not set
732CONFIG_DNOTIFY=y
733# CONFIG_AUTOFS_FS is not set 798# CONFIG_AUTOFS_FS is not set
734CONFIG_AUTOFS4_FS=y 799CONFIG_AUTOFS4_FS=y
735# CONFIG_FUSE_FS is not set 800# CONFIG_FUSE_FS is not set
@@ -759,16 +824,13 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
759CONFIG_PROC_FS=y 824CONFIG_PROC_FS=y
760CONFIG_PROC_KCORE=y 825CONFIG_PROC_KCORE=y
761CONFIG_PROC_SYSCTL=y 826CONFIG_PROC_SYSCTL=y
827CONFIG_PROC_PAGE_MONITOR=y
762CONFIG_SYSFS=y 828CONFIG_SYSFS=y
763CONFIG_TMPFS=y 829CONFIG_TMPFS=y
764# CONFIG_TMPFS_POSIX_ACL is not set 830# CONFIG_TMPFS_POSIX_ACL is not set
765# CONFIG_HUGETLB_PAGE is not set 831# CONFIG_HUGETLB_PAGE is not set
766CONFIG_RAMFS=y
767# CONFIG_CONFIGFS_FS is not set 832# CONFIG_CONFIGFS_FS is not set
768 833CONFIG_MISC_FILESYSTEMS=y
769#
770# Miscellaneous filesystems
771#
772# CONFIG_ADFS_FS is not set 834# CONFIG_ADFS_FS is not set
773# CONFIG_AFFS_FS is not set 835# CONFIG_AFFS_FS is not set
774# CONFIG_ECRYPT_FS is not set 836# CONFIG_ECRYPT_FS is not set
@@ -778,35 +840,34 @@ CONFIG_RAMFS=y
778# CONFIG_BFS_FS is not set 840# CONFIG_BFS_FS is not set
779# CONFIG_EFS_FS is not set 841# CONFIG_EFS_FS is not set
780# CONFIG_CRAMFS is not set 842# CONFIG_CRAMFS is not set
843# CONFIG_SQUASHFS is not set
781# CONFIG_VXFS_FS is not set 844# CONFIG_VXFS_FS is not set
845# CONFIG_MINIX_FS is not set
846# CONFIG_OMFS_FS is not set
782# CONFIG_HPFS_FS is not set 847# CONFIG_HPFS_FS is not set
783# CONFIG_QNX4FS_FS is not set 848# CONFIG_QNX4FS_FS is not set
849# CONFIG_ROMFS_FS is not set
784# CONFIG_SYSV_FS is not set 850# CONFIG_SYSV_FS is not set
785CONFIG_UFS_FS=m 851CONFIG_UFS_FS=m
786# CONFIG_UFS_FS_WRITE is not set 852# CONFIG_UFS_FS_WRITE is not set
787# CONFIG_UFS_DEBUG is not set 853# CONFIG_UFS_DEBUG is not set
788 854CONFIG_NETWORK_FILESYSTEMS=y
789#
790# Network File Systems
791#
792CONFIG_NFS_FS=y 855CONFIG_NFS_FS=y
793CONFIG_NFS_V3=y 856CONFIG_NFS_V3=y
794# CONFIG_NFS_V3_ACL is not set 857# CONFIG_NFS_V3_ACL is not set
795CONFIG_NFS_V4=y 858CONFIG_NFS_V4=y
796CONFIG_NFS_DIRECTIO=y 859CONFIG_ROOT_NFS=y
797CONFIG_NFSD=m 860CONFIG_NFSD=m
798CONFIG_NFSD_V3=y 861CONFIG_NFSD_V3=y
799# CONFIG_NFSD_V3_ACL is not set 862# CONFIG_NFSD_V3_ACL is not set
800CONFIG_NFSD_V4=y 863CONFIG_NFSD_V4=y
801CONFIG_NFSD_TCP=y
802CONFIG_ROOT_NFS=y
803CONFIG_LOCKD=y 864CONFIG_LOCKD=y
804CONFIG_LOCKD_V4=y 865CONFIG_LOCKD_V4=y
805CONFIG_EXPORTFS=m 866CONFIG_EXPORTFS=m
806CONFIG_NFS_COMMON=y 867CONFIG_NFS_COMMON=y
807CONFIG_SUNRPC=y 868CONFIG_SUNRPC=y
808CONFIG_SUNRPC_GSS=y 869CONFIG_SUNRPC_GSS=y
809# CONFIG_SUNRPC_BIND34 is not set 870# CONFIG_SUNRPC_REGISTER_V4 is not set
810CONFIG_RPCSEC_GSS_KRB5=y 871CONFIG_RPCSEC_GSS_KRB5=y
811CONFIG_RPCSEC_GSS_SPKM3=m 872CONFIG_RPCSEC_GSS_SPKM3=m
812CONFIG_SMB_FS=m 873CONFIG_SMB_FS=m
@@ -815,6 +876,7 @@ CONFIG_SMB_NLS_REMOTE="cp437"
815CONFIG_CIFS=m 876CONFIG_CIFS=m
816# CONFIG_CIFS_STATS is not set 877# CONFIG_CIFS_STATS is not set
817# CONFIG_CIFS_WEAK_PW_HASH is not set 878# CONFIG_CIFS_WEAK_PW_HASH is not set
879# CONFIG_CIFS_UPCALL is not set
818# CONFIG_CIFS_XATTR is not set 880# CONFIG_CIFS_XATTR is not set
819# CONFIG_CIFS_DEBUG2 is not set 881# CONFIG_CIFS_DEBUG2 is not set
820# CONFIG_CIFS_EXPERIMENTAL is not set 882# CONFIG_CIFS_EXPERIMENTAL is not set
@@ -827,10 +889,6 @@ CONFIG_CIFS=m
827# 889#
828# CONFIG_PARTITION_ADVANCED is not set 890# CONFIG_PARTITION_ADVANCED is not set
829CONFIG_MSDOS_PARTITION=y 891CONFIG_MSDOS_PARTITION=y
830
831#
832# Native Language Support
833#
834CONFIG_NLS=y 892CONFIG_NLS=y
835CONFIG_NLS_DEFAULT="iso8859-1" 893CONFIG_NLS_DEFAULT="iso8859-1"
836CONFIG_NLS_CODEPAGE_437=m 894CONFIG_NLS_CODEPAGE_437=m
@@ -871,33 +929,28 @@ CONFIG_NLS_ISO8859_15=m
871CONFIG_NLS_KOI8_R=m 929CONFIG_NLS_KOI8_R=m
872CONFIG_NLS_KOI8_U=m 930CONFIG_NLS_KOI8_U=m
873CONFIG_NLS_UTF8=m 931CONFIG_NLS_UTF8=m
874
875#
876# Distributed Lock Manager
877#
878# CONFIG_DLM is not set 932# CONFIG_DLM is not set
879 933
880# 934#
881# Profiling support
882#
883CONFIG_PROFILING=y
884CONFIG_OPROFILE=m
885
886#
887# Kernel hacking 935# Kernel hacking
888# 936#
889# CONFIG_PRINTK_TIME is not set 937# CONFIG_PRINTK_TIME is not set
938CONFIG_ENABLE_WARN_DEPRECATED=y
890CONFIG_ENABLE_MUST_CHECK=y 939CONFIG_ENABLE_MUST_CHECK=y
940CONFIG_FRAME_WARN=1024
891CONFIG_MAGIC_SYSRQ=y 941CONFIG_MAGIC_SYSRQ=y
892# CONFIG_UNUSED_SYMBOLS is not set 942# CONFIG_UNUSED_SYMBOLS is not set
893# CONFIG_DEBUG_FS is not set 943CONFIG_DEBUG_FS=y
894# CONFIG_HEADERS_CHECK is not set 944# CONFIG_HEADERS_CHECK is not set
895CONFIG_DEBUG_KERNEL=y 945CONFIG_DEBUG_KERNEL=y
896# CONFIG_DEBUG_SHIRQ is not set 946# CONFIG_DEBUG_SHIRQ is not set
897CONFIG_DETECT_SOFTLOCKUP=y 947CONFIG_DETECT_SOFTLOCKUP=y
948# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
949CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
898CONFIG_SCHED_DEBUG=y 950CONFIG_SCHED_DEBUG=y
899# CONFIG_SCHEDSTATS is not set 951# CONFIG_SCHEDSTATS is not set
900# CONFIG_TIMER_STATS is not set 952# CONFIG_TIMER_STATS is not set
953# CONFIG_DEBUG_OBJECTS is not set
901# CONFIG_DEBUG_SLAB is not set 954# CONFIG_DEBUG_SLAB is not set
902# CONFIG_DEBUG_RT_MUTEXES is not set 955# CONFIG_DEBUG_RT_MUTEXES is not set
903# CONFIG_RT_MUTEX_TESTER is not set 956# CONFIG_RT_MUTEX_TESTER is not set
@@ -909,10 +962,32 @@ CONFIG_DEBUG_MUTEXES=y
909CONFIG_DEBUG_BUGVERBOSE=y 962CONFIG_DEBUG_BUGVERBOSE=y
910# CONFIG_DEBUG_INFO is not set 963# CONFIG_DEBUG_INFO is not set
911# CONFIG_DEBUG_VM is not set 964# CONFIG_DEBUG_VM is not set
965# CONFIG_DEBUG_WRITECOUNT is not set
966CONFIG_DEBUG_MEMORY_INIT=y
912# CONFIG_DEBUG_LIST is not set 967# CONFIG_DEBUG_LIST is not set
913CONFIG_FORCED_INLINING=y 968# CONFIG_DEBUG_SG is not set
969# CONFIG_DEBUG_NOTIFIERS is not set
970# CONFIG_BOOT_PRINTK_DELAY is not set
914# CONFIG_RCU_TORTURE_TEST is not set 971# CONFIG_RCU_TORTURE_TEST is not set
972# CONFIG_RCU_CPU_STALL_DETECTOR is not set
973# CONFIG_BACKTRACE_SELF_TEST is not set
974# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
915# CONFIG_FAULT_INJECTION is not set 975# CONFIG_FAULT_INJECTION is not set
976# CONFIG_SYSCTL_SYSCALL_CHECK is not set
977CONFIG_NOP_TRACER=y
978CONFIG_RING_BUFFER=y
979CONFIG_TRACING=y
980
981#
982# Tracers
983#
984# CONFIG_SCHED_TRACER is not set
985# CONFIG_CONTEXT_SWITCH_TRACER is not set
986# CONFIG_BOOT_TRACER is not set
987# CONFIG_TRACE_BRANCH_PROFILING is not set
988# CONFIG_FTRACE_STARTUP_TEST is not set
989# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
990# CONFIG_SAMPLES is not set
916CONFIG_DEBUG_RODATA=y 991CONFIG_DEBUG_RODATA=y
917 992
918# 993#
@@ -921,57 +996,113 @@ CONFIG_DEBUG_RODATA=y
921CONFIG_KEYS=y 996CONFIG_KEYS=y
922CONFIG_KEYS_DEBUG_PROC_KEYS=y 997CONFIG_KEYS_DEBUG_PROC_KEYS=y
923# CONFIG_SECURITY is not set 998# CONFIG_SECURITY is not set
999# CONFIG_SECURITYFS is not set
1000# CONFIG_SECURITY_FILE_CAPABILITIES is not set
924CONFIG_CRYPTO=y 1001CONFIG_CRYPTO=y
1002
1003#
1004# Crypto core or helper
1005#
1006# CONFIG_CRYPTO_FIPS is not set
925CONFIG_CRYPTO_ALGAPI=y 1007CONFIG_CRYPTO_ALGAPI=y
1008CONFIG_CRYPTO_ALGAPI2=y
1009CONFIG_CRYPTO_AEAD=m
1010CONFIG_CRYPTO_AEAD2=y
926CONFIG_CRYPTO_BLKCIPHER=y 1011CONFIG_CRYPTO_BLKCIPHER=y
1012CONFIG_CRYPTO_BLKCIPHER2=y
927CONFIG_CRYPTO_HASH=y 1013CONFIG_CRYPTO_HASH=y
1014CONFIG_CRYPTO_HASH2=y
1015CONFIG_CRYPTO_RNG2=y
928CONFIG_CRYPTO_MANAGER=y 1016CONFIG_CRYPTO_MANAGER=y
1017CONFIG_CRYPTO_MANAGER2=y
1018# CONFIG_CRYPTO_GF128MUL is not set
1019CONFIG_CRYPTO_NULL=m
1020# CONFIG_CRYPTO_CRYPTD is not set
1021CONFIG_CRYPTO_AUTHENC=m
1022CONFIG_CRYPTO_TEST=m
1023
1024#
1025# Authenticated Encryption with Associated Data
1026#
1027# CONFIG_CRYPTO_CCM is not set
1028# CONFIG_CRYPTO_GCM is not set
1029# CONFIG_CRYPTO_SEQIV is not set
1030
1031#
1032# Block modes
1033#
1034CONFIG_CRYPTO_CBC=y
1035# CONFIG_CRYPTO_CTR is not set
1036# CONFIG_CRYPTO_CTS is not set
1037CONFIG_CRYPTO_ECB=m
1038# CONFIG_CRYPTO_LRW is not set
1039# CONFIG_CRYPTO_PCBC is not set
1040# CONFIG_CRYPTO_XTS is not set
1041
1042#
1043# Hash modes
1044#
929CONFIG_CRYPTO_HMAC=y 1045CONFIG_CRYPTO_HMAC=y
930# CONFIG_CRYPTO_XCBC is not set 1046# CONFIG_CRYPTO_XCBC is not set
931CONFIG_CRYPTO_NULL=m 1047
1048#
1049# Digest
1050#
1051CONFIG_CRYPTO_CRC32C=m
932CONFIG_CRYPTO_MD4=m 1052CONFIG_CRYPTO_MD4=m
933CONFIG_CRYPTO_MD5=y 1053CONFIG_CRYPTO_MD5=y
1054CONFIG_CRYPTO_MICHAEL_MIC=m
1055# CONFIG_CRYPTO_RMD128 is not set
1056# CONFIG_CRYPTO_RMD160 is not set
1057# CONFIG_CRYPTO_RMD256 is not set
1058# CONFIG_CRYPTO_RMD320 is not set
934CONFIG_CRYPTO_SHA1=m 1059CONFIG_CRYPTO_SHA1=m
935CONFIG_CRYPTO_SHA256=m 1060CONFIG_CRYPTO_SHA256=m
936CONFIG_CRYPTO_SHA512=m 1061CONFIG_CRYPTO_SHA512=m
937CONFIG_CRYPTO_WP512=m
938CONFIG_CRYPTO_TGR192=m 1062CONFIG_CRYPTO_TGR192=m
939# CONFIG_CRYPTO_GF128MUL is not set 1063CONFIG_CRYPTO_WP512=m
940CONFIG_CRYPTO_ECB=m 1064
941CONFIG_CRYPTO_CBC=y 1065#
942# CONFIG_CRYPTO_PCBC is not set 1066# Ciphers
943# CONFIG_CRYPTO_LRW is not set 1067#
944# CONFIG_CRYPTO_XTS is not set
945# CONFIG_CRYPTO_CRYPTD is not set
946CONFIG_CRYPTO_DES=y
947# CONFIG_CRYPTO_FCRYPT is not set
948CONFIG_CRYPTO_BLOWFISH=m
949CONFIG_CRYPTO_TWOFISH=m
950CONFIG_CRYPTO_TWOFISH_COMMON=m
951CONFIG_CRYPTO_SERPENT=m
952CONFIG_CRYPTO_AES=m 1068CONFIG_CRYPTO_AES=m
1069CONFIG_CRYPTO_ANUBIS=m
1070CONFIG_CRYPTO_ARC4=m
1071CONFIG_CRYPTO_BLOWFISH=m
1072# CONFIG_CRYPTO_CAMELLIA is not set
953CONFIG_CRYPTO_CAST5=m 1073CONFIG_CRYPTO_CAST5=m
954CONFIG_CRYPTO_CAST6=m 1074CONFIG_CRYPTO_CAST6=m
955CONFIG_CRYPTO_TEA=m 1075CONFIG_CRYPTO_DES=y
956CONFIG_CRYPTO_ARC4=m 1076# CONFIG_CRYPTO_FCRYPT is not set
957CONFIG_CRYPTO_KHAZAD=m 1077CONFIG_CRYPTO_KHAZAD=m
958CONFIG_CRYPTO_ANUBIS=m 1078# CONFIG_CRYPTO_SALSA20 is not set
959# CONFIG_CRYPTO_SEED is not set 1079# CONFIG_CRYPTO_SEED is not set
1080CONFIG_CRYPTO_SERPENT=m
1081CONFIG_CRYPTO_TEA=m
1082CONFIG_CRYPTO_TWOFISH=m
1083CONFIG_CRYPTO_TWOFISH_COMMON=m
1084
1085#
1086# Compression
1087#
960CONFIG_CRYPTO_DEFLATE=m 1088CONFIG_CRYPTO_DEFLATE=m
961CONFIG_CRYPTO_MICHAEL_MIC=m 1089# CONFIG_CRYPTO_LZO is not set
962CONFIG_CRYPTO_CRC32C=m 1090
963# CONFIG_CRYPTO_CAMELLIA is not set 1091#
964CONFIG_CRYPTO_TEST=m 1092# Random Number Generation
965# CONFIG_CRYPTO_AUTHENC is not set 1093#
1094# CONFIG_CRYPTO_ANSI_CPRNG is not set
966# CONFIG_CRYPTO_HW is not set 1095# CONFIG_CRYPTO_HW is not set
967 1096
968# 1097#
969# Library routines 1098# Library routines
970# 1099#
971CONFIG_BITREVERSE=y 1100CONFIG_BITREVERSE=y
1101CONFIG_GENERIC_FIND_LAST_BIT=y
972CONFIG_CRC_CCITT=m 1102CONFIG_CRC_CCITT=m
973# CONFIG_CRC16 is not set 1103# CONFIG_CRC16 is not set
974# CONFIG_CRC_ITU_T is not set 1104# CONFIG_CRC_T10DIF is not set
1105CONFIG_CRC_ITU_T=m
975CONFIG_CRC32=y 1106CONFIG_CRC32=y
976# CONFIG_CRC7 is not set 1107# CONFIG_CRC7 is not set
977CONFIG_LIBCRC32C=m 1108CONFIG_LIBCRC32C=m
diff --git a/arch/parisc/configs/a500_defconfig b/arch/parisc/configs/a500_defconfig
index ddacc72e38fb..f12e4b8349d9 100644
--- a/arch/parisc/configs/a500_defconfig
+++ b/arch/parisc/configs/a500_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.23 3# Linux kernel version: 2.6.29-rc8
4# Fri Oct 12 21:12:44 2007 4# Fri Mar 13 01:32:56 2009
5# 5#
6CONFIG_PARISC=y 6CONFIG_PARISC=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -34,18 +34,30 @@ CONFIG_SYSVIPC_SYSCTL=y
34CONFIG_POSIX_MQUEUE=y 34CONFIG_POSIX_MQUEUE=y
35# CONFIG_BSD_PROCESS_ACCT is not set 35# CONFIG_BSD_PROCESS_ACCT is not set
36# CONFIG_TASKSTATS is not set 36# CONFIG_TASKSTATS is not set
37# CONFIG_USER_NS is not set
38# CONFIG_AUDIT is not set 37# CONFIG_AUDIT is not set
38
39#
40# RCU Subsystem
41#
42CONFIG_CLASSIC_RCU=y
43# CONFIG_TREE_RCU is not set
44# CONFIG_PREEMPT_RCU is not set
45# CONFIG_TREE_RCU_TRACE is not set
46# CONFIG_PREEMPT_RCU_TRACE is not set
39CONFIG_IKCONFIG=y 47CONFIG_IKCONFIG=y
40CONFIG_IKCONFIG_PROC=y 48CONFIG_IKCONFIG_PROC=y
41CONFIG_LOG_BUF_SHIFT=16 49CONFIG_LOG_BUF_SHIFT=16
42# CONFIG_CPUSETS is not set 50# CONFIG_GROUP_SCHED is not set
51# CONFIG_CGROUPS is not set
43CONFIG_SYSFS_DEPRECATED=y 52CONFIG_SYSFS_DEPRECATED=y
53CONFIG_SYSFS_DEPRECATED_V2=y
44# CONFIG_RELAY is not set 54# CONFIG_RELAY is not set
55# CONFIG_NAMESPACES is not set
45CONFIG_BLK_DEV_INITRD=y 56CONFIG_BLK_DEV_INITRD=y
46CONFIG_INITRAMFS_SOURCE="" 57CONFIG_INITRAMFS_SOURCE=""
47# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 58# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
48CONFIG_SYSCTL=y 59CONFIG_SYSCTL=y
60CONFIG_ANON_INODES=y
49CONFIG_EMBEDDED=y 61CONFIG_EMBEDDED=y
50CONFIG_SYSCTL_SYSCALL=y 62CONFIG_SYSCTL_SYSCALL=y
51CONFIG_KALLSYMS=y 63CONFIG_KALLSYMS=y
@@ -57,28 +69,40 @@ CONFIG_BUG=y
57CONFIG_ELF_CORE=y 69CONFIG_ELF_CORE=y
58CONFIG_BASE_FULL=y 70CONFIG_BASE_FULL=y
59CONFIG_FUTEX=y 71CONFIG_FUTEX=y
60CONFIG_ANON_INODES=y
61CONFIG_EPOLL=y 72CONFIG_EPOLL=y
62CONFIG_SIGNALFD=y 73CONFIG_SIGNALFD=y
74CONFIG_TIMERFD=y
63CONFIG_EVENTFD=y 75CONFIG_EVENTFD=y
64CONFIG_SHMEM=y 76CONFIG_SHMEM=y
77CONFIG_AIO=y
65CONFIG_VM_EVENT_COUNTERS=y 78CONFIG_VM_EVENT_COUNTERS=y
79CONFIG_PCI_QUIRKS=y
80CONFIG_COMPAT_BRK=y
66CONFIG_SLAB=y 81CONFIG_SLAB=y
67# CONFIG_SLUB is not set 82# CONFIG_SLUB is not set
68# CONFIG_SLOB is not set 83# CONFIG_SLOB is not set
84CONFIG_PROFILING=y
85CONFIG_TRACEPOINTS=y
86# CONFIG_MARKERS is not set
87CONFIG_OPROFILE=m
88CONFIG_HAVE_OPROFILE=y
89CONFIG_USE_GENERIC_SMP_HELPERS=y
90# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
91CONFIG_SLABINFO=y
69CONFIG_RT_MUTEXES=y 92CONFIG_RT_MUTEXES=y
70# CONFIG_TINY_SHMEM is not set
71CONFIG_BASE_SMALL=0 93CONFIG_BASE_SMALL=0
72CONFIG_MODULES=y 94CONFIG_MODULES=y
95# CONFIG_MODULE_FORCE_LOAD is not set
73CONFIG_MODULE_UNLOAD=y 96CONFIG_MODULE_UNLOAD=y
74CONFIG_MODULE_FORCE_UNLOAD=y 97CONFIG_MODULE_FORCE_UNLOAD=y
75# CONFIG_MODVERSIONS is not set 98# CONFIG_MODVERSIONS is not set
76# CONFIG_MODULE_SRCVERSION_ALL is not set 99# CONFIG_MODULE_SRCVERSION_ALL is not set
77CONFIG_KMOD=y 100CONFIG_INIT_ALL_POSSIBLE=y
78CONFIG_STOP_MACHINE=y 101CONFIG_STOP_MACHINE=y
79CONFIG_BLOCK=y 102CONFIG_BLOCK=y
80# CONFIG_BLK_DEV_IO_TRACE is not set 103# CONFIG_BLK_DEV_IO_TRACE is not set
81# CONFIG_BLK_DEV_BSG is not set 104# CONFIG_BLK_DEV_BSG is not set
105# CONFIG_BLK_DEV_INTEGRITY is not set
82CONFIG_BLOCK_COMPAT=y 106CONFIG_BLOCK_COMPAT=y
83 107
84# 108#
@@ -93,6 +117,7 @@ CONFIG_IOSCHED_CFQ=y
93CONFIG_DEFAULT_CFQ=y 117CONFIG_DEFAULT_CFQ=y
94# CONFIG_DEFAULT_NOOP is not set 118# CONFIG_DEFAULT_NOOP is not set
95CONFIG_DEFAULT_IOSCHED="cfq" 119CONFIG_DEFAULT_IOSCHED="cfq"
120# CONFIG_FREEZER is not set
96 121
97# 122#
98# Processor type and features 123# Processor type and features
@@ -118,12 +143,12 @@ CONFIG_NODES_SHIFT=3
118CONFIG_PREEMPT_NONE=y 143CONFIG_PREEMPT_NONE=y
119# CONFIG_PREEMPT_VOLUNTARY is not set 144# CONFIG_PREEMPT_VOLUNTARY is not set
120# CONFIG_PREEMPT is not set 145# CONFIG_PREEMPT is not set
121CONFIG_PREEMPT_BKL=y
122# CONFIG_HZ_100 is not set 146# CONFIG_HZ_100 is not set
123CONFIG_HZ_250=y 147CONFIG_HZ_250=y
124# CONFIG_HZ_300 is not set 148# CONFIG_HZ_300 is not set
125# CONFIG_HZ_1000 is not set 149# CONFIG_HZ_1000 is not set
126CONFIG_HZ=250 150CONFIG_HZ=250
151# CONFIG_SCHED_HRTICK is not set
127CONFIG_SELECT_MEMORY_MODEL=y 152CONFIG_SELECT_MEMORY_MODEL=y
128# CONFIG_FLATMEM_MANUAL is not set 153# CONFIG_FLATMEM_MANUAL is not set
129CONFIG_DISCONTIGMEM_MANUAL=y 154CONFIG_DISCONTIGMEM_MANUAL=y
@@ -131,11 +156,12 @@ CONFIG_DISCONTIGMEM_MANUAL=y
131CONFIG_DISCONTIGMEM=y 156CONFIG_DISCONTIGMEM=y
132CONFIG_FLAT_NODE_MEM_MAP=y 157CONFIG_FLAT_NODE_MEM_MAP=y
133CONFIG_NEED_MULTIPLE_NODES=y 158CONFIG_NEED_MULTIPLE_NODES=y
134# CONFIG_SPARSEMEM_STATIC is not set 159CONFIG_PAGEFLAGS_EXTENDED=y
135CONFIG_SPLIT_PTLOCK_CPUS=4 160CONFIG_SPLIT_PTLOCK_CPUS=4
136CONFIG_RESOURCES_64BIT=y 161CONFIG_PHYS_ADDR_T_64BIT=y
137CONFIG_ZONE_DMA_FLAG=0 162CONFIG_ZONE_DMA_FLAG=0
138CONFIG_VIRT_TO_BUS=y 163CONFIG_VIRT_TO_BUS=y
164CONFIG_UNEVICTABLE_LRU=y
139CONFIG_COMPAT=y 165CONFIG_COMPAT=y
140CONFIG_NR_CPUS=8 166CONFIG_NR_CPUS=8
141 167
@@ -145,14 +171,13 @@ CONFIG_NR_CPUS=8
145# CONFIG_GSC is not set 171# CONFIG_GSC is not set
146CONFIG_PCI=y 172CONFIG_PCI=y
147# CONFIG_ARCH_SUPPORTS_MSI is not set 173# CONFIG_ARCH_SUPPORTS_MSI is not set
174CONFIG_PCI_LEGACY=y
148# CONFIG_PCI_DEBUG is not set 175# CONFIG_PCI_DEBUG is not set
176# CONFIG_PCI_STUB is not set
149CONFIG_PCI_LBA=y 177CONFIG_PCI_LBA=y
150CONFIG_IOSAPIC=y 178CONFIG_IOSAPIC=y
151CONFIG_IOMMU_SBA=y 179CONFIG_IOMMU_SBA=y
152 180CONFIG_IOMMU_HELPER=y
153#
154# PCCARD (PCMCIA/CardBus) support
155#
156CONFIG_PCCARD=m 181CONFIG_PCCARD=m
157# CONFIG_PCMCIA_DEBUG is not set 182# CONFIG_PCMCIA_DEBUG is not set
158CONFIG_PCMCIA=m 183CONFIG_PCMCIA=m
@@ -187,16 +212,15 @@ CONFIG_PDC_STABLE=y
187# Executable file formats 212# Executable file formats
188# 213#
189CONFIG_BINFMT_ELF=y 214CONFIG_BINFMT_ELF=y
215# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
216# CONFIG_HAVE_AOUT is not set
190# CONFIG_BINFMT_MISC is not set 217# CONFIG_BINFMT_MISC is not set
191
192#
193# Networking
194#
195CONFIG_NET=y 218CONFIG_NET=y
196 219
197# 220#
198# Networking options 221# Networking options
199# 222#
223CONFIG_COMPAT_NET_DEV_OPS=y
200CONFIG_PACKET=y 224CONFIG_PACKET=y
201CONFIG_PACKET_MMAP=y 225CONFIG_PACKET_MMAP=y
202CONFIG_UNIX=y 226CONFIG_UNIX=y
@@ -204,6 +228,8 @@ CONFIG_XFRM=y
204CONFIG_XFRM_USER=m 228CONFIG_XFRM_USER=m
205# CONFIG_XFRM_SUB_POLICY is not set 229# CONFIG_XFRM_SUB_POLICY is not set
206# CONFIG_XFRM_MIGRATE is not set 230# CONFIG_XFRM_MIGRATE is not set
231# CONFIG_XFRM_STATISTICS is not set
232CONFIG_XFRM_IPCOMP=m
207CONFIG_NET_KEY=m 233CONFIG_NET_KEY=m
208# CONFIG_NET_KEY_MIGRATE is not set 234# CONFIG_NET_KEY_MIGRATE is not set
209CONFIG_INET=y 235CONFIG_INET=y
@@ -234,7 +260,6 @@ CONFIG_INET_TCP_DIAG=y
234CONFIG_TCP_CONG_CUBIC=y 260CONFIG_TCP_CONG_CUBIC=y
235CONFIG_DEFAULT_TCP_CONG="cubic" 261CONFIG_DEFAULT_TCP_CONG="cubic"
236# CONFIG_TCP_MD5SIG is not set 262# CONFIG_TCP_MD5SIG is not set
237# CONFIG_IP_VS is not set
238CONFIG_IPV6=m 263CONFIG_IPV6=m
239# CONFIG_IPV6_PRIVACY is not set 264# CONFIG_IPV6_PRIVACY is not set
240# CONFIG_IPV6_ROUTER_PREF is not set 265# CONFIG_IPV6_ROUTER_PREF is not set
@@ -250,66 +275,72 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=m
250CONFIG_INET6_XFRM_MODE_BEET=m 275CONFIG_INET6_XFRM_MODE_BEET=m
251# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set 276# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
252CONFIG_IPV6_SIT=m 277CONFIG_IPV6_SIT=m
278CONFIG_IPV6_NDISC_NODETYPE=y
253CONFIG_IPV6_TUNNEL=m 279CONFIG_IPV6_TUNNEL=m
254# CONFIG_IPV6_MULTIPLE_TABLES is not set 280# CONFIG_IPV6_MULTIPLE_TABLES is not set
281# CONFIG_IPV6_MROUTE is not set
255# CONFIG_NETWORK_SECMARK is not set 282# CONFIG_NETWORK_SECMARK is not set
256CONFIG_NETFILTER=y 283CONFIG_NETFILTER=y
257# CONFIG_NETFILTER_DEBUG is not set 284# CONFIG_NETFILTER_DEBUG is not set
285CONFIG_NETFILTER_ADVANCED=y
258 286
259# 287#
260# Core Netfilter Configuration 288# Core Netfilter Configuration
261# 289#
262# CONFIG_NETFILTER_NETLINK is not set 290# CONFIG_NETFILTER_NETLINK_QUEUE is not set
263# CONFIG_NF_CONNTRACK_ENABLED is not set 291# CONFIG_NETFILTER_NETLINK_LOG is not set
264# CONFIG_NF_CONNTRACK is not set 292# CONFIG_NF_CONNTRACK is not set
265CONFIG_NETFILTER_XTABLES=m 293CONFIG_NETFILTER_XTABLES=m
266# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set 294# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
267# CONFIG_NETFILTER_XT_TARGET_DSCP is not set 295# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
268# CONFIG_NETFILTER_XT_TARGET_MARK is not set 296# CONFIG_NETFILTER_XT_TARGET_MARK is not set
269# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
270# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set 297# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
298# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
299# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
271# CONFIG_NETFILTER_XT_TARGET_TRACE is not set 300# CONFIG_NETFILTER_XT_TARGET_TRACE is not set
272# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set 301# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
302# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set
273# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set 303# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
274# CONFIG_NETFILTER_XT_MATCH_DCCP is not set 304# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
275# CONFIG_NETFILTER_XT_MATCH_DSCP is not set 305# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
276# CONFIG_NETFILTER_XT_MATCH_ESP is not set 306# CONFIG_NETFILTER_XT_MATCH_ESP is not set
307# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
308# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
277# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set 309# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
278# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set 310# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
279# CONFIG_NETFILTER_XT_MATCH_MAC is not set 311# CONFIG_NETFILTER_XT_MATCH_MAC is not set
280# CONFIG_NETFILTER_XT_MATCH_MARK is not set 312# CONFIG_NETFILTER_XT_MATCH_MARK is not set
281# CONFIG_NETFILTER_XT_MATCH_POLICY is not set
282# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set 313# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
314# CONFIG_NETFILTER_XT_MATCH_OWNER is not set
315# CONFIG_NETFILTER_XT_MATCH_POLICY is not set
283# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set 316# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set
284# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set 317# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
318# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
285# CONFIG_NETFILTER_XT_MATCH_REALM is not set 319# CONFIG_NETFILTER_XT_MATCH_REALM is not set
320# CONFIG_NETFILTER_XT_MATCH_RECENT is not set
286# CONFIG_NETFILTER_XT_MATCH_SCTP is not set 321# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
287# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set 322# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
288# CONFIG_NETFILTER_XT_MATCH_STRING is not set 323# CONFIG_NETFILTER_XT_MATCH_STRING is not set
289# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set 324# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
290# CONFIG_NETFILTER_XT_MATCH_TIME is not set 325# CONFIG_NETFILTER_XT_MATCH_TIME is not set
291# CONFIG_NETFILTER_XT_MATCH_U32 is not set 326# CONFIG_NETFILTER_XT_MATCH_U32 is not set
292# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set 327# CONFIG_IP_VS is not set
293 328
294# 329#
295# IP: Netfilter Configuration 330# IP: Netfilter Configuration
296# 331#
332# CONFIG_NF_DEFRAG_IPV4 is not set
297CONFIG_IP_NF_QUEUE=m 333CONFIG_IP_NF_QUEUE=m
298CONFIG_IP_NF_IPTABLES=m 334CONFIG_IP_NF_IPTABLES=m
299CONFIG_IP_NF_MATCH_IPRANGE=m 335# CONFIG_IP_NF_MATCH_ADDRTYPE is not set
300CONFIG_IP_NF_MATCH_TOS=m
301CONFIG_IP_NF_MATCH_RECENT=m
302CONFIG_IP_NF_MATCH_ECN=m
303# CONFIG_IP_NF_MATCH_AH is not set 336# CONFIG_IP_NF_MATCH_AH is not set
337CONFIG_IP_NF_MATCH_ECN=m
304CONFIG_IP_NF_MATCH_TTL=m 338CONFIG_IP_NF_MATCH_TTL=m
305CONFIG_IP_NF_MATCH_OWNER=m
306# CONFIG_IP_NF_MATCH_ADDRTYPE is not set
307CONFIG_IP_NF_FILTER=m 339CONFIG_IP_NF_FILTER=m
308CONFIG_IP_NF_TARGET_REJECT=m 340CONFIG_IP_NF_TARGET_REJECT=m
309CONFIG_IP_NF_TARGET_LOG=m 341CONFIG_IP_NF_TARGET_LOG=m
310CONFIG_IP_NF_TARGET_ULOG=m 342CONFIG_IP_NF_TARGET_ULOG=m
311CONFIG_IP_NF_MANGLE=m 343CONFIG_IP_NF_MANGLE=m
312CONFIG_IP_NF_TARGET_TOS=m
313CONFIG_IP_NF_TARGET_ECN=m 344CONFIG_IP_NF_TARGET_ECN=m
314# CONFIG_IP_NF_TARGET_TTL is not set 345# CONFIG_IP_NF_TARGET_TTL is not set
315CONFIG_IP_NF_RAW=m 346CONFIG_IP_NF_RAW=m
@@ -318,33 +349,30 @@ CONFIG_IP_NF_ARPFILTER=m
318CONFIG_IP_NF_ARP_MANGLE=m 349CONFIG_IP_NF_ARP_MANGLE=m
319 350
320# 351#
321# IPv6: Netfilter Configuration (EXPERIMENTAL) 352# IPv6: Netfilter Configuration
322# 353#
323# CONFIG_IP6_NF_QUEUE is not set 354# CONFIG_IP6_NF_QUEUE is not set
324CONFIG_IP6_NF_IPTABLES=m 355CONFIG_IP6_NF_IPTABLES=m
325CONFIG_IP6_NF_MATCH_RT=m 356# CONFIG_IP6_NF_MATCH_AH is not set
326CONFIG_IP6_NF_MATCH_OPTS=m 357# CONFIG_IP6_NF_MATCH_EUI64 is not set
327CONFIG_IP6_NF_MATCH_FRAG=m 358CONFIG_IP6_NF_MATCH_FRAG=m
359CONFIG_IP6_NF_MATCH_OPTS=m
328CONFIG_IP6_NF_MATCH_HL=m 360CONFIG_IP6_NF_MATCH_HL=m
329# CONFIG_IP6_NF_MATCH_OWNER is not set
330CONFIG_IP6_NF_MATCH_IPV6HEADER=m 361CONFIG_IP6_NF_MATCH_IPV6HEADER=m
331# CONFIG_IP6_NF_MATCH_AH is not set
332# CONFIG_IP6_NF_MATCH_MH is not set 362# CONFIG_IP6_NF_MATCH_MH is not set
333# CONFIG_IP6_NF_MATCH_EUI64 is not set 363CONFIG_IP6_NF_MATCH_RT=m
334CONFIG_IP6_NF_FILTER=m
335CONFIG_IP6_NF_TARGET_LOG=m 364CONFIG_IP6_NF_TARGET_LOG=m
365CONFIG_IP6_NF_FILTER=m
336CONFIG_IP6_NF_TARGET_REJECT=m 366CONFIG_IP6_NF_TARGET_REJECT=m
337CONFIG_IP6_NF_MANGLE=m 367CONFIG_IP6_NF_MANGLE=m
338# CONFIG_IP6_NF_TARGET_HL is not set 368# CONFIG_IP6_NF_TARGET_HL is not set
339CONFIG_IP6_NF_RAW=m 369CONFIG_IP6_NF_RAW=m
340CONFIG_IP_DCCP=m 370CONFIG_IP_DCCP=m
341CONFIG_INET_DCCP_DIAG=m 371CONFIG_INET_DCCP_DIAG=m
342CONFIG_IP_DCCP_ACKVEC=y
343 372
344# 373#
345# DCCP CCIDs Configuration (EXPERIMENTAL) 374# DCCP CCIDs Configuration (EXPERIMENTAL)
346# 375#
347CONFIG_IP_DCCP_CCID2=m
348# CONFIG_IP_DCCP_CCID2_DEBUG is not set 376# CONFIG_IP_DCCP_CCID2_DEBUG is not set
349# CONFIG_IP_DCCP_CCID3 is not set 377# CONFIG_IP_DCCP_CCID3 is not set
350 378
@@ -356,6 +384,7 @@ CONFIG_IP_DCCP_CCID2=m
356# CONFIG_TIPC is not set 384# CONFIG_TIPC is not set
357# CONFIG_ATM is not set 385# CONFIG_ATM is not set
358# CONFIG_BRIDGE is not set 386# CONFIG_BRIDGE is not set
387# CONFIG_NET_DSA is not set
359# CONFIG_VLAN_8021Q is not set 388# CONFIG_VLAN_8021Q is not set
360# CONFIG_DECNET is not set 389# CONFIG_DECNET is not set
361CONFIG_LLC=m 390CONFIG_LLC=m
@@ -366,28 +395,26 @@ CONFIG_LLC2=m
366# CONFIG_LAPB is not set 395# CONFIG_LAPB is not set
367# CONFIG_ECONET is not set 396# CONFIG_ECONET is not set
368# CONFIG_WAN_ROUTER is not set 397# CONFIG_WAN_ROUTER is not set
369
370#
371# QoS and/or fair queueing
372#
373# CONFIG_NET_SCHED is not set 398# CONFIG_NET_SCHED is not set
399# CONFIG_DCB is not set
374 400
375# 401#
376# Network testing 402# Network testing
377# 403#
378CONFIG_NET_PKTGEN=m 404CONFIG_NET_PKTGEN=m
379# CONFIG_HAMRADIO is not set 405# CONFIG_HAMRADIO is not set
406# CONFIG_CAN is not set
380# CONFIG_IRDA is not set 407# CONFIG_IRDA is not set
381# CONFIG_BT is not set 408# CONFIG_BT is not set
382# CONFIG_AF_RXRPC is not set 409# CONFIG_AF_RXRPC is not set
383 410# CONFIG_PHONET is not set
384# 411CONFIG_WIRELESS=y
385# Wireless
386#
387# CONFIG_CFG80211 is not set 412# CONFIG_CFG80211 is not set
413CONFIG_WIRELESS_OLD_REGULATORY=y
388# CONFIG_WIRELESS_EXT is not set 414# CONFIG_WIRELESS_EXT is not set
415# CONFIG_LIB80211 is not set
389# CONFIG_MAC80211 is not set 416# CONFIG_MAC80211 is not set
390# CONFIG_IEEE80211 is not set 417# CONFIG_WIMAX is not set
391# CONFIG_RFKILL is not set 418# CONFIG_RFKILL is not set
392# CONFIG_NET_9P is not set 419# CONFIG_NET_9P is not set
393 420
@@ -402,6 +429,8 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
402# CONFIG_STANDALONE is not set 429# CONFIG_STANDALONE is not set
403# CONFIG_PREVENT_FIRMWARE_BUILD is not set 430# CONFIG_PREVENT_FIRMWARE_BUILD is not set
404CONFIG_FW_LOADER=y 431CONFIG_FW_LOADER=y
432CONFIG_FIRMWARE_IN_KERNEL=y
433CONFIG_EXTRA_FIRMWARE=""
405# CONFIG_DEBUG_DRIVER is not set 434# CONFIG_DEBUG_DRIVER is not set
406# CONFIG_DEBUG_DEVRES is not set 435# CONFIG_DEBUG_DEVRES is not set
407# CONFIG_SYS_HYPERVISOR is not set 436# CONFIG_SYS_HYPERVISOR is not set
@@ -421,14 +450,23 @@ CONFIG_BLK_DEV_LOOP=y
421CONFIG_BLK_DEV_RAM=y 450CONFIG_BLK_DEV_RAM=y
422CONFIG_BLK_DEV_RAM_COUNT=16 451CONFIG_BLK_DEV_RAM_COUNT=16
423CONFIG_BLK_DEV_RAM_SIZE=6144 452CONFIG_BLK_DEV_RAM_SIZE=6144
424CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 453# CONFIG_BLK_DEV_XIP is not set
425# CONFIG_CDROM_PKTCDVD is not set 454# CONFIG_CDROM_PKTCDVD is not set
426# CONFIG_ATA_OVER_ETH is not set 455# CONFIG_ATA_OVER_ETH is not set
456# CONFIG_BLK_DEV_HD is not set
427CONFIG_MISC_DEVICES=y 457CONFIG_MISC_DEVICES=y
428# CONFIG_PHANTOM is not set 458# CONFIG_PHANTOM is not set
429# CONFIG_EEPROM_93CX6 is not set
430# CONFIG_SGI_IOC4 is not set 459# CONFIG_SGI_IOC4 is not set
431# CONFIG_TIFM_CORE is not set 460# CONFIG_TIFM_CORE is not set
461# CONFIG_ENCLOSURE_SERVICES is not set
462# CONFIG_HP_ILO is not set
463# CONFIG_C2PORT is not set
464
465#
466# EEPROM support
467#
468# CONFIG_EEPROM_93CX6 is not set
469CONFIG_HAVE_IDE=y
432# CONFIG_IDE is not set 470# CONFIG_IDE is not set
433 471
434# 472#
@@ -468,8 +506,10 @@ CONFIG_SCSI_SPI_ATTRS=y
468CONFIG_SCSI_FC_ATTRS=m 506CONFIG_SCSI_FC_ATTRS=m
469CONFIG_SCSI_ISCSI_ATTRS=m 507CONFIG_SCSI_ISCSI_ATTRS=m
470# CONFIG_SCSI_SAS_LIBSAS is not set 508# CONFIG_SCSI_SAS_LIBSAS is not set
509# CONFIG_SCSI_SRP_ATTRS is not set
471CONFIG_SCSI_LOWLEVEL=y 510CONFIG_SCSI_LOWLEVEL=y
472# CONFIG_ISCSI_TCP is not set 511# CONFIG_ISCSI_TCP is not set
512# CONFIG_SCSI_CXGB3_ISCSI is not set
473# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 513# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
474# CONFIG_SCSI_3W_9XXX is not set 514# CONFIG_SCSI_3W_9XXX is not set
475# CONFIG_SCSI_ACARD is not set 515# CONFIG_SCSI_ACARD is not set
@@ -478,16 +518,21 @@ CONFIG_SCSI_LOWLEVEL=y
478# CONFIG_SCSI_AIC7XXX_OLD is not set 518# CONFIG_SCSI_AIC7XXX_OLD is not set
479# CONFIG_SCSI_AIC79XX is not set 519# CONFIG_SCSI_AIC79XX is not set
480# CONFIG_SCSI_AIC94XX is not set 520# CONFIG_SCSI_AIC94XX is not set
521# CONFIG_SCSI_DPT_I2O is not set
522# CONFIG_SCSI_ADVANSYS is not set
481# CONFIG_SCSI_ARCMSR is not set 523# CONFIG_SCSI_ARCMSR is not set
482# CONFIG_MEGARAID_NEWGEN is not set 524# CONFIG_MEGARAID_NEWGEN is not set
483# CONFIG_MEGARAID_LEGACY is not set 525# CONFIG_MEGARAID_LEGACY is not set
484# CONFIG_MEGARAID_SAS is not set 526# CONFIG_MEGARAID_SAS is not set
485# CONFIG_SCSI_HPTIOP is not set 527# CONFIG_SCSI_HPTIOP is not set
528# CONFIG_LIBFC is not set
529# CONFIG_FCOE is not set
486# CONFIG_SCSI_DMX3191D is not set 530# CONFIG_SCSI_DMX3191D is not set
487# CONFIG_SCSI_FUTURE_DOMAIN is not set 531# CONFIG_SCSI_FUTURE_DOMAIN is not set
488# CONFIG_SCSI_IPS is not set 532# CONFIG_SCSI_IPS is not set
489# CONFIG_SCSI_INITIO is not set 533# CONFIG_SCSI_INITIO is not set
490# CONFIG_SCSI_INIA100 is not set 534# CONFIG_SCSI_INIA100 is not set
535# CONFIG_SCSI_MVSAS is not set
491# CONFIG_SCSI_STEX is not set 536# CONFIG_SCSI_STEX is not set
492CONFIG_SCSI_SYM53C8XX_2=y 537CONFIG_SCSI_SYM53C8XX_2=y
493CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 538CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
@@ -503,9 +548,11 @@ CONFIG_SCSI_QLOGIC_1280=m
503CONFIG_SCSI_DEBUG=m 548CONFIG_SCSI_DEBUG=m
504# CONFIG_SCSI_SRP is not set 549# CONFIG_SCSI_SRP is not set
505# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set 550# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
551# CONFIG_SCSI_DH is not set
506# CONFIG_ATA is not set 552# CONFIG_ATA is not set
507CONFIG_MD=y 553CONFIG_MD=y
508CONFIG_BLK_DEV_MD=y 554CONFIG_BLK_DEV_MD=y
555CONFIG_MD_AUTODETECT=y
509CONFIG_MD_LINEAR=y 556CONFIG_MD_LINEAR=y
510CONFIG_MD_RAID0=y 557CONFIG_MD_RAID0=y
511CONFIG_MD_RAID1=y 558CONFIG_MD_RAID1=y
@@ -514,10 +561,6 @@ CONFIG_MD_RAID1=y
514# CONFIG_MD_MULTIPATH is not set 561# CONFIG_MD_MULTIPATH is not set
515# CONFIG_MD_FAULTY is not set 562# CONFIG_MD_FAULTY is not set
516# CONFIG_BLK_DEV_DM is not set 563# CONFIG_BLK_DEV_DM is not set
517
518#
519# Fusion MPT device support
520#
521CONFIG_FUSION=y 564CONFIG_FUSION=y
522CONFIG_FUSION_SPI=m 565CONFIG_FUSION_SPI=m
523CONFIG_FUSION_FC=m 566CONFIG_FUSION_FC=m
@@ -529,20 +572,40 @@ CONFIG_FUSION_CTL=m
529# 572#
530# IEEE 1394 (FireWire) support 573# IEEE 1394 (FireWire) support
531# 574#
575
576#
577# Enable only one of the two stacks, unless you know what you are doing
578#
532# CONFIG_FIREWIRE is not set 579# CONFIG_FIREWIRE is not set
533# CONFIG_IEEE1394 is not set 580# CONFIG_IEEE1394 is not set
534# CONFIG_I2O is not set 581# CONFIG_I2O is not set
535CONFIG_NETDEVICES=y 582CONFIG_NETDEVICES=y
536# CONFIG_NETDEVICES_MULTIQUEUE is not set
537CONFIG_DUMMY=m 583CONFIG_DUMMY=m
538CONFIG_BONDING=m 584CONFIG_BONDING=m
539# CONFIG_MACVLAN is not set 585# CONFIG_MACVLAN is not set
540# CONFIG_EQUALIZER is not set 586# CONFIG_EQUALIZER is not set
541CONFIG_TUN=m 587CONFIG_TUN=m
542# CONFIG_VETH is not set 588# CONFIG_VETH is not set
543# CONFIG_IP1000 is not set
544# CONFIG_ARCNET is not set 589# CONFIG_ARCNET is not set
545# CONFIG_PHYLIB is not set 590CONFIG_PHYLIB=m
591
592#
593# MII PHY device drivers
594#
595# CONFIG_MARVELL_PHY is not set
596# CONFIG_DAVICOM_PHY is not set
597# CONFIG_QSEMI_PHY is not set
598# CONFIG_LXT_PHY is not set
599# CONFIG_CICADA_PHY is not set
600# CONFIG_VITESSE_PHY is not set
601# CONFIG_SMSC_PHY is not set
602# CONFIG_BROADCOM_PHY is not set
603# CONFIG_ICPLUS_PHY is not set
604# CONFIG_REALTEK_PHY is not set
605# CONFIG_NATIONAL_PHY is not set
606# CONFIG_STE10XP is not set
607# CONFIG_LSI_ET1011C_PHY is not set
608# CONFIG_MDIO_BITBANG is not set
546CONFIG_NET_ETHERNET=y 609CONFIG_NET_ETHERNET=y
547CONFIG_MII=m 610CONFIG_MII=m
548# CONFIG_HAPPYMEAL is not set 611# CONFIG_HAPPYMEAL is not set
@@ -567,33 +630,38 @@ CONFIG_HP100=m
567# CONFIG_IBM_NEW_EMAC_RGMII is not set 630# CONFIG_IBM_NEW_EMAC_RGMII is not set
568# CONFIG_IBM_NEW_EMAC_TAH is not set 631# CONFIG_IBM_NEW_EMAC_TAH is not set
569# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 632# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
633# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
634# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
635# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
570CONFIG_NET_PCI=y 636CONFIG_NET_PCI=y
571CONFIG_PCNET32=m 637CONFIG_PCNET32=m
572# CONFIG_PCNET32_NAPI is not set
573# CONFIG_AMD8111_ETH is not set 638# CONFIG_AMD8111_ETH is not set
574# CONFIG_ADAPTEC_STARFIRE is not set 639# CONFIG_ADAPTEC_STARFIRE is not set
575# CONFIG_B44 is not set 640# CONFIG_B44 is not set
576# CONFIG_FORCEDETH is not set 641# CONFIG_FORCEDETH is not set
577# CONFIG_EEPRO100 is not set
578CONFIG_E100=m 642CONFIG_E100=m
579# CONFIG_FEALNX is not set 643# CONFIG_FEALNX is not set
580# CONFIG_NATSEMI is not set 644# CONFIG_NATSEMI is not set
581# CONFIG_NE2K_PCI is not set 645# CONFIG_NE2K_PCI is not set
582# CONFIG_8139CP is not set 646# CONFIG_8139CP is not set
583# CONFIG_8139TOO is not set 647# CONFIG_8139TOO is not set
648# CONFIG_R6040 is not set
584# CONFIG_SIS900 is not set 649# CONFIG_SIS900 is not set
585# CONFIG_EPIC100 is not set 650# CONFIG_EPIC100 is not set
651# CONFIG_SMSC9420 is not set
586# CONFIG_SUNDANCE is not set 652# CONFIG_SUNDANCE is not set
653# CONFIG_TLAN is not set
587# CONFIG_VIA_RHINE is not set 654# CONFIG_VIA_RHINE is not set
588# CONFIG_SC92031 is not set 655# CONFIG_SC92031 is not set
656# CONFIG_ATL2 is not set
589CONFIG_NETDEV_1000=y 657CONFIG_NETDEV_1000=y
590CONFIG_ACENIC=m 658CONFIG_ACENIC=m
591CONFIG_ACENIC_OMIT_TIGON_I=y 659CONFIG_ACENIC_OMIT_TIGON_I=y
592# CONFIG_DL2K is not set 660# CONFIG_DL2K is not set
593CONFIG_E1000=m 661CONFIG_E1000=m
594CONFIG_E1000_NAPI=y
595# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
596# CONFIG_E1000E is not set 662# CONFIG_E1000E is not set
663# CONFIG_IP1000 is not set
664# CONFIG_IGB is not set
597# CONFIG_NS83820 is not set 665# CONFIG_NS83820 is not set
598# CONFIG_HAMACHI is not set 666# CONFIG_HAMACHI is not set
599# CONFIG_YELLOWFIN is not set 667# CONFIG_YELLOWFIN is not set
@@ -601,23 +669,31 @@ CONFIG_E1000_NAPI=y
601# CONFIG_SIS190 is not set 669# CONFIG_SIS190 is not set
602# CONFIG_SKGE is not set 670# CONFIG_SKGE is not set
603# CONFIG_SKY2 is not set 671# CONFIG_SKY2 is not set
604# CONFIG_SK98LIN is not set
605# CONFIG_VIA_VELOCITY is not set 672# CONFIG_VIA_VELOCITY is not set
606CONFIG_TIGON3=m 673CONFIG_TIGON3=m
607# CONFIG_BNX2 is not set 674# CONFIG_BNX2 is not set
608# CONFIG_QLA3XXX is not set 675# CONFIG_QLA3XXX is not set
609# CONFIG_ATL1 is not set 676# CONFIG_ATL1 is not set
677# CONFIG_ATL1E is not set
678# CONFIG_ATL1C is not set
679# CONFIG_JME is not set
610CONFIG_NETDEV_10000=y 680CONFIG_NETDEV_10000=y
611# CONFIG_CHELSIO_T1 is not set 681# CONFIG_CHELSIO_T1 is not set
682CONFIG_CHELSIO_T3_DEPENDS=y
612# CONFIG_CHELSIO_T3 is not set 683# CONFIG_CHELSIO_T3 is not set
684# CONFIG_ENIC is not set
613# CONFIG_IXGBE is not set 685# CONFIG_IXGBE is not set
614# CONFIG_IXGB is not set 686# CONFIG_IXGB is not set
615# CONFIG_S2IO is not set 687# CONFIG_S2IO is not set
616# CONFIG_MYRI10GE is not set 688# CONFIG_MYRI10GE is not set
617# CONFIG_NETXEN_NIC is not set 689# CONFIG_NETXEN_NIC is not set
618# CONFIG_NIU is not set 690# CONFIG_NIU is not set
691# CONFIG_MLX4_EN is not set
619# CONFIG_MLX4_CORE is not set 692# CONFIG_MLX4_CORE is not set
620# CONFIG_TEHUTI is not set 693# CONFIG_TEHUTI is not set
694# CONFIG_BNX2X is not set
695# CONFIG_QLGE is not set
696# CONFIG_SFC is not set
621# CONFIG_TR is not set 697# CONFIG_TR is not set
622 698
623# 699#
@@ -625,6 +701,11 @@ CONFIG_NETDEV_10000=y
625# 701#
626# CONFIG_WLAN_PRE80211 is not set 702# CONFIG_WLAN_PRE80211 is not set
627# CONFIG_WLAN_80211 is not set 703# CONFIG_WLAN_80211 is not set
704# CONFIG_IWLWIFI_LEDS is not set
705
706#
707# Enable WiMAX (Networking options) to see the WiMAX drivers
708#
628CONFIG_NET_PCMCIA=y 709CONFIG_NET_PCMCIA=y
629CONFIG_PCMCIA_3C589=m 710CONFIG_PCMCIA_3C589=m
630CONFIG_PCMCIA_3C574=m 711CONFIG_PCMCIA_3C574=m
@@ -650,7 +731,6 @@ CONFIG_PPP_BSDCOMP=m
650# CONFIG_SLIP is not set 731# CONFIG_SLIP is not set
651CONFIG_SLHC=m 732CONFIG_SLHC=m
652# CONFIG_NET_FC is not set 733# CONFIG_NET_FC is not set
653# CONFIG_SHAPER is not set
654# CONFIG_NETCONSOLE is not set 734# CONFIG_NETCONSOLE is not set
655# CONFIG_NETPOLL is not set 735# CONFIG_NETPOLL is not set
656# CONFIG_NET_POLL_CONTROLLER is not set 736# CONFIG_NET_POLL_CONTROLLER is not set
@@ -669,7 +749,6 @@ CONFIG_INPUT=y
669# 749#
670# CONFIG_INPUT_MOUSEDEV is not set 750# CONFIG_INPUT_MOUSEDEV is not set
671# CONFIG_INPUT_JOYDEV is not set 751# CONFIG_INPUT_JOYDEV is not set
672# CONFIG_INPUT_TSDEV is not set
673# CONFIG_INPUT_EVDEV is not set 752# CONFIG_INPUT_EVDEV is not set
674# CONFIG_INPUT_EVBUG is not set 753# CONFIG_INPUT_EVBUG is not set
675 754
@@ -693,10 +772,13 @@ CONFIG_INPUT=y
693# Character devices 772# Character devices
694# 773#
695CONFIG_VT=y 774CONFIG_VT=y
775CONFIG_CONSOLE_TRANSLATIONS=y
696CONFIG_VT_CONSOLE=y 776CONFIG_VT_CONSOLE=y
697CONFIG_HW_CONSOLE=y 777CONFIG_HW_CONSOLE=y
698# CONFIG_VT_HW_CONSOLE_BINDING is not set 778# CONFIG_VT_HW_CONSOLE_BINDING is not set
779CONFIG_DEVKMEM=y
699# CONFIG_SERIAL_NONSTANDARD is not set 780# CONFIG_SERIAL_NONSTANDARD is not set
781# CONFIG_NOZOMI is not set
700 782
701# 783#
702# Serial drivers 784# Serial drivers
@@ -721,17 +803,12 @@ CONFIG_SERIAL_CORE=y
721CONFIG_SERIAL_CORE_CONSOLE=y 803CONFIG_SERIAL_CORE_CONSOLE=y
722# CONFIG_SERIAL_JSM is not set 804# CONFIG_SERIAL_JSM is not set
723CONFIG_UNIX98_PTYS=y 805CONFIG_UNIX98_PTYS=y
806# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
724# CONFIG_LEGACY_PTYS is not set 807# CONFIG_LEGACY_PTYS is not set
725# CONFIG_IPMI_HANDLER is not set 808# CONFIG_IPMI_HANDLER is not set
726# CONFIG_WATCHDOG is not set
727# CONFIG_HW_RANDOM is not set 809# CONFIG_HW_RANDOM is not set
728CONFIG_GEN_RTC=y
729CONFIG_GEN_RTC_X=y
730# CONFIG_R3964 is not set 810# CONFIG_R3964 is not set
731# CONFIG_APPLICOM is not set 811# CONFIG_APPLICOM is not set
732CONFIG_AGP=y
733CONFIG_AGP_PARISC=y
734# CONFIG_DRM is not set
735 812
736# 813#
737# PCMCIA character devices 814# PCMCIA character devices
@@ -739,51 +816,66 @@ CONFIG_AGP_PARISC=y
739# CONFIG_SYNCLINK_CS is not set 816# CONFIG_SYNCLINK_CS is not set
740# CONFIG_CARDMAN_4000 is not set 817# CONFIG_CARDMAN_4000 is not set
741# CONFIG_CARDMAN_4040 is not set 818# CONFIG_CARDMAN_4040 is not set
819# CONFIG_IPWIRELESS is not set
742CONFIG_RAW_DRIVER=y 820CONFIG_RAW_DRIVER=y
743CONFIG_MAX_RAW_DEVS=256 821CONFIG_MAX_RAW_DEVS=256
744# CONFIG_TCG_TPM is not set 822# CONFIG_TCG_TPM is not set
745CONFIG_DEVPORT=y 823CONFIG_DEVPORT=y
746# CONFIG_I2C is not set 824# CONFIG_I2C is not set
747
748#
749# SPI support
750#
751# CONFIG_SPI is not set 825# CONFIG_SPI is not set
752# CONFIG_SPI_MASTER is not set
753# CONFIG_W1 is not set 826# CONFIG_W1 is not set
754# CONFIG_POWER_SUPPLY is not set 827# CONFIG_POWER_SUPPLY is not set
755# CONFIG_HWMON is not set 828# CONFIG_HWMON is not set
829# CONFIG_THERMAL is not set
830# CONFIG_THERMAL_HWMON is not set
831# CONFIG_WATCHDOG is not set
832CONFIG_SSB_POSSIBLE=y
756 833
757# 834#
758# Sonics Silicon Backplane 835# Sonics Silicon Backplane
759# 836#
760CONFIG_SSB_POSSIBLE=y
761# CONFIG_SSB is not set 837# CONFIG_SSB is not set
762 838
763# 839#
764# Multifunction device drivers 840# Multifunction device drivers
765# 841#
842# CONFIG_MFD_CORE is not set
766# CONFIG_MFD_SM501 is not set 843# CONFIG_MFD_SM501 is not set
844# CONFIG_HTC_PASIC3 is not set
845# CONFIG_MFD_TMIO is not set
846# CONFIG_REGULATOR is not set
767 847
768# 848#
769# Multimedia devices 849# Multimedia devices
770# 850#
851
852#
853# Multimedia core support
854#
771# CONFIG_VIDEO_DEV is not set 855# CONFIG_VIDEO_DEV is not set
772# CONFIG_DVB_CORE is not set 856# CONFIG_DVB_CORE is not set
857# CONFIG_VIDEO_MEDIA is not set
858
859#
860# Multimedia drivers
861#
773# CONFIG_DAB is not set 862# CONFIG_DAB is not set
774 863
775# 864#
776# Graphics support 865# Graphics support
777# 866#
867CONFIG_AGP=y
868CONFIG_AGP_PARISC=y
869# CONFIG_DRM is not set
870# CONFIG_VGASTATE is not set
871# CONFIG_VIDEO_OUTPUT_CONTROL is not set
872# CONFIG_FB is not set
778# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 873# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
779 874
780# 875#
781# Display device support 876# Display device support
782# 877#
783# CONFIG_DISPLAY_SUPPORT is not set 878# CONFIG_DISPLAY_SUPPORT is not set
784# CONFIG_VGASTATE is not set
785# CONFIG_VIDEO_OUTPUT_CONTROL is not set
786# CONFIG_FB is not set
787 879
788# 880#
789# Console display driver support 881# Console display driver support
@@ -792,50 +884,83 @@ CONFIG_DUMMY_CONSOLE=y
792CONFIG_DUMMY_CONSOLE_COLUMNS=160 884CONFIG_DUMMY_CONSOLE_COLUMNS=160
793CONFIG_DUMMY_CONSOLE_ROWS=64 885CONFIG_DUMMY_CONSOLE_ROWS=64
794# CONFIG_STI_CONSOLE is not set 886# CONFIG_STI_CONSOLE is not set
795
796#
797# Sound
798#
799# CONFIG_SOUND is not set 887# CONFIG_SOUND is not set
800CONFIG_HID_SUPPORT=y 888CONFIG_HID_SUPPORT=y
801CONFIG_HID=y 889CONFIG_HID=y
802# CONFIG_HID_DEBUG is not set 890# CONFIG_HID_DEBUG is not set
891# CONFIG_HIDRAW is not set
892# CONFIG_HID_PID is not set
893
894#
895# Special HID drivers
896#
897CONFIG_HID_COMPAT=y
803CONFIG_USB_SUPPORT=y 898CONFIG_USB_SUPPORT=y
804CONFIG_USB_ARCH_HAS_HCD=y 899CONFIG_USB_ARCH_HAS_HCD=y
805CONFIG_USB_ARCH_HAS_OHCI=y 900CONFIG_USB_ARCH_HAS_OHCI=y
806CONFIG_USB_ARCH_HAS_EHCI=y 901CONFIG_USB_ARCH_HAS_EHCI=y
807# CONFIG_USB is not set 902# CONFIG_USB is not set
903# CONFIG_USB_OTG_WHITELIST is not set
904# CONFIG_USB_OTG_BLACKLIST_HUB is not set
808 905
809# 906#
810# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 907# Enable Host or Gadget support to see Inventra options
811# 908#
812 909
813# 910#
814# USB Gadget Support 911# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
815# 912#
816# CONFIG_USB_GADGET is not set 913# CONFIG_USB_GADGET is not set
914
915#
916# OTG and related infrastructure
917#
918# CONFIG_UWB is not set
817# CONFIG_MMC is not set 919# CONFIG_MMC is not set
920# CONFIG_MEMSTICK is not set
818# CONFIG_NEW_LEDS is not set 921# CONFIG_NEW_LEDS is not set
922# CONFIG_ACCESSIBILITY is not set
819# CONFIG_INFINIBAND is not set 923# CONFIG_INFINIBAND is not set
820# CONFIG_RTC_CLASS is not set 924CONFIG_RTC_LIB=y
925CONFIG_RTC_CLASS=y
926CONFIG_RTC_HCTOSYS=y
927CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
928# CONFIG_RTC_DEBUG is not set
821 929
822# 930#
823# DMA Engine support 931# RTC interfaces
824# 932#
825# CONFIG_DMA_ENGINE is not set 933CONFIG_RTC_INTF_SYSFS=y
934CONFIG_RTC_INTF_PROC=y
935CONFIG_RTC_INTF_DEV=y
936# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
937# CONFIG_RTC_DRV_TEST is not set
826 938
827# 939#
828# DMA Clients 940# SPI RTC drivers
829# 941#
830 942
831# 943#
832# DMA Devices 944# Platform RTC drivers
833# 945#
946# CONFIG_RTC_DRV_DS1286 is not set
947# CONFIG_RTC_DRV_DS1511 is not set
948# CONFIG_RTC_DRV_DS1553 is not set
949# CONFIG_RTC_DRV_DS1742 is not set
950# CONFIG_RTC_DRV_STK17TA8 is not set
951# CONFIG_RTC_DRV_M48T86 is not set
952# CONFIG_RTC_DRV_M48T35 is not set
953# CONFIG_RTC_DRV_M48T59 is not set
954# CONFIG_RTC_DRV_BQ4802 is not set
955# CONFIG_RTC_DRV_V3020 is not set
834 956
835# 957#
836# Userspace I/O 958# on-CPU RTC drivers
837# 959#
960CONFIG_RTC_DRV_PARISC=y
961# CONFIG_DMADEVICES is not set
838# CONFIG_UIO is not set 962# CONFIG_UIO is not set
963# CONFIG_STAGING is not set
839 964
840# 965#
841# File systems 966# File systems
@@ -845,7 +970,7 @@ CONFIG_EXT2_FS=y
845# CONFIG_EXT2_FS_XIP is not set 970# CONFIG_EXT2_FS_XIP is not set
846CONFIG_EXT3_FS=y 971CONFIG_EXT3_FS=y
847# CONFIG_EXT3_FS_XATTR is not set 972# CONFIG_EXT3_FS_XATTR is not set
848# CONFIG_EXT4DEV_FS is not set 973# CONFIG_EXT4_FS is not set
849CONFIG_JBD=y 974CONFIG_JBD=y
850# CONFIG_JBD_DEBUG is not set 975# CONFIG_JBD_DEBUG is not set
851# CONFIG_REISERFS_FS is not set 976# CONFIG_REISERFS_FS is not set
@@ -855,19 +980,19 @@ CONFIG_JFS_FS=m
855# CONFIG_JFS_DEBUG is not set 980# CONFIG_JFS_DEBUG is not set
856# CONFIG_JFS_STATISTICS is not set 981# CONFIG_JFS_STATISTICS is not set
857CONFIG_FS_POSIX_ACL=y 982CONFIG_FS_POSIX_ACL=y
983CONFIG_FILE_LOCKING=y
858CONFIG_XFS_FS=m 984CONFIG_XFS_FS=m
859# CONFIG_XFS_QUOTA is not set 985# CONFIG_XFS_QUOTA is not set
860# CONFIG_XFS_SECURITY is not set
861# CONFIG_XFS_POSIX_ACL is not set 986# CONFIG_XFS_POSIX_ACL is not set
862# CONFIG_XFS_RT is not set 987# CONFIG_XFS_RT is not set
988# CONFIG_XFS_DEBUG is not set
863# CONFIG_GFS2_FS is not set 989# CONFIG_GFS2_FS is not set
864# CONFIG_OCFS2_FS is not set 990# CONFIG_OCFS2_FS is not set
865# CONFIG_MINIX_FS is not set 991# CONFIG_BTRFS_FS is not set
866# CONFIG_ROMFS_FS is not set 992CONFIG_DNOTIFY=y
867CONFIG_INOTIFY=y 993CONFIG_INOTIFY=y
868CONFIG_INOTIFY_USER=y 994CONFIG_INOTIFY_USER=y
869# CONFIG_QUOTA is not set 995# CONFIG_QUOTA is not set
870CONFIG_DNOTIFY=y
871# CONFIG_AUTOFS_FS is not set 996# CONFIG_AUTOFS_FS is not set
872CONFIG_AUTOFS4_FS=y 997CONFIG_AUTOFS4_FS=y
873# CONFIG_FUSE_FS is not set 998# CONFIG_FUSE_FS is not set
@@ -897,16 +1022,13 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
897CONFIG_PROC_FS=y 1022CONFIG_PROC_FS=y
898CONFIG_PROC_KCORE=y 1023CONFIG_PROC_KCORE=y
899CONFIG_PROC_SYSCTL=y 1024CONFIG_PROC_SYSCTL=y
1025CONFIG_PROC_PAGE_MONITOR=y
900CONFIG_SYSFS=y 1026CONFIG_SYSFS=y
901CONFIG_TMPFS=y 1027CONFIG_TMPFS=y
902# CONFIG_TMPFS_POSIX_ACL is not set 1028# CONFIG_TMPFS_POSIX_ACL is not set
903# CONFIG_HUGETLB_PAGE is not set 1029# CONFIG_HUGETLB_PAGE is not set
904CONFIG_RAMFS=y
905# CONFIG_CONFIGFS_FS is not set 1030# CONFIG_CONFIGFS_FS is not set
906 1031CONFIG_MISC_FILESYSTEMS=y
907#
908# Miscellaneous filesystems
909#
910# CONFIG_ADFS_FS is not set 1032# CONFIG_ADFS_FS is not set
911# CONFIG_AFFS_FS is not set 1033# CONFIG_AFFS_FS is not set
912# CONFIG_ECRYPT_FS is not set 1034# CONFIG_ECRYPT_FS is not set
@@ -916,34 +1038,33 @@ CONFIG_RAMFS=y
916# CONFIG_BFS_FS is not set 1038# CONFIG_BFS_FS is not set
917# CONFIG_EFS_FS is not set 1039# CONFIG_EFS_FS is not set
918# CONFIG_CRAMFS is not set 1040# CONFIG_CRAMFS is not set
1041# CONFIG_SQUASHFS is not set
919# CONFIG_VXFS_FS is not set 1042# CONFIG_VXFS_FS is not set
1043# CONFIG_MINIX_FS is not set
1044# CONFIG_OMFS_FS is not set
920# CONFIG_HPFS_FS is not set 1045# CONFIG_HPFS_FS is not set
921# CONFIG_QNX4FS_FS is not set 1046# CONFIG_QNX4FS_FS is not set
1047# CONFIG_ROMFS_FS is not set
922# CONFIG_SYSV_FS is not set 1048# CONFIG_SYSV_FS is not set
923CONFIG_UFS_FS=m 1049CONFIG_UFS_FS=m
924# CONFIG_UFS_FS_WRITE is not set 1050# CONFIG_UFS_FS_WRITE is not set
925# CONFIG_UFS_DEBUG is not set 1051# CONFIG_UFS_DEBUG is not set
926 1052CONFIG_NETWORK_FILESYSTEMS=y
927#
928# Network File Systems
929#
930CONFIG_NFS_FS=m 1053CONFIG_NFS_FS=m
931CONFIG_NFS_V3=y 1054CONFIG_NFS_V3=y
932# CONFIG_NFS_V3_ACL is not set 1055# CONFIG_NFS_V3_ACL is not set
933CONFIG_NFS_V4=y 1056CONFIG_NFS_V4=y
934CONFIG_NFS_DIRECTIO=y
935CONFIG_NFSD=m 1057CONFIG_NFSD=m
936CONFIG_NFSD_V3=y 1058CONFIG_NFSD_V3=y
937# CONFIG_NFSD_V3_ACL is not set 1059# CONFIG_NFSD_V3_ACL is not set
938CONFIG_NFSD_V4=y 1060CONFIG_NFSD_V4=y
939CONFIG_NFSD_TCP=y
940CONFIG_LOCKD=m 1061CONFIG_LOCKD=m
941CONFIG_LOCKD_V4=y 1062CONFIG_LOCKD_V4=y
942CONFIG_EXPORTFS=m 1063CONFIG_EXPORTFS=m
943CONFIG_NFS_COMMON=y 1064CONFIG_NFS_COMMON=y
944CONFIG_SUNRPC=m 1065CONFIG_SUNRPC=m
945CONFIG_SUNRPC_GSS=m 1066CONFIG_SUNRPC_GSS=m
946# CONFIG_SUNRPC_BIND34 is not set 1067# CONFIG_SUNRPC_REGISTER_V4 is not set
947CONFIG_RPCSEC_GSS_KRB5=m 1068CONFIG_RPCSEC_GSS_KRB5=m
948CONFIG_RPCSEC_GSS_SPKM3=m 1069CONFIG_RPCSEC_GSS_SPKM3=m
949CONFIG_SMB_FS=m 1070CONFIG_SMB_FS=m
@@ -952,6 +1073,7 @@ CONFIG_SMB_NLS_REMOTE="cp437"
952CONFIG_CIFS=m 1073CONFIG_CIFS=m
953# CONFIG_CIFS_STATS is not set 1074# CONFIG_CIFS_STATS is not set
954# CONFIG_CIFS_WEAK_PW_HASH is not set 1075# CONFIG_CIFS_WEAK_PW_HASH is not set
1076# CONFIG_CIFS_UPCALL is not set
955# CONFIG_CIFS_XATTR is not set 1077# CONFIG_CIFS_XATTR is not set
956# CONFIG_CIFS_DEBUG2 is not set 1078# CONFIG_CIFS_DEBUG2 is not set
957# CONFIG_CIFS_EXPERIMENTAL is not set 1079# CONFIG_CIFS_EXPERIMENTAL is not set
@@ -964,10 +1086,6 @@ CONFIG_CIFS=m
964# 1086#
965# CONFIG_PARTITION_ADVANCED is not set 1087# CONFIG_PARTITION_ADVANCED is not set
966CONFIG_MSDOS_PARTITION=y 1088CONFIG_MSDOS_PARTITION=y
967
968#
969# Native Language Support
970#
971CONFIG_NLS=y 1089CONFIG_NLS=y
972CONFIG_NLS_DEFAULT="iso8859-1" 1090CONFIG_NLS_DEFAULT="iso8859-1"
973CONFIG_NLS_CODEPAGE_437=m 1091CONFIG_NLS_CODEPAGE_437=m
@@ -1008,33 +1126,28 @@ CONFIG_NLS_ISO8859_15=m
1008# CONFIG_NLS_KOI8_R is not set 1126# CONFIG_NLS_KOI8_R is not set
1009# CONFIG_NLS_KOI8_U is not set 1127# CONFIG_NLS_KOI8_U is not set
1010CONFIG_NLS_UTF8=m 1128CONFIG_NLS_UTF8=m
1011
1012#
1013# Distributed Lock Manager
1014#
1015# CONFIG_DLM is not set 1129# CONFIG_DLM is not set
1016 1130
1017# 1131#
1018# Profiling support
1019#
1020CONFIG_PROFILING=y
1021CONFIG_OPROFILE=m
1022
1023#
1024# Kernel hacking 1132# Kernel hacking
1025# 1133#
1026# CONFIG_PRINTK_TIME is not set 1134# CONFIG_PRINTK_TIME is not set
1135CONFIG_ENABLE_WARN_DEPRECATED=y
1027CONFIG_ENABLE_MUST_CHECK=y 1136CONFIG_ENABLE_MUST_CHECK=y
1137CONFIG_FRAME_WARN=2048
1028CONFIG_MAGIC_SYSRQ=y 1138CONFIG_MAGIC_SYSRQ=y
1029# CONFIG_UNUSED_SYMBOLS is not set 1139# CONFIG_UNUSED_SYMBOLS is not set
1030# CONFIG_DEBUG_FS is not set 1140CONFIG_DEBUG_FS=y
1031CONFIG_HEADERS_CHECK=y 1141CONFIG_HEADERS_CHECK=y
1032CONFIG_DEBUG_KERNEL=y 1142CONFIG_DEBUG_KERNEL=y
1033# CONFIG_DEBUG_SHIRQ is not set 1143# CONFIG_DEBUG_SHIRQ is not set
1034CONFIG_DETECT_SOFTLOCKUP=y 1144CONFIG_DETECT_SOFTLOCKUP=y
1145# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1146CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1035CONFIG_SCHED_DEBUG=y 1147CONFIG_SCHED_DEBUG=y
1036# CONFIG_SCHEDSTATS is not set 1148# CONFIG_SCHEDSTATS is not set
1037# CONFIG_TIMER_STATS is not set 1149# CONFIG_TIMER_STATS is not set
1150# CONFIG_DEBUG_OBJECTS is not set
1038# CONFIG_DEBUG_SLAB is not set 1151# CONFIG_DEBUG_SLAB is not set
1039# CONFIG_DEBUG_RT_MUTEXES is not set 1152# CONFIG_DEBUG_RT_MUTEXES is not set
1040# CONFIG_RT_MUTEX_TESTER is not set 1153# CONFIG_RT_MUTEX_TESTER is not set
@@ -1046,10 +1159,33 @@ CONFIG_SCHED_DEBUG=y
1046# CONFIG_DEBUG_BUGVERBOSE is not set 1159# CONFIG_DEBUG_BUGVERBOSE is not set
1047# CONFIG_DEBUG_INFO is not set 1160# CONFIG_DEBUG_INFO is not set
1048# CONFIG_DEBUG_VM is not set 1161# CONFIG_DEBUG_VM is not set
1162# CONFIG_DEBUG_WRITECOUNT is not set
1163# CONFIG_DEBUG_MEMORY_INIT is not set
1049# CONFIG_DEBUG_LIST is not set 1164# CONFIG_DEBUG_LIST is not set
1050CONFIG_FORCED_INLINING=y 1165# CONFIG_DEBUG_SG is not set
1166# CONFIG_DEBUG_NOTIFIERS is not set
1167# CONFIG_BOOT_PRINTK_DELAY is not set
1051# CONFIG_RCU_TORTURE_TEST is not set 1168# CONFIG_RCU_TORTURE_TEST is not set
1169# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1170# CONFIG_BACKTRACE_SELF_TEST is not set
1171# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1052# CONFIG_FAULT_INJECTION is not set 1172# CONFIG_FAULT_INJECTION is not set
1173# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1174CONFIG_NOP_TRACER=y
1175CONFIG_RING_BUFFER=y
1176CONFIG_TRACING=y
1177
1178#
1179# Tracers
1180#
1181# CONFIG_SCHED_TRACER is not set
1182# CONFIG_CONTEXT_SWITCH_TRACER is not set
1183# CONFIG_BOOT_TRACER is not set
1184# CONFIG_TRACE_BRANCH_PROFILING is not set
1185# CONFIG_FTRACE_STARTUP_TEST is not set
1186# CONFIG_BUILD_DOCSRC is not set
1187# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1188# CONFIG_SAMPLES is not set
1053# CONFIG_DEBUG_RODATA is not set 1189# CONFIG_DEBUG_RODATA is not set
1054 1190
1055# 1191#
@@ -1058,56 +1194,112 @@ CONFIG_FORCED_INLINING=y
1058CONFIG_KEYS=y 1194CONFIG_KEYS=y
1059CONFIG_KEYS_DEBUG_PROC_KEYS=y 1195CONFIG_KEYS_DEBUG_PROC_KEYS=y
1060# CONFIG_SECURITY is not set 1196# CONFIG_SECURITY is not set
1197# CONFIG_SECURITYFS is not set
1198# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1061CONFIG_CRYPTO=y 1199CONFIG_CRYPTO=y
1200
1201#
1202# Crypto core or helper
1203#
1204# CONFIG_CRYPTO_FIPS is not set
1062CONFIG_CRYPTO_ALGAPI=y 1205CONFIG_CRYPTO_ALGAPI=y
1206CONFIG_CRYPTO_ALGAPI2=y
1207CONFIG_CRYPTO_AEAD=m
1208CONFIG_CRYPTO_AEAD2=y
1063CONFIG_CRYPTO_BLKCIPHER=m 1209CONFIG_CRYPTO_BLKCIPHER=m
1210CONFIG_CRYPTO_BLKCIPHER2=y
1064CONFIG_CRYPTO_HASH=y 1211CONFIG_CRYPTO_HASH=y
1212CONFIG_CRYPTO_HASH2=y
1213CONFIG_CRYPTO_RNG2=y
1065CONFIG_CRYPTO_MANAGER=y 1214CONFIG_CRYPTO_MANAGER=y
1215CONFIG_CRYPTO_MANAGER2=y
1216# CONFIG_CRYPTO_GF128MUL is not set
1217CONFIG_CRYPTO_NULL=m
1218# CONFIG_CRYPTO_CRYPTD is not set
1219CONFIG_CRYPTO_AUTHENC=m
1220CONFIG_CRYPTO_TEST=m
1221
1222#
1223# Authenticated Encryption with Associated Data
1224#
1225# CONFIG_CRYPTO_CCM is not set
1226# CONFIG_CRYPTO_GCM is not set
1227# CONFIG_CRYPTO_SEQIV is not set
1228
1229#
1230# Block modes
1231#
1232CONFIG_CRYPTO_CBC=m
1233# CONFIG_CRYPTO_CTR is not set
1234# CONFIG_CRYPTO_CTS is not set
1235# CONFIG_CRYPTO_ECB is not set
1236# CONFIG_CRYPTO_LRW is not set
1237# CONFIG_CRYPTO_PCBC is not set
1238# CONFIG_CRYPTO_XTS is not set
1239
1240#
1241# Hash modes
1242#
1066CONFIG_CRYPTO_HMAC=y 1243CONFIG_CRYPTO_HMAC=y
1067# CONFIG_CRYPTO_XCBC is not set 1244# CONFIG_CRYPTO_XCBC is not set
1068CONFIG_CRYPTO_NULL=m 1245
1246#
1247# Digest
1248#
1249CONFIG_CRYPTO_CRC32C=m
1069# CONFIG_CRYPTO_MD4 is not set 1250# CONFIG_CRYPTO_MD4 is not set
1070CONFIG_CRYPTO_MD5=y 1251CONFIG_CRYPTO_MD5=y
1252# CONFIG_CRYPTO_MICHAEL_MIC is not set
1253# CONFIG_CRYPTO_RMD128 is not set
1254# CONFIG_CRYPTO_RMD160 is not set
1255# CONFIG_CRYPTO_RMD256 is not set
1256# CONFIG_CRYPTO_RMD320 is not set
1071CONFIG_CRYPTO_SHA1=m 1257CONFIG_CRYPTO_SHA1=m
1072# CONFIG_CRYPTO_SHA256 is not set 1258# CONFIG_CRYPTO_SHA256 is not set
1073# CONFIG_CRYPTO_SHA512 is not set 1259# CONFIG_CRYPTO_SHA512 is not set
1074# CONFIG_CRYPTO_WP512 is not set
1075# CONFIG_CRYPTO_TGR192 is not set 1260# CONFIG_CRYPTO_TGR192 is not set
1076# CONFIG_CRYPTO_GF128MUL is not set 1261# CONFIG_CRYPTO_WP512 is not set
1077# CONFIG_CRYPTO_ECB is not set 1262
1078CONFIG_CRYPTO_CBC=m 1263#
1079# CONFIG_CRYPTO_PCBC is not set 1264# Ciphers
1080# CONFIG_CRYPTO_LRW is not set 1265#
1081# CONFIG_CRYPTO_XTS is not set
1082# CONFIG_CRYPTO_CRYPTD is not set
1083CONFIG_CRYPTO_DES=m
1084# CONFIG_CRYPTO_FCRYPT is not set
1085CONFIG_CRYPTO_BLOWFISH=m
1086# CONFIG_CRYPTO_TWOFISH is not set
1087# CONFIG_CRYPTO_SERPENT is not set
1088# CONFIG_CRYPTO_AES is not set 1266# CONFIG_CRYPTO_AES is not set
1267# CONFIG_CRYPTO_ANUBIS is not set
1268# CONFIG_CRYPTO_ARC4 is not set
1269CONFIG_CRYPTO_BLOWFISH=m
1270# CONFIG_CRYPTO_CAMELLIA is not set
1089CONFIG_CRYPTO_CAST5=m 1271CONFIG_CRYPTO_CAST5=m
1090# CONFIG_CRYPTO_CAST6 is not set 1272# CONFIG_CRYPTO_CAST6 is not set
1091# CONFIG_CRYPTO_TEA is not set 1273CONFIG_CRYPTO_DES=m
1092# CONFIG_CRYPTO_ARC4 is not set 1274# CONFIG_CRYPTO_FCRYPT is not set
1093# CONFIG_CRYPTO_KHAZAD is not set 1275# CONFIG_CRYPTO_KHAZAD is not set
1094# CONFIG_CRYPTO_ANUBIS is not set 1276# CONFIG_CRYPTO_SALSA20 is not set
1095# CONFIG_CRYPTO_SEED is not set 1277# CONFIG_CRYPTO_SEED is not set
1278# CONFIG_CRYPTO_SERPENT is not set
1279# CONFIG_CRYPTO_TEA is not set
1280# CONFIG_CRYPTO_TWOFISH is not set
1281
1282#
1283# Compression
1284#
1096CONFIG_CRYPTO_DEFLATE=m 1285CONFIG_CRYPTO_DEFLATE=m
1097# CONFIG_CRYPTO_MICHAEL_MIC is not set 1286# CONFIG_CRYPTO_LZO is not set
1098CONFIG_CRYPTO_CRC32C=m 1287
1099# CONFIG_CRYPTO_CAMELLIA is not set 1288#
1100CONFIG_CRYPTO_TEST=m 1289# Random Number Generation
1101# CONFIG_CRYPTO_AUTHENC is not set 1290#
1291# CONFIG_CRYPTO_ANSI_CPRNG is not set
1102# CONFIG_CRYPTO_HW is not set 1292# CONFIG_CRYPTO_HW is not set
1103 1293
1104# 1294#
1105# Library routines 1295# Library routines
1106# 1296#
1107CONFIG_BITREVERSE=y 1297CONFIG_BITREVERSE=y
1298CONFIG_GENERIC_FIND_LAST_BIT=y
1108CONFIG_CRC_CCITT=m 1299CONFIG_CRC_CCITT=m
1109# CONFIG_CRC16 is not set 1300# CONFIG_CRC16 is not set
1110# CONFIG_CRC_ITU_T is not set 1301# CONFIG_CRC_T10DIF is not set
1302CONFIG_CRC_ITU_T=m
1111CONFIG_CRC32=y 1303CONFIG_CRC32=y
1112# CONFIG_CRC7 is not set 1304# CONFIG_CRC7 is not set
1113CONFIG_LIBCRC32C=m 1305CONFIG_LIBCRC32C=m
diff --git a/arch/parisc/configs/b180_defconfig b/arch/parisc/configs/b180_defconfig
index 1bf22c9a4614..98bb05ee6e8d 100644
--- a/arch/parisc/configs/b180_defconfig
+++ b/arch/parisc/configs/b180_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.23 3# Linux kernel version: 2.6.29-rc8
4# Fri Oct 12 21:16:46 2007 4# Fri Mar 13 01:32:57 2009
5# 5#
6CONFIG_PARISC=y 6CONFIG_PARISC=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -33,13 +33,29 @@ CONFIG_SYSVIPC_SYSCTL=y
33# CONFIG_BSD_PROCESS_ACCT is not set 33# CONFIG_BSD_PROCESS_ACCT is not set
34# CONFIG_TASKSTATS is not set 34# CONFIG_TASKSTATS is not set
35# CONFIG_AUDIT is not set 35# CONFIG_AUDIT is not set
36
37#
38# RCU Subsystem
39#
40CONFIG_CLASSIC_RCU=y
41# CONFIG_TREE_RCU is not set
42# CONFIG_PREEMPT_RCU is not set
43# CONFIG_TREE_RCU_TRACE is not set
44# CONFIG_PREEMPT_RCU_TRACE is not set
36CONFIG_IKCONFIG=y 45CONFIG_IKCONFIG=y
37CONFIG_IKCONFIG_PROC=y 46CONFIG_IKCONFIG_PROC=y
38CONFIG_LOG_BUF_SHIFT=16 47CONFIG_LOG_BUF_SHIFT=16
48# CONFIG_CGROUPS is not set
39CONFIG_SYSFS_DEPRECATED=y 49CONFIG_SYSFS_DEPRECATED=y
50CONFIG_SYSFS_DEPRECATED_V2=y
40# CONFIG_RELAY is not set 51# CONFIG_RELAY is not set
52CONFIG_NAMESPACES=y
53# CONFIG_UTS_NS is not set
54# CONFIG_IPC_NS is not set
41# CONFIG_BLK_DEV_INITRD is not set 55# CONFIG_BLK_DEV_INITRD is not set
56CONFIG_CC_OPTIMIZE_FOR_SIZE=y
42CONFIG_SYSCTL=y 57CONFIG_SYSCTL=y
58CONFIG_ANON_INODES=y
43# CONFIG_EMBEDDED is not set 59# CONFIG_EMBEDDED is not set
44CONFIG_SYSCTL_SYSCALL=y 60CONFIG_SYSCTL_SYSCALL=y
45CONFIG_KALLSYMS=y 61CONFIG_KALLSYMS=y
@@ -51,27 +67,34 @@ CONFIG_BUG=y
51CONFIG_ELF_CORE=y 67CONFIG_ELF_CORE=y
52CONFIG_BASE_FULL=y 68CONFIG_BASE_FULL=y
53CONFIG_FUTEX=y 69CONFIG_FUTEX=y
54CONFIG_ANON_INODES=y
55CONFIG_EPOLL=y 70CONFIG_EPOLL=y
56CONFIG_SIGNALFD=y 71CONFIG_SIGNALFD=y
72CONFIG_TIMERFD=y
57CONFIG_EVENTFD=y 73CONFIG_EVENTFD=y
58CONFIG_SHMEM=y 74CONFIG_SHMEM=y
75CONFIG_AIO=y
59CONFIG_VM_EVENT_COUNTERS=y 76CONFIG_VM_EVENT_COUNTERS=y
77CONFIG_PCI_QUIRKS=y
78CONFIG_COMPAT_BRK=y
60CONFIG_SLAB=y 79CONFIG_SLAB=y
61# CONFIG_SLUB is not set 80# CONFIG_SLUB is not set
62# CONFIG_SLOB is not set 81# CONFIG_SLOB is not set
82# CONFIG_PROFILING is not set
83CONFIG_HAVE_OPROFILE=y
84# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
85CONFIG_SLABINFO=y
63CONFIG_RT_MUTEXES=y 86CONFIG_RT_MUTEXES=y
64# CONFIG_TINY_SHMEM is not set
65CONFIG_BASE_SMALL=0 87CONFIG_BASE_SMALL=0
66CONFIG_MODULES=y 88CONFIG_MODULES=y
89# CONFIG_MODULE_FORCE_LOAD is not set
67# CONFIG_MODULE_UNLOAD is not set 90# CONFIG_MODULE_UNLOAD is not set
68CONFIG_MODVERSIONS=y 91CONFIG_MODVERSIONS=y
69# CONFIG_MODULE_SRCVERSION_ALL is not set 92# CONFIG_MODULE_SRCVERSION_ALL is not set
70# CONFIG_KMOD is not set 93CONFIG_INIT_ALL_POSSIBLE=y
71CONFIG_BLOCK=y 94CONFIG_BLOCK=y
72# CONFIG_LBD is not set 95# CONFIG_LBD is not set
73# CONFIG_BLK_DEV_IO_TRACE is not set 96# CONFIG_BLK_DEV_IO_TRACE is not set
74# CONFIG_LSF is not set 97# CONFIG_BLK_DEV_INTEGRITY is not set
75 98
76# 99#
77# IO Schedulers 100# IO Schedulers
@@ -85,6 +108,7 @@ CONFIG_IOSCHED_CFQ=y
85CONFIG_DEFAULT_CFQ=y 108CONFIG_DEFAULT_CFQ=y
86# CONFIG_DEFAULT_NOOP is not set 109# CONFIG_DEFAULT_NOOP is not set
87CONFIG_DEFAULT_IOSCHED="cfq" 110CONFIG_DEFAULT_IOSCHED="cfq"
111# CONFIG_FREEZER is not set
88 112
89# 113#
90# Processor type and features 114# Processor type and features
@@ -108,13 +132,15 @@ CONFIG_HZ_250=y
108# CONFIG_HZ_300 is not set 132# CONFIG_HZ_300 is not set
109# CONFIG_HZ_1000 is not set 133# CONFIG_HZ_1000 is not set
110CONFIG_HZ=250 134CONFIG_HZ=250
135# CONFIG_SCHED_HRTICK is not set
111CONFIG_FLATMEM=y 136CONFIG_FLATMEM=y
112CONFIG_FLAT_NODE_MEM_MAP=y 137CONFIG_FLAT_NODE_MEM_MAP=y
113# CONFIG_SPARSEMEM_STATIC is not set 138CONFIG_PAGEFLAGS_EXTENDED=y
114CONFIG_SPLIT_PTLOCK_CPUS=4096 139CONFIG_SPLIT_PTLOCK_CPUS=4096
115# CONFIG_RESOURCES_64BIT is not set 140# CONFIG_PHYS_ADDR_T_64BIT is not set
116CONFIG_ZONE_DMA_FLAG=0 141CONFIG_ZONE_DMA_FLAG=0
117CONFIG_VIRT_TO_BUS=y 142CONFIG_VIRT_TO_BUS=y
143CONFIG_UNEVICTABLE_LRU=y
118# CONFIG_HPUX is not set 144# CONFIG_HPUX is not set
119 145
120# 146#
@@ -130,14 +156,14 @@ CONFIG_EISA_NAMES=y
130CONFIG_ISA=y 156CONFIG_ISA=y
131CONFIG_PCI=y 157CONFIG_PCI=y
132# CONFIG_ARCH_SUPPORTS_MSI is not set 158# CONFIG_ARCH_SUPPORTS_MSI is not set
159CONFIG_PCI_LEGACY=y
133# CONFIG_PCI_DEBUG is not set 160# CONFIG_PCI_DEBUG is not set
161# CONFIG_PCI_STUB is not set
134CONFIG_GSC_DINO=y 162CONFIG_GSC_DINO=y
135# CONFIG_PCI_LBA is not set 163# CONFIG_PCI_LBA is not set
136 164CONFIG_IOMMU_HELPER=y
137#
138# PCCARD (PCMCIA/CardBus) support
139#
140# CONFIG_PCCARD is not set 165# CONFIG_PCCARD is not set
166# CONFIG_HOTPLUG_PCI is not set
141 167
142# 168#
143# PA-RISC specific drivers 169# PA-RISC specific drivers
@@ -151,16 +177,15 @@ CONFIG_PDC_STABLE=y
151# Executable file formats 177# Executable file formats
152# 178#
153CONFIG_BINFMT_ELF=y 179CONFIG_BINFMT_ELF=y
180# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
181# CONFIG_HAVE_AOUT is not set
154# CONFIG_BINFMT_MISC is not set 182# CONFIG_BINFMT_MISC is not set
155
156#
157# Networking
158#
159CONFIG_NET=y 183CONFIG_NET=y
160 184
161# 185#
162# Networking options 186# Networking options
163# 187#
188CONFIG_COMPAT_NET_DEV_OPS=y
164CONFIG_PACKET=y 189CONFIG_PACKET=y
165CONFIG_PACKET_MMAP=y 190CONFIG_PACKET_MMAP=y
166CONFIG_UNIX=y 191CONFIG_UNIX=y
@@ -205,36 +230,37 @@ CONFIG_INET6_XFRM_MODE_TRANSPORT=y
205CONFIG_INET6_XFRM_MODE_TUNNEL=y 230CONFIG_INET6_XFRM_MODE_TUNNEL=y
206CONFIG_INET6_XFRM_MODE_BEET=y 231CONFIG_INET6_XFRM_MODE_BEET=y
207CONFIG_IPV6_SIT=y 232CONFIG_IPV6_SIT=y
233CONFIG_IPV6_NDISC_NODETYPE=y
208# CONFIG_IPV6_TUNNEL is not set 234# CONFIG_IPV6_TUNNEL is not set
209# CONFIG_NETLABEL is not set 235# CONFIG_NETLABEL is not set
210# CONFIG_NETWORK_SECMARK is not set 236# CONFIG_NETWORK_SECMARK is not set
211# CONFIG_NETFILTER is not set 237# CONFIG_NETFILTER is not set
238# CONFIG_ATM is not set
212# CONFIG_BRIDGE is not set 239# CONFIG_BRIDGE is not set
213# CONFIG_VLAN_8021Q is not set 240# CONFIG_VLAN_8021Q is not set
214# CONFIG_DECNET is not set 241# CONFIG_DECNET is not set
215# CONFIG_LLC2 is not set 242# CONFIG_LLC2 is not set
216# CONFIG_IPX is not set 243# CONFIG_IPX is not set
217# CONFIG_ATALK is not set 244# CONFIG_ATALK is not set
218
219#
220# QoS and/or fair queueing
221#
222# CONFIG_NET_SCHED is not set 245# CONFIG_NET_SCHED is not set
246# CONFIG_DCB is not set
223 247
224# 248#
225# Network testing 249# Network testing
226# 250#
227# CONFIG_NET_PKTGEN is not set 251# CONFIG_NET_PKTGEN is not set
228# CONFIG_HAMRADIO is not set 252# CONFIG_HAMRADIO is not set
253# CONFIG_CAN is not set
229# CONFIG_IRDA is not set 254# CONFIG_IRDA is not set
230# CONFIG_BT is not set 255# CONFIG_BT is not set
231 256# CONFIG_PHONET is not set
232# 257CONFIG_WIRELESS=y
233# Wireless
234#
235# CONFIG_CFG80211 is not set 258# CONFIG_CFG80211 is not set
259CONFIG_WIRELESS_OLD_REGULATORY=y
236# CONFIG_WIRELESS_EXT is not set 260# CONFIG_WIRELESS_EXT is not set
237# CONFIG_IEEE80211 is not set 261# CONFIG_LIB80211 is not set
262# CONFIG_MAC80211 is not set
263# CONFIG_WIMAX is not set
238# CONFIG_RFKILL is not set 264# CONFIG_RFKILL is not set
239 265
240# 266#
@@ -247,7 +273,9 @@ CONFIG_IPV6_SIT=y
247CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 273CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
248CONFIG_STANDALONE=y 274CONFIG_STANDALONE=y
249# CONFIG_PREVENT_FIRMWARE_BUILD is not set 275# CONFIG_PREVENT_FIRMWARE_BUILD is not set
250# CONFIG_FW_LOADER is not set 276CONFIG_FW_LOADER=y
277CONFIG_FIRMWARE_IN_KERNEL=y
278CONFIG_EXTRA_FIRMWARE=""
251# CONFIG_DEBUG_DRIVER is not set 279# CONFIG_DEBUG_DRIVER is not set
252# CONFIG_DEBUG_DEVRES is not set 280# CONFIG_DEBUG_DEVRES is not set
253# CONFIG_SYS_HYPERVISOR is not set 281# CONFIG_SYS_HYPERVISOR is not set
@@ -275,10 +303,18 @@ CONFIG_BLK_DEV_CRYPTOLOOP=y
275CONFIG_CDROM_PKTCDVD=m 303CONFIG_CDROM_PKTCDVD=m
276CONFIG_CDROM_PKTCDVD_BUFFERS=8 304CONFIG_CDROM_PKTCDVD_BUFFERS=8
277CONFIG_ATA_OVER_ETH=y 305CONFIG_ATA_OVER_ETH=y
306# CONFIG_BLK_DEV_HD is not set
278CONFIG_MISC_DEVICES=y 307CONFIG_MISC_DEVICES=y
279# CONFIG_PHANTOM is not set 308# CONFIG_PHANTOM is not set
280# CONFIG_EEPROM_93CX6 is not set
281# CONFIG_SGI_IOC4 is not set 309# CONFIG_SGI_IOC4 is not set
310# CONFIG_ENCLOSURE_SERVICES is not set
311# CONFIG_HP_ILO is not set
312
313#
314# EEPROM support
315#
316# CONFIG_EEPROM_93CX6 is not set
317CONFIG_HAVE_IDE=y
282# CONFIG_IDE is not set 318# CONFIG_IDE is not set
283 319
284# 320#
@@ -317,8 +353,10 @@ CONFIG_SCSI_SPI_ATTRS=y
317# CONFIG_SCSI_FC_ATTRS is not set 353# CONFIG_SCSI_FC_ATTRS is not set
318# CONFIG_SCSI_ISCSI_ATTRS is not set 354# CONFIG_SCSI_ISCSI_ATTRS is not set
319# CONFIG_SCSI_SAS_LIBSAS is not set 355# CONFIG_SCSI_SAS_LIBSAS is not set
356# CONFIG_SCSI_SRP_ATTRS is not set
320CONFIG_SCSI_LOWLEVEL=y 357CONFIG_SCSI_LOWLEVEL=y
321# CONFIG_ISCSI_TCP is not set 358# CONFIG_ISCSI_TCP is not set
359# CONFIG_SCSI_CXGB3_ISCSI is not set
322# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 360# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
323# CONFIG_SCSI_3W_9XXX is not set 361# CONFIG_SCSI_3W_9XXX is not set
324# CONFIG_SCSI_ACARD is not set 362# CONFIG_SCSI_ACARD is not set
@@ -330,12 +368,15 @@ CONFIG_SCSI_LOWLEVEL=y
330# CONFIG_SCSI_AIC79XX is not set 368# CONFIG_SCSI_AIC79XX is not set
331# CONFIG_SCSI_AIC94XX is not set 369# CONFIG_SCSI_AIC94XX is not set
332# CONFIG_SCSI_DPT_I2O is not set 370# CONFIG_SCSI_DPT_I2O is not set
371# CONFIG_SCSI_ADVANSYS is not set
333# CONFIG_SCSI_IN2000 is not set 372# CONFIG_SCSI_IN2000 is not set
334# CONFIG_SCSI_ARCMSR is not set 373# CONFIG_SCSI_ARCMSR is not set
335# CONFIG_MEGARAID_NEWGEN is not set 374# CONFIG_MEGARAID_NEWGEN is not set
336# CONFIG_MEGARAID_LEGACY is not set 375# CONFIG_MEGARAID_LEGACY is not set
337# CONFIG_MEGARAID_SAS is not set 376# CONFIG_MEGARAID_SAS is not set
338# CONFIG_SCSI_HPTIOP is not set 377# CONFIG_SCSI_HPTIOP is not set
378# CONFIG_LIBFC is not set
379# CONFIG_FCOE is not set
339# CONFIG_SCSI_DMX3191D is not set 380# CONFIG_SCSI_DMX3191D is not set
340# CONFIG_SCSI_DTC3280 is not set 381# CONFIG_SCSI_DTC3280 is not set
341# CONFIG_SCSI_FUTURE_DOMAIN is not set 382# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -346,6 +387,7 @@ CONFIG_SCSI_LOWLEVEL=y
346# CONFIG_SCSI_INIA100 is not set 387# CONFIG_SCSI_INIA100 is not set
347# CONFIG_SCSI_PPA is not set 388# CONFIG_SCSI_PPA is not set
348# CONFIG_SCSI_IMM is not set 389# CONFIG_SCSI_IMM is not set
390# CONFIG_SCSI_MVSAS is not set
349# CONFIG_SCSI_NCR53C406A is not set 391# CONFIG_SCSI_NCR53C406A is not set
350CONFIG_SCSI_LASI700=y 392CONFIG_SCSI_LASI700=y
351CONFIG_53C700_LE_ON_BE=y 393CONFIG_53C700_LE_ON_BE=y
@@ -360,7 +402,6 @@ CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS=8
360CONFIG_SCSI_NCR53C8XX_MAX_TAGS=32 402CONFIG_SCSI_NCR53C8XX_MAX_TAGS=32
361CONFIG_SCSI_NCR53C8XX_SYNC=40 403CONFIG_SCSI_NCR53C8XX_SYNC=40
362# CONFIG_SCSI_PAS16 is not set 404# CONFIG_SCSI_PAS16 is not set
363# CONFIG_SCSI_PSI240I is not set
364# CONFIG_SCSI_QLOGIC_FAS is not set 405# CONFIG_SCSI_QLOGIC_FAS is not set
365# CONFIG_SCSI_QLOGIC_1280 is not set 406# CONFIG_SCSI_QLOGIC_1280 is not set
366# CONFIG_SCSI_QLA_FC is not set 407# CONFIG_SCSI_QLA_FC is not set
@@ -373,9 +414,11 @@ CONFIG_SCSI_NCR53C8XX_SYNC=40
373# CONFIG_SCSI_NSP32 is not set 414# CONFIG_SCSI_NSP32 is not set
374# CONFIG_SCSI_DEBUG is not set 415# CONFIG_SCSI_DEBUG is not set
375# CONFIG_SCSI_SRP is not set 416# CONFIG_SCSI_SRP is not set
417# CONFIG_SCSI_DH is not set
376# CONFIG_ATA is not set 418# CONFIG_ATA is not set
377CONFIG_MD=y 419CONFIG_MD=y
378CONFIG_BLK_DEV_MD=y 420CONFIG_BLK_DEV_MD=y
421CONFIG_MD_AUTODETECT=y
379CONFIG_MD_LINEAR=y 422CONFIG_MD_LINEAR=y
380CONFIG_MD_RAID0=y 423CONFIG_MD_RAID0=y
381CONFIG_MD_RAID1=y 424CONFIG_MD_RAID1=y
@@ -383,26 +426,18 @@ CONFIG_MD_RAID1=y
383# CONFIG_MD_MULTIPATH is not set 426# CONFIG_MD_MULTIPATH is not set
384# CONFIG_MD_FAULTY is not set 427# CONFIG_MD_FAULTY is not set
385# CONFIG_BLK_DEV_DM is not set 428# CONFIG_BLK_DEV_DM is not set
386
387#
388# Fusion MPT device support
389#
390# CONFIG_FUSION is not set 429# CONFIG_FUSION is not set
391# CONFIG_FUSION_SPI is not set
392# CONFIG_FUSION_FC is not set
393# CONFIG_FUSION_SAS is not set
394 430
395# 431#
396# IEEE 1394 (FireWire) support 432# IEEE 1394 (FireWire) support
397# 433#
398 434
399# 435#
400# An alternative FireWire stack is available with EXPERIMENTAL=y 436# A new alternative FireWire stack is available with EXPERIMENTAL=y
401# 437#
402# CONFIG_IEEE1394 is not set 438# CONFIG_IEEE1394 is not set
403# CONFIG_I2O is not set 439# CONFIG_I2O is not set
404CONFIG_NETDEVICES=y 440CONFIG_NETDEVICES=y
405# CONFIG_NETDEVICES_MULTIQUEUE is not set
406# CONFIG_DUMMY is not set 441# CONFIG_DUMMY is not set
407# CONFIG_BONDING is not set 442# CONFIG_BONDING is not set
408# CONFIG_EQUALIZER is not set 443# CONFIG_EQUALIZER is not set
@@ -434,36 +469,49 @@ CONFIG_TULIP=y
434# CONFIG_IBM_NEW_EMAC_RGMII is not set 469# CONFIG_IBM_NEW_EMAC_RGMII is not set
435# CONFIG_IBM_NEW_EMAC_TAH is not set 470# CONFIG_IBM_NEW_EMAC_TAH is not set
436# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 471# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
472# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
473# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
474# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
437# CONFIG_NET_PCI is not set 475# CONFIG_NET_PCI is not set
438# CONFIG_B44 is not set 476# CONFIG_B44 is not set
477# CONFIG_CS89x0 is not set
439# CONFIG_NET_POCKET is not set 478# CONFIG_NET_POCKET is not set
479# CONFIG_ATL2 is not set
440CONFIG_NETDEV_1000=y 480CONFIG_NETDEV_1000=y
441# CONFIG_ACENIC is not set 481# CONFIG_ACENIC is not set
442# CONFIG_DL2K is not set 482# CONFIG_DL2K is not set
443# CONFIG_E1000 is not set 483# CONFIG_E1000 is not set
444# CONFIG_E1000E is not set 484# CONFIG_E1000E is not set
485# CONFIG_IGB is not set
445# CONFIG_NS83820 is not set 486# CONFIG_NS83820 is not set
446# CONFIG_HAMACHI is not set 487# CONFIG_HAMACHI is not set
447# CONFIG_R8169 is not set 488# CONFIG_R8169 is not set
448# CONFIG_SIS190 is not set 489# CONFIG_SIS190 is not set
449# CONFIG_SKGE is not set 490# CONFIG_SKGE is not set
450# CONFIG_SKY2 is not set 491# CONFIG_SKY2 is not set
451# CONFIG_SK98LIN is not set
452# CONFIG_VIA_VELOCITY is not set 492# CONFIG_VIA_VELOCITY is not set
453# CONFIG_TIGON3 is not set 493# CONFIG_TIGON3 is not set
454# CONFIG_BNX2 is not set 494# CONFIG_BNX2 is not set
455# CONFIG_QLA3XXX is not set 495# CONFIG_QLA3XXX is not set
496# CONFIG_ATL1 is not set
497# CONFIG_JME is not set
456CONFIG_NETDEV_10000=y 498CONFIG_NETDEV_10000=y
457# CONFIG_CHELSIO_T1 is not set 499# CONFIG_CHELSIO_T1 is not set
500CONFIG_CHELSIO_T3_DEPENDS=y
458# CONFIG_CHELSIO_T3 is not set 501# CONFIG_CHELSIO_T3 is not set
502# CONFIG_ENIC is not set
459# CONFIG_IXGBE is not set 503# CONFIG_IXGBE is not set
460# CONFIG_IXGB is not set 504# CONFIG_IXGB is not set
461# CONFIG_S2IO is not set 505# CONFIG_S2IO is not set
462# CONFIG_MYRI10GE is not set 506# CONFIG_MYRI10GE is not set
463# CONFIG_NETXEN_NIC is not set 507# CONFIG_NETXEN_NIC is not set
464# CONFIG_NIU is not set 508# CONFIG_NIU is not set
509# CONFIG_MLX4_EN is not set
465# CONFIG_MLX4_CORE is not set 510# CONFIG_MLX4_CORE is not set
466# CONFIG_TEHUTI is not set 511# CONFIG_TEHUTI is not set
512# CONFIG_BNX2X is not set
513# CONFIG_QLGE is not set
514# CONFIG_SFC is not set
467# CONFIG_TR is not set 515# CONFIG_TR is not set
468 516
469# 517#
@@ -471,6 +519,11 @@ CONFIG_NETDEV_10000=y
471# 519#
472# CONFIG_WLAN_PRE80211 is not set 520# CONFIG_WLAN_PRE80211 is not set
473# CONFIG_WLAN_80211 is not set 521# CONFIG_WLAN_80211 is not set
522# CONFIG_IWLWIFI_LEDS is not set
523
524#
525# Enable WiMAX (Networking options) to see the WiMAX drivers
526#
474# CONFIG_WAN is not set 527# CONFIG_WAN is not set
475# CONFIG_FDDI is not set 528# CONFIG_FDDI is not set
476# CONFIG_PLIP is not set 529# CONFIG_PLIP is not set
@@ -503,7 +556,6 @@ CONFIG_INPUT_MOUSEDEV_PSAUX=y
503CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 556CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
504CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 557CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
505# CONFIG_INPUT_JOYDEV is not set 558# CONFIG_INPUT_JOYDEV is not set
506# CONFIG_INPUT_TSDEV is not set
507CONFIG_INPUT_EVDEV=y 559CONFIG_INPUT_EVDEV=y
508# CONFIG_INPUT_EVBUG is not set 560# CONFIG_INPUT_EVBUG is not set
509 561
@@ -526,11 +578,12 @@ CONFIG_MOUSE_PS2=y
526CONFIG_MOUSE_PS2_ALPS=y 578CONFIG_MOUSE_PS2_ALPS=y
527CONFIG_MOUSE_PS2_LOGIPS2PP=y 579CONFIG_MOUSE_PS2_LOGIPS2PP=y
528CONFIG_MOUSE_PS2_SYNAPTICS=y 580CONFIG_MOUSE_PS2_SYNAPTICS=y
529CONFIG_MOUSE_PS2_LIFEBOOK=y
530CONFIG_MOUSE_PS2_TRACKPOINT=y 581CONFIG_MOUSE_PS2_TRACKPOINT=y
582# CONFIG_MOUSE_PS2_ELANTECH is not set
531# CONFIG_MOUSE_PS2_TOUCHKIT is not set 583# CONFIG_MOUSE_PS2_TOUCHKIT is not set
532# CONFIG_MOUSE_SERIAL is not set 584# CONFIG_MOUSE_SERIAL is not set
533# CONFIG_MOUSE_APPLETOUCH is not set 585# CONFIG_MOUSE_APPLETOUCH is not set
586# CONFIG_MOUSE_BCM5974 is not set
534# CONFIG_MOUSE_INPORT is not set 587# CONFIG_MOUSE_INPORT is not set
535# CONFIG_MOUSE_LOGIBM is not set 588# CONFIG_MOUSE_LOGIBM is not set
536# CONFIG_MOUSE_PC110PAD is not set 589# CONFIG_MOUSE_PC110PAD is not set
@@ -564,9 +617,11 @@ CONFIG_SERIO_LIBPS2=y
564# Character devices 617# Character devices
565# 618#
566CONFIG_VT=y 619CONFIG_VT=y
620CONFIG_CONSOLE_TRANSLATIONS=y
567CONFIG_VT_CONSOLE=y 621CONFIG_VT_CONSOLE=y
568CONFIG_HW_CONSOLE=y 622CONFIG_HW_CONSOLE=y
569# CONFIG_VT_HW_CONSOLE_BINDING is not set 623# CONFIG_VT_HW_CONSOLE_BINDING is not set
624CONFIG_DEVKMEM=y
570# CONFIG_SERIAL_NONSTANDARD is not set 625# CONFIG_SERIAL_NONSTANDARD is not set
571 626
572# 627#
@@ -598,75 +653,79 @@ CONFIG_SERIAL_CORE=y
598CONFIG_SERIAL_CORE_CONSOLE=y 653CONFIG_SERIAL_CORE_CONSOLE=y
599# CONFIG_SERIAL_JSM is not set 654# CONFIG_SERIAL_JSM is not set
600CONFIG_UNIX98_PTYS=y 655CONFIG_UNIX98_PTYS=y
656# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
601CONFIG_LEGACY_PTYS=y 657CONFIG_LEGACY_PTYS=y
602CONFIG_LEGACY_PTY_COUNT=256 658CONFIG_LEGACY_PTY_COUNT=256
603CONFIG_PRINTER=y 659CONFIG_PRINTER=y
604# CONFIG_LP_CONSOLE is not set 660# CONFIG_LP_CONSOLE is not set
605# CONFIG_PPDEV is not set 661# CONFIG_PPDEV is not set
606# CONFIG_TIPAR is not set
607# CONFIG_IPMI_HANDLER is not set 662# CONFIG_IPMI_HANDLER is not set
608# CONFIG_WATCHDOG is not set
609# CONFIG_HW_RANDOM is not set 663# CONFIG_HW_RANDOM is not set
610CONFIG_GEN_RTC=y
611# CONFIG_GEN_RTC_X is not set
612# CONFIG_DTLK is not set 664# CONFIG_DTLK is not set
613# CONFIG_R3964 is not set 665# CONFIG_R3964 is not set
614# CONFIG_APPLICOM is not set 666# CONFIG_APPLICOM is not set
615# CONFIG_AGP is not set
616# CONFIG_DRM is not set
617# CONFIG_RAW_DRIVER is not set 667# CONFIG_RAW_DRIVER is not set
618CONFIG_DEVPORT=y 668CONFIG_DEVPORT=y
619# CONFIG_I2C is not set 669# CONFIG_I2C is not set
620
621#
622# SPI support
623#
624# CONFIG_SPI is not set 670# CONFIG_SPI is not set
625# CONFIG_SPI_MASTER is not set
626# CONFIG_W1 is not set 671# CONFIG_W1 is not set
627# CONFIG_POWER_SUPPLY is not set 672# CONFIG_POWER_SUPPLY is not set
628# CONFIG_HWMON is not set 673# CONFIG_HWMON is not set
674# CONFIG_THERMAL is not set
675# CONFIG_THERMAL_HWMON is not set
676# CONFIG_WATCHDOG is not set
677CONFIG_SSB_POSSIBLE=y
629 678
630# 679#
631# Sonics Silicon Backplane 680# Sonics Silicon Backplane
632# 681#
633CONFIG_SSB_POSSIBLE=y
634# CONFIG_SSB is not set 682# CONFIG_SSB is not set
635 683
636# 684#
637# Multifunction device drivers 685# Multifunction device drivers
638# 686#
687# CONFIG_MFD_CORE is not set
639# CONFIG_MFD_SM501 is not set 688# CONFIG_MFD_SM501 is not set
689# CONFIG_HTC_PASIC3 is not set
690# CONFIG_MFD_TMIO is not set
691# CONFIG_REGULATOR is not set
640 692
641# 693#
642# Multimedia devices 694# Multimedia devices
643# 695#
696
697#
698# Multimedia core support
699#
644# CONFIG_VIDEO_DEV is not set 700# CONFIG_VIDEO_DEV is not set
645# CONFIG_DVB_CORE is not set 701# CONFIG_DVB_CORE is not set
646# CONFIG_DAB is not set 702# CONFIG_VIDEO_MEDIA is not set
647 703
648# 704#
649# Graphics support 705# Multimedia drivers
650# 706#
651# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 707# CONFIG_DAB is not set
652 708
653# 709#
654# Display device support 710# Graphics support
655# 711#
656# CONFIG_DISPLAY_SUPPORT is not set 712# CONFIG_AGP is not set
713# CONFIG_DRM is not set
657# CONFIG_VGASTATE is not set 714# CONFIG_VGASTATE is not set
658CONFIG_VIDEO_OUTPUT_CONTROL=m 715CONFIG_VIDEO_OUTPUT_CONTROL=m
659CONFIG_FB=y 716CONFIG_FB=y
660# CONFIG_FIRMWARE_EDID is not set 717# CONFIG_FIRMWARE_EDID is not set
661# CONFIG_FB_DDC is not set 718# CONFIG_FB_DDC is not set
719# CONFIG_FB_BOOT_VESA_SUPPORT is not set
662CONFIG_FB_CFB_FILLRECT=y 720CONFIG_FB_CFB_FILLRECT=y
663CONFIG_FB_CFB_COPYAREA=y 721CONFIG_FB_CFB_COPYAREA=y
664CONFIG_FB_CFB_IMAGEBLIT=y 722CONFIG_FB_CFB_IMAGEBLIT=y
723# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
665# CONFIG_FB_SYS_FILLRECT is not set 724# CONFIG_FB_SYS_FILLRECT is not set
666# CONFIG_FB_SYS_COPYAREA is not set 725# CONFIG_FB_SYS_COPYAREA is not set
667# CONFIG_FB_SYS_IMAGEBLIT is not set 726# CONFIG_FB_SYS_IMAGEBLIT is not set
727# CONFIG_FB_FOREIGN_ENDIAN is not set
668# CONFIG_FB_SYS_FOPS is not set 728# CONFIG_FB_SYS_FOPS is not set
669CONFIG_FB_DEFERRED_IO=y
670# CONFIG_FB_SVGALIB is not set 729# CONFIG_FB_SVGALIB is not set
671# CONFIG_FB_MACMODES is not set 730# CONFIG_FB_MACMODES is not set
672# CONFIG_FB_BACKLIGHT is not set 731# CONFIG_FB_BACKLIGHT is not set
@@ -691,6 +750,7 @@ CONFIG_FB_STI=y
691# CONFIG_FB_ATY is not set 750# CONFIG_FB_ATY is not set
692# CONFIG_FB_S3 is not set 751# CONFIG_FB_S3 is not set
693# CONFIG_FB_SIS is not set 752# CONFIG_FB_SIS is not set
753# CONFIG_FB_VIA is not set
694# CONFIG_FB_NEOMAGIC is not set 754# CONFIG_FB_NEOMAGIC is not set
695# CONFIG_FB_KYRO is not set 755# CONFIG_FB_KYRO is not set
696# CONFIG_FB_3DFX is not set 756# CONFIG_FB_3DFX is not set
@@ -698,7 +758,16 @@ CONFIG_FB_STI=y
698# CONFIG_FB_VT8623 is not set 758# CONFIG_FB_VT8623 is not set
699# CONFIG_FB_TRIDENT is not set 759# CONFIG_FB_TRIDENT is not set
700# CONFIG_FB_ARK is not set 760# CONFIG_FB_ARK is not set
761# CONFIG_FB_CARMINE is not set
701# CONFIG_FB_VIRTUAL is not set 762# CONFIG_FB_VIRTUAL is not set
763# CONFIG_FB_METRONOME is not set
764# CONFIG_FB_MB862XX is not set
765# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
766
767#
768# Display device support
769#
770# CONFIG_DISPLAY_SUPPORT is not set
702 771
703# 772#
704# Console display driver support 773# Console display driver support
@@ -718,15 +787,8 @@ CONFIG_LOGO_LINUX_MONO=y
718CONFIG_LOGO_LINUX_VGA16=y 787CONFIG_LOGO_LINUX_VGA16=y
719CONFIG_LOGO_LINUX_CLUT224=y 788CONFIG_LOGO_LINUX_CLUT224=y
720CONFIG_LOGO_PARISC_CLUT224=y 789CONFIG_LOGO_PARISC_CLUT224=y
721
722#
723# Sound
724#
725CONFIG_SOUND=y 790CONFIG_SOUND=y
726 791CONFIG_SOUND_OSS_CORE=y
727#
728# Advanced Linux Sound Architecture
729#
730CONFIG_SND=y 792CONFIG_SND=y
731CONFIG_SND_TIMER=y 793CONFIG_SND_TIMER=y
732CONFIG_SND_PCM=y 794CONFIG_SND_PCM=y
@@ -742,10 +804,7 @@ CONFIG_SND_SUPPORT_OLD_API=y
742CONFIG_SND_VERBOSE_PROCFS=y 804CONFIG_SND_VERBOSE_PROCFS=y
743# CONFIG_SND_VERBOSE_PRINTK is not set 805# CONFIG_SND_VERBOSE_PRINTK is not set
744# CONFIG_SND_DEBUG is not set 806# CONFIG_SND_DEBUG is not set
745 807CONFIG_SND_DRIVERS=y
746#
747# Generic devices
748#
749# CONFIG_SND_DUMMY is not set 808# CONFIG_SND_DUMMY is not set
750# CONFIG_SND_VIRMIDI is not set 809# CONFIG_SND_VIRMIDI is not set
751# CONFIG_SND_MTPAV is not set 810# CONFIG_SND_MTPAV is not set
@@ -753,10 +812,7 @@ CONFIG_SND_VERBOSE_PROCFS=y
753# CONFIG_SND_SERIAL_U16550 is not set 812# CONFIG_SND_SERIAL_U16550 is not set
754# CONFIG_SND_MPU401 is not set 813# CONFIG_SND_MPU401 is not set
755# CONFIG_SND_PORTMAN2X4 is not set 814# CONFIG_SND_PORTMAN2X4 is not set
756 815CONFIG_SND_PCI=y
757#
758# PCI devices
759#
760# CONFIG_SND_AD1889 is not set 816# CONFIG_SND_AD1889 is not set
761# CONFIG_SND_ALS300 is not set 817# CONFIG_SND_ALS300 is not set
762# CONFIG_SND_ALI5451 is not set 818# CONFIG_SND_ALI5451 is not set
@@ -765,9 +821,11 @@ CONFIG_SND_VERBOSE_PROCFS=y
765# CONFIG_SND_AU8810 is not set 821# CONFIG_SND_AU8810 is not set
766# CONFIG_SND_AU8820 is not set 822# CONFIG_SND_AU8820 is not set
767# CONFIG_SND_AU8830 is not set 823# CONFIG_SND_AU8830 is not set
824# CONFIG_SND_AW2 is not set
768# CONFIG_SND_BT87X is not set 825# CONFIG_SND_BT87X is not set
769# CONFIG_SND_CA0106 is not set 826# CONFIG_SND_CA0106 is not set
770# CONFIG_SND_CMIPCI is not set 827# CONFIG_SND_CMIPCI is not set
828# CONFIG_SND_OXYGEN is not set
771# CONFIG_SND_CS4281 is not set 829# CONFIG_SND_CS4281 is not set
772# CONFIG_SND_CS46XX is not set 830# CONFIG_SND_CS46XX is not set
773# CONFIG_SND_DARLA20 is not set 831# CONFIG_SND_DARLA20 is not set
@@ -792,6 +850,7 @@ CONFIG_SND_VERBOSE_PROCFS=y
792# CONFIG_SND_HDA_INTEL is not set 850# CONFIG_SND_HDA_INTEL is not set
793# CONFIG_SND_HDSP is not set 851# CONFIG_SND_HDSP is not set
794# CONFIG_SND_HDSPM is not set 852# CONFIG_SND_HDSPM is not set
853# CONFIG_SND_HIFIER is not set
795# CONFIG_SND_ICE1712 is not set 854# CONFIG_SND_ICE1712 is not set
796# CONFIG_SND_ICE1724 is not set 855# CONFIG_SND_ICE1724 is not set
797# CONFIG_SND_INTEL8X0 is not set 856# CONFIG_SND_INTEL8X0 is not set
@@ -809,30 +868,23 @@ CONFIG_SND_VERBOSE_PROCFS=y
809# CONFIG_SND_TRIDENT is not set 868# CONFIG_SND_TRIDENT is not set
810# CONFIG_SND_VIA82XX is not set 869# CONFIG_SND_VIA82XX is not set
811# CONFIG_SND_VIA82XX_MODEM is not set 870# CONFIG_SND_VIA82XX_MODEM is not set
871# CONFIG_SND_VIRTUOSO is not set
812# CONFIG_SND_VX222 is not set 872# CONFIG_SND_VX222 is not set
813# CONFIG_SND_YMFPCI is not set 873# CONFIG_SND_YMFPCI is not set
814 874CONFIG_SND_GSC=y
815#
816# GSC devices
817#
818CONFIG_SND_HARMONY=y 875CONFIG_SND_HARMONY=y
819
820#
821# System on Chip audio support
822#
823# CONFIG_SND_SOC is not set 876# CONFIG_SND_SOC is not set
824
825#
826# SoC Audio support for SuperH
827#
828
829#
830# Open Sound System
831#
832# CONFIG_SOUND_PRIME is not set 877# CONFIG_SOUND_PRIME is not set
833CONFIG_HID_SUPPORT=y 878CONFIG_HID_SUPPORT=y
834CONFIG_HID=y 879CONFIG_HID=y
835CONFIG_HID_DEBUG=y 880CONFIG_HID_DEBUG=y
881# CONFIG_HIDRAW is not set
882# CONFIG_HID_PID is not set
883
884#
885# Special HID drivers
886#
887CONFIG_HID_COMPAT=y
836CONFIG_USB_SUPPORT=y 888CONFIG_USB_SUPPORT=y
837CONFIG_USB_ARCH_HAS_HCD=y 889CONFIG_USB_ARCH_HAS_HCD=y
838CONFIG_USB_ARCH_HAS_OHCI=y 890CONFIG_USB_ARCH_HAS_OHCI=y
@@ -840,36 +892,63 @@ CONFIG_USB_ARCH_HAS_EHCI=y
840# CONFIG_USB is not set 892# CONFIG_USB is not set
841 893
842# 894#
843# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 895# Enable Host or Gadget support to see Inventra options
844# 896#
845 897
846# 898#
847# USB Gadget Support 899# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
848# 900#
849# CONFIG_USB_GADGET is not set 901# CONFIG_USB_GADGET is not set
902
903#
904# OTG and related infrastructure
905#
850# CONFIG_MMC is not set 906# CONFIG_MMC is not set
907# CONFIG_MEMSTICK is not set
851# CONFIG_NEW_LEDS is not set 908# CONFIG_NEW_LEDS is not set
909# CONFIG_ACCESSIBILITY is not set
852# CONFIG_INFINIBAND is not set 910# CONFIG_INFINIBAND is not set
853# CONFIG_RTC_CLASS is not set 911CONFIG_RTC_LIB=y
912CONFIG_RTC_CLASS=y
913CONFIG_RTC_HCTOSYS=y
914CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
915# CONFIG_RTC_DEBUG is not set
854 916
855# 917#
856# DMA Engine support 918# RTC interfaces
857# 919#
858# CONFIG_DMA_ENGINE is not set 920CONFIG_RTC_INTF_SYSFS=y
921CONFIG_RTC_INTF_PROC=y
922CONFIG_RTC_INTF_DEV=y
923# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
924# CONFIG_RTC_DRV_TEST is not set
859 925
860# 926#
861# DMA Clients 927# SPI RTC drivers
862# 928#
863 929
864# 930#
865# DMA Devices 931# Platform RTC drivers
866# 932#
867# CONFIG_AUXDISPLAY is not set 933# CONFIG_RTC_DRV_DS1286 is not set
934# CONFIG_RTC_DRV_DS1511 is not set
935# CONFIG_RTC_DRV_DS1553 is not set
936# CONFIG_RTC_DRV_DS1742 is not set
937# CONFIG_RTC_DRV_STK17TA8 is not set
938# CONFIG_RTC_DRV_M48T86 is not set
939# CONFIG_RTC_DRV_M48T35 is not set
940# CONFIG_RTC_DRV_M48T59 is not set
941# CONFIG_RTC_DRV_BQ4802 is not set
942# CONFIG_RTC_DRV_V3020 is not set
868 943
869# 944#
870# Userspace I/O 945# on-CPU RTC drivers
871# 946#
947CONFIG_RTC_DRV_PARISC=y
948# CONFIG_DMADEVICES is not set
949# CONFIG_AUXDISPLAY is not set
872# CONFIG_UIO is not set 950# CONFIG_UIO is not set
951# CONFIG_STAGING is not set
873 952
874# 953#
875# File systems 954# File systems
@@ -879,19 +958,18 @@ CONFIG_EXT2_FS=y
879# CONFIG_EXT2_FS_XIP is not set 958# CONFIG_EXT2_FS_XIP is not set
880CONFIG_EXT3_FS=y 959CONFIG_EXT3_FS=y
881# CONFIG_EXT3_FS_XATTR is not set 960# CONFIG_EXT3_FS_XATTR is not set
961# CONFIG_EXT4_FS is not set
882CONFIG_JBD=y 962CONFIG_JBD=y
883# CONFIG_JBD_DEBUG is not set
884# CONFIG_REISERFS_FS is not set 963# CONFIG_REISERFS_FS is not set
885# CONFIG_JFS_FS is not set 964# CONFIG_JFS_FS is not set
886# CONFIG_FS_POSIX_ACL is not set 965# CONFIG_FS_POSIX_ACL is not set
966CONFIG_FILE_LOCKING=y
887# CONFIG_XFS_FS is not set 967# CONFIG_XFS_FS is not set
888# CONFIG_OCFS2_FS is not set 968# CONFIG_OCFS2_FS is not set
889# CONFIG_MINIX_FS is not set 969CONFIG_DNOTIFY=y
890# CONFIG_ROMFS_FS is not set
891CONFIG_INOTIFY=y 970CONFIG_INOTIFY=y
892CONFIG_INOTIFY_USER=y 971CONFIG_INOTIFY_USER=y
893# CONFIG_QUOTA is not set 972# CONFIG_QUOTA is not set
894CONFIG_DNOTIFY=y
895# CONFIG_AUTOFS_FS is not set 973# CONFIG_AUTOFS_FS is not set
896CONFIG_AUTOFS4_FS=y 974CONFIG_AUTOFS4_FS=y
897# CONFIG_FUSE_FS is not set 975# CONFIG_FUSE_FS is not set
@@ -917,35 +995,32 @@ CONFIG_JOLIET=y
917CONFIG_PROC_FS=y 995CONFIG_PROC_FS=y
918CONFIG_PROC_KCORE=y 996CONFIG_PROC_KCORE=y
919CONFIG_PROC_SYSCTL=y 997CONFIG_PROC_SYSCTL=y
998CONFIG_PROC_PAGE_MONITOR=y
920CONFIG_SYSFS=y 999CONFIG_SYSFS=y
921CONFIG_TMPFS=y 1000CONFIG_TMPFS=y
922# CONFIG_TMPFS_POSIX_ACL is not set 1001# CONFIG_TMPFS_POSIX_ACL is not set
923# CONFIG_HUGETLB_PAGE is not set 1002# CONFIG_HUGETLB_PAGE is not set
924CONFIG_RAMFS=y 1003# CONFIG_CONFIGFS_FS is not set
925 1004CONFIG_MISC_FILESYSTEMS=y
926#
927# Miscellaneous filesystems
928#
929# CONFIG_HFSPLUS_FS is not set 1005# CONFIG_HFSPLUS_FS is not set
930# CONFIG_CRAMFS is not set 1006# CONFIG_CRAMFS is not set
1007# CONFIG_SQUASHFS is not set
931# CONFIG_VXFS_FS is not set 1008# CONFIG_VXFS_FS is not set
1009# CONFIG_MINIX_FS is not set
1010# CONFIG_OMFS_FS is not set
932# CONFIG_HPFS_FS is not set 1011# CONFIG_HPFS_FS is not set
933# CONFIG_QNX4FS_FS is not set 1012# CONFIG_QNX4FS_FS is not set
1013# CONFIG_ROMFS_FS is not set
934# CONFIG_SYSV_FS is not set 1014# CONFIG_SYSV_FS is not set
935# CONFIG_UFS_FS is not set 1015# CONFIG_UFS_FS is not set
936 1016CONFIG_NETWORK_FILESYSTEMS=y
937#
938# Network File Systems
939#
940CONFIG_NFS_FS=y 1017CONFIG_NFS_FS=y
941CONFIG_NFS_V3=y 1018CONFIG_NFS_V3=y
942# CONFIG_NFS_V3_ACL is not set 1019# CONFIG_NFS_V3_ACL is not set
943# CONFIG_NFS_DIRECTIO is not set 1020CONFIG_ROOT_NFS=y
944CONFIG_NFSD=y 1021CONFIG_NFSD=y
945CONFIG_NFSD_V3=y 1022CONFIG_NFSD_V3=y
946# CONFIG_NFSD_V3_ACL is not set 1023# CONFIG_NFSD_V3_ACL is not set
947CONFIG_NFSD_TCP=y
948CONFIG_ROOT_NFS=y
949CONFIG_LOCKD=y 1024CONFIG_LOCKD=y
950CONFIG_LOCKD_V4=y 1025CONFIG_LOCKD_V4=y
951CONFIG_EXPORTFS=y 1026CONFIG_EXPORTFS=y
@@ -962,10 +1037,6 @@ CONFIG_SMB_FS=y
962# 1037#
963# CONFIG_PARTITION_ADVANCED is not set 1038# CONFIG_PARTITION_ADVANCED is not set
964CONFIG_MSDOS_PARTITION=y 1039CONFIG_MSDOS_PARTITION=y
965
966#
967# Native Language Support
968#
969CONFIG_NLS=y 1040CONFIG_NLS=y
970CONFIG_NLS_DEFAULT="iso8859-1" 1041CONFIG_NLS_DEFAULT="iso8859-1"
971CONFIG_NLS_CODEPAGE_437=m 1042CONFIG_NLS_CODEPAGE_437=m
@@ -1011,7 +1082,9 @@ CONFIG_NLS_UTF8=m
1011# Kernel hacking 1082# Kernel hacking
1012# 1083#
1013# CONFIG_PRINTK_TIME is not set 1084# CONFIG_PRINTK_TIME is not set
1085CONFIG_ENABLE_WARN_DEPRECATED=y
1014CONFIG_ENABLE_MUST_CHECK=y 1086CONFIG_ENABLE_MUST_CHECK=y
1087CONFIG_FRAME_WARN=1024
1015CONFIG_MAGIC_SYSRQ=y 1088CONFIG_MAGIC_SYSRQ=y
1016# CONFIG_UNUSED_SYMBOLS is not set 1089# CONFIG_UNUSED_SYMBOLS is not set
1017# CONFIG_DEBUG_FS is not set 1090# CONFIG_DEBUG_FS is not set
@@ -1019,9 +1092,12 @@ CONFIG_HEADERS_CHECK=y
1019CONFIG_DEBUG_KERNEL=y 1092CONFIG_DEBUG_KERNEL=y
1020# CONFIG_DEBUG_SHIRQ is not set 1093# CONFIG_DEBUG_SHIRQ is not set
1021CONFIG_DETECT_SOFTLOCKUP=y 1094CONFIG_DETECT_SOFTLOCKUP=y
1095# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1096CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1022CONFIG_SCHED_DEBUG=y 1097CONFIG_SCHED_DEBUG=y
1023# CONFIG_SCHEDSTATS is not set 1098# CONFIG_SCHEDSTATS is not set
1024# CONFIG_TIMER_STATS is not set 1099# CONFIG_TIMER_STATS is not set
1100# CONFIG_DEBUG_OBJECTS is not set
1025# CONFIG_DEBUG_SLAB is not set 1101# CONFIG_DEBUG_SLAB is not set
1026# CONFIG_DEBUG_RT_MUTEXES is not set 1102# CONFIG_DEBUG_RT_MUTEXES is not set
1027# CONFIG_RT_MUTEX_TESTER is not set 1103# CONFIG_RT_MUTEX_TESTER is not set
@@ -1033,10 +1109,29 @@ CONFIG_SCHED_DEBUG=y
1033CONFIG_DEBUG_BUGVERBOSE=y 1109CONFIG_DEBUG_BUGVERBOSE=y
1034# CONFIG_DEBUG_INFO is not set 1110# CONFIG_DEBUG_INFO is not set
1035# CONFIG_DEBUG_VM is not set 1111# CONFIG_DEBUG_VM is not set
1112# CONFIG_DEBUG_WRITECOUNT is not set
1113CONFIG_DEBUG_MEMORY_INIT=y
1036# CONFIG_DEBUG_LIST is not set 1114# CONFIG_DEBUG_LIST is not set
1037CONFIG_FORCED_INLINING=y 1115# CONFIG_DEBUG_SG is not set
1116# CONFIG_DEBUG_NOTIFIERS is not set
1117# CONFIG_BOOT_PRINTK_DELAY is not set
1038# CONFIG_RCU_TORTURE_TEST is not set 1118# CONFIG_RCU_TORTURE_TEST is not set
1119# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1120# CONFIG_BACKTRACE_SELF_TEST is not set
1121# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1039# CONFIG_FAULT_INJECTION is not set 1122# CONFIG_FAULT_INJECTION is not set
1123# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1124
1125#
1126# Tracers
1127#
1128# CONFIG_SCHED_TRACER is not set
1129# CONFIG_CONTEXT_SWITCH_TRACER is not set
1130# CONFIG_BOOT_TRACER is not set
1131# CONFIG_TRACE_BRANCH_PROFILING is not set
1132# CONFIG_BUILD_DOCSRC is not set
1133# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1134# CONFIG_SAMPLES is not set
1040# CONFIG_DEBUG_RODATA is not set 1135# CONFIG_DEBUG_RODATA is not set
1041 1136
1042# 1137#
@@ -1044,52 +1139,108 @@ CONFIG_FORCED_INLINING=y
1044# 1139#
1045# CONFIG_KEYS is not set 1140# CONFIG_KEYS is not set
1046CONFIG_SECURITY=y 1141CONFIG_SECURITY=y
1142# CONFIG_SECURITYFS is not set
1047# CONFIG_SECURITY_NETWORK is not set 1143# CONFIG_SECURITY_NETWORK is not set
1048CONFIG_SECURITY_CAPABILITIES=y 1144# CONFIG_SECURITY_PATH is not set
1145# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1146CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0
1049CONFIG_CRYPTO=y 1147CONFIG_CRYPTO=y
1148
1149#
1150# Crypto core or helper
1151#
1152# CONFIG_CRYPTO_FIPS is not set
1050CONFIG_CRYPTO_ALGAPI=y 1153CONFIG_CRYPTO_ALGAPI=y
1154CONFIG_CRYPTO_ALGAPI2=y
1155CONFIG_CRYPTO_AEAD2=y
1051CONFIG_CRYPTO_BLKCIPHER=y 1156CONFIG_CRYPTO_BLKCIPHER=y
1157CONFIG_CRYPTO_BLKCIPHER2=y
1158CONFIG_CRYPTO_HASH2=y
1159CONFIG_CRYPTO_RNG2=y
1052CONFIG_CRYPTO_MANAGER=y 1160CONFIG_CRYPTO_MANAGER=y
1053# CONFIG_CRYPTO_HMAC is not set 1161CONFIG_CRYPTO_MANAGER2=y
1054# CONFIG_CRYPTO_NULL is not set 1162# CONFIG_CRYPTO_NULL is not set
1163# CONFIG_CRYPTO_CRYPTD is not set
1164# CONFIG_CRYPTO_AUTHENC is not set
1165# CONFIG_CRYPTO_TEST is not set
1166
1167#
1168# Authenticated Encryption with Associated Data
1169#
1170# CONFIG_CRYPTO_CCM is not set
1171# CONFIG_CRYPTO_GCM is not set
1172# CONFIG_CRYPTO_SEQIV is not set
1173
1174#
1175# Block modes
1176#
1177CONFIG_CRYPTO_CBC=y
1178# CONFIG_CRYPTO_CTR is not set
1179# CONFIG_CRYPTO_CTS is not set
1180# CONFIG_CRYPTO_ECB is not set
1181# CONFIG_CRYPTO_PCBC is not set
1182
1183#
1184# Hash modes
1185#
1186# CONFIG_CRYPTO_HMAC is not set
1187
1188#
1189# Digest
1190#
1191# CONFIG_CRYPTO_CRC32C is not set
1055# CONFIG_CRYPTO_MD4 is not set 1192# CONFIG_CRYPTO_MD4 is not set
1056# CONFIG_CRYPTO_MD5 is not set 1193# CONFIG_CRYPTO_MD5 is not set
1194# CONFIG_CRYPTO_MICHAEL_MIC is not set
1195# CONFIG_CRYPTO_RMD128 is not set
1196# CONFIG_CRYPTO_RMD160 is not set
1197# CONFIG_CRYPTO_RMD256 is not set
1198# CONFIG_CRYPTO_RMD320 is not set
1057# CONFIG_CRYPTO_SHA1 is not set 1199# CONFIG_CRYPTO_SHA1 is not set
1058# CONFIG_CRYPTO_SHA256 is not set 1200# CONFIG_CRYPTO_SHA256 is not set
1059# CONFIG_CRYPTO_SHA512 is not set 1201# CONFIG_CRYPTO_SHA512 is not set
1060# CONFIG_CRYPTO_WP512 is not set
1061# CONFIG_CRYPTO_TGR192 is not set 1202# CONFIG_CRYPTO_TGR192 is not set
1062# CONFIG_CRYPTO_ECB is not set 1203# CONFIG_CRYPTO_WP512 is not set
1063CONFIG_CRYPTO_CBC=y 1204
1064# CONFIG_CRYPTO_PCBC is not set 1205#
1065# CONFIG_CRYPTO_CRYPTD is not set 1206# Ciphers
1066# CONFIG_CRYPTO_DES is not set 1207#
1067# CONFIG_CRYPTO_FCRYPT is not set
1068# CONFIG_CRYPTO_BLOWFISH is not set
1069# CONFIG_CRYPTO_TWOFISH is not set
1070# CONFIG_CRYPTO_SERPENT is not set
1071# CONFIG_CRYPTO_AES is not set 1208# CONFIG_CRYPTO_AES is not set
1209# CONFIG_CRYPTO_ANUBIS is not set
1210# CONFIG_CRYPTO_ARC4 is not set
1211# CONFIG_CRYPTO_BLOWFISH is not set
1212# CONFIG_CRYPTO_CAMELLIA is not set
1072# CONFIG_CRYPTO_CAST5 is not set 1213# CONFIG_CRYPTO_CAST5 is not set
1073# CONFIG_CRYPTO_CAST6 is not set 1214# CONFIG_CRYPTO_CAST6 is not set
1074# CONFIG_CRYPTO_TEA is not set 1215# CONFIG_CRYPTO_DES is not set
1075# CONFIG_CRYPTO_ARC4 is not set 1216# CONFIG_CRYPTO_FCRYPT is not set
1076# CONFIG_CRYPTO_KHAZAD is not set 1217# CONFIG_CRYPTO_KHAZAD is not set
1077# CONFIG_CRYPTO_ANUBIS is not set
1078# CONFIG_CRYPTO_SEED is not set 1218# CONFIG_CRYPTO_SEED is not set
1219# CONFIG_CRYPTO_SERPENT is not set
1220# CONFIG_CRYPTO_TEA is not set
1221# CONFIG_CRYPTO_TWOFISH is not set
1222
1223#
1224# Compression
1225#
1079# CONFIG_CRYPTO_DEFLATE is not set 1226# CONFIG_CRYPTO_DEFLATE is not set
1080# CONFIG_CRYPTO_MICHAEL_MIC is not set 1227# CONFIG_CRYPTO_LZO is not set
1081# CONFIG_CRYPTO_CRC32C is not set 1228
1082# CONFIG_CRYPTO_CAMELLIA is not set 1229#
1083# CONFIG_CRYPTO_TEST is not set 1230# Random Number Generation
1084# CONFIG_CRYPTO_AUTHENC is not set 1231#
1232# CONFIG_CRYPTO_ANSI_CPRNG is not set
1085CONFIG_CRYPTO_HW=y 1233CONFIG_CRYPTO_HW=y
1234# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1086 1235
1087# 1236#
1088# Library routines 1237# Library routines
1089# 1238#
1090CONFIG_BITREVERSE=y 1239CONFIG_BITREVERSE=y
1240CONFIG_GENERIC_FIND_LAST_BIT=y
1091# CONFIG_CRC_CCITT is not set 1241# CONFIG_CRC_CCITT is not set
1092# CONFIG_CRC16 is not set 1242# CONFIG_CRC16 is not set
1243# CONFIG_CRC_T10DIF is not set
1093# CONFIG_CRC_ITU_T is not set 1244# CONFIG_CRC_ITU_T is not set
1094CONFIG_CRC32=y 1245CONFIG_CRC32=y
1095# CONFIG_CRC7 is not set 1246# CONFIG_CRC7 is not set
diff --git a/arch/parisc/configs/c3000_defconfig b/arch/parisc/configs/c3000_defconfig
index c6def3c1d209..0aa8014f758c 100644
--- a/arch/parisc/configs/c3000_defconfig
+++ b/arch/parisc/configs/c3000_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.23 3# Linux kernel version: 2.6.29-rc8
4# Fri Oct 12 21:24:00 2007 4# Fri Mar 13 01:32:58 2009
5# 5#
6CONFIG_PARISC=y 6CONFIG_PARISC=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -33,16 +33,29 @@ CONFIG_SYSVIPC_SYSCTL=y
33# CONFIG_POSIX_MQUEUE is not set 33# CONFIG_POSIX_MQUEUE is not set
34# CONFIG_BSD_PROCESS_ACCT is not set 34# CONFIG_BSD_PROCESS_ACCT is not set
35# CONFIG_TASKSTATS is not set 35# CONFIG_TASKSTATS is not set
36# CONFIG_USER_NS is not set
37# CONFIG_AUDIT is not set 36# CONFIG_AUDIT is not set
37
38#
39# RCU Subsystem
40#
41CONFIG_CLASSIC_RCU=y
42# CONFIG_TREE_RCU is not set
43# CONFIG_PREEMPT_RCU is not set
44# CONFIG_TREE_RCU_TRACE is not set
45# CONFIG_PREEMPT_RCU_TRACE is not set
38CONFIG_IKCONFIG=y 46CONFIG_IKCONFIG=y
39CONFIG_IKCONFIG_PROC=y 47CONFIG_IKCONFIG_PROC=y
40CONFIG_LOG_BUF_SHIFT=16 48CONFIG_LOG_BUF_SHIFT=16
49# CONFIG_GROUP_SCHED is not set
50# CONFIG_CGROUPS is not set
41CONFIG_SYSFS_DEPRECATED=y 51CONFIG_SYSFS_DEPRECATED=y
52CONFIG_SYSFS_DEPRECATED_V2=y
42# CONFIG_RELAY is not set 53# CONFIG_RELAY is not set
54# CONFIG_NAMESPACES is not set
43# CONFIG_BLK_DEV_INITRD is not set 55# CONFIG_BLK_DEV_INITRD is not set
44# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 56# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
45CONFIG_SYSCTL=y 57CONFIG_SYSCTL=y
58CONFIG_ANON_INODES=y
46CONFIG_EMBEDDED=y 59CONFIG_EMBEDDED=y
47CONFIG_SYSCTL_SYSCALL=y 60CONFIG_SYSCTL_SYSCALL=y
48CONFIG_KALLSYMS=y 61CONFIG_KALLSYMS=y
@@ -54,29 +67,39 @@ CONFIG_BUG=y
54CONFIG_ELF_CORE=y 67CONFIG_ELF_CORE=y
55CONFIG_BASE_FULL=y 68CONFIG_BASE_FULL=y
56CONFIG_FUTEX=y 69CONFIG_FUTEX=y
57CONFIG_ANON_INODES=y
58CONFIG_EPOLL=y 70CONFIG_EPOLL=y
59CONFIG_SIGNALFD=y 71CONFIG_SIGNALFD=y
72CONFIG_TIMERFD=y
60CONFIG_EVENTFD=y 73CONFIG_EVENTFD=y
61CONFIG_SHMEM=y 74CONFIG_SHMEM=y
75CONFIG_AIO=y
62CONFIG_VM_EVENT_COUNTERS=y 76CONFIG_VM_EVENT_COUNTERS=y
77CONFIG_PCI_QUIRKS=y
78CONFIG_COMPAT_BRK=y
63CONFIG_SLAB=y 79CONFIG_SLAB=y
64# CONFIG_SLUB is not set 80# CONFIG_SLUB is not set
65# CONFIG_SLOB is not set 81# CONFIG_SLOB is not set
82CONFIG_PROFILING=y
83CONFIG_TRACEPOINTS=y
84# CONFIG_MARKERS is not set
85CONFIG_OPROFILE=m
86CONFIG_HAVE_OPROFILE=y
87# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
88CONFIG_SLABINFO=y
66CONFIG_RT_MUTEXES=y 89CONFIG_RT_MUTEXES=y
67# CONFIG_TINY_SHMEM is not set
68CONFIG_BASE_SMALL=0 90CONFIG_BASE_SMALL=0
69CONFIG_MODULES=y 91CONFIG_MODULES=y
92# CONFIG_MODULE_FORCE_LOAD is not set
70CONFIG_MODULE_UNLOAD=y 93CONFIG_MODULE_UNLOAD=y
71CONFIG_MODULE_FORCE_UNLOAD=y 94CONFIG_MODULE_FORCE_UNLOAD=y
72# CONFIG_MODVERSIONS is not set 95# CONFIG_MODVERSIONS is not set
73# CONFIG_MODULE_SRCVERSION_ALL is not set 96# CONFIG_MODULE_SRCVERSION_ALL is not set
74CONFIG_KMOD=y 97CONFIG_INIT_ALL_POSSIBLE=y
75CONFIG_BLOCK=y 98CONFIG_BLOCK=y
76# CONFIG_LBD is not set 99# CONFIG_LBD is not set
77# CONFIG_BLK_DEV_IO_TRACE is not set 100# CONFIG_BLK_DEV_IO_TRACE is not set
78# CONFIG_LSF is not set
79# CONFIG_BLK_DEV_BSG is not set 101# CONFIG_BLK_DEV_BSG is not set
102# CONFIG_BLK_DEV_INTEGRITY is not set
80 103
81# 104#
82# IO Schedulers 105# IO Schedulers
@@ -90,6 +113,7 @@ CONFIG_DEFAULT_AS=y
90# CONFIG_DEFAULT_CFQ is not set 113# CONFIG_DEFAULT_CFQ is not set
91# CONFIG_DEFAULT_NOOP is not set 114# CONFIG_DEFAULT_NOOP is not set
92CONFIG_DEFAULT_IOSCHED="anticipatory" 115CONFIG_DEFAULT_IOSCHED="anticipatory"
116# CONFIG_FREEZER is not set
93 117
94# 118#
95# Processor type and features 119# Processor type and features
@@ -115,17 +139,19 @@ CONFIG_HZ_250=y
115# CONFIG_HZ_300 is not set 139# CONFIG_HZ_300 is not set
116# CONFIG_HZ_1000 is not set 140# CONFIG_HZ_1000 is not set
117CONFIG_HZ=250 141CONFIG_HZ=250
142# CONFIG_SCHED_HRTICK is not set
118CONFIG_SELECT_MEMORY_MODEL=y 143CONFIG_SELECT_MEMORY_MODEL=y
119CONFIG_FLATMEM_MANUAL=y 144CONFIG_FLATMEM_MANUAL=y
120# CONFIG_DISCONTIGMEM_MANUAL is not set 145# CONFIG_DISCONTIGMEM_MANUAL is not set
121# CONFIG_SPARSEMEM_MANUAL is not set 146# CONFIG_SPARSEMEM_MANUAL is not set
122CONFIG_FLATMEM=y 147CONFIG_FLATMEM=y
123CONFIG_FLAT_NODE_MEM_MAP=y 148CONFIG_FLAT_NODE_MEM_MAP=y
124# CONFIG_SPARSEMEM_STATIC is not set 149CONFIG_PAGEFLAGS_EXTENDED=y
125CONFIG_SPLIT_PTLOCK_CPUS=4 150CONFIG_SPLIT_PTLOCK_CPUS=4
126# CONFIG_RESOURCES_64BIT is not set 151# CONFIG_PHYS_ADDR_T_64BIT is not set
127CONFIG_ZONE_DMA_FLAG=0 152CONFIG_ZONE_DMA_FLAG=0
128CONFIG_VIRT_TO_BUS=y 153CONFIG_VIRT_TO_BUS=y
154CONFIG_UNEVICTABLE_LRU=y
129# CONFIG_HPUX is not set 155# CONFIG_HPUX is not set
130 156
131# 157#
@@ -134,14 +160,13 @@ CONFIG_VIRT_TO_BUS=y
134# CONFIG_GSC is not set 160# CONFIG_GSC is not set
135CONFIG_PCI=y 161CONFIG_PCI=y
136# CONFIG_ARCH_SUPPORTS_MSI is not set 162# CONFIG_ARCH_SUPPORTS_MSI is not set
163CONFIG_PCI_LEGACY=y
137# CONFIG_PCI_DEBUG is not set 164# CONFIG_PCI_DEBUG is not set
165# CONFIG_PCI_STUB is not set
138CONFIG_PCI_LBA=y 166CONFIG_PCI_LBA=y
139CONFIG_IOSAPIC=y 167CONFIG_IOSAPIC=y
140CONFIG_IOMMU_SBA=y 168CONFIG_IOMMU_SBA=y
141 169CONFIG_IOMMU_HELPER=y
142#
143# PCCARD (PCMCIA/CardBus) support
144#
145# CONFIG_PCCARD is not set 170# CONFIG_PCCARD is not set
146# CONFIG_HOTPLUG_PCI is not set 171# CONFIG_HOTPLUG_PCI is not set
147 172
@@ -158,16 +183,15 @@ CONFIG_PDC_STABLE=y
158# Executable file formats 183# Executable file formats
159# 184#
160CONFIG_BINFMT_ELF=y 185CONFIG_BINFMT_ELF=y
186# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
187# CONFIG_HAVE_AOUT is not set
161# CONFIG_BINFMT_MISC is not set 188# CONFIG_BINFMT_MISC is not set
162
163#
164# Networking
165#
166CONFIG_NET=y 189CONFIG_NET=y
167 190
168# 191#
169# Networking options 192# Networking options
170# 193#
194CONFIG_COMPAT_NET_DEV_OPS=y
171CONFIG_PACKET=y 195CONFIG_PACKET=y
172CONFIG_PACKET_MMAP=y 196CONFIG_PACKET_MMAP=y
173CONFIG_UNIX=y 197CONFIG_UNIX=y
@@ -175,6 +199,8 @@ CONFIG_XFRM=y
175CONFIG_XFRM_USER=m 199CONFIG_XFRM_USER=m
176# CONFIG_XFRM_SUB_POLICY is not set 200# CONFIG_XFRM_SUB_POLICY is not set
177# CONFIG_XFRM_MIGRATE is not set 201# CONFIG_XFRM_MIGRATE is not set
202# CONFIG_XFRM_STATISTICS is not set
203CONFIG_XFRM_IPCOMP=m
178CONFIG_NET_KEY=m 204CONFIG_NET_KEY=m
179# CONFIG_NET_KEY_MIGRATE is not set 205# CONFIG_NET_KEY_MIGRATE is not set
180CONFIG_INET=y 206CONFIG_INET=y
@@ -204,7 +230,6 @@ CONFIG_INET_XFRM_MODE_BEET=y
204CONFIG_TCP_CONG_CUBIC=y 230CONFIG_TCP_CONG_CUBIC=y
205CONFIG_DEFAULT_TCP_CONG="cubic" 231CONFIG_DEFAULT_TCP_CONG="cubic"
206# CONFIG_TCP_MD5SIG is not set 232# CONFIG_TCP_MD5SIG is not set
207# CONFIG_IP_VS is not set
208CONFIG_IPV6=m 233CONFIG_IPV6=m
209# CONFIG_IPV6_PRIVACY is not set 234# CONFIG_IPV6_PRIVACY is not set
210# CONFIG_IPV6_ROUTER_PREF is not set 235# CONFIG_IPV6_ROUTER_PREF is not set
@@ -220,29 +245,34 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=m
220CONFIG_INET6_XFRM_MODE_BEET=m 245CONFIG_INET6_XFRM_MODE_BEET=m
221# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set 246# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
222CONFIG_IPV6_SIT=m 247CONFIG_IPV6_SIT=m
248CONFIG_IPV6_NDISC_NODETYPE=y
223CONFIG_IPV6_TUNNEL=m 249CONFIG_IPV6_TUNNEL=m
224# CONFIG_IPV6_MULTIPLE_TABLES is not set 250# CONFIG_IPV6_MULTIPLE_TABLES is not set
251# CONFIG_IPV6_MROUTE is not set
225# CONFIG_NETWORK_SECMARK is not set 252# CONFIG_NETWORK_SECMARK is not set
226CONFIG_NETFILTER=y 253CONFIG_NETFILTER=y
227CONFIG_NETFILTER_DEBUG=y 254CONFIG_NETFILTER_DEBUG=y
255CONFIG_NETFILTER_ADVANCED=y
228 256
229# 257#
230# Core Netfilter Configuration 258# Core Netfilter Configuration
231# 259#
232# CONFIG_NETFILTER_NETLINK is not set 260# CONFIG_NETFILTER_NETLINK_QUEUE is not set
233# CONFIG_NF_CONNTRACK_ENABLED is not set 261# CONFIG_NETFILTER_NETLINK_LOG is not set
234# CONFIG_NF_CONNTRACK is not set 262# CONFIG_NF_CONNTRACK is not set
235# CONFIG_NETFILTER_XTABLES is not set 263# CONFIG_NETFILTER_XTABLES is not set
264# CONFIG_IP_VS is not set
236 265
237# 266#
238# IP: Netfilter Configuration 267# IP: Netfilter Configuration
239# 268#
269# CONFIG_NF_DEFRAG_IPV4 is not set
240CONFIG_IP_NF_QUEUE=m 270CONFIG_IP_NF_QUEUE=m
241# CONFIG_IP_NF_IPTABLES is not set 271# CONFIG_IP_NF_IPTABLES is not set
242# CONFIG_IP_NF_ARPTABLES is not set 272# CONFIG_IP_NF_ARPTABLES is not set
243 273
244# 274#
245# IPv6: Netfilter Configuration (EXPERIMENTAL) 275# IPv6: Netfilter Configuration
246# 276#
247# CONFIG_IP6_NF_QUEUE is not set 277# CONFIG_IP6_NF_QUEUE is not set
248# CONFIG_IP6_NF_IPTABLES is not set 278# CONFIG_IP6_NF_IPTABLES is not set
@@ -251,6 +281,7 @@ CONFIG_IP_NF_QUEUE=m
251# CONFIG_TIPC is not set 281# CONFIG_TIPC is not set
252# CONFIG_ATM is not set 282# CONFIG_ATM is not set
253# CONFIG_BRIDGE is not set 283# CONFIG_BRIDGE is not set
284# CONFIG_NET_DSA is not set
254# CONFIG_VLAN_8021Q is not set 285# CONFIG_VLAN_8021Q is not set
255# CONFIG_DECNET is not set 286# CONFIG_DECNET is not set
256# CONFIG_LLC2 is not set 287# CONFIG_LLC2 is not set
@@ -260,28 +291,26 @@ CONFIG_IP_NF_QUEUE=m
260# CONFIG_LAPB is not set 291# CONFIG_LAPB is not set
261# CONFIG_ECONET is not set 292# CONFIG_ECONET is not set
262# CONFIG_WAN_ROUTER is not set 293# CONFIG_WAN_ROUTER is not set
263
264#
265# QoS and/or fair queueing
266#
267# CONFIG_NET_SCHED is not set 294# CONFIG_NET_SCHED is not set
295# CONFIG_DCB is not set
268 296
269# 297#
270# Network testing 298# Network testing
271# 299#
272CONFIG_NET_PKTGEN=m 300CONFIG_NET_PKTGEN=m
273# CONFIG_HAMRADIO is not set 301# CONFIG_HAMRADIO is not set
302# CONFIG_CAN is not set
274# CONFIG_IRDA is not set 303# CONFIG_IRDA is not set
275# CONFIG_BT is not set 304# CONFIG_BT is not set
276# CONFIG_AF_RXRPC is not set 305# CONFIG_AF_RXRPC is not set
277 306# CONFIG_PHONET is not set
278# 307CONFIG_WIRELESS=y
279# Wireless
280#
281# CONFIG_CFG80211 is not set 308# CONFIG_CFG80211 is not set
309CONFIG_WIRELESS_OLD_REGULATORY=y
282# CONFIG_WIRELESS_EXT is not set 310# CONFIG_WIRELESS_EXT is not set
311# CONFIG_LIB80211 is not set
283# CONFIG_MAC80211 is not set 312# CONFIG_MAC80211 is not set
284# CONFIG_IEEE80211 is not set 313# CONFIG_WIMAX is not set
285# CONFIG_RFKILL is not set 314# CONFIG_RFKILL is not set
286# CONFIG_NET_9P is not set 315# CONFIG_NET_9P is not set
287 316
@@ -296,6 +325,8 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
296# CONFIG_STANDALONE is not set 325# CONFIG_STANDALONE is not set
297# CONFIG_PREVENT_FIRMWARE_BUILD is not set 326# CONFIG_PREVENT_FIRMWARE_BUILD is not set
298CONFIG_FW_LOADER=y 327CONFIG_FW_LOADER=y
328CONFIG_FIRMWARE_IN_KERNEL=y
329CONFIG_EXTRA_FIRMWARE=""
299# CONFIG_DEBUG_DRIVER is not set 330# CONFIG_DEBUG_DRIVER is not set
300# CONFIG_DEBUG_DEVRES is not set 331# CONFIG_DEBUG_DEVRES is not set
301# CONFIG_SYS_HYPERVISOR is not set 332# CONFIG_SYS_HYPERVISOR is not set
@@ -316,59 +347,62 @@ CONFIG_BLK_DEV_CRYPTOLOOP=m
316# CONFIG_BLK_DEV_RAM is not set 347# CONFIG_BLK_DEV_RAM is not set
317# CONFIG_CDROM_PKTCDVD is not set 348# CONFIG_CDROM_PKTCDVD is not set
318# CONFIG_ATA_OVER_ETH is not set 349# CONFIG_ATA_OVER_ETH is not set
350# CONFIG_BLK_DEV_HD is not set
319CONFIG_MISC_DEVICES=y 351CONFIG_MISC_DEVICES=y
320# CONFIG_PHANTOM is not set 352# CONFIG_PHANTOM is not set
321# CONFIG_EEPROM_93CX6 is not set
322# CONFIG_SGI_IOC4 is not set 353# CONFIG_SGI_IOC4 is not set
323# CONFIG_TIFM_CORE is not set 354# CONFIG_TIFM_CORE is not set
355# CONFIG_ENCLOSURE_SERVICES is not set
356# CONFIG_HP_ILO is not set
357# CONFIG_C2PORT is not set
358
359#
360# EEPROM support
361#
362# CONFIG_EEPROM_93CX6 is not set
363CONFIG_HAVE_IDE=y
324CONFIG_IDE=y 364CONFIG_IDE=y
325CONFIG_IDE_MAX_HWIFS=4
326CONFIG_BLK_DEV_IDE=y
327 365
328# 366#
329# Please see Documentation/ide.txt for help/info on IDE drives 367# Please see Documentation/ide/ide.txt for help/info on IDE drives
330# 368#
369CONFIG_IDE_ATAPI=y
331# CONFIG_BLK_DEV_IDE_SATA is not set 370# CONFIG_BLK_DEV_IDE_SATA is not set
332CONFIG_BLK_DEV_IDEDISK=m 371CONFIG_IDE_GD=y
333# CONFIG_IDEDISK_MULTI_MODE is not set 372CONFIG_IDE_GD_ATA=y
373# CONFIG_IDE_GD_ATAPI is not set
334CONFIG_BLK_DEV_IDECD=y 374CONFIG_BLK_DEV_IDECD=y
375CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
335# CONFIG_BLK_DEV_IDETAPE is not set 376# CONFIG_BLK_DEV_IDETAPE is not set
336# CONFIG_BLK_DEV_IDEFLOPPY is not set
337CONFIG_BLK_DEV_IDESCSI=y
338# CONFIG_IDE_TASK_IOCTL is not set 377# CONFIG_IDE_TASK_IOCTL is not set
339CONFIG_IDE_PROC_FS=y 378CONFIG_IDE_PROC_FS=y
340 379
341# 380#
342# IDE chipset support/bugfixes 381# IDE chipset support/bugfixes
343# 382#
344CONFIG_IDE_GENERIC=y
345# CONFIG_BLK_DEV_PLATFORM is not set 383# CONFIG_BLK_DEV_PLATFORM is not set
384CONFIG_BLK_DEV_IDEDMA_SFF=y
346 385
347# 386#
348# PCI IDE chipsets support 387# PCI IDE chipsets support
349# 388#
350CONFIG_BLK_DEV_IDEPCI=y 389CONFIG_BLK_DEV_IDEPCI=y
351CONFIG_IDEPCI_SHARE_IRQ=y
352CONFIG_IDEPCI_PCIBUS_ORDER=y 390CONFIG_IDEPCI_PCIBUS_ORDER=y
353# CONFIG_BLK_DEV_OFFBOARD is not set
354# CONFIG_BLK_DEV_GENERIC is not set 391# CONFIG_BLK_DEV_GENERIC is not set
355# CONFIG_BLK_DEV_OPTI621 is not set 392# CONFIG_BLK_DEV_OPTI621 is not set
356CONFIG_BLK_DEV_IDEDMA_PCI=y 393CONFIG_BLK_DEV_IDEDMA_PCI=y
357# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
358CONFIG_IDEDMA_ONLYDISK=y
359# CONFIG_BLK_DEV_AEC62XX is not set 394# CONFIG_BLK_DEV_AEC62XX is not set
360# CONFIG_BLK_DEV_ALI15X3 is not set 395# CONFIG_BLK_DEV_ALI15X3 is not set
361# CONFIG_BLK_DEV_AMD74XX is not set 396# CONFIG_BLK_DEV_AMD74XX is not set
362# CONFIG_BLK_DEV_CMD64X is not set 397# CONFIG_BLK_DEV_CMD64X is not set
363# CONFIG_BLK_DEV_TRIFLEX is not set 398# CONFIG_BLK_DEV_TRIFLEX is not set
364# CONFIG_BLK_DEV_CY82C693 is not set
365# CONFIG_BLK_DEV_CS5520 is not set 399# CONFIG_BLK_DEV_CS5520 is not set
366# CONFIG_BLK_DEV_CS5530 is not set 400# CONFIG_BLK_DEV_CS5530 is not set
367# CONFIG_BLK_DEV_HPT34X is not set
368# CONFIG_BLK_DEV_HPT366 is not set 401# CONFIG_BLK_DEV_HPT366 is not set
369# CONFIG_BLK_DEV_JMICRON is not set 402# CONFIG_BLK_DEV_JMICRON is not set
370# CONFIG_BLK_DEV_SC1200 is not set 403# CONFIG_BLK_DEV_SC1200 is not set
371# CONFIG_BLK_DEV_PIIX is not set 404# CONFIG_BLK_DEV_PIIX is not set
405# CONFIG_BLK_DEV_IT8172 is not set
372# CONFIG_BLK_DEV_IT8213 is not set 406# CONFIG_BLK_DEV_IT8213 is not set
373# CONFIG_BLK_DEV_IT821X is not set 407# CONFIG_BLK_DEV_IT821X is not set
374CONFIG_BLK_DEV_NS87415=y 408CONFIG_BLK_DEV_NS87415=y
@@ -380,10 +414,7 @@ CONFIG_BLK_DEV_SIIMAGE=m
380# CONFIG_BLK_DEV_TRM290 is not set 414# CONFIG_BLK_DEV_TRM290 is not set
381# CONFIG_BLK_DEV_VIA82CXXX is not set 415# CONFIG_BLK_DEV_VIA82CXXX is not set
382# CONFIG_BLK_DEV_TC86C001 is not set 416# CONFIG_BLK_DEV_TC86C001 is not set
383# CONFIG_IDE_ARM is not set
384CONFIG_BLK_DEV_IDEDMA=y 417CONFIG_BLK_DEV_IDEDMA=y
385# CONFIG_IDEDMA_IVB is not set
386# CONFIG_BLK_DEV_HD is not set
387 418
388# 419#
389# SCSI device support 420# SCSI device support
@@ -422,8 +453,10 @@ CONFIG_SCSI_SPI_ATTRS=y
422# CONFIG_SCSI_FC_ATTRS is not set 453# CONFIG_SCSI_FC_ATTRS is not set
423CONFIG_SCSI_ISCSI_ATTRS=m 454CONFIG_SCSI_ISCSI_ATTRS=m
424# CONFIG_SCSI_SAS_LIBSAS is not set 455# CONFIG_SCSI_SAS_LIBSAS is not set
456# CONFIG_SCSI_SRP_ATTRS is not set
425CONFIG_SCSI_LOWLEVEL=y 457CONFIG_SCSI_LOWLEVEL=y
426# CONFIG_ISCSI_TCP is not set 458# CONFIG_ISCSI_TCP is not set
459# CONFIG_SCSI_CXGB3_ISCSI is not set
427# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 460# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
428# CONFIG_SCSI_3W_9XXX is not set 461# CONFIG_SCSI_3W_9XXX is not set
429# CONFIG_SCSI_ACARD is not set 462# CONFIG_SCSI_ACARD is not set
@@ -433,16 +466,20 @@ CONFIG_SCSI_LOWLEVEL=y
433# CONFIG_SCSI_AIC79XX is not set 466# CONFIG_SCSI_AIC79XX is not set
434# CONFIG_SCSI_AIC94XX is not set 467# CONFIG_SCSI_AIC94XX is not set
435# CONFIG_SCSI_DPT_I2O is not set 468# CONFIG_SCSI_DPT_I2O is not set
469# CONFIG_SCSI_ADVANSYS is not set
436# CONFIG_SCSI_ARCMSR is not set 470# CONFIG_SCSI_ARCMSR is not set
437# CONFIG_MEGARAID_NEWGEN is not set 471# CONFIG_MEGARAID_NEWGEN is not set
438# CONFIG_MEGARAID_LEGACY is not set 472# CONFIG_MEGARAID_LEGACY is not set
439# CONFIG_MEGARAID_SAS is not set 473# CONFIG_MEGARAID_SAS is not set
440# CONFIG_SCSI_HPTIOP is not set 474# CONFIG_SCSI_HPTIOP is not set
475# CONFIG_LIBFC is not set
476# CONFIG_FCOE is not set
441# CONFIG_SCSI_DMX3191D is not set 477# CONFIG_SCSI_DMX3191D is not set
442# CONFIG_SCSI_FUTURE_DOMAIN is not set 478# CONFIG_SCSI_FUTURE_DOMAIN is not set
443# CONFIG_SCSI_IPS is not set 479# CONFIG_SCSI_IPS is not set
444# CONFIG_SCSI_INITIO is not set 480# CONFIG_SCSI_INITIO is not set
445# CONFIG_SCSI_INIA100 is not set 481# CONFIG_SCSI_INIA100 is not set
482# CONFIG_SCSI_MVSAS is not set
446# CONFIG_SCSI_STEX is not set 483# CONFIG_SCSI_STEX is not set
447CONFIG_SCSI_SYM53C8XX_2=y 484CONFIG_SCSI_SYM53C8XX_2=y
448CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=0 485CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=0
@@ -458,9 +495,11 @@ CONFIG_SCSI_SYM53C8XX_MMIO=y
458# CONFIG_SCSI_NSP32 is not set 495# CONFIG_SCSI_NSP32 is not set
459CONFIG_SCSI_DEBUG=m 496CONFIG_SCSI_DEBUG=m
460# CONFIG_SCSI_SRP is not set 497# CONFIG_SCSI_SRP is not set
498# CONFIG_SCSI_DH is not set
461# CONFIG_ATA is not set 499# CONFIG_ATA is not set
462CONFIG_MD=y 500CONFIG_MD=y
463CONFIG_BLK_DEV_MD=y 501CONFIG_BLK_DEV_MD=y
502CONFIG_MD_AUTODETECT=y
464CONFIG_MD_LINEAR=y 503CONFIG_MD_LINEAR=y
465CONFIG_MD_RAID0=y 504CONFIG_MD_RAID0=y
466CONFIG_MD_RAID1=y 505CONFIG_MD_RAID1=y
@@ -475,13 +514,8 @@ CONFIG_DM_SNAPSHOT=m
475CONFIG_DM_MIRROR=m 514CONFIG_DM_MIRROR=m
476CONFIG_DM_ZERO=m 515CONFIG_DM_ZERO=m
477CONFIG_DM_MULTIPATH=m 516CONFIG_DM_MULTIPATH=m
478# CONFIG_DM_MULTIPATH_EMC is not set
479# CONFIG_DM_MULTIPATH_RDAC is not set
480# CONFIG_DM_DELAY is not set 517# CONFIG_DM_DELAY is not set
481 518# CONFIG_DM_UEVENT is not set
482#
483# Fusion MPT device support
484#
485CONFIG_FUSION=y 519CONFIG_FUSION=y
486CONFIG_FUSION_SPI=m 520CONFIG_FUSION_SPI=m
487# CONFIG_FUSION_FC is not set 521# CONFIG_FUSION_FC is not set
@@ -493,20 +527,40 @@ CONFIG_FUSION_CTL=m
493# 527#
494# IEEE 1394 (FireWire) support 528# IEEE 1394 (FireWire) support
495# 529#
530
531#
532# Enable only one of the two stacks, unless you know what you are doing
533#
496# CONFIG_FIREWIRE is not set 534# CONFIG_FIREWIRE is not set
497# CONFIG_IEEE1394 is not set 535# CONFIG_IEEE1394 is not set
498# CONFIG_I2O is not set 536# CONFIG_I2O is not set
499CONFIG_NETDEVICES=y 537CONFIG_NETDEVICES=y
500# CONFIG_NETDEVICES_MULTIQUEUE is not set
501CONFIG_DUMMY=m 538CONFIG_DUMMY=m
502CONFIG_BONDING=m 539CONFIG_BONDING=m
503# CONFIG_MACVLAN is not set 540# CONFIG_MACVLAN is not set
504# CONFIG_EQUALIZER is not set 541# CONFIG_EQUALIZER is not set
505CONFIG_TUN=m 542CONFIG_TUN=m
506# CONFIG_VETH is not set 543# CONFIG_VETH is not set
507# CONFIG_IP1000 is not set
508# CONFIG_ARCNET is not set 544# CONFIG_ARCNET is not set
509# CONFIG_PHYLIB is not set 545CONFIG_PHYLIB=m
546
547#
548# MII PHY device drivers
549#
550# CONFIG_MARVELL_PHY is not set
551# CONFIG_DAVICOM_PHY is not set
552# CONFIG_QSEMI_PHY is not set
553# CONFIG_LXT_PHY is not set
554# CONFIG_CICADA_PHY is not set
555# CONFIG_VITESSE_PHY is not set
556# CONFIG_SMSC_PHY is not set
557# CONFIG_BROADCOM_PHY is not set
558# CONFIG_ICPLUS_PHY is not set
559# CONFIG_REALTEK_PHY is not set
560# CONFIG_NATIONAL_PHY is not set
561# CONFIG_STE10XP is not set
562# CONFIG_LSI_ET1011C_PHY is not set
563# CONFIG_MDIO_BITBANG is not set
510CONFIG_NET_ETHERNET=y 564CONFIG_NET_ETHERNET=y
511CONFIG_MII=m 565CONFIG_MII=m
512# CONFIG_HAPPYMEAL is not set 566# CONFIG_HAPPYMEAL is not set
@@ -528,33 +582,38 @@ CONFIG_TULIP_MMIO=y
528# CONFIG_IBM_NEW_EMAC_RGMII is not set 582# CONFIG_IBM_NEW_EMAC_RGMII is not set
529# CONFIG_IBM_NEW_EMAC_TAH is not set 583# CONFIG_IBM_NEW_EMAC_TAH is not set
530# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 584# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
585# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
586# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
587# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
531CONFIG_NET_PCI=y 588CONFIG_NET_PCI=y
532# CONFIG_PCNET32 is not set 589# CONFIG_PCNET32 is not set
533# CONFIG_AMD8111_ETH is not set 590# CONFIG_AMD8111_ETH is not set
534# CONFIG_ADAPTEC_STARFIRE is not set 591# CONFIG_ADAPTEC_STARFIRE is not set
535# CONFIG_B44 is not set 592# CONFIG_B44 is not set
536# CONFIG_FORCEDETH is not set 593# CONFIG_FORCEDETH is not set
537# CONFIG_EEPRO100 is not set
538CONFIG_E100=m 594CONFIG_E100=m
539# CONFIG_FEALNX is not set 595# CONFIG_FEALNX is not set
540# CONFIG_NATSEMI is not set 596# CONFIG_NATSEMI is not set
541# CONFIG_NE2K_PCI is not set 597# CONFIG_NE2K_PCI is not set
542# CONFIG_8139CP is not set 598# CONFIG_8139CP is not set
543# CONFIG_8139TOO is not set 599# CONFIG_8139TOO is not set
600# CONFIG_R6040 is not set
544# CONFIG_SIS900 is not set 601# CONFIG_SIS900 is not set
545# CONFIG_EPIC100 is not set 602# CONFIG_EPIC100 is not set
603# CONFIG_SMSC9420 is not set
546# CONFIG_SUNDANCE is not set 604# CONFIG_SUNDANCE is not set
547# CONFIG_TLAN is not set 605# CONFIG_TLAN is not set
548# CONFIG_VIA_RHINE is not set 606# CONFIG_VIA_RHINE is not set
549# CONFIG_SC92031 is not set 607# CONFIG_SC92031 is not set
608# CONFIG_ATL2 is not set
550CONFIG_NETDEV_1000=y 609CONFIG_NETDEV_1000=y
551CONFIG_ACENIC=m 610CONFIG_ACENIC=m
552# CONFIG_ACENIC_OMIT_TIGON_I is not set 611# CONFIG_ACENIC_OMIT_TIGON_I is not set
553# CONFIG_DL2K is not set 612# CONFIG_DL2K is not set
554CONFIG_E1000=m 613CONFIG_E1000=m
555# CONFIG_E1000_NAPI is not set
556# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
557# CONFIG_E1000E is not set 614# CONFIG_E1000E is not set
615# CONFIG_IP1000 is not set
616# CONFIG_IGB is not set
558# CONFIG_NS83820 is not set 617# CONFIG_NS83820 is not set
559# CONFIG_HAMACHI is not set 618# CONFIG_HAMACHI is not set
560# CONFIG_YELLOWFIN is not set 619# CONFIG_YELLOWFIN is not set
@@ -562,23 +621,31 @@ CONFIG_E1000=m
562# CONFIG_SIS190 is not set 621# CONFIG_SIS190 is not set
563# CONFIG_SKGE is not set 622# CONFIG_SKGE is not set
564# CONFIG_SKY2 is not set 623# CONFIG_SKY2 is not set
565# CONFIG_SK98LIN is not set
566# CONFIG_VIA_VELOCITY is not set 624# CONFIG_VIA_VELOCITY is not set
567CONFIG_TIGON3=m 625CONFIG_TIGON3=m
568# CONFIG_BNX2 is not set 626# CONFIG_BNX2 is not set
569# CONFIG_QLA3XXX is not set 627# CONFIG_QLA3XXX is not set
570# CONFIG_ATL1 is not set 628# CONFIG_ATL1 is not set
629# CONFIG_ATL1E is not set
630# CONFIG_ATL1C is not set
631# CONFIG_JME is not set
571CONFIG_NETDEV_10000=y 632CONFIG_NETDEV_10000=y
572# CONFIG_CHELSIO_T1 is not set 633# CONFIG_CHELSIO_T1 is not set
634CONFIG_CHELSIO_T3_DEPENDS=y
573# CONFIG_CHELSIO_T3 is not set 635# CONFIG_CHELSIO_T3 is not set
636# CONFIG_ENIC is not set
574# CONFIG_IXGBE is not set 637# CONFIG_IXGBE is not set
575# CONFIG_IXGB is not set 638# CONFIG_IXGB is not set
576# CONFIG_S2IO is not set 639# CONFIG_S2IO is not set
577# CONFIG_MYRI10GE is not set 640# CONFIG_MYRI10GE is not set
578# CONFIG_NETXEN_NIC is not set 641# CONFIG_NETXEN_NIC is not set
579# CONFIG_NIU is not set 642# CONFIG_NIU is not set
643# CONFIG_MLX4_EN is not set
580# CONFIG_MLX4_CORE is not set 644# CONFIG_MLX4_CORE is not set
581# CONFIG_TEHUTI is not set 645# CONFIG_TEHUTI is not set
646# CONFIG_BNX2X is not set
647# CONFIG_QLGE is not set
648# CONFIG_SFC is not set
582# CONFIG_TR is not set 649# CONFIG_TR is not set
583 650
584# 651#
@@ -586,6 +653,11 @@ CONFIG_NETDEV_10000=y
586# 653#
587# CONFIG_WLAN_PRE80211 is not set 654# CONFIG_WLAN_PRE80211 is not set
588# CONFIG_WLAN_80211 is not set 655# CONFIG_WLAN_80211 is not set
656# CONFIG_IWLWIFI_LEDS is not set
657
658#
659# Enable WiMAX (Networking options) to see the WiMAX drivers
660#
589 661
590# 662#
591# USB Network Adapters 663# USB Network Adapters
@@ -594,7 +666,6 @@ CONFIG_NETDEV_10000=y
594# CONFIG_USB_KAWETH is not set 666# CONFIG_USB_KAWETH is not set
595# CONFIG_USB_PEGASUS is not set 667# CONFIG_USB_PEGASUS is not set
596# CONFIG_USB_RTL8150 is not set 668# CONFIG_USB_RTL8150 is not set
597# CONFIG_USB_USBNET_MII is not set
598# CONFIG_USB_USBNET is not set 669# CONFIG_USB_USBNET is not set
599# CONFIG_WAN is not set 670# CONFIG_WAN is not set
600# CONFIG_FDDI is not set 671# CONFIG_FDDI is not set
@@ -612,7 +683,6 @@ CONFIG_PPPOE=m
612# CONFIG_SLIP is not set 683# CONFIG_SLIP is not set
613CONFIG_SLHC=m 684CONFIG_SLHC=m
614# CONFIG_NET_FC is not set 685# CONFIG_NET_FC is not set
615# CONFIG_SHAPER is not set
616# CONFIG_NETCONSOLE is not set 686# CONFIG_NETCONSOLE is not set
617# CONFIG_NETPOLL is not set 687# CONFIG_NETPOLL is not set
618# CONFIG_NET_POLL_CONTROLLER is not set 688# CONFIG_NET_POLL_CONTROLLER is not set
@@ -634,7 +704,6 @@ CONFIG_INPUT_MOUSEDEV=y
634CONFIG_INPUT_MOUSEDEV_SCREEN_X=1600 704CONFIG_INPUT_MOUSEDEV_SCREEN_X=1600
635CONFIG_INPUT_MOUSEDEV_SCREEN_Y=1200 705CONFIG_INPUT_MOUSEDEV_SCREEN_Y=1200
636# CONFIG_INPUT_JOYDEV is not set 706# CONFIG_INPUT_JOYDEV is not set
637# CONFIG_INPUT_TSDEV is not set
638# CONFIG_INPUT_EVDEV is not set 707# CONFIG_INPUT_EVDEV is not set
639# CONFIG_INPUT_EVBUG is not set 708# CONFIG_INPUT_EVBUG is not set
640 709
@@ -652,6 +721,7 @@ CONFIG_INPUT_MOUSE=y
652# CONFIG_MOUSE_PS2 is not set 721# CONFIG_MOUSE_PS2 is not set
653# CONFIG_MOUSE_SERIAL is not set 722# CONFIG_MOUSE_SERIAL is not set
654# CONFIG_MOUSE_APPLETOUCH is not set 723# CONFIG_MOUSE_APPLETOUCH is not set
724# CONFIG_MOUSE_BCM5974 is not set
655# CONFIG_MOUSE_VSXXXAA is not set 725# CONFIG_MOUSE_VSXXXAA is not set
656# CONFIG_INPUT_JOYSTICK is not set 726# CONFIG_INPUT_JOYSTICK is not set
657# CONFIG_INPUT_TABLET is not set 727# CONFIG_INPUT_TABLET is not set
@@ -672,10 +742,13 @@ CONFIG_SERIO_LIBPS2=m
672# Character devices 742# Character devices
673# 743#
674CONFIG_VT=y 744CONFIG_VT=y
745CONFIG_CONSOLE_TRANSLATIONS=y
675CONFIG_VT_CONSOLE=y 746CONFIG_VT_CONSOLE=y
676CONFIG_HW_CONSOLE=y 747CONFIG_HW_CONSOLE=y
677# CONFIG_VT_HW_CONSOLE_BINDING is not set 748# CONFIG_VT_HW_CONSOLE_BINDING is not set
749CONFIG_DEVKMEM=y
678# CONFIG_SERIAL_NONSTANDARD is not set 750# CONFIG_SERIAL_NONSTANDARD is not set
751# CONFIG_NOZOMI is not set
679 752
680# 753#
681# Serial drivers 754# Serial drivers
@@ -699,72 +772,77 @@ CONFIG_SERIAL_CORE=y
699CONFIG_SERIAL_CORE_CONSOLE=y 772CONFIG_SERIAL_CORE_CONSOLE=y
700# CONFIG_SERIAL_JSM is not set 773# CONFIG_SERIAL_JSM is not set
701CONFIG_UNIX98_PTYS=y 774CONFIG_UNIX98_PTYS=y
775# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
702CONFIG_LEGACY_PTYS=y 776CONFIG_LEGACY_PTYS=y
703CONFIG_LEGACY_PTY_COUNT=256 777CONFIG_LEGACY_PTY_COUNT=256
704# CONFIG_IPMI_HANDLER is not set 778# CONFIG_IPMI_HANDLER is not set
705# CONFIG_WATCHDOG is not set
706# CONFIG_HW_RANDOM is not set 779# CONFIG_HW_RANDOM is not set
707CONFIG_GEN_RTC=y
708CONFIG_GEN_RTC_X=y
709# CONFIG_R3964 is not set 780# CONFIG_R3964 is not set
710# CONFIG_APPLICOM is not set 781# CONFIG_APPLICOM is not set
711# CONFIG_AGP is not set
712# CONFIG_DRM is not set
713CONFIG_RAW_DRIVER=y 782CONFIG_RAW_DRIVER=y
714CONFIG_MAX_RAW_DEVS=256 783CONFIG_MAX_RAW_DEVS=256
715# CONFIG_TCG_TPM is not set 784# CONFIG_TCG_TPM is not set
716CONFIG_DEVPORT=y 785CONFIG_DEVPORT=y
717# CONFIG_I2C is not set 786# CONFIG_I2C is not set
718
719#
720# SPI support
721#
722# CONFIG_SPI is not set 787# CONFIG_SPI is not set
723# CONFIG_SPI_MASTER is not set
724# CONFIG_W1 is not set 788# CONFIG_W1 is not set
725# CONFIG_POWER_SUPPLY is not set 789# CONFIG_POWER_SUPPLY is not set
726# CONFIG_HWMON is not set 790# CONFIG_HWMON is not set
791# CONFIG_THERMAL is not set
792# CONFIG_THERMAL_HWMON is not set
793# CONFIG_WATCHDOG is not set
794CONFIG_SSB_POSSIBLE=y
727 795
728# 796#
729# Sonics Silicon Backplane 797# Sonics Silicon Backplane
730# 798#
731CONFIG_SSB_POSSIBLE=y
732# CONFIG_SSB is not set 799# CONFIG_SSB is not set
733 800
734# 801#
735# Multifunction device drivers 802# Multifunction device drivers
736# 803#
804# CONFIG_MFD_CORE is not set
737# CONFIG_MFD_SM501 is not set 805# CONFIG_MFD_SM501 is not set
806# CONFIG_HTC_PASIC3 is not set
807# CONFIG_MFD_TMIO is not set
808# CONFIG_REGULATOR is not set
738 809
739# 810#
740# Multimedia devices 811# Multimedia devices
741# 812#
813
814#
815# Multimedia core support
816#
742# CONFIG_VIDEO_DEV is not set 817# CONFIG_VIDEO_DEV is not set
743# CONFIG_DVB_CORE is not set 818# CONFIG_DVB_CORE is not set
744# CONFIG_DAB is not set 819# CONFIG_VIDEO_MEDIA is not set
745 820
746# 821#
747# Graphics support 822# Multimedia drivers
748# 823#
749# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 824# CONFIG_DAB is not set
750 825
751# 826#
752# Display device support 827# Graphics support
753# 828#
754# CONFIG_DISPLAY_SUPPORT is not set 829# CONFIG_AGP is not set
830# CONFIG_DRM is not set
755# CONFIG_VGASTATE is not set 831# CONFIG_VGASTATE is not set
756CONFIG_VIDEO_OUTPUT_CONTROL=m 832CONFIG_VIDEO_OUTPUT_CONTROL=m
757CONFIG_FB=y 833CONFIG_FB=y
758# CONFIG_FIRMWARE_EDID is not set 834# CONFIG_FIRMWARE_EDID is not set
759# CONFIG_FB_DDC is not set 835# CONFIG_FB_DDC is not set
836# CONFIG_FB_BOOT_VESA_SUPPORT is not set
760CONFIG_FB_CFB_FILLRECT=y 837CONFIG_FB_CFB_FILLRECT=y
761CONFIG_FB_CFB_COPYAREA=y 838CONFIG_FB_CFB_COPYAREA=y
762CONFIG_FB_CFB_IMAGEBLIT=y 839CONFIG_FB_CFB_IMAGEBLIT=y
840# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
763# CONFIG_FB_SYS_FILLRECT is not set 841# CONFIG_FB_SYS_FILLRECT is not set
764# CONFIG_FB_SYS_COPYAREA is not set 842# CONFIG_FB_SYS_COPYAREA is not set
765# CONFIG_FB_SYS_IMAGEBLIT is not set 843# CONFIG_FB_SYS_IMAGEBLIT is not set
844# CONFIG_FB_FOREIGN_ENDIAN is not set
766# CONFIG_FB_SYS_FOPS is not set 845# CONFIG_FB_SYS_FOPS is not set
767CONFIG_FB_DEFERRED_IO=y
768# CONFIG_FB_SVGALIB is not set 846# CONFIG_FB_SVGALIB is not set
769# CONFIG_FB_MACMODES is not set 847# CONFIG_FB_MACMODES is not set
770# CONFIG_FB_BACKLIGHT is not set 848# CONFIG_FB_BACKLIGHT is not set
@@ -790,6 +868,7 @@ CONFIG_FB_STI=y
790# CONFIG_FB_S3 is not set 868# CONFIG_FB_S3 is not set
791# CONFIG_FB_SAVAGE is not set 869# CONFIG_FB_SAVAGE is not set
792# CONFIG_FB_SIS is not set 870# CONFIG_FB_SIS is not set
871# CONFIG_FB_VIA is not set
793# CONFIG_FB_NEOMAGIC is not set 872# CONFIG_FB_NEOMAGIC is not set
794# CONFIG_FB_KYRO is not set 873# CONFIG_FB_KYRO is not set
795# CONFIG_FB_3DFX is not set 874# CONFIG_FB_3DFX is not set
@@ -798,7 +877,16 @@ CONFIG_FB_STI=y
798# CONFIG_FB_TRIDENT is not set 877# CONFIG_FB_TRIDENT is not set
799# CONFIG_FB_ARK is not set 878# CONFIG_FB_ARK is not set
800# CONFIG_FB_PM3 is not set 879# CONFIG_FB_PM3 is not set
880# CONFIG_FB_CARMINE is not set
801# CONFIG_FB_VIRTUAL is not set 881# CONFIG_FB_VIRTUAL is not set
882# CONFIG_FB_METRONOME is not set
883# CONFIG_FB_MB862XX is not set
884# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
885
886#
887# Display device support
888#
889# CONFIG_DISPLAY_SUPPORT is not set
802 890
803# 891#
804# Console display driver support 892# Console display driver support
@@ -818,15 +906,8 @@ CONFIG_LOGO=y
818# CONFIG_LOGO_LINUX_VGA16 is not set 906# CONFIG_LOGO_LINUX_VGA16 is not set
819# CONFIG_LOGO_LINUX_CLUT224 is not set 907# CONFIG_LOGO_LINUX_CLUT224 is not set
820CONFIG_LOGO_PARISC_CLUT224=y 908CONFIG_LOGO_PARISC_CLUT224=y
821
822#
823# Sound
824#
825CONFIG_SOUND=y 909CONFIG_SOUND=y
826 910CONFIG_SOUND_OSS_CORE=y
827#
828# Advanced Linux Sound Architecture
829#
830CONFIG_SND=y 911CONFIG_SND=y
831CONFIG_SND_TIMER=y 912CONFIG_SND_TIMER=y
832CONFIG_SND_PCM=y 913CONFIG_SND_PCM=y
@@ -842,20 +923,16 @@ CONFIG_SND_SUPPORT_OLD_API=y
842CONFIG_SND_VERBOSE_PROCFS=y 923CONFIG_SND_VERBOSE_PROCFS=y
843# CONFIG_SND_VERBOSE_PRINTK is not set 924# CONFIG_SND_VERBOSE_PRINTK is not set
844# CONFIG_SND_DEBUG is not set 925# CONFIG_SND_DEBUG is not set
845 926CONFIG_SND_VMASTER=y
846#
847# Generic devices
848#
849CONFIG_SND_AC97_CODEC=y 927CONFIG_SND_AC97_CODEC=y
928CONFIG_SND_DRIVERS=y
850# CONFIG_SND_DUMMY is not set 929# CONFIG_SND_DUMMY is not set
851# CONFIG_SND_VIRMIDI is not set 930# CONFIG_SND_VIRMIDI is not set
852# CONFIG_SND_MTPAV is not set 931# CONFIG_SND_MTPAV is not set
853# CONFIG_SND_SERIAL_U16550 is not set 932# CONFIG_SND_SERIAL_U16550 is not set
854# CONFIG_SND_MPU401 is not set 933# CONFIG_SND_MPU401 is not set
855 934# CONFIG_SND_AC97_POWER_SAVE is not set
856# 935CONFIG_SND_PCI=y
857# PCI devices
858#
859CONFIG_SND_AD1889=y 936CONFIG_SND_AD1889=y
860# CONFIG_SND_ALS300 is not set 937# CONFIG_SND_ALS300 is not set
861# CONFIG_SND_ALI5451 is not set 938# CONFIG_SND_ALI5451 is not set
@@ -864,10 +941,12 @@ CONFIG_SND_AD1889=y
864# CONFIG_SND_AU8810 is not set 941# CONFIG_SND_AU8810 is not set
865# CONFIG_SND_AU8820 is not set 942# CONFIG_SND_AU8820 is not set
866# CONFIG_SND_AU8830 is not set 943# CONFIG_SND_AU8830 is not set
944# CONFIG_SND_AW2 is not set
867# CONFIG_SND_AZT3328 is not set 945# CONFIG_SND_AZT3328 is not set
868# CONFIG_SND_BT87X is not set 946# CONFIG_SND_BT87X is not set
869# CONFIG_SND_CA0106 is not set 947# CONFIG_SND_CA0106 is not set
870# CONFIG_SND_CMIPCI is not set 948# CONFIG_SND_CMIPCI is not set
949# CONFIG_SND_OXYGEN is not set
871# CONFIG_SND_CS4281 is not set 950# CONFIG_SND_CS4281 is not set
872# CONFIG_SND_CS46XX is not set 951# CONFIG_SND_CS46XX is not set
873# CONFIG_SND_DARLA20 is not set 952# CONFIG_SND_DARLA20 is not set
@@ -892,6 +971,7 @@ CONFIG_SND_AD1889=y
892# CONFIG_SND_HDA_INTEL is not set 971# CONFIG_SND_HDA_INTEL is not set
893# CONFIG_SND_HDSP is not set 972# CONFIG_SND_HDSP is not set
894# CONFIG_SND_HDSPM is not set 973# CONFIG_SND_HDSPM is not set
974# CONFIG_SND_HIFIER is not set
895# CONFIG_SND_ICE1712 is not set 975# CONFIG_SND_ICE1712 is not set
896# CONFIG_SND_ICE1724 is not set 976# CONFIG_SND_ICE1724 is not set
897# CONFIG_SND_INTEL8X0 is not set 977# CONFIG_SND_INTEL8X0 is not set
@@ -909,47 +989,59 @@ CONFIG_SND_AD1889=y
909# CONFIG_SND_TRIDENT is not set 989# CONFIG_SND_TRIDENT is not set
910# CONFIG_SND_VIA82XX is not set 990# CONFIG_SND_VIA82XX is not set
911# CONFIG_SND_VIA82XX_MODEM is not set 991# CONFIG_SND_VIA82XX_MODEM is not set
992# CONFIG_SND_VIRTUOSO is not set
912# CONFIG_SND_VX222 is not set 993# CONFIG_SND_VX222 is not set
913# CONFIG_SND_YMFPCI is not set 994# CONFIG_SND_YMFPCI is not set
914# CONFIG_SND_AC97_POWER_SAVE is not set 995CONFIG_SND_USB=y
915
916#
917# USB devices
918#
919# CONFIG_SND_USB_AUDIO is not set 996# CONFIG_SND_USB_AUDIO is not set
920# CONFIG_SND_USB_CAIAQ is not set 997# CONFIG_SND_USB_CAIAQ is not set
921
922#
923# System on Chip audio support
924#
925# CONFIG_SND_SOC is not set 998# CONFIG_SND_SOC is not set
926
927#
928# SoC Audio support for SuperH
929#
930
931#
932# Open Sound System
933#
934# CONFIG_SOUND_PRIME is not set 999# CONFIG_SOUND_PRIME is not set
935CONFIG_AC97_BUS=y 1000CONFIG_AC97_BUS=y
936CONFIG_HID_SUPPORT=y 1001CONFIG_HID_SUPPORT=y
937CONFIG_HID=y 1002CONFIG_HID=y
938# CONFIG_HID_DEBUG is not set 1003# CONFIG_HID_DEBUG is not set
1004# CONFIG_HIDRAW is not set
939 1005
940# 1006#
941# USB Input Devices 1007# USB Input Devices
942# 1008#
943CONFIG_USB_HID=y 1009CONFIG_USB_HID=y
944# CONFIG_USB_HIDINPUT_POWERBOOK is not set 1010# CONFIG_HID_PID is not set
945# CONFIG_HID_FF is not set
946CONFIG_USB_HIDDEV=y 1011CONFIG_USB_HIDDEV=y
1012
1013#
1014# Special HID drivers
1015#
1016CONFIG_HID_COMPAT=y
1017# CONFIG_HID_A4TECH is not set
1018# CONFIG_HID_APPLE is not set
1019# CONFIG_HID_BELKIN is not set
1020# CONFIG_HID_CHERRY is not set
1021# CONFIG_HID_CHICONY is not set
1022# CONFIG_HID_CYPRESS is not set
1023# CONFIG_HID_EZKEY is not set
1024# CONFIG_HID_GYRATION is not set
1025# CONFIG_HID_LOGITECH is not set
1026# CONFIG_HID_MICROSOFT is not set
1027# CONFIG_HID_MONTEREY is not set
1028# CONFIG_HID_NTRIG is not set
1029# CONFIG_HID_PANTHERLORD is not set
1030# CONFIG_HID_PETALYNX is not set
1031# CONFIG_HID_SAMSUNG is not set
1032# CONFIG_HID_SONY is not set
1033# CONFIG_HID_SUNPLUS is not set
1034# CONFIG_GREENASIA_FF is not set
1035# CONFIG_HID_TOPSEED is not set
1036# CONFIG_THRUSTMASTER_FF is not set
1037# CONFIG_ZEROPLUS_FF is not set
947CONFIG_USB_SUPPORT=y 1038CONFIG_USB_SUPPORT=y
948CONFIG_USB_ARCH_HAS_HCD=y 1039CONFIG_USB_ARCH_HAS_HCD=y
949CONFIG_USB_ARCH_HAS_OHCI=y 1040CONFIG_USB_ARCH_HAS_OHCI=y
950CONFIG_USB_ARCH_HAS_EHCI=y 1041CONFIG_USB_ARCH_HAS_EHCI=y
951CONFIG_USB=y 1042CONFIG_USB=y
952CONFIG_USB_DEBUG=y 1043CONFIG_USB_DEBUG=y
1044# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
953 1045
954# 1046#
955# Miscellaneous USB options 1047# Miscellaneous USB options
@@ -958,12 +1050,20 @@ CONFIG_USB_DEVICEFS=y
958CONFIG_USB_DEVICE_CLASS=y 1050CONFIG_USB_DEVICE_CLASS=y
959# CONFIG_USB_DYNAMIC_MINORS is not set 1051# CONFIG_USB_DYNAMIC_MINORS is not set
960# CONFIG_USB_OTG is not set 1052# CONFIG_USB_OTG is not set
1053# CONFIG_USB_OTG_WHITELIST is not set
1054# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1055# CONFIG_USB_MON is not set
1056# CONFIG_USB_WUSB is not set
1057# CONFIG_USB_WUSB_CBAF is not set
961 1058
962# 1059#
963# USB Host Controller Drivers 1060# USB Host Controller Drivers
964# 1061#
1062# CONFIG_USB_C67X00_HCD is not set
965# CONFIG_USB_EHCI_HCD is not set 1063# CONFIG_USB_EHCI_HCD is not set
1064# CONFIG_USB_OXU210HP_HCD is not set
966# CONFIG_USB_ISP116X_HCD is not set 1065# CONFIG_USB_ISP116X_HCD is not set
1066# CONFIG_USB_ISP1760_HCD is not set
967CONFIG_USB_OHCI_HCD=y 1067CONFIG_USB_OHCI_HCD=y
968# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set 1068# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
969# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set 1069# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
@@ -971,32 +1071,37 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
971# CONFIG_USB_UHCI_HCD is not set 1071# CONFIG_USB_UHCI_HCD is not set
972# CONFIG_USB_SL811_HCD is not set 1072# CONFIG_USB_SL811_HCD is not set
973# CONFIG_USB_R8A66597_HCD is not set 1073# CONFIG_USB_R8A66597_HCD is not set
1074# CONFIG_USB_WHCI_HCD is not set
1075# CONFIG_USB_HWA_HCD is not set
974 1076
975# 1077#
976# USB Device Class drivers 1078# USB Device Class drivers
977# 1079#
978# CONFIG_USB_ACM is not set 1080# CONFIG_USB_ACM is not set
979CONFIG_USB_PRINTER=m 1081CONFIG_USB_PRINTER=m
1082# CONFIG_USB_WDM is not set
1083# CONFIG_USB_TMC is not set
980 1084
981# 1085#
982# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1086# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
983# 1087#
984 1088
985# 1089#
986# may also be needed; see USB_STORAGE Help for more information 1090# see USB_STORAGE Help for more information
987# 1091#
988CONFIG_USB_STORAGE=m 1092CONFIG_USB_STORAGE=m
989# CONFIG_USB_STORAGE_DEBUG is not set 1093# CONFIG_USB_STORAGE_DEBUG is not set
990# CONFIG_USB_STORAGE_DATAFAB is not set 1094# CONFIG_USB_STORAGE_DATAFAB is not set
991# CONFIG_USB_STORAGE_FREECOM is not set 1095# CONFIG_USB_STORAGE_FREECOM is not set
992# CONFIG_USB_STORAGE_ISD200 is not set 1096# CONFIG_USB_STORAGE_ISD200 is not set
993CONFIG_USB_STORAGE_DPCM=y
994CONFIG_USB_STORAGE_USBAT=y 1097CONFIG_USB_STORAGE_USBAT=y
995CONFIG_USB_STORAGE_SDDR09=y 1098CONFIG_USB_STORAGE_SDDR09=y
996CONFIG_USB_STORAGE_SDDR55=y 1099CONFIG_USB_STORAGE_SDDR55=y
997CONFIG_USB_STORAGE_JUMPSHOT=y 1100CONFIG_USB_STORAGE_JUMPSHOT=y
998# CONFIG_USB_STORAGE_ALAUDA is not set 1101# CONFIG_USB_STORAGE_ALAUDA is not set
1102# CONFIG_USB_STORAGE_ONETOUCH is not set
999# CONFIG_USB_STORAGE_KARMA is not set 1103# CONFIG_USB_STORAGE_KARMA is not set
1104# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1000# CONFIG_USB_LIBUSUAL is not set 1105# CONFIG_USB_LIBUSUAL is not set
1001 1106
1002# 1107#
@@ -1004,15 +1109,10 @@ CONFIG_USB_STORAGE_JUMPSHOT=y
1004# 1109#
1005CONFIG_USB_MDC800=m 1110CONFIG_USB_MDC800=m
1006CONFIG_USB_MICROTEK=m 1111CONFIG_USB_MICROTEK=m
1007# CONFIG_USB_MON is not set
1008 1112
1009# 1113#
1010# USB port drivers 1114# USB port drivers
1011# 1115#
1012
1013#
1014# USB Serial Converter support
1015#
1016# CONFIG_USB_SERIAL is not set 1116# CONFIG_USB_SERIAL is not set
1017 1117
1018# 1118#
@@ -1021,7 +1121,7 @@ CONFIG_USB_MICROTEK=m
1021# CONFIG_USB_EMI62 is not set 1121# CONFIG_USB_EMI62 is not set
1022# CONFIG_USB_EMI26 is not set 1122# CONFIG_USB_EMI26 is not set
1023# CONFIG_USB_ADUTUX is not set 1123# CONFIG_USB_ADUTUX is not set
1024# CONFIG_USB_AUERSWALD is not set 1124# CONFIG_USB_SEVSEG is not set
1025# CONFIG_USB_RIO500 is not set 1125# CONFIG_USB_RIO500 is not set
1026CONFIG_USB_LEGOTOWER=m 1126CONFIG_USB_LEGOTOWER=m
1027# CONFIG_USB_LCD is not set 1127# CONFIG_USB_LCD is not set
@@ -1037,37 +1137,59 @@ CONFIG_USB_LEGOTOWER=m
1037# CONFIG_USB_TRANCEVIBRATOR is not set 1137# CONFIG_USB_TRANCEVIBRATOR is not set
1038# CONFIG_USB_IOWARRIOR is not set 1138# CONFIG_USB_IOWARRIOR is not set
1039# CONFIG_USB_TEST is not set 1139# CONFIG_USB_TEST is not set
1140# CONFIG_USB_ISIGHTFW is not set
1141# CONFIG_USB_VST is not set
1142# CONFIG_USB_GADGET is not set
1040 1143
1041# 1144#
1042# USB DSL modem support 1145# OTG and related infrastructure
1043#
1044
1045#
1046# USB Gadget Support
1047# 1146#
1048# CONFIG_USB_GADGET is not set 1147# CONFIG_UWB is not set
1049# CONFIG_MMC is not set 1148# CONFIG_MMC is not set
1149# CONFIG_MEMSTICK is not set
1050# CONFIG_NEW_LEDS is not set 1150# CONFIG_NEW_LEDS is not set
1151# CONFIG_ACCESSIBILITY is not set
1051# CONFIG_INFINIBAND is not set 1152# CONFIG_INFINIBAND is not set
1052# CONFIG_RTC_CLASS is not set 1153CONFIG_RTC_LIB=y
1154CONFIG_RTC_CLASS=y
1155CONFIG_RTC_HCTOSYS=y
1156CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
1157# CONFIG_RTC_DEBUG is not set
1053 1158
1054# 1159#
1055# DMA Engine support 1160# RTC interfaces
1056# 1161#
1057# CONFIG_DMA_ENGINE is not set 1162CONFIG_RTC_INTF_SYSFS=y
1163CONFIG_RTC_INTF_PROC=y
1164CONFIG_RTC_INTF_DEV=y
1165# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
1166# CONFIG_RTC_DRV_TEST is not set
1058 1167
1059# 1168#
1060# DMA Clients 1169# SPI RTC drivers
1061# 1170#
1062 1171
1063# 1172#
1064# DMA Devices 1173# Platform RTC drivers
1065# 1174#
1175# CONFIG_RTC_DRV_DS1286 is not set
1176# CONFIG_RTC_DRV_DS1511 is not set
1177# CONFIG_RTC_DRV_DS1553 is not set
1178# CONFIG_RTC_DRV_DS1742 is not set
1179# CONFIG_RTC_DRV_STK17TA8 is not set
1180# CONFIG_RTC_DRV_M48T86 is not set
1181# CONFIG_RTC_DRV_M48T35 is not set
1182# CONFIG_RTC_DRV_M48T59 is not set
1183# CONFIG_RTC_DRV_BQ4802 is not set
1184# CONFIG_RTC_DRV_V3020 is not set
1066 1185
1067# 1186#
1068# Userspace I/O 1187# on-CPU RTC drivers
1069# 1188#
1189CONFIG_RTC_DRV_PARISC=y
1190# CONFIG_DMADEVICES is not set
1070# CONFIG_UIO is not set 1191# CONFIG_UIO is not set
1192# CONFIG_STAGING is not set
1071 1193
1072# 1194#
1073# File systems 1195# File systems
@@ -1077,25 +1199,24 @@ CONFIG_EXT2_FS=y
1077# CONFIG_EXT2_FS_XIP is not set 1199# CONFIG_EXT2_FS_XIP is not set
1078CONFIG_EXT3_FS=y 1200CONFIG_EXT3_FS=y
1079# CONFIG_EXT3_FS_XATTR is not set 1201# CONFIG_EXT3_FS_XATTR is not set
1080# CONFIG_EXT4DEV_FS is not set 1202# CONFIG_EXT4_FS is not set
1081CONFIG_JBD=y 1203CONFIG_JBD=y
1082# CONFIG_JBD_DEBUG is not set 1204# CONFIG_JBD_DEBUG is not set
1083# CONFIG_REISERFS_FS is not set 1205# CONFIG_REISERFS_FS is not set
1084# CONFIG_JFS_FS is not set 1206# CONFIG_JFS_FS is not set
1085# CONFIG_FS_POSIX_ACL is not set 1207# CONFIG_FS_POSIX_ACL is not set
1208CONFIG_FILE_LOCKING=y
1086CONFIG_XFS_FS=m 1209CONFIG_XFS_FS=m
1087# CONFIG_XFS_QUOTA is not set 1210# CONFIG_XFS_QUOTA is not set
1088# CONFIG_XFS_SECURITY is not set
1089# CONFIG_XFS_POSIX_ACL is not set 1211# CONFIG_XFS_POSIX_ACL is not set
1090# CONFIG_XFS_RT is not set 1212# CONFIG_XFS_RT is not set
1091# CONFIG_GFS2_FS is not set 1213# CONFIG_XFS_DEBUG is not set
1092# CONFIG_OCFS2_FS is not set 1214# CONFIG_OCFS2_FS is not set
1093# CONFIG_MINIX_FS is not set 1215# CONFIG_BTRFS_FS is not set
1094# CONFIG_ROMFS_FS is not set 1216CONFIG_DNOTIFY=y
1095CONFIG_INOTIFY=y 1217CONFIG_INOTIFY=y
1096CONFIG_INOTIFY_USER=y 1218CONFIG_INOTIFY_USER=y
1097# CONFIG_QUOTA is not set 1219# CONFIG_QUOTA is not set
1098CONFIG_DNOTIFY=y
1099# CONFIG_AUTOFS_FS is not set 1220# CONFIG_AUTOFS_FS is not set
1100CONFIG_AUTOFS4_FS=y 1221CONFIG_AUTOFS4_FS=y
1101# CONFIG_FUSE_FS is not set 1222# CONFIG_FUSE_FS is not set
@@ -1124,16 +1245,13 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1124CONFIG_PROC_FS=y 1245CONFIG_PROC_FS=y
1125CONFIG_PROC_KCORE=y 1246CONFIG_PROC_KCORE=y
1126CONFIG_PROC_SYSCTL=y 1247CONFIG_PROC_SYSCTL=y
1248CONFIG_PROC_PAGE_MONITOR=y
1127CONFIG_SYSFS=y 1249CONFIG_SYSFS=y
1128CONFIG_TMPFS=y 1250CONFIG_TMPFS=y
1129# CONFIG_TMPFS_POSIX_ACL is not set 1251# CONFIG_TMPFS_POSIX_ACL is not set
1130# CONFIG_HUGETLB_PAGE is not set 1252# CONFIG_HUGETLB_PAGE is not set
1131CONFIG_RAMFS=y
1132# CONFIG_CONFIGFS_FS is not set 1253# CONFIG_CONFIGFS_FS is not set
1133 1254CONFIG_MISC_FILESYSTEMS=y
1134#
1135# Miscellaneous filesystems
1136#
1137# CONFIG_ADFS_FS is not set 1255# CONFIG_ADFS_FS is not set
1138# CONFIG_AFFS_FS is not set 1256# CONFIG_AFFS_FS is not set
1139# CONFIG_HFS_FS is not set 1257# CONFIG_HFS_FS is not set
@@ -1142,32 +1260,31 @@ CONFIG_RAMFS=y
1142# CONFIG_BFS_FS is not set 1260# CONFIG_BFS_FS is not set
1143# CONFIG_EFS_FS is not set 1261# CONFIG_EFS_FS is not set
1144# CONFIG_CRAMFS is not set 1262# CONFIG_CRAMFS is not set
1263# CONFIG_SQUASHFS is not set
1145# CONFIG_VXFS_FS is not set 1264# CONFIG_VXFS_FS is not set
1265# CONFIG_MINIX_FS is not set
1266# CONFIG_OMFS_FS is not set
1146# CONFIG_HPFS_FS is not set 1267# CONFIG_HPFS_FS is not set
1147# CONFIG_QNX4FS_FS is not set 1268# CONFIG_QNX4FS_FS is not set
1269# CONFIG_ROMFS_FS is not set
1148# CONFIG_SYSV_FS is not set 1270# CONFIG_SYSV_FS is not set
1149# CONFIG_UFS_FS is not set 1271# CONFIG_UFS_FS is not set
1150 1272CONFIG_NETWORK_FILESYSTEMS=y
1151#
1152# Network File Systems
1153#
1154CONFIG_NFS_FS=y 1273CONFIG_NFS_FS=y
1155CONFIG_NFS_V3=y 1274CONFIG_NFS_V3=y
1156# CONFIG_NFS_V3_ACL is not set 1275# CONFIG_NFS_V3_ACL is not set
1157# CONFIG_NFS_V4 is not set 1276# CONFIG_NFS_V4 is not set
1158# CONFIG_NFS_DIRECTIO is not set 1277CONFIG_ROOT_NFS=y
1159CONFIG_NFSD=y 1278CONFIG_NFSD=y
1160CONFIG_NFSD_V3=y 1279CONFIG_NFSD_V3=y
1161# CONFIG_NFSD_V3_ACL is not set 1280# CONFIG_NFSD_V3_ACL is not set
1162# CONFIG_NFSD_V4 is not set 1281# CONFIG_NFSD_V4 is not set
1163# CONFIG_NFSD_TCP is not set
1164CONFIG_ROOT_NFS=y
1165CONFIG_LOCKD=y 1282CONFIG_LOCKD=y
1166CONFIG_LOCKD_V4=y 1283CONFIG_LOCKD_V4=y
1167CONFIG_EXPORTFS=y 1284CONFIG_EXPORTFS=y
1168CONFIG_NFS_COMMON=y 1285CONFIG_NFS_COMMON=y
1169CONFIG_SUNRPC=y 1286CONFIG_SUNRPC=y
1170# CONFIG_SUNRPC_BIND34 is not set 1287# CONFIG_SUNRPC_REGISTER_V4 is not set
1171# CONFIG_RPCSEC_GSS_KRB5 is not set 1288# CONFIG_RPCSEC_GSS_KRB5 is not set
1172# CONFIG_RPCSEC_GSS_SPKM3 is not set 1289# CONFIG_RPCSEC_GSS_SPKM3 is not set
1173# CONFIG_SMB_FS is not set 1290# CONFIG_SMB_FS is not set
@@ -1181,10 +1298,6 @@ CONFIG_SUNRPC=y
1181# 1298#
1182# CONFIG_PARTITION_ADVANCED is not set 1299# CONFIG_PARTITION_ADVANCED is not set
1183CONFIG_MSDOS_PARTITION=y 1300CONFIG_MSDOS_PARTITION=y
1184
1185#
1186# Native Language Support
1187#
1188CONFIG_NLS=y 1301CONFIG_NLS=y
1189CONFIG_NLS_DEFAULT="iso8859-1" 1302CONFIG_NLS_DEFAULT="iso8859-1"
1190CONFIG_NLS_CODEPAGE_437=m 1303CONFIG_NLS_CODEPAGE_437=m
@@ -1225,33 +1338,28 @@ CONFIG_NLS_ISO8859_15=m
1225# CONFIG_NLS_KOI8_R is not set 1338# CONFIG_NLS_KOI8_R is not set
1226# CONFIG_NLS_KOI8_U is not set 1339# CONFIG_NLS_KOI8_U is not set
1227CONFIG_NLS_UTF8=m 1340CONFIG_NLS_UTF8=m
1228
1229#
1230# Distributed Lock Manager
1231#
1232# CONFIG_DLM is not set 1341# CONFIG_DLM is not set
1233 1342
1234# 1343#
1235# Profiling support
1236#
1237CONFIG_PROFILING=y
1238CONFIG_OPROFILE=m
1239
1240#
1241# Kernel hacking 1344# Kernel hacking
1242# 1345#
1243# CONFIG_PRINTK_TIME is not set 1346# CONFIG_PRINTK_TIME is not set
1347CONFIG_ENABLE_WARN_DEPRECATED=y
1244CONFIG_ENABLE_MUST_CHECK=y 1348CONFIG_ENABLE_MUST_CHECK=y
1349CONFIG_FRAME_WARN=1024
1245CONFIG_MAGIC_SYSRQ=y 1350CONFIG_MAGIC_SYSRQ=y
1246# CONFIG_UNUSED_SYMBOLS is not set 1351# CONFIG_UNUSED_SYMBOLS is not set
1247# CONFIG_DEBUG_FS is not set 1352CONFIG_DEBUG_FS=y
1248CONFIG_HEADERS_CHECK=y 1353CONFIG_HEADERS_CHECK=y
1249CONFIG_DEBUG_KERNEL=y 1354CONFIG_DEBUG_KERNEL=y
1250# CONFIG_DEBUG_SHIRQ is not set 1355# CONFIG_DEBUG_SHIRQ is not set
1251CONFIG_DETECT_SOFTLOCKUP=y 1356CONFIG_DETECT_SOFTLOCKUP=y
1357# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1358CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1252CONFIG_SCHED_DEBUG=y 1359CONFIG_SCHED_DEBUG=y
1253# CONFIG_SCHEDSTATS is not set 1360# CONFIG_SCHEDSTATS is not set
1254# CONFIG_TIMER_STATS is not set 1361# CONFIG_TIMER_STATS is not set
1362# CONFIG_DEBUG_OBJECTS is not set
1255# CONFIG_DEBUG_SLAB is not set 1363# CONFIG_DEBUG_SLAB is not set
1256# CONFIG_DEBUG_RT_MUTEXES is not set 1364# CONFIG_DEBUG_RT_MUTEXES is not set
1257# CONFIG_RT_MUTEX_TESTER is not set 1365# CONFIG_RT_MUTEX_TESTER is not set
@@ -1263,10 +1371,33 @@ CONFIG_DEBUG_MUTEXES=y
1263# CONFIG_DEBUG_BUGVERBOSE is not set 1371# CONFIG_DEBUG_BUGVERBOSE is not set
1264# CONFIG_DEBUG_INFO is not set 1372# CONFIG_DEBUG_INFO is not set
1265# CONFIG_DEBUG_VM is not set 1373# CONFIG_DEBUG_VM is not set
1374# CONFIG_DEBUG_WRITECOUNT is not set
1375# CONFIG_DEBUG_MEMORY_INIT is not set
1266# CONFIG_DEBUG_LIST is not set 1376# CONFIG_DEBUG_LIST is not set
1267CONFIG_FORCED_INLINING=y 1377# CONFIG_DEBUG_SG is not set
1378# CONFIG_DEBUG_NOTIFIERS is not set
1379# CONFIG_BOOT_PRINTK_DELAY is not set
1268# CONFIG_RCU_TORTURE_TEST is not set 1380# CONFIG_RCU_TORTURE_TEST is not set
1381# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1382# CONFIG_BACKTRACE_SELF_TEST is not set
1383# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1269# CONFIG_FAULT_INJECTION is not set 1384# CONFIG_FAULT_INJECTION is not set
1385# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1386CONFIG_NOP_TRACER=y
1387CONFIG_RING_BUFFER=y
1388CONFIG_TRACING=y
1389
1390#
1391# Tracers
1392#
1393# CONFIG_SCHED_TRACER is not set
1394# CONFIG_CONTEXT_SWITCH_TRACER is not set
1395# CONFIG_BOOT_TRACER is not set
1396# CONFIG_TRACE_BRANCH_PROFILING is not set
1397# CONFIG_FTRACE_STARTUP_TEST is not set
1398# CONFIG_BUILD_DOCSRC is not set
1399# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1400# CONFIG_SAMPLES is not set
1270CONFIG_DEBUG_RODATA=y 1401CONFIG_DEBUG_RODATA=y
1271 1402
1272# 1403#
@@ -1274,54 +1405,110 @@ CONFIG_DEBUG_RODATA=y
1274# 1405#
1275# CONFIG_KEYS is not set 1406# CONFIG_KEYS is not set
1276# CONFIG_SECURITY is not set 1407# CONFIG_SECURITY is not set
1408# CONFIG_SECURITYFS is not set
1409# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1277CONFIG_CRYPTO=y 1410CONFIG_CRYPTO=y
1411
1412#
1413# Crypto core or helper
1414#
1415# CONFIG_CRYPTO_FIPS is not set
1278CONFIG_CRYPTO_ALGAPI=m 1416CONFIG_CRYPTO_ALGAPI=m
1417CONFIG_CRYPTO_ALGAPI2=m
1418CONFIG_CRYPTO_AEAD2=m
1279CONFIG_CRYPTO_BLKCIPHER=m 1419CONFIG_CRYPTO_BLKCIPHER=m
1420CONFIG_CRYPTO_BLKCIPHER2=m
1421CONFIG_CRYPTO_HASH=m
1422CONFIG_CRYPTO_HASH2=m
1423CONFIG_CRYPTO_RNG2=m
1280CONFIG_CRYPTO_MANAGER=m 1424CONFIG_CRYPTO_MANAGER=m
1425CONFIG_CRYPTO_MANAGER2=m
1426# CONFIG_CRYPTO_GF128MUL is not set
1427CONFIG_CRYPTO_NULL=m
1428# CONFIG_CRYPTO_CRYPTD is not set
1429# CONFIG_CRYPTO_AUTHENC is not set
1430CONFIG_CRYPTO_TEST=m
1431
1432#
1433# Authenticated Encryption with Associated Data
1434#
1435# CONFIG_CRYPTO_CCM is not set
1436# CONFIG_CRYPTO_GCM is not set
1437# CONFIG_CRYPTO_SEQIV is not set
1438
1439#
1440# Block modes
1441#
1442CONFIG_CRYPTO_CBC=m
1443# CONFIG_CRYPTO_CTR is not set
1444# CONFIG_CRYPTO_CTS is not set
1445# CONFIG_CRYPTO_ECB is not set
1446# CONFIG_CRYPTO_LRW is not set
1447# CONFIG_CRYPTO_PCBC is not set
1448# CONFIG_CRYPTO_XTS is not set
1449
1450#
1451# Hash modes
1452#
1281# CONFIG_CRYPTO_HMAC is not set 1453# CONFIG_CRYPTO_HMAC is not set
1282# CONFIG_CRYPTO_XCBC is not set 1454# CONFIG_CRYPTO_XCBC is not set
1283CONFIG_CRYPTO_NULL=m 1455
1456#
1457# Digest
1458#
1459CONFIG_CRYPTO_CRC32C=m
1284# CONFIG_CRYPTO_MD4 is not set 1460# CONFIG_CRYPTO_MD4 is not set
1285CONFIG_CRYPTO_MD5=m 1461CONFIG_CRYPTO_MD5=m
1462# CONFIG_CRYPTO_MICHAEL_MIC is not set
1463# CONFIG_CRYPTO_RMD128 is not set
1464# CONFIG_CRYPTO_RMD160 is not set
1465# CONFIG_CRYPTO_RMD256 is not set
1466# CONFIG_CRYPTO_RMD320 is not set
1286# CONFIG_CRYPTO_SHA1 is not set 1467# CONFIG_CRYPTO_SHA1 is not set
1287# CONFIG_CRYPTO_SHA256 is not set 1468# CONFIG_CRYPTO_SHA256 is not set
1288# CONFIG_CRYPTO_SHA512 is not set 1469# CONFIG_CRYPTO_SHA512 is not set
1289# CONFIG_CRYPTO_WP512 is not set
1290# CONFIG_CRYPTO_TGR192 is not set 1470# CONFIG_CRYPTO_TGR192 is not set
1291# CONFIG_CRYPTO_GF128MUL is not set 1471# CONFIG_CRYPTO_WP512 is not set
1292# CONFIG_CRYPTO_ECB is not set 1472
1293CONFIG_CRYPTO_CBC=m 1473#
1294# CONFIG_CRYPTO_PCBC is not set 1474# Ciphers
1295# CONFIG_CRYPTO_LRW is not set 1475#
1296# CONFIG_CRYPTO_XTS is not set
1297# CONFIG_CRYPTO_CRYPTD is not set
1298CONFIG_CRYPTO_DES=m
1299# CONFIG_CRYPTO_FCRYPT is not set
1300CONFIG_CRYPTO_BLOWFISH=m
1301# CONFIG_CRYPTO_TWOFISH is not set
1302# CONFIG_CRYPTO_SERPENT is not set
1303# CONFIG_CRYPTO_AES is not set 1476# CONFIG_CRYPTO_AES is not set
1477# CONFIG_CRYPTO_ANUBIS is not set
1478# CONFIG_CRYPTO_ARC4 is not set
1479CONFIG_CRYPTO_BLOWFISH=m
1480# CONFIG_CRYPTO_CAMELLIA is not set
1304# CONFIG_CRYPTO_CAST5 is not set 1481# CONFIG_CRYPTO_CAST5 is not set
1305# CONFIG_CRYPTO_CAST6 is not set 1482# CONFIG_CRYPTO_CAST6 is not set
1306# CONFIG_CRYPTO_TEA is not set 1483CONFIG_CRYPTO_DES=m
1307# CONFIG_CRYPTO_ARC4 is not set 1484# CONFIG_CRYPTO_FCRYPT is not set
1308# CONFIG_CRYPTO_KHAZAD is not set 1485# CONFIG_CRYPTO_KHAZAD is not set
1309# CONFIG_CRYPTO_ANUBIS is not set 1486# CONFIG_CRYPTO_SALSA20 is not set
1310# CONFIG_CRYPTO_SEED is not set 1487# CONFIG_CRYPTO_SEED is not set
1488# CONFIG_CRYPTO_SERPENT is not set
1489# CONFIG_CRYPTO_TEA is not set
1490# CONFIG_CRYPTO_TWOFISH is not set
1491
1492#
1493# Compression
1494#
1311CONFIG_CRYPTO_DEFLATE=m 1495CONFIG_CRYPTO_DEFLATE=m
1312# CONFIG_CRYPTO_MICHAEL_MIC is not set 1496# CONFIG_CRYPTO_LZO is not set
1313CONFIG_CRYPTO_CRC32C=m 1497
1314# CONFIG_CRYPTO_CAMELLIA is not set 1498#
1315CONFIG_CRYPTO_TEST=m 1499# Random Number Generation
1316# CONFIG_CRYPTO_AUTHENC is not set 1500#
1501# CONFIG_CRYPTO_ANSI_CPRNG is not set
1317# CONFIG_CRYPTO_HW is not set 1502# CONFIG_CRYPTO_HW is not set
1318 1503
1319# 1504#
1320# Library routines 1505# Library routines
1321# 1506#
1322CONFIG_BITREVERSE=y 1507CONFIG_BITREVERSE=y
1508CONFIG_GENERIC_FIND_LAST_BIT=y
1323CONFIG_CRC_CCITT=m 1509CONFIG_CRC_CCITT=m
1324# CONFIG_CRC16 is not set 1510# CONFIG_CRC16 is not set
1511# CONFIG_CRC_T10DIF is not set
1325# CONFIG_CRC_ITU_T is not set 1512# CONFIG_CRC_ITU_T is not set
1326CONFIG_CRC32=y 1513CONFIG_CRC32=y
1327# CONFIG_CRC7 is not set 1514# CONFIG_CRC7 is not set
diff --git a/arch/parisc/configs/default_defconfig b/arch/parisc/configs/default_defconfig
index 448a757b06c6..283a96c1b5ea 100644
--- a/arch/parisc/configs/default_defconfig
+++ b/arch/parisc/configs/default_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.23 3# Linux kernel version: 2.6.29-rc8
4# Fri Oct 12 20:54:57 2007 4# Fri Mar 13 01:32:59 2009
5# 5#
6CONFIG_PARISC=y 6CONFIG_PARISC=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -33,17 +33,35 @@ CONFIG_SYSVIPC_SYSCTL=y
33CONFIG_POSIX_MQUEUE=y 33CONFIG_POSIX_MQUEUE=y
34# CONFIG_BSD_PROCESS_ACCT is not set 34# CONFIG_BSD_PROCESS_ACCT is not set
35# CONFIG_TASKSTATS is not set 35# CONFIG_TASKSTATS is not set
36# CONFIG_USER_NS is not set
37# CONFIG_AUDIT is not set 36# CONFIG_AUDIT is not set
37
38#
39# RCU Subsystem
40#
41CONFIG_CLASSIC_RCU=y
42# CONFIG_TREE_RCU is not set
43# CONFIG_PREEMPT_RCU is not set
44# CONFIG_TREE_RCU_TRACE is not set
45# CONFIG_PREEMPT_RCU_TRACE is not set
38CONFIG_IKCONFIG=y 46CONFIG_IKCONFIG=y
39CONFIG_IKCONFIG_PROC=y 47CONFIG_IKCONFIG_PROC=y
40CONFIG_LOG_BUF_SHIFT=16 48CONFIG_LOG_BUF_SHIFT=16
49# CONFIG_GROUP_SCHED is not set
50# CONFIG_CGROUPS is not set
41CONFIG_SYSFS_DEPRECATED=y 51CONFIG_SYSFS_DEPRECATED=y
52CONFIG_SYSFS_DEPRECATED_V2=y
42# CONFIG_RELAY is not set 53# CONFIG_RELAY is not set
54CONFIG_NAMESPACES=y
55# CONFIG_UTS_NS is not set
56# CONFIG_IPC_NS is not set
57# CONFIG_USER_NS is not set
58# CONFIG_PID_NS is not set
59# CONFIG_NET_NS is not set
43CONFIG_BLK_DEV_INITRD=y 60CONFIG_BLK_DEV_INITRD=y
44CONFIG_INITRAMFS_SOURCE="" 61CONFIG_INITRAMFS_SOURCE=""
45CONFIG_CC_OPTIMIZE_FOR_SIZE=y 62CONFIG_CC_OPTIMIZE_FOR_SIZE=y
46CONFIG_SYSCTL=y 63CONFIG_SYSCTL=y
64CONFIG_ANON_INODES=y
47# CONFIG_EMBEDDED is not set 65# CONFIG_EMBEDDED is not set
48CONFIG_SYSCTL_SYSCALL=y 66CONFIG_SYSCTL_SYSCALL=y
49CONFIG_KALLSYMS=y 67CONFIG_KALLSYMS=y
@@ -55,29 +73,39 @@ CONFIG_BUG=y
55CONFIG_ELF_CORE=y 73CONFIG_ELF_CORE=y
56CONFIG_BASE_FULL=y 74CONFIG_BASE_FULL=y
57CONFIG_FUTEX=y 75CONFIG_FUTEX=y
58CONFIG_ANON_INODES=y
59CONFIG_EPOLL=y 76CONFIG_EPOLL=y
60CONFIG_SIGNALFD=y 77CONFIG_SIGNALFD=y
78CONFIG_TIMERFD=y
61CONFIG_EVENTFD=y 79CONFIG_EVENTFD=y
62CONFIG_SHMEM=y 80CONFIG_SHMEM=y
81CONFIG_AIO=y
63CONFIG_VM_EVENT_COUNTERS=y 82CONFIG_VM_EVENT_COUNTERS=y
83CONFIG_PCI_QUIRKS=y
84CONFIG_COMPAT_BRK=y
64CONFIG_SLAB=y 85CONFIG_SLAB=y
65# CONFIG_SLUB is not set 86# CONFIG_SLUB is not set
66# CONFIG_SLOB is not set 87# CONFIG_SLOB is not set
88CONFIG_PROFILING=y
89CONFIG_TRACEPOINTS=y
90# CONFIG_MARKERS is not set
91CONFIG_OPROFILE=m
92CONFIG_HAVE_OPROFILE=y
93# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
94CONFIG_SLABINFO=y
67CONFIG_RT_MUTEXES=y 95CONFIG_RT_MUTEXES=y
68# CONFIG_TINY_SHMEM is not set
69CONFIG_BASE_SMALL=0 96CONFIG_BASE_SMALL=0
70CONFIG_MODULES=y 97CONFIG_MODULES=y
98# CONFIG_MODULE_FORCE_LOAD is not set
71CONFIG_MODULE_UNLOAD=y 99CONFIG_MODULE_UNLOAD=y
72CONFIG_MODULE_FORCE_UNLOAD=y 100CONFIG_MODULE_FORCE_UNLOAD=y
73# CONFIG_MODVERSIONS is not set 101# CONFIG_MODVERSIONS is not set
74# CONFIG_MODULE_SRCVERSION_ALL is not set 102# CONFIG_MODULE_SRCVERSION_ALL is not set
75CONFIG_KMOD=y 103CONFIG_INIT_ALL_POSSIBLE=y
76CONFIG_BLOCK=y 104CONFIG_BLOCK=y
77# CONFIG_LBD is not set 105# CONFIG_LBD is not set
78# CONFIG_BLK_DEV_IO_TRACE is not set 106# CONFIG_BLK_DEV_IO_TRACE is not set
79# CONFIG_LSF is not set
80# CONFIG_BLK_DEV_BSG is not set 107# CONFIG_BLK_DEV_BSG is not set
108# CONFIG_BLK_DEV_INTEGRITY is not set
81 109
82# 110#
83# IO Schedulers 111# IO Schedulers
@@ -91,6 +119,7 @@ CONFIG_DEFAULT_AS=y
91# CONFIG_DEFAULT_CFQ is not set 119# CONFIG_DEFAULT_CFQ is not set
92# CONFIG_DEFAULT_NOOP is not set 120# CONFIG_DEFAULT_NOOP is not set
93CONFIG_DEFAULT_IOSCHED="anticipatory" 121CONFIG_DEFAULT_IOSCHED="anticipatory"
122# CONFIG_FREEZER is not set
94 123
95# 124#
96# Processor type and features 125# Processor type and features
@@ -114,17 +143,19 @@ CONFIG_HZ_250=y
114# CONFIG_HZ_300 is not set 143# CONFIG_HZ_300 is not set
115# CONFIG_HZ_1000 is not set 144# CONFIG_HZ_1000 is not set
116CONFIG_HZ=250 145CONFIG_HZ=250
146# CONFIG_SCHED_HRTICK is not set
117CONFIG_SELECT_MEMORY_MODEL=y 147CONFIG_SELECT_MEMORY_MODEL=y
118CONFIG_FLATMEM_MANUAL=y 148CONFIG_FLATMEM_MANUAL=y
119# CONFIG_DISCONTIGMEM_MANUAL is not set 149# CONFIG_DISCONTIGMEM_MANUAL is not set
120# CONFIG_SPARSEMEM_MANUAL is not set 150# CONFIG_SPARSEMEM_MANUAL is not set
121CONFIG_FLATMEM=y 151CONFIG_FLATMEM=y
122CONFIG_FLAT_NODE_MEM_MAP=y 152CONFIG_FLAT_NODE_MEM_MAP=y
123# CONFIG_SPARSEMEM_STATIC is not set 153CONFIG_PAGEFLAGS_EXTENDED=y
124CONFIG_SPLIT_PTLOCK_CPUS=4096 154CONFIG_SPLIT_PTLOCK_CPUS=4096
125# CONFIG_RESOURCES_64BIT is not set 155# CONFIG_PHYS_ADDR_T_64BIT is not set
126CONFIG_ZONE_DMA_FLAG=0 156CONFIG_ZONE_DMA_FLAG=0
127CONFIG_VIRT_TO_BUS=y 157CONFIG_VIRT_TO_BUS=y
158CONFIG_UNEVICTABLE_LRU=y
128# CONFIG_HPUX is not set 159# CONFIG_HPUX is not set
129 160
130# 161#
@@ -140,15 +171,14 @@ CONFIG_EISA_NAMES=y
140# CONFIG_ISA is not set 171# CONFIG_ISA is not set
141CONFIG_PCI=y 172CONFIG_PCI=y
142# CONFIG_ARCH_SUPPORTS_MSI is not set 173# CONFIG_ARCH_SUPPORTS_MSI is not set
174CONFIG_PCI_LEGACY=y
143# CONFIG_PCI_DEBUG is not set 175# CONFIG_PCI_DEBUG is not set
176# CONFIG_PCI_STUB is not set
144CONFIG_GSC_DINO=y 177CONFIG_GSC_DINO=y
145CONFIG_PCI_LBA=y 178CONFIG_PCI_LBA=y
146CONFIG_IOSAPIC=y 179CONFIG_IOSAPIC=y
147CONFIG_IOMMU_SBA=y 180CONFIG_IOMMU_SBA=y
148 181CONFIG_IOMMU_HELPER=y
149#
150# PCCARD (PCMCIA/CardBus) support
151#
152CONFIG_PCCARD=y 182CONFIG_PCCARD=y
153# CONFIG_PCMCIA_DEBUG is not set 183# CONFIG_PCMCIA_DEBUG is not set
154CONFIG_PCMCIA=y 184CONFIG_PCMCIA=y
@@ -183,16 +213,15 @@ CONFIG_PDC_STABLE=y
183# Executable file formats 213# Executable file formats
184# 214#
185CONFIG_BINFMT_ELF=y 215CONFIG_BINFMT_ELF=y
216# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
217# CONFIG_HAVE_AOUT is not set
186CONFIG_BINFMT_MISC=m 218CONFIG_BINFMT_MISC=m
187
188#
189# Networking
190#
191CONFIG_NET=y 219CONFIG_NET=y
192 220
193# 221#
194# Networking options 222# Networking options
195# 223#
224CONFIG_COMPAT_NET_DEV_OPS=y
196CONFIG_PACKET=y 225CONFIG_PACKET=y
197CONFIG_PACKET_MMAP=y 226CONFIG_PACKET_MMAP=y
198CONFIG_UNIX=y 227CONFIG_UNIX=y
@@ -200,6 +229,8 @@ CONFIG_XFRM=y
200CONFIG_XFRM_USER=m 229CONFIG_XFRM_USER=m
201# CONFIG_XFRM_SUB_POLICY is not set 230# CONFIG_XFRM_SUB_POLICY is not set
202# CONFIG_XFRM_MIGRATE is not set 231# CONFIG_XFRM_MIGRATE is not set
232# CONFIG_XFRM_STATISTICS is not set
233CONFIG_XFRM_IPCOMP=y
203CONFIG_NET_KEY=m 234CONFIG_NET_KEY=m
204# CONFIG_NET_KEY_MIGRATE is not set 235# CONFIG_NET_KEY_MIGRATE is not set
205CONFIG_INET=y 236CONFIG_INET=y
@@ -245,8 +276,10 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=y
245CONFIG_INET6_XFRM_MODE_BEET=y 276CONFIG_INET6_XFRM_MODE_BEET=y
246# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set 277# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
247CONFIG_IPV6_SIT=y 278CONFIG_IPV6_SIT=y
279CONFIG_IPV6_NDISC_NODETYPE=y
248# CONFIG_IPV6_TUNNEL is not set 280# CONFIG_IPV6_TUNNEL is not set
249# CONFIG_IPV6_MULTIPLE_TABLES is not set 281# CONFIG_IPV6_MULTIPLE_TABLES is not set
282# CONFIG_IPV6_MROUTE is not set
250# CONFIG_NETWORK_SECMARK is not set 283# CONFIG_NETWORK_SECMARK is not set
251# CONFIG_NETFILTER is not set 284# CONFIG_NETFILTER is not set
252# CONFIG_IP_DCCP is not set 285# CONFIG_IP_DCCP is not set
@@ -254,6 +287,7 @@ CONFIG_IPV6_SIT=y
254# CONFIG_TIPC is not set 287# CONFIG_TIPC is not set
255# CONFIG_ATM is not set 288# CONFIG_ATM is not set
256# CONFIG_BRIDGE is not set 289# CONFIG_BRIDGE is not set
290# CONFIG_NET_DSA is not set
257# CONFIG_VLAN_8021Q is not set 291# CONFIG_VLAN_8021Q is not set
258# CONFIG_DECNET is not set 292# CONFIG_DECNET is not set
259CONFIG_LLC=m 293CONFIG_LLC=m
@@ -264,28 +298,26 @@ CONFIG_LLC2=m
264# CONFIG_LAPB is not set 298# CONFIG_LAPB is not set
265# CONFIG_ECONET is not set 299# CONFIG_ECONET is not set
266# CONFIG_WAN_ROUTER is not set 300# CONFIG_WAN_ROUTER is not set
267
268#
269# QoS and/or fair queueing
270#
271# CONFIG_NET_SCHED is not set 301# CONFIG_NET_SCHED is not set
302# CONFIG_DCB is not set
272 303
273# 304#
274# Network testing 305# Network testing
275# 306#
276# CONFIG_NET_PKTGEN is not set 307# CONFIG_NET_PKTGEN is not set
277# CONFIG_HAMRADIO is not set 308# CONFIG_HAMRADIO is not set
309# CONFIG_CAN is not set
278# CONFIG_IRDA is not set 310# CONFIG_IRDA is not set
279# CONFIG_BT is not set 311# CONFIG_BT is not set
280# CONFIG_AF_RXRPC is not set 312# CONFIG_AF_RXRPC is not set
281 313# CONFIG_PHONET is not set
282# 314CONFIG_WIRELESS=y
283# Wireless
284#
285# CONFIG_CFG80211 is not set 315# CONFIG_CFG80211 is not set
316CONFIG_WIRELESS_OLD_REGULATORY=y
286# CONFIG_WIRELESS_EXT is not set 317# CONFIG_WIRELESS_EXT is not set
318# CONFIG_LIB80211 is not set
287# CONFIG_MAC80211 is not set 319# CONFIG_MAC80211 is not set
288# CONFIG_IEEE80211 is not set 320# CONFIG_WIMAX is not set
289# CONFIG_RFKILL is not set 321# CONFIG_RFKILL is not set
290# CONFIG_NET_9P is not set 322# CONFIG_NET_9P is not set
291 323
@@ -300,6 +332,8 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
300# CONFIG_STANDALONE is not set 332# CONFIG_STANDALONE is not set
301# CONFIG_PREVENT_FIRMWARE_BUILD is not set 333# CONFIG_PREVENT_FIRMWARE_BUILD is not set
302CONFIG_FW_LOADER=y 334CONFIG_FW_LOADER=y
335CONFIG_FIRMWARE_IN_KERNEL=y
336CONFIG_EXTRA_FIRMWARE=""
303# CONFIG_DEBUG_DRIVER is not set 337# CONFIG_DEBUG_DRIVER is not set
304# CONFIG_DEBUG_DEVRES is not set 338# CONFIG_DEBUG_DEVRES is not set
305# CONFIG_SYS_HYPERVISOR is not set 339# CONFIG_SYS_HYPERVISOR is not set
@@ -330,63 +364,68 @@ CONFIG_BLK_DEV_CRYPTOLOOP=y
330CONFIG_BLK_DEV_RAM=y 364CONFIG_BLK_DEV_RAM=y
331CONFIG_BLK_DEV_RAM_COUNT=16 365CONFIG_BLK_DEV_RAM_COUNT=16
332CONFIG_BLK_DEV_RAM_SIZE=6144 366CONFIG_BLK_DEV_RAM_SIZE=6144
333CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 367# CONFIG_BLK_DEV_XIP is not set
334# CONFIG_CDROM_PKTCDVD is not set 368# CONFIG_CDROM_PKTCDVD is not set
335# CONFIG_ATA_OVER_ETH is not set 369# CONFIG_ATA_OVER_ETH is not set
370# CONFIG_BLK_DEV_HD is not set
336CONFIG_MISC_DEVICES=y 371CONFIG_MISC_DEVICES=y
337# CONFIG_PHANTOM is not set 372# CONFIG_PHANTOM is not set
338# CONFIG_EEPROM_93CX6 is not set
339# CONFIG_SGI_IOC4 is not set 373# CONFIG_SGI_IOC4 is not set
340# CONFIG_TIFM_CORE is not set 374# CONFIG_TIFM_CORE is not set
375# CONFIG_ENCLOSURE_SERVICES is not set
376# CONFIG_HP_ILO is not set
377# CONFIG_C2PORT is not set
378
379#
380# EEPROM support
381#
382# CONFIG_EEPROM_93CX6 is not set
383CONFIG_HAVE_IDE=y
341CONFIG_IDE=y 384CONFIG_IDE=y
342CONFIG_BLK_DEV_IDE=y
343 385
344# 386#
345# Please see Documentation/ide.txt for help/info on IDE drives 387# Please see Documentation/ide/ide.txt for help/info on IDE drives
346# 388#
389CONFIG_IDE_ATAPI=y
347# CONFIG_BLK_DEV_IDE_SATA is not set 390# CONFIG_BLK_DEV_IDE_SATA is not set
348CONFIG_BLK_DEV_IDEDISK=y 391CONFIG_IDE_GD=y
349CONFIG_IDEDISK_MULTI_MODE=y 392CONFIG_IDE_GD_ATA=y
393# CONFIG_IDE_GD_ATAPI is not set
350CONFIG_BLK_DEV_IDECS=y 394CONFIG_BLK_DEV_IDECS=y
351# CONFIG_BLK_DEV_DELKIN is not set 395# CONFIG_BLK_DEV_DELKIN is not set
352CONFIG_BLK_DEV_IDECD=y 396CONFIG_BLK_DEV_IDECD=y
397CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
353# CONFIG_BLK_DEV_IDETAPE is not set 398# CONFIG_BLK_DEV_IDETAPE is not set
354# CONFIG_BLK_DEV_IDEFLOPPY is not set
355CONFIG_BLK_DEV_IDESCSI=y
356# CONFIG_IDE_TASK_IOCTL is not set 399# CONFIG_IDE_TASK_IOCTL is not set
357CONFIG_IDE_PROC_FS=y 400CONFIG_IDE_PROC_FS=y
358 401
359# 402#
360# IDE chipset support/bugfixes 403# IDE chipset support/bugfixes
361# 404#
362CONFIG_IDE_GENERIC=y
363# CONFIG_BLK_DEV_PLATFORM is not set 405# CONFIG_BLK_DEV_PLATFORM is not set
406CONFIG_BLK_DEV_IDEDMA_SFF=y
364 407
365# 408#
366# PCI IDE chipsets support 409# PCI IDE chipsets support
367# 410#
368CONFIG_BLK_DEV_IDEPCI=y 411CONFIG_BLK_DEV_IDEPCI=y
369CONFIG_IDEPCI_SHARE_IRQ=y
370CONFIG_IDEPCI_PCIBUS_ORDER=y 412CONFIG_IDEPCI_PCIBUS_ORDER=y
371# CONFIG_BLK_DEV_OFFBOARD is not set 413# CONFIG_BLK_DEV_OFFBOARD is not set
372CONFIG_BLK_DEV_GENERIC=y 414CONFIG_BLK_DEV_GENERIC=y
373# CONFIG_BLK_DEV_OPTI621 is not set 415# CONFIG_BLK_DEV_OPTI621 is not set
374CONFIG_BLK_DEV_IDEDMA_PCI=y 416CONFIG_BLK_DEV_IDEDMA_PCI=y
375# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
376CONFIG_IDEDMA_ONLYDISK=y
377# CONFIG_BLK_DEV_AEC62XX is not set 417# CONFIG_BLK_DEV_AEC62XX is not set
378# CONFIG_BLK_DEV_ALI15X3 is not set 418# CONFIG_BLK_DEV_ALI15X3 is not set
379# CONFIG_BLK_DEV_AMD74XX is not set 419# CONFIG_BLK_DEV_AMD74XX is not set
380# CONFIG_BLK_DEV_CMD64X is not set 420# CONFIG_BLK_DEV_CMD64X is not set
381# CONFIG_BLK_DEV_TRIFLEX is not set 421# CONFIG_BLK_DEV_TRIFLEX is not set
382# CONFIG_BLK_DEV_CY82C693 is not set
383# CONFIG_BLK_DEV_CS5520 is not set 422# CONFIG_BLK_DEV_CS5520 is not set
384# CONFIG_BLK_DEV_CS5530 is not set 423# CONFIG_BLK_DEV_CS5530 is not set
385# CONFIG_BLK_DEV_HPT34X is not set
386# CONFIG_BLK_DEV_HPT366 is not set 424# CONFIG_BLK_DEV_HPT366 is not set
387# CONFIG_BLK_DEV_JMICRON is not set 425# CONFIG_BLK_DEV_JMICRON is not set
388# CONFIG_BLK_DEV_SC1200 is not set 426# CONFIG_BLK_DEV_SC1200 is not set
389# CONFIG_BLK_DEV_PIIX is not set 427# CONFIG_BLK_DEV_PIIX is not set
428# CONFIG_BLK_DEV_IT8172 is not set
390# CONFIG_BLK_DEV_IT8213 is not set 429# CONFIG_BLK_DEV_IT8213 is not set
391# CONFIG_BLK_DEV_IT821X is not set 430# CONFIG_BLK_DEV_IT821X is not set
392CONFIG_BLK_DEV_NS87415=y 431CONFIG_BLK_DEV_NS87415=y
@@ -398,10 +437,7 @@ CONFIG_BLK_DEV_NS87415=y
398# CONFIG_BLK_DEV_TRM290 is not set 437# CONFIG_BLK_DEV_TRM290 is not set
399# CONFIG_BLK_DEV_VIA82CXXX is not set 438# CONFIG_BLK_DEV_VIA82CXXX is not set
400# CONFIG_BLK_DEV_TC86C001 is not set 439# CONFIG_BLK_DEV_TC86C001 is not set
401# CONFIG_IDE_ARM is not set
402CONFIG_BLK_DEV_IDEDMA=y 440CONFIG_BLK_DEV_IDEDMA=y
403# CONFIG_IDEDMA_IVB is not set
404# CONFIG_BLK_DEV_HD is not set
405 441
406# 442#
407# SCSI device support 443# SCSI device support
@@ -440,8 +476,10 @@ CONFIG_SCSI_SPI_ATTRS=y
440# CONFIG_SCSI_FC_ATTRS is not set 476# CONFIG_SCSI_FC_ATTRS is not set
441# CONFIG_SCSI_ISCSI_ATTRS is not set 477# CONFIG_SCSI_ISCSI_ATTRS is not set
442# CONFIG_SCSI_SAS_LIBSAS is not set 478# CONFIG_SCSI_SAS_LIBSAS is not set
479# CONFIG_SCSI_SRP_ATTRS is not set
443CONFIG_SCSI_LOWLEVEL=y 480CONFIG_SCSI_LOWLEVEL=y
444# CONFIG_ISCSI_TCP is not set 481# CONFIG_ISCSI_TCP is not set
482# CONFIG_SCSI_CXGB3_ISCSI is not set
445# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 483# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
446# CONFIG_SCSI_3W_9XXX is not set 484# CONFIG_SCSI_3W_9XXX is not set
447# CONFIG_SCSI_ACARD is not set 485# CONFIG_SCSI_ACARD is not set
@@ -452,11 +490,14 @@ CONFIG_SCSI_LOWLEVEL=y
452# CONFIG_SCSI_AIC79XX is not set 490# CONFIG_SCSI_AIC79XX is not set
453# CONFIG_SCSI_AIC94XX is not set 491# CONFIG_SCSI_AIC94XX is not set
454# CONFIG_SCSI_DPT_I2O is not set 492# CONFIG_SCSI_DPT_I2O is not set
493# CONFIG_SCSI_ADVANSYS is not set
455# CONFIG_SCSI_ARCMSR is not set 494# CONFIG_SCSI_ARCMSR is not set
456# CONFIG_MEGARAID_NEWGEN is not set 495# CONFIG_MEGARAID_NEWGEN is not set
457# CONFIG_MEGARAID_LEGACY is not set 496# CONFIG_MEGARAID_LEGACY is not set
458# CONFIG_MEGARAID_SAS is not set 497# CONFIG_MEGARAID_SAS is not set
459# CONFIG_SCSI_HPTIOP is not set 498# CONFIG_SCSI_HPTIOP is not set
499# CONFIG_LIBFC is not set
500# CONFIG_FCOE is not set
460# CONFIG_SCSI_DMX3191D is not set 501# CONFIG_SCSI_DMX3191D is not set
461# CONFIG_SCSI_FUTURE_DOMAIN is not set 502# CONFIG_SCSI_FUTURE_DOMAIN is not set
462# CONFIG_SCSI_IPS is not set 503# CONFIG_SCSI_IPS is not set
@@ -464,6 +505,7 @@ CONFIG_SCSI_LOWLEVEL=y
464# CONFIG_SCSI_INIA100 is not set 505# CONFIG_SCSI_INIA100 is not set
465# CONFIG_SCSI_PPA is not set 506# CONFIG_SCSI_PPA is not set
466# CONFIG_SCSI_IMM is not set 507# CONFIG_SCSI_IMM is not set
508# CONFIG_SCSI_MVSAS is not set
467CONFIG_SCSI_LASI700=y 509CONFIG_SCSI_LASI700=y
468CONFIG_53C700_LE_ON_BE=y 510CONFIG_53C700_LE_ON_BE=y
469# CONFIG_SCSI_STEX is not set 511# CONFIG_SCSI_STEX is not set
@@ -487,9 +529,11 @@ CONFIG_SCSI_NCR53C8XX_SYNC=20
487# CONFIG_SCSI_DEBUG is not set 529# CONFIG_SCSI_DEBUG is not set
488# CONFIG_SCSI_SRP is not set 530# CONFIG_SCSI_SRP is not set
489# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set 531# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
532# CONFIG_SCSI_DH is not set
490# CONFIG_ATA is not set 533# CONFIG_ATA is not set
491CONFIG_MD=y 534CONFIG_MD=y
492CONFIG_BLK_DEV_MD=y 535CONFIG_BLK_DEV_MD=y
536CONFIG_MD_AUTODETECT=y
493CONFIG_MD_LINEAR=y 537CONFIG_MD_LINEAR=y
494CONFIG_MD_RAID0=y 538CONFIG_MD_RAID0=y
495CONFIG_MD_RAID1=y 539CONFIG_MD_RAID1=y
@@ -505,32 +549,47 @@ CONFIG_BLK_DEV_DM=y
505# CONFIG_DM_ZERO is not set 549# CONFIG_DM_ZERO is not set
506# CONFIG_DM_MULTIPATH is not set 550# CONFIG_DM_MULTIPATH is not set
507# CONFIG_DM_DELAY is not set 551# CONFIG_DM_DELAY is not set
552# CONFIG_DM_UEVENT is not set
553# CONFIG_FUSION is not set
508 554
509# 555#
510# Fusion MPT device support 556# IEEE 1394 (FireWire) support
511# 557#
512# CONFIG_FUSION is not set
513# CONFIG_FUSION_SPI is not set
514# CONFIG_FUSION_FC is not set
515# CONFIG_FUSION_SAS is not set
516 558
517# 559#
518# IEEE 1394 (FireWire) support 560# Enable only one of the two stacks, unless you know what you are doing
519# 561#
520# CONFIG_FIREWIRE is not set 562# CONFIG_FIREWIRE is not set
521# CONFIG_IEEE1394 is not set 563# CONFIG_IEEE1394 is not set
522# CONFIG_I2O is not set 564# CONFIG_I2O is not set
523CONFIG_NETDEVICES=y 565CONFIG_NETDEVICES=y
524# CONFIG_NETDEVICES_MULTIQUEUE is not set
525CONFIG_DUMMY=m 566CONFIG_DUMMY=m
526CONFIG_BONDING=m 567CONFIG_BONDING=m
527# CONFIG_MACVLAN is not set 568# CONFIG_MACVLAN is not set
528# CONFIG_EQUALIZER is not set 569# CONFIG_EQUALIZER is not set
529CONFIG_TUN=m 570CONFIG_TUN=m
530# CONFIG_VETH is not set 571# CONFIG_VETH is not set
531# CONFIG_IP1000 is not set
532# CONFIG_ARCNET is not set 572# CONFIG_ARCNET is not set
533# CONFIG_PHYLIB is not set 573CONFIG_PHYLIB=y
574
575#
576# MII PHY device drivers
577#
578# CONFIG_MARVELL_PHY is not set
579# CONFIG_DAVICOM_PHY is not set
580# CONFIG_QSEMI_PHY is not set
581# CONFIG_LXT_PHY is not set
582# CONFIG_CICADA_PHY is not set
583# CONFIG_VITESSE_PHY is not set
584# CONFIG_SMSC_PHY is not set
585# CONFIG_BROADCOM_PHY is not set
586# CONFIG_ICPLUS_PHY is not set
587# CONFIG_REALTEK_PHY is not set
588# CONFIG_NATIONAL_PHY is not set
589# CONFIG_STE10XP is not set
590# CONFIG_LSI_ET1011C_PHY is not set
591# CONFIG_FIXED_PHY is not set
592# CONFIG_MDIO_BITBANG is not set
534CONFIG_NET_ETHERNET=y 593CONFIG_NET_ETHERNET=y
535CONFIG_MII=m 594CONFIG_MII=m
536CONFIG_LASI_82596=y 595CONFIG_LASI_82596=y
@@ -550,13 +609,15 @@ CONFIG_TULIP=y
550# CONFIG_DM9102 is not set 609# CONFIG_DM9102 is not set
551# CONFIG_ULI526X is not set 610# CONFIG_ULI526X is not set
552# CONFIG_PCMCIA_XIRCOM is not set 611# CONFIG_PCMCIA_XIRCOM is not set
553# CONFIG_PCMCIA_XIRTULIP is not set
554# CONFIG_DEPCA is not set 612# CONFIG_DEPCA is not set
555# CONFIG_HP100 is not set 613# CONFIG_HP100 is not set
556# CONFIG_IBM_NEW_EMAC_ZMII is not set 614# CONFIG_IBM_NEW_EMAC_ZMII is not set
557# CONFIG_IBM_NEW_EMAC_RGMII is not set 615# CONFIG_IBM_NEW_EMAC_RGMII is not set
558# CONFIG_IBM_NEW_EMAC_TAH is not set 616# CONFIG_IBM_NEW_EMAC_TAH is not set
559# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 617# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
618# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
619# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
620# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
560CONFIG_NET_PCI=y 621CONFIG_NET_PCI=y
561# CONFIG_PCNET32 is not set 622# CONFIG_PCNET32 is not set
562# CONFIG_AMD8111_ETH is not set 623# CONFIG_AMD8111_ETH is not set
@@ -564,7 +625,7 @@ CONFIG_NET_PCI=y
564# CONFIG_AC3200 is not set 625# CONFIG_AC3200 is not set
565# CONFIG_B44 is not set 626# CONFIG_B44 is not set
566# CONFIG_FORCEDETH is not set 627# CONFIG_FORCEDETH is not set
567# CONFIG_EEPRO100 is not set 628# CONFIG_CS89x0 is not set
568# CONFIG_E100 is not set 629# CONFIG_E100 is not set
569# CONFIG_LNE390 is not set 630# CONFIG_LNE390 is not set
570# CONFIG_FEALNX is not set 631# CONFIG_FEALNX is not set
@@ -574,19 +635,24 @@ CONFIG_NET_PCI=y
574# CONFIG_ES3210 is not set 635# CONFIG_ES3210 is not set
575# CONFIG_8139CP is not set 636# CONFIG_8139CP is not set
576# CONFIG_8139TOO is not set 637# CONFIG_8139TOO is not set
638# CONFIG_R6040 is not set
577# CONFIG_SIS900 is not set 639# CONFIG_SIS900 is not set
578# CONFIG_EPIC100 is not set 640# CONFIG_EPIC100 is not set
641# CONFIG_SMSC9420 is not set
579# CONFIG_SUNDANCE is not set 642# CONFIG_SUNDANCE is not set
580# CONFIG_TLAN is not set 643# CONFIG_TLAN is not set
581# CONFIG_VIA_RHINE is not set 644# CONFIG_VIA_RHINE is not set
582# CONFIG_SC92031 is not set 645# CONFIG_SC92031 is not set
583# CONFIG_NET_POCKET is not set 646# CONFIG_NET_POCKET is not set
647# CONFIG_ATL2 is not set
584CONFIG_NETDEV_1000=y 648CONFIG_NETDEV_1000=y
585CONFIG_ACENIC=y 649CONFIG_ACENIC=y
586# CONFIG_ACENIC_OMIT_TIGON_I is not set 650# CONFIG_ACENIC_OMIT_TIGON_I is not set
587# CONFIG_DL2K is not set 651# CONFIG_DL2K is not set
588# CONFIG_E1000 is not set 652# CONFIG_E1000 is not set
589# CONFIG_E1000E is not set 653# CONFIG_E1000E is not set
654# CONFIG_IP1000 is not set
655# CONFIG_IGB is not set
590# CONFIG_NS83820 is not set 656# CONFIG_NS83820 is not set
591# CONFIG_HAMACHI is not set 657# CONFIG_HAMACHI is not set
592# CONFIG_YELLOWFIN is not set 658# CONFIG_YELLOWFIN is not set
@@ -594,23 +660,31 @@ CONFIG_ACENIC=y
594# CONFIG_SIS190 is not set 660# CONFIG_SIS190 is not set
595# CONFIG_SKGE is not set 661# CONFIG_SKGE is not set
596# CONFIG_SKY2 is not set 662# CONFIG_SKY2 is not set
597# CONFIG_SK98LIN is not set
598# CONFIG_VIA_VELOCITY is not set 663# CONFIG_VIA_VELOCITY is not set
599CONFIG_TIGON3=y 664CONFIG_TIGON3=y
600# CONFIG_BNX2 is not set 665# CONFIG_BNX2 is not set
601# CONFIG_QLA3XXX is not set 666# CONFIG_QLA3XXX is not set
602# CONFIG_ATL1 is not set 667# CONFIG_ATL1 is not set
668# CONFIG_ATL1E is not set
669# CONFIG_ATL1C is not set
670# CONFIG_JME is not set
603CONFIG_NETDEV_10000=y 671CONFIG_NETDEV_10000=y
604# CONFIG_CHELSIO_T1 is not set 672# CONFIG_CHELSIO_T1 is not set
673CONFIG_CHELSIO_T3_DEPENDS=y
605# CONFIG_CHELSIO_T3 is not set 674# CONFIG_CHELSIO_T3 is not set
675# CONFIG_ENIC is not set
606# CONFIG_IXGBE is not set 676# CONFIG_IXGBE is not set
607# CONFIG_IXGB is not set 677# CONFIG_IXGB is not set
608# CONFIG_S2IO is not set 678# CONFIG_S2IO is not set
609# CONFIG_MYRI10GE is not set 679# CONFIG_MYRI10GE is not set
610# CONFIG_NETXEN_NIC is not set 680# CONFIG_NETXEN_NIC is not set
611# CONFIG_NIU is not set 681# CONFIG_NIU is not set
682# CONFIG_MLX4_EN is not set
612# CONFIG_MLX4_CORE is not set 683# CONFIG_MLX4_CORE is not set
613# CONFIG_TEHUTI is not set 684# CONFIG_TEHUTI is not set
685# CONFIG_BNX2X is not set
686# CONFIG_QLGE is not set
687# CONFIG_SFC is not set
614# CONFIG_TR is not set 688# CONFIG_TR is not set
615 689
616# 690#
@@ -618,6 +692,11 @@ CONFIG_NETDEV_10000=y
618# 692#
619# CONFIG_WLAN_PRE80211 is not set 693# CONFIG_WLAN_PRE80211 is not set
620# CONFIG_WLAN_80211 is not set 694# CONFIG_WLAN_80211 is not set
695# CONFIG_IWLWIFI_LEDS is not set
696
697#
698# Enable WiMAX (Networking options) to see the WiMAX drivers
699#
621 700
622# 701#
623# USB Network Adapters 702# USB Network Adapters
@@ -626,7 +705,6 @@ CONFIG_NETDEV_10000=y
626# CONFIG_USB_KAWETH is not set 705# CONFIG_USB_KAWETH is not set
627# CONFIG_USB_PEGASUS is not set 706# CONFIG_USB_PEGASUS is not set
628# CONFIG_USB_RTL8150 is not set 707# CONFIG_USB_RTL8150 is not set
629# CONFIG_USB_USBNET_MII is not set
630# CONFIG_USB_USBNET is not set 708# CONFIG_USB_USBNET is not set
631CONFIG_NET_PCMCIA=y 709CONFIG_NET_PCMCIA=y
632# CONFIG_PCMCIA_3C589 is not set 710# CONFIG_PCMCIA_3C589 is not set
@@ -654,7 +732,6 @@ CONFIG_PPPOE=m
654# CONFIG_SLIP is not set 732# CONFIG_SLIP is not set
655CONFIG_SLHC=m 733CONFIG_SLHC=m
656# CONFIG_NET_FC is not set 734# CONFIG_NET_FC is not set
657# CONFIG_SHAPER is not set
658# CONFIG_NETCONSOLE is not set 735# CONFIG_NETCONSOLE is not set
659# CONFIG_NETPOLL is not set 736# CONFIG_NETPOLL is not set
660# CONFIG_NET_POLL_CONTROLLER is not set 737# CONFIG_NET_POLL_CONTROLLER is not set
@@ -676,7 +753,6 @@ CONFIG_INPUT_MOUSEDEV_PSAUX=y
676CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 753CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
677CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 754CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
678# CONFIG_INPUT_JOYDEV is not set 755# CONFIG_INPUT_JOYDEV is not set
679# CONFIG_INPUT_TSDEV is not set
680# CONFIG_INPUT_EVDEV is not set 756# CONFIG_INPUT_EVDEV is not set
681# CONFIG_INPUT_EVBUG is not set 757# CONFIG_INPUT_EVBUG is not set
682 758
@@ -699,11 +775,12 @@ CONFIG_MOUSE_PS2=y
699CONFIG_MOUSE_PS2_ALPS=y 775CONFIG_MOUSE_PS2_ALPS=y
700CONFIG_MOUSE_PS2_LOGIPS2PP=y 776CONFIG_MOUSE_PS2_LOGIPS2PP=y
701CONFIG_MOUSE_PS2_SYNAPTICS=y 777CONFIG_MOUSE_PS2_SYNAPTICS=y
702CONFIG_MOUSE_PS2_LIFEBOOK=y
703CONFIG_MOUSE_PS2_TRACKPOINT=y 778CONFIG_MOUSE_PS2_TRACKPOINT=y
779# CONFIG_MOUSE_PS2_ELANTECH is not set
704# CONFIG_MOUSE_PS2_TOUCHKIT is not set 780# CONFIG_MOUSE_PS2_TOUCHKIT is not set
705CONFIG_MOUSE_SERIAL=y 781CONFIG_MOUSE_SERIAL=y
706# CONFIG_MOUSE_APPLETOUCH is not set 782# CONFIG_MOUSE_APPLETOUCH is not set
783# CONFIG_MOUSE_BCM5974 is not set
707# CONFIG_MOUSE_VSXXXAA is not set 784# CONFIG_MOUSE_VSXXXAA is not set
708CONFIG_MOUSE_HIL=y 785CONFIG_MOUSE_HIL=y
709# CONFIG_INPUT_JOYSTICK is not set 786# CONFIG_INPUT_JOYSTICK is not set
@@ -729,10 +806,13 @@ CONFIG_SERIO_LIBPS2=y
729# Character devices 806# Character devices
730# 807#
731CONFIG_VT=y 808CONFIG_VT=y
809CONFIG_CONSOLE_TRANSLATIONS=y
732CONFIG_VT_CONSOLE=y 810CONFIG_VT_CONSOLE=y
733CONFIG_HW_CONSOLE=y 811CONFIG_HW_CONSOLE=y
734# CONFIG_VT_HW_CONSOLE_BINDING is not set 812# CONFIG_VT_HW_CONSOLE_BINDING is not set
813CONFIG_DEVKMEM=y
735# CONFIG_SERIAL_NONSTANDARD is not set 814# CONFIG_SERIAL_NONSTANDARD is not set
815# CONFIG_NOZOMI is not set
736 816
737# 817#
738# Serial drivers 818# Serial drivers
@@ -759,21 +839,16 @@ CONFIG_SERIAL_CORE=y
759CONFIG_SERIAL_CORE_CONSOLE=y 839CONFIG_SERIAL_CORE_CONSOLE=y
760# CONFIG_SERIAL_JSM is not set 840# CONFIG_SERIAL_JSM is not set
761CONFIG_UNIX98_PTYS=y 841CONFIG_UNIX98_PTYS=y
842# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
762CONFIG_LEGACY_PTYS=y 843CONFIG_LEGACY_PTYS=y
763CONFIG_LEGACY_PTY_COUNT=64 844CONFIG_LEGACY_PTY_COUNT=64
764CONFIG_PRINTER=m 845CONFIG_PRINTER=m
765# CONFIG_LP_CONSOLE is not set 846# CONFIG_LP_CONSOLE is not set
766CONFIG_PPDEV=m 847CONFIG_PPDEV=m
767# CONFIG_TIPAR is not set
768# CONFIG_IPMI_HANDLER is not set 848# CONFIG_IPMI_HANDLER is not set
769# CONFIG_WATCHDOG is not set
770# CONFIG_HW_RANDOM is not set 849# CONFIG_HW_RANDOM is not set
771CONFIG_GEN_RTC=y
772CONFIG_GEN_RTC_X=y
773# CONFIG_R3964 is not set 850# CONFIG_R3964 is not set
774# CONFIG_APPLICOM is not set 851# CONFIG_APPLICOM is not set
775# CONFIG_AGP is not set
776# CONFIG_DRM is not set
777 852
778# 853#
779# PCMCIA character devices 854# PCMCIA character devices
@@ -781,60 +856,70 @@ CONFIG_GEN_RTC_X=y
781# CONFIG_SYNCLINK_CS is not set 856# CONFIG_SYNCLINK_CS is not set
782# CONFIG_CARDMAN_4000 is not set 857# CONFIG_CARDMAN_4000 is not set
783# CONFIG_CARDMAN_4040 is not set 858# CONFIG_CARDMAN_4040 is not set
859# CONFIG_IPWIRELESS is not set
784# CONFIG_RAW_DRIVER is not set 860# CONFIG_RAW_DRIVER is not set
785# CONFIG_TCG_TPM is not set 861# CONFIG_TCG_TPM is not set
786CONFIG_DEVPORT=y 862CONFIG_DEVPORT=y
787# CONFIG_I2C is not set 863# CONFIG_I2C is not set
788
789#
790# SPI support
791#
792# CONFIG_SPI is not set 864# CONFIG_SPI is not set
793# CONFIG_SPI_MASTER is not set
794# CONFIG_W1 is not set 865# CONFIG_W1 is not set
795# CONFIG_POWER_SUPPLY is not set 866# CONFIG_POWER_SUPPLY is not set
796# CONFIG_HWMON is not set 867# CONFIG_HWMON is not set
868# CONFIG_THERMAL is not set
869# CONFIG_THERMAL_HWMON is not set
870# CONFIG_WATCHDOG is not set
871CONFIG_SSB_POSSIBLE=y
797 872
798# 873#
799# Sonics Silicon Backplane 874# Sonics Silicon Backplane
800# 875#
801CONFIG_SSB_POSSIBLE=y
802# CONFIG_SSB is not set 876# CONFIG_SSB is not set
803 877
804# 878#
805# Multifunction device drivers 879# Multifunction device drivers
806# 880#
881# CONFIG_MFD_CORE is not set
807# CONFIG_MFD_SM501 is not set 882# CONFIG_MFD_SM501 is not set
883# CONFIG_HTC_PASIC3 is not set
884# CONFIG_MFD_TMIO is not set
885# CONFIG_REGULATOR is not set
808 886
809# 887#
810# Multimedia devices 888# Multimedia devices
811# 889#
890
891#
892# Multimedia core support
893#
812# CONFIG_VIDEO_DEV is not set 894# CONFIG_VIDEO_DEV is not set
813# CONFIG_DVB_CORE is not set 895# CONFIG_DVB_CORE is not set
814# CONFIG_DAB is not set 896# CONFIG_VIDEO_MEDIA is not set
815 897
816# 898#
817# Graphics support 899# Multimedia drivers
818# 900#
819# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 901# CONFIG_DAB is not set
820 902
821# 903#
822# Display device support 904# Graphics support
823# 905#
824# CONFIG_DISPLAY_SUPPORT is not set 906# CONFIG_AGP is not set
907# CONFIG_DRM is not set
825# CONFIG_VGASTATE is not set 908# CONFIG_VGASTATE is not set
826CONFIG_VIDEO_OUTPUT_CONTROL=m 909CONFIG_VIDEO_OUTPUT_CONTROL=m
827CONFIG_FB=y 910CONFIG_FB=y
828# CONFIG_FIRMWARE_EDID is not set 911# CONFIG_FIRMWARE_EDID is not set
829# CONFIG_FB_DDC is not set 912# CONFIG_FB_DDC is not set
913# CONFIG_FB_BOOT_VESA_SUPPORT is not set
830CONFIG_FB_CFB_FILLRECT=y 914CONFIG_FB_CFB_FILLRECT=y
831CONFIG_FB_CFB_COPYAREA=y 915CONFIG_FB_CFB_COPYAREA=y
832CONFIG_FB_CFB_IMAGEBLIT=y 916CONFIG_FB_CFB_IMAGEBLIT=y
917# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
833# CONFIG_FB_SYS_FILLRECT is not set 918# CONFIG_FB_SYS_FILLRECT is not set
834# CONFIG_FB_SYS_COPYAREA is not set 919# CONFIG_FB_SYS_COPYAREA is not set
835# CONFIG_FB_SYS_IMAGEBLIT is not set 920# CONFIG_FB_SYS_IMAGEBLIT is not set
921# CONFIG_FB_FOREIGN_ENDIAN is not set
836# CONFIG_FB_SYS_FOPS is not set 922# CONFIG_FB_SYS_FOPS is not set
837CONFIG_FB_DEFERRED_IO=y
838# CONFIG_FB_SVGALIB is not set 923# CONFIG_FB_SVGALIB is not set
839# CONFIG_FB_MACMODES is not set 924# CONFIG_FB_MACMODES is not set
840# CONFIG_FB_BACKLIGHT is not set 925# CONFIG_FB_BACKLIGHT is not set
@@ -860,6 +945,7 @@ CONFIG_FB_STI=y
860# CONFIG_FB_S3 is not set 945# CONFIG_FB_S3 is not set
861# CONFIG_FB_SAVAGE is not set 946# CONFIG_FB_SAVAGE is not set
862# CONFIG_FB_SIS is not set 947# CONFIG_FB_SIS is not set
948# CONFIG_FB_VIA is not set
863# CONFIG_FB_NEOMAGIC is not set 949# CONFIG_FB_NEOMAGIC is not set
864# CONFIG_FB_KYRO is not set 950# CONFIG_FB_KYRO is not set
865# CONFIG_FB_3DFX is not set 951# CONFIG_FB_3DFX is not set
@@ -868,7 +954,16 @@ CONFIG_FB_STI=y
868# CONFIG_FB_TRIDENT is not set 954# CONFIG_FB_TRIDENT is not set
869# CONFIG_FB_ARK is not set 955# CONFIG_FB_ARK is not set
870# CONFIG_FB_PM3 is not set 956# CONFIG_FB_PM3 is not set
957# CONFIG_FB_CARMINE is not set
871# CONFIG_FB_VIRTUAL is not set 958# CONFIG_FB_VIRTUAL is not set
959# CONFIG_FB_METRONOME is not set
960# CONFIG_FB_MB862XX is not set
961# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
962
963#
964# Display device support
965#
966# CONFIG_DISPLAY_SUPPORT is not set
872 967
873# 968#
874# Console display driver support 969# Console display driver support
@@ -896,15 +991,8 @@ CONFIG_LOGO=y
896# CONFIG_LOGO_LINUX_VGA16 is not set 991# CONFIG_LOGO_LINUX_VGA16 is not set
897# CONFIG_LOGO_LINUX_CLUT224 is not set 992# CONFIG_LOGO_LINUX_CLUT224 is not set
898CONFIG_LOGO_PARISC_CLUT224=y 993CONFIG_LOGO_PARISC_CLUT224=y
899
900#
901# Sound
902#
903CONFIG_SOUND=y 994CONFIG_SOUND=y
904 995CONFIG_SOUND_OSS_CORE=y
905#
906# Advanced Linux Sound Architecture
907#
908CONFIG_SND=y 996CONFIG_SND=y
909CONFIG_SND_TIMER=y 997CONFIG_SND_TIMER=y
910CONFIG_SND_PCM=y 998CONFIG_SND_PCM=y
@@ -920,11 +1008,9 @@ CONFIG_SND_SUPPORT_OLD_API=y
920CONFIG_SND_VERBOSE_PROCFS=y 1008CONFIG_SND_VERBOSE_PROCFS=y
921# CONFIG_SND_VERBOSE_PRINTK is not set 1009# CONFIG_SND_VERBOSE_PRINTK is not set
922# CONFIG_SND_DEBUG is not set 1010# CONFIG_SND_DEBUG is not set
923 1011CONFIG_SND_VMASTER=y
924#
925# Generic devices
926#
927CONFIG_SND_AC97_CODEC=y 1012CONFIG_SND_AC97_CODEC=y
1013CONFIG_SND_DRIVERS=y
928# CONFIG_SND_DUMMY is not set 1014# CONFIG_SND_DUMMY is not set
929# CONFIG_SND_VIRMIDI is not set 1015# CONFIG_SND_VIRMIDI is not set
930# CONFIG_SND_MTPAV is not set 1016# CONFIG_SND_MTPAV is not set
@@ -932,10 +1018,8 @@ CONFIG_SND_AC97_CODEC=y
932# CONFIG_SND_SERIAL_U16550 is not set 1018# CONFIG_SND_SERIAL_U16550 is not set
933# CONFIG_SND_MPU401 is not set 1019# CONFIG_SND_MPU401 is not set
934# CONFIG_SND_PORTMAN2X4 is not set 1020# CONFIG_SND_PORTMAN2X4 is not set
935 1021# CONFIG_SND_AC97_POWER_SAVE is not set
936# 1022CONFIG_SND_PCI=y
937# PCI devices
938#
939CONFIG_SND_AD1889=y 1023CONFIG_SND_AD1889=y
940# CONFIG_SND_ALS300 is not set 1024# CONFIG_SND_ALS300 is not set
941# CONFIG_SND_ALI5451 is not set 1025# CONFIG_SND_ALI5451 is not set
@@ -944,10 +1028,12 @@ CONFIG_SND_AD1889=y
944# CONFIG_SND_AU8810 is not set 1028# CONFIG_SND_AU8810 is not set
945# CONFIG_SND_AU8820 is not set 1029# CONFIG_SND_AU8820 is not set
946# CONFIG_SND_AU8830 is not set 1030# CONFIG_SND_AU8830 is not set
1031# CONFIG_SND_AW2 is not set
947# CONFIG_SND_AZT3328 is not set 1032# CONFIG_SND_AZT3328 is not set
948# CONFIG_SND_BT87X is not set 1033# CONFIG_SND_BT87X is not set
949# CONFIG_SND_CA0106 is not set 1034# CONFIG_SND_CA0106 is not set
950# CONFIG_SND_CMIPCI is not set 1035# CONFIG_SND_CMIPCI is not set
1036# CONFIG_SND_OXYGEN is not set
951# CONFIG_SND_CS4281 is not set 1037# CONFIG_SND_CS4281 is not set
952# CONFIG_SND_CS46XX is not set 1038# CONFIG_SND_CS46XX is not set
953# CONFIG_SND_DARLA20 is not set 1039# CONFIG_SND_DARLA20 is not set
@@ -972,6 +1058,7 @@ CONFIG_SND_AD1889=y
972# CONFIG_SND_HDA_INTEL is not set 1058# CONFIG_SND_HDA_INTEL is not set
973# CONFIG_SND_HDSP is not set 1059# CONFIG_SND_HDSP is not set
974# CONFIG_SND_HDSPM is not set 1060# CONFIG_SND_HDSPM is not set
1061# CONFIG_SND_HIFIER is not set
975# CONFIG_SND_ICE1712 is not set 1062# CONFIG_SND_ICE1712 is not set
976# CONFIG_SND_ICE1724 is not set 1063# CONFIG_SND_ICE1724 is not set
977# CONFIG_SND_INTEL8X0 is not set 1064# CONFIG_SND_INTEL8X0 is not set
@@ -989,58 +1076,67 @@ CONFIG_SND_AD1889=y
989# CONFIG_SND_TRIDENT is not set 1076# CONFIG_SND_TRIDENT is not set
990# CONFIG_SND_VIA82XX is not set 1077# CONFIG_SND_VIA82XX is not set
991# CONFIG_SND_VIA82XX_MODEM is not set 1078# CONFIG_SND_VIA82XX_MODEM is not set
1079# CONFIG_SND_VIRTUOSO is not set
992# CONFIG_SND_VX222 is not set 1080# CONFIG_SND_VX222 is not set
993# CONFIG_SND_YMFPCI is not set 1081# CONFIG_SND_YMFPCI is not set
994# CONFIG_SND_AC97_POWER_SAVE is not set 1082CONFIG_SND_USB=y
995
996#
997# USB devices
998#
999# CONFIG_SND_USB_AUDIO is not set 1083# CONFIG_SND_USB_AUDIO is not set
1000# CONFIG_SND_USB_CAIAQ is not set 1084# CONFIG_SND_USB_CAIAQ is not set
1001 1085CONFIG_SND_PCMCIA=y
1002#
1003# PCMCIA devices
1004#
1005# CONFIG_SND_VXPOCKET is not set 1086# CONFIG_SND_VXPOCKET is not set
1006# CONFIG_SND_PDAUDIOCF is not set 1087# CONFIG_SND_PDAUDIOCF is not set
1007 1088CONFIG_SND_GSC=y
1008#
1009# GSC devices
1010#
1011CONFIG_SND_HARMONY=y 1089CONFIG_SND_HARMONY=y
1012
1013#
1014# System on Chip audio support
1015#
1016# CONFIG_SND_SOC is not set 1090# CONFIG_SND_SOC is not set
1017
1018#
1019# SoC Audio support for SuperH
1020#
1021
1022#
1023# Open Sound System
1024#
1025# CONFIG_SOUND_PRIME is not set 1091# CONFIG_SOUND_PRIME is not set
1026CONFIG_AC97_BUS=y 1092CONFIG_AC97_BUS=y
1027CONFIG_HID_SUPPORT=y 1093CONFIG_HID_SUPPORT=y
1028CONFIG_HID=y 1094CONFIG_HID=y
1029CONFIG_HID_DEBUG=y 1095CONFIG_HID_DEBUG=y
1096# CONFIG_HIDRAW is not set
1030 1097
1031# 1098#
1032# USB Input Devices 1099# USB Input Devices
1033# 1100#
1034CONFIG_USB_HID=y 1101CONFIG_USB_HID=y
1035# CONFIG_USB_HIDINPUT_POWERBOOK is not set 1102# CONFIG_HID_PID is not set
1036# CONFIG_HID_FF is not set
1037# CONFIG_USB_HIDDEV is not set 1103# CONFIG_USB_HIDDEV is not set
1104
1105#
1106# Special HID drivers
1107#
1108CONFIG_HID_COMPAT=y
1109CONFIG_HID_A4TECH=y
1110CONFIG_HID_APPLE=y
1111CONFIG_HID_BELKIN=y
1112CONFIG_HID_CHERRY=y
1113CONFIG_HID_CHICONY=y
1114CONFIG_HID_CYPRESS=y
1115CONFIG_HID_EZKEY=y
1116CONFIG_HID_GYRATION=y
1117CONFIG_HID_LOGITECH=y
1118# CONFIG_LOGITECH_FF is not set
1119# CONFIG_LOGIRUMBLEPAD2_FF is not set
1120CONFIG_HID_MICROSOFT=y
1121CONFIG_HID_MONTEREY=y
1122CONFIG_HID_NTRIG=y
1123CONFIG_HID_PANTHERLORD=y
1124# CONFIG_PANTHERLORD_FF is not set
1125CONFIG_HID_PETALYNX=y
1126CONFIG_HID_SAMSUNG=y
1127CONFIG_HID_SONY=y
1128CONFIG_HID_SUNPLUS=y
1129# CONFIG_GREENASIA_FF is not set
1130CONFIG_HID_TOPSEED=y
1131# CONFIG_THRUSTMASTER_FF is not set
1132# CONFIG_ZEROPLUS_FF is not set
1038CONFIG_USB_SUPPORT=y 1133CONFIG_USB_SUPPORT=y
1039CONFIG_USB_ARCH_HAS_HCD=y 1134CONFIG_USB_ARCH_HAS_HCD=y
1040CONFIG_USB_ARCH_HAS_OHCI=y 1135CONFIG_USB_ARCH_HAS_OHCI=y
1041CONFIG_USB_ARCH_HAS_EHCI=y 1136CONFIG_USB_ARCH_HAS_EHCI=y
1042CONFIG_USB=y 1137CONFIG_USB=y
1043# CONFIG_USB_DEBUG is not set 1138# CONFIG_USB_DEBUG is not set
1139# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
1044 1140
1045# 1141#
1046# Miscellaneous USB options 1142# Miscellaneous USB options
@@ -1049,12 +1145,18 @@ CONFIG_USB_DEVICEFS=y
1049CONFIG_USB_DEVICE_CLASS=y 1145CONFIG_USB_DEVICE_CLASS=y
1050# CONFIG_USB_DYNAMIC_MINORS is not set 1146# CONFIG_USB_DYNAMIC_MINORS is not set
1051# CONFIG_USB_OTG is not set 1147# CONFIG_USB_OTG is not set
1148CONFIG_USB_MON=y
1149# CONFIG_USB_WUSB is not set
1150# CONFIG_USB_WUSB_CBAF is not set
1052 1151
1053# 1152#
1054# USB Host Controller Drivers 1153# USB Host Controller Drivers
1055# 1154#
1155# CONFIG_USB_C67X00_HCD is not set
1056# CONFIG_USB_EHCI_HCD is not set 1156# CONFIG_USB_EHCI_HCD is not set
1157# CONFIG_USB_OXU210HP_HCD is not set
1057# CONFIG_USB_ISP116X_HCD is not set 1158# CONFIG_USB_ISP116X_HCD is not set
1159# CONFIG_USB_ISP1760_HCD is not set
1058CONFIG_USB_OHCI_HCD=y 1160CONFIG_USB_OHCI_HCD=y
1059# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set 1161# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
1060# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set 1162# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
@@ -1062,19 +1164,23 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1062CONFIG_USB_UHCI_HCD=y 1164CONFIG_USB_UHCI_HCD=y
1063# CONFIG_USB_SL811_HCD is not set 1165# CONFIG_USB_SL811_HCD is not set
1064# CONFIG_USB_R8A66597_HCD is not set 1166# CONFIG_USB_R8A66597_HCD is not set
1167# CONFIG_USB_WHCI_HCD is not set
1168# CONFIG_USB_HWA_HCD is not set
1065 1169
1066# 1170#
1067# USB Device Class drivers 1171# USB Device Class drivers
1068# 1172#
1069# CONFIG_USB_ACM is not set 1173# CONFIG_USB_ACM is not set
1070# CONFIG_USB_PRINTER is not set 1174# CONFIG_USB_PRINTER is not set
1175# CONFIG_USB_WDM is not set
1176# CONFIG_USB_TMC is not set
1071 1177
1072# 1178#
1073# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1179# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1074# 1180#
1075 1181
1076# 1182#
1077# may also be needed; see USB_STORAGE Help for more information 1183# see USB_STORAGE Help for more information
1078# 1184#
1079# CONFIG_USB_STORAGE is not set 1185# CONFIG_USB_STORAGE is not set
1080# CONFIG_USB_LIBUSUAL is not set 1186# CONFIG_USB_LIBUSUAL is not set
@@ -1084,16 +1190,11 @@ CONFIG_USB_UHCI_HCD=y
1084# 1190#
1085# CONFIG_USB_MDC800 is not set 1191# CONFIG_USB_MDC800 is not set
1086# CONFIG_USB_MICROTEK is not set 1192# CONFIG_USB_MICROTEK is not set
1087CONFIG_USB_MON=y
1088 1193
1089# 1194#
1090# USB port drivers 1195# USB port drivers
1091# 1196#
1092# CONFIG_USB_USS720 is not set 1197# CONFIG_USB_USS720 is not set
1093
1094#
1095# USB Serial Converter support
1096#
1097# CONFIG_USB_SERIAL is not set 1198# CONFIG_USB_SERIAL is not set
1098 1199
1099# 1200#
@@ -1102,7 +1203,7 @@ CONFIG_USB_MON=y
1102# CONFIG_USB_EMI62 is not set 1203# CONFIG_USB_EMI62 is not set
1103# CONFIG_USB_EMI26 is not set 1204# CONFIG_USB_EMI26 is not set
1104# CONFIG_USB_ADUTUX is not set 1205# CONFIG_USB_ADUTUX is not set
1105# CONFIG_USB_AUERSWALD is not set 1206# CONFIG_USB_SEVSEG is not set
1106# CONFIG_USB_RIO500 is not set 1207# CONFIG_USB_RIO500 is not set
1107# CONFIG_USB_LEGOTOWER is not set 1208# CONFIG_USB_LEGOTOWER is not set
1108# CONFIG_USB_LCD is not set 1209# CONFIG_USB_LCD is not set
@@ -1118,38 +1219,60 @@ CONFIG_USB_MON=y
1118# CONFIG_USB_TRANCEVIBRATOR is not set 1219# CONFIG_USB_TRANCEVIBRATOR is not set
1119# CONFIG_USB_IOWARRIOR is not set 1220# CONFIG_USB_IOWARRIOR is not set
1120# CONFIG_USB_TEST is not set 1221# CONFIG_USB_TEST is not set
1222# CONFIG_USB_ISIGHTFW is not set
1223# CONFIG_USB_VST is not set
1224# CONFIG_USB_GADGET is not set
1121 1225
1122# 1226#
1123# USB DSL modem support 1227# OTG and related infrastructure
1124#
1125
1126#
1127# USB Gadget Support
1128# 1228#
1129# CONFIG_USB_GADGET is not set 1229# CONFIG_UWB is not set
1130# CONFIG_MMC is not set 1230# CONFIG_MMC is not set
1231# CONFIG_MEMSTICK is not set
1131# CONFIG_NEW_LEDS is not set 1232# CONFIG_NEW_LEDS is not set
1233# CONFIG_ACCESSIBILITY is not set
1132# CONFIG_INFINIBAND is not set 1234# CONFIG_INFINIBAND is not set
1133# CONFIG_RTC_CLASS is not set 1235CONFIG_RTC_LIB=y
1236CONFIG_RTC_CLASS=y
1237CONFIG_RTC_HCTOSYS=y
1238CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
1239# CONFIG_RTC_DEBUG is not set
1134 1240
1135# 1241#
1136# DMA Engine support 1242# RTC interfaces
1137# 1243#
1138# CONFIG_DMA_ENGINE is not set 1244CONFIG_RTC_INTF_SYSFS=y
1245CONFIG_RTC_INTF_PROC=y
1246CONFIG_RTC_INTF_DEV=y
1247# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
1248# CONFIG_RTC_DRV_TEST is not set
1139 1249
1140# 1250#
1141# DMA Clients 1251# SPI RTC drivers
1142# 1252#
1143 1253
1144# 1254#
1145# DMA Devices 1255# Platform RTC drivers
1146# 1256#
1147# CONFIG_AUXDISPLAY is not set 1257# CONFIG_RTC_DRV_DS1286 is not set
1258# CONFIG_RTC_DRV_DS1511 is not set
1259# CONFIG_RTC_DRV_DS1553 is not set
1260# CONFIG_RTC_DRV_DS1742 is not set
1261# CONFIG_RTC_DRV_STK17TA8 is not set
1262# CONFIG_RTC_DRV_M48T86 is not set
1263# CONFIG_RTC_DRV_M48T35 is not set
1264# CONFIG_RTC_DRV_M48T59 is not set
1265# CONFIG_RTC_DRV_BQ4802 is not set
1266# CONFIG_RTC_DRV_V3020 is not set
1148 1267
1149# 1268#
1150# Userspace I/O 1269# on-CPU RTC drivers
1151# 1270#
1271CONFIG_RTC_DRV_PARISC=y
1272# CONFIG_DMADEVICES is not set
1273# CONFIG_AUXDISPLAY is not set
1152# CONFIG_UIO is not set 1274# CONFIG_UIO is not set
1275# CONFIG_STAGING is not set
1153 1276
1154# 1277#
1155# File systems 1278# File systems
@@ -1159,21 +1282,20 @@ CONFIG_EXT2_FS=y
1159# CONFIG_EXT2_FS_XIP is not set 1282# CONFIG_EXT2_FS_XIP is not set
1160CONFIG_EXT3_FS=y 1283CONFIG_EXT3_FS=y
1161# CONFIG_EXT3_FS_XATTR is not set 1284# CONFIG_EXT3_FS_XATTR is not set
1162# CONFIG_EXT4DEV_FS is not set 1285# CONFIG_EXT4_FS is not set
1163CONFIG_JBD=y 1286CONFIG_JBD=y
1164# CONFIG_JBD_DEBUG is not set 1287# CONFIG_JBD_DEBUG is not set
1165# CONFIG_REISERFS_FS is not set 1288# CONFIG_REISERFS_FS is not set
1166# CONFIG_JFS_FS is not set 1289# CONFIG_JFS_FS is not set
1167CONFIG_FS_POSIX_ACL=y 1290CONFIG_FS_POSIX_ACL=y
1291CONFIG_FILE_LOCKING=y
1168# CONFIG_XFS_FS is not set 1292# CONFIG_XFS_FS is not set
1169# CONFIG_GFS2_FS is not set
1170# CONFIG_OCFS2_FS is not set 1293# CONFIG_OCFS2_FS is not set
1171# CONFIG_MINIX_FS is not set 1294# CONFIG_BTRFS_FS is not set
1172# CONFIG_ROMFS_FS is not set 1295CONFIG_DNOTIFY=y
1173CONFIG_INOTIFY=y 1296CONFIG_INOTIFY=y
1174CONFIG_INOTIFY_USER=y 1297CONFIG_INOTIFY_USER=y
1175# CONFIG_QUOTA is not set 1298# CONFIG_QUOTA is not set
1176CONFIG_DNOTIFY=y
1177CONFIG_AUTOFS_FS=y 1299CONFIG_AUTOFS_FS=y
1178# CONFIG_AUTOFS4_FS is not set 1300# CONFIG_AUTOFS4_FS is not set
1179# CONFIG_FUSE_FS is not set 1301# CONFIG_FUSE_FS is not set
@@ -1202,16 +1324,13 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1202CONFIG_PROC_FS=y 1324CONFIG_PROC_FS=y
1203CONFIG_PROC_KCORE=y 1325CONFIG_PROC_KCORE=y
1204CONFIG_PROC_SYSCTL=y 1326CONFIG_PROC_SYSCTL=y
1327CONFIG_PROC_PAGE_MONITOR=y
1205CONFIG_SYSFS=y 1328CONFIG_SYSFS=y
1206CONFIG_TMPFS=y 1329CONFIG_TMPFS=y
1207# CONFIG_TMPFS_POSIX_ACL is not set 1330# CONFIG_TMPFS_POSIX_ACL is not set
1208# CONFIG_HUGETLB_PAGE is not set 1331# CONFIG_HUGETLB_PAGE is not set
1209CONFIG_RAMFS=y
1210# CONFIG_CONFIGFS_FS is not set 1332# CONFIG_CONFIGFS_FS is not set
1211 1333CONFIG_MISC_FILESYSTEMS=y
1212#
1213# Miscellaneous filesystems
1214#
1215# CONFIG_ADFS_FS is not set 1334# CONFIG_ADFS_FS is not set
1216# CONFIG_AFFS_FS is not set 1335# CONFIG_AFFS_FS is not set
1217# CONFIG_ECRYPT_FS is not set 1336# CONFIG_ECRYPT_FS is not set
@@ -1221,33 +1340,32 @@ CONFIG_RAMFS=y
1221# CONFIG_BFS_FS is not set 1340# CONFIG_BFS_FS is not set
1222# CONFIG_EFS_FS is not set 1341# CONFIG_EFS_FS is not set
1223# CONFIG_CRAMFS is not set 1342# CONFIG_CRAMFS is not set
1343# CONFIG_SQUASHFS is not set
1224# CONFIG_VXFS_FS is not set 1344# CONFIG_VXFS_FS is not set
1345# CONFIG_MINIX_FS is not set
1346# CONFIG_OMFS_FS is not set
1225# CONFIG_HPFS_FS is not set 1347# CONFIG_HPFS_FS is not set
1226# CONFIG_QNX4FS_FS is not set 1348# CONFIG_QNX4FS_FS is not set
1349# CONFIG_ROMFS_FS is not set
1227# CONFIG_SYSV_FS is not set 1350# CONFIG_SYSV_FS is not set
1228# CONFIG_UFS_FS is not set 1351# CONFIG_UFS_FS is not set
1229 1352CONFIG_NETWORK_FILESYSTEMS=y
1230#
1231# Network File Systems
1232#
1233CONFIG_NFS_FS=y 1353CONFIG_NFS_FS=y
1234CONFIG_NFS_V3=y 1354CONFIG_NFS_V3=y
1235# CONFIG_NFS_V3_ACL is not set 1355# CONFIG_NFS_V3_ACL is not set
1236# CONFIG_NFS_V4 is not set 1356# CONFIG_NFS_V4 is not set
1237# CONFIG_NFS_DIRECTIO is not set 1357CONFIG_ROOT_NFS=y
1238CONFIG_NFSD=y 1358CONFIG_NFSD=y
1239CONFIG_NFSD_V3=y 1359CONFIG_NFSD_V3=y
1240# CONFIG_NFSD_V3_ACL is not set 1360# CONFIG_NFSD_V3_ACL is not set
1241CONFIG_NFSD_V4=y 1361CONFIG_NFSD_V4=y
1242CONFIG_NFSD_TCP=y
1243CONFIG_ROOT_NFS=y
1244CONFIG_LOCKD=y 1362CONFIG_LOCKD=y
1245CONFIG_LOCKD_V4=y 1363CONFIG_LOCKD_V4=y
1246CONFIG_EXPORTFS=y 1364CONFIG_EXPORTFS=y
1247CONFIG_NFS_COMMON=y 1365CONFIG_NFS_COMMON=y
1248CONFIG_SUNRPC=y 1366CONFIG_SUNRPC=y
1249CONFIG_SUNRPC_GSS=y 1367CONFIG_SUNRPC_GSS=y
1250# CONFIG_SUNRPC_BIND34 is not set 1368# CONFIG_SUNRPC_REGISTER_V4 is not set
1251CONFIG_RPCSEC_GSS_KRB5=y 1369CONFIG_RPCSEC_GSS_KRB5=y
1252CONFIG_RPCSEC_GSS_SPKM3=m 1370CONFIG_RPCSEC_GSS_SPKM3=m
1253CONFIG_SMB_FS=m 1371CONFIG_SMB_FS=m
@@ -1256,6 +1374,7 @@ CONFIG_SMB_NLS_REMOTE="cp437"
1256CONFIG_CIFS=m 1374CONFIG_CIFS=m
1257# CONFIG_CIFS_STATS is not set 1375# CONFIG_CIFS_STATS is not set
1258# CONFIG_CIFS_WEAK_PW_HASH is not set 1376# CONFIG_CIFS_WEAK_PW_HASH is not set
1377# CONFIG_CIFS_UPCALL is not set
1259# CONFIG_CIFS_XATTR is not set 1378# CONFIG_CIFS_XATTR is not set
1260# CONFIG_CIFS_DEBUG2 is not set 1379# CONFIG_CIFS_DEBUG2 is not set
1261# CONFIG_CIFS_EXPERIMENTAL is not set 1380# CONFIG_CIFS_EXPERIMENTAL is not set
@@ -1268,10 +1387,6 @@ CONFIG_CIFS=m
1268# 1387#
1269# CONFIG_PARTITION_ADVANCED is not set 1388# CONFIG_PARTITION_ADVANCED is not set
1270CONFIG_MSDOS_PARTITION=y 1389CONFIG_MSDOS_PARTITION=y
1271
1272#
1273# Native Language Support
1274#
1275CONFIG_NLS=y 1390CONFIG_NLS=y
1276CONFIG_NLS_DEFAULT="iso8859-1" 1391CONFIG_NLS_DEFAULT="iso8859-1"
1277CONFIG_NLS_CODEPAGE_437=y 1392CONFIG_NLS_CODEPAGE_437=y
@@ -1312,33 +1427,28 @@ CONFIG_NLS_ISO8859_15=m
1312CONFIG_NLS_KOI8_R=m 1427CONFIG_NLS_KOI8_R=m
1313CONFIG_NLS_KOI8_U=m 1428CONFIG_NLS_KOI8_U=m
1314CONFIG_NLS_UTF8=y 1429CONFIG_NLS_UTF8=y
1315
1316#
1317# Distributed Lock Manager
1318#
1319# CONFIG_DLM is not set 1430# CONFIG_DLM is not set
1320 1431
1321# 1432#
1322# Profiling support
1323#
1324CONFIG_PROFILING=y
1325CONFIG_OPROFILE=m
1326
1327#
1328# Kernel hacking 1433# Kernel hacking
1329# 1434#
1330# CONFIG_PRINTK_TIME is not set 1435# CONFIG_PRINTK_TIME is not set
1436CONFIG_ENABLE_WARN_DEPRECATED=y
1331CONFIG_ENABLE_MUST_CHECK=y 1437CONFIG_ENABLE_MUST_CHECK=y
1438CONFIG_FRAME_WARN=1024
1332CONFIG_MAGIC_SYSRQ=y 1439CONFIG_MAGIC_SYSRQ=y
1333# CONFIG_UNUSED_SYMBOLS is not set 1440# CONFIG_UNUSED_SYMBOLS is not set
1334# CONFIG_DEBUG_FS is not set 1441CONFIG_DEBUG_FS=y
1335CONFIG_HEADERS_CHECK=y 1442CONFIG_HEADERS_CHECK=y
1336CONFIG_DEBUG_KERNEL=y 1443CONFIG_DEBUG_KERNEL=y
1337# CONFIG_DEBUG_SHIRQ is not set 1444# CONFIG_DEBUG_SHIRQ is not set
1338CONFIG_DETECT_SOFTLOCKUP=y 1445CONFIG_DETECT_SOFTLOCKUP=y
1446# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1447CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1339CONFIG_SCHED_DEBUG=y 1448CONFIG_SCHED_DEBUG=y
1340# CONFIG_SCHEDSTATS is not set 1449# CONFIG_SCHEDSTATS is not set
1341# CONFIG_TIMER_STATS is not set 1450# CONFIG_TIMER_STATS is not set
1451# CONFIG_DEBUG_OBJECTS is not set
1342# CONFIG_DEBUG_SLAB is not set 1452# CONFIG_DEBUG_SLAB is not set
1343# CONFIG_DEBUG_RT_MUTEXES is not set 1453# CONFIG_DEBUG_RT_MUTEXES is not set
1344# CONFIG_RT_MUTEX_TESTER is not set 1454# CONFIG_RT_MUTEX_TESTER is not set
@@ -1350,10 +1460,33 @@ CONFIG_DEBUG_MUTEXES=y
1350CONFIG_DEBUG_BUGVERBOSE=y 1460CONFIG_DEBUG_BUGVERBOSE=y
1351# CONFIG_DEBUG_INFO is not set 1461# CONFIG_DEBUG_INFO is not set
1352# CONFIG_DEBUG_VM is not set 1462# CONFIG_DEBUG_VM is not set
1463# CONFIG_DEBUG_WRITECOUNT is not set
1464CONFIG_DEBUG_MEMORY_INIT=y
1353# CONFIG_DEBUG_LIST is not set 1465# CONFIG_DEBUG_LIST is not set
1354CONFIG_FORCED_INLINING=y 1466# CONFIG_DEBUG_SG is not set
1467# CONFIG_DEBUG_NOTIFIERS is not set
1468# CONFIG_BOOT_PRINTK_DELAY is not set
1355# CONFIG_RCU_TORTURE_TEST is not set 1469# CONFIG_RCU_TORTURE_TEST is not set
1470# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1471# CONFIG_BACKTRACE_SELF_TEST is not set
1472# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1356# CONFIG_FAULT_INJECTION is not set 1473# CONFIG_FAULT_INJECTION is not set
1474# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1475CONFIG_NOP_TRACER=y
1476CONFIG_RING_BUFFER=y
1477CONFIG_TRACING=y
1478
1479#
1480# Tracers
1481#
1482# CONFIG_SCHED_TRACER is not set
1483# CONFIG_CONTEXT_SWITCH_TRACER is not set
1484# CONFIG_BOOT_TRACER is not set
1485# CONFIG_TRACE_BRANCH_PROFILING is not set
1486# CONFIG_FTRACE_STARTUP_TEST is not set
1487# CONFIG_BUILD_DOCSRC is not set
1488# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1489# CONFIG_SAMPLES is not set
1357# CONFIG_DEBUG_RODATA is not set 1490# CONFIG_DEBUG_RODATA is not set
1358 1491
1359# 1492#
@@ -1362,56 +1495,112 @@ CONFIG_FORCED_INLINING=y
1362CONFIG_KEYS=y 1495CONFIG_KEYS=y
1363CONFIG_KEYS_DEBUG_PROC_KEYS=y 1496CONFIG_KEYS_DEBUG_PROC_KEYS=y
1364# CONFIG_SECURITY is not set 1497# CONFIG_SECURITY is not set
1498# CONFIG_SECURITYFS is not set
1499# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1365CONFIG_CRYPTO=y 1500CONFIG_CRYPTO=y
1501
1502#
1503# Crypto core or helper
1504#
1505# CONFIG_CRYPTO_FIPS is not set
1366CONFIG_CRYPTO_ALGAPI=y 1506CONFIG_CRYPTO_ALGAPI=y
1507CONFIG_CRYPTO_ALGAPI2=y
1508CONFIG_CRYPTO_AEAD=y
1509CONFIG_CRYPTO_AEAD2=y
1367CONFIG_CRYPTO_BLKCIPHER=y 1510CONFIG_CRYPTO_BLKCIPHER=y
1511CONFIG_CRYPTO_BLKCIPHER2=y
1368CONFIG_CRYPTO_HASH=y 1512CONFIG_CRYPTO_HASH=y
1513CONFIG_CRYPTO_HASH2=y
1514CONFIG_CRYPTO_RNG2=y
1369CONFIG_CRYPTO_MANAGER=y 1515CONFIG_CRYPTO_MANAGER=y
1516CONFIG_CRYPTO_MANAGER2=y
1517# CONFIG_CRYPTO_GF128MUL is not set
1518CONFIG_CRYPTO_NULL=m
1519# CONFIG_CRYPTO_CRYPTD is not set
1520CONFIG_CRYPTO_AUTHENC=y
1521CONFIG_CRYPTO_TEST=m
1522
1523#
1524# Authenticated Encryption with Associated Data
1525#
1526# CONFIG_CRYPTO_CCM is not set
1527# CONFIG_CRYPTO_GCM is not set
1528# CONFIG_CRYPTO_SEQIV is not set
1529
1530#
1531# Block modes
1532#
1533CONFIG_CRYPTO_CBC=y
1534# CONFIG_CRYPTO_CTR is not set
1535# CONFIG_CRYPTO_CTS is not set
1536# CONFIG_CRYPTO_ECB is not set
1537# CONFIG_CRYPTO_LRW is not set
1538# CONFIG_CRYPTO_PCBC is not set
1539# CONFIG_CRYPTO_XTS is not set
1540
1541#
1542# Hash modes
1543#
1370CONFIG_CRYPTO_HMAC=y 1544CONFIG_CRYPTO_HMAC=y
1371# CONFIG_CRYPTO_XCBC is not set 1545# CONFIG_CRYPTO_XCBC is not set
1372CONFIG_CRYPTO_NULL=m 1546
1547#
1548# Digest
1549#
1550CONFIG_CRYPTO_CRC32C=m
1373CONFIG_CRYPTO_MD4=m 1551CONFIG_CRYPTO_MD4=m
1374CONFIG_CRYPTO_MD5=y 1552CONFIG_CRYPTO_MD5=y
1553CONFIG_CRYPTO_MICHAEL_MIC=m
1554# CONFIG_CRYPTO_RMD128 is not set
1555# CONFIG_CRYPTO_RMD160 is not set
1556# CONFIG_CRYPTO_RMD256 is not set
1557# CONFIG_CRYPTO_RMD320 is not set
1375CONFIG_CRYPTO_SHA1=y 1558CONFIG_CRYPTO_SHA1=y
1376CONFIG_CRYPTO_SHA256=m 1559CONFIG_CRYPTO_SHA256=m
1377CONFIG_CRYPTO_SHA512=m 1560CONFIG_CRYPTO_SHA512=m
1378CONFIG_CRYPTO_WP512=m
1379CONFIG_CRYPTO_TGR192=m 1561CONFIG_CRYPTO_TGR192=m
1380# CONFIG_CRYPTO_GF128MUL is not set 1562CONFIG_CRYPTO_WP512=m
1381# CONFIG_CRYPTO_ECB is not set 1563
1382CONFIG_CRYPTO_CBC=y 1564#
1383# CONFIG_CRYPTO_PCBC is not set 1565# Ciphers
1384# CONFIG_CRYPTO_LRW is not set 1566#
1385# CONFIG_CRYPTO_XTS is not set
1386# CONFIG_CRYPTO_CRYPTD is not set
1387CONFIG_CRYPTO_DES=y
1388# CONFIG_CRYPTO_FCRYPT is not set
1389CONFIG_CRYPTO_BLOWFISH=m
1390CONFIG_CRYPTO_TWOFISH=m
1391CONFIG_CRYPTO_TWOFISH_COMMON=m
1392CONFIG_CRYPTO_SERPENT=m
1393CONFIG_CRYPTO_AES=m 1567CONFIG_CRYPTO_AES=m
1568CONFIG_CRYPTO_ANUBIS=m
1569CONFIG_CRYPTO_ARC4=m
1570CONFIG_CRYPTO_BLOWFISH=m
1571# CONFIG_CRYPTO_CAMELLIA is not set
1394CONFIG_CRYPTO_CAST5=m 1572CONFIG_CRYPTO_CAST5=m
1395CONFIG_CRYPTO_CAST6=m 1573CONFIG_CRYPTO_CAST6=m
1396CONFIG_CRYPTO_TEA=m 1574CONFIG_CRYPTO_DES=y
1397CONFIG_CRYPTO_ARC4=m 1575# CONFIG_CRYPTO_FCRYPT is not set
1398CONFIG_CRYPTO_KHAZAD=m 1576CONFIG_CRYPTO_KHAZAD=m
1399CONFIG_CRYPTO_ANUBIS=m 1577# CONFIG_CRYPTO_SALSA20 is not set
1400# CONFIG_CRYPTO_SEED is not set 1578# CONFIG_CRYPTO_SEED is not set
1579CONFIG_CRYPTO_SERPENT=m
1580CONFIG_CRYPTO_TEA=m
1581CONFIG_CRYPTO_TWOFISH=m
1582CONFIG_CRYPTO_TWOFISH_COMMON=m
1583
1584#
1585# Compression
1586#
1401CONFIG_CRYPTO_DEFLATE=y 1587CONFIG_CRYPTO_DEFLATE=y
1402CONFIG_CRYPTO_MICHAEL_MIC=m 1588# CONFIG_CRYPTO_LZO is not set
1403CONFIG_CRYPTO_CRC32C=m 1589
1404# CONFIG_CRYPTO_CAMELLIA is not set 1590#
1405CONFIG_CRYPTO_TEST=m 1591# Random Number Generation
1406# CONFIG_CRYPTO_AUTHENC is not set 1592#
1593# CONFIG_CRYPTO_ANSI_CPRNG is not set
1407# CONFIG_CRYPTO_HW is not set 1594# CONFIG_CRYPTO_HW is not set
1408 1595
1409# 1596#
1410# Library routines 1597# Library routines
1411# 1598#
1412CONFIG_BITREVERSE=y 1599CONFIG_BITREVERSE=y
1600CONFIG_GENERIC_FIND_LAST_BIT=y
1413CONFIG_CRC_CCITT=m 1601CONFIG_CRC_CCITT=m
1414# CONFIG_CRC16 is not set 1602# CONFIG_CRC16 is not set
1603# CONFIG_CRC_T10DIF is not set
1415# CONFIG_CRC_ITU_T is not set 1604# CONFIG_CRC_ITU_T is not set
1416CONFIG_CRC32=y 1605CONFIG_CRC32=y
1417# CONFIG_CRC7 is not set 1606# CONFIG_CRC7 is not set
diff --git a/arch/parisc/hpux/fs.c b/arch/parisc/hpux/fs.c
index bd9a4db3bd4c..5cbe9f9e5d9e 100644
--- a/arch/parisc/hpux/fs.c
+++ b/arch/parisc/hpux/fs.c
@@ -137,7 +137,6 @@ int hpux_getdents(unsigned int fd, struct hpux_dirent __user *dirent, unsigned i
137 error = count - buf.count; 137 error = count - buf.count;
138 } 138 }
139 139
140out_putf:
141 fput(file); 140 fput(file);
142out: 141out:
143 return error; 142 return error;
diff --git a/arch/parisc/include/asm/assembly.h b/arch/parisc/include/asm/assembly.h
index ffb208840ecc..89fb40005e3f 100644
--- a/arch/parisc/include/asm/assembly.h
+++ b/arch/parisc/include/asm/assembly.h
@@ -79,6 +79,7 @@
79 79
80#include <asm/asm-offsets.h> 80#include <asm/asm-offsets.h>
81#include <asm/page.h> 81#include <asm/page.h>
82#include <asm/types.h>
82 83
83#include <asm/asmregs.h> 84#include <asm/asmregs.h>
84 85
@@ -129,27 +130,27 @@
129 130
130 /* Shift Left - note the r and t can NOT be the same! */ 131 /* Shift Left - note the r and t can NOT be the same! */
131 .macro shl r, sa, t 132 .macro shl r, sa, t
132 dep,z \r, 31-\sa, 32-\sa, \t 133 dep,z \r, 31-(\sa), 32-(\sa), \t
133 .endm 134 .endm
134 135
135 /* The PA 2.0 shift left */ 136 /* The PA 2.0 shift left */
136 .macro shlw r, sa, t 137 .macro shlw r, sa, t
137 depw,z \r, 31-\sa, 32-\sa, \t 138 depw,z \r, 31-(\sa), 32-(\sa), \t
138 .endm 139 .endm
139 140
140 /* And the PA 2.0W shift left */ 141 /* And the PA 2.0W shift left */
141 .macro shld r, sa, t 142 .macro shld r, sa, t
142 depd,z \r, 63-\sa, 64-\sa, \t 143 depd,z \r, 63-(\sa), 64-(\sa), \t
143 .endm 144 .endm
144 145
145 /* Shift Right - note the r and t can NOT be the same! */ 146 /* Shift Right - note the r and t can NOT be the same! */
146 .macro shr r, sa, t 147 .macro shr r, sa, t
147 extru \r, 31-\sa, 32-\sa, \t 148 extru \r, 31-(\sa), 32-(\sa), \t
148 .endm 149 .endm
149 150
150 /* pa20w version of shift right */ 151 /* pa20w version of shift right */
151 .macro shrd r, sa, t 152 .macro shrd r, sa, t
152 extrd,u \r, 63-\sa, 64-\sa, \t 153 extrd,u \r, 63-(\sa), 64-(\sa), \t
153 .endm 154 .endm
154 155
155 /* load 32-bit 'value' into 'reg' compensating for the ldil 156 /* load 32-bit 'value' into 'reg' compensating for the ldil
diff --git a/arch/parisc/include/asm/io.h b/arch/parisc/include/asm/io.h
index d3031d1f9d03..1f6d2ae7aba5 100644
--- a/arch/parisc/include/asm/io.h
+++ b/arch/parisc/include/asm/io.h
@@ -174,15 +174,48 @@ static inline void __raw_writeq(unsigned long long b, volatile void __iomem *add
174 *(volatile unsigned long long __force *) addr = b; 174 *(volatile unsigned long long __force *) addr = b;
175} 175}
176 176
177/* readb can never be const, so use __fswab instead of le*_to_cpu */ 177static inline unsigned char readb(const volatile void __iomem *addr)
178#define readb(addr) __raw_readb(addr) 178{
179#define readw(addr) le16_to_cpu(__raw_readw(addr)) 179 return __raw_readb(addr);
180#define readl(addr) le32_to_cpu(__raw_readl(addr)) 180}
181#define readq(addr) le64_to_cpu(__raw_readq(addr)) 181static inline unsigned short readw(const volatile void __iomem *addr)
182#define writeb(b, addr) __raw_writeb(b, addr) 182{
183#define writew(b, addr) __raw_writew(cpu_to_le16(b), addr) 183 return le16_to_cpu(__raw_readw(addr));
184#define writel(b, addr) __raw_writel(cpu_to_le32(b), addr) 184}
185#define writeq(b, addr) __raw_writeq(cpu_to_le64(b), addr) 185static inline unsigned int readl(const volatile void __iomem *addr)
186{
187 return le32_to_cpu(__raw_readl(addr));
188}
189static inline unsigned long long readq(const volatile void __iomem *addr)
190{
191 return le64_to_cpu(__raw_readq(addr));
192}
193
194static inline void writeb(unsigned char b, volatile void __iomem *addr)
195{
196 __raw_writeb(b, addr);
197}
198static inline void writew(unsigned short w, volatile void __iomem *addr)
199{
200 __raw_writew(cpu_to_le16(w), addr);
201}
202static inline void writel(unsigned int l, volatile void __iomem *addr)
203{
204 __raw_writel(cpu_to_le32(l), addr);
205}
206static inline void writeq(unsigned long long q, volatile void __iomem *addr)
207{
208 __raw_writeq(cpu_to_le64(q), addr);
209}
210
211#define readb readb
212#define readw readw
213#define readl readl
214#define readq readq
215#define writeb writeb
216#define writew writew
217#define writel writel
218#define writeq writeq
186 219
187#define readb_relaxed(addr) readb(addr) 220#define readb_relaxed(addr) readb(addr)
188#define readw_relaxed(addr) readw(addr) 221#define readw_relaxed(addr) readw(addr)
diff --git a/arch/parisc/include/asm/irq.h b/arch/parisc/include/asm/irq.h
index 399c81981ed5..dfa26b67f919 100644
--- a/arch/parisc/include/asm/irq.h
+++ b/arch/parisc/include/asm/irq.h
@@ -49,7 +49,7 @@ extern unsigned long txn_alloc_addr(unsigned int);
49extern unsigned long txn_affinity_addr(unsigned int irq, int cpu); 49extern unsigned long txn_affinity_addr(unsigned int irq, int cpu);
50 50
51extern int cpu_claim_irq(unsigned int irq, struct irq_chip *, void *); 51extern int cpu_claim_irq(unsigned int irq, struct irq_chip *, void *);
52extern int cpu_check_affinity(unsigned int irq, cpumask_t *dest); 52extern int cpu_check_affinity(unsigned int irq, const struct cpumask *dest);
53 53
54/* soft power switch support (power.c) */ 54/* soft power switch support (power.c) */
55extern struct tasklet_struct power_tasklet; 55extern struct tasklet_struct power_tasklet;
diff --git a/arch/parisc/include/asm/uaccess.h b/arch/parisc/include/asm/uaccess.h
index 1c6dbb6f6e56..cd4c0b2a8e70 100644
--- a/arch/parisc/include/asm/uaccess.h
+++ b/arch/parisc/include/asm/uaccess.h
@@ -241,6 +241,7 @@ unsigned long copy_in_user(void __user *dst, const void __user *src, unsigned lo
241#define __copy_to_user_inatomic __copy_to_user 241#define __copy_to_user_inatomic __copy_to_user
242#define __copy_from_user_inatomic __copy_from_user 242#define __copy_from_user_inatomic __copy_from_user
243 243
244struct pt_regs;
244int fixup_exception(struct pt_regs *regs); 245int fixup_exception(struct pt_regs *regs);
245 246
246#endif /* __PARISC_UACCESS_H */ 247#endif /* __PARISC_UACCESS_H */
diff --git a/arch/parisc/kernel/cache.c b/arch/parisc/kernel/cache.c
index 5259d8c20676..837530ea32e7 100644
--- a/arch/parisc/kernel/cache.c
+++ b/arch/parisc/kernel/cache.c
@@ -551,10 +551,7 @@ void flush_cache_range(struct vm_area_struct *vma,
551{ 551{
552 int sr3; 552 int sr3;
553 553
554 if (!vma->vm_mm->context) { 554 BUG_ON(!vma->vm_mm->context);
555 BUG();
556 return;
557 }
558 555
559 sr3 = mfsp(3); 556 sr3 = mfsp(3);
560 if (vma->vm_mm->context == sr3) { 557 if (vma->vm_mm->context == sr3) {
diff --git a/arch/parisc/kernel/entry.S b/arch/parisc/kernel/entry.S
index d1fa4edd2d80..0db9fdcb7709 100644
--- a/arch/parisc/kernel/entry.S
+++ b/arch/parisc/kernel/entry.S
@@ -368,7 +368,7 @@
368 * abstractions for the macros */ 368 * abstractions for the macros */
369 .macro EXTR reg1,start,length,reg2 369 .macro EXTR reg1,start,length,reg2
370#ifdef CONFIG_64BIT 370#ifdef CONFIG_64BIT
371 extrd,u \reg1,32+\start,\length,\reg2 371 extrd,u \reg1,32+(\start),\length,\reg2
372#else 372#else
373 extrw,u \reg1,\start,\length,\reg2 373 extrw,u \reg1,\start,\length,\reg2
374#endif 374#endif
@@ -376,7 +376,7 @@
376 376
377 .macro DEP reg1,start,length,reg2 377 .macro DEP reg1,start,length,reg2
378#ifdef CONFIG_64BIT 378#ifdef CONFIG_64BIT
379 depd \reg1,32+\start,\length,\reg2 379 depd \reg1,32+(\start),\length,\reg2
380#else 380#else
381 depw \reg1,\start,\length,\reg2 381 depw \reg1,\start,\length,\reg2
382#endif 382#endif
@@ -384,7 +384,7 @@
384 384
385 .macro DEPI val,start,length,reg 385 .macro DEPI val,start,length,reg
386#ifdef CONFIG_64BIT 386#ifdef CONFIG_64BIT
387 depdi \val,32+\start,\length,\reg 387 depdi \val,32+(\start),\length,\reg
388#else 388#else
389 depwi \val,\start,\length,\reg 389 depwi \val,\start,\length,\reg
390#endif 390#endif
diff --git a/arch/parisc/kernel/firmware.c b/arch/parisc/kernel/firmware.c
index 03f26bd75bd8..f6d241238a78 100644
--- a/arch/parisc/kernel/firmware.c
+++ b/arch/parisc/kernel/firmware.c
@@ -151,7 +151,7 @@ static void convert_to_wide(unsigned long *addr)
151} 151}
152 152
153#ifdef CONFIG_64BIT 153#ifdef CONFIG_64BIT
154void __init set_firmware_width_unlocked(void) 154void __cpuinit set_firmware_width_unlocked(void)
155{ 155{
156 int ret; 156 int ret;
157 157
@@ -168,7 +168,7 @@ void __init set_firmware_width_unlocked(void)
168 * This function must be called before any pdc_* function that uses the 168 * This function must be called before any pdc_* function that uses the
169 * convert_to_wide function. 169 * convert_to_wide function.
170 */ 170 */
171void __init set_firmware_width(void) 171void __cpuinit set_firmware_width(void)
172{ 172{
173 unsigned long flags; 173 unsigned long flags;
174 spin_lock_irqsave(&pdc_lock, flags); 174 spin_lock_irqsave(&pdc_lock, flags);
@@ -176,11 +176,11 @@ void __init set_firmware_width(void)
176 spin_unlock_irqrestore(&pdc_lock, flags); 176 spin_unlock_irqrestore(&pdc_lock, flags);
177} 177}
178#else 178#else
179void __init set_firmware_width_unlocked(void) { 179void __cpuinit set_firmware_width_unlocked(void) {
180 return; 180 return;
181} 181}
182 182
183void __init set_firmware_width(void) { 183void __cpuinit set_firmware_width(void) {
184 return; 184 return;
185} 185}
186#endif /*CONFIG_64BIT*/ 186#endif /*CONFIG_64BIT*/
@@ -302,7 +302,7 @@ int pdc_chassis_warn(unsigned long *warn)
302 return retval; 302 return retval;
303} 303}
304 304
305int __init pdc_coproc_cfg_unlocked(struct pdc_coproc_cfg *pdc_coproc_info) 305int __cpuinit pdc_coproc_cfg_unlocked(struct pdc_coproc_cfg *pdc_coproc_info)
306{ 306{
307 int ret; 307 int ret;
308 308
@@ -323,7 +323,7 @@ int __init pdc_coproc_cfg_unlocked(struct pdc_coproc_cfg *pdc_coproc_info)
323 * This PDC call returns the presence and status of all the coprocessors 323 * This PDC call returns the presence and status of all the coprocessors
324 * attached to the processor. 324 * attached to the processor.
325 */ 325 */
326int __init pdc_coproc_cfg(struct pdc_coproc_cfg *pdc_coproc_info) 326int __cpuinit pdc_coproc_cfg(struct pdc_coproc_cfg *pdc_coproc_info)
327{ 327{
328 int ret; 328 int ret;
329 unsigned long flags; 329 unsigned long flags;
diff --git a/arch/parisc/kernel/irq.c b/arch/parisc/kernel/irq.c
index 49482806863f..2b5f5915dd1d 100644
--- a/arch/parisc/kernel/irq.c
+++ b/arch/parisc/kernel/irq.c
@@ -112,7 +112,7 @@ void cpu_end_irq(unsigned int irq)
112} 112}
113 113
114#ifdef CONFIG_SMP 114#ifdef CONFIG_SMP
115int cpu_check_affinity(unsigned int irq, cpumask_t *dest) 115int cpu_check_affinity(unsigned int irq, const struct cpumask *dest)
116{ 116{
117 int cpu_dest; 117 int cpu_dest;
118 118
@@ -120,23 +120,25 @@ int cpu_check_affinity(unsigned int irq, cpumask_t *dest)
120 if (CHECK_IRQ_PER_CPU(irq)) { 120 if (CHECK_IRQ_PER_CPU(irq)) {
121 /* Bad linux design decision. The mask has already 121 /* Bad linux design decision. The mask has already
122 * been set; we must reset it */ 122 * been set; we must reset it */
123 cpumask_setall(irq_desc[irq].affinity); 123 cpumask_setall(&irq_desc[irq].affinity);
124 return -EINVAL; 124 return -EINVAL;
125 } 125 }
126 126
127 /* whatever mask they set, we just allow one CPU */ 127 /* whatever mask they set, we just allow one CPU */
128 cpu_dest = first_cpu(*dest); 128 cpu_dest = first_cpu(*dest);
129 *dest = cpumask_of_cpu(cpu_dest);
130 129
131 return 0; 130 return cpu_dest;
132} 131}
133 132
134static void cpu_set_affinity_irq(unsigned int irq, const struct cpumask *dest) 133static void cpu_set_affinity_irq(unsigned int irq, const struct cpumask *dest)
135{ 134{
136 if (cpu_check_affinity(irq, dest)) 135 int cpu_dest;
136
137 cpu_dest = cpu_check_affinity(irq, dest);
138 if (cpu_dest < 0)
137 return; 139 return;
138 140
139 cpumask_copy(irq_desc[irq].affinity, dest); 141 cpumask_copy(&irq_desc[irq].affinity, dest);
140} 142}
141#endif 143#endif
142 144
@@ -295,7 +297,7 @@ int txn_alloc_irq(unsigned int bits_wide)
295unsigned long txn_affinity_addr(unsigned int irq, int cpu) 297unsigned long txn_affinity_addr(unsigned int irq, int cpu)
296{ 298{
297#ifdef CONFIG_SMP 299#ifdef CONFIG_SMP
298 cpumask_copy(irq_desc[irq].affinity, cpumask_of(cpu)); 300 cpumask_copy(&irq_desc[irq].affinity, cpumask_of(cpu));
299#endif 301#endif
300 302
301 return per_cpu(cpu_data, cpu).txn_addr; 303 return per_cpu(cpu_data, cpu).txn_addr;
@@ -352,7 +354,7 @@ void do_cpu_irq_mask(struct pt_regs *regs)
352 irq = eirr_to_irq(eirr_val); 354 irq = eirr_to_irq(eirr_val);
353 355
354#ifdef CONFIG_SMP 356#ifdef CONFIG_SMP
355 cpumask_copy(&dest, irq_desc[irq].affinity); 357 cpumask_copy(&dest, &irq_desc[irq].affinity);
356 if (CHECK_IRQ_PER_CPU(irq_desc[irq].status) && 358 if (CHECK_IRQ_PER_CPU(irq_desc[irq].status) &&
357 !cpu_isset(smp_processor_id(), dest)) { 359 !cpu_isset(smp_processor_id(), dest)) {
358 int cpu = first_cpu(dest); 360 int cpu = first_cpu(dest);
diff --git a/arch/parisc/kernel/pci-dma.c b/arch/parisc/kernel/pci-dma.c
index df47895db828..7d927eac932b 100644
--- a/arch/parisc/kernel/pci-dma.c
+++ b/arch/parisc/kernel/pci-dma.c
@@ -447,10 +447,7 @@ static void pa11_dma_free_consistent (struct device *dev, size_t size, void *vad
447 447
448static dma_addr_t pa11_dma_map_single(struct device *dev, void *addr, size_t size, enum dma_data_direction direction) 448static dma_addr_t pa11_dma_map_single(struct device *dev, void *addr, size_t size, enum dma_data_direction direction)
449{ 449{
450 if (direction == DMA_NONE) { 450 BUG_ON(direction == DMA_NONE);
451 printk(KERN_ERR "pa11_dma_map_single(PCI_DMA_NONE) called by %p\n", __builtin_return_address(0));
452 BUG();
453 }
454 451
455 flush_kernel_dcache_range((unsigned long) addr, size); 452 flush_kernel_dcache_range((unsigned long) addr, size);
456 return virt_to_phys(addr); 453 return virt_to_phys(addr);
@@ -458,10 +455,7 @@ static dma_addr_t pa11_dma_map_single(struct device *dev, void *addr, size_t siz
458 455
459static void pa11_dma_unmap_single(struct device *dev, dma_addr_t dma_handle, size_t size, enum dma_data_direction direction) 456static void pa11_dma_unmap_single(struct device *dev, dma_addr_t dma_handle, size_t size, enum dma_data_direction direction)
460{ 457{
461 if (direction == DMA_NONE) { 458 BUG_ON(direction == DMA_NONE);
462 printk(KERN_ERR "pa11_dma_unmap_single(PCI_DMA_NONE) called by %p\n", __builtin_return_address(0));
463 BUG();
464 }
465 459
466 if (direction == DMA_TO_DEVICE) 460 if (direction == DMA_TO_DEVICE)
467 return; 461 return;
@@ -480,8 +474,7 @@ static int pa11_dma_map_sg(struct device *dev, struct scatterlist *sglist, int n
480{ 474{
481 int i; 475 int i;
482 476
483 if (direction == DMA_NONE) 477 BUG_ON(direction == DMA_NONE);
484 BUG();
485 478
486 for (i = 0; i < nents; i++, sglist++ ) { 479 for (i = 0; i < nents; i++, sglist++ ) {
487 unsigned long vaddr = sg_virt_addr(sglist); 480 unsigned long vaddr = sg_virt_addr(sglist);
@@ -496,8 +489,7 @@ static void pa11_dma_unmap_sg(struct device *dev, struct scatterlist *sglist, in
496{ 489{
497 int i; 490 int i;
498 491
499 if (direction == DMA_NONE) 492 BUG_ON(direction == DMA_NONE);
500 BUG();
501 493
502 if (direction == DMA_TO_DEVICE) 494 if (direction == DMA_TO_DEVICE)
503 return; 495 return;
@@ -511,16 +503,14 @@ static void pa11_dma_unmap_sg(struct device *dev, struct scatterlist *sglist, in
511 503
512static void pa11_dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle, unsigned long offset, size_t size, enum dma_data_direction direction) 504static void pa11_dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle, unsigned long offset, size_t size, enum dma_data_direction direction)
513{ 505{
514 if (direction == DMA_NONE) 506 BUG_ON(direction == DMA_NONE);
515 BUG();
516 507
517 flush_kernel_dcache_range((unsigned long) phys_to_virt(dma_handle) + offset, size); 508 flush_kernel_dcache_range((unsigned long) phys_to_virt(dma_handle) + offset, size);
518} 509}
519 510
520static void pa11_dma_sync_single_for_device(struct device *dev, dma_addr_t dma_handle, unsigned long offset, size_t size, enum dma_data_direction direction) 511static void pa11_dma_sync_single_for_device(struct device *dev, dma_addr_t dma_handle, unsigned long offset, size_t size, enum dma_data_direction direction)
521{ 512{
522 if (direction == DMA_NONE) 513 BUG_ON(direction == DMA_NONE);
523 BUG();
524 514
525 flush_kernel_dcache_range((unsigned long) phys_to_virt(dma_handle) + offset, size); 515 flush_kernel_dcache_range((unsigned long) phys_to_virt(dma_handle) + offset, size);
526} 516}
diff --git a/arch/parisc/mm/init.c b/arch/parisc/mm/init.c
index 7c155c254e72..9d704d9831d1 100644
--- a/arch/parisc/mm/init.c
+++ b/arch/parisc/mm/init.c
@@ -304,10 +304,8 @@ static void __init setup_bootmem(void)
304 */ 304 */
305 max_low_pfn = max_pfn; 305 max_low_pfn = max_pfn;
306 306
307 if ((bootmap_pfn - bootmap_start_pfn) != bootmap_pages) { 307 /* bootmap sizing messed up? */
308 printk(KERN_WARNING "WARNING! bootmap sizing is messed up!\n"); 308 BUG_ON((bootmap_pfn - bootmap_start_pfn) != bootmap_pages);
309 BUG();
310 }
311 309
312 /* reserve PAGE0 pdc memory, kernel text/data/bss & bootmap */ 310 /* reserve PAGE0 pdc memory, kernel text/data/bss & bootmap */
313 311
diff --git a/arch/x86/boot/pmjump.S b/arch/x86/boot/pmjump.S
index 019c17a75851..3e0edc6d2a20 100644
--- a/arch/x86/boot/pmjump.S
+++ b/arch/x86/boot/pmjump.S
@@ -47,6 +47,7 @@ GLOBAL(protected_mode_jump)
47ENDPROC(protected_mode_jump) 47ENDPROC(protected_mode_jump)
48 48
49 .code32 49 .code32
50 .section ".text32","ax"
50GLOBAL(in_pm32) 51GLOBAL(in_pm32)
51 # Set up data segments for flat 32-bit mode 52 # Set up data segments for flat 32-bit mode
52 movl %ecx, %ds 53 movl %ecx, %ds
diff --git a/arch/x86/boot/setup.ld b/arch/x86/boot/setup.ld
index df9234b3a5e0..bb8dc2de7969 100644
--- a/arch/x86/boot/setup.ld
+++ b/arch/x86/boot/setup.ld
@@ -17,7 +17,8 @@ SECTIONS
17 .header : { *(.header) } 17 .header : { *(.header) }
18 .inittext : { *(.inittext) } 18 .inittext : { *(.inittext) }
19 .initdata : { *(.initdata) } 19 .initdata : { *(.initdata) }
20 .text : { *(.text*) } 20 .text : { *(.text) }
21 .text32 : { *(.text32) }
21 22
22 . = ALIGN(16); 23 . = ALIGN(16);
23 .rodata : { *(.rodata*) } 24 .rodata : { *(.rodata*) }
diff --git a/arch/x86/include/asm/apic.h b/arch/x86/include/asm/apic.h
index 394d177d721b..00f5962d82d0 100644
--- a/arch/x86/include/asm/apic.h
+++ b/arch/x86/include/asm/apic.h
@@ -108,6 +108,16 @@ extern void native_apic_icr_write(u32 low, u32 id);
108extern u64 native_apic_icr_read(void); 108extern u64 native_apic_icr_read(void);
109 109
110#ifdef CONFIG_X86_X2APIC 110#ifdef CONFIG_X86_X2APIC
111/*
112 * Make previous memory operations globally visible before
113 * sending the IPI through x2apic wrmsr. We need a serializing instruction or
114 * mfence for this.
115 */
116static inline void x2apic_wrmsr_fence(void)
117{
118 asm volatile("mfence" : : : "memory");
119}
120
111static inline void native_apic_msr_write(u32 reg, u32 v) 121static inline void native_apic_msr_write(u32 reg, u32 v)
112{ 122{
113 if (reg == APIC_DFR || reg == APIC_ID || reg == APIC_LDR || 123 if (reg == APIC_DFR || reg == APIC_ID || reg == APIC_LDR ||
@@ -184,6 +194,9 @@ static inline int x2apic_enabled(void)
184{ 194{
185 return 0; 195 return 0;
186} 196}
197
198#define x2apic 0
199
187#endif 200#endif
188 201
189extern int get_physical_broadcast(void); 202extern int get_physical_broadcast(void);
diff --git a/arch/x86/include/asm/cpu_debug.h b/arch/x86/include/asm/cpu_debug.h
index 56f1635e4617..222802029fa6 100755
--- a/arch/x86/include/asm/cpu_debug.h
+++ b/arch/x86/include/asm/cpu_debug.h
@@ -33,6 +33,8 @@ enum cpu_debug_bit {
33 CPU_VMX_BIT, /* VMX */ 33 CPU_VMX_BIT, /* VMX */
34 CPU_CALL_BIT, /* System Call */ 34 CPU_CALL_BIT, /* System Call */
35 CPU_BASE_BIT, /* BASE Address */ 35 CPU_BASE_BIT, /* BASE Address */
36 CPU_VER_BIT, /* Version ID */
37 CPU_CONF_BIT, /* Configuration */
36 CPU_SMM_BIT, /* System mgmt mode */ 38 CPU_SMM_BIT, /* System mgmt mode */
37 CPU_SVM_BIT, /*Secure Virtual Machine*/ 39 CPU_SVM_BIT, /*Secure Virtual Machine*/
38 CPU_OSVM_BIT, /* OS-Visible Workaround*/ 40 CPU_OSVM_BIT, /* OS-Visible Workaround*/
@@ -69,6 +71,8 @@ enum cpu_debug_bit {
69#define CPU_VMX (1 << CPU_VMX_BIT) 71#define CPU_VMX (1 << CPU_VMX_BIT)
70#define CPU_CALL (1 << CPU_CALL_BIT) 72#define CPU_CALL (1 << CPU_CALL_BIT)
71#define CPU_BASE (1 << CPU_BASE_BIT) 73#define CPU_BASE (1 << CPU_BASE_BIT)
74#define CPU_VER (1 << CPU_VER_BIT)
75#define CPU_CONF (1 << CPU_CONF_BIT)
72#define CPU_SMM (1 << CPU_SMM_BIT) 76#define CPU_SMM (1 << CPU_SMM_BIT)
73#define CPU_SVM (1 << CPU_SVM_BIT) 77#define CPU_SVM (1 << CPU_SVM_BIT)
74#define CPU_OSVM (1 << CPU_OSVM_BIT) 78#define CPU_OSVM (1 << CPU_OSVM_BIT)
@@ -123,10 +127,15 @@ enum cpu_processor_bit {
123 CPU_INTEL_ATOM_BIT, 127 CPU_INTEL_ATOM_BIT,
124 CPU_INTEL_XEON_P4_BIT, 128 CPU_INTEL_XEON_P4_BIT,
125 CPU_INTEL_XEON_MP_BIT, 129 CPU_INTEL_XEON_MP_BIT,
130/* AMD */
131 CPU_AMD_K6_BIT,
132 CPU_AMD_K7_BIT,
133 CPU_AMD_K8_BIT,
134 CPU_AMD_0F_BIT,
135 CPU_AMD_10_BIT,
136 CPU_AMD_11_BIT,
126}; 137};
127 138
128#define CPU_ALL (~0) /* Select all CPUs */
129
130#define CPU_INTEL_PENTIUM (1 << CPU_INTEL_PENTIUM_BIT) 139#define CPU_INTEL_PENTIUM (1 << CPU_INTEL_PENTIUM_BIT)
131#define CPU_INTEL_P6 (1 << CPU_INTEL_P6_BIT) 140#define CPU_INTEL_P6 (1 << CPU_INTEL_P6_BIT)
132#define CPU_INTEL_PENTIUM_M (1 << CPU_INTEL_PENTIUM_M_BIT) 141#define CPU_INTEL_PENTIUM_M (1 << CPU_INTEL_PENTIUM_M_BIT)
@@ -156,9 +165,27 @@ enum cpu_processor_bit {
156#define CPU_PX_CX_AT (CPU_INTEL_PX | CPU_CX_AT) 165#define CPU_PX_CX_AT (CPU_INTEL_PX | CPU_CX_AT)
157#define CPU_PX_CX_AT_XE (CPU_INTEL_PX | CPU_CX_AT_XE) 166#define CPU_PX_CX_AT_XE (CPU_INTEL_PX | CPU_CX_AT_XE)
158 167
159/* Select all Intel CPUs*/ 168/* Select all supported Intel CPUs */
160#define CPU_INTEL_ALL (CPU_INTEL_PENTIUM | CPU_PX_CX_AT_XE) 169#define CPU_INTEL_ALL (CPU_INTEL_PENTIUM | CPU_PX_CX_AT_XE)
161 170
171#define CPU_AMD_K6 (1 << CPU_AMD_K6_BIT)
172#define CPU_AMD_K7 (1 << CPU_AMD_K7_BIT)
173#define CPU_AMD_K8 (1 << CPU_AMD_K8_BIT)
174#define CPU_AMD_0F (1 << CPU_AMD_0F_BIT)
175#define CPU_AMD_10 (1 << CPU_AMD_10_BIT)
176#define CPU_AMD_11 (1 << CPU_AMD_11_BIT)
177
178#define CPU_K10_PLUS (CPU_AMD_10 | CPU_AMD_11)
179#define CPU_K0F_PLUS (CPU_AMD_0F | CPU_K10_PLUS)
180#define CPU_K8_PLUS (CPU_AMD_K8 | CPU_K0F_PLUS)
181#define CPU_K7_PLUS (CPU_AMD_K7 | CPU_K8_PLUS)
182
183/* Select all supported AMD CPUs */
184#define CPU_AMD_ALL (CPU_AMD_K6 | CPU_K7_PLUS)
185
186/* Select all supported CPUs */
187#define CPU_ALL (CPU_INTEL_ALL | CPU_AMD_ALL)
188
162#define MAX_CPU_FILES 512 189#define MAX_CPU_FILES 512
163 190
164struct cpu_private { 191struct cpu_private {
diff --git a/arch/x86/include/asm/dmi.h b/arch/x86/include/asm/dmi.h
index bc68212c6bc0..aa32f7e6c197 100644
--- a/arch/x86/include/asm/dmi.h
+++ b/arch/x86/include/asm/dmi.h
@@ -2,21 +2,11 @@
2#define _ASM_X86_DMI_H 2#define _ASM_X86_DMI_H
3 3
4#include <asm/io.h> 4#include <asm/io.h>
5#include <asm/setup.h>
5 6
6#define DMI_MAX_DATA 2048
7
8extern int dmi_alloc_index;
9extern char dmi_alloc_data[DMI_MAX_DATA];
10
11/* This is so early that there is no good way to allocate dynamic memory.
12 Allocate data in an BSS array. */
13static inline void *dmi_alloc(unsigned len) 7static inline void *dmi_alloc(unsigned len)
14{ 8{
15 int idx = dmi_alloc_index; 9 return extend_brk(len, sizeof(int));
16 if ((dmi_alloc_index + len) > DMI_MAX_DATA)
17 return NULL;
18 dmi_alloc_index += len;
19 return dmi_alloc_data + idx;
20} 10}
21 11
22/* Use early IO mappings for DMI because it's initialized early */ 12/* Use early IO mappings for DMI because it's initialized early */
diff --git a/arch/x86/include/asm/io_apic.h b/arch/x86/include/asm/io_apic.h
index 59cb4a1317b7..373cc2bbcad2 100644
--- a/arch/x86/include/asm/io_apic.h
+++ b/arch/x86/include/asm/io_apic.h
@@ -162,7 +162,8 @@ extern int (*ioapic_renumber_irq)(int ioapic, int irq);
162extern void ioapic_init_mappings(void); 162extern void ioapic_init_mappings(void);
163 163
164#ifdef CONFIG_X86_64 164#ifdef CONFIG_X86_64
165extern int save_mask_IO_APIC_setup(void); 165extern int save_IO_APIC_setup(void);
166extern void mask_IO_APIC_setup(void);
166extern void restore_IO_APIC_setup(void); 167extern void restore_IO_APIC_setup(void);
167extern void reinit_intr_remapped_IO_APIC(int); 168extern void reinit_intr_remapped_IO_APIC(int);
168#endif 169#endif
@@ -172,7 +173,7 @@ extern void probe_nr_irqs_gsi(void);
172extern int setup_ioapic_entry(int apic, int irq, 173extern int setup_ioapic_entry(int apic, int irq,
173 struct IO_APIC_route_entry *entry, 174 struct IO_APIC_route_entry *entry,
174 unsigned int destination, int trigger, 175 unsigned int destination, int trigger,
175 int polarity, int vector); 176 int polarity, int vector, int pin);
176extern void ioapic_write_entry(int apic, int pin, 177extern void ioapic_write_entry(int apic, int pin,
177 struct IO_APIC_route_entry e); 178 struct IO_APIC_route_entry e);
178#else /* !CONFIG_X86_IO_APIC */ 179#else /* !CONFIG_X86_IO_APIC */
diff --git a/arch/x86/include/asm/irq_remapping.h b/arch/x86/include/asm/irq_remapping.h
index 20e1fd588dbf..0396760fccb8 100644
--- a/arch/x86/include/asm/irq_remapping.h
+++ b/arch/x86/include/asm/irq_remapping.h
@@ -1,8 +1,6 @@
1#ifndef _ASM_X86_IRQ_REMAPPING_H 1#ifndef _ASM_X86_IRQ_REMAPPING_H
2#define _ASM_X86_IRQ_REMAPPING_H 2#define _ASM_X86_IRQ_REMAPPING_H
3 3
4extern int x2apic;
5
6#define IRTE_DEST(dest) ((x2apic) ? dest : dest << 8) 4#define IRTE_DEST(dest) ((x2apic) ? dest : dest << 8)
7 5
8#endif /* _ASM_X86_IRQ_REMAPPING_H */ 6#endif /* _ASM_X86_IRQ_REMAPPING_H */
diff --git a/arch/x86/include/asm/msidef.h b/arch/x86/include/asm/msidef.h
index 6706b3006f13..4cc48af23fef 100644
--- a/arch/x86/include/asm/msidef.h
+++ b/arch/x86/include/asm/msidef.h
@@ -47,6 +47,7 @@
47#define MSI_ADDR_DEST_ID_MASK 0x00ffff0 47#define MSI_ADDR_DEST_ID_MASK 0x00ffff0
48#define MSI_ADDR_DEST_ID(dest) (((dest) << MSI_ADDR_DEST_ID_SHIFT) & \ 48#define MSI_ADDR_DEST_ID(dest) (((dest) << MSI_ADDR_DEST_ID_SHIFT) & \
49 MSI_ADDR_DEST_ID_MASK) 49 MSI_ADDR_DEST_ID_MASK)
50#define MSI_ADDR_EXT_DEST_ID(dest) ((dest) & 0xffffff00)
50 51
51#define MSI_ADDR_IR_EXT_INT (1 << 4) 52#define MSI_ADDR_IR_EXT_INT (1 << 4)
52#define MSI_ADDR_IR_SHV (1 << 3) 53#define MSI_ADDR_IR_SHV (1 << 3)
diff --git a/arch/x86/include/asm/page_32_types.h b/arch/x86/include/asm/page_32_types.h
index f1e4a79a6e41..0f915ae649a7 100644
--- a/arch/x86/include/asm/page_32_types.h
+++ b/arch/x86/include/asm/page_32_types.h
@@ -39,6 +39,11 @@
39#define __VIRTUAL_MASK_SHIFT 32 39#define __VIRTUAL_MASK_SHIFT 32
40#endif /* CONFIG_X86_PAE */ 40#endif /* CONFIG_X86_PAE */
41 41
42/*
43 * Kernel image size is limited to 512 MB (see in arch/x86/kernel/head_32.S)
44 */
45#define KERNEL_IMAGE_SIZE (512 * 1024 * 1024)
46
42#ifndef __ASSEMBLY__ 47#ifndef __ASSEMBLY__
43 48
44/* 49/*
diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h
index 0617d5cc9712..31fe83b10a4f 100644
--- a/arch/x86/include/asm/paravirt.h
+++ b/arch/x86/include/asm/paravirt.h
@@ -389,7 +389,7 @@ extern struct pv_lock_ops pv_lock_ops;
389 389
390#define paravirt_type(op) \ 390#define paravirt_type(op) \
391 [paravirt_typenum] "i" (PARAVIRT_PATCH(op)), \ 391 [paravirt_typenum] "i" (PARAVIRT_PATCH(op)), \
392 [paravirt_opptr] "m" (op) 392 [paravirt_opptr] "i" (&(op))
393#define paravirt_clobber(clobber) \ 393#define paravirt_clobber(clobber) \
394 [paravirt_clobber] "i" (clobber) 394 [paravirt_clobber] "i" (clobber)
395 395
@@ -443,7 +443,7 @@ int paravirt_disable_iospace(void);
443 * offset into the paravirt_patch_template structure, and can therefore be 443 * offset into the paravirt_patch_template structure, and can therefore be
444 * freely converted back into a structure offset. 444 * freely converted back into a structure offset.
445 */ 445 */
446#define PARAVIRT_CALL "call *%[paravirt_opptr];" 446#define PARAVIRT_CALL "call *%c[paravirt_opptr];"
447 447
448/* 448/*
449 * These macros are intended to wrap calls through one of the paravirt 449 * These macros are intended to wrap calls through one of the paravirt
diff --git a/arch/x86/include/asm/pgtable_32.h b/arch/x86/include/asm/pgtable_32.h
index 97612fc7632f..31bd120cf2a2 100644
--- a/arch/x86/include/asm/pgtable_32.h
+++ b/arch/x86/include/asm/pgtable_32.h
@@ -42,9 +42,6 @@ extern void set_pmd_pfn(unsigned long, unsigned long, pgprot_t);
42 */ 42 */
43#undef TEST_ACCESS_OK 43#undef TEST_ACCESS_OK
44 44
45/* The boot page tables (all created as a single array) */
46extern unsigned long pg0[];
47
48#ifdef CONFIG_X86_PAE 45#ifdef CONFIG_X86_PAE
49# include <asm/pgtable-3level.h> 46# include <asm/pgtable-3level.h>
50#else 47#else
diff --git a/arch/x86/include/asm/sections.h b/arch/x86/include/asm/sections.h
index 2b8c5160388f..1b7ee5d673c2 100644
--- a/arch/x86/include/asm/sections.h
+++ b/arch/x86/include/asm/sections.h
@@ -1 +1,8 @@
1#ifndef _ASM_X86_SECTIONS_H
2#define _ASM_X86_SECTIONS_H
3
1#include <asm-generic/sections.h> 4#include <asm-generic/sections.h>
5
6extern char __brk_base[], __brk_limit[];
7
8#endif /* _ASM_X86_SECTIONS_H */
diff --git a/arch/x86/include/asm/setup.h b/arch/x86/include/asm/setup.h
index 05c6f6b11fd5..fbf0521eeed8 100644
--- a/arch/x86/include/asm/setup.h
+++ b/arch/x86/include/asm/setup.h
@@ -100,20 +100,51 @@ extern struct boot_params boot_params;
100 */ 100 */
101#define LOWMEMSIZE() (0x9f000) 101#define LOWMEMSIZE() (0x9f000)
102 102
103/* exceedingly early brk-like allocator */
104extern unsigned long _brk_end;
105void *extend_brk(size_t size, size_t align);
106
107/*
108 * Reserve space in the brk section. The name must be unique within
109 * the file, and somewhat descriptive. The size is in bytes. Must be
110 * used at file scope.
111 *
112 * (This uses a temp function to wrap the asm so we can pass it the
113 * size parameter; otherwise we wouldn't be able to. We can't use a
114 * "section" attribute on a normal variable because it always ends up
115 * being @progbits, which ends up allocating space in the vmlinux
116 * executable.)
117 */
118#define RESERVE_BRK(name,sz) \
119 static void __section(.discard) __used \
120 __brk_reservation_fn_##name##__(void) { \
121 asm volatile ( \
122 ".pushsection .brk_reservation,\"aw\",@nobits;" \
123 ".brk." #name ":" \
124 " 1:.skip %c0;" \
125 " .size .brk." #name ", . - 1b;" \
126 " .popsection" \
127 : : "i" (sz)); \
128 }
129
103#ifdef __i386__ 130#ifdef __i386__
104 131
105void __init i386_start_kernel(void); 132void __init i386_start_kernel(void);
106extern void probe_roms(void); 133extern void probe_roms(void);
107 134
108extern unsigned long init_pg_tables_start;
109extern unsigned long init_pg_tables_end;
110
111#else 135#else
112void __init x86_64_start_kernel(char *real_mode); 136void __init x86_64_start_kernel(char *real_mode);
113void __init x86_64_start_reservations(char *real_mode_data); 137void __init x86_64_start_reservations(char *real_mode_data);
114 138
115#endif /* __i386__ */ 139#endif /* __i386__ */
116#endif /* _SETUP */ 140#endif /* _SETUP */
141#else
142#define RESERVE_BRK(name,sz) \
143 .pushsection .brk_reservation,"aw",@nobits; \
144.brk.name: \
1451: .skip sz; \
146 .size .brk.name,.-1b; \
147 .popsection
117#endif /* __ASSEMBLY__ */ 148#endif /* __ASSEMBLY__ */
118#endif /* __KERNEL__ */ 149#endif /* __KERNEL__ */
119 150
diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c
index 30909a258d0f..85eb8e100818 100644
--- a/arch/x86/kernel/apic/apic.c
+++ b/arch/x86/kernel/apic/apic.c
@@ -809,7 +809,7 @@ void clear_local_APIC(void)
809 u32 v; 809 u32 v;
810 810
811 /* APIC hasn't been mapped yet */ 811 /* APIC hasn't been mapped yet */
812 if (!apic_phys) 812 if (!x2apic && !apic_phys)
813 return; 813 return;
814 814
815 maxlvt = lapic_get_maxlvt(); 815 maxlvt = lapic_get_maxlvt();
@@ -1334,15 +1334,16 @@ void __init enable_IR_x2apic(void)
1334 return; 1334 return;
1335 } 1335 }
1336 1336
1337 local_irq_save(flags); 1337 ret = save_IO_APIC_setup();
1338 mask_8259A();
1339
1340 ret = save_mask_IO_APIC_setup();
1341 if (ret) { 1338 if (ret) {
1342 pr_info("Saving IO-APIC state failed: %d\n", ret); 1339 pr_info("Saving IO-APIC state failed: %d\n", ret);
1343 goto end; 1340 goto end;
1344 } 1341 }
1345 1342
1343 local_irq_save(flags);
1344 mask_IO_APIC_setup();
1345 mask_8259A();
1346
1346 ret = enable_intr_remapping(1); 1347 ret = enable_intr_remapping(1);
1347 1348
1348 if (ret && x2apic_preenabled) { 1349 if (ret && x2apic_preenabled) {
@@ -1367,10 +1368,10 @@ end_restore:
1367 else 1368 else
1368 reinit_intr_remapped_IO_APIC(x2apic_preenabled); 1369 reinit_intr_remapped_IO_APIC(x2apic_preenabled);
1369 1370
1370end:
1371 unmask_8259A(); 1371 unmask_8259A();
1372 local_irq_restore(flags); 1372 local_irq_restore(flags);
1373 1373
1374end:
1374 if (!ret) { 1375 if (!ret) {
1375 if (!x2apic_preenabled) 1376 if (!x2apic_preenabled)
1376 pr_info("Enabled x2apic and interrupt-remapping\n"); 1377 pr_info("Enabled x2apic and interrupt-remapping\n");
@@ -1523,12 +1524,10 @@ void __init early_init_lapic_mapping(void)
1523 */ 1524 */
1524void __init init_apic_mappings(void) 1525void __init init_apic_mappings(void)
1525{ 1526{
1526#ifdef CONFIG_X86_X2APIC
1527 if (x2apic) { 1527 if (x2apic) {
1528 boot_cpu_physical_apicid = read_apic_id(); 1528 boot_cpu_physical_apicid = read_apic_id();
1529 return; 1529 return;
1530 } 1530 }
1531#endif
1532 1531
1533 /* 1532 /*
1534 * If no local APIC can be found then set up a fake all 1533 * If no local APIC can be found then set up a fake all
@@ -1972,12 +1971,9 @@ static int lapic_resume(struct sys_device *dev)
1972 1971
1973 local_irq_save(flags); 1972 local_irq_save(flags);
1974 1973
1975#ifdef CONFIG_X86_X2APIC
1976 if (x2apic) 1974 if (x2apic)
1977 enable_x2apic(); 1975 enable_x2apic();
1978 else 1976 else {
1979#endif
1980 {
1981 /* 1977 /*
1982 * Make sure the APICBASE points to the right address 1978 * Make sure the APICBASE points to the right address
1983 * 1979 *
diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
index 00e6071cefc4..42cdc78427a2 100644
--- a/arch/x86/kernel/apic/io_apic.c
+++ b/arch/x86/kernel/apic/io_apic.c
@@ -389,6 +389,8 @@ struct io_apic {
389 unsigned int index; 389 unsigned int index;
390 unsigned int unused[3]; 390 unsigned int unused[3];
391 unsigned int data; 391 unsigned int data;
392 unsigned int unused2[11];
393 unsigned int eoi;
392}; 394};
393 395
394static __attribute_const__ struct io_apic __iomem *io_apic_base(int idx) 396static __attribute_const__ struct io_apic __iomem *io_apic_base(int idx)
@@ -397,6 +399,12 @@ static __attribute_const__ struct io_apic __iomem *io_apic_base(int idx)
397 + (mp_ioapics[idx].apicaddr & ~PAGE_MASK); 399 + (mp_ioapics[idx].apicaddr & ~PAGE_MASK);
398} 400}
399 401
402static inline void io_apic_eoi(unsigned int apic, unsigned int vector)
403{
404 struct io_apic __iomem *io_apic = io_apic_base(apic);
405 writel(vector, &io_apic->eoi);
406}
407
400static inline unsigned int io_apic_read(unsigned int apic, unsigned int reg) 408static inline unsigned int io_apic_read(unsigned int apic, unsigned int reg)
401{ 409{
402 struct io_apic __iomem *io_apic = io_apic_base(apic); 410 struct io_apic __iomem *io_apic = io_apic_base(apic);
@@ -546,16 +554,12 @@ static void __target_IO_APIC_irq(unsigned int irq, unsigned int dest, struct irq
546 554
547 apic = entry->apic; 555 apic = entry->apic;
548 pin = entry->pin; 556 pin = entry->pin;
549#ifdef CONFIG_INTR_REMAP
550 /* 557 /*
551 * With interrupt-remapping, destination information comes 558 * With interrupt-remapping, destination information comes
552 * from interrupt-remapping table entry. 559 * from interrupt-remapping table entry.
553 */ 560 */
554 if (!irq_remapped(irq)) 561 if (!irq_remapped(irq))
555 io_apic_write(apic, 0x11 + pin*2, dest); 562 io_apic_write(apic, 0x11 + pin*2, dest);
556#else
557 io_apic_write(apic, 0x11 + pin*2, dest);
558#endif
559 reg = io_apic_read(apic, 0x10 + pin*2); 563 reg = io_apic_read(apic, 0x10 + pin*2);
560 reg &= ~IO_APIC_REDIR_VECTOR_MASK; 564 reg &= ~IO_APIC_REDIR_VECTOR_MASK;
561 reg |= vector; 565 reg |= vector;
@@ -849,9 +853,9 @@ __setup("pirq=", ioapic_pirq_setup);
849static struct IO_APIC_route_entry *early_ioapic_entries[MAX_IO_APICS]; 853static struct IO_APIC_route_entry *early_ioapic_entries[MAX_IO_APICS];
850 854
851/* 855/*
852 * Saves and masks all the unmasked IO-APIC RTE's 856 * Saves all the IO-APIC RTE's
853 */ 857 */
854int save_mask_IO_APIC_setup(void) 858int save_IO_APIC_setup(void)
855{ 859{
856 union IO_APIC_reg_01 reg_01; 860 union IO_APIC_reg_01 reg_01;
857 unsigned long flags; 861 unsigned long flags;
@@ -876,16 +880,9 @@ int save_mask_IO_APIC_setup(void)
876 } 880 }
877 881
878 for (apic = 0; apic < nr_ioapics; apic++) 882 for (apic = 0; apic < nr_ioapics; apic++)
879 for (pin = 0; pin < nr_ioapic_registers[apic]; pin++) { 883 for (pin = 0; pin < nr_ioapic_registers[apic]; pin++)
880 struct IO_APIC_route_entry entry; 884 early_ioapic_entries[apic][pin] =
881
882 entry = early_ioapic_entries[apic][pin] =
883 ioapic_read_entry(apic, pin); 885 ioapic_read_entry(apic, pin);
884 if (!entry.mask) {
885 entry.mask = 1;
886 ioapic_write_entry(apic, pin, entry);
887 }
888 }
889 886
890 return 0; 887 return 0;
891 888
@@ -898,6 +895,25 @@ nomem:
898 return -ENOMEM; 895 return -ENOMEM;
899} 896}
900 897
898void mask_IO_APIC_setup(void)
899{
900 int apic, pin;
901
902 for (apic = 0; apic < nr_ioapics; apic++) {
903 if (!early_ioapic_entries[apic])
904 break;
905 for (pin = 0; pin < nr_ioapic_registers[apic]; pin++) {
906 struct IO_APIC_route_entry entry;
907
908 entry = early_ioapic_entries[apic][pin];
909 if (!entry.mask) {
910 entry.mask = 1;
911 ioapic_write_entry(apic, pin, entry);
912 }
913 }
914 }
915}
916
901void restore_IO_APIC_setup(void) 917void restore_IO_APIC_setup(void)
902{ 918{
903 int apic, pin; 919 int apic, pin;
@@ -1411,9 +1427,8 @@ void __setup_vector_irq(int cpu)
1411} 1427}
1412 1428
1413static struct irq_chip ioapic_chip; 1429static struct irq_chip ioapic_chip;
1414#ifdef CONFIG_INTR_REMAP
1415static struct irq_chip ir_ioapic_chip; 1430static struct irq_chip ir_ioapic_chip;
1416#endif 1431static struct irq_chip msi_ir_chip;
1417 1432
1418#define IOAPIC_AUTO -1 1433#define IOAPIC_AUTO -1
1419#define IOAPIC_EDGE 0 1434#define IOAPIC_EDGE 0
@@ -1452,7 +1467,6 @@ static void ioapic_register_intr(int irq, struct irq_desc *desc, unsigned long t
1452 else 1467 else
1453 desc->status &= ~IRQ_LEVEL; 1468 desc->status &= ~IRQ_LEVEL;
1454 1469
1455#ifdef CONFIG_INTR_REMAP
1456 if (irq_remapped(irq)) { 1470 if (irq_remapped(irq)) {
1457 desc->status |= IRQ_MOVE_PCNTXT; 1471 desc->status |= IRQ_MOVE_PCNTXT;
1458 if (trigger) 1472 if (trigger)
@@ -1464,7 +1478,7 @@ static void ioapic_register_intr(int irq, struct irq_desc *desc, unsigned long t
1464 handle_edge_irq, "edge"); 1478 handle_edge_irq, "edge");
1465 return; 1479 return;
1466 } 1480 }
1467#endif 1481
1468 if ((trigger == IOAPIC_AUTO && IO_APIC_irq_trigger(irq)) || 1482 if ((trigger == IOAPIC_AUTO && IO_APIC_irq_trigger(irq)) ||
1469 trigger == IOAPIC_LEVEL) 1483 trigger == IOAPIC_LEVEL)
1470 set_irq_chip_and_handler_name(irq, &ioapic_chip, 1484 set_irq_chip_and_handler_name(irq, &ioapic_chip,
@@ -1478,14 +1492,13 @@ static void ioapic_register_intr(int irq, struct irq_desc *desc, unsigned long t
1478int setup_ioapic_entry(int apic_id, int irq, 1492int setup_ioapic_entry(int apic_id, int irq,
1479 struct IO_APIC_route_entry *entry, 1493 struct IO_APIC_route_entry *entry,
1480 unsigned int destination, int trigger, 1494 unsigned int destination, int trigger,
1481 int polarity, int vector) 1495 int polarity, int vector, int pin)
1482{ 1496{
1483 /* 1497 /*
1484 * add it to the IO-APIC irq-routing table: 1498 * add it to the IO-APIC irq-routing table:
1485 */ 1499 */
1486 memset(entry,0,sizeof(*entry)); 1500 memset(entry,0,sizeof(*entry));
1487 1501
1488#ifdef CONFIG_INTR_REMAP
1489 if (intr_remapping_enabled) { 1502 if (intr_remapping_enabled) {
1490 struct intel_iommu *iommu = map_ioapic_to_ir(apic_id); 1503 struct intel_iommu *iommu = map_ioapic_to_ir(apic_id);
1491 struct irte irte; 1504 struct irte irte;
@@ -1504,7 +1517,14 @@ int setup_ioapic_entry(int apic_id, int irq,
1504 1517
1505 irte.present = 1; 1518 irte.present = 1;
1506 irte.dst_mode = apic->irq_dest_mode; 1519 irte.dst_mode = apic->irq_dest_mode;
1507 irte.trigger_mode = trigger; 1520 /*
1521 * Trigger mode in the IRTE will always be edge, and the
1522 * actual level or edge trigger will be setup in the IO-APIC
1523 * RTE. This will help simplify level triggered irq migration.
1524 * For more details, see the comments above explainig IO-APIC
1525 * irq migration in the presence of interrupt-remapping.
1526 */
1527 irte.trigger_mode = 0;
1508 irte.dlvry_mode = apic->irq_delivery_mode; 1528 irte.dlvry_mode = apic->irq_delivery_mode;
1509 irte.vector = vector; 1529 irte.vector = vector;
1510 irte.dest_id = IRTE_DEST(destination); 1530 irte.dest_id = IRTE_DEST(destination);
@@ -1515,18 +1535,21 @@ int setup_ioapic_entry(int apic_id, int irq,
1515 ir_entry->zero = 0; 1535 ir_entry->zero = 0;
1516 ir_entry->format = 1; 1536 ir_entry->format = 1;
1517 ir_entry->index = (index & 0x7fff); 1537 ir_entry->index = (index & 0x7fff);
1518 } else 1538 /*
1519#endif 1539 * IO-APIC RTE will be configured with virtual vector.
1520 { 1540 * irq handler will do the explicit EOI to the io-apic.
1541 */
1542 ir_entry->vector = pin;
1543 } else {
1521 entry->delivery_mode = apic->irq_delivery_mode; 1544 entry->delivery_mode = apic->irq_delivery_mode;
1522 entry->dest_mode = apic->irq_dest_mode; 1545 entry->dest_mode = apic->irq_dest_mode;
1523 entry->dest = destination; 1546 entry->dest = destination;
1547 entry->vector = vector;
1524 } 1548 }
1525 1549
1526 entry->mask = 0; /* enable IRQ */ 1550 entry->mask = 0; /* enable IRQ */
1527 entry->trigger = trigger; 1551 entry->trigger = trigger;
1528 entry->polarity = polarity; 1552 entry->polarity = polarity;
1529 entry->vector = vector;
1530 1553
1531 /* Mask level triggered irqs. 1554 /* Mask level triggered irqs.
1532 * Use IRQ_DELAYED_DISABLE for edge triggered irqs. 1555 * Use IRQ_DELAYED_DISABLE for edge triggered irqs.
@@ -1561,7 +1584,7 @@ static void setup_IO_APIC_irq(int apic_id, int pin, unsigned int irq, struct irq
1561 1584
1562 1585
1563 if (setup_ioapic_entry(mp_ioapics[apic_id].apicid, irq, &entry, 1586 if (setup_ioapic_entry(mp_ioapics[apic_id].apicid, irq, &entry,
1564 dest, trigger, polarity, cfg->vector)) { 1587 dest, trigger, polarity, cfg->vector, pin)) {
1565 printk("Failed to setup ioapic entry for ioapic %d, pin %d\n", 1588 printk("Failed to setup ioapic entry for ioapic %d, pin %d\n",
1566 mp_ioapics[apic_id].apicid, pin); 1589 mp_ioapics[apic_id].apicid, pin);
1567 __clear_irq_vector(irq, cfg); 1590 __clear_irq_vector(irq, cfg);
@@ -1642,10 +1665,8 @@ static void __init setup_timer_IRQ0_pin(unsigned int apic_id, unsigned int pin,
1642{ 1665{
1643 struct IO_APIC_route_entry entry; 1666 struct IO_APIC_route_entry entry;
1644 1667
1645#ifdef CONFIG_INTR_REMAP
1646 if (intr_remapping_enabled) 1668 if (intr_remapping_enabled)
1647 return; 1669 return;
1648#endif
1649 1670
1650 memset(&entry, 0, sizeof(entry)); 1671 memset(&entry, 0, sizeof(entry));
1651 1672
@@ -2040,8 +2061,13 @@ void disable_IO_APIC(void)
2040 * If the i8259 is routed through an IOAPIC 2061 * If the i8259 is routed through an IOAPIC
2041 * Put that IOAPIC in virtual wire mode 2062 * Put that IOAPIC in virtual wire mode
2042 * so legacy interrupts can be delivered. 2063 * so legacy interrupts can be delivered.
2064 *
2065 * With interrupt-remapping, for now we will use virtual wire A mode,
2066 * as virtual wire B is little complex (need to configure both
2067 * IOAPIC RTE aswell as interrupt-remapping table entry).
2068 * As this gets called during crash dump, keep this simple for now.
2043 */ 2069 */
2044 if (ioapic_i8259.pin != -1) { 2070 if (ioapic_i8259.pin != -1 && !intr_remapping_enabled) {
2045 struct IO_APIC_route_entry entry; 2071 struct IO_APIC_route_entry entry;
2046 2072
2047 memset(&entry, 0, sizeof(entry)); 2073 memset(&entry, 0, sizeof(entry));
@@ -2061,7 +2087,10 @@ void disable_IO_APIC(void)
2061 ioapic_write_entry(ioapic_i8259.apic, ioapic_i8259.pin, entry); 2087 ioapic_write_entry(ioapic_i8259.apic, ioapic_i8259.pin, entry);
2062 } 2088 }
2063 2089
2064 disconnect_bsp_APIC(ioapic_i8259.pin != -1); 2090 /*
2091 * Use virtual wire A mode when interrupt remapping is enabled.
2092 */
2093 disconnect_bsp_APIC(!intr_remapping_enabled && ioapic_i8259.pin != -1);
2065} 2094}
2066 2095
2067#ifdef CONFIG_X86_32 2096#ifdef CONFIG_X86_32
@@ -2303,37 +2332,24 @@ static int ioapic_retrigger_irq(unsigned int irq)
2303#ifdef CONFIG_SMP 2332#ifdef CONFIG_SMP
2304 2333
2305#ifdef CONFIG_INTR_REMAP 2334#ifdef CONFIG_INTR_REMAP
2306static void ir_irq_migration(struct work_struct *work);
2307
2308static DECLARE_DELAYED_WORK(ir_migration_work, ir_irq_migration);
2309 2335
2310/* 2336/*
2311 * Migrate the IO-APIC irq in the presence of intr-remapping. 2337 * Migrate the IO-APIC irq in the presence of intr-remapping.
2312 * 2338 *
2313 * For edge triggered, irq migration is a simple atomic update(of vector 2339 * For both level and edge triggered, irq migration is a simple atomic
2314 * and cpu destination) of IRTE and flush the hardware cache. 2340 * update(of vector and cpu destination) of IRTE and flush the hardware cache.
2315 *
2316 * For level triggered, we need to modify the io-apic RTE aswell with the update
2317 * vector information, along with modifying IRTE with vector and destination.
2318 * So irq migration for level triggered is little bit more complex compared to
2319 * edge triggered migration. But the good news is, we use the same algorithm
2320 * for level triggered migration as we have today, only difference being,
2321 * we now initiate the irq migration from process context instead of the
2322 * interrupt context.
2323 * 2341 *
2324 * In future, when we do a directed EOI (combined with cpu EOI broadcast 2342 * For level triggered, we eliminate the io-apic RTE modification (with the
2325 * suppression) to the IO-APIC, level triggered irq migration will also be 2343 * updated vector information), by using a virtual vector (io-apic pin number).
2326 * as simple as edge triggered migration and we can do the irq migration 2344 * Real vector that is used for interrupting cpu will be coming from
2327 * with a simple atomic update to IO-APIC RTE. 2345 * the interrupt-remapping table entry.
2328 */ 2346 */
2329static void 2347static void
2330migrate_ioapic_irq_desc(struct irq_desc *desc, const struct cpumask *mask) 2348migrate_ioapic_irq_desc(struct irq_desc *desc, const struct cpumask *mask)
2331{ 2349{
2332 struct irq_cfg *cfg; 2350 struct irq_cfg *cfg;
2333 struct irte irte; 2351 struct irte irte;
2334 int modify_ioapic_rte;
2335 unsigned int dest; 2352 unsigned int dest;
2336 unsigned long flags;
2337 unsigned int irq; 2353 unsigned int irq;
2338 2354
2339 if (!cpumask_intersects(mask, cpu_online_mask)) 2355 if (!cpumask_intersects(mask, cpu_online_mask))
@@ -2351,13 +2367,6 @@ migrate_ioapic_irq_desc(struct irq_desc *desc, const struct cpumask *mask)
2351 2367
2352 dest = apic->cpu_mask_to_apicid_and(cfg->domain, mask); 2368 dest = apic->cpu_mask_to_apicid_and(cfg->domain, mask);
2353 2369
2354 modify_ioapic_rte = desc->status & IRQ_LEVEL;
2355 if (modify_ioapic_rte) {
2356 spin_lock_irqsave(&ioapic_lock, flags);
2357 __target_IO_APIC_irq(irq, dest, cfg);
2358 spin_unlock_irqrestore(&ioapic_lock, flags);
2359 }
2360
2361 irte.vector = cfg->vector; 2370 irte.vector = cfg->vector;
2362 irte.dest_id = IRTE_DEST(dest); 2371 irte.dest_id = IRTE_DEST(dest);
2363 2372
@@ -2372,73 +2381,12 @@ migrate_ioapic_irq_desc(struct irq_desc *desc, const struct cpumask *mask)
2372 cpumask_copy(desc->affinity, mask); 2381 cpumask_copy(desc->affinity, mask);
2373} 2382}
2374 2383
2375static int migrate_irq_remapped_level_desc(struct irq_desc *desc)
2376{
2377 int ret = -1;
2378 struct irq_cfg *cfg = desc->chip_data;
2379
2380 mask_IO_APIC_irq_desc(desc);
2381
2382 if (io_apic_level_ack_pending(cfg)) {
2383 /*
2384 * Interrupt in progress. Migrating irq now will change the
2385 * vector information in the IO-APIC RTE and that will confuse
2386 * the EOI broadcast performed by cpu.
2387 * So, delay the irq migration to the next instance.
2388 */
2389 schedule_delayed_work(&ir_migration_work, 1);
2390 goto unmask;
2391 }
2392
2393 /* everthing is clear. we have right of way */
2394 migrate_ioapic_irq_desc(desc, desc->pending_mask);
2395
2396 ret = 0;
2397 desc->status &= ~IRQ_MOVE_PENDING;
2398 cpumask_clear(desc->pending_mask);
2399
2400unmask:
2401 unmask_IO_APIC_irq_desc(desc);
2402
2403 return ret;
2404}
2405
2406static void ir_irq_migration(struct work_struct *work)
2407{
2408 unsigned int irq;
2409 struct irq_desc *desc;
2410
2411 for_each_irq_desc(irq, desc) {
2412 if (desc->status & IRQ_MOVE_PENDING) {
2413 unsigned long flags;
2414
2415 spin_lock_irqsave(&desc->lock, flags);
2416 if (!desc->chip->set_affinity ||
2417 !(desc->status & IRQ_MOVE_PENDING)) {
2418 desc->status &= ~IRQ_MOVE_PENDING;
2419 spin_unlock_irqrestore(&desc->lock, flags);
2420 continue;
2421 }
2422
2423 desc->chip->set_affinity(irq, desc->pending_mask);
2424 spin_unlock_irqrestore(&desc->lock, flags);
2425 }
2426 }
2427}
2428
2429/* 2384/*
2430 * Migrates the IRQ destination in the process context. 2385 * Migrates the IRQ destination in the process context.
2431 */ 2386 */
2432static void set_ir_ioapic_affinity_irq_desc(struct irq_desc *desc, 2387static void set_ir_ioapic_affinity_irq_desc(struct irq_desc *desc,
2433 const struct cpumask *mask) 2388 const struct cpumask *mask)
2434{ 2389{
2435 if (desc->status & IRQ_LEVEL) {
2436 desc->status |= IRQ_MOVE_PENDING;
2437 cpumask_copy(desc->pending_mask, mask);
2438 migrate_irq_remapped_level_desc(desc);
2439 return;
2440 }
2441
2442 migrate_ioapic_irq_desc(desc, mask); 2390 migrate_ioapic_irq_desc(desc, mask);
2443} 2391}
2444static void set_ir_ioapic_affinity_irq(unsigned int irq, 2392static void set_ir_ioapic_affinity_irq(unsigned int irq,
@@ -2448,6 +2396,11 @@ static void set_ir_ioapic_affinity_irq(unsigned int irq,
2448 2396
2449 set_ir_ioapic_affinity_irq_desc(desc, mask); 2397 set_ir_ioapic_affinity_irq_desc(desc, mask);
2450} 2398}
2399#else
2400static inline void set_ir_ioapic_affinity_irq_desc(struct irq_desc *desc,
2401 const struct cpumask *mask)
2402{
2403}
2451#endif 2404#endif
2452 2405
2453asmlinkage void smp_irq_move_cleanup_interrupt(void) 2406asmlinkage void smp_irq_move_cleanup_interrupt(void)
@@ -2461,6 +2414,7 @@ asmlinkage void smp_irq_move_cleanup_interrupt(void)
2461 me = smp_processor_id(); 2414 me = smp_processor_id();
2462 for (vector = FIRST_EXTERNAL_VECTOR; vector < NR_VECTORS; vector++) { 2415 for (vector = FIRST_EXTERNAL_VECTOR; vector < NR_VECTORS; vector++) {
2463 unsigned int irq; 2416 unsigned int irq;
2417 unsigned int irr;
2464 struct irq_desc *desc; 2418 struct irq_desc *desc;
2465 struct irq_cfg *cfg; 2419 struct irq_cfg *cfg;
2466 irq = __get_cpu_var(vector_irq)[vector]; 2420 irq = __get_cpu_var(vector_irq)[vector];
@@ -2480,6 +2434,18 @@ asmlinkage void smp_irq_move_cleanup_interrupt(void)
2480 if (vector == cfg->vector && cpumask_test_cpu(me, cfg->domain)) 2434 if (vector == cfg->vector && cpumask_test_cpu(me, cfg->domain))
2481 goto unlock; 2435 goto unlock;
2482 2436
2437 irr = apic_read(APIC_IRR + (vector / 32 * 0x10));
2438 /*
2439 * Check if the vector that needs to be cleanedup is
2440 * registered at the cpu's IRR. If so, then this is not
2441 * the best time to clean it up. Lets clean it up in the
2442 * next attempt by sending another IRQ_MOVE_CLEANUP_VECTOR
2443 * to myself.
2444 */
2445 if (irr & (1 << (vector % 32))) {
2446 apic->send_IPI_self(IRQ_MOVE_CLEANUP_VECTOR);
2447 goto unlock;
2448 }
2483 __get_cpu_var(vector_irq)[vector] = -1; 2449 __get_cpu_var(vector_irq)[vector] = -1;
2484 cfg->move_cleanup_count--; 2450 cfg->move_cleanup_count--;
2485unlock: 2451unlock:
@@ -2529,9 +2495,44 @@ static inline void irq_complete_move(struct irq_desc **descp) {}
2529#endif 2495#endif
2530 2496
2531#ifdef CONFIG_INTR_REMAP 2497#ifdef CONFIG_INTR_REMAP
2498static void __eoi_ioapic_irq(unsigned int irq, struct irq_cfg *cfg)
2499{
2500 int apic, pin;
2501 struct irq_pin_list *entry;
2502
2503 entry = cfg->irq_2_pin;
2504 for (;;) {
2505
2506 if (!entry)
2507 break;
2508
2509 apic = entry->apic;
2510 pin = entry->pin;
2511 io_apic_eoi(apic, pin);
2512 entry = entry->next;
2513 }
2514}
2515
2516static void
2517eoi_ioapic_irq(struct irq_desc *desc)
2518{
2519 struct irq_cfg *cfg;
2520 unsigned long flags;
2521 unsigned int irq;
2522
2523 irq = desc->irq;
2524 cfg = desc->chip_data;
2525
2526 spin_lock_irqsave(&ioapic_lock, flags);
2527 __eoi_ioapic_irq(irq, cfg);
2528 spin_unlock_irqrestore(&ioapic_lock, flags);
2529}
2530
2532static void ack_x2apic_level(unsigned int irq) 2531static void ack_x2apic_level(unsigned int irq)
2533{ 2532{
2533 struct irq_desc *desc = irq_to_desc(irq);
2534 ack_x2APIC_irq(); 2534 ack_x2APIC_irq();
2535 eoi_ioapic_irq(desc);
2535} 2536}
2536 2537
2537static void ack_x2apic_edge(unsigned int irq) 2538static void ack_x2apic_edge(unsigned int irq)
@@ -2901,10 +2902,8 @@ static inline void __init check_timer(void)
2901 * 8259A. 2902 * 8259A.
2902 */ 2903 */
2903 if (pin1 == -1) { 2904 if (pin1 == -1) {
2904#ifdef CONFIG_INTR_REMAP
2905 if (intr_remapping_enabled) 2905 if (intr_remapping_enabled)
2906 panic("BIOS bug: timer not connected to IO-APIC"); 2906 panic("BIOS bug: timer not connected to IO-APIC");
2907#endif
2908 pin1 = pin2; 2907 pin1 = pin2;
2909 apic1 = apic2; 2908 apic1 = apic2;
2910 no_pin1 = 1; 2909 no_pin1 = 1;
@@ -2940,10 +2939,8 @@ static inline void __init check_timer(void)
2940 clear_IO_APIC_pin(0, pin1); 2939 clear_IO_APIC_pin(0, pin1);
2941 goto out; 2940 goto out;
2942 } 2941 }
2943#ifdef CONFIG_INTR_REMAP
2944 if (intr_remapping_enabled) 2942 if (intr_remapping_enabled)
2945 panic("timer doesn't work through Interrupt-remapped IO-APIC"); 2943 panic("timer doesn't work through Interrupt-remapped IO-APIC");
2946#endif
2947 local_irq_disable(); 2944 local_irq_disable();
2948 clear_IO_APIC_pin(apic1, pin1); 2945 clear_IO_APIC_pin(apic1, pin1);
2949 if (!no_pin1) 2946 if (!no_pin1)
@@ -3237,9 +3234,7 @@ void destroy_irq(unsigned int irq)
3237 if (desc) 3234 if (desc)
3238 desc->chip_data = cfg; 3235 desc->chip_data = cfg;
3239 3236
3240#ifdef CONFIG_INTR_REMAP
3241 free_irte(irq); 3237 free_irte(irq);
3242#endif
3243 spin_lock_irqsave(&vector_lock, flags); 3238 spin_lock_irqsave(&vector_lock, flags);
3244 __clear_irq_vector(irq, cfg); 3239 __clear_irq_vector(irq, cfg);
3245 spin_unlock_irqrestore(&vector_lock, flags); 3240 spin_unlock_irqrestore(&vector_lock, flags);
@@ -3265,7 +3260,6 @@ static int msi_compose_msg(struct pci_dev *pdev, unsigned int irq, struct msi_ms
3265 3260
3266 dest = apic->cpu_mask_to_apicid_and(cfg->domain, apic->target_cpus()); 3261 dest = apic->cpu_mask_to_apicid_and(cfg->domain, apic->target_cpus());
3267 3262
3268#ifdef CONFIG_INTR_REMAP
3269 if (irq_remapped(irq)) { 3263 if (irq_remapped(irq)) {
3270 struct irte irte; 3264 struct irte irte;
3271 int ir_index; 3265 int ir_index;
@@ -3291,10 +3285,13 @@ static int msi_compose_msg(struct pci_dev *pdev, unsigned int irq, struct msi_ms
3291 MSI_ADDR_IR_SHV | 3285 MSI_ADDR_IR_SHV |
3292 MSI_ADDR_IR_INDEX1(ir_index) | 3286 MSI_ADDR_IR_INDEX1(ir_index) |
3293 MSI_ADDR_IR_INDEX2(ir_index); 3287 MSI_ADDR_IR_INDEX2(ir_index);
3294 } else 3288 } else {
3295#endif 3289 if (x2apic_enabled())
3296 { 3290 msg->address_hi = MSI_ADDR_BASE_HI |
3297 msg->address_hi = MSI_ADDR_BASE_HI; 3291 MSI_ADDR_EXT_DEST_ID(dest);
3292 else
3293 msg->address_hi = MSI_ADDR_BASE_HI;
3294
3298 msg->address_lo = 3295 msg->address_lo =
3299 MSI_ADDR_BASE_LO | 3296 MSI_ADDR_BASE_LO |
3300 ((apic->irq_dest_mode == 0) ? 3297 ((apic->irq_dest_mode == 0) ?
@@ -3405,6 +3402,7 @@ static struct irq_chip msi_ir_chip = {
3405#endif 3402#endif
3406 .retrigger = ioapic_retrigger_irq, 3403 .retrigger = ioapic_retrigger_irq,
3407}; 3404};
3405#endif
3408 3406
3409/* 3407/*
3410 * Map the PCI dev to the corresponding remapping hardware unit 3408 * Map the PCI dev to the corresponding remapping hardware unit
@@ -3432,7 +3430,6 @@ static int msi_alloc_irte(struct pci_dev *dev, int irq, int nvec)
3432 } 3430 }
3433 return index; 3431 return index;
3434} 3432}
3435#endif
3436 3433
3437static int setup_msi_irq(struct pci_dev *dev, struct msi_desc *msidesc, int irq) 3434static int setup_msi_irq(struct pci_dev *dev, struct msi_desc *msidesc, int irq)
3438{ 3435{
@@ -3446,7 +3443,6 @@ static int setup_msi_irq(struct pci_dev *dev, struct msi_desc *msidesc, int irq)
3446 set_irq_msi(irq, msidesc); 3443 set_irq_msi(irq, msidesc);
3447 write_msi_msg(irq, &msg); 3444 write_msi_msg(irq, &msg);
3448 3445
3449#ifdef CONFIG_INTR_REMAP
3450 if (irq_remapped(irq)) { 3446 if (irq_remapped(irq)) {
3451 struct irq_desc *desc = irq_to_desc(irq); 3447 struct irq_desc *desc = irq_to_desc(irq);
3452 /* 3448 /*
@@ -3455,7 +3451,6 @@ static int setup_msi_irq(struct pci_dev *dev, struct msi_desc *msidesc, int irq)
3455 desc->status |= IRQ_MOVE_PCNTXT; 3451 desc->status |= IRQ_MOVE_PCNTXT;
3456 set_irq_chip_and_handler_name(irq, &msi_ir_chip, handle_edge_irq, "edge"); 3452 set_irq_chip_and_handler_name(irq, &msi_ir_chip, handle_edge_irq, "edge");
3457 } else 3453 } else
3458#endif
3459 set_irq_chip_and_handler_name(irq, &msi_chip, handle_edge_irq, "edge"); 3454 set_irq_chip_and_handler_name(irq, &msi_chip, handle_edge_irq, "edge");
3460 3455
3461 dev_printk(KERN_DEBUG, &dev->dev, "irq %d for MSI/MSI-X\n", irq); 3456 dev_printk(KERN_DEBUG, &dev->dev, "irq %d for MSI/MSI-X\n", irq);
@@ -3469,11 +3464,8 @@ int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
3469 int ret, sub_handle; 3464 int ret, sub_handle;
3470 struct msi_desc *msidesc; 3465 struct msi_desc *msidesc;
3471 unsigned int irq_want; 3466 unsigned int irq_want;
3472
3473#ifdef CONFIG_INTR_REMAP
3474 struct intel_iommu *iommu = 0; 3467 struct intel_iommu *iommu = 0;
3475 int index = 0; 3468 int index = 0;
3476#endif
3477 3469
3478 irq_want = nr_irqs_gsi; 3470 irq_want = nr_irqs_gsi;
3479 sub_handle = 0; 3471 sub_handle = 0;
@@ -3482,7 +3474,6 @@ int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
3482 if (irq == 0) 3474 if (irq == 0)
3483 return -1; 3475 return -1;
3484 irq_want = irq + 1; 3476 irq_want = irq + 1;
3485#ifdef CONFIG_INTR_REMAP
3486 if (!intr_remapping_enabled) 3477 if (!intr_remapping_enabled)
3487 goto no_ir; 3478 goto no_ir;
3488 3479
@@ -3510,7 +3501,6 @@ int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
3510 set_irte_irq(irq, iommu, index, sub_handle); 3501 set_irte_irq(irq, iommu, index, sub_handle);
3511 } 3502 }
3512no_ir: 3503no_ir:
3513#endif
3514 ret = setup_msi_irq(dev, msidesc, irq); 3504 ret = setup_msi_irq(dev, msidesc, irq);
3515 if (ret < 0) 3505 if (ret < 0)
3516 goto error; 3506 goto error;
@@ -3528,7 +3518,7 @@ void arch_teardown_msi_irq(unsigned int irq)
3528 destroy_irq(irq); 3518 destroy_irq(irq);
3529} 3519}
3530 3520
3531#ifdef CONFIG_DMAR 3521#if defined (CONFIG_DMAR) || defined (CONFIG_INTR_REMAP)
3532#ifdef CONFIG_SMP 3522#ifdef CONFIG_SMP
3533static void dmar_msi_set_affinity(unsigned int irq, const struct cpumask *mask) 3523static void dmar_msi_set_affinity(unsigned int irq, const struct cpumask *mask)
3534{ 3524{
@@ -4045,11 +4035,9 @@ void __init setup_ioapic_dest(void)
4045 else 4035 else
4046 mask = apic->target_cpus(); 4036 mask = apic->target_cpus();
4047 4037
4048#ifdef CONFIG_INTR_REMAP
4049 if (intr_remapping_enabled) 4038 if (intr_remapping_enabled)
4050 set_ir_ioapic_affinity_irq_desc(desc, mask); 4039 set_ir_ioapic_affinity_irq_desc(desc, mask);
4051 else 4040 else
4052#endif
4053 set_ioapic_affinity_irq_desc(desc, mask); 4041 set_ioapic_affinity_irq_desc(desc, mask);
4054 } 4042 }
4055 4043
diff --git a/arch/x86/kernel/apic/probe_64.c b/arch/x86/kernel/apic/probe_64.c
index 8d7748efe6a8..1783652bb0e5 100644
--- a/arch/x86/kernel/apic/probe_64.c
+++ b/arch/x86/kernel/apic/probe_64.c
@@ -68,6 +68,13 @@ void __init default_setup_apic_routing(void)
68 apic = &apic_physflat; 68 apic = &apic_physflat;
69 printk(KERN_INFO "Setting APIC routing to %s\n", apic->name); 69 printk(KERN_INFO "Setting APIC routing to %s\n", apic->name);
70 } 70 }
71
72 /*
73 * Now that apic routing model is selected, configure the
74 * fault handling for intr remapping.
75 */
76 if (intr_remapping_enabled)
77 enable_drhd_fault_handling();
71} 78}
72 79
73/* Same for both flat and physical. */ 80/* Same for both flat and physical. */
diff --git a/arch/x86/kernel/apic/x2apic_cluster.c b/arch/x86/kernel/apic/x2apic_cluster.c
index 8fb87b6dd633..4a903e2f0d17 100644
--- a/arch/x86/kernel/apic/x2apic_cluster.c
+++ b/arch/x86/kernel/apic/x2apic_cluster.c
@@ -57,6 +57,8 @@ static void x2apic_send_IPI_mask(const struct cpumask *mask, int vector)
57 unsigned long query_cpu; 57 unsigned long query_cpu;
58 unsigned long flags; 58 unsigned long flags;
59 59
60 x2apic_wrmsr_fence();
61
60 local_irq_save(flags); 62 local_irq_save(flags);
61 for_each_cpu(query_cpu, mask) { 63 for_each_cpu(query_cpu, mask) {
62 __x2apic_send_IPI_dest( 64 __x2apic_send_IPI_dest(
@@ -73,6 +75,8 @@ static void
73 unsigned long query_cpu; 75 unsigned long query_cpu;
74 unsigned long flags; 76 unsigned long flags;
75 77
78 x2apic_wrmsr_fence();
79
76 local_irq_save(flags); 80 local_irq_save(flags);
77 for_each_cpu(query_cpu, mask) { 81 for_each_cpu(query_cpu, mask) {
78 if (query_cpu == this_cpu) 82 if (query_cpu == this_cpu)
@@ -90,6 +94,8 @@ static void x2apic_send_IPI_allbutself(int vector)
90 unsigned long query_cpu; 94 unsigned long query_cpu;
91 unsigned long flags; 95 unsigned long flags;
92 96
97 x2apic_wrmsr_fence();
98
93 local_irq_save(flags); 99 local_irq_save(flags);
94 for_each_online_cpu(query_cpu) { 100 for_each_online_cpu(query_cpu) {
95 if (query_cpu == this_cpu) 101 if (query_cpu == this_cpu)
diff --git a/arch/x86/kernel/apic/x2apic_phys.c b/arch/x86/kernel/apic/x2apic_phys.c
index 23625b9f98b2..a284359627e7 100644
--- a/arch/x86/kernel/apic/x2apic_phys.c
+++ b/arch/x86/kernel/apic/x2apic_phys.c
@@ -58,6 +58,8 @@ static void x2apic_send_IPI_mask(const struct cpumask *mask, int vector)
58 unsigned long query_cpu; 58 unsigned long query_cpu;
59 unsigned long flags; 59 unsigned long flags;
60 60
61 x2apic_wrmsr_fence();
62
61 local_irq_save(flags); 63 local_irq_save(flags);
62 for_each_cpu(query_cpu, mask) { 64 for_each_cpu(query_cpu, mask) {
63 __x2apic_send_IPI_dest(per_cpu(x86_cpu_to_apicid, query_cpu), 65 __x2apic_send_IPI_dest(per_cpu(x86_cpu_to_apicid, query_cpu),
@@ -73,6 +75,8 @@ static void
73 unsigned long query_cpu; 75 unsigned long query_cpu;
74 unsigned long flags; 76 unsigned long flags;
75 77
78 x2apic_wrmsr_fence();
79
76 local_irq_save(flags); 80 local_irq_save(flags);
77 for_each_cpu(query_cpu, mask) { 81 for_each_cpu(query_cpu, mask) {
78 if (query_cpu != this_cpu) 82 if (query_cpu != this_cpu)
@@ -89,6 +93,8 @@ static void x2apic_send_IPI_allbutself(int vector)
89 unsigned long query_cpu; 93 unsigned long query_cpu;
90 unsigned long flags; 94 unsigned long flags;
91 95
96 x2apic_wrmsr_fence();
97
92 local_irq_save(flags); 98 local_irq_save(flags);
93 for_each_online_cpu(query_cpu) { 99 for_each_online_cpu(query_cpu) {
94 if (query_cpu == this_cpu) 100 if (query_cpu == this_cpu)
diff --git a/arch/x86/kernel/check.c b/arch/x86/kernel/check.c
index b617b1164f1e..fc999e6fc46a 100644
--- a/arch/x86/kernel/check.c
+++ b/arch/x86/kernel/check.c
@@ -86,12 +86,12 @@ void __init setup_bios_corruption_check(void)
86 if (!(addr + 1)) 86 if (!(addr + 1))
87 break; 87 break;
88 88
89 if (addr >= corruption_check_size)
90 break;
91
89 if ((addr + size) > corruption_check_size) 92 if ((addr + size) > corruption_check_size)
90 size = corruption_check_size - addr; 93 size = corruption_check_size - addr;
91 94
92 if (size == 0)
93 break;
94
95 e820_update_range(addr, size, E820_RAM, E820_RESERVED); 95 e820_update_range(addr, size, E820_RAM, E820_RESERVED);
96 scan_areas[num_scan_areas].addr = addr; 96 scan_areas[num_scan_areas].addr = addr;
97 scan_areas[num_scan_areas].size = size; 97 scan_areas[num_scan_areas].size = size;
diff --git a/arch/x86/kernel/cpu/cpu_debug.c b/arch/x86/kernel/cpu/cpu_debug.c
index 21c0cf8ced18..46e29ab96c6a 100755
--- a/arch/x86/kernel/cpu/cpu_debug.c
+++ b/arch/x86/kernel/cpu/cpu_debug.c
@@ -64,6 +64,8 @@ static struct cpu_debug_base cpu_base[] = {
64 { "vmx", CPU_VMX, 0 }, 64 { "vmx", CPU_VMX, 0 },
65 { "call", CPU_CALL, 0 }, 65 { "call", CPU_CALL, 0 },
66 { "base", CPU_BASE, 0 }, 66 { "base", CPU_BASE, 0 },
67 { "ver", CPU_VER, 0 },
68 { "conf", CPU_CONF, 0 },
67 { "smm", CPU_SMM, 0 }, 69 { "smm", CPU_SMM, 0 },
68 { "svm", CPU_SVM, 0 }, 70 { "svm", CPU_SVM, 0 },
69 { "osvm", CPU_OSVM, 0 }, 71 { "osvm", CPU_OSVM, 0 },
@@ -177,54 +179,59 @@ static struct cpu_debug_range cpu_intel_range[] = {
177 179
178/* AMD Registers Range */ 180/* AMD Registers Range */
179static struct cpu_debug_range cpu_amd_range[] = { 181static struct cpu_debug_range cpu_amd_range[] = {
180 { 0x00000010, 0x00000010, CPU_TIME, CPU_ALL, }, 182 { 0x00000000, 0x00000001, CPU_MC, CPU_K10_PLUS, },
181 { 0x0000001B, 0x0000001B, CPU_APIC, CPU_ALL, }, 183 { 0x00000010, 0x00000010, CPU_TIME, CPU_K8_PLUS, },
182 { 0x000000FE, 0x000000FE, CPU_MTRR, CPU_ALL, }, 184 { 0x0000001B, 0x0000001B, CPU_APIC, CPU_K8_PLUS, },
183 185 { 0x0000002A, 0x0000002A, CPU_POWERON, CPU_K7_PLUS },
184 { 0x00000174, 0x00000176, CPU_SYSENTER, CPU_ALL, }, 186 { 0x0000008B, 0x0000008B, CPU_VER, CPU_K8_PLUS },
185 { 0x00000179, 0x0000017A, CPU_MC, CPU_ALL, }, 187 { 0x000000FE, 0x000000FE, CPU_MTRR, CPU_K8_PLUS, },
186 { 0x0000017B, 0x0000017B, CPU_MC, CPU_ALL, }, 188
187 { 0x000001D9, 0x000001D9, CPU_DEBUG, CPU_ALL, }, 189 { 0x00000174, 0x00000176, CPU_SYSENTER, CPU_K8_PLUS, },
188 { 0x000001DB, 0x000001DE, CPU_LBRANCH, CPU_ALL, }, 190 { 0x00000179, 0x0000017B, CPU_MC, CPU_K8_PLUS, },
189 191 { 0x000001D9, 0x000001D9, CPU_DEBUG, CPU_K8_PLUS, },
190 { 0x00000200, 0x0000020F, CPU_MTRR, CPU_ALL, }, 192 { 0x000001DB, 0x000001DE, CPU_LBRANCH, CPU_K8_PLUS, },
191 { 0x00000250, 0x00000250, CPU_MTRR, CPU_ALL, }, 193
192 { 0x00000258, 0x00000259, CPU_MTRR, CPU_ALL, }, 194 { 0x00000200, 0x0000020F, CPU_MTRR, CPU_K8_PLUS, },
193 { 0x00000268, 0x0000026F, CPU_MTRR, CPU_ALL, }, 195 { 0x00000250, 0x00000250, CPU_MTRR, CPU_K8_PLUS, },
194 { 0x00000277, 0x00000277, CPU_PAT, CPU_ALL, }, 196 { 0x00000258, 0x00000259, CPU_MTRR, CPU_K8_PLUS, },
195 { 0x000002FF, 0x000002FF, CPU_MTRR, CPU_ALL, }, 197 { 0x00000268, 0x0000026F, CPU_MTRR, CPU_K8_PLUS, },
196 198 { 0x00000277, 0x00000277, CPU_PAT, CPU_K8_PLUS, },
197 { 0x00000400, 0x00000417, CPU_MC, CPU_ALL, }, 199 { 0x000002FF, 0x000002FF, CPU_MTRR, CPU_K8_PLUS, },
198 200
199 { 0xC0000080, 0xC0000080, CPU_FEATURES, CPU_ALL, }, 201 { 0x00000400, 0x00000413, CPU_MC, CPU_K8_PLUS, },
200 { 0xC0000081, 0xC0000084, CPU_CALL, CPU_ALL, }, 202
201 { 0xC0000100, 0xC0000102, CPU_BASE, CPU_ALL, }, 203 { 0xC0000080, 0xC0000080, CPU_FEATURES, CPU_AMD_ALL, },
202 { 0xC0000103, 0xC0000103, CPU_TIME, CPU_ALL, }, 204 { 0xC0000081, 0xC0000084, CPU_CALL, CPU_K8_PLUS, },
203 205 { 0xC0000100, 0xC0000102, CPU_BASE, CPU_K8_PLUS, },
204 { 0xC0000408, 0xC000040A, CPU_MC, CPU_ALL, }, 206 { 0xC0000103, 0xC0000103, CPU_TIME, CPU_K10_PLUS, },
205 207
206 { 0xc0010000, 0xc0010007, CPU_PMC, CPU_ALL, }, 208 { 0xC0010000, 0xC0010007, CPU_PMC, CPU_K8_PLUS, },
207 { 0xc0010010, 0xc0010010, CPU_MTRR, CPU_ALL, }, 209 { 0xC0010010, 0xC0010010, CPU_CONF, CPU_K7_PLUS, },
208 { 0xc0010016, 0xc001001A, CPU_MTRR, CPU_ALL, }, 210 { 0xC0010015, 0xC0010015, CPU_CONF, CPU_K7_PLUS, },
209 { 0xc001001D, 0xc001001D, CPU_MTRR, CPU_ALL, }, 211 { 0xC0010016, 0xC001001A, CPU_MTRR, CPU_K8_PLUS, },
210 { 0xc0010030, 0xc0010035, CPU_BIOS, CPU_ALL, }, 212 { 0xC001001D, 0xC001001D, CPU_MTRR, CPU_K8_PLUS, },
211 { 0xc0010056, 0xc0010056, CPU_SMM, CPU_ALL, }, 213 { 0xC001001F, 0xC001001F, CPU_CONF, CPU_K8_PLUS, },
212 { 0xc0010061, 0xc0010063, CPU_SMM, CPU_ALL, }, 214 { 0xC0010030, 0xC0010035, CPU_BIOS, CPU_K8_PLUS, },
213 { 0xc0010074, 0xc0010074, CPU_MC, CPU_ALL, }, 215 { 0xC0010044, 0xC0010048, CPU_MC, CPU_K8_PLUS, },
214 { 0xc0010111, 0xc0010113, CPU_SMM, CPU_ALL, }, 216 { 0xC0010050, 0xC0010056, CPU_SMM, CPU_K0F_PLUS, },
215 { 0xc0010114, 0xc0010118, CPU_SVM, CPU_ALL, }, 217 { 0xC0010058, 0xC0010058, CPU_CONF, CPU_K10_PLUS, },
216 { 0xc0010119, 0xc001011A, CPU_SMM, CPU_ALL, }, 218 { 0xC0010060, 0xC0010060, CPU_CACHE, CPU_AMD_11, },
217 { 0xc0010140, 0xc0010141, CPU_OSVM, CPU_ALL, }, 219 { 0xC0010061, 0xC0010068, CPU_SMM, CPU_K10_PLUS, },
218 { 0xc0010156, 0xc0010156, CPU_SMM, CPU_ALL, }, 220 { 0xC0010069, 0xC001006B, CPU_SMM, CPU_AMD_11, },
221 { 0xC0010070, 0xC0010071, CPU_SMM, CPU_K10_PLUS, },
222 { 0xC0010111, 0xC0010113, CPU_SMM, CPU_K8_PLUS, },
223 { 0xC0010114, 0xC0010118, CPU_SVM, CPU_K10_PLUS, },
224 { 0xC0010140, 0xC0010141, CPU_OSVM, CPU_K10_PLUS, },
225 { 0xC0011022, 0xC0011023, CPU_CONF, CPU_K10_PLUS, },
219}; 226};
220 227
221 228
222static int get_cpu_modelflag(unsigned cpu) 229/* Intel */
230static int get_intel_modelflag(unsigned model)
223{ 231{
224 int flag; 232 int flag;
225 233
226 switch (per_cpu(cpu_model, cpu)) { 234 switch (model) {
227 /* Intel */
228 case 0x0501: 235 case 0x0501:
229 case 0x0502: 236 case 0x0502:
230 case 0x0504: 237 case 0x0504:
@@ -271,6 +278,59 @@ static int get_cpu_modelflag(unsigned cpu)
271 return flag; 278 return flag;
272} 279}
273 280
281/* AMD */
282static int get_amd_modelflag(unsigned model)
283{
284 int flag;
285
286 switch (model >> 8) {
287 case 0x6:
288 flag = CPU_AMD_K6;
289 break;
290 case 0x7:
291 flag = CPU_AMD_K7;
292 break;
293 case 0x8:
294 flag = CPU_AMD_K8;
295 break;
296 case 0xf:
297 flag = CPU_AMD_0F;
298 break;
299 case 0x10:
300 flag = CPU_AMD_10;
301 break;
302 case 0x11:
303 flag = CPU_AMD_11;
304 break;
305 default:
306 flag = CPU_NONE;
307 break;
308 }
309
310 return flag;
311}
312
313static int get_cpu_modelflag(unsigned cpu)
314{
315 int flag;
316
317 flag = per_cpu(cpu_model, cpu);
318
319 switch (flag >> 16) {
320 case X86_VENDOR_INTEL:
321 flag = get_intel_modelflag(flag);
322 break;
323 case X86_VENDOR_AMD:
324 flag = get_amd_modelflag(flag & 0xffff);
325 break;
326 default:
327 flag = CPU_NONE;
328 break;
329 }
330
331 return flag;
332}
333
274static int get_cpu_range_count(unsigned cpu) 334static int get_cpu_range_count(unsigned cpu)
275{ 335{
276 int index; 336 int index;
@@ -311,7 +371,8 @@ static int is_typeflag_valid(unsigned cpu, unsigned flag)
311 return 1; 371 return 1;
312 break; 372 break;
313 case X86_VENDOR_AMD: 373 case X86_VENDOR_AMD:
314 if (cpu_amd_range[i].flag & flag) 374 if ((cpu_amd_range[i].model & modelflag) &&
375 (cpu_amd_range[i].flag & flag))
315 return 1; 376 return 1;
316 break; 377 break;
317 } 378 }
@@ -337,7 +398,8 @@ static unsigned get_cpu_range(unsigned cpu, unsigned *min, unsigned *max,
337 } 398 }
338 break; 399 break;
339 case X86_VENDOR_AMD: 400 case X86_VENDOR_AMD:
340 if (cpu_amd_range[index].flag & flag) { 401 if ((cpu_amd_range[index].model & modelflag) &&
402 (cpu_amd_range[index].flag & flag)) {
341 *min = cpu_amd_range[index].min; 403 *min = cpu_amd_range[index].min;
342 *max = cpu_amd_range[index].max; 404 *max = cpu_amd_range[index].max;
343 } 405 }
diff --git a/arch/x86/kernel/cpu/mcheck/mce_amd_64.c b/arch/x86/kernel/cpu/mcheck/mce_amd_64.c
index c5a32f92d07e..7d01be868870 100644
--- a/arch/x86/kernel/cpu/mcheck/mce_amd_64.c
+++ b/arch/x86/kernel/cpu/mcheck/mce_amd_64.c
@@ -92,7 +92,8 @@ struct thresh_restart {
92}; 92};
93 93
94/* must be called with correct cpu affinity */ 94/* must be called with correct cpu affinity */
95static long threshold_restart_bank(void *_tr) 95/* Called via smp_call_function_single() */
96static void threshold_restart_bank(void *_tr)
96{ 97{
97 struct thresh_restart *tr = _tr; 98 struct thresh_restart *tr = _tr;
98 u32 mci_misc_hi, mci_misc_lo; 99 u32 mci_misc_hi, mci_misc_lo;
@@ -119,7 +120,6 @@ static long threshold_restart_bank(void *_tr)
119 120
120 mci_misc_hi |= MASK_COUNT_EN_HI; 121 mci_misc_hi |= MASK_COUNT_EN_HI;
121 wrmsr(tr->b->address, mci_misc_lo, mci_misc_hi); 122 wrmsr(tr->b->address, mci_misc_lo, mci_misc_hi);
122 return 0;
123} 123}
124 124
125/* cpu init entry point, called from mce.c with preempt off */ 125/* cpu init entry point, called from mce.c with preempt off */
@@ -279,7 +279,7 @@ static ssize_t store_interrupt_enable(struct threshold_block *b,
279 tr.b = b; 279 tr.b = b;
280 tr.reset = 0; 280 tr.reset = 0;
281 tr.old_limit = 0; 281 tr.old_limit = 0;
282 work_on_cpu(b->cpu, threshold_restart_bank, &tr); 282 smp_call_function_single(b->cpu, threshold_restart_bank, &tr, 1);
283 283
284 return end - buf; 284 return end - buf;
285} 285}
@@ -301,23 +301,32 @@ static ssize_t store_threshold_limit(struct threshold_block *b,
301 tr.b = b; 301 tr.b = b;
302 tr.reset = 0; 302 tr.reset = 0;
303 303
304 work_on_cpu(b->cpu, threshold_restart_bank, &tr); 304 smp_call_function_single(b->cpu, threshold_restart_bank, &tr, 1);
305 305
306 return end - buf; 306 return end - buf;
307} 307}
308 308
309static long local_error_count(void *_b) 309struct threshold_block_cross_cpu {
310 struct threshold_block *tb;
311 long retval;
312};
313
314static void local_error_count_handler(void *_tbcc)
310{ 315{
311 struct threshold_block *b = _b; 316 struct threshold_block_cross_cpu *tbcc = _tbcc;
317 struct threshold_block *b = tbcc->tb;
312 u32 low, high; 318 u32 low, high;
313 319
314 rdmsr(b->address, low, high); 320 rdmsr(b->address, low, high);
315 return (high & 0xFFF) - (THRESHOLD_MAX - b->threshold_limit); 321 tbcc->retval = (high & 0xFFF) - (THRESHOLD_MAX - b->threshold_limit);
316} 322}
317 323
318static ssize_t show_error_count(struct threshold_block *b, char *buf) 324static ssize_t show_error_count(struct threshold_block *b, char *buf)
319{ 325{
320 return sprintf(buf, "%lx\n", work_on_cpu(b->cpu, local_error_count, b)); 326 struct threshold_block_cross_cpu tbcc = { .tb = b, };
327
328 smp_call_function_single(b->cpu, local_error_count_handler, &tbcc, 1);
329 return sprintf(buf, "%lx\n", tbcc.retval);
321} 330}
322 331
323static ssize_t store_error_count(struct threshold_block *b, 332static ssize_t store_error_count(struct threshold_block *b,
@@ -325,7 +334,7 @@ static ssize_t store_error_count(struct threshold_block *b,
325{ 334{
326 struct thresh_restart tr = { .b = b, .reset = 1, .old_limit = 0 }; 335 struct thresh_restart tr = { .b = b, .reset = 1, .old_limit = 0 };
327 336
328 work_on_cpu(b->cpu, threshold_restart_bank, &tr); 337 smp_call_function_single(b->cpu, threshold_restart_bank, &tr, 1);
329 return 1; 338 return 1;
330} 339}
331 340
@@ -394,7 +403,7 @@ static __cpuinit int allocate_threshold_blocks(unsigned int cpu,
394 if ((bank >= NR_BANKS) || (block >= NR_BLOCKS)) 403 if ((bank >= NR_BANKS) || (block >= NR_BLOCKS))
395 return 0; 404 return 0;
396 405
397 if (rdmsr_safe(address, &low, &high)) 406 if (rdmsr_safe_on_cpu(cpu, address, &low, &high))
398 return 0; 407 return 0;
399 408
400 if (!(high & MASK_VALID_HI)) { 409 if (!(high & MASK_VALID_HI)) {
@@ -458,12 +467,11 @@ out_free:
458 return err; 467 return err;
459} 468}
460 469
461static __cpuinit long local_allocate_threshold_blocks(void *_bank) 470static __cpuinit long
471local_allocate_threshold_blocks(int cpu, unsigned int bank)
462{ 472{
463 unsigned int *bank = _bank; 473 return allocate_threshold_blocks(cpu, bank, 0,
464 474 MSR_IA32_MC0_MISC + bank * 4);
465 return allocate_threshold_blocks(smp_processor_id(), *bank, 0,
466 MSR_IA32_MC0_MISC + *bank * 4);
467} 475}
468 476
469/* symlinks sibling shared banks to first core. first core owns dir/files. */ 477/* symlinks sibling shared banks to first core. first core owns dir/files. */
@@ -526,7 +534,7 @@ static __cpuinit int threshold_create_bank(unsigned int cpu, unsigned int bank)
526 534
527 per_cpu(threshold_banks, cpu)[bank] = b; 535 per_cpu(threshold_banks, cpu)[bank] = b;
528 536
529 err = work_on_cpu(cpu, local_allocate_threshold_blocks, &bank); 537 err = local_allocate_threshold_blocks(cpu, bank);
530 if (err) 538 if (err)
531 goto out_free; 539 goto out_free;
532 540
diff --git a/arch/x86/kernel/cpu/mcheck/mce_intel_64.c b/arch/x86/kernel/cpu/mcheck/mce_intel_64.c
index aaa7d9730938..57df3d383470 100644
--- a/arch/x86/kernel/cpu/mcheck/mce_intel_64.c
+++ b/arch/x86/kernel/cpu/mcheck/mce_intel_64.c
@@ -270,7 +270,7 @@ void cmci_reenable(void)
270 cmci_discover(banks, 0); 270 cmci_discover(banks, 0);
271} 271}
272 272
273static __cpuinit void intel_init_cmci(void) 273static void intel_init_cmci(void)
274{ 274{
275 int banks; 275 int banks;
276 276
diff --git a/arch/x86/kernel/cpu/mtrr/Makefile b/arch/x86/kernel/cpu/mtrr/Makefile
index 191fc0533649..f4361b56f8e9 100644
--- a/arch/x86/kernel/cpu/mtrr/Makefile
+++ b/arch/x86/kernel/cpu/mtrr/Makefile
@@ -1,3 +1,3 @@
1obj-y := main.o if.o generic.o state.o 1obj-y := main.o if.o generic.o state.o cleanup.o
2obj-$(CONFIG_X86_32) += amd.o cyrix.o centaur.o 2obj-$(CONFIG_X86_32) += amd.o cyrix.o centaur.o
3 3
diff --git a/arch/x86/kernel/cpu/mtrr/cleanup.c b/arch/x86/kernel/cpu/mtrr/cleanup.c
new file mode 100644
index 000000000000..ce0fe4b5c04f
--- /dev/null
+++ b/arch/x86/kernel/cpu/mtrr/cleanup.c
@@ -0,0 +1,1101 @@
1/* MTRR (Memory Type Range Register) cleanup
2
3 Copyright (C) 2009 Yinghai Lu
4
5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Library General Public
7 License as published by the Free Software Foundation; either
8 version 2 of the License, or (at your option) any later version.
9
10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Library General Public License for more details.
14
15 You should have received a copy of the GNU Library General Public
16 License along with this library; if not, write to the Free
17 Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18*/
19
20#include <linux/module.h>
21#include <linux/init.h>
22#include <linux/pci.h>
23#include <linux/smp.h>
24#include <linux/cpu.h>
25#include <linux/mutex.h>
26#include <linux/sort.h>
27
28#include <asm/e820.h>
29#include <asm/mtrr.h>
30#include <asm/uaccess.h>
31#include <asm/processor.h>
32#include <asm/msr.h>
33#include <asm/kvm_para.h>
34#include "mtrr.h"
35
36/* should be related to MTRR_VAR_RANGES nums */
37#define RANGE_NUM 256
38
39struct res_range {
40 unsigned long start;
41 unsigned long end;
42};
43
44static int __init
45add_range(struct res_range *range, int nr_range, unsigned long start,
46 unsigned long end)
47{
48 /* out of slots */
49 if (nr_range >= RANGE_NUM)
50 return nr_range;
51
52 range[nr_range].start = start;
53 range[nr_range].end = end;
54
55 nr_range++;
56
57 return nr_range;
58}
59
60static int __init
61add_range_with_merge(struct res_range *range, int nr_range, unsigned long start,
62 unsigned long end)
63{
64 int i;
65
66 /* try to merge it with old one */
67 for (i = 0; i < nr_range; i++) {
68 unsigned long final_start, final_end;
69 unsigned long common_start, common_end;
70
71 if (!range[i].end)
72 continue;
73
74 common_start = max(range[i].start, start);
75 common_end = min(range[i].end, end);
76 if (common_start > common_end + 1)
77 continue;
78
79 final_start = min(range[i].start, start);
80 final_end = max(range[i].end, end);
81
82 range[i].start = final_start;
83 range[i].end = final_end;
84 return nr_range;
85 }
86
87 /* need to add that */
88 return add_range(range, nr_range, start, end);
89}
90
91static void __init
92subtract_range(struct res_range *range, unsigned long start, unsigned long end)
93{
94 int i, j;
95
96 for (j = 0; j < RANGE_NUM; j++) {
97 if (!range[j].end)
98 continue;
99
100 if (start <= range[j].start && end >= range[j].end) {
101 range[j].start = 0;
102 range[j].end = 0;
103 continue;
104 }
105
106 if (start <= range[j].start && end < range[j].end &&
107 range[j].start < end + 1) {
108 range[j].start = end + 1;
109 continue;
110 }
111
112
113 if (start > range[j].start && end >= range[j].end &&
114 range[j].end > start - 1) {
115 range[j].end = start - 1;
116 continue;
117 }
118
119 if (start > range[j].start && end < range[j].end) {
120 /* find the new spare */
121 for (i = 0; i < RANGE_NUM; i++) {
122 if (range[i].end == 0)
123 break;
124 }
125 if (i < RANGE_NUM) {
126 range[i].end = range[j].end;
127 range[i].start = end + 1;
128 } else {
129 printk(KERN_ERR "run of slot in ranges\n");
130 }
131 range[j].end = start - 1;
132 continue;
133 }
134 }
135}
136
137static int __init cmp_range(const void *x1, const void *x2)
138{
139 const struct res_range *r1 = x1;
140 const struct res_range *r2 = x2;
141 long start1, start2;
142
143 start1 = r1->start;
144 start2 = r2->start;
145
146 return start1 - start2;
147}
148
149struct var_mtrr_range_state {
150 unsigned long base_pfn;
151 unsigned long size_pfn;
152 mtrr_type type;
153};
154
155static struct var_mtrr_range_state __initdata range_state[RANGE_NUM];
156static int __initdata debug_print;
157
158static int __init
159x86_get_mtrr_mem_range(struct res_range *range, int nr_range,
160 unsigned long extra_remove_base,
161 unsigned long extra_remove_size)
162{
163 unsigned long base, size;
164 mtrr_type type;
165 int i;
166
167 for (i = 0; i < num_var_ranges; i++) {
168 type = range_state[i].type;
169 if (type != MTRR_TYPE_WRBACK)
170 continue;
171 base = range_state[i].base_pfn;
172 size = range_state[i].size_pfn;
173 nr_range = add_range_with_merge(range, nr_range, base,
174 base + size - 1);
175 }
176 if (debug_print) {
177 printk(KERN_DEBUG "After WB checking\n");
178 for (i = 0; i < nr_range; i++)
179 printk(KERN_DEBUG "MTRR MAP PFN: %016lx - %016lx\n",
180 range[i].start, range[i].end + 1);
181 }
182
183 /* take out UC ranges */
184 for (i = 0; i < num_var_ranges; i++) {
185 type = range_state[i].type;
186 if (type != MTRR_TYPE_UNCACHABLE &&
187 type != MTRR_TYPE_WRPROT)
188 continue;
189 size = range_state[i].size_pfn;
190 if (!size)
191 continue;
192 base = range_state[i].base_pfn;
193 if (base < (1<<(20-PAGE_SHIFT)) && mtrr_state.have_fixed &&
194 (mtrr_state.enabled & 1)) {
195 /* Var MTRR contains UC entry below 1M? Skip it: */
196 printk(KERN_WARNING "WARNING: BIOS bug: VAR MTRR %d "
197 "contains strange UC entry under 1M, check "
198 "with your system vendor!\n", i);
199 if (base + size <= (1<<(20-PAGE_SHIFT)))
200 continue;
201 size -= (1<<(20-PAGE_SHIFT)) - base;
202 base = 1<<(20-PAGE_SHIFT);
203 }
204 subtract_range(range, base, base + size - 1);
205 }
206 if (extra_remove_size)
207 subtract_range(range, extra_remove_base,
208 extra_remove_base + extra_remove_size - 1);
209
210 /* get new range num */
211 nr_range = 0;
212 for (i = 0; i < RANGE_NUM; i++) {
213 if (!range[i].end)
214 continue;
215 nr_range++;
216 }
217 if (debug_print) {
218 printk(KERN_DEBUG "After UC checking\n");
219 for (i = 0; i < nr_range; i++)
220 printk(KERN_DEBUG "MTRR MAP PFN: %016lx - %016lx\n",
221 range[i].start, range[i].end + 1);
222 }
223
224 /* sort the ranges */
225 sort(range, nr_range, sizeof(struct res_range), cmp_range, NULL);
226 if (debug_print) {
227 printk(KERN_DEBUG "After sorting\n");
228 for (i = 0; i < nr_range; i++)
229 printk(KERN_DEBUG "MTRR MAP PFN: %016lx - %016lx\n",
230 range[i].start, range[i].end + 1);
231 }
232
233 /* clear those is not used */
234 for (i = nr_range; i < RANGE_NUM; i++)
235 memset(&range[i], 0, sizeof(range[i]));
236
237 return nr_range;
238}
239
240static struct res_range __initdata range[RANGE_NUM];
241static int __initdata nr_range;
242
243#ifdef CONFIG_MTRR_SANITIZER
244
245static unsigned long __init sum_ranges(struct res_range *range, int nr_range)
246{
247 unsigned long sum;
248 int i;
249
250 sum = 0;
251 for (i = 0; i < nr_range; i++)
252 sum += range[i].end + 1 - range[i].start;
253
254 return sum;
255}
256
257static int enable_mtrr_cleanup __initdata =
258 CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT;
259
260static int __init disable_mtrr_cleanup_setup(char *str)
261{
262 enable_mtrr_cleanup = 0;
263 return 0;
264}
265early_param("disable_mtrr_cleanup", disable_mtrr_cleanup_setup);
266
267static int __init enable_mtrr_cleanup_setup(char *str)
268{
269 enable_mtrr_cleanup = 1;
270 return 0;
271}
272early_param("enable_mtrr_cleanup", enable_mtrr_cleanup_setup);
273
274static int __init mtrr_cleanup_debug_setup(char *str)
275{
276 debug_print = 1;
277 return 0;
278}
279early_param("mtrr_cleanup_debug", mtrr_cleanup_debug_setup);
280
281struct var_mtrr_state {
282 unsigned long range_startk;
283 unsigned long range_sizek;
284 unsigned long chunk_sizek;
285 unsigned long gran_sizek;
286 unsigned int reg;
287};
288
289static void __init
290set_var_mtrr(unsigned int reg, unsigned long basek, unsigned long sizek,
291 unsigned char type, unsigned int address_bits)
292{
293 u32 base_lo, base_hi, mask_lo, mask_hi;
294 u64 base, mask;
295
296 if (!sizek) {
297 fill_mtrr_var_range(reg, 0, 0, 0, 0);
298 return;
299 }
300
301 mask = (1ULL << address_bits) - 1;
302 mask &= ~((((u64)sizek) << 10) - 1);
303
304 base = ((u64)basek) << 10;
305
306 base |= type;
307 mask |= 0x800;
308
309 base_lo = base & ((1ULL<<32) - 1);
310 base_hi = base >> 32;
311
312 mask_lo = mask & ((1ULL<<32) - 1);
313 mask_hi = mask >> 32;
314
315 fill_mtrr_var_range(reg, base_lo, base_hi, mask_lo, mask_hi);
316}
317
318static void __init
319save_var_mtrr(unsigned int reg, unsigned long basek, unsigned long sizek,
320 unsigned char type)
321{
322 range_state[reg].base_pfn = basek >> (PAGE_SHIFT - 10);
323 range_state[reg].size_pfn = sizek >> (PAGE_SHIFT - 10);
324 range_state[reg].type = type;
325}
326
327static void __init
328set_var_mtrr_all(unsigned int address_bits)
329{
330 unsigned long basek, sizek;
331 unsigned char type;
332 unsigned int reg;
333
334 for (reg = 0; reg < num_var_ranges; reg++) {
335 basek = range_state[reg].base_pfn << (PAGE_SHIFT - 10);
336 sizek = range_state[reg].size_pfn << (PAGE_SHIFT - 10);
337 type = range_state[reg].type;
338
339 set_var_mtrr(reg, basek, sizek, type, address_bits);
340 }
341}
342
343static unsigned long to_size_factor(unsigned long sizek, char *factorp)
344{
345 char factor;
346 unsigned long base = sizek;
347
348 if (base & ((1<<10) - 1)) {
349 /* not MB alignment */
350 factor = 'K';
351 } else if (base & ((1<<20) - 1)) {
352 factor = 'M';
353 base >>= 10;
354 } else {
355 factor = 'G';
356 base >>= 20;
357 }
358
359 *factorp = factor;
360
361 return base;
362}
363
364static unsigned int __init
365range_to_mtrr(unsigned int reg, unsigned long range_startk,
366 unsigned long range_sizek, unsigned char type)
367{
368 if (!range_sizek || (reg >= num_var_ranges))
369 return reg;
370
371 while (range_sizek) {
372 unsigned long max_align, align;
373 unsigned long sizek;
374
375 /* Compute the maximum size I can make a range */
376 if (range_startk)
377 max_align = ffs(range_startk) - 1;
378 else
379 max_align = 32;
380 align = fls(range_sizek) - 1;
381 if (align > max_align)
382 align = max_align;
383
384 sizek = 1 << align;
385 if (debug_print) {
386 char start_factor = 'K', size_factor = 'K';
387 unsigned long start_base, size_base;
388
389 start_base = to_size_factor(range_startk,
390 &start_factor),
391 size_base = to_size_factor(sizek, &size_factor),
392
393 printk(KERN_DEBUG "Setting variable MTRR %d, "
394 "base: %ld%cB, range: %ld%cB, type %s\n",
395 reg, start_base, start_factor,
396 size_base, size_factor,
397 (type == MTRR_TYPE_UNCACHABLE) ? "UC" :
398 ((type == MTRR_TYPE_WRBACK) ? "WB" : "Other")
399 );
400 }
401 save_var_mtrr(reg++, range_startk, sizek, type);
402 range_startk += sizek;
403 range_sizek -= sizek;
404 if (reg >= num_var_ranges)
405 break;
406 }
407 return reg;
408}
409
410static unsigned __init
411range_to_mtrr_with_hole(struct var_mtrr_state *state, unsigned long basek,
412 unsigned long sizek)
413{
414 unsigned long hole_basek, hole_sizek;
415 unsigned long second_basek, second_sizek;
416 unsigned long range0_basek, range0_sizek;
417 unsigned long range_basek, range_sizek;
418 unsigned long chunk_sizek;
419 unsigned long gran_sizek;
420
421 hole_basek = 0;
422 hole_sizek = 0;
423 second_basek = 0;
424 second_sizek = 0;
425 chunk_sizek = state->chunk_sizek;
426 gran_sizek = state->gran_sizek;
427
428 /* align with gran size, prevent small block used up MTRRs */
429 range_basek = ALIGN(state->range_startk, gran_sizek);
430 if ((range_basek > basek) && basek)
431 return second_sizek;
432 state->range_sizek -= (range_basek - state->range_startk);
433 range_sizek = ALIGN(state->range_sizek, gran_sizek);
434
435 while (range_sizek > state->range_sizek) {
436 range_sizek -= gran_sizek;
437 if (!range_sizek)
438 return 0;
439 }
440 state->range_sizek = range_sizek;
441
442 /* try to append some small hole */
443 range0_basek = state->range_startk;
444 range0_sizek = ALIGN(state->range_sizek, chunk_sizek);
445
446 /* no increase */
447 if (range0_sizek == state->range_sizek) {
448 if (debug_print)
449 printk(KERN_DEBUG "rangeX: %016lx - %016lx\n",
450 range0_basek<<10,
451 (range0_basek + state->range_sizek)<<10);
452 state->reg = range_to_mtrr(state->reg, range0_basek,
453 state->range_sizek, MTRR_TYPE_WRBACK);
454 return 0;
455 }
456
457 /* only cut back, when it is not the last */
458 if (sizek) {
459 while (range0_basek + range0_sizek > (basek + sizek)) {
460 if (range0_sizek >= chunk_sizek)
461 range0_sizek -= chunk_sizek;
462 else
463 range0_sizek = 0;
464
465 if (!range0_sizek)
466 break;
467 }
468 }
469
470second_try:
471 range_basek = range0_basek + range0_sizek;
472
473 /* one hole in the middle */
474 if (range_basek > basek && range_basek <= (basek + sizek))
475 second_sizek = range_basek - basek;
476
477 if (range0_sizek > state->range_sizek) {
478
479 /* one hole in middle or at end */
480 hole_sizek = range0_sizek - state->range_sizek - second_sizek;
481
482 /* hole size should be less than half of range0 size */
483 if (hole_sizek >= (range0_sizek >> 1) &&
484 range0_sizek >= chunk_sizek) {
485 range0_sizek -= chunk_sizek;
486 second_sizek = 0;
487 hole_sizek = 0;
488
489 goto second_try;
490 }
491 }
492
493 if (range0_sizek) {
494 if (debug_print)
495 printk(KERN_DEBUG "range0: %016lx - %016lx\n",
496 range0_basek<<10,
497 (range0_basek + range0_sizek)<<10);
498 state->reg = range_to_mtrr(state->reg, range0_basek,
499 range0_sizek, MTRR_TYPE_WRBACK);
500 }
501
502 if (range0_sizek < state->range_sizek) {
503 /* need to handle left over */
504 range_sizek = state->range_sizek - range0_sizek;
505
506 if (debug_print)
507 printk(KERN_DEBUG "range: %016lx - %016lx\n",
508 range_basek<<10,
509 (range_basek + range_sizek)<<10);
510 state->reg = range_to_mtrr(state->reg, range_basek,
511 range_sizek, MTRR_TYPE_WRBACK);
512 }
513
514 if (hole_sizek) {
515 hole_basek = range_basek - hole_sizek - second_sizek;
516 if (debug_print)
517 printk(KERN_DEBUG "hole: %016lx - %016lx\n",
518 hole_basek<<10,
519 (hole_basek + hole_sizek)<<10);
520 state->reg = range_to_mtrr(state->reg, hole_basek,
521 hole_sizek, MTRR_TYPE_UNCACHABLE);
522 }
523
524 return second_sizek;
525}
526
527static void __init
528set_var_mtrr_range(struct var_mtrr_state *state, unsigned long base_pfn,
529 unsigned long size_pfn)
530{
531 unsigned long basek, sizek;
532 unsigned long second_sizek = 0;
533
534 if (state->reg >= num_var_ranges)
535 return;
536
537 basek = base_pfn << (PAGE_SHIFT - 10);
538 sizek = size_pfn << (PAGE_SHIFT - 10);
539
540 /* See if I can merge with the last range */
541 if ((basek <= 1024) ||
542 (state->range_startk + state->range_sizek == basek)) {
543 unsigned long endk = basek + sizek;
544 state->range_sizek = endk - state->range_startk;
545 return;
546 }
547 /* Write the range mtrrs */
548 if (state->range_sizek != 0)
549 second_sizek = range_to_mtrr_with_hole(state, basek, sizek);
550
551 /* Allocate an msr */
552 state->range_startk = basek + second_sizek;
553 state->range_sizek = sizek - second_sizek;
554}
555
556/* mininum size of mtrr block that can take hole */
557static u64 mtrr_chunk_size __initdata = (256ULL<<20);
558
559static int __init parse_mtrr_chunk_size_opt(char *p)
560{
561 if (!p)
562 return -EINVAL;
563 mtrr_chunk_size = memparse(p, &p);
564 return 0;
565}
566early_param("mtrr_chunk_size", parse_mtrr_chunk_size_opt);
567
568/* granity of mtrr of block */
569static u64 mtrr_gran_size __initdata;
570
571static int __init parse_mtrr_gran_size_opt(char *p)
572{
573 if (!p)
574 return -EINVAL;
575 mtrr_gran_size = memparse(p, &p);
576 return 0;
577}
578early_param("mtrr_gran_size", parse_mtrr_gran_size_opt);
579
580static int nr_mtrr_spare_reg __initdata =
581 CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT;
582
583static int __init parse_mtrr_spare_reg(char *arg)
584{
585 if (arg)
586 nr_mtrr_spare_reg = simple_strtoul(arg, NULL, 0);
587 return 0;
588}
589
590early_param("mtrr_spare_reg_nr", parse_mtrr_spare_reg);
591
592static int __init
593x86_setup_var_mtrrs(struct res_range *range, int nr_range,
594 u64 chunk_size, u64 gran_size)
595{
596 struct var_mtrr_state var_state;
597 int i;
598 int num_reg;
599
600 var_state.range_startk = 0;
601 var_state.range_sizek = 0;
602 var_state.reg = 0;
603 var_state.chunk_sizek = chunk_size >> 10;
604 var_state.gran_sizek = gran_size >> 10;
605
606 memset(range_state, 0, sizeof(range_state));
607
608 /* Write the range etc */
609 for (i = 0; i < nr_range; i++)
610 set_var_mtrr_range(&var_state, range[i].start,
611 range[i].end - range[i].start + 1);
612
613 /* Write the last range */
614 if (var_state.range_sizek != 0)
615 range_to_mtrr_with_hole(&var_state, 0, 0);
616
617 num_reg = var_state.reg;
618 /* Clear out the extra MTRR's */
619 while (var_state.reg < num_var_ranges) {
620 save_var_mtrr(var_state.reg, 0, 0, 0);
621 var_state.reg++;
622 }
623
624 return num_reg;
625}
626
627struct mtrr_cleanup_result {
628 unsigned long gran_sizek;
629 unsigned long chunk_sizek;
630 unsigned long lose_cover_sizek;
631 unsigned int num_reg;
632 int bad;
633};
634
635/*
636 * gran_size: 64K, 128K, 256K, 512K, 1M, 2M, ..., 2G
637 * chunk size: gran_size, ..., 2G
638 * so we need (1+16)*8
639 */
640#define NUM_RESULT 136
641#define PSHIFT (PAGE_SHIFT - 10)
642
643static struct mtrr_cleanup_result __initdata result[NUM_RESULT];
644static unsigned long __initdata min_loss_pfn[RANGE_NUM];
645
646static void __init print_out_mtrr_range_state(void)
647{
648 int i;
649 char start_factor = 'K', size_factor = 'K';
650 unsigned long start_base, size_base;
651 mtrr_type type;
652
653 for (i = 0; i < num_var_ranges; i++) {
654
655 size_base = range_state[i].size_pfn << (PAGE_SHIFT - 10);
656 if (!size_base)
657 continue;
658
659 size_base = to_size_factor(size_base, &size_factor),
660 start_base = range_state[i].base_pfn << (PAGE_SHIFT - 10);
661 start_base = to_size_factor(start_base, &start_factor),
662 type = range_state[i].type;
663
664 printk(KERN_DEBUG "reg %d, base: %ld%cB, range: %ld%cB, type %s\n",
665 i, start_base, start_factor,
666 size_base, size_factor,
667 (type == MTRR_TYPE_UNCACHABLE) ? "UC" :
668 ((type == MTRR_TYPE_WRPROT) ? "WP" :
669 ((type == MTRR_TYPE_WRBACK) ? "WB" : "Other"))
670 );
671 }
672}
673
674static int __init mtrr_need_cleanup(void)
675{
676 int i;
677 mtrr_type type;
678 unsigned long size;
679 /* extra one for all 0 */
680 int num[MTRR_NUM_TYPES + 1];
681
682 /* check entries number */
683 memset(num, 0, sizeof(num));
684 for (i = 0; i < num_var_ranges; i++) {
685 type = range_state[i].type;
686 size = range_state[i].size_pfn;
687 if (type >= MTRR_NUM_TYPES)
688 continue;
689 if (!size)
690 type = MTRR_NUM_TYPES;
691 if (type == MTRR_TYPE_WRPROT)
692 type = MTRR_TYPE_UNCACHABLE;
693 num[type]++;
694 }
695
696 /* check if we got UC entries */
697 if (!num[MTRR_TYPE_UNCACHABLE])
698 return 0;
699
700 /* check if we only had WB and UC */
701 if (num[MTRR_TYPE_WRBACK] + num[MTRR_TYPE_UNCACHABLE] !=
702 num_var_ranges - num[MTRR_NUM_TYPES])
703 return 0;
704
705 return 1;
706}
707
708static unsigned long __initdata range_sums;
709static void __init mtrr_calc_range_state(u64 chunk_size, u64 gran_size,
710 unsigned long extra_remove_base,
711 unsigned long extra_remove_size,
712 int i)
713{
714 int num_reg;
715 static struct res_range range_new[RANGE_NUM];
716 static int nr_range_new;
717 unsigned long range_sums_new;
718
719 /* convert ranges to var ranges state */
720 num_reg = x86_setup_var_mtrrs(range, nr_range,
721 chunk_size, gran_size);
722
723 /* we got new setting in range_state, check it */
724 memset(range_new, 0, sizeof(range_new));
725 nr_range_new = x86_get_mtrr_mem_range(range_new, 0,
726 extra_remove_base, extra_remove_size);
727 range_sums_new = sum_ranges(range_new, nr_range_new);
728
729 result[i].chunk_sizek = chunk_size >> 10;
730 result[i].gran_sizek = gran_size >> 10;
731 result[i].num_reg = num_reg;
732 if (range_sums < range_sums_new) {
733 result[i].lose_cover_sizek =
734 (range_sums_new - range_sums) << PSHIFT;
735 result[i].bad = 1;
736 } else
737 result[i].lose_cover_sizek =
738 (range_sums - range_sums_new) << PSHIFT;
739
740 /* double check it */
741 if (!result[i].bad && !result[i].lose_cover_sizek) {
742 if (nr_range_new != nr_range ||
743 memcmp(range, range_new, sizeof(range)))
744 result[i].bad = 1;
745 }
746
747 if (!result[i].bad && (range_sums - range_sums_new <
748 min_loss_pfn[num_reg])) {
749 min_loss_pfn[num_reg] =
750 range_sums - range_sums_new;
751 }
752}
753
754static void __init mtrr_print_out_one_result(int i)
755{
756 char gran_factor, chunk_factor, lose_factor;
757 unsigned long gran_base, chunk_base, lose_base;
758
759 gran_base = to_size_factor(result[i].gran_sizek, &gran_factor),
760 chunk_base = to_size_factor(result[i].chunk_sizek, &chunk_factor),
761 lose_base = to_size_factor(result[i].lose_cover_sizek, &lose_factor),
762 printk(KERN_INFO "%sgran_size: %ld%c \tchunk_size: %ld%c \t",
763 result[i].bad ? "*BAD*" : " ",
764 gran_base, gran_factor, chunk_base, chunk_factor);
765 printk(KERN_CONT "num_reg: %d \tlose cover RAM: %s%ld%c\n",
766 result[i].num_reg, result[i].bad ? "-" : "",
767 lose_base, lose_factor);
768}
769
770static int __init mtrr_search_optimal_index(void)
771{
772 int i;
773 int num_reg_good;
774 int index_good;
775
776 if (nr_mtrr_spare_reg >= num_var_ranges)
777 nr_mtrr_spare_reg = num_var_ranges - 1;
778 num_reg_good = -1;
779 for (i = num_var_ranges - nr_mtrr_spare_reg; i > 0; i--) {
780 if (!min_loss_pfn[i])
781 num_reg_good = i;
782 }
783
784 index_good = -1;
785 if (num_reg_good != -1) {
786 for (i = 0; i < NUM_RESULT; i++) {
787 if (!result[i].bad &&
788 result[i].num_reg == num_reg_good &&
789 !result[i].lose_cover_sizek) {
790 index_good = i;
791 break;
792 }
793 }
794 }
795
796 return index_good;
797}
798
799
800int __init mtrr_cleanup(unsigned address_bits)
801{
802 unsigned long extra_remove_base, extra_remove_size;
803 unsigned long base, size, def, dummy;
804 mtrr_type type;
805 u64 chunk_size, gran_size;
806 int index_good;
807 int i;
808
809 if (!is_cpu(INTEL) || enable_mtrr_cleanup < 1)
810 return 0;
811 rdmsr(MTRRdefType_MSR, def, dummy);
812 def &= 0xff;
813 if (def != MTRR_TYPE_UNCACHABLE)
814 return 0;
815
816 /* get it and store it aside */
817 memset(range_state, 0, sizeof(range_state));
818 for (i = 0; i < num_var_ranges; i++) {
819 mtrr_if->get(i, &base, &size, &type);
820 range_state[i].base_pfn = base;
821 range_state[i].size_pfn = size;
822 range_state[i].type = type;
823 }
824
825 /* check if we need handle it and can handle it */
826 if (!mtrr_need_cleanup())
827 return 0;
828
829 /* print original var MTRRs at first, for debugging: */
830 printk(KERN_DEBUG "original variable MTRRs\n");
831 print_out_mtrr_range_state();
832
833 memset(range, 0, sizeof(range));
834 extra_remove_size = 0;
835 extra_remove_base = 1 << (32 - PAGE_SHIFT);
836 if (mtrr_tom2)
837 extra_remove_size =
838 (mtrr_tom2 >> PAGE_SHIFT) - extra_remove_base;
839 nr_range = x86_get_mtrr_mem_range(range, 0, extra_remove_base,
840 extra_remove_size);
841 /*
842 * [0, 1M) should always be coverred by var mtrr with WB
843 * and fixed mtrrs should take effective before var mtrr for it
844 */
845 nr_range = add_range_with_merge(range, nr_range, 0,
846 (1ULL<<(20 - PAGE_SHIFT)) - 1);
847 /* sort the ranges */
848 sort(range, nr_range, sizeof(struct res_range), cmp_range, NULL);
849
850 range_sums = sum_ranges(range, nr_range);
851 printk(KERN_INFO "total RAM coverred: %ldM\n",
852 range_sums >> (20 - PAGE_SHIFT));
853
854 if (mtrr_chunk_size && mtrr_gran_size) {
855 i = 0;
856 mtrr_calc_range_state(mtrr_chunk_size, mtrr_gran_size,
857 extra_remove_base, extra_remove_size, i);
858
859 mtrr_print_out_one_result(i);
860
861 if (!result[i].bad) {
862 set_var_mtrr_all(address_bits);
863 printk(KERN_DEBUG "New variable MTRRs\n");
864 print_out_mtrr_range_state();
865 return 1;
866 }
867 printk(KERN_INFO "invalid mtrr_gran_size or mtrr_chunk_size, "
868 "will find optimal one\n");
869 }
870
871 i = 0;
872 memset(min_loss_pfn, 0xff, sizeof(min_loss_pfn));
873 memset(result, 0, sizeof(result));
874 for (gran_size = (1ULL<<16); gran_size < (1ULL<<32); gran_size <<= 1) {
875
876 for (chunk_size = gran_size; chunk_size < (1ULL<<32);
877 chunk_size <<= 1) {
878
879 if (i >= NUM_RESULT)
880 continue;
881
882 mtrr_calc_range_state(chunk_size, gran_size,
883 extra_remove_base, extra_remove_size, i);
884 if (debug_print) {
885 mtrr_print_out_one_result(i);
886 printk(KERN_INFO "\n");
887 }
888
889 i++;
890 }
891 }
892
893 /* try to find the optimal index */
894 index_good = mtrr_search_optimal_index();
895
896 if (index_good != -1) {
897 printk(KERN_INFO "Found optimal setting for mtrr clean up\n");
898 i = index_good;
899 mtrr_print_out_one_result(i);
900
901 /* convert ranges to var ranges state */
902 chunk_size = result[i].chunk_sizek;
903 chunk_size <<= 10;
904 gran_size = result[i].gran_sizek;
905 gran_size <<= 10;
906 x86_setup_var_mtrrs(range, nr_range, chunk_size, gran_size);
907 set_var_mtrr_all(address_bits);
908 printk(KERN_DEBUG "New variable MTRRs\n");
909 print_out_mtrr_range_state();
910 return 1;
911 } else {
912 /* print out all */
913 for (i = 0; i < NUM_RESULT; i++)
914 mtrr_print_out_one_result(i);
915 }
916
917 printk(KERN_INFO "mtrr_cleanup: can not find optimal value\n");
918 printk(KERN_INFO "please specify mtrr_gran_size/mtrr_chunk_size\n");
919
920 return 0;
921}
922#else
923int __init mtrr_cleanup(unsigned address_bits)
924{
925 return 0;
926}
927#endif
928
929static int disable_mtrr_trim;
930
931static int __init disable_mtrr_trim_setup(char *str)
932{
933 disable_mtrr_trim = 1;
934 return 0;
935}
936early_param("disable_mtrr_trim", disable_mtrr_trim_setup);
937
938/*
939 * Newer AMD K8s and later CPUs have a special magic MSR way to force WB
940 * for memory >4GB. Check for that here.
941 * Note this won't check if the MTRRs < 4GB where the magic bit doesn't
942 * apply to are wrong, but so far we don't know of any such case in the wild.
943 */
944#define Tom2Enabled (1U << 21)
945#define Tom2ForceMemTypeWB (1U << 22)
946
947int __init amd_special_default_mtrr(void)
948{
949 u32 l, h;
950
951 if (boot_cpu_data.x86_vendor != X86_VENDOR_AMD)
952 return 0;
953 if (boot_cpu_data.x86 < 0xf || boot_cpu_data.x86 > 0x11)
954 return 0;
955 /* In case some hypervisor doesn't pass SYSCFG through */
956 if (rdmsr_safe(MSR_K8_SYSCFG, &l, &h) < 0)
957 return 0;
958 /*
959 * Memory between 4GB and top of mem is forced WB by this magic bit.
960 * Reserved before K8RevF, but should be zero there.
961 */
962 if ((l & (Tom2Enabled | Tom2ForceMemTypeWB)) ==
963 (Tom2Enabled | Tom2ForceMemTypeWB))
964 return 1;
965 return 0;
966}
967
968static u64 __init real_trim_memory(unsigned long start_pfn,
969 unsigned long limit_pfn)
970{
971 u64 trim_start, trim_size;
972 trim_start = start_pfn;
973 trim_start <<= PAGE_SHIFT;
974 trim_size = limit_pfn;
975 trim_size <<= PAGE_SHIFT;
976 trim_size -= trim_start;
977
978 return e820_update_range(trim_start, trim_size, E820_RAM,
979 E820_RESERVED);
980}
981/**
982 * mtrr_trim_uncached_memory - trim RAM not covered by MTRRs
983 * @end_pfn: ending page frame number
984 *
985 * Some buggy BIOSes don't setup the MTRRs properly for systems with certain
986 * memory configurations. This routine checks that the highest MTRR matches
987 * the end of memory, to make sure the MTRRs having a write back type cover
988 * all of the memory the kernel is intending to use. If not, it'll trim any
989 * memory off the end by adjusting end_pfn, removing it from the kernel's
990 * allocation pools, warning the user with an obnoxious message.
991 */
992int __init mtrr_trim_uncached_memory(unsigned long end_pfn)
993{
994 unsigned long i, base, size, highest_pfn = 0, def, dummy;
995 mtrr_type type;
996 u64 total_trim_size;
997
998 /* extra one for all 0 */
999 int num[MTRR_NUM_TYPES + 1];
1000 /*
1001 * Make sure we only trim uncachable memory on machines that
1002 * support the Intel MTRR architecture:
1003 */
1004 if (!is_cpu(INTEL) || disable_mtrr_trim)
1005 return 0;
1006 rdmsr(MTRRdefType_MSR, def, dummy);
1007 def &= 0xff;
1008 if (def != MTRR_TYPE_UNCACHABLE)
1009 return 0;
1010
1011 /* get it and store it aside */
1012 memset(range_state, 0, sizeof(range_state));
1013 for (i = 0; i < num_var_ranges; i++) {
1014 mtrr_if->get(i, &base, &size, &type);
1015 range_state[i].base_pfn = base;
1016 range_state[i].size_pfn = size;
1017 range_state[i].type = type;
1018 }
1019
1020 /* Find highest cached pfn */
1021 for (i = 0; i < num_var_ranges; i++) {
1022 type = range_state[i].type;
1023 if (type != MTRR_TYPE_WRBACK)
1024 continue;
1025 base = range_state[i].base_pfn;
1026 size = range_state[i].size_pfn;
1027 if (highest_pfn < base + size)
1028 highest_pfn = base + size;
1029 }
1030
1031 /* kvm/qemu doesn't have mtrr set right, don't trim them all */
1032 if (!highest_pfn) {
1033 printk(KERN_INFO "CPU MTRRs all blank - virtualized system.\n");
1034 return 0;
1035 }
1036
1037 /* check entries number */
1038 memset(num, 0, sizeof(num));
1039 for (i = 0; i < num_var_ranges; i++) {
1040 type = range_state[i].type;
1041 if (type >= MTRR_NUM_TYPES)
1042 continue;
1043 size = range_state[i].size_pfn;
1044 if (!size)
1045 type = MTRR_NUM_TYPES;
1046 num[type]++;
1047 }
1048
1049 /* no entry for WB? */
1050 if (!num[MTRR_TYPE_WRBACK])
1051 return 0;
1052
1053 /* check if we only had WB and UC */
1054 if (num[MTRR_TYPE_WRBACK] + num[MTRR_TYPE_UNCACHABLE] !=
1055 num_var_ranges - num[MTRR_NUM_TYPES])
1056 return 0;
1057
1058 memset(range, 0, sizeof(range));
1059 nr_range = 0;
1060 if (mtrr_tom2) {
1061 range[nr_range].start = (1ULL<<(32 - PAGE_SHIFT));
1062 range[nr_range].end = (mtrr_tom2 >> PAGE_SHIFT) - 1;
1063 if (highest_pfn < range[nr_range].end + 1)
1064 highest_pfn = range[nr_range].end + 1;
1065 nr_range++;
1066 }
1067 nr_range = x86_get_mtrr_mem_range(range, nr_range, 0, 0);
1068
1069 total_trim_size = 0;
1070 /* check the head */
1071 if (range[0].start)
1072 total_trim_size += real_trim_memory(0, range[0].start);
1073 /* check the holes */
1074 for (i = 0; i < nr_range - 1; i++) {
1075 if (range[i].end + 1 < range[i+1].start)
1076 total_trim_size += real_trim_memory(range[i].end + 1,
1077 range[i+1].start);
1078 }
1079 /* check the top */
1080 i = nr_range - 1;
1081 if (range[i].end + 1 < end_pfn)
1082 total_trim_size += real_trim_memory(range[i].end + 1,
1083 end_pfn);
1084
1085 if (total_trim_size) {
1086 printk(KERN_WARNING "WARNING: BIOS bug: CPU MTRRs don't cover"
1087 " all of memory, losing %lluMB of RAM.\n",
1088 total_trim_size >> 20);
1089
1090 if (!changed_by_mtrr_cleanup)
1091 WARN_ON(1);
1092
1093 printk(KERN_INFO "update e820 for mtrr\n");
1094 update_e820();
1095
1096 return 1;
1097 }
1098
1099 return 0;
1100}
1101
diff --git a/arch/x86/kernel/cpu/mtrr/generic.c b/arch/x86/kernel/cpu/mtrr/generic.c
index 0c0a455fe95c..37f28fc7cf95 100644
--- a/arch/x86/kernel/cpu/mtrr/generic.c
+++ b/arch/x86/kernel/cpu/mtrr/generic.c
@@ -33,13 +33,31 @@ u64 mtrr_tom2;
33struct mtrr_state_type mtrr_state = {}; 33struct mtrr_state_type mtrr_state = {};
34EXPORT_SYMBOL_GPL(mtrr_state); 34EXPORT_SYMBOL_GPL(mtrr_state);
35 35
36static int __initdata mtrr_show; 36/**
37static int __init mtrr_debug(char *opt) 37 * BIOS is expected to clear MtrrFixDramModEn bit, see for example
38 * "BIOS and Kernel Developer's Guide for the AMD Athlon 64 and AMD
39 * Opteron Processors" (26094 Rev. 3.30 February 2006), section
40 * "13.2.1.2 SYSCFG Register": "The MtrrFixDramModEn bit should be set
41 * to 1 during BIOS initalization of the fixed MTRRs, then cleared to
42 * 0 for operation."
43 */
44static inline void k8_check_syscfg_dram_mod_en(void)
38{ 45{
39 mtrr_show = 1; 46 u32 lo, hi;
40 return 0; 47
48 if (!((boot_cpu_data.x86_vendor == X86_VENDOR_AMD) &&
49 (boot_cpu_data.x86 >= 0x0f)))
50 return;
51
52 rdmsr(MSR_K8_SYSCFG, lo, hi);
53 if (lo & K8_MTRRFIXRANGE_DRAM_MODIFY) {
54 printk(KERN_ERR FW_WARN "MTRR: CPU %u: SYSCFG[MtrrFixDramModEn]"
55 " not cleared by BIOS, clearing this bit\n",
56 smp_processor_id());
57 lo &= ~K8_MTRRFIXRANGE_DRAM_MODIFY;
58 mtrr_wrmsr(MSR_K8_SYSCFG, lo, hi);
59 }
41} 60}
42early_param("mtrr.show", mtrr_debug);
43 61
44/* 62/*
45 * Returns the effective MTRR type for the region 63 * Returns the effective MTRR type for the region
@@ -174,6 +192,8 @@ get_fixed_ranges(mtrr_type * frs)
174 unsigned int *p = (unsigned int *) frs; 192 unsigned int *p = (unsigned int *) frs;
175 int i; 193 int i;
176 194
195 k8_check_syscfg_dram_mod_en();
196
177 rdmsr(MTRRfix64K_00000_MSR, p[0], p[1]); 197 rdmsr(MTRRfix64K_00000_MSR, p[0], p[1]);
178 198
179 for (i = 0; i < 2; i++) 199 for (i = 0; i < 2; i++)
@@ -188,18 +208,94 @@ void mtrr_save_fixed_ranges(void *info)
188 get_fixed_ranges(mtrr_state.fixed_ranges); 208 get_fixed_ranges(mtrr_state.fixed_ranges);
189} 209}
190 210
191static void print_fixed(unsigned base, unsigned step, const mtrr_type*types) 211static unsigned __initdata last_fixed_start;
212static unsigned __initdata last_fixed_end;
213static mtrr_type __initdata last_fixed_type;
214
215static void __init print_fixed_last(void)
216{
217 if (!last_fixed_end)
218 return;
219
220 printk(KERN_DEBUG " %05X-%05X %s\n", last_fixed_start,
221 last_fixed_end - 1, mtrr_attrib_to_str(last_fixed_type));
222
223 last_fixed_end = 0;
224}
225
226static void __init update_fixed_last(unsigned base, unsigned end,
227 mtrr_type type)
228{
229 last_fixed_start = base;
230 last_fixed_end = end;
231 last_fixed_type = type;
232}
233
234static void __init print_fixed(unsigned base, unsigned step,
235 const mtrr_type *types)
192{ 236{
193 unsigned i; 237 unsigned i;
194 238
195 for (i = 0; i < 8; ++i, ++types, base += step) 239 for (i = 0; i < 8; ++i, ++types, base += step) {
196 printk(KERN_INFO "MTRR %05X-%05X %s\n", 240 if (last_fixed_end == 0) {
197 base, base + step - 1, mtrr_attrib_to_str(*types)); 241 update_fixed_last(base, base + step, *types);
242 continue;
243 }
244 if (last_fixed_end == base && last_fixed_type == *types) {
245 last_fixed_end = base + step;
246 continue;
247 }
248 /* new segments: gap or different type */
249 print_fixed_last();
250 update_fixed_last(base, base + step, *types);
251 }
198} 252}
199 253
200static void prepare_set(void); 254static void prepare_set(void);
201static void post_set(void); 255static void post_set(void);
202 256
257static void __init print_mtrr_state(void)
258{
259 unsigned int i;
260 int high_width;
261
262 printk(KERN_DEBUG "MTRR default type: %s\n",
263 mtrr_attrib_to_str(mtrr_state.def_type));
264 if (mtrr_state.have_fixed) {
265 printk(KERN_DEBUG "MTRR fixed ranges %sabled:\n",
266 mtrr_state.enabled & 1 ? "en" : "dis");
267 print_fixed(0x00000, 0x10000, mtrr_state.fixed_ranges + 0);
268 for (i = 0; i < 2; ++i)
269 print_fixed(0x80000 + i * 0x20000, 0x04000, mtrr_state.fixed_ranges + (i + 1) * 8);
270 for (i = 0; i < 8; ++i)
271 print_fixed(0xC0000 + i * 0x08000, 0x01000, mtrr_state.fixed_ranges + (i + 3) * 8);
272
273 /* tail */
274 print_fixed_last();
275 }
276 printk(KERN_DEBUG "MTRR variable ranges %sabled:\n",
277 mtrr_state.enabled & 2 ? "en" : "dis");
278 high_width = ((size_or_mask ? ffs(size_or_mask) - 1 : 32) - (32 - PAGE_SHIFT) + 3) / 4;
279 for (i = 0; i < num_var_ranges; ++i) {
280 if (mtrr_state.var_ranges[i].mask_lo & (1 << 11))
281 printk(KERN_DEBUG " %u base %0*X%05X000 mask %0*X%05X000 %s\n",
282 i,
283 high_width,
284 mtrr_state.var_ranges[i].base_hi,
285 mtrr_state.var_ranges[i].base_lo >> 12,
286 high_width,
287 mtrr_state.var_ranges[i].mask_hi,
288 mtrr_state.var_ranges[i].mask_lo >> 12,
289 mtrr_attrib_to_str(mtrr_state.var_ranges[i].base_lo & 0xff));
290 else
291 printk(KERN_DEBUG " %u disabled\n", i);
292 }
293 if (mtrr_tom2) {
294 printk(KERN_DEBUG "TOM2: %016llx aka %lldM\n",
295 mtrr_tom2, mtrr_tom2>>20);
296 }
297}
298
203/* Grab all of the MTRR state for this CPU into *state */ 299/* Grab all of the MTRR state for this CPU into *state */
204void __init get_mtrr_state(void) 300void __init get_mtrr_state(void)
205{ 301{
@@ -231,41 +327,9 @@ void __init get_mtrr_state(void)
231 mtrr_tom2 |= low; 327 mtrr_tom2 |= low;
232 mtrr_tom2 &= 0xffffff800000ULL; 328 mtrr_tom2 &= 0xffffff800000ULL;
233 } 329 }
234 if (mtrr_show) { 330
235 int high_width; 331 print_mtrr_state();
236 332
237 printk(KERN_INFO "MTRR default type: %s\n", mtrr_attrib_to_str(mtrr_state.def_type));
238 if (mtrr_state.have_fixed) {
239 printk(KERN_INFO "MTRR fixed ranges %sabled:\n",
240 mtrr_state.enabled & 1 ? "en" : "dis");
241 print_fixed(0x00000, 0x10000, mtrr_state.fixed_ranges + 0);
242 for (i = 0; i < 2; ++i)
243 print_fixed(0x80000 + i * 0x20000, 0x04000, mtrr_state.fixed_ranges + (i + 1) * 8);
244 for (i = 0; i < 8; ++i)
245 print_fixed(0xC0000 + i * 0x08000, 0x01000, mtrr_state.fixed_ranges + (i + 3) * 8);
246 }
247 printk(KERN_INFO "MTRR variable ranges %sabled:\n",
248 mtrr_state.enabled & 2 ? "en" : "dis");
249 high_width = ((size_or_mask ? ffs(size_or_mask) - 1 : 32) - (32 - PAGE_SHIFT) + 3) / 4;
250 for (i = 0; i < num_var_ranges; ++i) {
251 if (mtrr_state.var_ranges[i].mask_lo & (1 << 11))
252 printk(KERN_INFO "MTRR %u base %0*X%05X000 mask %0*X%05X000 %s\n",
253 i,
254 high_width,
255 mtrr_state.var_ranges[i].base_hi,
256 mtrr_state.var_ranges[i].base_lo >> 12,
257 high_width,
258 mtrr_state.var_ranges[i].mask_hi,
259 mtrr_state.var_ranges[i].mask_lo >> 12,
260 mtrr_attrib_to_str(mtrr_state.var_ranges[i].base_lo & 0xff));
261 else
262 printk(KERN_INFO "MTRR %u disabled\n", i);
263 }
264 if (mtrr_tom2) {
265 printk(KERN_INFO "TOM2: %016llx aka %lldM\n",
266 mtrr_tom2, mtrr_tom2>>20);
267 }
268 }
269 mtrr_state_set = 1; 333 mtrr_state_set = 1;
270 334
271 /* PAT setup for BP. We need to go through sync steps here */ 335 /* PAT setup for BP. We need to go through sync steps here */
@@ -308,27 +372,10 @@ void mtrr_wrmsr(unsigned msr, unsigned a, unsigned b)
308} 372}
309 373
310/** 374/**
311 * Enable and allow read/write of extended fixed-range MTRR bits on K8 CPUs
312 * see AMD publication no. 24593, chapter 3.2.1 for more information
313 */
314static inline void k8_enable_fixed_iorrs(void)
315{
316 unsigned lo, hi;
317
318 rdmsr(MSR_K8_SYSCFG, lo, hi);
319 mtrr_wrmsr(MSR_K8_SYSCFG, lo
320 | K8_MTRRFIXRANGE_DRAM_ENABLE
321 | K8_MTRRFIXRANGE_DRAM_MODIFY, hi);
322}
323
324/**
325 * set_fixed_range - checks & updates a fixed-range MTRR if it differs from the value it should have 375 * set_fixed_range - checks & updates a fixed-range MTRR if it differs from the value it should have
326 * @msr: MSR address of the MTTR which should be checked and updated 376 * @msr: MSR address of the MTTR which should be checked and updated
327 * @changed: pointer which indicates whether the MTRR needed to be changed 377 * @changed: pointer which indicates whether the MTRR needed to be changed
328 * @msrwords: pointer to the MSR values which the MSR should have 378 * @msrwords: pointer to the MSR values which the MSR should have
329 *
330 * If K8 extentions are wanted, update the K8 SYSCFG MSR also.
331 * See AMD publication no. 24593, chapter 7.8.1, page 233 for more information.
332 */ 379 */
333static void set_fixed_range(int msr, bool *changed, unsigned int *msrwords) 380static void set_fixed_range(int msr, bool *changed, unsigned int *msrwords)
334{ 381{
@@ -337,10 +384,6 @@ static void set_fixed_range(int msr, bool *changed, unsigned int *msrwords)
337 rdmsr(msr, lo, hi); 384 rdmsr(msr, lo, hi);
338 385
339 if (lo != msrwords[0] || hi != msrwords[1]) { 386 if (lo != msrwords[0] || hi != msrwords[1]) {
340 if (boot_cpu_data.x86_vendor == X86_VENDOR_AMD &&
341 (boot_cpu_data.x86 >= 0x0f && boot_cpu_data.x86 <= 0x11) &&
342 ((msrwords[0] | msrwords[1]) & K8_MTRR_RDMEM_WRMEM_MASK))
343 k8_enable_fixed_iorrs();
344 mtrr_wrmsr(msr, msrwords[0], msrwords[1]); 387 mtrr_wrmsr(msr, msrwords[0], msrwords[1]);
345 *changed = true; 388 *changed = true;
346 } 389 }
@@ -376,22 +419,31 @@ static void generic_get_mtrr(unsigned int reg, unsigned long *base,
376{ 419{
377 unsigned int mask_lo, mask_hi, base_lo, base_hi; 420 unsigned int mask_lo, mask_hi, base_lo, base_hi;
378 unsigned int tmp, hi; 421 unsigned int tmp, hi;
422 int cpu;
423
424 /*
425 * get_mtrr doesn't need to update mtrr_state, also it could be called
426 * from any cpu, so try to print it out directly.
427 */
428 cpu = get_cpu();
379 429
380 rdmsr(MTRRphysMask_MSR(reg), mask_lo, mask_hi); 430 rdmsr(MTRRphysMask_MSR(reg), mask_lo, mask_hi);
431
381 if ((mask_lo & 0x800) == 0) { 432 if ((mask_lo & 0x800) == 0) {
382 /* Invalid (i.e. free) range */ 433 /* Invalid (i.e. free) range */
383 *base = 0; 434 *base = 0;
384 *size = 0; 435 *size = 0;
385 *type = 0; 436 *type = 0;
386 return; 437 goto out_put_cpu;
387 } 438 }
388 439
389 rdmsr(MTRRphysBase_MSR(reg), base_lo, base_hi); 440 rdmsr(MTRRphysBase_MSR(reg), base_lo, base_hi);
390 441
391 /* Work out the shifted address mask. */ 442 /* Work out the shifted address mask: */
392 tmp = mask_hi << (32 - PAGE_SHIFT) | mask_lo >> PAGE_SHIFT; 443 tmp = mask_hi << (32 - PAGE_SHIFT) | mask_lo >> PAGE_SHIFT;
393 mask_lo = size_or_mask | tmp; 444 mask_lo = size_or_mask | tmp;
394 /* Expand tmp with high bits to all 1s*/ 445
446 /* Expand tmp with high bits to all 1s: */
395 hi = fls(tmp); 447 hi = fls(tmp);
396 if (hi > 0) { 448 if (hi > 0) {
397 tmp |= ~((1<<(hi - 1)) - 1); 449 tmp |= ~((1<<(hi - 1)) - 1);
@@ -402,11 +454,19 @@ static void generic_get_mtrr(unsigned int reg, unsigned long *base,
402 } 454 }
403 } 455 }
404 456
405 /* This works correctly if size is a power of two, i.e. a 457 /*
406 contiguous range. */ 458 * This works correctly if size is a power of two, i.e. a
459 * contiguous range:
460 */
407 *size = -mask_lo; 461 *size = -mask_lo;
408 *base = base_hi << (32 - PAGE_SHIFT) | base_lo >> PAGE_SHIFT; 462 *base = base_hi << (32 - PAGE_SHIFT) | base_lo >> PAGE_SHIFT;
409 *type = base_lo & 0xff; 463 *type = base_lo & 0xff;
464
465 printk(KERN_DEBUG " get_mtrr: cpu%d reg%02d base=%010lx size=%010lx %s\n",
466 cpu, reg, *base, *size,
467 mtrr_attrib_to_str(*type & 0xff));
468out_put_cpu:
469 put_cpu();
410} 470}
411 471
412/** 472/**
@@ -419,6 +479,8 @@ static int set_fixed_ranges(mtrr_type * frs)
419 bool changed = false; 479 bool changed = false;
420 int block=-1, range; 480 int block=-1, range;
421 481
482 k8_check_syscfg_dram_mod_en();
483
422 while (fixed_range_blocks[++block].ranges) 484 while (fixed_range_blocks[++block].ranges)
423 for (range=0; range < fixed_range_blocks[block].ranges; range++) 485 for (range=0; range < fixed_range_blocks[block].ranges; range++)
424 set_fixed_range(fixed_range_blocks[block].base_msr + range, 486 set_fixed_range(fixed_range_blocks[block].base_msr + range,
diff --git a/arch/x86/kernel/cpu/mtrr/main.c b/arch/x86/kernel/cpu/mtrr/main.c
index 236a401b8259..03cda01f57c7 100644
--- a/arch/x86/kernel/cpu/mtrr/main.c
+++ b/arch/x86/kernel/cpu/mtrr/main.c
@@ -574,7 +574,7 @@ struct mtrr_value {
574 unsigned long lsize; 574 unsigned long lsize;
575}; 575};
576 576
577static struct mtrr_value mtrr_state[MTRR_MAX_VAR_RANGES]; 577static struct mtrr_value mtrr_value[MTRR_MAX_VAR_RANGES];
578 578
579static int mtrr_save(struct sys_device * sysdev, pm_message_t state) 579static int mtrr_save(struct sys_device * sysdev, pm_message_t state)
580{ 580{
@@ -582,9 +582,9 @@ static int mtrr_save(struct sys_device * sysdev, pm_message_t state)
582 582
583 for (i = 0; i < num_var_ranges; i++) { 583 for (i = 0; i < num_var_ranges; i++) {
584 mtrr_if->get(i, 584 mtrr_if->get(i,
585 &mtrr_state[i].lbase, 585 &mtrr_value[i].lbase,
586 &mtrr_state[i].lsize, 586 &mtrr_value[i].lsize,
587 &mtrr_state[i].ltype); 587 &mtrr_value[i].ltype);
588 } 588 }
589 return 0; 589 return 0;
590} 590}
@@ -594,11 +594,11 @@ static int mtrr_restore(struct sys_device * sysdev)
594 int i; 594 int i;
595 595
596 for (i = 0; i < num_var_ranges; i++) { 596 for (i = 0; i < num_var_ranges; i++) {
597 if (mtrr_state[i].lsize) 597 if (mtrr_value[i].lsize)
598 set_mtrr(i, 598 set_mtrr(i,
599 mtrr_state[i].lbase, 599 mtrr_value[i].lbase,
600 mtrr_state[i].lsize, 600 mtrr_value[i].lsize,
601 mtrr_state[i].ltype); 601 mtrr_value[i].ltype);
602 } 602 }
603 return 0; 603 return 0;
604} 604}
@@ -610,1058 +610,7 @@ static struct sysdev_driver mtrr_sysdev_driver = {
610 .resume = mtrr_restore, 610 .resume = mtrr_restore,
611}; 611};
612 612
613/* should be related to MTRR_VAR_RANGES nums */ 613int __initdata changed_by_mtrr_cleanup;
614#define RANGE_NUM 256
615
616struct res_range {
617 unsigned long start;
618 unsigned long end;
619};
620
621static int __init
622add_range(struct res_range *range, int nr_range, unsigned long start,
623 unsigned long end)
624{
625 /* out of slots */
626 if (nr_range >= RANGE_NUM)
627 return nr_range;
628
629 range[nr_range].start = start;
630 range[nr_range].end = end;
631
632 nr_range++;
633
634 return nr_range;
635}
636
637static int __init
638add_range_with_merge(struct res_range *range, int nr_range, unsigned long start,
639 unsigned long end)
640{
641 int i;
642
643 /* try to merge it with old one */
644 for (i = 0; i < nr_range; i++) {
645 unsigned long final_start, final_end;
646 unsigned long common_start, common_end;
647
648 if (!range[i].end)
649 continue;
650
651 common_start = max(range[i].start, start);
652 common_end = min(range[i].end, end);
653 if (common_start > common_end + 1)
654 continue;
655
656 final_start = min(range[i].start, start);
657 final_end = max(range[i].end, end);
658
659 range[i].start = final_start;
660 range[i].end = final_end;
661 return nr_range;
662 }
663
664 /* need to add that */
665 return add_range(range, nr_range, start, end);
666}
667
668static void __init
669subtract_range(struct res_range *range, unsigned long start, unsigned long end)
670{
671 int i, j;
672
673 for (j = 0; j < RANGE_NUM; j++) {
674 if (!range[j].end)
675 continue;
676
677 if (start <= range[j].start && end >= range[j].end) {
678 range[j].start = 0;
679 range[j].end = 0;
680 continue;
681 }
682
683 if (start <= range[j].start && end < range[j].end &&
684 range[j].start < end + 1) {
685 range[j].start = end + 1;
686 continue;
687 }
688
689
690 if (start > range[j].start && end >= range[j].end &&
691 range[j].end > start - 1) {
692 range[j].end = start - 1;
693 continue;
694 }
695
696 if (start > range[j].start && end < range[j].end) {
697 /* find the new spare */
698 for (i = 0; i < RANGE_NUM; i++) {
699 if (range[i].end == 0)
700 break;
701 }
702 if (i < RANGE_NUM) {
703 range[i].end = range[j].end;
704 range[i].start = end + 1;
705 } else {
706 printk(KERN_ERR "run of slot in ranges\n");
707 }
708 range[j].end = start - 1;
709 continue;
710 }
711 }
712}
713
714static int __init cmp_range(const void *x1, const void *x2)
715{
716 const struct res_range *r1 = x1;
717 const struct res_range *r2 = x2;
718 long start1, start2;
719
720 start1 = r1->start;
721 start2 = r2->start;
722
723 return start1 - start2;
724}
725
726struct var_mtrr_range_state {
727 unsigned long base_pfn;
728 unsigned long size_pfn;
729 mtrr_type type;
730};
731
732static struct var_mtrr_range_state __initdata range_state[RANGE_NUM];
733static int __initdata debug_print;
734
735static int __init
736x86_get_mtrr_mem_range(struct res_range *range, int nr_range,
737 unsigned long extra_remove_base,
738 unsigned long extra_remove_size)
739{
740 unsigned long i, base, size;
741 mtrr_type type;
742
743 for (i = 0; i < num_var_ranges; i++) {
744 type = range_state[i].type;
745 if (type != MTRR_TYPE_WRBACK)
746 continue;
747 base = range_state[i].base_pfn;
748 size = range_state[i].size_pfn;
749 nr_range = add_range_with_merge(range, nr_range, base,
750 base + size - 1);
751 }
752 if (debug_print) {
753 printk(KERN_DEBUG "After WB checking\n");
754 for (i = 0; i < nr_range; i++)
755 printk(KERN_DEBUG "MTRR MAP PFN: %016lx - %016lx\n",
756 range[i].start, range[i].end + 1);
757 }
758
759 /* take out UC ranges */
760 for (i = 0; i < num_var_ranges; i++) {
761 type = range_state[i].type;
762 if (type != MTRR_TYPE_UNCACHABLE &&
763 type != MTRR_TYPE_WRPROT)
764 continue;
765 size = range_state[i].size_pfn;
766 if (!size)
767 continue;
768 base = range_state[i].base_pfn;
769 subtract_range(range, base, base + size - 1);
770 }
771 if (extra_remove_size)
772 subtract_range(range, extra_remove_base,
773 extra_remove_base + extra_remove_size - 1);
774
775 /* get new range num */
776 nr_range = 0;
777 for (i = 0; i < RANGE_NUM; i++) {
778 if (!range[i].end)
779 continue;
780 nr_range++;
781 }
782 if (debug_print) {
783 printk(KERN_DEBUG "After UC checking\n");
784 for (i = 0; i < nr_range; i++)
785 printk(KERN_DEBUG "MTRR MAP PFN: %016lx - %016lx\n",
786 range[i].start, range[i].end + 1);
787 }
788
789 /* sort the ranges */
790 sort(range, nr_range, sizeof(struct res_range), cmp_range, NULL);
791 if (debug_print) {
792 printk(KERN_DEBUG "After sorting\n");
793 for (i = 0; i < nr_range; i++)
794 printk(KERN_DEBUG "MTRR MAP PFN: %016lx - %016lx\n",
795 range[i].start, range[i].end + 1);
796 }
797
798 /* clear those is not used */
799 for (i = nr_range; i < RANGE_NUM; i++)
800 memset(&range[i], 0, sizeof(range[i]));
801
802 return nr_range;
803}
804
805static struct res_range __initdata range[RANGE_NUM];
806static int __initdata nr_range;
807
808#ifdef CONFIG_MTRR_SANITIZER
809
810static unsigned long __init sum_ranges(struct res_range *range, int nr_range)
811{
812 unsigned long sum;
813 int i;
814
815 sum = 0;
816 for (i = 0; i < nr_range; i++)
817 sum += range[i].end + 1 - range[i].start;
818
819 return sum;
820}
821
822static int enable_mtrr_cleanup __initdata =
823 CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT;
824
825static int __init disable_mtrr_cleanup_setup(char *str)
826{
827 enable_mtrr_cleanup = 0;
828 return 0;
829}
830early_param("disable_mtrr_cleanup", disable_mtrr_cleanup_setup);
831
832static int __init enable_mtrr_cleanup_setup(char *str)
833{
834 enable_mtrr_cleanup = 1;
835 return 0;
836}
837early_param("enable_mtrr_cleanup", enable_mtrr_cleanup_setup);
838
839static int __init mtrr_cleanup_debug_setup(char *str)
840{
841 debug_print = 1;
842 return 0;
843}
844early_param("mtrr_cleanup_debug", mtrr_cleanup_debug_setup);
845
846struct var_mtrr_state {
847 unsigned long range_startk;
848 unsigned long range_sizek;
849 unsigned long chunk_sizek;
850 unsigned long gran_sizek;
851 unsigned int reg;
852};
853
854static void __init
855set_var_mtrr(unsigned int reg, unsigned long basek, unsigned long sizek,
856 unsigned char type, unsigned int address_bits)
857{
858 u32 base_lo, base_hi, mask_lo, mask_hi;
859 u64 base, mask;
860
861 if (!sizek) {
862 fill_mtrr_var_range(reg, 0, 0, 0, 0);
863 return;
864 }
865
866 mask = (1ULL << address_bits) - 1;
867 mask &= ~((((u64)sizek) << 10) - 1);
868
869 base = ((u64)basek) << 10;
870
871 base |= type;
872 mask |= 0x800;
873
874 base_lo = base & ((1ULL<<32) - 1);
875 base_hi = base >> 32;
876
877 mask_lo = mask & ((1ULL<<32) - 1);
878 mask_hi = mask >> 32;
879
880 fill_mtrr_var_range(reg, base_lo, base_hi, mask_lo, mask_hi);
881}
882
883static void __init
884save_var_mtrr(unsigned int reg, unsigned long basek, unsigned long sizek,
885 unsigned char type)
886{
887 range_state[reg].base_pfn = basek >> (PAGE_SHIFT - 10);
888 range_state[reg].size_pfn = sizek >> (PAGE_SHIFT - 10);
889 range_state[reg].type = type;
890}
891
892static void __init
893set_var_mtrr_all(unsigned int address_bits)
894{
895 unsigned long basek, sizek;
896 unsigned char type;
897 unsigned int reg;
898
899 for (reg = 0; reg < num_var_ranges; reg++) {
900 basek = range_state[reg].base_pfn << (PAGE_SHIFT - 10);
901 sizek = range_state[reg].size_pfn << (PAGE_SHIFT - 10);
902 type = range_state[reg].type;
903
904 set_var_mtrr(reg, basek, sizek, type, address_bits);
905 }
906}
907
908static unsigned long to_size_factor(unsigned long sizek, char *factorp)
909{
910 char factor;
911 unsigned long base = sizek;
912
913 if (base & ((1<<10) - 1)) {
914 /* not MB alignment */
915 factor = 'K';
916 } else if (base & ((1<<20) - 1)){
917 factor = 'M';
918 base >>= 10;
919 } else {
920 factor = 'G';
921 base >>= 20;
922 }
923
924 *factorp = factor;
925
926 return base;
927}
928
929static unsigned int __init
930range_to_mtrr(unsigned int reg, unsigned long range_startk,
931 unsigned long range_sizek, unsigned char type)
932{
933 if (!range_sizek || (reg >= num_var_ranges))
934 return reg;
935
936 while (range_sizek) {
937 unsigned long max_align, align;
938 unsigned long sizek;
939
940 /* Compute the maximum size I can make a range */
941 if (range_startk)
942 max_align = ffs(range_startk) - 1;
943 else
944 max_align = 32;
945 align = fls(range_sizek) - 1;
946 if (align > max_align)
947 align = max_align;
948
949 sizek = 1 << align;
950 if (debug_print) {
951 char start_factor = 'K', size_factor = 'K';
952 unsigned long start_base, size_base;
953
954 start_base = to_size_factor(range_startk, &start_factor),
955 size_base = to_size_factor(sizek, &size_factor),
956
957 printk(KERN_DEBUG "Setting variable MTRR %d, "
958 "base: %ld%cB, range: %ld%cB, type %s\n",
959 reg, start_base, start_factor,
960 size_base, size_factor,
961 (type == MTRR_TYPE_UNCACHABLE)?"UC":
962 ((type == MTRR_TYPE_WRBACK)?"WB":"Other")
963 );
964 }
965 save_var_mtrr(reg++, range_startk, sizek, type);
966 range_startk += sizek;
967 range_sizek -= sizek;
968 if (reg >= num_var_ranges)
969 break;
970 }
971 return reg;
972}
973
974static unsigned __init
975range_to_mtrr_with_hole(struct var_mtrr_state *state, unsigned long basek,
976 unsigned long sizek)
977{
978 unsigned long hole_basek, hole_sizek;
979 unsigned long second_basek, second_sizek;
980 unsigned long range0_basek, range0_sizek;
981 unsigned long range_basek, range_sizek;
982 unsigned long chunk_sizek;
983 unsigned long gran_sizek;
984
985 hole_basek = 0;
986 hole_sizek = 0;
987 second_basek = 0;
988 second_sizek = 0;
989 chunk_sizek = state->chunk_sizek;
990 gran_sizek = state->gran_sizek;
991
992 /* align with gran size, prevent small block used up MTRRs */
993 range_basek = ALIGN(state->range_startk, gran_sizek);
994 if ((range_basek > basek) && basek)
995 return second_sizek;
996 state->range_sizek -= (range_basek - state->range_startk);
997 range_sizek = ALIGN(state->range_sizek, gran_sizek);
998
999 while (range_sizek > state->range_sizek) {
1000 range_sizek -= gran_sizek;
1001 if (!range_sizek)
1002 return 0;
1003 }
1004 state->range_sizek = range_sizek;
1005
1006 /* try to append some small hole */
1007 range0_basek = state->range_startk;
1008 range0_sizek = ALIGN(state->range_sizek, chunk_sizek);
1009
1010 /* no increase */
1011 if (range0_sizek == state->range_sizek) {
1012 if (debug_print)
1013 printk(KERN_DEBUG "rangeX: %016lx - %016lx\n",
1014 range0_basek<<10,
1015 (range0_basek + state->range_sizek)<<10);
1016 state->reg = range_to_mtrr(state->reg, range0_basek,
1017 state->range_sizek, MTRR_TYPE_WRBACK);
1018 return 0;
1019 }
1020
1021 /* only cut back, when it is not the last */
1022 if (sizek) {
1023 while (range0_basek + range0_sizek > (basek + sizek)) {
1024 if (range0_sizek >= chunk_sizek)
1025 range0_sizek -= chunk_sizek;
1026 else
1027 range0_sizek = 0;
1028
1029 if (!range0_sizek)
1030 break;
1031 }
1032 }
1033
1034second_try:
1035 range_basek = range0_basek + range0_sizek;
1036
1037 /* one hole in the middle */
1038 if (range_basek > basek && range_basek <= (basek + sizek))
1039 second_sizek = range_basek - basek;
1040
1041 if (range0_sizek > state->range_sizek) {
1042
1043 /* one hole in middle or at end */
1044 hole_sizek = range0_sizek - state->range_sizek - second_sizek;
1045
1046 /* hole size should be less than half of range0 size */
1047 if (hole_sizek >= (range0_sizek >> 1) &&
1048 range0_sizek >= chunk_sizek) {
1049 range0_sizek -= chunk_sizek;
1050 second_sizek = 0;
1051 hole_sizek = 0;
1052
1053 goto second_try;
1054 }
1055 }
1056
1057 if (range0_sizek) {
1058 if (debug_print)
1059 printk(KERN_DEBUG "range0: %016lx - %016lx\n",
1060 range0_basek<<10,
1061 (range0_basek + range0_sizek)<<10);
1062 state->reg = range_to_mtrr(state->reg, range0_basek,
1063 range0_sizek, MTRR_TYPE_WRBACK);
1064 }
1065
1066 if (range0_sizek < state->range_sizek) {
1067 /* need to handle left over */
1068 range_sizek = state->range_sizek - range0_sizek;
1069
1070 if (debug_print)
1071 printk(KERN_DEBUG "range: %016lx - %016lx\n",
1072 range_basek<<10,
1073 (range_basek + range_sizek)<<10);
1074 state->reg = range_to_mtrr(state->reg, range_basek,
1075 range_sizek, MTRR_TYPE_WRBACK);
1076 }
1077
1078 if (hole_sizek) {
1079 hole_basek = range_basek - hole_sizek - second_sizek;
1080 if (debug_print)
1081 printk(KERN_DEBUG "hole: %016lx - %016lx\n",
1082 hole_basek<<10,
1083 (hole_basek + hole_sizek)<<10);
1084 state->reg = range_to_mtrr(state->reg, hole_basek,
1085 hole_sizek, MTRR_TYPE_UNCACHABLE);
1086 }
1087
1088 return second_sizek;
1089}
1090
1091static void __init
1092set_var_mtrr_range(struct var_mtrr_state *state, unsigned long base_pfn,
1093 unsigned long size_pfn)
1094{
1095 unsigned long basek, sizek;
1096 unsigned long second_sizek = 0;
1097
1098 if (state->reg >= num_var_ranges)
1099 return;
1100
1101 basek = base_pfn << (PAGE_SHIFT - 10);
1102 sizek = size_pfn << (PAGE_SHIFT - 10);
1103
1104 /* See if I can merge with the last range */
1105 if ((basek <= 1024) ||
1106 (state->range_startk + state->range_sizek == basek)) {
1107 unsigned long endk = basek + sizek;
1108 state->range_sizek = endk - state->range_startk;
1109 return;
1110 }
1111 /* Write the range mtrrs */
1112 if (state->range_sizek != 0)
1113 second_sizek = range_to_mtrr_with_hole(state, basek, sizek);
1114
1115 /* Allocate an msr */
1116 state->range_startk = basek + second_sizek;
1117 state->range_sizek = sizek - second_sizek;
1118}
1119
1120/* mininum size of mtrr block that can take hole */
1121static u64 mtrr_chunk_size __initdata = (256ULL<<20);
1122
1123static int __init parse_mtrr_chunk_size_opt(char *p)
1124{
1125 if (!p)
1126 return -EINVAL;
1127 mtrr_chunk_size = memparse(p, &p);
1128 return 0;
1129}
1130early_param("mtrr_chunk_size", parse_mtrr_chunk_size_opt);
1131
1132/* granity of mtrr of block */
1133static u64 mtrr_gran_size __initdata;
1134
1135static int __init parse_mtrr_gran_size_opt(char *p)
1136{
1137 if (!p)
1138 return -EINVAL;
1139 mtrr_gran_size = memparse(p, &p);
1140 return 0;
1141}
1142early_param("mtrr_gran_size", parse_mtrr_gran_size_opt);
1143
1144static int nr_mtrr_spare_reg __initdata =
1145 CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT;
1146
1147static int __init parse_mtrr_spare_reg(char *arg)
1148{
1149 if (arg)
1150 nr_mtrr_spare_reg = simple_strtoul(arg, NULL, 0);
1151 return 0;
1152}
1153
1154early_param("mtrr_spare_reg_nr", parse_mtrr_spare_reg);
1155
1156static int __init
1157x86_setup_var_mtrrs(struct res_range *range, int nr_range,
1158 u64 chunk_size, u64 gran_size)
1159{
1160 struct var_mtrr_state var_state;
1161 int i;
1162 int num_reg;
1163
1164 var_state.range_startk = 0;
1165 var_state.range_sizek = 0;
1166 var_state.reg = 0;
1167 var_state.chunk_sizek = chunk_size >> 10;
1168 var_state.gran_sizek = gran_size >> 10;
1169
1170 memset(range_state, 0, sizeof(range_state));
1171
1172 /* Write the range etc */
1173 for (i = 0; i < nr_range; i++)
1174 set_var_mtrr_range(&var_state, range[i].start,
1175 range[i].end - range[i].start + 1);
1176
1177 /* Write the last range */
1178 if (var_state.range_sizek != 0)
1179 range_to_mtrr_with_hole(&var_state, 0, 0);
1180
1181 num_reg = var_state.reg;
1182 /* Clear out the extra MTRR's */
1183 while (var_state.reg < num_var_ranges) {
1184 save_var_mtrr(var_state.reg, 0, 0, 0);
1185 var_state.reg++;
1186 }
1187
1188 return num_reg;
1189}
1190
1191struct mtrr_cleanup_result {
1192 unsigned long gran_sizek;
1193 unsigned long chunk_sizek;
1194 unsigned long lose_cover_sizek;
1195 unsigned int num_reg;
1196 int bad;
1197};
1198
1199/*
1200 * gran_size: 64K, 128K, 256K, 512K, 1M, 2M, ..., 2G
1201 * chunk size: gran_size, ..., 2G
1202 * so we need (1+16)*8
1203 */
1204#define NUM_RESULT 136
1205#define PSHIFT (PAGE_SHIFT - 10)
1206
1207static struct mtrr_cleanup_result __initdata result[NUM_RESULT];
1208static unsigned long __initdata min_loss_pfn[RANGE_NUM];
1209
1210static void __init print_out_mtrr_range_state(void)
1211{
1212 int i;
1213 char start_factor = 'K', size_factor = 'K';
1214 unsigned long start_base, size_base;
1215 mtrr_type type;
1216
1217 for (i = 0; i < num_var_ranges; i++) {
1218
1219 size_base = range_state[i].size_pfn << (PAGE_SHIFT - 10);
1220 if (!size_base)
1221 continue;
1222
1223 size_base = to_size_factor(size_base, &size_factor),
1224 start_base = range_state[i].base_pfn << (PAGE_SHIFT - 10);
1225 start_base = to_size_factor(start_base, &start_factor),
1226 type = range_state[i].type;
1227
1228 printk(KERN_DEBUG "reg %d, base: %ld%cB, range: %ld%cB, type %s\n",
1229 i, start_base, start_factor,
1230 size_base, size_factor,
1231 (type == MTRR_TYPE_UNCACHABLE) ? "UC" :
1232 ((type == MTRR_TYPE_WRPROT) ? "WP" :
1233 ((type == MTRR_TYPE_WRBACK) ? "WB" : "Other"))
1234 );
1235 }
1236}
1237
1238static int __init mtrr_need_cleanup(void)
1239{
1240 int i;
1241 mtrr_type type;
1242 unsigned long size;
1243 /* extra one for all 0 */
1244 int num[MTRR_NUM_TYPES + 1];
1245
1246 /* check entries number */
1247 memset(num, 0, sizeof(num));
1248 for (i = 0; i < num_var_ranges; i++) {
1249 type = range_state[i].type;
1250 size = range_state[i].size_pfn;
1251 if (type >= MTRR_NUM_TYPES)
1252 continue;
1253 if (!size)
1254 type = MTRR_NUM_TYPES;
1255 if (type == MTRR_TYPE_WRPROT)
1256 type = MTRR_TYPE_UNCACHABLE;
1257 num[type]++;
1258 }
1259
1260 /* check if we got UC entries */
1261 if (!num[MTRR_TYPE_UNCACHABLE])
1262 return 0;
1263
1264 /* check if we only had WB and UC */
1265 if (num[MTRR_TYPE_WRBACK] + num[MTRR_TYPE_UNCACHABLE] !=
1266 num_var_ranges - num[MTRR_NUM_TYPES])
1267 return 0;
1268
1269 return 1;
1270}
1271
1272static unsigned long __initdata range_sums;
1273static void __init mtrr_calc_range_state(u64 chunk_size, u64 gran_size,
1274 unsigned long extra_remove_base,
1275 unsigned long extra_remove_size,
1276 int i)
1277{
1278 int num_reg;
1279 static struct res_range range_new[RANGE_NUM];
1280 static int nr_range_new;
1281 unsigned long range_sums_new;
1282
1283 /* convert ranges to var ranges state */
1284 num_reg = x86_setup_var_mtrrs(range, nr_range,
1285 chunk_size, gran_size);
1286
1287 /* we got new setting in range_state, check it */
1288 memset(range_new, 0, sizeof(range_new));
1289 nr_range_new = x86_get_mtrr_mem_range(range_new, 0,
1290 extra_remove_base, extra_remove_size);
1291 range_sums_new = sum_ranges(range_new, nr_range_new);
1292
1293 result[i].chunk_sizek = chunk_size >> 10;
1294 result[i].gran_sizek = gran_size >> 10;
1295 result[i].num_reg = num_reg;
1296 if (range_sums < range_sums_new) {
1297 result[i].lose_cover_sizek =
1298 (range_sums_new - range_sums) << PSHIFT;
1299 result[i].bad = 1;
1300 } else
1301 result[i].lose_cover_sizek =
1302 (range_sums - range_sums_new) << PSHIFT;
1303
1304 /* double check it */
1305 if (!result[i].bad && !result[i].lose_cover_sizek) {
1306 if (nr_range_new != nr_range ||
1307 memcmp(range, range_new, sizeof(range)))
1308 result[i].bad = 1;
1309 }
1310
1311 if (!result[i].bad && (range_sums - range_sums_new <
1312 min_loss_pfn[num_reg])) {
1313 min_loss_pfn[num_reg] =
1314 range_sums - range_sums_new;
1315 }
1316}
1317
1318static void __init mtrr_print_out_one_result(int i)
1319{
1320 char gran_factor, chunk_factor, lose_factor;
1321 unsigned long gran_base, chunk_base, lose_base;
1322
1323 gran_base = to_size_factor(result[i].gran_sizek, &gran_factor),
1324 chunk_base = to_size_factor(result[i].chunk_sizek, &chunk_factor),
1325 lose_base = to_size_factor(result[i].lose_cover_sizek, &lose_factor),
1326 printk(KERN_INFO "%sgran_size: %ld%c \tchunk_size: %ld%c \t",
1327 result[i].bad ? "*BAD*" : " ",
1328 gran_base, gran_factor, chunk_base, chunk_factor);
1329 printk(KERN_CONT "num_reg: %d \tlose cover RAM: %s%ld%c\n",
1330 result[i].num_reg, result[i].bad ? "-" : "",
1331 lose_base, lose_factor);
1332}
1333
1334static int __init mtrr_search_optimal_index(void)
1335{
1336 int i;
1337 int num_reg_good;
1338 int index_good;
1339
1340 if (nr_mtrr_spare_reg >= num_var_ranges)
1341 nr_mtrr_spare_reg = num_var_ranges - 1;
1342 num_reg_good = -1;
1343 for (i = num_var_ranges - nr_mtrr_spare_reg; i > 0; i--) {
1344 if (!min_loss_pfn[i])
1345 num_reg_good = i;
1346 }
1347
1348 index_good = -1;
1349 if (num_reg_good != -1) {
1350 for (i = 0; i < NUM_RESULT; i++) {
1351 if (!result[i].bad &&
1352 result[i].num_reg == num_reg_good &&
1353 !result[i].lose_cover_sizek) {
1354 index_good = i;
1355 break;
1356 }
1357 }
1358 }
1359
1360 return index_good;
1361}
1362
1363
1364static int __init mtrr_cleanup(unsigned address_bits)
1365{
1366 unsigned long extra_remove_base, extra_remove_size;
1367 unsigned long base, size, def, dummy;
1368 mtrr_type type;
1369 u64 chunk_size, gran_size;
1370 int index_good;
1371 int i;
1372
1373 if (!is_cpu(INTEL) || enable_mtrr_cleanup < 1)
1374 return 0;
1375 rdmsr(MTRRdefType_MSR, def, dummy);
1376 def &= 0xff;
1377 if (def != MTRR_TYPE_UNCACHABLE)
1378 return 0;
1379
1380 /* get it and store it aside */
1381 memset(range_state, 0, sizeof(range_state));
1382 for (i = 0; i < num_var_ranges; i++) {
1383 mtrr_if->get(i, &base, &size, &type);
1384 range_state[i].base_pfn = base;
1385 range_state[i].size_pfn = size;
1386 range_state[i].type = type;
1387 }
1388
1389 /* check if we need handle it and can handle it */
1390 if (!mtrr_need_cleanup())
1391 return 0;
1392
1393 /* print original var MTRRs at first, for debugging: */
1394 printk(KERN_DEBUG "original variable MTRRs\n");
1395 print_out_mtrr_range_state();
1396
1397 memset(range, 0, sizeof(range));
1398 extra_remove_size = 0;
1399 extra_remove_base = 1 << (32 - PAGE_SHIFT);
1400 if (mtrr_tom2)
1401 extra_remove_size =
1402 (mtrr_tom2 >> PAGE_SHIFT) - extra_remove_base;
1403 nr_range = x86_get_mtrr_mem_range(range, 0, extra_remove_base,
1404 extra_remove_size);
1405 /*
1406 * [0, 1M) should always be coverred by var mtrr with WB
1407 * and fixed mtrrs should take effective before var mtrr for it
1408 */
1409 nr_range = add_range_with_merge(range, nr_range, 0,
1410 (1ULL<<(20 - PAGE_SHIFT)) - 1);
1411 /* sort the ranges */
1412 sort(range, nr_range, sizeof(struct res_range), cmp_range, NULL);
1413
1414 range_sums = sum_ranges(range, nr_range);
1415 printk(KERN_INFO "total RAM coverred: %ldM\n",
1416 range_sums >> (20 - PAGE_SHIFT));
1417
1418 if (mtrr_chunk_size && mtrr_gran_size) {
1419 i = 0;
1420 mtrr_calc_range_state(mtrr_chunk_size, mtrr_gran_size,
1421 extra_remove_base, extra_remove_size, i);
1422
1423 mtrr_print_out_one_result(i);
1424
1425 if (!result[i].bad) {
1426 set_var_mtrr_all(address_bits);
1427 return 1;
1428 }
1429 printk(KERN_INFO "invalid mtrr_gran_size or mtrr_chunk_size, "
1430 "will find optimal one\n");
1431 }
1432
1433 i = 0;
1434 memset(min_loss_pfn, 0xff, sizeof(min_loss_pfn));
1435 memset(result, 0, sizeof(result));
1436 for (gran_size = (1ULL<<16); gran_size < (1ULL<<32); gran_size <<= 1) {
1437
1438 for (chunk_size = gran_size; chunk_size < (1ULL<<32);
1439 chunk_size <<= 1) {
1440
1441 if (i >= NUM_RESULT)
1442 continue;
1443
1444 mtrr_calc_range_state(chunk_size, gran_size,
1445 extra_remove_base, extra_remove_size, i);
1446 if (debug_print) {
1447 mtrr_print_out_one_result(i);
1448 printk(KERN_INFO "\n");
1449 }
1450
1451 i++;
1452 }
1453 }
1454
1455 /* try to find the optimal index */
1456 index_good = mtrr_search_optimal_index();
1457
1458 if (index_good != -1) {
1459 printk(KERN_INFO "Found optimal setting for mtrr clean up\n");
1460 i = index_good;
1461 mtrr_print_out_one_result(i);
1462
1463 /* convert ranges to var ranges state */
1464 chunk_size = result[i].chunk_sizek;
1465 chunk_size <<= 10;
1466 gran_size = result[i].gran_sizek;
1467 gran_size <<= 10;
1468 x86_setup_var_mtrrs(range, nr_range, chunk_size, gran_size);
1469 set_var_mtrr_all(address_bits);
1470 printk(KERN_DEBUG "New variable MTRRs\n");
1471 print_out_mtrr_range_state();
1472 return 1;
1473 } else {
1474 /* print out all */
1475 for (i = 0; i < NUM_RESULT; i++)
1476 mtrr_print_out_one_result(i);
1477 }
1478
1479 printk(KERN_INFO "mtrr_cleanup: can not find optimal value\n");
1480 printk(KERN_INFO "please specify mtrr_gran_size/mtrr_chunk_size\n");
1481
1482 return 0;
1483}
1484#else
1485static int __init mtrr_cleanup(unsigned address_bits)
1486{
1487 return 0;
1488}
1489#endif
1490
1491static int __initdata changed_by_mtrr_cleanup;
1492
1493static int disable_mtrr_trim;
1494
1495static int __init disable_mtrr_trim_setup(char *str)
1496{
1497 disable_mtrr_trim = 1;
1498 return 0;
1499}
1500early_param("disable_mtrr_trim", disable_mtrr_trim_setup);
1501
1502/*
1503 * Newer AMD K8s and later CPUs have a special magic MSR way to force WB
1504 * for memory >4GB. Check for that here.
1505 * Note this won't check if the MTRRs < 4GB where the magic bit doesn't
1506 * apply to are wrong, but so far we don't know of any such case in the wild.
1507 */
1508#define Tom2Enabled (1U << 21)
1509#define Tom2ForceMemTypeWB (1U << 22)
1510
1511int __init amd_special_default_mtrr(void)
1512{
1513 u32 l, h;
1514
1515 if (boot_cpu_data.x86_vendor != X86_VENDOR_AMD)
1516 return 0;
1517 if (boot_cpu_data.x86 < 0xf || boot_cpu_data.x86 > 0x11)
1518 return 0;
1519 /* In case some hypervisor doesn't pass SYSCFG through */
1520 if (rdmsr_safe(MSR_K8_SYSCFG, &l, &h) < 0)
1521 return 0;
1522 /*
1523 * Memory between 4GB and top of mem is forced WB by this magic bit.
1524 * Reserved before K8RevF, but should be zero there.
1525 */
1526 if ((l & (Tom2Enabled | Tom2ForceMemTypeWB)) ==
1527 (Tom2Enabled | Tom2ForceMemTypeWB))
1528 return 1;
1529 return 0;
1530}
1531
1532static u64 __init real_trim_memory(unsigned long start_pfn,
1533 unsigned long limit_pfn)
1534{
1535 u64 trim_start, trim_size;
1536 trim_start = start_pfn;
1537 trim_start <<= PAGE_SHIFT;
1538 trim_size = limit_pfn;
1539 trim_size <<= PAGE_SHIFT;
1540 trim_size -= trim_start;
1541
1542 return e820_update_range(trim_start, trim_size, E820_RAM,
1543 E820_RESERVED);
1544}
1545/**
1546 * mtrr_trim_uncached_memory - trim RAM not covered by MTRRs
1547 * @end_pfn: ending page frame number
1548 *
1549 * Some buggy BIOSes don't setup the MTRRs properly for systems with certain
1550 * memory configurations. This routine checks that the highest MTRR matches
1551 * the end of memory, to make sure the MTRRs having a write back type cover
1552 * all of the memory the kernel is intending to use. If not, it'll trim any
1553 * memory off the end by adjusting end_pfn, removing it from the kernel's
1554 * allocation pools, warning the user with an obnoxious message.
1555 */
1556int __init mtrr_trim_uncached_memory(unsigned long end_pfn)
1557{
1558 unsigned long i, base, size, highest_pfn = 0, def, dummy;
1559 mtrr_type type;
1560 u64 total_trim_size;
1561
1562 /* extra one for all 0 */
1563 int num[MTRR_NUM_TYPES + 1];
1564 /*
1565 * Make sure we only trim uncachable memory on machines that
1566 * support the Intel MTRR architecture:
1567 */
1568 if (!is_cpu(INTEL) || disable_mtrr_trim)
1569 return 0;
1570 rdmsr(MTRRdefType_MSR, def, dummy);
1571 def &= 0xff;
1572 if (def != MTRR_TYPE_UNCACHABLE)
1573 return 0;
1574
1575 /* get it and store it aside */
1576 memset(range_state, 0, sizeof(range_state));
1577 for (i = 0; i < num_var_ranges; i++) {
1578 mtrr_if->get(i, &base, &size, &type);
1579 range_state[i].base_pfn = base;
1580 range_state[i].size_pfn = size;
1581 range_state[i].type = type;
1582 }
1583
1584 /* Find highest cached pfn */
1585 for (i = 0; i < num_var_ranges; i++) {
1586 type = range_state[i].type;
1587 if (type != MTRR_TYPE_WRBACK)
1588 continue;
1589 base = range_state[i].base_pfn;
1590 size = range_state[i].size_pfn;
1591 if (highest_pfn < base + size)
1592 highest_pfn = base + size;
1593 }
1594
1595 /* kvm/qemu doesn't have mtrr set right, don't trim them all */
1596 if (!highest_pfn) {
1597 printk(KERN_INFO "CPU MTRRs all blank - virtualized system.\n");
1598 return 0;
1599 }
1600
1601 /* check entries number */
1602 memset(num, 0, sizeof(num));
1603 for (i = 0; i < num_var_ranges; i++) {
1604 type = range_state[i].type;
1605 if (type >= MTRR_NUM_TYPES)
1606 continue;
1607 size = range_state[i].size_pfn;
1608 if (!size)
1609 type = MTRR_NUM_TYPES;
1610 num[type]++;
1611 }
1612
1613 /* no entry for WB? */
1614 if (!num[MTRR_TYPE_WRBACK])
1615 return 0;
1616
1617 /* check if we only had WB and UC */
1618 if (num[MTRR_TYPE_WRBACK] + num[MTRR_TYPE_UNCACHABLE] !=
1619 num_var_ranges - num[MTRR_NUM_TYPES])
1620 return 0;
1621
1622 memset(range, 0, sizeof(range));
1623 nr_range = 0;
1624 if (mtrr_tom2) {
1625 range[nr_range].start = (1ULL<<(32 - PAGE_SHIFT));
1626 range[nr_range].end = (mtrr_tom2 >> PAGE_SHIFT) - 1;
1627 if (highest_pfn < range[nr_range].end + 1)
1628 highest_pfn = range[nr_range].end + 1;
1629 nr_range++;
1630 }
1631 nr_range = x86_get_mtrr_mem_range(range, nr_range, 0, 0);
1632
1633 total_trim_size = 0;
1634 /* check the head */
1635 if (range[0].start)
1636 total_trim_size += real_trim_memory(0, range[0].start);
1637 /* check the holes */
1638 for (i = 0; i < nr_range - 1; i++) {
1639 if (range[i].end + 1 < range[i+1].start)
1640 total_trim_size += real_trim_memory(range[i].end + 1,
1641 range[i+1].start);
1642 }
1643 /* check the top */
1644 i = nr_range - 1;
1645 if (range[i].end + 1 < end_pfn)
1646 total_trim_size += real_trim_memory(range[i].end + 1,
1647 end_pfn);
1648
1649 if (total_trim_size) {
1650 printk(KERN_WARNING "WARNING: BIOS bug: CPU MTRRs don't cover"
1651 " all of memory, losing %lluMB of RAM.\n",
1652 total_trim_size >> 20);
1653
1654 if (!changed_by_mtrr_cleanup)
1655 WARN_ON(1);
1656
1657 printk(KERN_INFO "update e820 for mtrr\n");
1658 update_e820();
1659
1660 return 1;
1661 }
1662
1663 return 0;
1664}
1665 614
1666/** 615/**
1667 * mtrr_bp_init - initialize mtrrs on the boot CPU 616 * mtrr_bp_init - initialize mtrrs on the boot CPU
diff --git a/arch/x86/kernel/cpu/mtrr/mtrr.h b/arch/x86/kernel/cpu/mtrr/mtrr.h
index ffd60409cc6d..77f67f7b347a 100644
--- a/arch/x86/kernel/cpu/mtrr/mtrr.h
+++ b/arch/x86/kernel/cpu/mtrr/mtrr.h
@@ -79,6 +79,7 @@ extern struct mtrr_ops * mtrr_if;
79 79
80extern unsigned int num_var_ranges; 80extern unsigned int num_var_ranges;
81extern u64 mtrr_tom2; 81extern u64 mtrr_tom2;
82extern struct mtrr_state_type mtrr_state;
82 83
83void mtrr_state_warn(void); 84void mtrr_state_warn(void);
84const char *mtrr_attrib_to_str(int x); 85const char *mtrr_attrib_to_str(int x);
@@ -88,3 +89,6 @@ void mtrr_wrmsr(unsigned, unsigned, unsigned);
88int amd_init_mtrr(void); 89int amd_init_mtrr(void);
89int cyrix_init_mtrr(void); 90int cyrix_init_mtrr(void);
90int centaur_init_mtrr(void); 91int centaur_init_mtrr(void);
92
93extern int changed_by_mtrr_cleanup;
94extern int mtrr_cleanup(unsigned address_bits);
diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c
index 95b81c18b6bc..fb638d9ce6d2 100644
--- a/arch/x86/kernel/e820.c
+++ b/arch/x86/kernel/e820.c
@@ -131,6 +131,31 @@ void __init e820_add_region(u64 start, u64 size, int type)
131 __e820_add_region(&e820, start, size, type); 131 __e820_add_region(&e820, start, size, type);
132} 132}
133 133
134static void __init e820_print_type(u32 type)
135{
136 switch (type) {
137 case E820_RAM:
138 case E820_RESERVED_KERN:
139 printk(KERN_CONT "(usable)");
140 break;
141 case E820_RESERVED:
142 printk(KERN_CONT "(reserved)");
143 break;
144 case E820_ACPI:
145 printk(KERN_CONT "(ACPI data)");
146 break;
147 case E820_NVS:
148 printk(KERN_CONT "(ACPI NVS)");
149 break;
150 case E820_UNUSABLE:
151 printk(KERN_CONT "(unusable)");
152 break;
153 default:
154 printk(KERN_CONT "type %u", type);
155 break;
156 }
157}
158
134void __init e820_print_map(char *who) 159void __init e820_print_map(char *who)
135{ 160{
136 int i; 161 int i;
@@ -140,27 +165,8 @@ void __init e820_print_map(char *who)
140 (unsigned long long) e820.map[i].addr, 165 (unsigned long long) e820.map[i].addr,
141 (unsigned long long) 166 (unsigned long long)
142 (e820.map[i].addr + e820.map[i].size)); 167 (e820.map[i].addr + e820.map[i].size));
143 switch (e820.map[i].type) { 168 e820_print_type(e820.map[i].type);
144 case E820_RAM: 169 printk(KERN_CONT "\n");
145 case E820_RESERVED_KERN:
146 printk(KERN_CONT "(usable)\n");
147 break;
148 case E820_RESERVED:
149 printk(KERN_CONT "(reserved)\n");
150 break;
151 case E820_ACPI:
152 printk(KERN_CONT "(ACPI data)\n");
153 break;
154 case E820_NVS:
155 printk(KERN_CONT "(ACPI NVS)\n");
156 break;
157 case E820_UNUSABLE:
158 printk("(unusable)\n");
159 break;
160 default:
161 printk(KERN_CONT "type %u\n", e820.map[i].type);
162 break;
163 }
164 } 170 }
165} 171}
166 172
@@ -427,6 +433,7 @@ static u64 __init __e820_update_range(struct e820map *e820x, u64 start,
427 u64 size, unsigned old_type, 433 u64 size, unsigned old_type,
428 unsigned new_type) 434 unsigned new_type)
429{ 435{
436 u64 end;
430 unsigned int i; 437 unsigned int i;
431 u64 real_updated_size = 0; 438 u64 real_updated_size = 0;
432 439
@@ -435,21 +442,43 @@ static u64 __init __e820_update_range(struct e820map *e820x, u64 start,
435 if (size > (ULLONG_MAX - start)) 442 if (size > (ULLONG_MAX - start))
436 size = ULLONG_MAX - start; 443 size = ULLONG_MAX - start;
437 444
445 end = start + size;
446 printk(KERN_DEBUG "e820 update range: %016Lx - %016Lx ",
447 (unsigned long long) start,
448 (unsigned long long) end);
449 e820_print_type(old_type);
450 printk(KERN_CONT " ==> ");
451 e820_print_type(new_type);
452 printk(KERN_CONT "\n");
453
438 for (i = 0; i < e820x->nr_map; i++) { 454 for (i = 0; i < e820x->nr_map; i++) {
439 struct e820entry *ei = &e820x->map[i]; 455 struct e820entry *ei = &e820x->map[i];
440 u64 final_start, final_end; 456 u64 final_start, final_end;
457 u64 ei_end;
458
441 if (ei->type != old_type) 459 if (ei->type != old_type)
442 continue; 460 continue;
443 /* totally covered? */ 461
444 if (ei->addr >= start && 462 ei_end = ei->addr + ei->size;
445 (ei->addr + ei->size) <= (start + size)) { 463 /* totally covered by new range? */
464 if (ei->addr >= start && ei_end <= end) {
446 ei->type = new_type; 465 ei->type = new_type;
447 real_updated_size += ei->size; 466 real_updated_size += ei->size;
448 continue; 467 continue;
449 } 468 }
469
470 /* new range is totally covered? */
471 if (ei->addr < start && ei_end > end) {
472 __e820_add_region(e820x, start, size, new_type);
473 __e820_add_region(e820x, end, ei_end - end, ei->type);
474 ei->size = start - ei->addr;
475 real_updated_size += size;
476 continue;
477 }
478
450 /* partially covered */ 479 /* partially covered */
451 final_start = max(start, ei->addr); 480 final_start = max(start, ei->addr);
452 final_end = min(start + size, ei->addr + ei->size); 481 final_end = min(end, ei_end);
453 if (final_start >= final_end) 482 if (final_start >= final_end)
454 continue; 483 continue;
455 484
diff --git a/arch/x86/kernel/head32.c b/arch/x86/kernel/head32.c
index ac108d1fe182..3f8579f8d42c 100644
--- a/arch/x86/kernel/head32.c
+++ b/arch/x86/kernel/head32.c
@@ -18,7 +18,7 @@ void __init i386_start_kernel(void)
18{ 18{
19 reserve_trampoline_memory(); 19 reserve_trampoline_memory();
20 20
21 reserve_early(__pa_symbol(&_text), __pa_symbol(&_end), "TEXT DATA BSS"); 21 reserve_early(__pa_symbol(&_text), __pa_symbol(&__bss_stop), "TEXT DATA BSS");
22 22
23#ifdef CONFIG_BLK_DEV_INITRD 23#ifdef CONFIG_BLK_DEV_INITRD
24 /* Reserve INITRD */ 24 /* Reserve INITRD */
@@ -29,9 +29,6 @@ void __init i386_start_kernel(void)
29 reserve_early(ramdisk_image, ramdisk_end, "RAMDISK"); 29 reserve_early(ramdisk_image, ramdisk_end, "RAMDISK");
30 } 30 }
31#endif 31#endif
32 reserve_early(init_pg_tables_start, init_pg_tables_end,
33 "INIT_PG_TABLE");
34
35 reserve_ebda_region(); 32 reserve_ebda_region();
36 33
37 /* 34 /*
diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c
index f5b272247690..70eaa852c732 100644
--- a/arch/x86/kernel/head64.c
+++ b/arch/x86/kernel/head64.c
@@ -100,7 +100,7 @@ void __init x86_64_start_reservations(char *real_mode_data)
100 100
101 reserve_trampoline_memory(); 101 reserve_trampoline_memory();
102 102
103 reserve_early(__pa_symbol(&_text), __pa_symbol(&_end), "TEXT DATA BSS"); 103 reserve_early(__pa_symbol(&_text), __pa_symbol(&__bss_stop), "TEXT DATA BSS");
104 104
105#ifdef CONFIG_BLK_DEV_INITRD 105#ifdef CONFIG_BLK_DEV_INITRD
106 /* Reserve INITRD */ 106 /* Reserve INITRD */
diff --git a/arch/x86/kernel/head_32.S b/arch/x86/kernel/head_32.S
index c32ca19d591a..30683883e0cd 100644
--- a/arch/x86/kernel/head_32.S
+++ b/arch/x86/kernel/head_32.S
@@ -38,42 +38,40 @@
38#define X86_VENDOR_ID new_cpu_data+CPUINFO_x86_vendor_id 38#define X86_VENDOR_ID new_cpu_data+CPUINFO_x86_vendor_id
39 39
40/* 40/*
41 * This is how much memory *in addition to the memory covered up to 41 * This is how much memory in addition to the memory covered up to
42 * and including _end* we need mapped initially. 42 * and including _end we need mapped initially.
43 * We need: 43 * We need:
44 * - one bit for each possible page, but only in low memory, which means 44 * (KERNEL_IMAGE_SIZE/4096) / 1024 pages (worst case, non PAE)
45 * 2^32/4096/8 = 128K worst case (4G/4G split.) 45 * (KERNEL_IMAGE_SIZE/4096) / 512 + 4 pages (worst case for PAE)
46 * - enough space to map all low memory, which means
47 * (2^32/4096) / 1024 pages (worst case, non PAE)
48 * (2^32/4096) / 512 + 4 pages (worst case for PAE)
49 * - a few pages for allocator use before the kernel pagetable has
50 * been set up
51 * 46 *
52 * Modulo rounding, each megabyte assigned here requires a kilobyte of 47 * Modulo rounding, each megabyte assigned here requires a kilobyte of
53 * memory, which is currently unreclaimed. 48 * memory, which is currently unreclaimed.
54 * 49 *
55 * This should be a multiple of a page. 50 * This should be a multiple of a page.
51 *
52 * KERNEL_IMAGE_SIZE should be greater than pa(_end)
53 * and small than max_low_pfn, otherwise will waste some page table entries
56 */ 54 */
57LOW_PAGES = 1<<(32-PAGE_SHIFT_asm)
58
59/*
60 * To preserve the DMA pool in PAGEALLOC kernels, we'll allocate
61 * pagetables from above the 16MB DMA limit, so we'll have to set
62 * up pagetables 16MB more (worst-case):
63 */
64#ifdef CONFIG_DEBUG_PAGEALLOC
65LOW_PAGES = LOW_PAGES + 0x1000000
66#endif
67 55
68#if PTRS_PER_PMD > 1 56#if PTRS_PER_PMD > 1
69PAGE_TABLE_SIZE = (LOW_PAGES / PTRS_PER_PMD) + PTRS_PER_PGD 57#define PAGE_TABLE_SIZE(pages) (((pages) / PTRS_PER_PMD) + PTRS_PER_PGD)
70#else 58#else
71PAGE_TABLE_SIZE = (LOW_PAGES / PTRS_PER_PGD) 59#define PAGE_TABLE_SIZE(pages) ((pages) / PTRS_PER_PGD)
72#endif 60#endif
73BOOTBITMAP_SIZE = LOW_PAGES / 8
74ALLOCATOR_SLOP = 4
75 61
76INIT_MAP_BEYOND_END = BOOTBITMAP_SIZE + (PAGE_TABLE_SIZE + ALLOCATOR_SLOP)*PAGE_SIZE_asm 62/* Enough space to fit pagetables for the low memory linear map */
63MAPPING_BEYOND_END = \
64 PAGE_TABLE_SIZE(((1<<32) - __PAGE_OFFSET) >> PAGE_SHIFT) << PAGE_SHIFT
65
66/*
67 * Worst-case size of the kernel mapping we need to make:
68 * the worst-case size of the kernel itself, plus the extra we need
69 * to map for the linear map.
70 */
71KERNEL_PAGES = (KERNEL_IMAGE_SIZE + MAPPING_BEYOND_END)>>PAGE_SHIFT
72
73INIT_MAP_SIZE = PAGE_TABLE_SIZE(KERNEL_PAGES) * PAGE_SIZE_asm
74RESERVE_BRK(pagetables, INIT_MAP_SIZE)
77 75
78/* 76/*
79 * 32-bit kernel entrypoint; only used by the boot CPU. On entry, 77 * 32-bit kernel entrypoint; only used by the boot CPU. On entry,
@@ -166,10 +164,10 @@ num_subarch_entries = (. - subarch_entries) / 4
166 164
167/* 165/*
168 * Initialize page tables. This creates a PDE and a set of page 166 * Initialize page tables. This creates a PDE and a set of page
169 * tables, which are located immediately beyond _end. The variable 167 * tables, which are located immediately beyond __brk_base. The variable
170 * init_pg_tables_end is set up to point to the first "safe" location. 168 * _brk_end is set up to point to the first "safe" location.
171 * Mappings are created both at virtual address 0 (identity mapping) 169 * Mappings are created both at virtual address 0 (identity mapping)
172 * and PAGE_OFFSET for up to _end+sizeof(page tables)+INIT_MAP_BEYOND_END. 170 * and PAGE_OFFSET for up to _end.
173 * 171 *
174 * Note that the stack is not yet set up! 172 * Note that the stack is not yet set up!
175 */ 173 */
@@ -190,8 +188,7 @@ default_entry:
190 188
191 xorl %ebx,%ebx /* %ebx is kept at zero */ 189 xorl %ebx,%ebx /* %ebx is kept at zero */
192 190
193 movl $pa(pg0), %edi 191 movl $pa(__brk_base), %edi
194 movl %edi, pa(init_pg_tables_start)
195 movl $pa(swapper_pg_pmd), %edx 192 movl $pa(swapper_pg_pmd), %edx
196 movl $PTE_IDENT_ATTR, %eax 193 movl $PTE_IDENT_ATTR, %eax
19710: 19410:
@@ -209,14 +206,14 @@ default_entry:
209 loop 11b 206 loop 11b
210 207
211 /* 208 /*
212 * End condition: we must map up to and including INIT_MAP_BEYOND_END 209 * End condition: we must map up to the end + MAPPING_BEYOND_END.
213 * bytes beyond the end of our own page tables.
214 */ 210 */
215 leal (INIT_MAP_BEYOND_END+PTE_IDENT_ATTR)(%edi),%ebp 211 movl $pa(_end) + MAPPING_BEYOND_END + PTE_IDENT_ATTR, %ebp
216 cmpl %ebp,%eax 212 cmpl %ebp,%eax
217 jb 10b 213 jb 10b
2181: 2141:
219 movl %edi,pa(init_pg_tables_end) 215 addl $__PAGE_OFFSET, %edi
216 movl %edi, pa(_brk_end)
220 shrl $12, %eax 217 shrl $12, %eax
221 movl %eax, pa(max_pfn_mapped) 218 movl %eax, pa(max_pfn_mapped)
222 219
@@ -227,8 +224,7 @@ default_entry:
227 224
228page_pde_offset = (__PAGE_OFFSET >> 20); 225page_pde_offset = (__PAGE_OFFSET >> 20);
229 226
230 movl $pa(pg0), %edi 227 movl $pa(__brk_base), %edi
231 movl %edi, pa(init_pg_tables_start)
232 movl $pa(swapper_pg_dir), %edx 228 movl $pa(swapper_pg_dir), %edx
233 movl $PTE_IDENT_ATTR, %eax 229 movl $PTE_IDENT_ATTR, %eax
23410: 23010:
@@ -242,14 +238,13 @@ page_pde_offset = (__PAGE_OFFSET >> 20);
242 addl $0x1000,%eax 238 addl $0x1000,%eax
243 loop 11b 239 loop 11b
244 /* 240 /*
245 * End condition: we must map up to and including INIT_MAP_BEYOND_END 241 * End condition: we must map up to the end + MAPPING_BEYOND_END.
246 * bytes beyond the end of our own page tables; the +0x007 is
247 * the attribute bits
248 */ 242 */
249 leal (INIT_MAP_BEYOND_END+PTE_IDENT_ATTR)(%edi),%ebp 243 movl $pa(_end) + MAPPING_BEYOND_END + PTE_IDENT_ATTR, %ebp
250 cmpl %ebp,%eax 244 cmpl %ebp,%eax
251 jb 10b 245 jb 10b
252 movl %edi,pa(init_pg_tables_end) 246 addl $__PAGE_OFFSET, %edi
247 movl %edi, pa(_brk_end)
253 shrl $12, %eax 248 shrl $12, %eax
254 movl %eax, pa(max_pfn_mapped) 249 movl %eax, pa(max_pfn_mapped)
255 250
@@ -636,6 +631,7 @@ swapper_pg_fixmap:
636 .fill 1024,4,0 631 .fill 1024,4,0
637ENTRY(empty_zero_page) 632ENTRY(empty_zero_page)
638 .fill 4096,1,0 633 .fill 4096,1,0
634
639/* 635/*
640 * This starts the data section. 636 * This starts the data section.
641 */ 637 */
diff --git a/arch/x86/kernel/kprobes.c b/arch/x86/kernel/kprobes.c
index e948b28a5a9a..4558dd3918cf 100644
--- a/arch/x86/kernel/kprobes.c
+++ b/arch/x86/kernel/kprobes.c
@@ -193,6 +193,9 @@ static int __kprobes can_boost(kprobe_opcode_t *opcodes)
193 kprobe_opcode_t opcode; 193 kprobe_opcode_t opcode;
194 kprobe_opcode_t *orig_opcodes = opcodes; 194 kprobe_opcode_t *orig_opcodes = opcodes;
195 195
196 if (search_exception_tables(opcodes))
197 return 0; /* Page fault may occur on this address. */
198
196retry: 199retry:
197 if (opcodes - orig_opcodes > MAX_INSN_SIZE - 1) 200 if (opcodes - orig_opcodes > MAX_INSN_SIZE - 1)
198 return 0; 201 return 0;
diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c
index 6afa5232dbb7..156f87582c6c 100644
--- a/arch/x86/kernel/process.c
+++ b/arch/x86/kernel/process.c
@@ -65,11 +65,11 @@ void exit_thread(void)
65{ 65{
66 struct task_struct *me = current; 66 struct task_struct *me = current;
67 struct thread_struct *t = &me->thread; 67 struct thread_struct *t = &me->thread;
68 unsigned long *bp = t->io_bitmap_ptr;
68 69
69 if (me->thread.io_bitmap_ptr) { 70 if (bp) {
70 struct tss_struct *tss = &per_cpu(init_tss, get_cpu()); 71 struct tss_struct *tss = &per_cpu(init_tss, get_cpu());
71 72
72 kfree(t->io_bitmap_ptr);
73 t->io_bitmap_ptr = NULL; 73 t->io_bitmap_ptr = NULL;
74 clear_thread_flag(TIF_IO_BITMAP); 74 clear_thread_flag(TIF_IO_BITMAP);
75 /* 75 /*
@@ -78,6 +78,7 @@ void exit_thread(void)
78 memset(tss->io_bitmap, 0xff, t->io_bitmap_max); 78 memset(tss->io_bitmap, 0xff, t->io_bitmap_max);
79 t->io_bitmap_max = 0; 79 t->io_bitmap_max = 0;
80 put_cpu(); 80 put_cpu();
81 kfree(bp);
81 } 82 }
82 83
83 ds_exit_thread(current); 84 ds_exit_thread(current);
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index f28c56e6bf94..a0d26237d7cf 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -112,8 +112,13 @@
112#define ARCH_SETUP 112#define ARCH_SETUP
113#endif 113#endif
114 114
115RESERVE_BRK(dmi_alloc, 65536);
116
115unsigned int boot_cpu_id __read_mostly; 117unsigned int boot_cpu_id __read_mostly;
116 118
119static __initdata unsigned long _brk_start = (unsigned long)__brk_base;
120unsigned long _brk_end = (unsigned long)__brk_base;
121
117#ifdef CONFIG_X86_64 122#ifdef CONFIG_X86_64
118int default_cpu_present_to_apicid(int mps_cpu) 123int default_cpu_present_to_apicid(int mps_cpu)
119{ 124{
@@ -158,12 +163,6 @@ static struct resource bss_resource = {
158 163
159 164
160#ifdef CONFIG_X86_32 165#ifdef CONFIG_X86_32
161/* This value is set up by the early boot code to point to the value
162 immediately after the boot time page tables. It contains a *physical*
163 address, and must not be in the .bss segment! */
164unsigned long init_pg_tables_start __initdata = ~0UL;
165unsigned long init_pg_tables_end __initdata = ~0UL;
166
167static struct resource video_ram_resource = { 166static struct resource video_ram_resource = {
168 .name = "Video RAM area", 167 .name = "Video RAM area",
169 .start = 0xa0000, 168 .start = 0xa0000,
@@ -219,12 +218,6 @@ unsigned long mmu_cr4_features = X86_CR4_PAE;
219int bootloader_type; 218int bootloader_type;
220 219
221/* 220/*
222 * Early DMI memory
223 */
224int dmi_alloc_index;
225char dmi_alloc_data[DMI_MAX_DATA];
226
227/*
228 * Setup options 221 * Setup options
229 */ 222 */
230struct screen_info screen_info; 223struct screen_info screen_info;
@@ -269,6 +262,35 @@ static inline void copy_edd(void)
269} 262}
270#endif 263#endif
271 264
265void * __init extend_brk(size_t size, size_t align)
266{
267 size_t mask = align - 1;
268 void *ret;
269
270 BUG_ON(_brk_start == 0);
271 BUG_ON(align & mask);
272
273 _brk_end = (_brk_end + mask) & ~mask;
274 BUG_ON((char *)(_brk_end + size) > __brk_limit);
275
276 ret = (void *)_brk_end;
277 _brk_end += size;
278
279 memset(ret, 0, size);
280
281 return ret;
282}
283
284static void __init reserve_brk(void)
285{
286 if (_brk_end > _brk_start)
287 reserve_early(__pa(_brk_start), __pa(_brk_end), "BRK");
288
289 /* Mark brk area as locked down and no longer taking any
290 new allocations */
291 _brk_start = 0;
292}
293
272#ifdef CONFIG_BLK_DEV_INITRD 294#ifdef CONFIG_BLK_DEV_INITRD
273 295
274#ifdef CONFIG_X86_32 296#ifdef CONFIG_X86_32
@@ -717,11 +739,7 @@ void __init setup_arch(char **cmdline_p)
717 init_mm.start_code = (unsigned long) _text; 739 init_mm.start_code = (unsigned long) _text;
718 init_mm.end_code = (unsigned long) _etext; 740 init_mm.end_code = (unsigned long) _etext;
719 init_mm.end_data = (unsigned long) _edata; 741 init_mm.end_data = (unsigned long) _edata;
720#ifdef CONFIG_X86_32 742 init_mm.brk = _brk_end;
721 init_mm.brk = init_pg_tables_end + PAGE_OFFSET;
722#else
723 init_mm.brk = (unsigned long) &_end;
724#endif
725 743
726 code_resource.start = virt_to_phys(_text); 744 code_resource.start = virt_to_phys(_text);
727 code_resource.end = virt_to_phys(_etext)-1; 745 code_resource.end = virt_to_phys(_etext)-1;
@@ -842,6 +860,8 @@ void __init setup_arch(char **cmdline_p)
842 setup_bios_corruption_check(); 860 setup_bios_corruption_check();
843#endif 861#endif
844 862
863 reserve_brk();
864
845 /* max_pfn_mapped is updated here */ 865 /* max_pfn_mapped is updated here */
846 max_low_pfn_mapped = init_memory_mapping(0, max_low_pfn<<PAGE_SHIFT); 866 max_low_pfn_mapped = init_memory_mapping(0, max_low_pfn<<PAGE_SHIFT);
847 max_pfn_mapped = max_low_pfn_mapped; 867 max_pfn_mapped = max_low_pfn_mapped;
diff --git a/arch/x86/kernel/tlb_uv.c b/arch/x86/kernel/tlb_uv.c
index d038b9c45cf8..79c073247284 100644
--- a/arch/x86/kernel/tlb_uv.c
+++ b/arch/x86/kernel/tlb_uv.c
@@ -750,7 +750,7 @@ static int __init uv_bau_init(void)
750 int node; 750 int node;
751 int nblades; 751 int nblades;
752 int last_blade; 752 int last_blade;
753 int cur_cpu = 0; 753 int cur_cpu;
754 754
755 if (!is_uv_system()) 755 if (!is_uv_system())
756 return 0; 756 return 0;
@@ -760,6 +760,7 @@ static int __init uv_bau_init(void)
760 uv_mmask = (1UL << uv_hub_info->n_val) - 1; 760 uv_mmask = (1UL << uv_hub_info->n_val) - 1;
761 nblades = 0; 761 nblades = 0;
762 last_blade = -1; 762 last_blade = -1;
763 cur_cpu = 0;
763 for_each_online_node(node) { 764 for_each_online_node(node) {
764 blade = uv_node_to_blade_id(node); 765 blade = uv_node_to_blade_id(node);
765 if (blade == last_blade) 766 if (blade == last_blade)
diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index 83d53ce5d4c4..462b9ba67e92 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -273,30 +273,43 @@ static unsigned long pit_calibrate_tsc(u32 latch, unsigned long ms, int loopmin)
273 * use the TSC value at the transitions to calculate a pretty 273 * use the TSC value at the transitions to calculate a pretty
274 * good value for the TSC frequencty. 274 * good value for the TSC frequencty.
275 */ 275 */
276static inline int pit_expect_msb(unsigned char val) 276static inline int pit_expect_msb(unsigned char val, u64 *tscp, unsigned long *deltap)
277{ 277{
278 int count = 0; 278 int count;
279 u64 tsc = 0;
279 280
280 for (count = 0; count < 50000; count++) { 281 for (count = 0; count < 50000; count++) {
281 /* Ignore LSB */ 282 /* Ignore LSB */
282 inb(0x42); 283 inb(0x42);
283 if (inb(0x42) != val) 284 if (inb(0x42) != val)
284 break; 285 break;
286 tsc = get_cycles();
285 } 287 }
286 return count > 50; 288 *deltap = get_cycles() - tsc;
289 *tscp = tsc;
290
291 /*
292 * We require _some_ success, but the quality control
293 * will be based on the error terms on the TSC values.
294 */
295 return count > 5;
287} 296}
288 297
289/* 298/*
290 * How many MSB values do we want to see? We aim for a 299 * How many MSB values do we want to see? We aim for
291 * 15ms calibration, which assuming a 2us counter read 300 * a maximum error rate of 500ppm (in practice the
292 * error should give us roughly 150 ppm precision for 301 * real error is much smaller), but refuse to spend
293 * the calibration. 302 * more than 25ms on it.
294 */ 303 */
295#define QUICK_PIT_MS 15 304#define MAX_QUICK_PIT_MS 25
296#define QUICK_PIT_ITERATIONS (QUICK_PIT_MS * PIT_TICK_RATE / 1000 / 256) 305#define MAX_QUICK_PIT_ITERATIONS (MAX_QUICK_PIT_MS * PIT_TICK_RATE / 1000 / 256)
297 306
298static unsigned long quick_pit_calibrate(void) 307static unsigned long quick_pit_calibrate(void)
299{ 308{
309 int i;
310 u64 tsc, delta;
311 unsigned long d1, d2;
312
300 /* Set the Gate high, disable speaker */ 313 /* Set the Gate high, disable speaker */
301 outb((inb(0x61) & ~0x02) | 0x01, 0x61); 314 outb((inb(0x61) & ~0x02) | 0x01, 0x61);
302 315
@@ -315,45 +328,52 @@ static unsigned long quick_pit_calibrate(void)
315 outb(0xff, 0x42); 328 outb(0xff, 0x42);
316 outb(0xff, 0x42); 329 outb(0xff, 0x42);
317 330
318 if (pit_expect_msb(0xff)) { 331 /*
319 int i; 332 * The PIT starts counting at the next edge, so we
320 u64 t1, t2, delta; 333 * need to delay for a microsecond. The easiest way
321 unsigned char expect = 0xfe; 334 * to do that is to just read back the 16-bit counter
322 335 * once from the PIT.
323 t1 = get_cycles(); 336 */
324 for (i = 0; i < QUICK_PIT_ITERATIONS; i++, expect--) { 337 inb(0x42);
325 if (!pit_expect_msb(expect)) 338 inb(0x42);
326 goto failed; 339
340 if (pit_expect_msb(0xff, &tsc, &d1)) {
341 for (i = 1; i <= MAX_QUICK_PIT_ITERATIONS; i++) {
342 if (!pit_expect_msb(0xff-i, &delta, &d2))
343 break;
344
345 /*
346 * Iterate until the error is less than 500 ppm
347 */
348 delta -= tsc;
349 if (d1+d2 < delta >> 11)
350 goto success;
327 } 351 }
328 t2 = get_cycles();
329
330 /*
331 * Make sure we can rely on the second TSC timestamp:
332 */
333 if (!pit_expect_msb(expect))
334 goto failed;
335
336 /*
337 * Ok, if we get here, then we've seen the
338 * MSB of the PIT decrement QUICK_PIT_ITERATIONS
339 * times, and each MSB had many hits, so we never
340 * had any sudden jumps.
341 *
342 * As a result, we can depend on there not being
343 * any odd delays anywhere, and the TSC reads are
344 * reliable.
345 *
346 * kHz = ticks / time-in-seconds / 1000;
347 * kHz = (t2 - t1) / (QPI * 256 / PIT_TICK_RATE) / 1000
348 * kHz = ((t2 - t1) * PIT_TICK_RATE) / (QPI * 256 * 1000)
349 */
350 delta = (t2 - t1)*PIT_TICK_RATE;
351 do_div(delta, QUICK_PIT_ITERATIONS*256*1000);
352 printk("Fast TSC calibration using PIT\n");
353 return delta;
354 } 352 }
355failed: 353 printk("Fast TSC calibration failed\n");
356 return 0; 354 return 0;
355
356success:
357 /*
358 * Ok, if we get here, then we've seen the
359 * MSB of the PIT decrement 'i' times, and the
360 * error has shrunk to less than 500 ppm.
361 *
362 * As a result, we can depend on there not being
363 * any odd delays anywhere, and the TSC reads are
364 * reliable (within the error). We also adjust the
365 * delta to the middle of the error bars, just
366 * because it looks nicer.
367 *
368 * kHz = ticks / time-in-seconds / 1000;
369 * kHz = (t2 - t1) / (I * 256 / PIT_TICK_RATE) / 1000
370 * kHz = ((t2 - t1) * PIT_TICK_RATE) / (I * 256 * 1000)
371 */
372 delta += (long)(d2 - d1)/2;
373 delta *= PIT_TICK_RATE;
374 do_div(delta, i*256*1000);
375 printk("Fast TSC calibration using PIT\n");
376 return delta;
357} 377}
358 378
359/** 379/**
diff --git a/arch/x86/kernel/vmlinux_32.lds.S b/arch/x86/kernel/vmlinux_32.lds.S
index 0d860963f268..62ad500d55f3 100644
--- a/arch/x86/kernel/vmlinux_32.lds.S
+++ b/arch/x86/kernel/vmlinux_32.lds.S
@@ -189,15 +189,24 @@ SECTIONS
189 *(.bss) 189 *(.bss)
190 . = ALIGN(4); 190 . = ALIGN(4);
191 __bss_stop = .; 191 __bss_stop = .;
192 _end = . ; 192 }
193 /* This is where the kernel creates the early boot page tables */ 193
194 .brk : AT(ADDR(.brk) - LOAD_OFFSET) {
194 . = ALIGN(PAGE_SIZE); 195 . = ALIGN(PAGE_SIZE);
195 pg0 = . ; 196 __brk_base = . ;
197 . += 64 * 1024 ; /* 64k alignment slop space */
198 *(.brk_reservation) /* areas brk users have reserved */
199 __brk_limit = . ;
200 }
201
202 .end : AT(ADDR(.end) - LOAD_OFFSET) {
203 _end = . ;
196 } 204 }
197 205
198 /* Sections to be discarded */ 206 /* Sections to be discarded */
199 /DISCARD/ : { 207 /DISCARD/ : {
200 *(.exitcall.exit) 208 *(.exitcall.exit)
209 *(.discard)
201 } 210 }
202 211
203 STABS_DEBUG 212 STABS_DEBUG
@@ -205,6 +214,12 @@ SECTIONS
205 DWARF_DEBUG 214 DWARF_DEBUG
206} 215}
207 216
217/*
218 * Build-time check on the image size:
219 */
220ASSERT((_end - LOAD_OFFSET <= KERNEL_IMAGE_SIZE),
221 "kernel image bigger than KERNEL_IMAGE_SIZE")
222
208#ifdef CONFIG_KEXEC 223#ifdef CONFIG_KEXEC
209/* Link time checks */ 224/* Link time checks */
210#include <asm/kexec.h> 225#include <asm/kexec.h>
diff --git a/arch/x86/kernel/vmlinux_64.lds.S b/arch/x86/kernel/vmlinux_64.lds.S
index 5bf54e40c6ef..c8742507b030 100644
--- a/arch/x86/kernel/vmlinux_64.lds.S
+++ b/arch/x86/kernel/vmlinux_64.lds.S
@@ -29,8 +29,8 @@ SECTIONS
29{ 29{
30 . = __START_KERNEL; 30 . = __START_KERNEL;
31 phys_startup_64 = startup_64 - LOAD_OFFSET; 31 phys_startup_64 = startup_64 - LOAD_OFFSET;
32 _text = .; /* Text and read-only data */
33 .text : AT(ADDR(.text) - LOAD_OFFSET) { 32 .text : AT(ADDR(.text) - LOAD_OFFSET) {
33 _text = .; /* Text and read-only data */
34 /* First the code that has to be first for bootstrapping */ 34 /* First the code that has to be first for bootstrapping */
35 *(.text.head) 35 *(.text.head)
36 _stext = .; 36 _stext = .;
@@ -61,13 +61,13 @@ SECTIONS
61 .data : AT(ADDR(.data) - LOAD_OFFSET) { 61 .data : AT(ADDR(.data) - LOAD_OFFSET) {
62 DATA_DATA 62 DATA_DATA
63 CONSTRUCTORS 63 CONSTRUCTORS
64 _edata = .; /* End of data section */
64 } :data 65 } :data
65 66
66 _edata = .; /* End of data section */
67 67
68 . = ALIGN(PAGE_SIZE);
69 . = ALIGN(CONFIG_X86_L1_CACHE_BYTES);
70 .data.cacheline_aligned : AT(ADDR(.data.cacheline_aligned) - LOAD_OFFSET) { 68 .data.cacheline_aligned : AT(ADDR(.data.cacheline_aligned) - LOAD_OFFSET) {
69 . = ALIGN(PAGE_SIZE);
70 . = ALIGN(CONFIG_X86_L1_CACHE_BYTES);
71 *(.data.cacheline_aligned) 71 *(.data.cacheline_aligned)
72 } 72 }
73 . = ALIGN(CONFIG_X86_INTERNODE_CACHE_BYTES); 73 . = ALIGN(CONFIG_X86_INTERNODE_CACHE_BYTES);
@@ -125,29 +125,29 @@ SECTIONS
125#undef VVIRT_OFFSET 125#undef VVIRT_OFFSET
126#undef VVIRT 126#undef VVIRT
127 127
128 . = ALIGN(THREAD_SIZE); /* init_task */
129 .data.init_task : AT(ADDR(.data.init_task) - LOAD_OFFSET) { 128 .data.init_task : AT(ADDR(.data.init_task) - LOAD_OFFSET) {
129 . = ALIGN(THREAD_SIZE); /* init_task */
130 *(.data.init_task) 130 *(.data.init_task)
131 }:data.init 131 }:data.init
132 132
133 . = ALIGN(PAGE_SIZE);
134 .data.page_aligned : AT(ADDR(.data.page_aligned) - LOAD_OFFSET) { 133 .data.page_aligned : AT(ADDR(.data.page_aligned) - LOAD_OFFSET) {
134 . = ALIGN(PAGE_SIZE);
135 *(.data.page_aligned) 135 *(.data.page_aligned)
136 } 136 }
137 137
138 /* might get freed after init */
139 . = ALIGN(PAGE_SIZE);
140 __smp_alt_begin = .;
141 __smp_locks = .;
142 .smp_locks : AT(ADDR(.smp_locks) - LOAD_OFFSET) { 138 .smp_locks : AT(ADDR(.smp_locks) - LOAD_OFFSET) {
139 /* might get freed after init */
140 . = ALIGN(PAGE_SIZE);
141 __smp_alt_begin = .;
142 __smp_locks = .;
143 *(.smp_locks) 143 *(.smp_locks)
144 __smp_locks_end = .;
145 . = ALIGN(PAGE_SIZE);
146 __smp_alt_end = .;
144 } 147 }
145 __smp_locks_end = .;
146 . = ALIGN(PAGE_SIZE);
147 __smp_alt_end = .;
148 148
149 . = ALIGN(PAGE_SIZE); /* Init code and data */ 149 . = ALIGN(PAGE_SIZE); /* Init code and data */
150 __init_begin = .; 150 __init_begin = .; /* paired with __init_end */
151 .init.text : AT(ADDR(.init.text) - LOAD_OFFSET) { 151 .init.text : AT(ADDR(.init.text) - LOAD_OFFSET) {
152 _sinittext = .; 152 _sinittext = .;
153 INIT_TEXT 153 INIT_TEXT
@@ -159,40 +159,42 @@ SECTIONS
159 __initdata_end = .; 159 __initdata_end = .;
160 } 160 }
161 161
162 . = ALIGN(16); 162 .init.setup : AT(ADDR(.init.setup) - LOAD_OFFSET) {
163 __setup_start = .; 163 . = ALIGN(16);
164 .init.setup : AT(ADDR(.init.setup) - LOAD_OFFSET) { *(.init.setup) } 164 __setup_start = .;
165 __setup_end = .; 165 *(.init.setup)
166 __initcall_start = .; 166 __setup_end = .;
167 }
167 .initcall.init : AT(ADDR(.initcall.init) - LOAD_OFFSET) { 168 .initcall.init : AT(ADDR(.initcall.init) - LOAD_OFFSET) {
169 __initcall_start = .;
168 INITCALLS 170 INITCALLS
171 __initcall_end = .;
169 } 172 }
170 __initcall_end = .;
171 __con_initcall_start = .;
172 .con_initcall.init : AT(ADDR(.con_initcall.init) - LOAD_OFFSET) { 173 .con_initcall.init : AT(ADDR(.con_initcall.init) - LOAD_OFFSET) {
174 __con_initcall_start = .;
173 *(.con_initcall.init) 175 *(.con_initcall.init)
176 __con_initcall_end = .;
174 } 177 }
175 __con_initcall_end = .;
176 __x86_cpu_dev_start = .;
177 .x86_cpu_dev.init : AT(ADDR(.x86_cpu_dev.init) - LOAD_OFFSET) { 178 .x86_cpu_dev.init : AT(ADDR(.x86_cpu_dev.init) - LOAD_OFFSET) {
179 __x86_cpu_dev_start = .;
178 *(.x86_cpu_dev.init) 180 *(.x86_cpu_dev.init)
181 __x86_cpu_dev_end = .;
179 } 182 }
180 __x86_cpu_dev_end = .;
181 SECURITY_INIT 183 SECURITY_INIT
182 184
183 . = ALIGN(8); 185 . = ALIGN(8);
184 .parainstructions : AT(ADDR(.parainstructions) - LOAD_OFFSET) { 186 .parainstructions : AT(ADDR(.parainstructions) - LOAD_OFFSET) {
185 __parainstructions = .; 187 __parainstructions = .;
186 *(.parainstructions) 188 *(.parainstructions)
187 __parainstructions_end = .; 189 __parainstructions_end = .;
188 } 190 }
189 191
190 . = ALIGN(8);
191 __alt_instructions = .;
192 .altinstructions : AT(ADDR(.altinstructions) - LOAD_OFFSET) { 192 .altinstructions : AT(ADDR(.altinstructions) - LOAD_OFFSET) {
193 . = ALIGN(8);
194 __alt_instructions = .;
193 *(.altinstructions) 195 *(.altinstructions)
196 __alt_instructions_end = .;
194 } 197 }
195 __alt_instructions_end = .;
196 .altinstr_replacement : AT(ADDR(.altinstr_replacement) - LOAD_OFFSET) { 198 .altinstr_replacement : AT(ADDR(.altinstr_replacement) - LOAD_OFFSET) {
197 *(.altinstr_replacement) 199 *(.altinstr_replacement)
198 } 200 }
@@ -207,9 +209,11 @@ SECTIONS
207 209
208#ifdef CONFIG_BLK_DEV_INITRD 210#ifdef CONFIG_BLK_DEV_INITRD
209 . = ALIGN(PAGE_SIZE); 211 . = ALIGN(PAGE_SIZE);
210 __initramfs_start = .; 212 .init.ramfs : AT(ADDR(.init.ramfs) - LOAD_OFFSET) {
211 .init.ramfs : AT(ADDR(.init.ramfs) - LOAD_OFFSET) { *(.init.ramfs) } 213 __initramfs_start = .;
212 __initramfs_end = .; 214 *(.init.ramfs)
215 __initramfs_end = .;
216 }
213#endif 217#endif
214 218
215#ifdef CONFIG_SMP 219#ifdef CONFIG_SMP
@@ -229,20 +233,29 @@ SECTIONS
229 . = ALIGN(PAGE_SIZE); 233 . = ALIGN(PAGE_SIZE);
230 __init_end = .; 234 __init_end = .;
231 235
232 . = ALIGN(PAGE_SIZE);
233 __nosave_begin = .;
234 .data_nosave : AT(ADDR(.data_nosave) - LOAD_OFFSET) { 236 .data_nosave : AT(ADDR(.data_nosave) - LOAD_OFFSET) {
235 *(.data.nosave) 237 . = ALIGN(PAGE_SIZE);
238 __nosave_begin = .;
239 *(.data.nosave)
240 . = ALIGN(PAGE_SIZE);
241 __nosave_end = .;
236 } :data.init2 /* use another section data.init2, see PERCPU_VADDR() above */ 242 } :data.init2 /* use another section data.init2, see PERCPU_VADDR() above */
237 . = ALIGN(PAGE_SIZE);
238 __nosave_end = .;
239 243
240 __bss_start = .; /* BSS */
241 .bss : AT(ADDR(.bss) - LOAD_OFFSET) { 244 .bss : AT(ADDR(.bss) - LOAD_OFFSET) {
245 . = ALIGN(PAGE_SIZE);
246 __bss_start = .; /* BSS */
242 *(.bss.page_aligned) 247 *(.bss.page_aligned)
243 *(.bss) 248 *(.bss)
244 } 249 __bss_stop = .;
245 __bss_stop = .; 250 }
251
252 .brk : AT(ADDR(.brk) - LOAD_OFFSET) {
253 . = ALIGN(PAGE_SIZE);
254 __brk_base = . ;
255 . += 64 * 1024 ; /* 64k alignment slop space */
256 *(.brk_reservation) /* areas brk users have reserved */
257 __brk_limit = . ;
258 }
246 259
247 _end = . ; 260 _end = . ;
248 261
@@ -250,6 +263,7 @@ SECTIONS
250 /DISCARD/ : { 263 /DISCARD/ : {
251 *(.exitcall.exit) 264 *(.exitcall.exit)
252 *(.eh_frame) 265 *(.eh_frame)
266 *(.discard)
253 } 267 }
254 268
255 STABS_DEBUG 269 STABS_DEBUG
diff --git a/arch/x86/lguest/boot.c b/arch/x86/lguest/boot.c
index 9fe4ddaa8f6f..90e44a10e68a 100644
--- a/arch/x86/lguest/boot.c
+++ b/arch/x86/lguest/boot.c
@@ -1058,14 +1058,6 @@ __init void lguest_init(void)
1058 * lguest_init() where the rest of the fairly chaotic boot setup 1058 * lguest_init() where the rest of the fairly chaotic boot setup
1059 * occurs. */ 1059 * occurs. */
1060 1060
1061 /* The native boot code sets up initial page tables immediately after
1062 * the kernel itself, and sets init_pg_tables_end so they're not
1063 * clobbered. The Launcher places our initial pagetables somewhere at
1064 * the top of our physical memory, so we don't need extra space: set
1065 * init_pg_tables_end to the end of the kernel. */
1066 init_pg_tables_start = __pa(pg0);
1067 init_pg_tables_end = __pa(pg0);
1068
1069 /* As described in head_32.S, we map the first 128M of memory. */ 1061 /* As described in head_32.S, we map the first 128M of memory. */
1070 max_pfn_mapped = (128*1024*1024) >> PAGE_SHIFT; 1062 max_pfn_mapped = (128*1024*1024) >> PAGE_SHIFT;
1071 1063
diff --git a/arch/x86/mm/iomap_32.c b/arch/x86/mm/iomap_32.c
index 6e60ba698cee..699c9b2895ae 100644
--- a/arch/x86/mm/iomap_32.c
+++ b/arch/x86/mm/iomap_32.c
@@ -18,7 +18,6 @@
18 18
19#include <asm/iomap.h> 19#include <asm/iomap.h>
20#include <asm/pat.h> 20#include <asm/pat.h>
21#include <asm/highmem.h>
22#include <linux/module.h> 21#include <linux/module.h>
23 22
24int is_io_mapping_possible(resource_size_t base, unsigned long size) 23int is_io_mapping_possible(resource_size_t base, unsigned long size)
diff --git a/arch/x86/mm/pageattr.c b/arch/x86/mm/pageattr.c
index 9c4294986af7..1280565670e4 100644
--- a/arch/x86/mm/pageattr.c
+++ b/arch/x86/mm/pageattr.c
@@ -16,6 +16,7 @@
16#include <asm/processor.h> 16#include <asm/processor.h>
17#include <asm/tlbflush.h> 17#include <asm/tlbflush.h>
18#include <asm/sections.h> 18#include <asm/sections.h>
19#include <asm/setup.h>
19#include <asm/uaccess.h> 20#include <asm/uaccess.h>
20#include <asm/pgalloc.h> 21#include <asm/pgalloc.h>
21#include <asm/proto.h> 22#include <asm/proto.h>
@@ -95,7 +96,7 @@ static inline unsigned long highmap_start_pfn(void)
95 96
96static inline unsigned long highmap_end_pfn(void) 97static inline unsigned long highmap_end_pfn(void)
97{ 98{
98 return __pa(roundup((unsigned long)_end, PMD_SIZE)) >> PAGE_SHIFT; 99 return __pa(roundup(_brk_end, PMD_SIZE)) >> PAGE_SHIFT;
99} 100}
100 101
101#endif 102#endif
@@ -711,7 +712,7 @@ static int cpa_process_alias(struct cpa_data *cpa)
711 * No need to redo, when the primary call touched the high 712 * No need to redo, when the primary call touched the high
712 * mapping already: 713 * mapping already:
713 */ 714 */
714 if (within(vaddr, (unsigned long) _text, (unsigned long) _end)) 715 if (within(vaddr, (unsigned long) _text, _brk_end))
715 return 0; 716 return 0;
716 717
717 /* 718 /*
diff --git a/arch/x86/mm/tlb.c b/arch/x86/mm/tlb.c
index a654d59e4483..821e97017e95 100644
--- a/arch/x86/mm/tlb.c
+++ b/arch/x86/mm/tlb.c
@@ -187,11 +187,6 @@ static void flush_tlb_others_ipi(const struct cpumask *cpumask,
187 cpumask, cpumask_of(smp_processor_id())); 187 cpumask, cpumask_of(smp_processor_id()));
188 188
189 /* 189 /*
190 * Make the above memory operations globally visible before
191 * sending the IPI.
192 */
193 smp_mb();
194 /*
195 * We have to send the IPI only to 190 * We have to send the IPI only to
196 * CPUs affected. 191 * CPUs affected.
197 */ 192 */
diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
index cb6afa4ec95c..72f6a76dbfb9 100644
--- a/arch/x86/xen/mmu.c
+++ b/arch/x86/xen/mmu.c
@@ -1723,9 +1723,9 @@ __init pgd_t *xen_setup_kernel_pagetable(pgd_t *pgd,
1723{ 1723{
1724 pmd_t *kernel_pmd; 1724 pmd_t *kernel_pmd;
1725 1725
1726 init_pg_tables_start = __pa(pgd); 1726 max_pfn_mapped = PFN_DOWN(__pa(xen_start_info->pt_base) +
1727 init_pg_tables_end = __pa(pgd) + xen_start_info->nr_pt_frames*PAGE_SIZE; 1727 xen_start_info->nr_pt_frames * PAGE_SIZE +
1728 max_pfn_mapped = PFN_DOWN(init_pg_tables_end + 512*1024); 1728 512*1024);
1729 1729
1730 kernel_pmd = m2v(pgd[KERNEL_PGD_BOUNDARY].pgd); 1730 kernel_pmd = m2v(pgd[KERNEL_PGD_BOUNDARY].pgd);
1731 memcpy(level2_kernel_pgt, kernel_pmd, sizeof(pmd_t) * PTRS_PER_PMD); 1731 memcpy(level2_kernel_pgt, kernel_pmd, sizeof(pmd_t) * PTRS_PER_PMD);