diff options
Diffstat (limited to 'arch')
114 files changed, 3113 insertions, 1672 deletions
diff --git a/arch/alpha/kernel/sys_titan.c b/arch/alpha/kernel/sys_titan.c index 1d3c1398c428..52c91ccc1648 100644 --- a/arch/alpha/kernel/sys_titan.c +++ b/arch/alpha/kernel/sys_titan.c | |||
@@ -271,6 +271,19 @@ titan_dispatch_irqs(u64 mask) | |||
271 | * Titan Family | 271 | * Titan Family |
272 | */ | 272 | */ |
273 | static void __init | 273 | static void __init |
274 | titan_request_irq(unsigned int irq, irq_handler_t handler, | ||
275 | unsigned long irqflags, const char *devname, | ||
276 | void *dev_id) | ||
277 | { | ||
278 | int err; | ||
279 | err = request_irq(irq, handler, irqflags, devname, dev_id); | ||
280 | if (err) { | ||
281 | printk("titan_request_irq for IRQ %d returned %d; ignoring\n", | ||
282 | irq, err); | ||
283 | } | ||
284 | } | ||
285 | |||
286 | static void __init | ||
274 | titan_late_init(void) | 287 | titan_late_init(void) |
275 | { | 288 | { |
276 | /* | 289 | /* |
@@ -278,15 +291,15 @@ titan_late_init(void) | |||
278 | * all reported to the kernel as machine checks, so the handler | 291 | * all reported to the kernel as machine checks, so the handler |
279 | * is a nop so it can be called to count the individual events. | 292 | * is a nop so it can be called to count the individual events. |
280 | */ | 293 | */ |
281 | request_irq(63+16, titan_intr_nop, IRQF_DISABLED, | 294 | titan_request_irq(63+16, titan_intr_nop, IRQF_DISABLED, |
282 | "CChip Error", NULL); | 295 | "CChip Error", NULL); |
283 | request_irq(62+16, titan_intr_nop, IRQF_DISABLED, | 296 | titan_request_irq(62+16, titan_intr_nop, IRQF_DISABLED, |
284 | "PChip 0 H_Error", NULL); | 297 | "PChip 0 H_Error", NULL); |
285 | request_irq(61+16, titan_intr_nop, IRQF_DISABLED, | 298 | titan_request_irq(61+16, titan_intr_nop, IRQF_DISABLED, |
286 | "PChip 1 H_Error", NULL); | 299 | "PChip 1 H_Error", NULL); |
287 | request_irq(60+16, titan_intr_nop, IRQF_DISABLED, | 300 | titan_request_irq(60+16, titan_intr_nop, IRQF_DISABLED, |
288 | "PChip 0 C_Error", NULL); | 301 | "PChip 0 C_Error", NULL); |
289 | request_irq(59+16, titan_intr_nop, IRQF_DISABLED, | 302 | titan_request_irq(59+16, titan_intr_nop, IRQF_DISABLED, |
290 | "PChip 1 C_Error", NULL); | 303 | "PChip 1 C_Error", NULL); |
291 | 304 | ||
292 | /* | 305 | /* |
@@ -345,9 +358,9 @@ privateer_init_pci(void) | |||
345 | * Hook a couple of extra err interrupts that the | 358 | * Hook a couple of extra err interrupts that the |
346 | * common titan code won't. | 359 | * common titan code won't. |
347 | */ | 360 | */ |
348 | request_irq(53+16, titan_intr_nop, IRQF_DISABLED, | 361 | titan_request_irq(53+16, titan_intr_nop, IRQF_DISABLED, |
349 | "NMI", NULL); | 362 | "NMI", NULL); |
350 | request_irq(50+16, titan_intr_nop, IRQF_DISABLED, | 363 | titan_request_irq(50+16, titan_intr_nop, IRQF_DISABLED, |
351 | "Temperature Warning", NULL); | 364 | "Temperature Warning", NULL); |
352 | 365 | ||
353 | /* | 366 | /* |
diff --git a/arch/arm/configs/iop13xx_defconfig b/arch/arm/configs/iop13xx_defconfig index 43c4a37e9247..add03c9e5553 100644 --- a/arch/arm/configs/iop13xx_defconfig +++ b/arch/arm/configs/iop13xx_defconfig | |||
@@ -1,12 +1,18 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.20-rc1-git5 | 3 | # Linux kernel version: 2.6.22 |
4 | # Tue Dec 19 21:38:01 2006 | 4 | # Thu Jul 19 15:57:52 2007 |
5 | # | 5 | # |
6 | CONFIG_ARM=y | 6 | CONFIG_ARM=y |
7 | CONFIG_SYS_SUPPORTS_APM_EMULATION=y | ||
8 | # CONFIG_GENERIC_GPIO is not set | ||
7 | # CONFIG_GENERIC_TIME is not set | 9 | # CONFIG_GENERIC_TIME is not set |
10 | # CONFIG_GENERIC_CLOCKEVENTS is not set | ||
8 | CONFIG_MMU=y | 11 | CONFIG_MMU=y |
12 | # CONFIG_NO_IOPORT is not set | ||
9 | CONFIG_GENERIC_HARDIRQS=y | 13 | CONFIG_GENERIC_HARDIRQS=y |
14 | CONFIG_STACKTRACE_SUPPORT=y | ||
15 | CONFIG_LOCKDEP_SUPPORT=y | ||
10 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 16 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
11 | CONFIG_HARDIRQS_SW_RESEND=y | 17 | CONFIG_HARDIRQS_SW_RESEND=y |
12 | CONFIG_GENERIC_IRQ_PROBE=y | 18 | CONFIG_GENERIC_IRQ_PROBE=y |
@@ -15,6 +21,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y | |||
15 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | 21 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set |
16 | CONFIG_GENERIC_HWEIGHT=y | 22 | CONFIG_GENERIC_HWEIGHT=y |
17 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 23 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
24 | CONFIG_ZONE_DMA=y | ||
18 | CONFIG_VECTORS_BASE=0xffff0000 | 25 | CONFIG_VECTORS_BASE=0xffff0000 |
19 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 26 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
20 | 27 | ||
@@ -32,17 +39,19 @@ CONFIG_LOCALVERSION="" | |||
32 | # CONFIG_LOCALVERSION_AUTO is not set | 39 | # CONFIG_LOCALVERSION_AUTO is not set |
33 | CONFIG_SWAP=y | 40 | CONFIG_SWAP=y |
34 | CONFIG_SYSVIPC=y | 41 | CONFIG_SYSVIPC=y |
35 | # CONFIG_IPC_NS is not set | 42 | CONFIG_SYSVIPC_SYSCTL=y |
36 | CONFIG_POSIX_MQUEUE=y | 43 | CONFIG_POSIX_MQUEUE=y |
37 | CONFIG_BSD_PROCESS_ACCT=y | 44 | CONFIG_BSD_PROCESS_ACCT=y |
38 | # CONFIG_BSD_PROCESS_ACCT_V3 is not set | 45 | # CONFIG_BSD_PROCESS_ACCT_V3 is not set |
39 | # CONFIG_TASKSTATS is not set | 46 | # CONFIG_TASKSTATS is not set |
40 | # CONFIG_UTS_NS is not set | 47 | # CONFIG_USER_NS is not set |
41 | # CONFIG_AUDIT is not set | 48 | # CONFIG_AUDIT is not set |
42 | CONFIG_IKCONFIG=y | 49 | CONFIG_IKCONFIG=y |
43 | CONFIG_IKCONFIG_PROC=y | 50 | CONFIG_IKCONFIG_PROC=y |
51 | CONFIG_LOG_BUF_SHIFT=14 | ||
44 | CONFIG_SYSFS_DEPRECATED=y | 52 | CONFIG_SYSFS_DEPRECATED=y |
45 | # CONFIG_RELAY is not set | 53 | # CONFIG_RELAY is not set |
54 | CONFIG_BLK_DEV_INITRD=y | ||
46 | CONFIG_INITRAMFS_SOURCE="" | 55 | CONFIG_INITRAMFS_SOURCE="" |
47 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 56 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
48 | CONFIG_SYSCTL=y | 57 | CONFIG_SYSCTL=y |
@@ -57,32 +66,30 @@ CONFIG_BUG=y | |||
57 | CONFIG_ELF_CORE=y | 66 | CONFIG_ELF_CORE=y |
58 | CONFIG_BASE_FULL=y | 67 | CONFIG_BASE_FULL=y |
59 | CONFIG_FUTEX=y | 68 | CONFIG_FUTEX=y |
69 | CONFIG_ANON_INODES=y | ||
60 | CONFIG_EPOLL=y | 70 | CONFIG_EPOLL=y |
71 | CONFIG_SIGNALFD=y | ||
72 | CONFIG_TIMERFD=y | ||
73 | CONFIG_EVENTFD=y | ||
61 | CONFIG_SHMEM=y | 74 | CONFIG_SHMEM=y |
62 | CONFIG_SLAB=y | ||
63 | CONFIG_VM_EVENT_COUNTERS=y | 75 | CONFIG_VM_EVENT_COUNTERS=y |
76 | CONFIG_SLAB=y | ||
77 | # CONFIG_SLUB is not set | ||
78 | # CONFIG_SLOB is not set | ||
64 | CONFIG_RT_MUTEXES=y | 79 | CONFIG_RT_MUTEXES=y |
65 | # CONFIG_TINY_SHMEM is not set | 80 | # CONFIG_TINY_SHMEM is not set |
66 | CONFIG_BASE_SMALL=0 | 81 | CONFIG_BASE_SMALL=0 |
67 | # CONFIG_SLOB is not set | ||
68 | |||
69 | # | ||
70 | # Loadable module support | ||
71 | # | ||
72 | CONFIG_MODULES=y | 82 | CONFIG_MODULES=y |
73 | CONFIG_MODULE_UNLOAD=y | 83 | CONFIG_MODULE_UNLOAD=y |
74 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 84 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
75 | CONFIG_MODVERSIONS=y | 85 | CONFIG_MODVERSIONS=y |
76 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 86 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
77 | CONFIG_KMOD=y | 87 | CONFIG_KMOD=y |
78 | |||
79 | # | ||
80 | # Block layer | ||
81 | # | ||
82 | CONFIG_BLOCK=y | 88 | CONFIG_BLOCK=y |
83 | # CONFIG_LBD is not set | 89 | # CONFIG_LBD is not set |
84 | # CONFIG_BLK_DEV_IO_TRACE is not set | 90 | # CONFIG_BLK_DEV_IO_TRACE is not set |
85 | # CONFIG_LSF is not set | 91 | # CONFIG_LSF is not set |
92 | # CONFIG_BLK_DEV_BSG is not set | ||
86 | 93 | ||
87 | # | 94 | # |
88 | # IO Schedulers | 95 | # IO Schedulers |
@@ -114,13 +121,15 @@ CONFIG_DEFAULT_IOSCHED="deadline" | |||
114 | # CONFIG_ARCH_NETX is not set | 121 | # CONFIG_ARCH_NETX is not set |
115 | # CONFIG_ARCH_H720X is not set | 122 | # CONFIG_ARCH_H720X is not set |
116 | # CONFIG_ARCH_IMX is not set | 123 | # CONFIG_ARCH_IMX is not set |
124 | CONFIG_ARCH_IOP13XX=y | ||
117 | # CONFIG_ARCH_IOP32X is not set | 125 | # CONFIG_ARCH_IOP32X is not set |
118 | # CONFIG_ARCH_IOP33X is not set | 126 | # CONFIG_ARCH_IOP33X is not set |
119 | CONFIG_ARCH_IOP13XX=y | ||
120 | # CONFIG_ARCH_IXP4XX is not set | ||
121 | # CONFIG_ARCH_IXP2000 is not set | ||
122 | # CONFIG_ARCH_IXP23XX is not set | 127 | # CONFIG_ARCH_IXP23XX is not set |
128 | # CONFIG_ARCH_IXP2000 is not set | ||
129 | # CONFIG_ARCH_IXP4XX is not set | ||
123 | # CONFIG_ARCH_L7200 is not set | 130 | # CONFIG_ARCH_L7200 is not set |
131 | # CONFIG_ARCH_KS8695 is not set | ||
132 | # CONFIG_ARCH_NS9XXX is not set | ||
124 | # CONFIG_ARCH_PNX4008 is not set | 133 | # CONFIG_ARCH_PNX4008 is not set |
125 | # CONFIG_ARCH_PXA is not set | 134 | # CONFIG_ARCH_PXA is not set |
126 | # CONFIG_ARCH_RPC is not set | 135 | # CONFIG_ARCH_RPC is not set |
@@ -128,6 +137,7 @@ CONFIG_ARCH_IOP13XX=y | |||
128 | # CONFIG_ARCH_S3C2410 is not set | 137 | # CONFIG_ARCH_S3C2410 is not set |
129 | # CONFIG_ARCH_SHARK is not set | 138 | # CONFIG_ARCH_SHARK is not set |
130 | # CONFIG_ARCH_LH7A40X is not set | 139 | # CONFIG_ARCH_LH7A40X is not set |
140 | # CONFIG_ARCH_DAVINCI is not set | ||
131 | # CONFIG_ARCH_OMAP is not set | 141 | # CONFIG_ARCH_OMAP is not set |
132 | 142 | ||
133 | # | 143 | # |
@@ -141,6 +151,12 @@ CONFIG_MACH_IQ81340SC=y | |||
141 | CONFIG_MACH_IQ81340MC=y | 151 | CONFIG_MACH_IQ81340MC=y |
142 | 152 | ||
143 | # | 153 | # |
154 | # IOP13XX IMU Support | ||
155 | # | ||
156 | # CONFIG_IOP_IMU is not set | ||
157 | CONFIG_PLAT_IOP=y | ||
158 | |||
159 | # | ||
144 | # Processor Type | 160 | # Processor Type |
145 | # | 161 | # |
146 | CONFIG_CPU_32=y | 162 | CONFIG_CPU_32=y |
@@ -159,13 +175,16 @@ CONFIG_IO_36=y | |||
159 | CONFIG_ARM_THUMB=y | 175 | CONFIG_ARM_THUMB=y |
160 | # CONFIG_CPU_DCACHE_DISABLE is not set | 176 | # CONFIG_CPU_DCACHE_DISABLE is not set |
161 | # CONFIG_CPU_BPREDICT_DISABLE is not set | 177 | # CONFIG_CPU_BPREDICT_DISABLE is not set |
178 | # CONFIG_OUTER_CACHE is not set | ||
162 | # CONFIG_IWMMXT is not set | 179 | # CONFIG_IWMMXT is not set |
163 | 180 | ||
164 | # | 181 | # |
165 | # Bus support | 182 | # Bus support |
166 | # | 183 | # |
167 | CONFIG_PCI=y | 184 | CONFIG_PCI=y |
168 | # CONFIG_PCI_MULTITHREAD_PROBE is not set | 185 | CONFIG_PCI_SYSCALL=y |
186 | CONFIG_ARCH_SUPPORTS_MSI=y | ||
187 | # CONFIG_PCI_MSI is not set | ||
169 | 188 | ||
170 | # | 189 | # |
171 | # PCCARD (PCMCIA/CardBus) support | 190 | # PCCARD (PCMCIA/CardBus) support |
@@ -175,6 +194,7 @@ CONFIG_PCI=y | |||
175 | # | 194 | # |
176 | # Kernel Features | 195 | # Kernel Features |
177 | # | 196 | # |
197 | # CONFIG_TICK_ONESHOT is not set | ||
178 | # CONFIG_PREEMPT is not set | 198 | # CONFIG_PREEMPT is not set |
179 | # CONFIG_NO_IDLE_HZ is not set | 199 | # CONFIG_NO_IDLE_HZ is not set |
180 | CONFIG_HZ=100 | 200 | CONFIG_HZ=100 |
@@ -189,6 +209,9 @@ CONFIG_FLAT_NODE_MEM_MAP=y | |||
189 | # CONFIG_SPARSEMEM_STATIC is not set | 209 | # CONFIG_SPARSEMEM_STATIC is not set |
190 | CONFIG_SPLIT_PTLOCK_CPUS=4096 | 210 | CONFIG_SPLIT_PTLOCK_CPUS=4096 |
191 | # CONFIG_RESOURCES_64BIT is not set | 211 | # CONFIG_RESOURCES_64BIT is not set |
212 | CONFIG_ZONE_DMA_FLAG=1 | ||
213 | CONFIG_BOUNCE=y | ||
214 | CONFIG_VIRT_TO_BUS=y | ||
192 | CONFIG_ALIGNMENT_TRAP=y | 215 | CONFIG_ALIGNMENT_TRAP=y |
193 | 216 | ||
194 | # | 217 | # |
@@ -198,6 +221,7 @@ CONFIG_ZBOOT_ROM_TEXT=0x0 | |||
198 | CONFIG_ZBOOT_ROM_BSS=0x0 | 221 | CONFIG_ZBOOT_ROM_BSS=0x0 |
199 | CONFIG_CMDLINE="ip=bootp root=nfs console=ttyS0,115200 nfsroot=,tcp,v3,wsize=8192,rsize=8192" | 222 | CONFIG_CMDLINE="ip=bootp root=nfs console=ttyS0,115200 nfsroot=,tcp,v3,wsize=8192,rsize=8192" |
200 | # CONFIG_XIP_KERNEL is not set | 223 | # CONFIG_XIP_KERNEL is not set |
224 | # CONFIG_KEXEC is not set | ||
201 | 225 | ||
202 | # | 226 | # |
203 | # Floating point emulation | 227 | # Floating point emulation |
@@ -222,7 +246,6 @@ CONFIG_BINFMT_AOUT=y | |||
222 | # Power management options | 246 | # Power management options |
223 | # | 247 | # |
224 | # CONFIG_PM is not set | 248 | # CONFIG_PM is not set |
225 | # CONFIG_APM is not set | ||
226 | 249 | ||
227 | # | 250 | # |
228 | # Networking | 251 | # Networking |
@@ -232,14 +255,15 @@ CONFIG_NET=y | |||
232 | # | 255 | # |
233 | # Networking options | 256 | # Networking options |
234 | # | 257 | # |
235 | # CONFIG_NETDEBUG is not set | ||
236 | CONFIG_PACKET=y | 258 | CONFIG_PACKET=y |
237 | CONFIG_PACKET_MMAP=y | 259 | CONFIG_PACKET_MMAP=y |
238 | CONFIG_UNIX=y | 260 | CONFIG_UNIX=y |
239 | CONFIG_XFRM=y | 261 | CONFIG_XFRM=y |
240 | # CONFIG_XFRM_USER is not set | 262 | # CONFIG_XFRM_USER is not set |
241 | # CONFIG_XFRM_SUB_POLICY is not set | 263 | # CONFIG_XFRM_SUB_POLICY is not set |
264 | # CONFIG_XFRM_MIGRATE is not set | ||
242 | CONFIG_NET_KEY=y | 265 | CONFIG_NET_KEY=y |
266 | # CONFIG_NET_KEY_MIGRATE is not set | ||
243 | CONFIG_INET=y | 267 | CONFIG_INET=y |
244 | CONFIG_IP_MULTICAST=y | 268 | CONFIG_IP_MULTICAST=y |
245 | # CONFIG_IP_ADVANCED_ROUTER is not set | 269 | # CONFIG_IP_ADVANCED_ROUTER is not set |
@@ -270,6 +294,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
270 | CONFIG_IPV6=y | 294 | CONFIG_IPV6=y |
271 | # CONFIG_IPV6_PRIVACY is not set | 295 | # CONFIG_IPV6_PRIVACY is not set |
272 | # CONFIG_IPV6_ROUTER_PREF is not set | 296 | # CONFIG_IPV6_ROUTER_PREF is not set |
297 | # CONFIG_IPV6_OPTIMISTIC_DAD is not set | ||
273 | # CONFIG_INET6_AH is not set | 298 | # CONFIG_INET6_AH is not set |
274 | # CONFIG_INET6_ESP is not set | 299 | # CONFIG_INET6_ESP is not set |
275 | # CONFIG_INET6_IPCOMP is not set | 300 | # CONFIG_INET6_IPCOMP is not set |
@@ -285,20 +310,8 @@ CONFIG_IPV6=y | |||
285 | # CONFIG_IPV6_MULTIPLE_TABLES is not set | 310 | # CONFIG_IPV6_MULTIPLE_TABLES is not set |
286 | # CONFIG_NETWORK_SECMARK is not set | 311 | # CONFIG_NETWORK_SECMARK is not set |
287 | # CONFIG_NETFILTER is not set | 312 | # CONFIG_NETFILTER is not set |
288 | |||
289 | # | ||
290 | # DCCP Configuration (EXPERIMENTAL) | ||
291 | # | ||
292 | # CONFIG_IP_DCCP is not set | 313 | # CONFIG_IP_DCCP is not set |
293 | |||
294 | # | ||
295 | # SCTP Configuration (EXPERIMENTAL) | ||
296 | # | ||
297 | # CONFIG_IP_SCTP is not set | 314 | # CONFIG_IP_SCTP is not set |
298 | |||
299 | # | ||
300 | # TIPC Configuration (EXPERIMENTAL) | ||
301 | # | ||
302 | # CONFIG_TIPC is not set | 315 | # CONFIG_TIPC is not set |
303 | # CONFIG_ATM is not set | 316 | # CONFIG_ATM is not set |
304 | # CONFIG_BRIDGE is not set | 317 | # CONFIG_BRIDGE is not set |
@@ -324,7 +337,17 @@ CONFIG_IPV6=y | |||
324 | # CONFIG_HAMRADIO is not set | 337 | # CONFIG_HAMRADIO is not set |
325 | # CONFIG_IRDA is not set | 338 | # CONFIG_IRDA is not set |
326 | # CONFIG_BT is not set | 339 | # CONFIG_BT is not set |
340 | # CONFIG_AF_RXRPC is not set | ||
341 | |||
342 | # | ||
343 | # Wireless | ||
344 | # | ||
345 | # CONFIG_CFG80211 is not set | ||
346 | # CONFIG_WIRELESS_EXT is not set | ||
347 | # CONFIG_MAC80211 is not set | ||
327 | # CONFIG_IEEE80211 is not set | 348 | # CONFIG_IEEE80211 is not set |
349 | # CONFIG_RFKILL is not set | ||
350 | # CONFIG_NET_9P is not set | ||
328 | 351 | ||
329 | # | 352 | # |
330 | # Device Drivers | 353 | # Device Drivers |
@@ -337,15 +360,7 @@ CONFIG_STANDALONE=y | |||
337 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 360 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
338 | # CONFIG_FW_LOADER is not set | 361 | # CONFIG_FW_LOADER is not set |
339 | # CONFIG_SYS_HYPERVISOR is not set | 362 | # CONFIG_SYS_HYPERVISOR is not set |
340 | |||
341 | # | ||
342 | # Connector - unified userspace <-> kernelspace linker | ||
343 | # | ||
344 | # CONFIG_CONNECTOR is not set | 363 | # CONFIG_CONNECTOR is not set |
345 | |||
346 | # | ||
347 | # Memory Technology Devices (MTD) | ||
348 | # | ||
349 | CONFIG_MTD=y | 364 | CONFIG_MTD=y |
350 | # CONFIG_MTD_DEBUG is not set | 365 | # CONFIG_MTD_DEBUG is not set |
351 | # CONFIG_MTD_CONCAT is not set | 366 | # CONFIG_MTD_CONCAT is not set |
@@ -361,6 +376,7 @@ CONFIG_MTD_REDBOOT_PARTS_READONLY=y | |||
361 | # User Modules And Translation Layers | 376 | # User Modules And Translation Layers |
362 | # | 377 | # |
363 | # CONFIG_MTD_CHAR is not set | 378 | # CONFIG_MTD_CHAR is not set |
379 | CONFIG_MTD_BLKDEVS=y | ||
364 | CONFIG_MTD_BLOCK=y | 380 | CONFIG_MTD_BLOCK=y |
365 | # CONFIG_FTL is not set | 381 | # CONFIG_FTL is not set |
366 | # CONFIG_NFTL is not set | 382 | # CONFIG_NFTL is not set |
@@ -397,7 +413,6 @@ CONFIG_MTD_CFI_UTIL=y | |||
397 | # CONFIG_MTD_RAM is not set | 413 | # CONFIG_MTD_RAM is not set |
398 | # CONFIG_MTD_ROM is not set | 414 | # CONFIG_MTD_ROM is not set |
399 | # CONFIG_MTD_ABSENT is not set | 415 | # CONFIG_MTD_ABSENT is not set |
400 | # CONFIG_MTD_OBSOLETE_CHIPS is not set | ||
401 | 416 | ||
402 | # | 417 | # |
403 | # Mapping drivers for chip access | 418 | # Mapping drivers for chip access |
@@ -425,42 +440,27 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=2 | |||
425 | # CONFIG_MTD_DOC2000 is not set | 440 | # CONFIG_MTD_DOC2000 is not set |
426 | # CONFIG_MTD_DOC2001 is not set | 441 | # CONFIG_MTD_DOC2001 is not set |
427 | # CONFIG_MTD_DOC2001PLUS is not set | 442 | # CONFIG_MTD_DOC2001PLUS is not set |
428 | |||
429 | # | ||
430 | # NAND Flash Device Drivers | ||
431 | # | ||
432 | # CONFIG_MTD_NAND is not set | 443 | # CONFIG_MTD_NAND is not set |
433 | |||
434 | # | ||
435 | # OneNAND Flash Device Drivers | ||
436 | # | ||
437 | # CONFIG_MTD_ONENAND is not set | 444 | # CONFIG_MTD_ONENAND is not set |
438 | 445 | ||
439 | # | 446 | # |
440 | # Parallel port support | 447 | # UBI - Unsorted block images |
441 | # | 448 | # |
449 | # CONFIG_MTD_UBI is not set | ||
442 | # CONFIG_PARPORT is not set | 450 | # CONFIG_PARPORT is not set |
443 | 451 | CONFIG_BLK_DEV=y | |
444 | # | ||
445 | # Plug and Play support | ||
446 | # | ||
447 | |||
448 | # | ||
449 | # Block devices | ||
450 | # | ||
451 | # CONFIG_BLK_CPQ_DA is not set | 452 | # CONFIG_BLK_CPQ_DA is not set |
452 | # CONFIG_BLK_CPQ_CISS_DA is not set | 453 | # CONFIG_BLK_CPQ_CISS_DA is not set |
453 | # CONFIG_BLK_DEV_DAC960 is not set | 454 | # CONFIG_BLK_DEV_DAC960 is not set |
454 | # CONFIG_BLK_DEV_UMEM is not set | 455 | # CONFIG_BLK_DEV_UMEM is not set |
455 | # CONFIG_BLK_DEV_COW_COMMON is not set | 456 | # CONFIG_BLK_DEV_COW_COMMON is not set |
456 | # CONFIG_BLK_DEV_LOOP is not set | 457 | # CONFIG_BLK_DEV_LOOP is not set |
457 | CONFIG_BLK_DEV_NBD=y | 458 | # CONFIG_BLK_DEV_NBD is not set |
458 | # CONFIG_BLK_DEV_SX8 is not set | 459 | # CONFIG_BLK_DEV_SX8 is not set |
459 | CONFIG_BLK_DEV_RAM=y | 460 | CONFIG_BLK_DEV_RAM=y |
460 | CONFIG_BLK_DEV_RAM_COUNT=2 | 461 | CONFIG_BLK_DEV_RAM_COUNT=2 |
461 | CONFIG_BLK_DEV_RAM_SIZE=8192 | 462 | CONFIG_BLK_DEV_RAM_SIZE=8192 |
462 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | 463 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 |
463 | CONFIG_BLK_DEV_INITRD=y | ||
464 | # CONFIG_CDROM_PKTCDVD is not set | 464 | # CONFIG_CDROM_PKTCDVD is not set |
465 | # CONFIG_ATA_OVER_ETH is not set | 465 | # CONFIG_ATA_OVER_ETH is not set |
466 | 466 | ||
@@ -469,6 +469,7 @@ CONFIG_BLK_DEV_INITRD=y | |||
469 | # | 469 | # |
470 | # CONFIG_RAID_ATTRS is not set | 470 | # CONFIG_RAID_ATTRS is not set |
471 | CONFIG_SCSI=y | 471 | CONFIG_SCSI=y |
472 | CONFIG_SCSI_DMA=y | ||
472 | # CONFIG_SCSI_TGT is not set | 473 | # CONFIG_SCSI_TGT is not set |
473 | # CONFIG_SCSI_NETLINK is not set | 474 | # CONFIG_SCSI_NETLINK is not set |
474 | CONFIG_SCSI_PROC_FS=y | 475 | CONFIG_SCSI_PROC_FS=y |
@@ -490,6 +491,7 @@ CONFIG_CHR_DEV_SG=y | |||
490 | CONFIG_SCSI_CONSTANTS=y | 491 | CONFIG_SCSI_CONSTANTS=y |
491 | # CONFIG_SCSI_LOGGING is not set | 492 | # CONFIG_SCSI_LOGGING is not set |
492 | # CONFIG_SCSI_SCAN_ASYNC is not set | 493 | # CONFIG_SCSI_SCAN_ASYNC is not set |
494 | CONFIG_SCSI_WAIT_SCAN=m | ||
493 | 495 | ||
494 | # | 496 | # |
495 | # SCSI Transports | 497 | # SCSI Transports |
@@ -534,15 +536,7 @@ CONFIG_SCSI_SAS_ATTRS=y | |||
534 | # CONFIG_SCSI_NSP32 is not set | 536 | # CONFIG_SCSI_NSP32 is not set |
535 | # CONFIG_SCSI_DEBUG is not set | 537 | # CONFIG_SCSI_DEBUG is not set |
536 | # CONFIG_SCSI_SRP is not set | 538 | # CONFIG_SCSI_SRP is not set |
537 | |||
538 | # | ||
539 | # Serial ATA (prod) and Parallel ATA (experimental) drivers | ||
540 | # | ||
541 | # CONFIG_ATA is not set | 539 | # CONFIG_ATA is not set |
542 | |||
543 | # | ||
544 | # Multi-device support (RAID and LVM) | ||
545 | # | ||
546 | CONFIG_MD=y | 540 | CONFIG_MD=y |
547 | CONFIG_BLK_DEV_MD=y | 541 | CONFIG_BLK_DEV_MD=y |
548 | # CONFIG_MD_LINEAR is not set | 542 | # CONFIG_MD_LINEAR is not set |
@@ -560,6 +554,7 @@ CONFIG_BLK_DEV_DM=y | |||
560 | # CONFIG_DM_MIRROR is not set | 554 | # CONFIG_DM_MIRROR is not set |
561 | # CONFIG_DM_ZERO is not set | 555 | # CONFIG_DM_ZERO is not set |
562 | # CONFIG_DM_MULTIPATH is not set | 556 | # CONFIG_DM_MULTIPATH is not set |
557 | # CONFIG_DM_DELAY is not set | ||
563 | 558 | ||
564 | # | 559 | # |
565 | # Fusion MPT device support | 560 | # Fusion MPT device support |
@@ -572,39 +567,19 @@ CONFIG_BLK_DEV_DM=y | |||
572 | # | 567 | # |
573 | # IEEE 1394 (FireWire) support | 568 | # IEEE 1394 (FireWire) support |
574 | # | 569 | # |
570 | # CONFIG_FIREWIRE is not set | ||
575 | # CONFIG_IEEE1394 is not set | 571 | # CONFIG_IEEE1394 is not set |
576 | |||
577 | # | ||
578 | # I2O device support | ||
579 | # | ||
580 | # CONFIG_I2O is not set | 572 | # CONFIG_I2O is not set |
581 | |||
582 | # | ||
583 | # Network device support | ||
584 | # | ||
585 | CONFIG_NETDEVICES=y | 573 | CONFIG_NETDEVICES=y |
574 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
586 | # CONFIG_DUMMY is not set | 575 | # CONFIG_DUMMY is not set |
587 | # CONFIG_BONDING is not set | 576 | # CONFIG_BONDING is not set |
577 | # CONFIG_MACVLAN is not set | ||
588 | # CONFIG_EQUALIZER is not set | 578 | # CONFIG_EQUALIZER is not set |
589 | # CONFIG_TUN is not set | 579 | # CONFIG_TUN is not set |
590 | |||
591 | # | ||
592 | # ARCnet devices | ||
593 | # | ||
594 | # CONFIG_ARCNET is not set | 580 | # CONFIG_ARCNET is not set |
595 | |||
596 | # | ||
597 | # PHY device support | ||
598 | # | ||
599 | |||
600 | # | ||
601 | # Ethernet (10 or 100Mbit) | ||
602 | # | ||
603 | # CONFIG_NET_ETHERNET is not set | 581 | # CONFIG_NET_ETHERNET is not set |
604 | 582 | CONFIG_NETDEV_1000=y | |
605 | # | ||
606 | # Ethernet (1000 Mbit) | ||
607 | # | ||
608 | # CONFIG_ACENIC is not set | 583 | # CONFIG_ACENIC is not set |
609 | # CONFIG_DL2K is not set | 584 | # CONFIG_DL2K is not set |
610 | CONFIG_E1000=y | 585 | CONFIG_E1000=y |
@@ -617,33 +592,26 @@ CONFIG_E1000_NAPI=y | |||
617 | # CONFIG_SIS190 is not set | 592 | # CONFIG_SIS190 is not set |
618 | # CONFIG_SKGE is not set | 593 | # CONFIG_SKGE is not set |
619 | # CONFIG_SKY2 is not set | 594 | # CONFIG_SKY2 is not set |
620 | # CONFIG_SK98LIN is not set | 595 | # CONFIG_VIA_VELOCITY is not set |
621 | # CONFIG_TIGON3 is not set | 596 | # CONFIG_TIGON3 is not set |
622 | # CONFIG_BNX2 is not set | 597 | # CONFIG_BNX2 is not set |
623 | # CONFIG_QLA3XXX is not set | 598 | # CONFIG_QLA3XXX is not set |
624 | 599 | # CONFIG_ATL1 is not set | |
625 | # | 600 | CONFIG_NETDEV_10000=y |
626 | # Ethernet (10000 Mbit) | ||
627 | # | ||
628 | # CONFIG_CHELSIO_T1 is not set | 601 | # CONFIG_CHELSIO_T1 is not set |
602 | # CONFIG_CHELSIO_T3 is not set | ||
629 | # CONFIG_IXGB is not set | 603 | # CONFIG_IXGB is not set |
630 | # CONFIG_S2IO is not set | 604 | # CONFIG_S2IO is not set |
631 | # CONFIG_MYRI10GE is not set | 605 | # CONFIG_MYRI10GE is not set |
632 | # CONFIG_NETXEN_NIC is not set | 606 | # CONFIG_NETXEN_NIC is not set |
633 | 607 | # CONFIG_MLX4_CORE is not set | |
634 | # | ||
635 | # Token Ring devices | ||
636 | # | ||
637 | # CONFIG_TR is not set | 608 | # CONFIG_TR is not set |
638 | 609 | ||
639 | # | 610 | # |
640 | # Wireless LAN (non-hamradio) | 611 | # Wireless LAN |
641 | # | ||
642 | # CONFIG_NET_RADIO is not set | ||
643 | |||
644 | # | ||
645 | # Wan interfaces | ||
646 | # | 612 | # |
613 | # CONFIG_WLAN_PRE80211 is not set | ||
614 | # CONFIG_WLAN_80211 is not set | ||
647 | # CONFIG_WAN is not set | 615 | # CONFIG_WAN is not set |
648 | # CONFIG_FDDI is not set | 616 | # CONFIG_FDDI is not set |
649 | # CONFIG_HIPPI is not set | 617 | # CONFIG_HIPPI is not set |
@@ -654,10 +622,6 @@ CONFIG_E1000_NAPI=y | |||
654 | # CONFIG_NETCONSOLE is not set | 622 | # CONFIG_NETCONSOLE is not set |
655 | # CONFIG_NETPOLL is not set | 623 | # CONFIG_NETPOLL is not set |
656 | # CONFIG_NET_POLL_CONTROLLER is not set | 624 | # CONFIG_NET_POLL_CONTROLLER is not set |
657 | |||
658 | # | ||
659 | # ISDN subsystem | ||
660 | # | ||
661 | # CONFIG_ISDN is not set | 625 | # CONFIG_ISDN is not set |
662 | 626 | ||
663 | # | 627 | # |
@@ -665,6 +629,7 @@ CONFIG_E1000_NAPI=y | |||
665 | # | 629 | # |
666 | CONFIG_INPUT=y | 630 | CONFIG_INPUT=y |
667 | # CONFIG_INPUT_FF_MEMLESS is not set | 631 | # CONFIG_INPUT_FF_MEMLESS is not set |
632 | # CONFIG_INPUT_POLLDEV is not set | ||
668 | 633 | ||
669 | # | 634 | # |
670 | # Userland interfaces | 635 | # Userland interfaces |
@@ -684,6 +649,7 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | |||
684 | # CONFIG_INPUT_KEYBOARD is not set | 649 | # CONFIG_INPUT_KEYBOARD is not set |
685 | # CONFIG_INPUT_MOUSE is not set | 650 | # CONFIG_INPUT_MOUSE is not set |
686 | # CONFIG_INPUT_JOYSTICK is not set | 651 | # CONFIG_INPUT_JOYSTICK is not set |
652 | # CONFIG_INPUT_TABLET is not set | ||
687 | # CONFIG_INPUT_TOUCHSCREEN is not set | 653 | # CONFIG_INPUT_TOUCHSCREEN is not set |
688 | # CONFIG_INPUT_MISC is not set | 654 | # CONFIG_INPUT_MISC is not set |
689 | 655 | ||
@@ -721,33 +687,18 @@ CONFIG_SERIAL_CORE_CONSOLE=y | |||
721 | CONFIG_UNIX98_PTYS=y | 687 | CONFIG_UNIX98_PTYS=y |
722 | CONFIG_LEGACY_PTYS=y | 688 | CONFIG_LEGACY_PTYS=y |
723 | CONFIG_LEGACY_PTY_COUNT=256 | 689 | CONFIG_LEGACY_PTY_COUNT=256 |
724 | |||
725 | # | ||
726 | # IPMI | ||
727 | # | ||
728 | # CONFIG_IPMI_HANDLER is not set | 690 | # CONFIG_IPMI_HANDLER is not set |
729 | |||
730 | # | ||
731 | # Watchdog Cards | ||
732 | # | ||
733 | # CONFIG_WATCHDOG is not set | 691 | # CONFIG_WATCHDOG is not set |
734 | CONFIG_HW_RANDOM=y | 692 | CONFIG_HW_RANDOM=y |
735 | # CONFIG_NVRAM is not set | 693 | # CONFIG_NVRAM is not set |
736 | # CONFIG_DTLK is not set | ||
737 | # CONFIG_R3964 is not set | 694 | # CONFIG_R3964 is not set |
738 | # CONFIG_APPLICOM is not set | 695 | # CONFIG_APPLICOM is not set |
739 | # CONFIG_DRM is not set | 696 | # CONFIG_DRM is not set |
740 | # CONFIG_RAW_DRIVER is not set | 697 | # CONFIG_RAW_DRIVER is not set |
741 | |||
742 | # | ||
743 | # TPM devices | ||
744 | # | ||
745 | # CONFIG_TCG_TPM is not set | 698 | # CONFIG_TCG_TPM is not set |
746 | 699 | CONFIG_DEVPORT=y | |
747 | # | ||
748 | # I2C support | ||
749 | # | ||
750 | CONFIG_I2C=y | 700 | CONFIG_I2C=y |
701 | CONFIG_I2C_BOARDINFO=y | ||
751 | # CONFIG_I2C_CHARDEV is not set | 702 | # CONFIG_I2C_CHARDEV is not set |
752 | 703 | ||
753 | # | 704 | # |
@@ -774,25 +725,28 @@ CONFIG_I2C_IOP3XX=y | |||
774 | # CONFIG_I2C_PARPORT_LIGHT is not set | 725 | # CONFIG_I2C_PARPORT_LIGHT is not set |
775 | # CONFIG_I2C_PROSAVAGE is not set | 726 | # CONFIG_I2C_PROSAVAGE is not set |
776 | # CONFIG_I2C_SAVAGE4 is not set | 727 | # CONFIG_I2C_SAVAGE4 is not set |
728 | # CONFIG_I2C_SIMTEC is not set | ||
777 | # CONFIG_I2C_SIS5595 is not set | 729 | # CONFIG_I2C_SIS5595 is not set |
778 | # CONFIG_I2C_SIS630 is not set | 730 | # CONFIG_I2C_SIS630 is not set |
779 | # CONFIG_I2C_SIS96X is not set | 731 | # CONFIG_I2C_SIS96X is not set |
732 | # CONFIG_I2C_TAOS_EVM is not set | ||
780 | # CONFIG_I2C_STUB is not set | 733 | # CONFIG_I2C_STUB is not set |
781 | # CONFIG_I2C_VIA is not set | 734 | # CONFIG_I2C_VIA is not set |
782 | # CONFIG_I2C_VIAPRO is not set | 735 | # CONFIG_I2C_VIAPRO is not set |
783 | # CONFIG_I2C_VOODOO3 is not set | 736 | # CONFIG_I2C_VOODOO3 is not set |
784 | # CONFIG_I2C_PCA_ISA is not set | ||
785 | 737 | ||
786 | # | 738 | # |
787 | # Miscellaneous I2C Chip support | 739 | # Miscellaneous I2C Chip support |
788 | # | 740 | # |
789 | # CONFIG_SENSORS_DS1337 is not set | 741 | # CONFIG_SENSORS_DS1337 is not set |
790 | # CONFIG_SENSORS_DS1374 is not set | 742 | # CONFIG_SENSORS_DS1374 is not set |
743 | # CONFIG_DS1682 is not set | ||
791 | # CONFIG_SENSORS_EEPROM is not set | 744 | # CONFIG_SENSORS_EEPROM is not set |
792 | # CONFIG_SENSORS_PCF8574 is not set | 745 | # CONFIG_SENSORS_PCF8574 is not set |
793 | # CONFIG_SENSORS_PCA9539 is not set | 746 | # CONFIG_SENSORS_PCA9539 is not set |
794 | # CONFIG_SENSORS_PCF8591 is not set | 747 | # CONFIG_SENSORS_PCF8591 is not set |
795 | # CONFIG_SENSORS_MAX6875 is not set | 748 | # CONFIG_SENSORS_MAX6875 is not set |
749 | # CONFIG_SENSORS_TSL2550 is not set | ||
796 | # CONFIG_I2C_DEBUG_CORE is not set | 750 | # CONFIG_I2C_DEBUG_CORE is not set |
797 | # CONFIG_I2C_DEBUG_ALGO is not set | 751 | # CONFIG_I2C_DEBUG_ALGO is not set |
798 | # CONFIG_I2C_DEBUG_BUS is not set | 752 | # CONFIG_I2C_DEBUG_BUS is not set |
@@ -803,21 +757,15 @@ CONFIG_I2C_IOP3XX=y | |||
803 | # | 757 | # |
804 | # CONFIG_SPI is not set | 758 | # CONFIG_SPI is not set |
805 | # CONFIG_SPI_MASTER is not set | 759 | # CONFIG_SPI_MASTER is not set |
806 | |||
807 | # | ||
808 | # Dallas's 1-wire bus | ||
809 | # | ||
810 | # CONFIG_W1 is not set | 760 | # CONFIG_W1 is not set |
811 | |||
812 | # | ||
813 | # Hardware Monitoring support | ||
814 | # | ||
815 | CONFIG_HWMON=y | 761 | CONFIG_HWMON=y |
816 | # CONFIG_HWMON_VID is not set | 762 | # CONFIG_HWMON_VID is not set |
817 | # CONFIG_SENSORS_ABITUGURU is not set | 763 | # CONFIG_SENSORS_ABITUGURU is not set |
764 | # CONFIG_SENSORS_AD7418 is not set | ||
818 | # CONFIG_SENSORS_ADM1021 is not set | 765 | # CONFIG_SENSORS_ADM1021 is not set |
819 | # CONFIG_SENSORS_ADM1025 is not set | 766 | # CONFIG_SENSORS_ADM1025 is not set |
820 | # CONFIG_SENSORS_ADM1026 is not set | 767 | # CONFIG_SENSORS_ADM1026 is not set |
768 | # CONFIG_SENSORS_ADM1029 is not set | ||
821 | # CONFIG_SENSORS_ADM1031 is not set | 769 | # CONFIG_SENSORS_ADM1031 is not set |
822 | # CONFIG_SENSORS_ADM9240 is not set | 770 | # CONFIG_SENSORS_ADM9240 is not set |
823 | # CONFIG_SENSORS_ASB100 is not set | 771 | # CONFIG_SENSORS_ASB100 is not set |
@@ -840,6 +788,7 @@ CONFIG_HWMON=y | |||
840 | # CONFIG_SENSORS_LM90 is not set | 788 | # CONFIG_SENSORS_LM90 is not set |
841 | # CONFIG_SENSORS_LM92 is not set | 789 | # CONFIG_SENSORS_LM92 is not set |
842 | # CONFIG_SENSORS_MAX1619 is not set | 790 | # CONFIG_SENSORS_MAX1619 is not set |
791 | # CONFIG_SENSORS_MAX6650 is not set | ||
843 | # CONFIG_SENSORS_PC87360 is not set | 792 | # CONFIG_SENSORS_PC87360 is not set |
844 | # CONFIG_SENSORS_PC87427 is not set | 793 | # CONFIG_SENSORS_PC87427 is not set |
845 | # CONFIG_SENSORS_SIS5595 is not set | 794 | # CONFIG_SENSORS_SIS5595 is not set |
@@ -857,12 +806,16 @@ CONFIG_HWMON=y | |||
857 | # CONFIG_SENSORS_W83627HF is not set | 806 | # CONFIG_SENSORS_W83627HF is not set |
858 | # CONFIG_SENSORS_W83627EHF is not set | 807 | # CONFIG_SENSORS_W83627EHF is not set |
859 | # CONFIG_HWMON_DEBUG_CHIP is not set | 808 | # CONFIG_HWMON_DEBUG_CHIP is not set |
809 | CONFIG_MISC_DEVICES=y | ||
810 | # CONFIG_PHANTOM is not set | ||
811 | # CONFIG_EEPROM_93CX6 is not set | ||
812 | # CONFIG_SGI_IOC4 is not set | ||
813 | # CONFIG_TIFM_CORE is not set | ||
860 | 814 | ||
861 | # | 815 | # |
862 | # Misc devices | 816 | # Multifunction device drivers |
863 | # | 817 | # |
864 | # CONFIG_SGI_IOC4 is not set | 818 | # CONFIG_MFD_SM501 is not set |
865 | # CONFIG_TIFM_CORE is not set | ||
866 | 819 | ||
867 | # | 820 | # |
868 | # LED devices | 821 | # LED devices |
@@ -881,16 +834,19 @@ CONFIG_HWMON=y | |||
881 | # Multimedia devices | 834 | # Multimedia devices |
882 | # | 835 | # |
883 | # CONFIG_VIDEO_DEV is not set | 836 | # CONFIG_VIDEO_DEV is not set |
837 | # CONFIG_DVB_CORE is not set | ||
838 | CONFIG_DAB=y | ||
884 | 839 | ||
885 | # | 840 | # |
886 | # Digital Video Broadcasting Devices | 841 | # Graphics support |
887 | # | 842 | # |
888 | # CONFIG_DVB is not set | 843 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set |
889 | 844 | ||
890 | # | 845 | # |
891 | # Graphics support | 846 | # Display device support |
892 | # | 847 | # |
893 | CONFIG_FIRMWARE_EDID=y | 848 | # CONFIG_DISPLAY_SUPPORT is not set |
849 | # CONFIG_VGASTATE is not set | ||
894 | # CONFIG_FB is not set | 850 | # CONFIG_FB is not set |
895 | 851 | ||
896 | # | 852 | # |
@@ -898,21 +854,15 @@ CONFIG_FIRMWARE_EDID=y | |||
898 | # | 854 | # |
899 | # CONFIG_VGA_CONSOLE is not set | 855 | # CONFIG_VGA_CONSOLE is not set |
900 | CONFIG_DUMMY_CONSOLE=y | 856 | CONFIG_DUMMY_CONSOLE=y |
901 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
902 | 857 | ||
903 | # | 858 | # |
904 | # Sound | 859 | # Sound |
905 | # | 860 | # |
906 | # CONFIG_SOUND is not set | 861 | # CONFIG_SOUND is not set |
907 | 862 | CONFIG_HID_SUPPORT=y | |
908 | # | ||
909 | # HID Devices | ||
910 | # | ||
911 | CONFIG_HID=y | 863 | CONFIG_HID=y |
912 | 864 | # CONFIG_HID_DEBUG is not set | |
913 | # | 865 | CONFIG_USB_SUPPORT=y |
914 | # USB support | ||
915 | # | ||
916 | CONFIG_USB_ARCH_HAS_HCD=y | 866 | CONFIG_USB_ARCH_HAS_HCD=y |
917 | CONFIG_USB_ARCH_HAS_OHCI=y | 867 | CONFIG_USB_ARCH_HAS_OHCI=y |
918 | CONFIG_USB_ARCH_HAS_EHCI=y | 868 | CONFIG_USB_ARCH_HAS_EHCI=y |
@@ -926,10 +876,6 @@ CONFIG_USB_ARCH_HAS_EHCI=y | |||
926 | # USB Gadget Support | 876 | # USB Gadget Support |
927 | # | 877 | # |
928 | # CONFIG_USB_GADGET is not set | 878 | # CONFIG_USB_GADGET is not set |
929 | |||
930 | # | ||
931 | # MMC/SD Card support | ||
932 | # | ||
933 | # CONFIG_MMC is not set | 879 | # CONFIG_MMC is not set |
934 | 880 | ||
935 | # | 881 | # |
@@ -939,6 +885,22 @@ CONFIG_RTC_LIB=y | |||
939 | # CONFIG_RTC_CLASS is not set | 885 | # CONFIG_RTC_CLASS is not set |
940 | 886 | ||
941 | # | 887 | # |
888 | # DMA Engine support | ||
889 | # | ||
890 | CONFIG_DMA_ENGINE=y | ||
891 | |||
892 | # | ||
893 | # DMA Clients | ||
894 | # | ||
895 | # CONFIG_NET_DMA is not set | ||
896 | |||
897 | # | ||
898 | # DMA Devices | ||
899 | # | ||
900 | # CONFIG_INTEL_IOATDMA is not set | ||
901 | CONFIG_INTEL_IOP_ADMA=y | ||
902 | |||
903 | # | ||
942 | # File systems | 904 | # File systems |
943 | # | 905 | # |
944 | CONFIG_EXT2_FS=y | 906 | CONFIG_EXT2_FS=y |
@@ -1004,7 +966,6 @@ CONFIG_ECRYPT_FS=y | |||
1004 | # CONFIG_BEFS_FS is not set | 966 | # CONFIG_BEFS_FS is not set |
1005 | # CONFIG_BFS_FS is not set | 967 | # CONFIG_BFS_FS is not set |
1006 | # CONFIG_EFS_FS is not set | 968 | # CONFIG_EFS_FS is not set |
1007 | # CONFIG_JFFS_FS is not set | ||
1008 | CONFIG_JFFS2_FS=y | 969 | CONFIG_JFFS2_FS=y |
1009 | CONFIG_JFFS2_FS_DEBUG=0 | 970 | CONFIG_JFFS2_FS_DEBUG=0 |
1010 | CONFIG_JFFS2_FS_WRITEBUFFER=y | 971 | CONFIG_JFFS2_FS_WRITEBUFFER=y |
@@ -1014,7 +975,7 @@ CONFIG_JFFS2_FS_WRITEBUFFER=y | |||
1014 | CONFIG_JFFS2_ZLIB=y | 975 | CONFIG_JFFS2_ZLIB=y |
1015 | CONFIG_JFFS2_RTIME=y | 976 | CONFIG_JFFS2_RTIME=y |
1016 | # CONFIG_JFFS2_RUBIN is not set | 977 | # CONFIG_JFFS2_RUBIN is not set |
1017 | # CONFIG_CRAMFS is not set | 978 | CONFIG_CRAMFS=y |
1018 | # CONFIG_VXFS_FS is not set | 979 | # CONFIG_VXFS_FS is not set |
1019 | # CONFIG_HPFS_FS is not set | 980 | # CONFIG_HPFS_FS is not set |
1020 | # CONFIG_QNX4FS_FS is not set | 981 | # CONFIG_QNX4FS_FS is not set |
@@ -1040,6 +1001,7 @@ CONFIG_LOCKD_V4=y | |||
1040 | CONFIG_EXPORTFS=y | 1001 | CONFIG_EXPORTFS=y |
1041 | CONFIG_NFS_COMMON=y | 1002 | CONFIG_NFS_COMMON=y |
1042 | CONFIG_SUNRPC=y | 1003 | CONFIG_SUNRPC=y |
1004 | # CONFIG_SUNRPC_BIND34 is not set | ||
1043 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 1005 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
1044 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 1006 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
1045 | CONFIG_SMB_FS=m | 1007 | CONFIG_SMB_FS=m |
@@ -1053,7 +1015,6 @@ CONFIG_CIFS=m | |||
1053 | # CONFIG_NCP_FS is not set | 1015 | # CONFIG_NCP_FS is not set |
1054 | # CONFIG_CODA_FS is not set | 1016 | # CONFIG_CODA_FS is not set |
1055 | # CONFIG_AFS_FS is not set | 1017 | # CONFIG_AFS_FS is not set |
1056 | # CONFIG_9P_FS is not set | ||
1057 | 1018 | ||
1058 | # | 1019 | # |
1059 | # Partition Types | 1020 | # Partition Types |
@@ -1075,6 +1036,7 @@ CONFIG_MSDOS_PARTITION=y | |||
1075 | # CONFIG_SUN_PARTITION is not set | 1036 | # CONFIG_SUN_PARTITION is not set |
1076 | # CONFIG_KARMA_PARTITION is not set | 1037 | # CONFIG_KARMA_PARTITION is not set |
1077 | # CONFIG_EFI_PARTITION is not set | 1038 | # CONFIG_EFI_PARTITION is not set |
1039 | # CONFIG_SYSV68_PARTITION is not set | ||
1078 | 1040 | ||
1079 | # | 1041 | # |
1080 | # Native Language Support | 1042 | # Native Language Support |
@@ -1140,7 +1102,6 @@ CONFIG_ENABLE_MUST_CHECK=y | |||
1140 | # CONFIG_DEBUG_FS is not set | 1102 | # CONFIG_DEBUG_FS is not set |
1141 | # CONFIG_HEADERS_CHECK is not set | 1103 | # CONFIG_HEADERS_CHECK is not set |
1142 | # CONFIG_DEBUG_KERNEL is not set | 1104 | # CONFIG_DEBUG_KERNEL is not set |
1143 | CONFIG_LOG_BUF_SHIFT=14 | ||
1144 | CONFIG_DEBUG_BUGVERBOSE=y | 1105 | CONFIG_DEBUG_BUGVERBOSE=y |
1145 | CONFIG_FRAME_POINTER=y | 1106 | CONFIG_FRAME_POINTER=y |
1146 | CONFIG_DEBUG_USER=y | 1107 | CONFIG_DEBUG_USER=y |
@@ -1151,10 +1112,10 @@ CONFIG_DEBUG_USER=y | |||
1151 | CONFIG_KEYS=y | 1112 | CONFIG_KEYS=y |
1152 | CONFIG_KEYS_DEBUG_PROC_KEYS=y | 1113 | CONFIG_KEYS_DEBUG_PROC_KEYS=y |
1153 | # CONFIG_SECURITY is not set | 1114 | # CONFIG_SECURITY is not set |
1154 | 1115 | CONFIG_XOR_BLOCKS=y | |
1155 | # | 1116 | CONFIG_ASYNC_CORE=y |
1156 | # Cryptographic options | 1117 | CONFIG_ASYNC_MEMCPY=y |
1157 | # | 1118 | CONFIG_ASYNC_XOR=y |
1158 | CONFIG_CRYPTO=y | 1119 | CONFIG_CRYPTO=y |
1159 | CONFIG_CRYPTO_ALGAPI=y | 1120 | CONFIG_CRYPTO_ALGAPI=y |
1160 | CONFIG_CRYPTO_BLKCIPHER=y | 1121 | CONFIG_CRYPTO_BLKCIPHER=y |
@@ -1173,8 +1134,11 @@ CONFIG_CRYPTO_TGR192=y | |||
1173 | CONFIG_CRYPTO_GF128MUL=y | 1134 | CONFIG_CRYPTO_GF128MUL=y |
1174 | CONFIG_CRYPTO_ECB=y | 1135 | CONFIG_CRYPTO_ECB=y |
1175 | CONFIG_CRYPTO_CBC=y | 1136 | CONFIG_CRYPTO_CBC=y |
1137 | CONFIG_CRYPTO_PCBC=m | ||
1176 | CONFIG_CRYPTO_LRW=y | 1138 | CONFIG_CRYPTO_LRW=y |
1139 | # CONFIG_CRYPTO_CRYPTD is not set | ||
1177 | CONFIG_CRYPTO_DES=y | 1140 | CONFIG_CRYPTO_DES=y |
1141 | # CONFIG_CRYPTO_FCRYPT is not set | ||
1178 | CONFIG_CRYPTO_BLOWFISH=y | 1142 | CONFIG_CRYPTO_BLOWFISH=y |
1179 | CONFIG_CRYPTO_TWOFISH=y | 1143 | CONFIG_CRYPTO_TWOFISH=y |
1180 | CONFIG_CRYPTO_TWOFISH_COMMON=y | 1144 | CONFIG_CRYPTO_TWOFISH_COMMON=y |
@@ -1189,11 +1153,9 @@ CONFIG_CRYPTO_ANUBIS=y | |||
1189 | CONFIG_CRYPTO_DEFLATE=y | 1153 | CONFIG_CRYPTO_DEFLATE=y |
1190 | CONFIG_CRYPTO_MICHAEL_MIC=y | 1154 | CONFIG_CRYPTO_MICHAEL_MIC=y |
1191 | CONFIG_CRYPTO_CRC32C=y | 1155 | CONFIG_CRYPTO_CRC32C=y |
1156 | # CONFIG_CRYPTO_CAMELLIA is not set | ||
1192 | # CONFIG_CRYPTO_TEST is not set | 1157 | # CONFIG_CRYPTO_TEST is not set |
1193 | 1158 | CONFIG_CRYPTO_HW=y | |
1194 | # | ||
1195 | # Hardware crypto devices | ||
1196 | # | ||
1197 | 1159 | ||
1198 | # | 1160 | # |
1199 | # Library routines | 1161 | # Library routines |
@@ -1201,9 +1163,13 @@ CONFIG_CRYPTO_CRC32C=y | |||
1201 | CONFIG_BITREVERSE=y | 1163 | CONFIG_BITREVERSE=y |
1202 | CONFIG_CRC_CCITT=y | 1164 | CONFIG_CRC_CCITT=y |
1203 | # CONFIG_CRC16 is not set | 1165 | # CONFIG_CRC16 is not set |
1166 | # CONFIG_CRC_ITU_T is not set | ||
1204 | CONFIG_CRC32=y | 1167 | CONFIG_CRC32=y |
1168 | # CONFIG_CRC7 is not set | ||
1205 | CONFIG_LIBCRC32C=y | 1169 | CONFIG_LIBCRC32C=y |
1206 | CONFIG_ZLIB_INFLATE=y | 1170 | CONFIG_ZLIB_INFLATE=y |
1207 | CONFIG_ZLIB_DEFLATE=y | 1171 | CONFIG_ZLIB_DEFLATE=y |
1208 | CONFIG_PLIST=y | 1172 | CONFIG_PLIST=y |
1209 | CONFIG_IOMAP_COPY=y | 1173 | CONFIG_HAS_IOMEM=y |
1174 | CONFIG_HAS_IOPORT=y | ||
1175 | CONFIG_HAS_DMA=y | ||
diff --git a/arch/arm/configs/iop32x_defconfig b/arch/arm/configs/iop32x_defconfig index 7909a555706d..027aef22b4d1 100644 --- a/arch/arm/configs/iop32x_defconfig +++ b/arch/arm/configs/iop32x_defconfig | |||
@@ -1,12 +1,18 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.20-rc1-git5 | 3 | # Linux kernel version: 2.6.22 |
4 | # Tue Dec 19 21:37:52 2006 | 4 | # Thu Jul 19 16:00:36 2007 |
5 | # | 5 | # |
6 | CONFIG_ARM=y | 6 | CONFIG_ARM=y |
7 | CONFIG_SYS_SUPPORTS_APM_EMULATION=y | ||
8 | # CONFIG_GENERIC_GPIO is not set | ||
7 | # CONFIG_GENERIC_TIME is not set | 9 | # CONFIG_GENERIC_TIME is not set |
10 | # CONFIG_GENERIC_CLOCKEVENTS is not set | ||
8 | CONFIG_MMU=y | 11 | CONFIG_MMU=y |
12 | # CONFIG_NO_IOPORT is not set | ||
9 | CONFIG_GENERIC_HARDIRQS=y | 13 | CONFIG_GENERIC_HARDIRQS=y |
14 | CONFIG_STACKTRACE_SUPPORT=y | ||
15 | CONFIG_LOCKDEP_SUPPORT=y | ||
10 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 16 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
11 | CONFIG_HARDIRQS_SW_RESEND=y | 17 | CONFIG_HARDIRQS_SW_RESEND=y |
12 | CONFIG_GENERIC_IRQ_PROBE=y | 18 | CONFIG_GENERIC_IRQ_PROBE=y |
@@ -15,6 +21,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y | |||
15 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | 21 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set |
16 | CONFIG_GENERIC_HWEIGHT=y | 22 | CONFIG_GENERIC_HWEIGHT=y |
17 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 23 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
24 | CONFIG_ZONE_DMA=y | ||
18 | CONFIG_VECTORS_BASE=0xffff0000 | 25 | CONFIG_VECTORS_BASE=0xffff0000 |
19 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 26 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
20 | 27 | ||
@@ -32,16 +39,18 @@ CONFIG_LOCALVERSION="" | |||
32 | CONFIG_LOCALVERSION_AUTO=y | 39 | CONFIG_LOCALVERSION_AUTO=y |
33 | CONFIG_SWAP=y | 40 | CONFIG_SWAP=y |
34 | CONFIG_SYSVIPC=y | 41 | CONFIG_SYSVIPC=y |
35 | # CONFIG_IPC_NS is not set | 42 | CONFIG_SYSVIPC_SYSCTL=y |
36 | # CONFIG_POSIX_MQUEUE is not set | 43 | # CONFIG_POSIX_MQUEUE is not set |
37 | CONFIG_BSD_PROCESS_ACCT=y | 44 | CONFIG_BSD_PROCESS_ACCT=y |
38 | # CONFIG_BSD_PROCESS_ACCT_V3 is not set | 45 | # CONFIG_BSD_PROCESS_ACCT_V3 is not set |
39 | # CONFIG_TASKSTATS is not set | 46 | # CONFIG_TASKSTATS is not set |
40 | # CONFIG_UTS_NS is not set | 47 | # CONFIG_USER_NS is not set |
41 | # CONFIG_AUDIT is not set | 48 | # CONFIG_AUDIT is not set |
42 | # CONFIG_IKCONFIG is not set | 49 | # CONFIG_IKCONFIG is not set |
50 | CONFIG_LOG_BUF_SHIFT=14 | ||
43 | CONFIG_SYSFS_DEPRECATED=y | 51 | CONFIG_SYSFS_DEPRECATED=y |
44 | # CONFIG_RELAY is not set | 52 | # CONFIG_RELAY is not set |
53 | CONFIG_BLK_DEV_INITRD=y | ||
45 | CONFIG_INITRAMFS_SOURCE="" | 54 | CONFIG_INITRAMFS_SOURCE="" |
46 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | 55 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y |
47 | CONFIG_SYSCTL=y | 56 | CONFIG_SYSCTL=y |
@@ -57,32 +66,30 @@ CONFIG_BUG=y | |||
57 | CONFIG_ELF_CORE=y | 66 | CONFIG_ELF_CORE=y |
58 | CONFIG_BASE_FULL=y | 67 | CONFIG_BASE_FULL=y |
59 | CONFIG_FUTEX=y | 68 | CONFIG_FUTEX=y |
69 | CONFIG_ANON_INODES=y | ||
60 | CONFIG_EPOLL=y | 70 | CONFIG_EPOLL=y |
71 | CONFIG_SIGNALFD=y | ||
72 | CONFIG_TIMERFD=y | ||
73 | CONFIG_EVENTFD=y | ||
61 | CONFIG_SHMEM=y | 74 | CONFIG_SHMEM=y |
62 | CONFIG_SLAB=y | ||
63 | CONFIG_VM_EVENT_COUNTERS=y | 75 | CONFIG_VM_EVENT_COUNTERS=y |
76 | CONFIG_SLAB=y | ||
77 | # CONFIG_SLUB is not set | ||
78 | # CONFIG_SLOB is not set | ||
64 | CONFIG_RT_MUTEXES=y | 79 | CONFIG_RT_MUTEXES=y |
65 | # CONFIG_TINY_SHMEM is not set | 80 | # CONFIG_TINY_SHMEM is not set |
66 | CONFIG_BASE_SMALL=0 | 81 | CONFIG_BASE_SMALL=0 |
67 | # CONFIG_SLOB is not set | ||
68 | |||
69 | # | ||
70 | # Loadable module support | ||
71 | # | ||
72 | CONFIG_MODULES=y | 82 | CONFIG_MODULES=y |
73 | CONFIG_MODULE_UNLOAD=y | 83 | CONFIG_MODULE_UNLOAD=y |
74 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 84 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
75 | # CONFIG_MODVERSIONS is not set | 85 | # CONFIG_MODVERSIONS is not set |
76 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 86 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
77 | CONFIG_KMOD=y | 87 | CONFIG_KMOD=y |
78 | |||
79 | # | ||
80 | # Block layer | ||
81 | # | ||
82 | CONFIG_BLOCK=y | 88 | CONFIG_BLOCK=y |
83 | # CONFIG_LBD is not set | 89 | # CONFIG_LBD is not set |
84 | # CONFIG_BLK_DEV_IO_TRACE is not set | 90 | # CONFIG_BLK_DEV_IO_TRACE is not set |
85 | # CONFIG_LSF is not set | 91 | # CONFIG_LSF is not set |
92 | # CONFIG_BLK_DEV_BSG is not set | ||
86 | 93 | ||
87 | # | 94 | # |
88 | # IO Schedulers | 95 | # IO Schedulers |
@@ -114,13 +121,15 @@ CONFIG_DEFAULT_IOSCHED="cfq" | |||
114 | # CONFIG_ARCH_NETX is not set | 121 | # CONFIG_ARCH_NETX is not set |
115 | # CONFIG_ARCH_H720X is not set | 122 | # CONFIG_ARCH_H720X is not set |
116 | # CONFIG_ARCH_IMX is not set | 123 | # CONFIG_ARCH_IMX is not set |
124 | # CONFIG_ARCH_IOP13XX is not set | ||
117 | CONFIG_ARCH_IOP32X=y | 125 | CONFIG_ARCH_IOP32X=y |
118 | # CONFIG_ARCH_IOP33X is not set | 126 | # CONFIG_ARCH_IOP33X is not set |
119 | # CONFIG_ARCH_IOP13XX is not set | ||
120 | # CONFIG_ARCH_IXP4XX is not set | ||
121 | # CONFIG_ARCH_IXP2000 is not set | ||
122 | # CONFIG_ARCH_IXP23XX is not set | 127 | # CONFIG_ARCH_IXP23XX is not set |
128 | # CONFIG_ARCH_IXP2000 is not set | ||
129 | # CONFIG_ARCH_IXP4XX is not set | ||
123 | # CONFIG_ARCH_L7200 is not set | 130 | # CONFIG_ARCH_L7200 is not set |
131 | # CONFIG_ARCH_KS8695 is not set | ||
132 | # CONFIG_ARCH_NS9XXX is not set | ||
124 | # CONFIG_ARCH_PNX4008 is not set | 133 | # CONFIG_ARCH_PNX4008 is not set |
125 | # CONFIG_ARCH_PXA is not set | 134 | # CONFIG_ARCH_PXA is not set |
126 | # CONFIG_ARCH_RPC is not set | 135 | # CONFIG_ARCH_RPC is not set |
@@ -128,6 +137,7 @@ CONFIG_ARCH_IOP32X=y | |||
128 | # CONFIG_ARCH_S3C2410 is not set | 137 | # CONFIG_ARCH_S3C2410 is not set |
129 | # CONFIG_ARCH_SHARK is not set | 138 | # CONFIG_ARCH_SHARK is not set |
130 | # CONFIG_ARCH_LH7A40X is not set | 139 | # CONFIG_ARCH_LH7A40X is not set |
140 | # CONFIG_ARCH_DAVINCI is not set | ||
131 | # CONFIG_ARCH_OMAP is not set | 141 | # CONFIG_ARCH_OMAP is not set |
132 | 142 | ||
133 | # | 143 | # |
@@ -137,10 +147,12 @@ CONFIG_ARCH_IOP32X=y | |||
137 | # | 147 | # |
138 | # IOP32x Platform Types | 148 | # IOP32x Platform Types |
139 | # | 149 | # |
150 | CONFIG_MACH_EP80219=y | ||
140 | CONFIG_MACH_GLANTANK=y | 151 | CONFIG_MACH_GLANTANK=y |
141 | CONFIG_ARCH_IQ80321=y | 152 | CONFIG_ARCH_IQ80321=y |
142 | CONFIG_ARCH_IQ31244=y | 153 | CONFIG_ARCH_IQ31244=y |
143 | CONFIG_MACH_N2100=y | 154 | CONFIG_MACH_N2100=y |
155 | CONFIG_IOP3XX_ATU=y | ||
144 | CONFIG_PLAT_IOP=y | 156 | CONFIG_PLAT_IOP=y |
145 | 157 | ||
146 | # | 158 | # |
@@ -160,6 +172,7 @@ CONFIG_CPU_CP15_MMU=y | |||
160 | # | 172 | # |
161 | # CONFIG_ARM_THUMB is not set | 173 | # CONFIG_ARM_THUMB is not set |
162 | # CONFIG_CPU_DCACHE_DISABLE is not set | 174 | # CONFIG_CPU_DCACHE_DISABLE is not set |
175 | # CONFIG_OUTER_CACHE is not set | ||
163 | # CONFIG_IWMMXT is not set | 176 | # CONFIG_IWMMXT is not set |
164 | CONFIG_XSCALE_PMU=y | 177 | CONFIG_XSCALE_PMU=y |
165 | 178 | ||
@@ -167,7 +180,8 @@ CONFIG_XSCALE_PMU=y | |||
167 | # Bus support | 180 | # Bus support |
168 | # | 181 | # |
169 | CONFIG_PCI=y | 182 | CONFIG_PCI=y |
170 | # CONFIG_PCI_MULTITHREAD_PROBE is not set | 183 | CONFIG_PCI_SYSCALL=y |
184 | # CONFIG_ARCH_SUPPORTS_MSI is not set | ||
171 | # CONFIG_PCI_DEBUG is not set | 185 | # CONFIG_PCI_DEBUG is not set |
172 | 186 | ||
173 | # | 187 | # |
@@ -178,6 +192,7 @@ CONFIG_PCI=y | |||
178 | # | 192 | # |
179 | # Kernel Features | 193 | # Kernel Features |
180 | # | 194 | # |
195 | # CONFIG_TICK_ONESHOT is not set | ||
181 | # CONFIG_PREEMPT is not set | 196 | # CONFIG_PREEMPT is not set |
182 | # CONFIG_NO_IDLE_HZ is not set | 197 | # CONFIG_NO_IDLE_HZ is not set |
183 | CONFIG_HZ=100 | 198 | CONFIG_HZ=100 |
@@ -192,6 +207,9 @@ CONFIG_FLAT_NODE_MEM_MAP=y | |||
192 | # CONFIG_SPARSEMEM_STATIC is not set | 207 | # CONFIG_SPARSEMEM_STATIC is not set |
193 | CONFIG_SPLIT_PTLOCK_CPUS=4096 | 208 | CONFIG_SPLIT_PTLOCK_CPUS=4096 |
194 | # CONFIG_RESOURCES_64BIT is not set | 209 | # CONFIG_RESOURCES_64BIT is not set |
210 | CONFIG_ZONE_DMA_FLAG=1 | ||
211 | CONFIG_BOUNCE=y | ||
212 | CONFIG_VIRT_TO_BUS=y | ||
195 | CONFIG_ALIGNMENT_TRAP=y | 213 | CONFIG_ALIGNMENT_TRAP=y |
196 | 214 | ||
197 | # | 215 | # |
@@ -199,8 +217,9 @@ CONFIG_ALIGNMENT_TRAP=y | |||
199 | # | 217 | # |
200 | CONFIG_ZBOOT_ROM_TEXT=0x0 | 218 | CONFIG_ZBOOT_ROM_TEXT=0x0 |
201 | CONFIG_ZBOOT_ROM_BSS=0x0 | 219 | CONFIG_ZBOOT_ROM_BSS=0x0 |
202 | CONFIG_CMDLINE="console=ttyS0,115200 root=/dev/nfs ip=bootp" | 220 | CONFIG_CMDLINE="console=ttyS0,115200 root=/dev/nfs ip=bootp cachepolicy=writealloc" |
203 | # CONFIG_XIP_KERNEL is not set | 221 | # CONFIG_XIP_KERNEL is not set |
222 | # CONFIG_KEXEC is not set | ||
204 | 223 | ||
205 | # | 224 | # |
206 | # Floating point emulation | 225 | # Floating point emulation |
@@ -225,7 +244,6 @@ CONFIG_BINFMT_AOUT=y | |||
225 | # Power management options | 244 | # Power management options |
226 | # | 245 | # |
227 | # CONFIG_PM is not set | 246 | # CONFIG_PM is not set |
228 | # CONFIG_APM is not set | ||
229 | 247 | ||
230 | # | 248 | # |
231 | # Networking | 249 | # Networking |
@@ -235,13 +253,13 @@ CONFIG_NET=y | |||
235 | # | 253 | # |
236 | # Networking options | 254 | # Networking options |
237 | # | 255 | # |
238 | # CONFIG_NETDEBUG is not set | ||
239 | CONFIG_PACKET=y | 256 | CONFIG_PACKET=y |
240 | CONFIG_PACKET_MMAP=y | 257 | CONFIG_PACKET_MMAP=y |
241 | CONFIG_UNIX=y | 258 | CONFIG_UNIX=y |
242 | CONFIG_XFRM=y | 259 | CONFIG_XFRM=y |
243 | # CONFIG_XFRM_USER is not set | 260 | # CONFIG_XFRM_USER is not set |
244 | # CONFIG_XFRM_SUB_POLICY is not set | 261 | # CONFIG_XFRM_SUB_POLICY is not set |
262 | # CONFIG_XFRM_MIGRATE is not set | ||
245 | # CONFIG_NET_KEY is not set | 263 | # CONFIG_NET_KEY is not set |
246 | CONFIG_INET=y | 264 | CONFIG_INET=y |
247 | CONFIG_IP_MULTICAST=y | 265 | CONFIG_IP_MULTICAST=y |
@@ -273,6 +291,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
273 | CONFIG_IPV6=y | 291 | CONFIG_IPV6=y |
274 | # CONFIG_IPV6_PRIVACY is not set | 292 | # CONFIG_IPV6_PRIVACY is not set |
275 | # CONFIG_IPV6_ROUTER_PREF is not set | 293 | # CONFIG_IPV6_ROUTER_PREF is not set |
294 | # CONFIG_IPV6_OPTIMISTIC_DAD is not set | ||
276 | # CONFIG_INET6_AH is not set | 295 | # CONFIG_INET6_AH is not set |
277 | # CONFIG_INET6_ESP is not set | 296 | # CONFIG_INET6_ESP is not set |
278 | # CONFIG_INET6_IPCOMP is not set | 297 | # CONFIG_INET6_IPCOMP is not set |
@@ -288,20 +307,8 @@ CONFIG_IPV6=y | |||
288 | # CONFIG_IPV6_MULTIPLE_TABLES is not set | 307 | # CONFIG_IPV6_MULTIPLE_TABLES is not set |
289 | # CONFIG_NETWORK_SECMARK is not set | 308 | # CONFIG_NETWORK_SECMARK is not set |
290 | # CONFIG_NETFILTER is not set | 309 | # CONFIG_NETFILTER is not set |
291 | |||
292 | # | ||
293 | # DCCP Configuration (EXPERIMENTAL) | ||
294 | # | ||
295 | # CONFIG_IP_DCCP is not set | 310 | # CONFIG_IP_DCCP is not set |
296 | |||
297 | # | ||
298 | # SCTP Configuration (EXPERIMENTAL) | ||
299 | # | ||
300 | # CONFIG_IP_SCTP is not set | 311 | # CONFIG_IP_SCTP is not set |
301 | |||
302 | # | ||
303 | # TIPC Configuration (EXPERIMENTAL) | ||
304 | # | ||
305 | # CONFIG_TIPC is not set | 312 | # CONFIG_TIPC is not set |
306 | # CONFIG_ATM is not set | 313 | # CONFIG_ATM is not set |
307 | # CONFIG_BRIDGE is not set | 314 | # CONFIG_BRIDGE is not set |
@@ -327,7 +334,17 @@ CONFIG_IPV6=y | |||
327 | # CONFIG_HAMRADIO is not set | 334 | # CONFIG_HAMRADIO is not set |
328 | # CONFIG_IRDA is not set | 335 | # CONFIG_IRDA is not set |
329 | # CONFIG_BT is not set | 336 | # CONFIG_BT is not set |
337 | # CONFIG_AF_RXRPC is not set | ||
338 | |||
339 | # | ||
340 | # Wireless | ||
341 | # | ||
342 | # CONFIG_CFG80211 is not set | ||
343 | # CONFIG_WIRELESS_EXT is not set | ||
344 | # CONFIG_MAC80211 is not set | ||
330 | # CONFIG_IEEE80211 is not set | 345 | # CONFIG_IEEE80211 is not set |
346 | # CONFIG_RFKILL is not set | ||
347 | # CONFIG_NET_9P is not set | ||
331 | 348 | ||
332 | # | 349 | # |
333 | # Device Drivers | 350 | # Device Drivers |
@@ -340,16 +357,9 @@ CONFIG_STANDALONE=y | |||
340 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 357 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
341 | # CONFIG_FW_LOADER is not set | 358 | # CONFIG_FW_LOADER is not set |
342 | # CONFIG_DEBUG_DRIVER is not set | 359 | # CONFIG_DEBUG_DRIVER is not set |
360 | # CONFIG_DEBUG_DEVRES is not set | ||
343 | # CONFIG_SYS_HYPERVISOR is not set | 361 | # CONFIG_SYS_HYPERVISOR is not set |
344 | |||
345 | # | ||
346 | # Connector - unified userspace <-> kernelspace linker | ||
347 | # | ||
348 | # CONFIG_CONNECTOR is not set | 362 | # CONFIG_CONNECTOR is not set |
349 | |||
350 | # | ||
351 | # Memory Technology Devices (MTD) | ||
352 | # | ||
353 | CONFIG_MTD=y | 363 | CONFIG_MTD=y |
354 | # CONFIG_MTD_DEBUG is not set | 364 | # CONFIG_MTD_DEBUG is not set |
355 | # CONFIG_MTD_CONCAT is not set | 365 | # CONFIG_MTD_CONCAT is not set |
@@ -365,6 +375,7 @@ CONFIG_MTD_REDBOOT_PARTS_READONLY=y | |||
365 | # User Modules And Translation Layers | 375 | # User Modules And Translation Layers |
366 | # | 376 | # |
367 | CONFIG_MTD_CHAR=y | 377 | CONFIG_MTD_CHAR=y |
378 | CONFIG_MTD_BLKDEVS=y | ||
368 | CONFIG_MTD_BLOCK=y | 379 | CONFIG_MTD_BLOCK=y |
369 | # CONFIG_FTL is not set | 380 | # CONFIG_FTL is not set |
370 | # CONFIG_NFTL is not set | 381 | # CONFIG_NFTL is not set |
@@ -396,7 +407,6 @@ CONFIG_MTD_CFI_UTIL=y | |||
396 | # CONFIG_MTD_RAM is not set | 407 | # CONFIG_MTD_RAM is not set |
397 | # CONFIG_MTD_ROM is not set | 408 | # CONFIG_MTD_ROM is not set |
398 | # CONFIG_MTD_ABSENT is not set | 409 | # CONFIG_MTD_ABSENT is not set |
399 | # CONFIG_MTD_OBSOLETE_CHIPS is not set | ||
400 | 410 | ||
401 | # | 411 | # |
402 | # Mapping drivers for chip access | 412 | # Mapping drivers for chip access |
@@ -424,29 +434,15 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=1 | |||
424 | # CONFIG_MTD_DOC2000 is not set | 434 | # CONFIG_MTD_DOC2000 is not set |
425 | # CONFIG_MTD_DOC2001 is not set | 435 | # CONFIG_MTD_DOC2001 is not set |
426 | # CONFIG_MTD_DOC2001PLUS is not set | 436 | # CONFIG_MTD_DOC2001PLUS is not set |
427 | |||
428 | # | ||
429 | # NAND Flash Device Drivers | ||
430 | # | ||
431 | # CONFIG_MTD_NAND is not set | 437 | # CONFIG_MTD_NAND is not set |
432 | |||
433 | # | ||
434 | # OneNAND Flash Device Drivers | ||
435 | # | ||
436 | # CONFIG_MTD_ONENAND is not set | 438 | # CONFIG_MTD_ONENAND is not set |
437 | 439 | ||
438 | # | 440 | # |
439 | # Parallel port support | 441 | # UBI - Unsorted block images |
440 | # | 442 | # |
443 | # CONFIG_MTD_UBI is not set | ||
441 | # CONFIG_PARPORT is not set | 444 | # CONFIG_PARPORT is not set |
442 | 445 | CONFIG_BLK_DEV=y | |
443 | # | ||
444 | # Plug and Play support | ||
445 | # | ||
446 | |||
447 | # | ||
448 | # Block devices | ||
449 | # | ||
450 | # CONFIG_BLK_CPQ_DA is not set | 446 | # CONFIG_BLK_CPQ_DA is not set |
451 | # CONFIG_BLK_CPQ_CISS_DA is not set | 447 | # CONFIG_BLK_CPQ_CISS_DA is not set |
452 | # CONFIG_BLK_DEV_DAC960 is not set | 448 | # CONFIG_BLK_DEV_DAC960 is not set |
@@ -461,13 +457,8 @@ CONFIG_BLK_DEV_RAM=y | |||
461 | CONFIG_BLK_DEV_RAM_COUNT=16 | 457 | CONFIG_BLK_DEV_RAM_COUNT=16 |
462 | CONFIG_BLK_DEV_RAM_SIZE=8192 | 458 | CONFIG_BLK_DEV_RAM_SIZE=8192 |
463 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | 459 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 |
464 | CONFIG_BLK_DEV_INITRD=y | ||
465 | # CONFIG_CDROM_PKTCDVD is not set | 460 | # CONFIG_CDROM_PKTCDVD is not set |
466 | # CONFIG_ATA_OVER_ETH is not set | 461 | # CONFIG_ATA_OVER_ETH is not set |
467 | |||
468 | # | ||
469 | # ATA/ATAPI/MFM/RLL support | ||
470 | # | ||
471 | # CONFIG_IDE is not set | 462 | # CONFIG_IDE is not set |
472 | 463 | ||
473 | # | 464 | # |
@@ -475,6 +466,7 @@ CONFIG_BLK_DEV_INITRD=y | |||
475 | # | 466 | # |
476 | # CONFIG_RAID_ATTRS is not set | 467 | # CONFIG_RAID_ATTRS is not set |
477 | CONFIG_SCSI=y | 468 | CONFIG_SCSI=y |
469 | CONFIG_SCSI_DMA=y | ||
478 | # CONFIG_SCSI_TGT is not set | 470 | # CONFIG_SCSI_TGT is not set |
479 | # CONFIG_SCSI_NETLINK is not set | 471 | # CONFIG_SCSI_NETLINK is not set |
480 | CONFIG_SCSI_PROC_FS=y | 472 | CONFIG_SCSI_PROC_FS=y |
@@ -496,6 +488,7 @@ CONFIG_CHR_DEV_SG=y | |||
496 | # CONFIG_SCSI_CONSTANTS is not set | 488 | # CONFIG_SCSI_CONSTANTS is not set |
497 | # CONFIG_SCSI_LOGGING is not set | 489 | # CONFIG_SCSI_LOGGING is not set |
498 | # CONFIG_SCSI_SCAN_ASYNC is not set | 490 | # CONFIG_SCSI_SCAN_ASYNC is not set |
491 | CONFIG_SCSI_WAIT_SCAN=m | ||
499 | 492 | ||
500 | # | 493 | # |
501 | # SCSI Transports | 494 | # SCSI Transports |
@@ -541,11 +534,8 @@ CONFIG_CHR_DEV_SG=y | |||
541 | # CONFIG_SCSI_NSP32 is not set | 534 | # CONFIG_SCSI_NSP32 is not set |
542 | # CONFIG_SCSI_DEBUG is not set | 535 | # CONFIG_SCSI_DEBUG is not set |
543 | # CONFIG_SCSI_SRP is not set | 536 | # CONFIG_SCSI_SRP is not set |
544 | |||
545 | # | ||
546 | # Serial ATA (prod) and Parallel ATA (experimental) drivers | ||
547 | # | ||
548 | CONFIG_ATA=y | 537 | CONFIG_ATA=y |
538 | # CONFIG_ATA_NONSTANDARD is not set | ||
549 | # CONFIG_SATA_AHCI is not set | 539 | # CONFIG_SATA_AHCI is not set |
550 | # CONFIG_SATA_SVW is not set | 540 | # CONFIG_SATA_SVW is not set |
551 | # CONFIG_ATA_PIIX is not set | 541 | # CONFIG_ATA_PIIX is not set |
@@ -560,11 +550,13 @@ CONFIG_SATA_SIL=y | |||
560 | # CONFIG_SATA_SIS is not set | 550 | # CONFIG_SATA_SIS is not set |
561 | # CONFIG_SATA_ULI is not set | 551 | # CONFIG_SATA_ULI is not set |
562 | # CONFIG_SATA_VIA is not set | 552 | # CONFIG_SATA_VIA is not set |
563 | # CONFIG_SATA_VITESSE is not set | 553 | CONFIG_SATA_VITESSE=y |
554 | # CONFIG_SATA_INIC162X is not set | ||
564 | # CONFIG_PATA_ALI is not set | 555 | # CONFIG_PATA_ALI is not set |
565 | # CONFIG_PATA_AMD is not set | 556 | # CONFIG_PATA_AMD is not set |
566 | # CONFIG_PATA_ARTOP is not set | 557 | # CONFIG_PATA_ARTOP is not set |
567 | # CONFIG_PATA_ATIIXP is not set | 558 | # CONFIG_PATA_ATIIXP is not set |
559 | # CONFIG_PATA_CMD640_PCI is not set | ||
568 | # CONFIG_PATA_CMD64X is not set | 560 | # CONFIG_PATA_CMD64X is not set |
569 | # CONFIG_PATA_CS5520 is not set | 561 | # CONFIG_PATA_CS5520 is not set |
570 | # CONFIG_PATA_CS5530 is not set | 562 | # CONFIG_PATA_CS5530 is not set |
@@ -576,6 +568,7 @@ CONFIG_SATA_SIL=y | |||
576 | # CONFIG_PATA_HPT3X2N is not set | 568 | # CONFIG_PATA_HPT3X2N is not set |
577 | # CONFIG_PATA_HPT3X3 is not set | 569 | # CONFIG_PATA_HPT3X3 is not set |
578 | # CONFIG_PATA_IT821X is not set | 570 | # CONFIG_PATA_IT821X is not set |
571 | # CONFIG_PATA_IT8213 is not set | ||
579 | # CONFIG_PATA_JMICRON is not set | 572 | # CONFIG_PATA_JMICRON is not set |
580 | # CONFIG_PATA_TRIFLEX is not set | 573 | # CONFIG_PATA_TRIFLEX is not set |
581 | # CONFIG_PATA_MARVELL is not set | 574 | # CONFIG_PATA_MARVELL is not set |
@@ -595,17 +588,14 @@ CONFIG_SATA_SIL=y | |||
595 | # CONFIG_PATA_SIS is not set | 588 | # CONFIG_PATA_SIS is not set |
596 | # CONFIG_PATA_VIA is not set | 589 | # CONFIG_PATA_VIA is not set |
597 | # CONFIG_PATA_WINBOND is not set | 590 | # CONFIG_PATA_WINBOND is not set |
598 | |||
599 | # | ||
600 | # Multi-device support (RAID and LVM) | ||
601 | # | ||
602 | CONFIG_MD=y | 591 | CONFIG_MD=y |
603 | CONFIG_BLK_DEV_MD=y | 592 | CONFIG_BLK_DEV_MD=y |
604 | # CONFIG_MD_LINEAR is not set | 593 | # CONFIG_MD_LINEAR is not set |
605 | CONFIG_MD_RAID0=y | 594 | CONFIG_MD_RAID0=y |
606 | CONFIG_MD_RAID1=y | 595 | CONFIG_MD_RAID1=y |
607 | # CONFIG_MD_RAID10 is not set | 596 | CONFIG_MD_RAID10=y |
608 | # CONFIG_MD_RAID456 is not set | 597 | CONFIG_MD_RAID456=y |
598 | # CONFIG_MD_RAID5_RESHAPE is not set | ||
609 | # CONFIG_MD_MULTIPATH is not set | 599 | # CONFIG_MD_MULTIPATH is not set |
610 | # CONFIG_MD_FAULTY is not set | 600 | # CONFIG_MD_FAULTY is not set |
611 | CONFIG_BLK_DEV_DM=y | 601 | CONFIG_BLK_DEV_DM=y |
@@ -615,6 +605,7 @@ CONFIG_BLK_DEV_DM=y | |||
615 | # CONFIG_DM_MIRROR is not set | 605 | # CONFIG_DM_MIRROR is not set |
616 | # CONFIG_DM_ZERO is not set | 606 | # CONFIG_DM_ZERO is not set |
617 | # CONFIG_DM_MULTIPATH is not set | 607 | # CONFIG_DM_MULTIPATH is not set |
608 | # CONFIG_DM_DELAY is not set | ||
618 | 609 | ||
619 | # | 610 | # |
620 | # Fusion MPT device support | 611 | # Fusion MPT device support |
@@ -627,47 +618,27 @@ CONFIG_BLK_DEV_DM=y | |||
627 | # | 618 | # |
628 | # IEEE 1394 (FireWire) support | 619 | # IEEE 1394 (FireWire) support |
629 | # | 620 | # |
621 | # CONFIG_FIREWIRE is not set | ||
630 | # CONFIG_IEEE1394 is not set | 622 | # CONFIG_IEEE1394 is not set |
631 | |||
632 | # | ||
633 | # I2O device support | ||
634 | # | ||
635 | # CONFIG_I2O is not set | 623 | # CONFIG_I2O is not set |
636 | |||
637 | # | ||
638 | # Network device support | ||
639 | # | ||
640 | CONFIG_NETDEVICES=y | 624 | CONFIG_NETDEVICES=y |
625 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
641 | # CONFIG_DUMMY is not set | 626 | # CONFIG_DUMMY is not set |
642 | # CONFIG_BONDING is not set | 627 | # CONFIG_BONDING is not set |
628 | # CONFIG_MACVLAN is not set | ||
643 | # CONFIG_EQUALIZER is not set | 629 | # CONFIG_EQUALIZER is not set |
644 | # CONFIG_TUN is not set | 630 | # CONFIG_TUN is not set |
645 | |||
646 | # | ||
647 | # ARCnet devices | ||
648 | # | ||
649 | # CONFIG_ARCNET is not set | 631 | # CONFIG_ARCNET is not set |
650 | |||
651 | # | ||
652 | # PHY device support | ||
653 | # | ||
654 | # CONFIG_PHYLIB is not set | 632 | # CONFIG_PHYLIB is not set |
655 | |||
656 | # | ||
657 | # Ethernet (10 or 100Mbit) | ||
658 | # | ||
659 | CONFIG_NET_ETHERNET=y | 633 | CONFIG_NET_ETHERNET=y |
660 | CONFIG_MII=y | 634 | CONFIG_MII=y |
635 | # CONFIG_AX88796 is not set | ||
661 | # CONFIG_HAPPYMEAL is not set | 636 | # CONFIG_HAPPYMEAL is not set |
662 | # CONFIG_SUNGEM is not set | 637 | # CONFIG_SUNGEM is not set |
663 | # CONFIG_CASSINI is not set | 638 | # CONFIG_CASSINI is not set |
664 | # CONFIG_NET_VENDOR_3COM is not set | 639 | # CONFIG_NET_VENDOR_3COM is not set |
665 | # CONFIG_SMC91X is not set | 640 | # CONFIG_SMC91X is not set |
666 | # CONFIG_DM9000 is not set | 641 | # CONFIG_DM9000 is not set |
667 | |||
668 | # | ||
669 | # Tulip family network device support | ||
670 | # | ||
671 | # CONFIG_NET_TULIP is not set | 642 | # CONFIG_NET_TULIP is not set |
672 | # CONFIG_HP100 is not set | 643 | # CONFIG_HP100 is not set |
673 | CONFIG_NET_PCI=y | 644 | CONFIG_NET_PCI=y |
@@ -689,10 +660,8 @@ CONFIG_E100=y | |||
689 | # CONFIG_SUNDANCE is not set | 660 | # CONFIG_SUNDANCE is not set |
690 | # CONFIG_TLAN is not set | 661 | # CONFIG_TLAN is not set |
691 | # CONFIG_VIA_RHINE is not set | 662 | # CONFIG_VIA_RHINE is not set |
692 | 663 | # CONFIG_SC92031 is not set | |
693 | # | 664 | CONFIG_NETDEV_1000=y |
694 | # Ethernet (1000 Mbit) | ||
695 | # | ||
696 | # CONFIG_ACENIC is not set | 665 | # CONFIG_ACENIC is not set |
697 | # CONFIG_DL2K is not set | 666 | # CONFIG_DL2K is not set |
698 | CONFIG_E1000=y | 667 | CONFIG_E1000=y |
@@ -706,34 +675,36 @@ CONFIG_R8169=y | |||
706 | # CONFIG_SIS190 is not set | 675 | # CONFIG_SIS190 is not set |
707 | # CONFIG_SKGE is not set | 676 | # CONFIG_SKGE is not set |
708 | # CONFIG_SKY2 is not set | 677 | # CONFIG_SKY2 is not set |
709 | # CONFIG_SK98LIN is not set | ||
710 | # CONFIG_VIA_VELOCITY is not set | 678 | # CONFIG_VIA_VELOCITY is not set |
711 | # CONFIG_TIGON3 is not set | 679 | # CONFIG_TIGON3 is not set |
712 | # CONFIG_BNX2 is not set | 680 | # CONFIG_BNX2 is not set |
713 | # CONFIG_QLA3XXX is not set | 681 | # CONFIG_QLA3XXX is not set |
714 | 682 | # CONFIG_ATL1 is not set | |
715 | # | 683 | CONFIG_NETDEV_10000=y |
716 | # Ethernet (10000 Mbit) | ||
717 | # | ||
718 | # CONFIG_CHELSIO_T1 is not set | 684 | # CONFIG_CHELSIO_T1 is not set |
685 | # CONFIG_CHELSIO_T3 is not set | ||
719 | # CONFIG_IXGB is not set | 686 | # CONFIG_IXGB is not set |
720 | # CONFIG_S2IO is not set | 687 | # CONFIG_S2IO is not set |
721 | # CONFIG_MYRI10GE is not set | 688 | # CONFIG_MYRI10GE is not set |
722 | # CONFIG_NETXEN_NIC is not set | 689 | # CONFIG_NETXEN_NIC is not set |
723 | 690 | # CONFIG_MLX4_CORE is not set | |
724 | # | ||
725 | # Token Ring devices | ||
726 | # | ||
727 | # CONFIG_TR is not set | 691 | # CONFIG_TR is not set |
728 | 692 | ||
729 | # | 693 | # |
730 | # Wireless LAN (non-hamradio) | 694 | # Wireless LAN |
731 | # | 695 | # |
732 | # CONFIG_NET_RADIO is not set | 696 | # CONFIG_WLAN_PRE80211 is not set |
697 | # CONFIG_WLAN_80211 is not set | ||
733 | 698 | ||
734 | # | 699 | # |
735 | # Wan interfaces | 700 | # USB Network Adapters |
736 | # | 701 | # |
702 | # CONFIG_USB_CATC is not set | ||
703 | # CONFIG_USB_KAWETH is not set | ||
704 | # CONFIG_USB_PEGASUS is not set | ||
705 | # CONFIG_USB_RTL8150 is not set | ||
706 | # CONFIG_USB_USBNET_MII is not set | ||
707 | # CONFIG_USB_USBNET is not set | ||
737 | # CONFIG_WAN is not set | 708 | # CONFIG_WAN is not set |
738 | # CONFIG_FDDI is not set | 709 | # CONFIG_FDDI is not set |
739 | # CONFIG_HIPPI is not set | 710 | # CONFIG_HIPPI is not set |
@@ -744,10 +715,6 @@ CONFIG_R8169=y | |||
744 | # CONFIG_NETCONSOLE is not set | 715 | # CONFIG_NETCONSOLE is not set |
745 | # CONFIG_NETPOLL is not set | 716 | # CONFIG_NETPOLL is not set |
746 | # CONFIG_NET_POLL_CONTROLLER is not set | 717 | # CONFIG_NET_POLL_CONTROLLER is not set |
747 | |||
748 | # | ||
749 | # ISDN subsystem | ||
750 | # | ||
751 | # CONFIG_ISDN is not set | 718 | # CONFIG_ISDN is not set |
752 | 719 | ||
753 | # | 720 | # |
@@ -755,6 +722,7 @@ CONFIG_R8169=y | |||
755 | # | 722 | # |
756 | CONFIG_INPUT=y | 723 | CONFIG_INPUT=y |
757 | # CONFIG_INPUT_FF_MEMLESS is not set | 724 | # CONFIG_INPUT_FF_MEMLESS is not set |
725 | # CONFIG_INPUT_POLLDEV is not set | ||
758 | 726 | ||
759 | # | 727 | # |
760 | # Userland interfaces | 728 | # Userland interfaces |
@@ -774,6 +742,7 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | |||
774 | # CONFIG_INPUT_KEYBOARD is not set | 742 | # CONFIG_INPUT_KEYBOARD is not set |
775 | # CONFIG_INPUT_MOUSE is not set | 743 | # CONFIG_INPUT_MOUSE is not set |
776 | # CONFIG_INPUT_JOYSTICK is not set | 744 | # CONFIG_INPUT_JOYSTICK is not set |
745 | # CONFIG_INPUT_TABLET is not set | ||
777 | # CONFIG_INPUT_TOUCHSCREEN is not set | 746 | # CONFIG_INPUT_TOUCHSCREEN is not set |
778 | # CONFIG_INPUT_MISC is not set | 747 | # CONFIG_INPUT_MISC is not set |
779 | 748 | ||
@@ -811,33 +780,18 @@ CONFIG_SERIAL_CORE_CONSOLE=y | |||
811 | CONFIG_UNIX98_PTYS=y | 780 | CONFIG_UNIX98_PTYS=y |
812 | CONFIG_LEGACY_PTYS=y | 781 | CONFIG_LEGACY_PTYS=y |
813 | CONFIG_LEGACY_PTY_COUNT=256 | 782 | CONFIG_LEGACY_PTY_COUNT=256 |
814 | |||
815 | # | ||
816 | # IPMI | ||
817 | # | ||
818 | # CONFIG_IPMI_HANDLER is not set | 783 | # CONFIG_IPMI_HANDLER is not set |
819 | |||
820 | # | ||
821 | # Watchdog Cards | ||
822 | # | ||
823 | # CONFIG_WATCHDOG is not set | 784 | # CONFIG_WATCHDOG is not set |
824 | CONFIG_HW_RANDOM=y | 785 | CONFIG_HW_RANDOM=y |
825 | # CONFIG_NVRAM is not set | 786 | # CONFIG_NVRAM is not set |
826 | # CONFIG_DTLK is not set | ||
827 | # CONFIG_R3964 is not set | 787 | # CONFIG_R3964 is not set |
828 | # CONFIG_APPLICOM is not set | 788 | # CONFIG_APPLICOM is not set |
829 | # CONFIG_DRM is not set | 789 | # CONFIG_DRM is not set |
830 | # CONFIG_RAW_DRIVER is not set | 790 | # CONFIG_RAW_DRIVER is not set |
831 | |||
832 | # | ||
833 | # TPM devices | ||
834 | # | ||
835 | # CONFIG_TCG_TPM is not set | 791 | # CONFIG_TCG_TPM is not set |
836 | 792 | CONFIG_DEVPORT=y | |
837 | # | ||
838 | # I2C support | ||
839 | # | ||
840 | CONFIG_I2C=y | 793 | CONFIG_I2C=y |
794 | CONFIG_I2C_BOARDINFO=y | ||
841 | CONFIG_I2C_CHARDEV=y | 795 | CONFIG_I2C_CHARDEV=y |
842 | 796 | ||
843 | # | 797 | # |
@@ -864,25 +818,29 @@ CONFIG_I2C_IOP3XX=y | |||
864 | # CONFIG_I2C_PARPORT_LIGHT is not set | 818 | # CONFIG_I2C_PARPORT_LIGHT is not set |
865 | # CONFIG_I2C_PROSAVAGE is not set | 819 | # CONFIG_I2C_PROSAVAGE is not set |
866 | # CONFIG_I2C_SAVAGE4 is not set | 820 | # CONFIG_I2C_SAVAGE4 is not set |
821 | # CONFIG_I2C_SIMTEC is not set | ||
867 | # CONFIG_I2C_SIS5595 is not set | 822 | # CONFIG_I2C_SIS5595 is not set |
868 | # CONFIG_I2C_SIS630 is not set | 823 | # CONFIG_I2C_SIS630 is not set |
869 | # CONFIG_I2C_SIS96X is not set | 824 | # CONFIG_I2C_SIS96X is not set |
825 | # CONFIG_I2C_TAOS_EVM is not set | ||
870 | # CONFIG_I2C_STUB is not set | 826 | # CONFIG_I2C_STUB is not set |
827 | # CONFIG_I2C_TINY_USB is not set | ||
871 | # CONFIG_I2C_VIA is not set | 828 | # CONFIG_I2C_VIA is not set |
872 | # CONFIG_I2C_VIAPRO is not set | 829 | # CONFIG_I2C_VIAPRO is not set |
873 | # CONFIG_I2C_VOODOO3 is not set | 830 | # CONFIG_I2C_VOODOO3 is not set |
874 | # CONFIG_I2C_PCA_ISA is not set | ||
875 | 831 | ||
876 | # | 832 | # |
877 | # Miscellaneous I2C Chip support | 833 | # Miscellaneous I2C Chip support |
878 | # | 834 | # |
879 | # CONFIG_SENSORS_DS1337 is not set | 835 | # CONFIG_SENSORS_DS1337 is not set |
880 | # CONFIG_SENSORS_DS1374 is not set | 836 | # CONFIG_SENSORS_DS1374 is not set |
837 | # CONFIG_DS1682 is not set | ||
881 | # CONFIG_SENSORS_EEPROM is not set | 838 | # CONFIG_SENSORS_EEPROM is not set |
882 | # CONFIG_SENSORS_PCF8574 is not set | 839 | # CONFIG_SENSORS_PCF8574 is not set |
883 | # CONFIG_SENSORS_PCA9539 is not set | 840 | # CONFIG_SENSORS_PCA9539 is not set |
884 | # CONFIG_SENSORS_PCF8591 is not set | 841 | # CONFIG_SENSORS_PCF8591 is not set |
885 | # CONFIG_SENSORS_MAX6875 is not set | 842 | # CONFIG_SENSORS_MAX6875 is not set |
843 | # CONFIG_SENSORS_TSL2550 is not set | ||
886 | # CONFIG_I2C_DEBUG_CORE is not set | 844 | # CONFIG_I2C_DEBUG_CORE is not set |
887 | # CONFIG_I2C_DEBUG_ALGO is not set | 845 | # CONFIG_I2C_DEBUG_ALGO is not set |
888 | # CONFIG_I2C_DEBUG_BUS is not set | 846 | # CONFIG_I2C_DEBUG_BUS is not set |
@@ -893,21 +851,15 @@ CONFIG_I2C_IOP3XX=y | |||
893 | # | 851 | # |
894 | # CONFIG_SPI is not set | 852 | # CONFIG_SPI is not set |
895 | # CONFIG_SPI_MASTER is not set | 853 | # CONFIG_SPI_MASTER is not set |
896 | |||
897 | # | ||
898 | # Dallas's 1-wire bus | ||
899 | # | ||
900 | # CONFIG_W1 is not set | 854 | # CONFIG_W1 is not set |
901 | |||
902 | # | ||
903 | # Hardware Monitoring support | ||
904 | # | ||
905 | CONFIG_HWMON=y | 855 | CONFIG_HWMON=y |
906 | # CONFIG_HWMON_VID is not set | 856 | # CONFIG_HWMON_VID is not set |
907 | # CONFIG_SENSORS_ABITUGURU is not set | 857 | # CONFIG_SENSORS_ABITUGURU is not set |
858 | # CONFIG_SENSORS_AD7418 is not set | ||
908 | # CONFIG_SENSORS_ADM1021 is not set | 859 | # CONFIG_SENSORS_ADM1021 is not set |
909 | # CONFIG_SENSORS_ADM1025 is not set | 860 | # CONFIG_SENSORS_ADM1025 is not set |
910 | # CONFIG_SENSORS_ADM1026 is not set | 861 | # CONFIG_SENSORS_ADM1026 is not set |
862 | # CONFIG_SENSORS_ADM1029 is not set | ||
911 | # CONFIG_SENSORS_ADM1031 is not set | 863 | # CONFIG_SENSORS_ADM1031 is not set |
912 | # CONFIG_SENSORS_ADM9240 is not set | 864 | # CONFIG_SENSORS_ADM9240 is not set |
913 | # CONFIG_SENSORS_ASB100 is not set | 865 | # CONFIG_SENSORS_ASB100 is not set |
@@ -930,6 +882,7 @@ CONFIG_HWMON=y | |||
930 | # CONFIG_SENSORS_LM90 is not set | 882 | # CONFIG_SENSORS_LM90 is not set |
931 | # CONFIG_SENSORS_LM92 is not set | 883 | # CONFIG_SENSORS_LM92 is not set |
932 | # CONFIG_SENSORS_MAX1619 is not set | 884 | # CONFIG_SENSORS_MAX1619 is not set |
885 | # CONFIG_SENSORS_MAX6650 is not set | ||
933 | # CONFIG_SENSORS_PC87360 is not set | 886 | # CONFIG_SENSORS_PC87360 is not set |
934 | # CONFIG_SENSORS_PC87427 is not set | 887 | # CONFIG_SENSORS_PC87427 is not set |
935 | # CONFIG_SENSORS_SIS5595 is not set | 888 | # CONFIG_SENSORS_SIS5595 is not set |
@@ -947,12 +900,16 @@ CONFIG_HWMON=y | |||
947 | # CONFIG_SENSORS_W83627HF is not set | 900 | # CONFIG_SENSORS_W83627HF is not set |
948 | # CONFIG_SENSORS_W83627EHF is not set | 901 | # CONFIG_SENSORS_W83627EHF is not set |
949 | # CONFIG_HWMON_DEBUG_CHIP is not set | 902 | # CONFIG_HWMON_DEBUG_CHIP is not set |
903 | CONFIG_MISC_DEVICES=y | ||
904 | # CONFIG_PHANTOM is not set | ||
905 | # CONFIG_EEPROM_93CX6 is not set | ||
906 | # CONFIG_SGI_IOC4 is not set | ||
907 | # CONFIG_TIFM_CORE is not set | ||
950 | 908 | ||
951 | # | 909 | # |
952 | # Misc devices | 910 | # Multifunction device drivers |
953 | # | 911 | # |
954 | # CONFIG_SGI_IOC4 is not set | 912 | # CONFIG_MFD_SM501 is not set |
955 | # CONFIG_TIFM_CORE is not set | ||
956 | 913 | ||
957 | # | 914 | # |
958 | # LED devices | 915 | # LED devices |
@@ -971,17 +928,20 @@ CONFIG_HWMON=y | |||
971 | # Multimedia devices | 928 | # Multimedia devices |
972 | # | 929 | # |
973 | # CONFIG_VIDEO_DEV is not set | 930 | # CONFIG_VIDEO_DEV is not set |
931 | # CONFIG_DVB_CORE is not set | ||
932 | CONFIG_DAB=y | ||
933 | # CONFIG_USB_DABUSB is not set | ||
974 | 934 | ||
975 | # | 935 | # |
976 | # Digital Video Broadcasting Devices | 936 | # Graphics support |
977 | # | 937 | # |
978 | # CONFIG_DVB is not set | 938 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set |
979 | # CONFIG_USB_DABUSB is not set | ||
980 | 939 | ||
981 | # | 940 | # |
982 | # Graphics support | 941 | # Display device support |
983 | # | 942 | # |
984 | CONFIG_FIRMWARE_EDID=y | 943 | # CONFIG_DISPLAY_SUPPORT is not set |
944 | # CONFIG_VGASTATE is not set | ||
985 | # CONFIG_FB is not set | 945 | # CONFIG_FB is not set |
986 | 946 | ||
987 | # | 947 | # |
@@ -989,21 +949,26 @@ CONFIG_FIRMWARE_EDID=y | |||
989 | # | 949 | # |
990 | # CONFIG_VGA_CONSOLE is not set | 950 | # CONFIG_VGA_CONSOLE is not set |
991 | CONFIG_DUMMY_CONSOLE=y | 951 | CONFIG_DUMMY_CONSOLE=y |
992 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
993 | 952 | ||
994 | # | 953 | # |
995 | # Sound | 954 | # Sound |
996 | # | 955 | # |
997 | # CONFIG_SOUND is not set | 956 | # CONFIG_SOUND is not set |
957 | CONFIG_HID_SUPPORT=y | ||
958 | CONFIG_HID=y | ||
959 | # CONFIG_HID_DEBUG is not set | ||
998 | 960 | ||
999 | # | 961 | # |
1000 | # HID Devices | 962 | # USB Input Devices |
1001 | # | 963 | # |
1002 | CONFIG_HID=y | 964 | # CONFIG_USB_HID is not set |
1003 | 965 | ||
1004 | # | 966 | # |
1005 | # USB support | 967 | # USB HID Boot Protocol drivers |
1006 | # | 968 | # |
969 | # CONFIG_USB_KBD is not set | ||
970 | # CONFIG_USB_MOUSE is not set | ||
971 | CONFIG_USB_SUPPORT=y | ||
1007 | CONFIG_USB_ARCH_HAS_HCD=y | 972 | CONFIG_USB_ARCH_HAS_HCD=y |
1008 | CONFIG_USB_ARCH_HAS_OHCI=y | 973 | CONFIG_USB_ARCH_HAS_OHCI=y |
1009 | CONFIG_USB_ARCH_HAS_EHCI=y | 974 | CONFIG_USB_ARCH_HAS_EHCI=y |
@@ -1014,9 +979,8 @@ CONFIG_USB=y | |||
1014 | # Miscellaneous USB options | 979 | # Miscellaneous USB options |
1015 | # | 980 | # |
1016 | # CONFIG_USB_DEVICEFS is not set | 981 | # CONFIG_USB_DEVICEFS is not set |
1017 | # CONFIG_USB_BANDWIDTH is not set | 982 | CONFIG_USB_DEVICE_CLASS=y |
1018 | # CONFIG_USB_DYNAMIC_MINORS is not set | 983 | # CONFIG_USB_DYNAMIC_MINORS is not set |
1019 | # CONFIG_USB_MULTITHREAD_PROBE is not set | ||
1020 | # CONFIG_USB_OTG is not set | 984 | # CONFIG_USB_OTG is not set |
1021 | 985 | ||
1022 | # | 986 | # |
@@ -1030,6 +994,7 @@ CONFIG_USB_EHCI_TT_NEWSCHED=y | |||
1030 | # CONFIG_USB_OHCI_HCD is not set | 994 | # CONFIG_USB_OHCI_HCD is not set |
1031 | CONFIG_USB_UHCI_HCD=y | 995 | CONFIG_USB_UHCI_HCD=y |
1032 | # CONFIG_USB_SL811_HCD is not set | 996 | # CONFIG_USB_SL811_HCD is not set |
997 | # CONFIG_USB_R8A66597_HCD is not set | ||
1033 | 998 | ||
1034 | # | 999 | # |
1035 | # USB Device Class drivers | 1000 | # USB Device Class drivers |
@@ -1058,43 +1023,10 @@ CONFIG_USB_STORAGE=y | |||
1058 | # CONFIG_USB_LIBUSUAL is not set | 1023 | # CONFIG_USB_LIBUSUAL is not set |
1059 | 1024 | ||
1060 | # | 1025 | # |
1061 | # USB Input Devices | ||
1062 | # | ||
1063 | # CONFIG_USB_HID is not set | ||
1064 | |||
1065 | # | ||
1066 | # USB HID Boot Protocol drivers | ||
1067 | # | ||
1068 | # CONFIG_USB_KBD is not set | ||
1069 | # CONFIG_USB_MOUSE is not set | ||
1070 | # CONFIG_USB_AIPTEK is not set | ||
1071 | # CONFIG_USB_WACOM is not set | ||
1072 | # CONFIG_USB_ACECAD is not set | ||
1073 | # CONFIG_USB_KBTAB is not set | ||
1074 | # CONFIG_USB_POWERMATE is not set | ||
1075 | # CONFIG_USB_TOUCHSCREEN is not set | ||
1076 | # CONFIG_USB_YEALINK is not set | ||
1077 | # CONFIG_USB_XPAD is not set | ||
1078 | # CONFIG_USB_ATI_REMOTE is not set | ||
1079 | # CONFIG_USB_ATI_REMOTE2 is not set | ||
1080 | # CONFIG_USB_KEYSPAN_REMOTE is not set | ||
1081 | # CONFIG_USB_APPLETOUCH is not set | ||
1082 | |||
1083 | # | ||
1084 | # USB Imaging devices | 1026 | # USB Imaging devices |
1085 | # | 1027 | # |
1086 | # CONFIG_USB_MDC800 is not set | 1028 | # CONFIG_USB_MDC800 is not set |
1087 | # CONFIG_USB_MICROTEK is not set | 1029 | # CONFIG_USB_MICROTEK is not set |
1088 | |||
1089 | # | ||
1090 | # USB Network Adapters | ||
1091 | # | ||
1092 | # CONFIG_USB_CATC is not set | ||
1093 | # CONFIG_USB_KAWETH is not set | ||
1094 | # CONFIG_USB_PEGASUS is not set | ||
1095 | # CONFIG_USB_RTL8150 is not set | ||
1096 | # CONFIG_USB_USBNET_MII is not set | ||
1097 | # CONFIG_USB_USBNET is not set | ||
1098 | CONFIG_USB_MON=y | 1030 | CONFIG_USB_MON=y |
1099 | 1031 | ||
1100 | # | 1032 | # |
@@ -1116,6 +1048,7 @@ CONFIG_USB_MON=y | |||
1116 | # CONFIG_USB_RIO500 is not set | 1048 | # CONFIG_USB_RIO500 is not set |
1117 | # CONFIG_USB_LEGOTOWER is not set | 1049 | # CONFIG_USB_LEGOTOWER is not set |
1118 | # CONFIG_USB_LCD is not set | 1050 | # CONFIG_USB_LCD is not set |
1051 | # CONFIG_USB_BERRY_CHARGE is not set | ||
1119 | # CONFIG_USB_LED is not set | 1052 | # CONFIG_USB_LED is not set |
1120 | # CONFIG_USB_CYPRESS_CY7C63 is not set | 1053 | # CONFIG_USB_CYPRESS_CY7C63 is not set |
1121 | # CONFIG_USB_CYTHERM is not set | 1054 | # CONFIG_USB_CYTHERM is not set |
@@ -1126,6 +1059,7 @@ CONFIG_USB_MON=y | |||
1126 | # CONFIG_USB_SISUSBVGA is not set | 1059 | # CONFIG_USB_SISUSBVGA is not set |
1127 | # CONFIG_USB_LD is not set | 1060 | # CONFIG_USB_LD is not set |
1128 | # CONFIG_USB_TRANCEVIBRATOR is not set | 1061 | # CONFIG_USB_TRANCEVIBRATOR is not set |
1062 | # CONFIG_USB_IOWARRIOR is not set | ||
1129 | 1063 | ||
1130 | # | 1064 | # |
1131 | # USB DSL modem support | 1065 | # USB DSL modem support |
@@ -1135,10 +1069,6 @@ CONFIG_USB_MON=y | |||
1135 | # USB Gadget Support | 1069 | # USB Gadget Support |
1136 | # | 1070 | # |
1137 | # CONFIG_USB_GADGET is not set | 1071 | # CONFIG_USB_GADGET is not set |
1138 | |||
1139 | # | ||
1140 | # MMC/SD Card support | ||
1141 | # | ||
1142 | # CONFIG_MMC is not set | 1072 | # CONFIG_MMC is not set |
1143 | 1073 | ||
1144 | # | 1074 | # |
@@ -1148,6 +1078,22 @@ CONFIG_RTC_LIB=y | |||
1148 | # CONFIG_RTC_CLASS is not set | 1078 | # CONFIG_RTC_CLASS is not set |
1149 | 1079 | ||
1150 | # | 1080 | # |
1081 | # DMA Engine support | ||
1082 | # | ||
1083 | CONFIG_DMA_ENGINE=y | ||
1084 | |||
1085 | # | ||
1086 | # DMA Clients | ||
1087 | # | ||
1088 | CONFIG_NET_DMA=y | ||
1089 | |||
1090 | # | ||
1091 | # DMA Devices | ||
1092 | # | ||
1093 | # CONFIG_INTEL_IOATDMA is not set | ||
1094 | CONFIG_INTEL_IOP_ADMA=y | ||
1095 | |||
1096 | # | ||
1151 | # File systems | 1097 | # File systems |
1152 | # | 1098 | # |
1153 | CONFIG_EXT2_FS=y | 1099 | CONFIG_EXT2_FS=y |
@@ -1164,11 +1110,7 @@ CONFIG_FS_MBCACHE=y | |||
1164 | # CONFIG_REISERFS_FS is not set | 1110 | # CONFIG_REISERFS_FS is not set |
1165 | # CONFIG_JFS_FS is not set | 1111 | # CONFIG_JFS_FS is not set |
1166 | # CONFIG_FS_POSIX_ACL is not set | 1112 | # CONFIG_FS_POSIX_ACL is not set |
1167 | CONFIG_XFS_FS=y | 1113 | # CONFIG_XFS_FS is not set |
1168 | # CONFIG_XFS_QUOTA is not set | ||
1169 | CONFIG_XFS_SECURITY=y | ||
1170 | CONFIG_XFS_POSIX_ACL=y | ||
1171 | # CONFIG_XFS_RT is not set | ||
1172 | # CONFIG_GFS2_FS is not set | 1114 | # CONFIG_GFS2_FS is not set |
1173 | # CONFIG_OCFS2_FS is not set | 1115 | # CONFIG_OCFS2_FS is not set |
1174 | # CONFIG_MINIX_FS is not set | 1116 | # CONFIG_MINIX_FS is not set |
@@ -1217,7 +1159,6 @@ CONFIG_ECRYPT_FS=y | |||
1217 | # CONFIG_BEFS_FS is not set | 1159 | # CONFIG_BEFS_FS is not set |
1218 | # CONFIG_BFS_FS is not set | 1160 | # CONFIG_BFS_FS is not set |
1219 | # CONFIG_EFS_FS is not set | 1161 | # CONFIG_EFS_FS is not set |
1220 | # CONFIG_JFFS_FS is not set | ||
1221 | CONFIG_JFFS2_FS=y | 1162 | CONFIG_JFFS2_FS=y |
1222 | CONFIG_JFFS2_FS_DEBUG=0 | 1163 | CONFIG_JFFS2_FS_DEBUG=0 |
1223 | CONFIG_JFFS2_FS_WRITEBUFFER=y | 1164 | CONFIG_JFFS2_FS_WRITEBUFFER=y |
@@ -1227,7 +1168,7 @@ CONFIG_JFFS2_FS_WRITEBUFFER=y | |||
1227 | CONFIG_JFFS2_ZLIB=y | 1168 | CONFIG_JFFS2_ZLIB=y |
1228 | CONFIG_JFFS2_RTIME=y | 1169 | CONFIG_JFFS2_RTIME=y |
1229 | # CONFIG_JFFS2_RUBIN is not set | 1170 | # CONFIG_JFFS2_RUBIN is not set |
1230 | # CONFIG_CRAMFS is not set | 1171 | CONFIG_CRAMFS=y |
1231 | # CONFIG_VXFS_FS is not set | 1172 | # CONFIG_VXFS_FS is not set |
1232 | # CONFIG_HPFS_FS is not set | 1173 | # CONFIG_HPFS_FS is not set |
1233 | # CONFIG_QNX4FS_FS is not set | 1174 | # CONFIG_QNX4FS_FS is not set |
@@ -1253,6 +1194,7 @@ CONFIG_LOCKD_V4=y | |||
1253 | CONFIG_EXPORTFS=y | 1194 | CONFIG_EXPORTFS=y |
1254 | CONFIG_NFS_COMMON=y | 1195 | CONFIG_NFS_COMMON=y |
1255 | CONFIG_SUNRPC=y | 1196 | CONFIG_SUNRPC=y |
1197 | # CONFIG_SUNRPC_BIND34 is not set | ||
1256 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 1198 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
1257 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 1199 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
1258 | # CONFIG_SMB_FS is not set | 1200 | # CONFIG_SMB_FS is not set |
@@ -1260,7 +1202,6 @@ CONFIG_SUNRPC=y | |||
1260 | # CONFIG_NCP_FS is not set | 1202 | # CONFIG_NCP_FS is not set |
1261 | # CONFIG_CODA_FS is not set | 1203 | # CONFIG_CODA_FS is not set |
1262 | # CONFIG_AFS_FS is not set | 1204 | # CONFIG_AFS_FS is not set |
1263 | # CONFIG_9P_FS is not set | ||
1264 | 1205 | ||
1265 | # | 1206 | # |
1266 | # Partition Types | 1207 | # Partition Types |
@@ -1282,6 +1223,7 @@ CONFIG_MSDOS_PARTITION=y | |||
1282 | # CONFIG_SUN_PARTITION is not set | 1223 | # CONFIG_SUN_PARTITION is not set |
1283 | # CONFIG_KARMA_PARTITION is not set | 1224 | # CONFIG_KARMA_PARTITION is not set |
1284 | # CONFIG_EFI_PARTITION is not set | 1225 | # CONFIG_EFI_PARTITION is not set |
1226 | # CONFIG_SYSV68_PARTITION is not set | ||
1285 | 1227 | ||
1286 | # | 1228 | # |
1287 | # Native Language Support | 1229 | # Native Language Support |
@@ -1308,15 +1250,19 @@ CONFIG_MAGIC_SYSRQ=y | |||
1308 | # CONFIG_DEBUG_FS is not set | 1250 | # CONFIG_DEBUG_FS is not set |
1309 | # CONFIG_HEADERS_CHECK is not set | 1251 | # CONFIG_HEADERS_CHECK is not set |
1310 | CONFIG_DEBUG_KERNEL=y | 1252 | CONFIG_DEBUG_KERNEL=y |
1311 | CONFIG_LOG_BUF_SHIFT=14 | 1253 | # CONFIG_DEBUG_SHIRQ is not set |
1312 | CONFIG_DETECT_SOFTLOCKUP=y | 1254 | CONFIG_DETECT_SOFTLOCKUP=y |
1255 | CONFIG_SCHED_DEBUG=y | ||
1313 | # CONFIG_SCHEDSTATS is not set | 1256 | # CONFIG_SCHEDSTATS is not set |
1257 | # CONFIG_TIMER_STATS is not set | ||
1314 | # CONFIG_DEBUG_SLAB is not set | 1258 | # CONFIG_DEBUG_SLAB is not set |
1315 | # CONFIG_DEBUG_RT_MUTEXES is not set | 1259 | # CONFIG_DEBUG_RT_MUTEXES is not set |
1316 | # CONFIG_RT_MUTEX_TESTER is not set | 1260 | # CONFIG_RT_MUTEX_TESTER is not set |
1317 | # CONFIG_DEBUG_SPINLOCK is not set | 1261 | # CONFIG_DEBUG_SPINLOCK is not set |
1318 | # CONFIG_DEBUG_MUTEXES is not set | 1262 | # CONFIG_DEBUG_MUTEXES is not set |
1319 | # CONFIG_DEBUG_RWSEMS is not set | 1263 | # CONFIG_DEBUG_LOCK_ALLOC is not set |
1264 | # CONFIG_PROVE_LOCKING is not set | ||
1265 | # CONFIG_LOCK_STAT is not set | ||
1320 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 1266 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
1321 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | 1267 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set |
1322 | # CONFIG_DEBUG_KOBJECT is not set | 1268 | # CONFIG_DEBUG_KOBJECT is not set |
@@ -1327,6 +1273,7 @@ CONFIG_DEBUG_BUGVERBOSE=y | |||
1327 | CONFIG_FRAME_POINTER=y | 1273 | CONFIG_FRAME_POINTER=y |
1328 | # CONFIG_FORCED_INLINING is not set | 1274 | # CONFIG_FORCED_INLINING is not set |
1329 | # CONFIG_RCU_TORTURE_TEST is not set | 1275 | # CONFIG_RCU_TORTURE_TEST is not set |
1276 | # CONFIG_FAULT_INJECTION is not set | ||
1330 | CONFIG_DEBUG_USER=y | 1277 | CONFIG_DEBUG_USER=y |
1331 | # CONFIG_DEBUG_ERRORS is not set | 1278 | # CONFIG_DEBUG_ERRORS is not set |
1332 | CONFIG_DEBUG_LL=y | 1279 | CONFIG_DEBUG_LL=y |
@@ -1338,10 +1285,10 @@ CONFIG_DEBUG_LL=y | |||
1338 | CONFIG_KEYS=y | 1285 | CONFIG_KEYS=y |
1339 | CONFIG_KEYS_DEBUG_PROC_KEYS=y | 1286 | CONFIG_KEYS_DEBUG_PROC_KEYS=y |
1340 | # CONFIG_SECURITY is not set | 1287 | # CONFIG_SECURITY is not set |
1341 | 1288 | CONFIG_XOR_BLOCKS=y | |
1342 | # | 1289 | CONFIG_ASYNC_CORE=y |
1343 | # Cryptographic options | 1290 | CONFIG_ASYNC_MEMCPY=y |
1344 | # | 1291 | CONFIG_ASYNC_XOR=y |
1345 | CONFIG_CRYPTO=y | 1292 | CONFIG_CRYPTO=y |
1346 | CONFIG_CRYPTO_ALGAPI=y | 1293 | CONFIG_CRYPTO_ALGAPI=y |
1347 | CONFIG_CRYPTO_BLKCIPHER=y | 1294 | CONFIG_CRYPTO_BLKCIPHER=y |
@@ -1360,8 +1307,11 @@ CONFIG_CRYPTO_TGR192=y | |||
1360 | CONFIG_CRYPTO_GF128MUL=y | 1307 | CONFIG_CRYPTO_GF128MUL=y |
1361 | CONFIG_CRYPTO_ECB=y | 1308 | CONFIG_CRYPTO_ECB=y |
1362 | CONFIG_CRYPTO_CBC=y | 1309 | CONFIG_CRYPTO_CBC=y |
1310 | CONFIG_CRYPTO_PCBC=m | ||
1363 | CONFIG_CRYPTO_LRW=y | 1311 | CONFIG_CRYPTO_LRW=y |
1312 | # CONFIG_CRYPTO_CRYPTD is not set | ||
1364 | CONFIG_CRYPTO_DES=y | 1313 | CONFIG_CRYPTO_DES=y |
1314 | # CONFIG_CRYPTO_FCRYPT is not set | ||
1365 | CONFIG_CRYPTO_BLOWFISH=y | 1315 | CONFIG_CRYPTO_BLOWFISH=y |
1366 | CONFIG_CRYPTO_TWOFISH=y | 1316 | CONFIG_CRYPTO_TWOFISH=y |
1367 | CONFIG_CRYPTO_TWOFISH_COMMON=y | 1317 | CONFIG_CRYPTO_TWOFISH_COMMON=y |
@@ -1376,11 +1326,9 @@ CONFIG_CRYPTO_ANUBIS=y | |||
1376 | CONFIG_CRYPTO_DEFLATE=y | 1326 | CONFIG_CRYPTO_DEFLATE=y |
1377 | CONFIG_CRYPTO_MICHAEL_MIC=y | 1327 | CONFIG_CRYPTO_MICHAEL_MIC=y |
1378 | CONFIG_CRYPTO_CRC32C=y | 1328 | CONFIG_CRYPTO_CRC32C=y |
1329 | # CONFIG_CRYPTO_CAMELLIA is not set | ||
1379 | # CONFIG_CRYPTO_TEST is not set | 1330 | # CONFIG_CRYPTO_TEST is not set |
1380 | 1331 | CONFIG_CRYPTO_HW=y | |
1381 | # | ||
1382 | # Hardware crypto devices | ||
1383 | # | ||
1384 | 1332 | ||
1385 | # | 1333 | # |
1386 | # Library routines | 1334 | # Library routines |
@@ -1388,9 +1336,13 @@ CONFIG_CRYPTO_CRC32C=y | |||
1388 | CONFIG_BITREVERSE=y | 1336 | CONFIG_BITREVERSE=y |
1389 | # CONFIG_CRC_CCITT is not set | 1337 | # CONFIG_CRC_CCITT is not set |
1390 | # CONFIG_CRC16 is not set | 1338 | # CONFIG_CRC16 is not set |
1339 | # CONFIG_CRC_ITU_T is not set | ||
1391 | CONFIG_CRC32=y | 1340 | CONFIG_CRC32=y |
1341 | # CONFIG_CRC7 is not set | ||
1392 | CONFIG_LIBCRC32C=y | 1342 | CONFIG_LIBCRC32C=y |
1393 | CONFIG_ZLIB_INFLATE=y | 1343 | CONFIG_ZLIB_INFLATE=y |
1394 | CONFIG_ZLIB_DEFLATE=y | 1344 | CONFIG_ZLIB_DEFLATE=y |
1395 | CONFIG_PLIST=y | 1345 | CONFIG_PLIST=y |
1396 | CONFIG_IOMAP_COPY=y | 1346 | CONFIG_HAS_IOMEM=y |
1347 | CONFIG_HAS_IOPORT=y | ||
1348 | CONFIG_HAS_DMA=y | ||
diff --git a/arch/arm/configs/iop33x_defconfig b/arch/arm/configs/iop33x_defconfig index fa271bce8ff7..721ee64a13f7 100644 --- a/arch/arm/configs/iop33x_defconfig +++ b/arch/arm/configs/iop33x_defconfig | |||
@@ -1,12 +1,18 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.20-rc1 | 3 | # Linux kernel version: 2.6.22 |
4 | # Sat Dec 16 06:05:34 2006 | 4 | # Thu Jul 19 16:05:59 2007 |
5 | # | 5 | # |
6 | CONFIG_ARM=y | 6 | CONFIG_ARM=y |
7 | CONFIG_SYS_SUPPORTS_APM_EMULATION=y | ||
8 | # CONFIG_GENERIC_GPIO is not set | ||
7 | # CONFIG_GENERIC_TIME is not set | 9 | # CONFIG_GENERIC_TIME is not set |
10 | # CONFIG_GENERIC_CLOCKEVENTS is not set | ||
8 | CONFIG_MMU=y | 11 | CONFIG_MMU=y |
12 | # CONFIG_NO_IOPORT is not set | ||
9 | CONFIG_GENERIC_HARDIRQS=y | 13 | CONFIG_GENERIC_HARDIRQS=y |
14 | CONFIG_STACKTRACE_SUPPORT=y | ||
15 | CONFIG_LOCKDEP_SUPPORT=y | ||
10 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 16 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
11 | CONFIG_HARDIRQS_SW_RESEND=y | 17 | CONFIG_HARDIRQS_SW_RESEND=y |
12 | CONFIG_GENERIC_IRQ_PROBE=y | 18 | CONFIG_GENERIC_IRQ_PROBE=y |
@@ -15,6 +21,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y | |||
15 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | 21 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set |
16 | CONFIG_GENERIC_HWEIGHT=y | 22 | CONFIG_GENERIC_HWEIGHT=y |
17 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 23 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
24 | CONFIG_ZONE_DMA=y | ||
18 | CONFIG_VECTORS_BASE=0xffff0000 | 25 | CONFIG_VECTORS_BASE=0xffff0000 |
19 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 26 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
20 | 27 | ||
@@ -32,16 +39,18 @@ CONFIG_LOCALVERSION="" | |||
32 | CONFIG_LOCALVERSION_AUTO=y | 39 | CONFIG_LOCALVERSION_AUTO=y |
33 | CONFIG_SWAP=y | 40 | CONFIG_SWAP=y |
34 | CONFIG_SYSVIPC=y | 41 | CONFIG_SYSVIPC=y |
35 | # CONFIG_IPC_NS is not set | 42 | CONFIG_SYSVIPC_SYSCTL=y |
36 | # CONFIG_POSIX_MQUEUE is not set | 43 | # CONFIG_POSIX_MQUEUE is not set |
37 | CONFIG_BSD_PROCESS_ACCT=y | 44 | CONFIG_BSD_PROCESS_ACCT=y |
38 | # CONFIG_BSD_PROCESS_ACCT_V3 is not set | 45 | # CONFIG_BSD_PROCESS_ACCT_V3 is not set |
39 | # CONFIG_TASKSTATS is not set | 46 | # CONFIG_TASKSTATS is not set |
40 | # CONFIG_UTS_NS is not set | 47 | # CONFIG_USER_NS is not set |
41 | # CONFIG_AUDIT is not set | 48 | # CONFIG_AUDIT is not set |
42 | # CONFIG_IKCONFIG is not set | 49 | # CONFIG_IKCONFIG is not set |
50 | CONFIG_LOG_BUF_SHIFT=14 | ||
43 | CONFIG_SYSFS_DEPRECATED=y | 51 | CONFIG_SYSFS_DEPRECATED=y |
44 | # CONFIG_RELAY is not set | 52 | # CONFIG_RELAY is not set |
53 | CONFIG_BLK_DEV_INITRD=y | ||
45 | CONFIG_INITRAMFS_SOURCE="" | 54 | CONFIG_INITRAMFS_SOURCE="" |
46 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | 55 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y |
47 | CONFIG_SYSCTL=y | 56 | CONFIG_SYSCTL=y |
@@ -57,32 +66,30 @@ CONFIG_BUG=y | |||
57 | CONFIG_ELF_CORE=y | 66 | CONFIG_ELF_CORE=y |
58 | CONFIG_BASE_FULL=y | 67 | CONFIG_BASE_FULL=y |
59 | CONFIG_FUTEX=y | 68 | CONFIG_FUTEX=y |
69 | CONFIG_ANON_INODES=y | ||
60 | CONFIG_EPOLL=y | 70 | CONFIG_EPOLL=y |
71 | CONFIG_SIGNALFD=y | ||
72 | CONFIG_TIMERFD=y | ||
73 | CONFIG_EVENTFD=y | ||
61 | CONFIG_SHMEM=y | 74 | CONFIG_SHMEM=y |
62 | CONFIG_SLAB=y | ||
63 | CONFIG_VM_EVENT_COUNTERS=y | 75 | CONFIG_VM_EVENT_COUNTERS=y |
76 | CONFIG_SLAB=y | ||
77 | # CONFIG_SLUB is not set | ||
78 | # CONFIG_SLOB is not set | ||
64 | CONFIG_RT_MUTEXES=y | 79 | CONFIG_RT_MUTEXES=y |
65 | # CONFIG_TINY_SHMEM is not set | 80 | # CONFIG_TINY_SHMEM is not set |
66 | CONFIG_BASE_SMALL=0 | 81 | CONFIG_BASE_SMALL=0 |
67 | # CONFIG_SLOB is not set | ||
68 | |||
69 | # | ||
70 | # Loadable module support | ||
71 | # | ||
72 | CONFIG_MODULES=y | 82 | CONFIG_MODULES=y |
73 | CONFIG_MODULE_UNLOAD=y | 83 | CONFIG_MODULE_UNLOAD=y |
74 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 84 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
75 | # CONFIG_MODVERSIONS is not set | 85 | # CONFIG_MODVERSIONS is not set |
76 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 86 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
77 | CONFIG_KMOD=y | 87 | CONFIG_KMOD=y |
78 | |||
79 | # | ||
80 | # Block layer | ||
81 | # | ||
82 | CONFIG_BLOCK=y | 88 | CONFIG_BLOCK=y |
83 | # CONFIG_LBD is not set | 89 | # CONFIG_LBD is not set |
84 | # CONFIG_BLK_DEV_IO_TRACE is not set | 90 | # CONFIG_BLK_DEV_IO_TRACE is not set |
85 | # CONFIG_LSF is not set | 91 | # CONFIG_LSF is not set |
92 | # CONFIG_BLK_DEV_BSG is not set | ||
86 | 93 | ||
87 | # | 94 | # |
88 | # IO Schedulers | 95 | # IO Schedulers |
@@ -114,13 +121,15 @@ CONFIG_DEFAULT_IOSCHED="cfq" | |||
114 | # CONFIG_ARCH_NETX is not set | 121 | # CONFIG_ARCH_NETX is not set |
115 | # CONFIG_ARCH_H720X is not set | 122 | # CONFIG_ARCH_H720X is not set |
116 | # CONFIG_ARCH_IMX is not set | 123 | # CONFIG_ARCH_IMX is not set |
124 | # CONFIG_ARCH_IOP13XX is not set | ||
117 | # CONFIG_ARCH_IOP32X is not set | 125 | # CONFIG_ARCH_IOP32X is not set |
118 | CONFIG_ARCH_IOP33X=y | 126 | CONFIG_ARCH_IOP33X=y |
119 | # CONFIG_ARCH_IOP13XX is not set | ||
120 | # CONFIG_ARCH_IXP4XX is not set | ||
121 | # CONFIG_ARCH_IXP2000 is not set | ||
122 | # CONFIG_ARCH_IXP23XX is not set | 127 | # CONFIG_ARCH_IXP23XX is not set |
128 | # CONFIG_ARCH_IXP2000 is not set | ||
129 | # CONFIG_ARCH_IXP4XX is not set | ||
123 | # CONFIG_ARCH_L7200 is not set | 130 | # CONFIG_ARCH_L7200 is not set |
131 | # CONFIG_ARCH_KS8695 is not set | ||
132 | # CONFIG_ARCH_NS9XXX is not set | ||
124 | # CONFIG_ARCH_PNX4008 is not set | 133 | # CONFIG_ARCH_PNX4008 is not set |
125 | # CONFIG_ARCH_PXA is not set | 134 | # CONFIG_ARCH_PXA is not set |
126 | # CONFIG_ARCH_RPC is not set | 135 | # CONFIG_ARCH_RPC is not set |
@@ -128,7 +137,9 @@ CONFIG_ARCH_IOP33X=y | |||
128 | # CONFIG_ARCH_S3C2410 is not set | 137 | # CONFIG_ARCH_S3C2410 is not set |
129 | # CONFIG_ARCH_SHARK is not set | 138 | # CONFIG_ARCH_SHARK is not set |
130 | # CONFIG_ARCH_LH7A40X is not set | 139 | # CONFIG_ARCH_LH7A40X is not set |
140 | # CONFIG_ARCH_DAVINCI is not set | ||
131 | # CONFIG_ARCH_OMAP is not set | 141 | # CONFIG_ARCH_OMAP is not set |
142 | CONFIG_IOP3XX_ATU=y | ||
132 | 143 | ||
133 | # | 144 | # |
134 | # IOP33x Implementation Options | 145 | # IOP33x Implementation Options |
@@ -158,6 +169,7 @@ CONFIG_CPU_CP15_MMU=y | |||
158 | # | 169 | # |
159 | # CONFIG_ARM_THUMB is not set | 170 | # CONFIG_ARM_THUMB is not set |
160 | # CONFIG_CPU_DCACHE_DISABLE is not set | 171 | # CONFIG_CPU_DCACHE_DISABLE is not set |
172 | # CONFIG_OUTER_CACHE is not set | ||
161 | # CONFIG_IWMMXT is not set | 173 | # CONFIG_IWMMXT is not set |
162 | CONFIG_XSCALE_PMU=y | 174 | CONFIG_XSCALE_PMU=y |
163 | 175 | ||
@@ -165,7 +177,8 @@ CONFIG_XSCALE_PMU=y | |||
165 | # Bus support | 177 | # Bus support |
166 | # | 178 | # |
167 | CONFIG_PCI=y | 179 | CONFIG_PCI=y |
168 | # CONFIG_PCI_MULTITHREAD_PROBE is not set | 180 | CONFIG_PCI_SYSCALL=y |
181 | # CONFIG_ARCH_SUPPORTS_MSI is not set | ||
169 | # CONFIG_PCI_DEBUG is not set | 182 | # CONFIG_PCI_DEBUG is not set |
170 | 183 | ||
171 | # | 184 | # |
@@ -176,6 +189,7 @@ CONFIG_PCI=y | |||
176 | # | 189 | # |
177 | # Kernel Features | 190 | # Kernel Features |
178 | # | 191 | # |
192 | # CONFIG_TICK_ONESHOT is not set | ||
179 | # CONFIG_PREEMPT is not set | 193 | # CONFIG_PREEMPT is not set |
180 | # CONFIG_NO_IDLE_HZ is not set | 194 | # CONFIG_NO_IDLE_HZ is not set |
181 | CONFIG_HZ=100 | 195 | CONFIG_HZ=100 |
@@ -190,6 +204,9 @@ CONFIG_FLAT_NODE_MEM_MAP=y | |||
190 | # CONFIG_SPARSEMEM_STATIC is not set | 204 | # CONFIG_SPARSEMEM_STATIC is not set |
191 | CONFIG_SPLIT_PTLOCK_CPUS=4096 | 205 | CONFIG_SPLIT_PTLOCK_CPUS=4096 |
192 | # CONFIG_RESOURCES_64BIT is not set | 206 | # CONFIG_RESOURCES_64BIT is not set |
207 | CONFIG_ZONE_DMA_FLAG=1 | ||
208 | CONFIG_BOUNCE=y | ||
209 | CONFIG_VIRT_TO_BUS=y | ||
193 | CONFIG_ALIGNMENT_TRAP=y | 210 | CONFIG_ALIGNMENT_TRAP=y |
194 | 211 | ||
195 | # | 212 | # |
@@ -197,8 +214,9 @@ CONFIG_ALIGNMENT_TRAP=y | |||
197 | # | 214 | # |
198 | CONFIG_ZBOOT_ROM_TEXT=0x0 | 215 | CONFIG_ZBOOT_ROM_TEXT=0x0 |
199 | CONFIG_ZBOOT_ROM_BSS=0x0 | 216 | CONFIG_ZBOOT_ROM_BSS=0x0 |
200 | CONFIG_CMDLINE="console=ttyS0,115200 root=/dev/nfs ip=bootp" | 217 | CONFIG_CMDLINE="console=ttyS0,115200 root=/dev/nfs ip=bootp cachepolicy=writealloc" |
201 | # CONFIG_XIP_KERNEL is not set | 218 | # CONFIG_XIP_KERNEL is not set |
219 | # CONFIG_KEXEC is not set | ||
202 | 220 | ||
203 | # | 221 | # |
204 | # Floating point emulation | 222 | # Floating point emulation |
@@ -223,7 +241,6 @@ CONFIG_BINFMT_AOUT=y | |||
223 | # Power management options | 241 | # Power management options |
224 | # | 242 | # |
225 | # CONFIG_PM is not set | 243 | # CONFIG_PM is not set |
226 | # CONFIG_APM is not set | ||
227 | 244 | ||
228 | # | 245 | # |
229 | # Networking | 246 | # Networking |
@@ -233,13 +250,13 @@ CONFIG_NET=y | |||
233 | # | 250 | # |
234 | # Networking options | 251 | # Networking options |
235 | # | 252 | # |
236 | # CONFIG_NETDEBUG is not set | ||
237 | CONFIG_PACKET=y | 253 | CONFIG_PACKET=y |
238 | CONFIG_PACKET_MMAP=y | 254 | CONFIG_PACKET_MMAP=y |
239 | CONFIG_UNIX=y | 255 | CONFIG_UNIX=y |
240 | CONFIG_XFRM=y | 256 | CONFIG_XFRM=y |
241 | # CONFIG_XFRM_USER is not set | 257 | # CONFIG_XFRM_USER is not set |
242 | # CONFIG_XFRM_SUB_POLICY is not set | 258 | # CONFIG_XFRM_SUB_POLICY is not set |
259 | # CONFIG_XFRM_MIGRATE is not set | ||
243 | # CONFIG_NET_KEY is not set | 260 | # CONFIG_NET_KEY is not set |
244 | CONFIG_INET=y | 261 | CONFIG_INET=y |
245 | CONFIG_IP_MULTICAST=y | 262 | CONFIG_IP_MULTICAST=y |
@@ -271,6 +288,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
271 | CONFIG_IPV6=y | 288 | CONFIG_IPV6=y |
272 | # CONFIG_IPV6_PRIVACY is not set | 289 | # CONFIG_IPV6_PRIVACY is not set |
273 | # CONFIG_IPV6_ROUTER_PREF is not set | 290 | # CONFIG_IPV6_ROUTER_PREF is not set |
291 | # CONFIG_IPV6_OPTIMISTIC_DAD is not set | ||
274 | # CONFIG_INET6_AH is not set | 292 | # CONFIG_INET6_AH is not set |
275 | # CONFIG_INET6_ESP is not set | 293 | # CONFIG_INET6_ESP is not set |
276 | # CONFIG_INET6_IPCOMP is not set | 294 | # CONFIG_INET6_IPCOMP is not set |
@@ -286,20 +304,8 @@ CONFIG_IPV6=y | |||
286 | # CONFIG_IPV6_MULTIPLE_TABLES is not set | 304 | # CONFIG_IPV6_MULTIPLE_TABLES is not set |
287 | # CONFIG_NETWORK_SECMARK is not set | 305 | # CONFIG_NETWORK_SECMARK is not set |
288 | # CONFIG_NETFILTER is not set | 306 | # CONFIG_NETFILTER is not set |
289 | |||
290 | # | ||
291 | # DCCP Configuration (EXPERIMENTAL) | ||
292 | # | ||
293 | # CONFIG_IP_DCCP is not set | 307 | # CONFIG_IP_DCCP is not set |
294 | |||
295 | # | ||
296 | # SCTP Configuration (EXPERIMENTAL) | ||
297 | # | ||
298 | # CONFIG_IP_SCTP is not set | 308 | # CONFIG_IP_SCTP is not set |
299 | |||
300 | # | ||
301 | # TIPC Configuration (EXPERIMENTAL) | ||
302 | # | ||
303 | # CONFIG_TIPC is not set | 309 | # CONFIG_TIPC is not set |
304 | # CONFIG_ATM is not set | 310 | # CONFIG_ATM is not set |
305 | # CONFIG_BRIDGE is not set | 311 | # CONFIG_BRIDGE is not set |
@@ -325,7 +331,17 @@ CONFIG_IPV6=y | |||
325 | # CONFIG_HAMRADIO is not set | 331 | # CONFIG_HAMRADIO is not set |
326 | # CONFIG_IRDA is not set | 332 | # CONFIG_IRDA is not set |
327 | # CONFIG_BT is not set | 333 | # CONFIG_BT is not set |
334 | # CONFIG_AF_RXRPC is not set | ||
335 | |||
336 | # | ||
337 | # Wireless | ||
338 | # | ||
339 | # CONFIG_CFG80211 is not set | ||
340 | # CONFIG_WIRELESS_EXT is not set | ||
341 | # CONFIG_MAC80211 is not set | ||
328 | # CONFIG_IEEE80211 is not set | 342 | # CONFIG_IEEE80211 is not set |
343 | # CONFIG_RFKILL is not set | ||
344 | # CONFIG_NET_9P is not set | ||
329 | 345 | ||
330 | # | 346 | # |
331 | # Device Drivers | 347 | # Device Drivers |
@@ -338,16 +354,9 @@ CONFIG_STANDALONE=y | |||
338 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 354 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
339 | # CONFIG_FW_LOADER is not set | 355 | # CONFIG_FW_LOADER is not set |
340 | # CONFIG_DEBUG_DRIVER is not set | 356 | # CONFIG_DEBUG_DRIVER is not set |
357 | # CONFIG_DEBUG_DEVRES is not set | ||
341 | # CONFIG_SYS_HYPERVISOR is not set | 358 | # CONFIG_SYS_HYPERVISOR is not set |
342 | |||
343 | # | ||
344 | # Connector - unified userspace <-> kernelspace linker | ||
345 | # | ||
346 | # CONFIG_CONNECTOR is not set | 359 | # CONFIG_CONNECTOR is not set |
347 | |||
348 | # | ||
349 | # Memory Technology Devices (MTD) | ||
350 | # | ||
351 | CONFIG_MTD=y | 360 | CONFIG_MTD=y |
352 | # CONFIG_MTD_DEBUG is not set | 361 | # CONFIG_MTD_DEBUG is not set |
353 | # CONFIG_MTD_CONCAT is not set | 362 | # CONFIG_MTD_CONCAT is not set |
@@ -363,6 +372,7 @@ CONFIG_MTD_REDBOOT_PARTS_READONLY=y | |||
363 | # User Modules And Translation Layers | 372 | # User Modules And Translation Layers |
364 | # | 373 | # |
365 | CONFIG_MTD_CHAR=y | 374 | CONFIG_MTD_CHAR=y |
375 | CONFIG_MTD_BLKDEVS=y | ||
366 | CONFIG_MTD_BLOCK=y | 376 | CONFIG_MTD_BLOCK=y |
367 | # CONFIG_FTL is not set | 377 | # CONFIG_FTL is not set |
368 | # CONFIG_NFTL is not set | 378 | # CONFIG_NFTL is not set |
@@ -399,7 +409,6 @@ CONFIG_MTD_CFI_UTIL=y | |||
399 | # CONFIG_MTD_RAM is not set | 409 | # CONFIG_MTD_RAM is not set |
400 | # CONFIG_MTD_ROM is not set | 410 | # CONFIG_MTD_ROM is not set |
401 | # CONFIG_MTD_ABSENT is not set | 411 | # CONFIG_MTD_ABSENT is not set |
402 | # CONFIG_MTD_OBSOLETE_CHIPS is not set | ||
403 | 412 | ||
404 | # | 413 | # |
405 | # Mapping drivers for chip access | 414 | # Mapping drivers for chip access |
@@ -427,29 +436,15 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=1 | |||
427 | # CONFIG_MTD_DOC2000 is not set | 436 | # CONFIG_MTD_DOC2000 is not set |
428 | # CONFIG_MTD_DOC2001 is not set | 437 | # CONFIG_MTD_DOC2001 is not set |
429 | # CONFIG_MTD_DOC2001PLUS is not set | 438 | # CONFIG_MTD_DOC2001PLUS is not set |
430 | |||
431 | # | ||
432 | # NAND Flash Device Drivers | ||
433 | # | ||
434 | # CONFIG_MTD_NAND is not set | 439 | # CONFIG_MTD_NAND is not set |
435 | |||
436 | # | ||
437 | # OneNAND Flash Device Drivers | ||
438 | # | ||
439 | # CONFIG_MTD_ONENAND is not set | 440 | # CONFIG_MTD_ONENAND is not set |
440 | 441 | ||
441 | # | 442 | # |
442 | # Parallel port support | 443 | # UBI - Unsorted block images |
443 | # | 444 | # |
445 | # CONFIG_MTD_UBI is not set | ||
444 | # CONFIG_PARPORT is not set | 446 | # CONFIG_PARPORT is not set |
445 | 447 | CONFIG_BLK_DEV=y | |
446 | # | ||
447 | # Plug and Play support | ||
448 | # | ||
449 | |||
450 | # | ||
451 | # Block devices | ||
452 | # | ||
453 | # CONFIG_BLK_CPQ_DA is not set | 448 | # CONFIG_BLK_CPQ_DA is not set |
454 | # CONFIG_BLK_CPQ_CISS_DA is not set | 449 | # CONFIG_BLK_CPQ_CISS_DA is not set |
455 | # CONFIG_BLK_DEV_DAC960 is not set | 450 | # CONFIG_BLK_DEV_DAC960 is not set |
@@ -462,13 +457,8 @@ CONFIG_BLK_DEV_RAM=y | |||
462 | CONFIG_BLK_DEV_RAM_COUNT=16 | 457 | CONFIG_BLK_DEV_RAM_COUNT=16 |
463 | CONFIG_BLK_DEV_RAM_SIZE=8192 | 458 | CONFIG_BLK_DEV_RAM_SIZE=8192 |
464 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | 459 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 |
465 | CONFIG_BLK_DEV_INITRD=y | ||
466 | # CONFIG_CDROM_PKTCDVD is not set | 460 | # CONFIG_CDROM_PKTCDVD is not set |
467 | # CONFIG_ATA_OVER_ETH is not set | 461 | # CONFIG_ATA_OVER_ETH is not set |
468 | |||
469 | # | ||
470 | # ATA/ATAPI/MFM/RLL support | ||
471 | # | ||
472 | # CONFIG_IDE is not set | 462 | # CONFIG_IDE is not set |
473 | 463 | ||
474 | # | 464 | # |
@@ -476,6 +466,7 @@ CONFIG_BLK_DEV_INITRD=y | |||
476 | # | 466 | # |
477 | # CONFIG_RAID_ATTRS is not set | 467 | # CONFIG_RAID_ATTRS is not set |
478 | CONFIG_SCSI=y | 468 | CONFIG_SCSI=y |
469 | CONFIG_SCSI_DMA=y | ||
479 | # CONFIG_SCSI_TGT is not set | 470 | # CONFIG_SCSI_TGT is not set |
480 | # CONFIG_SCSI_NETLINK is not set | 471 | # CONFIG_SCSI_NETLINK is not set |
481 | CONFIG_SCSI_PROC_FS=y | 472 | CONFIG_SCSI_PROC_FS=y |
@@ -497,6 +488,7 @@ CONFIG_CHR_DEV_SG=y | |||
497 | # CONFIG_SCSI_CONSTANTS is not set | 488 | # CONFIG_SCSI_CONSTANTS is not set |
498 | # CONFIG_SCSI_LOGGING is not set | 489 | # CONFIG_SCSI_LOGGING is not set |
499 | # CONFIG_SCSI_SCAN_ASYNC is not set | 490 | # CONFIG_SCSI_SCAN_ASYNC is not set |
491 | CONFIG_SCSI_WAIT_SCAN=m | ||
500 | 492 | ||
501 | # | 493 | # |
502 | # SCSI Transports | 494 | # SCSI Transports |
@@ -541,22 +533,15 @@ CONFIG_CHR_DEV_SG=y | |||
541 | # CONFIG_SCSI_NSP32 is not set | 533 | # CONFIG_SCSI_NSP32 is not set |
542 | # CONFIG_SCSI_DEBUG is not set | 534 | # CONFIG_SCSI_DEBUG is not set |
543 | # CONFIG_SCSI_SRP is not set | 535 | # CONFIG_SCSI_SRP is not set |
544 | |||
545 | # | ||
546 | # Serial ATA (prod) and Parallel ATA (experimental) drivers | ||
547 | # | ||
548 | # CONFIG_ATA is not set | 536 | # CONFIG_ATA is not set |
549 | |||
550 | # | ||
551 | # Multi-device support (RAID and LVM) | ||
552 | # | ||
553 | CONFIG_MD=y | 537 | CONFIG_MD=y |
554 | CONFIG_BLK_DEV_MD=y | 538 | CONFIG_BLK_DEV_MD=y |
555 | CONFIG_MD_LINEAR=y | 539 | CONFIG_MD_LINEAR=y |
556 | CONFIG_MD_RAID0=y | 540 | CONFIG_MD_RAID0=y |
557 | CONFIG_MD_RAID1=y | 541 | CONFIG_MD_RAID1=y |
558 | # CONFIG_MD_RAID10 is not set | 542 | # CONFIG_MD_RAID10 is not set |
559 | # CONFIG_MD_RAID456 is not set | 543 | CONFIG_MD_RAID456=y |
544 | # CONFIG_MD_RAID5_RESHAPE is not set | ||
560 | # CONFIG_MD_MULTIPATH is not set | 545 | # CONFIG_MD_MULTIPATH is not set |
561 | # CONFIG_MD_FAULTY is not set | 546 | # CONFIG_MD_FAULTY is not set |
562 | CONFIG_BLK_DEV_DM=y | 547 | CONFIG_BLK_DEV_DM=y |
@@ -566,6 +551,7 @@ CONFIG_BLK_DEV_DM=y | |||
566 | # CONFIG_DM_MIRROR is not set | 551 | # CONFIG_DM_MIRROR is not set |
567 | # CONFIG_DM_ZERO is not set | 552 | # CONFIG_DM_ZERO is not set |
568 | # CONFIG_DM_MULTIPATH is not set | 553 | # CONFIG_DM_MULTIPATH is not set |
554 | # CONFIG_DM_DELAY is not set | ||
569 | 555 | ||
570 | # | 556 | # |
571 | # Fusion MPT device support | 557 | # Fusion MPT device support |
@@ -578,39 +564,19 @@ CONFIG_BLK_DEV_DM=y | |||
578 | # | 564 | # |
579 | # IEEE 1394 (FireWire) support | 565 | # IEEE 1394 (FireWire) support |
580 | # | 566 | # |
567 | # CONFIG_FIREWIRE is not set | ||
581 | # CONFIG_IEEE1394 is not set | 568 | # CONFIG_IEEE1394 is not set |
582 | |||
583 | # | ||
584 | # I2O device support | ||
585 | # | ||
586 | # CONFIG_I2O is not set | 569 | # CONFIG_I2O is not set |
587 | |||
588 | # | ||
589 | # Network device support | ||
590 | # | ||
591 | CONFIG_NETDEVICES=y | 570 | CONFIG_NETDEVICES=y |
571 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
592 | # CONFIG_DUMMY is not set | 572 | # CONFIG_DUMMY is not set |
593 | # CONFIG_BONDING is not set | 573 | # CONFIG_BONDING is not set |
574 | # CONFIG_MACVLAN is not set | ||
594 | # CONFIG_EQUALIZER is not set | 575 | # CONFIG_EQUALIZER is not set |
595 | # CONFIG_TUN is not set | 576 | # CONFIG_TUN is not set |
596 | |||
597 | # | ||
598 | # ARCnet devices | ||
599 | # | ||
600 | # CONFIG_ARCNET is not set | 577 | # CONFIG_ARCNET is not set |
601 | |||
602 | # | ||
603 | # PHY device support | ||
604 | # | ||
605 | |||
606 | # | ||
607 | # Ethernet (10 or 100Mbit) | ||
608 | # | ||
609 | # CONFIG_NET_ETHERNET is not set | 578 | # CONFIG_NET_ETHERNET is not set |
610 | 579 | CONFIG_NETDEV_1000=y | |
611 | # | ||
612 | # Ethernet (1000 Mbit) | ||
613 | # | ||
614 | # CONFIG_ACENIC is not set | 580 | # CONFIG_ACENIC is not set |
615 | # CONFIG_DL2K is not set | 581 | # CONFIG_DL2K is not set |
616 | CONFIG_E1000=y | 582 | CONFIG_E1000=y |
@@ -623,33 +589,26 @@ CONFIG_E1000_NAPI=y | |||
623 | # CONFIG_SIS190 is not set | 589 | # CONFIG_SIS190 is not set |
624 | # CONFIG_SKGE is not set | 590 | # CONFIG_SKGE is not set |
625 | # CONFIG_SKY2 is not set | 591 | # CONFIG_SKY2 is not set |
626 | # CONFIG_SK98LIN is not set | 592 | # CONFIG_VIA_VELOCITY is not set |
627 | # CONFIG_TIGON3 is not set | 593 | # CONFIG_TIGON3 is not set |
628 | # CONFIG_BNX2 is not set | 594 | # CONFIG_BNX2 is not set |
629 | # CONFIG_QLA3XXX is not set | 595 | # CONFIG_QLA3XXX is not set |
630 | 596 | # CONFIG_ATL1 is not set | |
631 | # | 597 | CONFIG_NETDEV_10000=y |
632 | # Ethernet (10000 Mbit) | ||
633 | # | ||
634 | # CONFIG_CHELSIO_T1 is not set | 598 | # CONFIG_CHELSIO_T1 is not set |
599 | # CONFIG_CHELSIO_T3 is not set | ||
635 | # CONFIG_IXGB is not set | 600 | # CONFIG_IXGB is not set |
636 | # CONFIG_S2IO is not set | 601 | # CONFIG_S2IO is not set |
637 | # CONFIG_MYRI10GE is not set | 602 | # CONFIG_MYRI10GE is not set |
638 | # CONFIG_NETXEN_NIC is not set | 603 | # CONFIG_NETXEN_NIC is not set |
639 | 604 | # CONFIG_MLX4_CORE is not set | |
640 | # | ||
641 | # Token Ring devices | ||
642 | # | ||
643 | # CONFIG_TR is not set | 605 | # CONFIG_TR is not set |
644 | 606 | ||
645 | # | 607 | # |
646 | # Wireless LAN (non-hamradio) | 608 | # Wireless LAN |
647 | # | ||
648 | # CONFIG_NET_RADIO is not set | ||
649 | |||
650 | # | ||
651 | # Wan interfaces | ||
652 | # | 609 | # |
610 | # CONFIG_WLAN_PRE80211 is not set | ||
611 | # CONFIG_WLAN_80211 is not set | ||
653 | # CONFIG_WAN is not set | 612 | # CONFIG_WAN is not set |
654 | # CONFIG_FDDI is not set | 613 | # CONFIG_FDDI is not set |
655 | # CONFIG_HIPPI is not set | 614 | # CONFIG_HIPPI is not set |
@@ -660,10 +619,6 @@ CONFIG_E1000_NAPI=y | |||
660 | # CONFIG_NETCONSOLE is not set | 619 | # CONFIG_NETCONSOLE is not set |
661 | # CONFIG_NETPOLL is not set | 620 | # CONFIG_NETPOLL is not set |
662 | # CONFIG_NET_POLL_CONTROLLER is not set | 621 | # CONFIG_NET_POLL_CONTROLLER is not set |
663 | |||
664 | # | ||
665 | # ISDN subsystem | ||
666 | # | ||
667 | # CONFIG_ISDN is not set | 622 | # CONFIG_ISDN is not set |
668 | 623 | ||
669 | # | 624 | # |
@@ -671,6 +626,7 @@ CONFIG_E1000_NAPI=y | |||
671 | # | 626 | # |
672 | CONFIG_INPUT=y | 627 | CONFIG_INPUT=y |
673 | # CONFIG_INPUT_FF_MEMLESS is not set | 628 | # CONFIG_INPUT_FF_MEMLESS is not set |
629 | # CONFIG_INPUT_POLLDEV is not set | ||
674 | 630 | ||
675 | # | 631 | # |
676 | # Userland interfaces | 632 | # Userland interfaces |
@@ -690,6 +646,7 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | |||
690 | # CONFIG_INPUT_KEYBOARD is not set | 646 | # CONFIG_INPUT_KEYBOARD is not set |
691 | # CONFIG_INPUT_MOUSE is not set | 647 | # CONFIG_INPUT_MOUSE is not set |
692 | # CONFIG_INPUT_JOYSTICK is not set | 648 | # CONFIG_INPUT_JOYSTICK is not set |
649 | # CONFIG_INPUT_TABLET is not set | ||
693 | # CONFIG_INPUT_TOUCHSCREEN is not set | 650 | # CONFIG_INPUT_TOUCHSCREEN is not set |
694 | # CONFIG_INPUT_MISC is not set | 651 | # CONFIG_INPUT_MISC is not set |
695 | 652 | ||
@@ -727,33 +684,18 @@ CONFIG_SERIAL_CORE_CONSOLE=y | |||
727 | CONFIG_UNIX98_PTYS=y | 684 | CONFIG_UNIX98_PTYS=y |
728 | CONFIG_LEGACY_PTYS=y | 685 | CONFIG_LEGACY_PTYS=y |
729 | CONFIG_LEGACY_PTY_COUNT=256 | 686 | CONFIG_LEGACY_PTY_COUNT=256 |
730 | |||
731 | # | ||
732 | # IPMI | ||
733 | # | ||
734 | # CONFIG_IPMI_HANDLER is not set | 687 | # CONFIG_IPMI_HANDLER is not set |
735 | |||
736 | # | ||
737 | # Watchdog Cards | ||
738 | # | ||
739 | # CONFIG_WATCHDOG is not set | 688 | # CONFIG_WATCHDOG is not set |
740 | CONFIG_HW_RANDOM=y | 689 | CONFIG_HW_RANDOM=y |
741 | # CONFIG_NVRAM is not set | 690 | # CONFIG_NVRAM is not set |
742 | # CONFIG_DTLK is not set | ||
743 | # CONFIG_R3964 is not set | 691 | # CONFIG_R3964 is not set |
744 | # CONFIG_APPLICOM is not set | 692 | # CONFIG_APPLICOM is not set |
745 | # CONFIG_DRM is not set | 693 | # CONFIG_DRM is not set |
746 | # CONFIG_RAW_DRIVER is not set | 694 | # CONFIG_RAW_DRIVER is not set |
747 | |||
748 | # | ||
749 | # TPM devices | ||
750 | # | ||
751 | # CONFIG_TCG_TPM is not set | 695 | # CONFIG_TCG_TPM is not set |
752 | 696 | CONFIG_DEVPORT=y | |
753 | # | ||
754 | # I2C support | ||
755 | # | ||
756 | CONFIG_I2C=y | 697 | CONFIG_I2C=y |
698 | CONFIG_I2C_BOARDINFO=y | ||
757 | CONFIG_I2C_CHARDEV=y | 699 | CONFIG_I2C_CHARDEV=y |
758 | 700 | ||
759 | # | 701 | # |
@@ -780,25 +722,28 @@ CONFIG_I2C_IOP3XX=y | |||
780 | # CONFIG_I2C_PARPORT_LIGHT is not set | 722 | # CONFIG_I2C_PARPORT_LIGHT is not set |
781 | # CONFIG_I2C_PROSAVAGE is not set | 723 | # CONFIG_I2C_PROSAVAGE is not set |
782 | # CONFIG_I2C_SAVAGE4 is not set | 724 | # CONFIG_I2C_SAVAGE4 is not set |
725 | # CONFIG_I2C_SIMTEC is not set | ||
783 | # CONFIG_I2C_SIS5595 is not set | 726 | # CONFIG_I2C_SIS5595 is not set |
784 | # CONFIG_I2C_SIS630 is not set | 727 | # CONFIG_I2C_SIS630 is not set |
785 | # CONFIG_I2C_SIS96X is not set | 728 | # CONFIG_I2C_SIS96X is not set |
729 | # CONFIG_I2C_TAOS_EVM is not set | ||
786 | # CONFIG_I2C_STUB is not set | 730 | # CONFIG_I2C_STUB is not set |
787 | # CONFIG_I2C_VIA is not set | 731 | # CONFIG_I2C_VIA is not set |
788 | # CONFIG_I2C_VIAPRO is not set | 732 | # CONFIG_I2C_VIAPRO is not set |
789 | # CONFIG_I2C_VOODOO3 is not set | 733 | # CONFIG_I2C_VOODOO3 is not set |
790 | # CONFIG_I2C_PCA_ISA is not set | ||
791 | 734 | ||
792 | # | 735 | # |
793 | # Miscellaneous I2C Chip support | 736 | # Miscellaneous I2C Chip support |
794 | # | 737 | # |
795 | # CONFIG_SENSORS_DS1337 is not set | 738 | # CONFIG_SENSORS_DS1337 is not set |
796 | # CONFIG_SENSORS_DS1374 is not set | 739 | # CONFIG_SENSORS_DS1374 is not set |
740 | # CONFIG_DS1682 is not set | ||
797 | # CONFIG_SENSORS_EEPROM is not set | 741 | # CONFIG_SENSORS_EEPROM is not set |
798 | # CONFIG_SENSORS_PCF8574 is not set | 742 | # CONFIG_SENSORS_PCF8574 is not set |
799 | # CONFIG_SENSORS_PCA9539 is not set | 743 | # CONFIG_SENSORS_PCA9539 is not set |
800 | # CONFIG_SENSORS_PCF8591 is not set | 744 | # CONFIG_SENSORS_PCF8591 is not set |
801 | # CONFIG_SENSORS_MAX6875 is not set | 745 | # CONFIG_SENSORS_MAX6875 is not set |
746 | # CONFIG_SENSORS_TSL2550 is not set | ||
802 | # CONFIG_I2C_DEBUG_CORE is not set | 747 | # CONFIG_I2C_DEBUG_CORE is not set |
803 | # CONFIG_I2C_DEBUG_ALGO is not set | 748 | # CONFIG_I2C_DEBUG_ALGO is not set |
804 | # CONFIG_I2C_DEBUG_BUS is not set | 749 | # CONFIG_I2C_DEBUG_BUS is not set |
@@ -809,21 +754,15 @@ CONFIG_I2C_IOP3XX=y | |||
809 | # | 754 | # |
810 | # CONFIG_SPI is not set | 755 | # CONFIG_SPI is not set |
811 | # CONFIG_SPI_MASTER is not set | 756 | # CONFIG_SPI_MASTER is not set |
812 | |||
813 | # | ||
814 | # Dallas's 1-wire bus | ||
815 | # | ||
816 | # CONFIG_W1 is not set | 757 | # CONFIG_W1 is not set |
817 | |||
818 | # | ||
819 | # Hardware Monitoring support | ||
820 | # | ||
821 | CONFIG_HWMON=y | 758 | CONFIG_HWMON=y |
822 | # CONFIG_HWMON_VID is not set | 759 | # CONFIG_HWMON_VID is not set |
823 | # CONFIG_SENSORS_ABITUGURU is not set | 760 | # CONFIG_SENSORS_ABITUGURU is not set |
761 | # CONFIG_SENSORS_AD7418 is not set | ||
824 | # CONFIG_SENSORS_ADM1021 is not set | 762 | # CONFIG_SENSORS_ADM1021 is not set |
825 | # CONFIG_SENSORS_ADM1025 is not set | 763 | # CONFIG_SENSORS_ADM1025 is not set |
826 | # CONFIG_SENSORS_ADM1026 is not set | 764 | # CONFIG_SENSORS_ADM1026 is not set |
765 | # CONFIG_SENSORS_ADM1029 is not set | ||
827 | # CONFIG_SENSORS_ADM1031 is not set | 766 | # CONFIG_SENSORS_ADM1031 is not set |
828 | # CONFIG_SENSORS_ADM9240 is not set | 767 | # CONFIG_SENSORS_ADM9240 is not set |
829 | # CONFIG_SENSORS_ASB100 is not set | 768 | # CONFIG_SENSORS_ASB100 is not set |
@@ -846,6 +785,7 @@ CONFIG_HWMON=y | |||
846 | # CONFIG_SENSORS_LM90 is not set | 785 | # CONFIG_SENSORS_LM90 is not set |
847 | # CONFIG_SENSORS_LM92 is not set | 786 | # CONFIG_SENSORS_LM92 is not set |
848 | # CONFIG_SENSORS_MAX1619 is not set | 787 | # CONFIG_SENSORS_MAX1619 is not set |
788 | # CONFIG_SENSORS_MAX6650 is not set | ||
849 | # CONFIG_SENSORS_PC87360 is not set | 789 | # CONFIG_SENSORS_PC87360 is not set |
850 | # CONFIG_SENSORS_PC87427 is not set | 790 | # CONFIG_SENSORS_PC87427 is not set |
851 | # CONFIG_SENSORS_SIS5595 is not set | 791 | # CONFIG_SENSORS_SIS5595 is not set |
@@ -863,12 +803,16 @@ CONFIG_HWMON=y | |||
863 | # CONFIG_SENSORS_W83627HF is not set | 803 | # CONFIG_SENSORS_W83627HF is not set |
864 | # CONFIG_SENSORS_W83627EHF is not set | 804 | # CONFIG_SENSORS_W83627EHF is not set |
865 | # CONFIG_HWMON_DEBUG_CHIP is not set | 805 | # CONFIG_HWMON_DEBUG_CHIP is not set |
806 | CONFIG_MISC_DEVICES=y | ||
807 | # CONFIG_PHANTOM is not set | ||
808 | # CONFIG_EEPROM_93CX6 is not set | ||
809 | # CONFIG_SGI_IOC4 is not set | ||
810 | # CONFIG_TIFM_CORE is not set | ||
866 | 811 | ||
867 | # | 812 | # |
868 | # Misc devices | 813 | # Multifunction device drivers |
869 | # | 814 | # |
870 | # CONFIG_SGI_IOC4 is not set | 815 | # CONFIG_MFD_SM501 is not set |
871 | # CONFIG_TIFM_CORE is not set | ||
872 | 816 | ||
873 | # | 817 | # |
874 | # LED devices | 818 | # LED devices |
@@ -887,16 +831,19 @@ CONFIG_HWMON=y | |||
887 | # Multimedia devices | 831 | # Multimedia devices |
888 | # | 832 | # |
889 | # CONFIG_VIDEO_DEV is not set | 833 | # CONFIG_VIDEO_DEV is not set |
834 | # CONFIG_DVB_CORE is not set | ||
835 | CONFIG_DAB=y | ||
890 | 836 | ||
891 | # | 837 | # |
892 | # Digital Video Broadcasting Devices | 838 | # Graphics support |
893 | # | 839 | # |
894 | # CONFIG_DVB is not set | 840 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set |
895 | 841 | ||
896 | # | 842 | # |
897 | # Graphics support | 843 | # Display device support |
898 | # | 844 | # |
899 | CONFIG_FIRMWARE_EDID=y | 845 | # CONFIG_DISPLAY_SUPPORT is not set |
846 | # CONFIG_VGASTATE is not set | ||
900 | # CONFIG_FB is not set | 847 | # CONFIG_FB is not set |
901 | 848 | ||
902 | # | 849 | # |
@@ -904,21 +851,15 @@ CONFIG_FIRMWARE_EDID=y | |||
904 | # | 851 | # |
905 | # CONFIG_VGA_CONSOLE is not set | 852 | # CONFIG_VGA_CONSOLE is not set |
906 | CONFIG_DUMMY_CONSOLE=y | 853 | CONFIG_DUMMY_CONSOLE=y |
907 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
908 | 854 | ||
909 | # | 855 | # |
910 | # Sound | 856 | # Sound |
911 | # | 857 | # |
912 | # CONFIG_SOUND is not set | 858 | # CONFIG_SOUND is not set |
913 | 859 | CONFIG_HID_SUPPORT=y | |
914 | # | ||
915 | # HID Devices | ||
916 | # | ||
917 | CONFIG_HID=y | 860 | CONFIG_HID=y |
918 | 861 | # CONFIG_HID_DEBUG is not set | |
919 | # | 862 | CONFIG_USB_SUPPORT=y |
920 | # USB support | ||
921 | # | ||
922 | CONFIG_USB_ARCH_HAS_HCD=y | 863 | CONFIG_USB_ARCH_HAS_HCD=y |
923 | CONFIG_USB_ARCH_HAS_OHCI=y | 864 | CONFIG_USB_ARCH_HAS_OHCI=y |
924 | CONFIG_USB_ARCH_HAS_EHCI=y | 865 | CONFIG_USB_ARCH_HAS_EHCI=y |
@@ -932,10 +873,6 @@ CONFIG_USB_ARCH_HAS_EHCI=y | |||
932 | # USB Gadget Support | 873 | # USB Gadget Support |
933 | # | 874 | # |
934 | # CONFIG_USB_GADGET is not set | 875 | # CONFIG_USB_GADGET is not set |
935 | |||
936 | # | ||
937 | # MMC/SD Card support | ||
938 | # | ||
939 | # CONFIG_MMC is not set | 876 | # CONFIG_MMC is not set |
940 | 877 | ||
941 | # | 878 | # |
@@ -945,6 +882,22 @@ CONFIG_RTC_LIB=y | |||
945 | # CONFIG_RTC_CLASS is not set | 882 | # CONFIG_RTC_CLASS is not set |
946 | 883 | ||
947 | # | 884 | # |
885 | # DMA Engine support | ||
886 | # | ||
887 | CONFIG_DMA_ENGINE=y | ||
888 | |||
889 | # | ||
890 | # DMA Clients | ||
891 | # | ||
892 | CONFIG_NET_DMA=y | ||
893 | |||
894 | # | ||
895 | # DMA Devices | ||
896 | # | ||
897 | # CONFIG_INTEL_IOATDMA is not set | ||
898 | CONFIG_INTEL_IOP_ADMA=y | ||
899 | |||
900 | # | ||
948 | # File systems | 901 | # File systems |
949 | # | 902 | # |
950 | CONFIG_EXT2_FS=y | 903 | CONFIG_EXT2_FS=y |
@@ -961,11 +914,7 @@ CONFIG_FS_MBCACHE=y | |||
961 | # CONFIG_REISERFS_FS is not set | 914 | # CONFIG_REISERFS_FS is not set |
962 | # CONFIG_JFS_FS is not set | 915 | # CONFIG_JFS_FS is not set |
963 | # CONFIG_FS_POSIX_ACL is not set | 916 | # CONFIG_FS_POSIX_ACL is not set |
964 | CONFIG_XFS_FS=y | 917 | # CONFIG_XFS_FS is not set |
965 | # CONFIG_XFS_QUOTA is not set | ||
966 | CONFIG_XFS_SECURITY=y | ||
967 | CONFIG_XFS_POSIX_ACL=y | ||
968 | # CONFIG_XFS_RT is not set | ||
969 | # CONFIG_GFS2_FS is not set | 918 | # CONFIG_GFS2_FS is not set |
970 | # CONFIG_OCFS2_FS is not set | 919 | # CONFIG_OCFS2_FS is not set |
971 | # CONFIG_MINIX_FS is not set | 920 | # CONFIG_MINIX_FS is not set |
@@ -1013,9 +962,8 @@ CONFIG_RAMFS=y | |||
1013 | # CONFIG_BEFS_FS is not set | 962 | # CONFIG_BEFS_FS is not set |
1014 | # CONFIG_BFS_FS is not set | 963 | # CONFIG_BFS_FS is not set |
1015 | # CONFIG_EFS_FS is not set | 964 | # CONFIG_EFS_FS is not set |
1016 | # CONFIG_JFFS_FS is not set | ||
1017 | # CONFIG_JFFS2_FS is not set | 965 | # CONFIG_JFFS2_FS is not set |
1018 | # CONFIG_CRAMFS is not set | 966 | CONFIG_CRAMFS=y |
1019 | # CONFIG_VXFS_FS is not set | 967 | # CONFIG_VXFS_FS is not set |
1020 | # CONFIG_HPFS_FS is not set | 968 | # CONFIG_HPFS_FS is not set |
1021 | # CONFIG_QNX4FS_FS is not set | 969 | # CONFIG_QNX4FS_FS is not set |
@@ -1041,6 +989,7 @@ CONFIG_LOCKD_V4=y | |||
1041 | CONFIG_EXPORTFS=y | 989 | CONFIG_EXPORTFS=y |
1042 | CONFIG_NFS_COMMON=y | 990 | CONFIG_NFS_COMMON=y |
1043 | CONFIG_SUNRPC=y | 991 | CONFIG_SUNRPC=y |
992 | # CONFIG_SUNRPC_BIND34 is not set | ||
1044 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 993 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
1045 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 994 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
1046 | # CONFIG_SMB_FS is not set | 995 | # CONFIG_SMB_FS is not set |
@@ -1048,7 +997,6 @@ CONFIG_SUNRPC=y | |||
1048 | # CONFIG_NCP_FS is not set | 997 | # CONFIG_NCP_FS is not set |
1049 | # CONFIG_CODA_FS is not set | 998 | # CONFIG_CODA_FS is not set |
1050 | # CONFIG_AFS_FS is not set | 999 | # CONFIG_AFS_FS is not set |
1051 | # CONFIG_9P_FS is not set | ||
1052 | 1000 | ||
1053 | # | 1001 | # |
1054 | # Partition Types | 1002 | # Partition Types |
@@ -1070,6 +1018,7 @@ CONFIG_MSDOS_PARTITION=y | |||
1070 | # CONFIG_SUN_PARTITION is not set | 1018 | # CONFIG_SUN_PARTITION is not set |
1071 | # CONFIG_KARMA_PARTITION is not set | 1019 | # CONFIG_KARMA_PARTITION is not set |
1072 | # CONFIG_EFI_PARTITION is not set | 1020 | # CONFIG_EFI_PARTITION is not set |
1021 | # CONFIG_SYSV68_PARTITION is not set | ||
1073 | 1022 | ||
1074 | # | 1023 | # |
1075 | # Native Language Support | 1024 | # Native Language Support |
@@ -1096,15 +1045,19 @@ CONFIG_MAGIC_SYSRQ=y | |||
1096 | # CONFIG_DEBUG_FS is not set | 1045 | # CONFIG_DEBUG_FS is not set |
1097 | # CONFIG_HEADERS_CHECK is not set | 1046 | # CONFIG_HEADERS_CHECK is not set |
1098 | CONFIG_DEBUG_KERNEL=y | 1047 | CONFIG_DEBUG_KERNEL=y |
1099 | CONFIG_LOG_BUF_SHIFT=14 | 1048 | # CONFIG_DEBUG_SHIRQ is not set |
1100 | CONFIG_DETECT_SOFTLOCKUP=y | 1049 | CONFIG_DETECT_SOFTLOCKUP=y |
1050 | CONFIG_SCHED_DEBUG=y | ||
1101 | # CONFIG_SCHEDSTATS is not set | 1051 | # CONFIG_SCHEDSTATS is not set |
1052 | # CONFIG_TIMER_STATS is not set | ||
1102 | # CONFIG_DEBUG_SLAB is not set | 1053 | # CONFIG_DEBUG_SLAB is not set |
1103 | # CONFIG_DEBUG_RT_MUTEXES is not set | 1054 | # CONFIG_DEBUG_RT_MUTEXES is not set |
1104 | # CONFIG_RT_MUTEX_TESTER is not set | 1055 | # CONFIG_RT_MUTEX_TESTER is not set |
1105 | # CONFIG_DEBUG_SPINLOCK is not set | 1056 | # CONFIG_DEBUG_SPINLOCK is not set |
1106 | # CONFIG_DEBUG_MUTEXES is not set | 1057 | # CONFIG_DEBUG_MUTEXES is not set |
1107 | # CONFIG_DEBUG_RWSEMS is not set | 1058 | # CONFIG_DEBUG_LOCK_ALLOC is not set |
1059 | # CONFIG_PROVE_LOCKING is not set | ||
1060 | # CONFIG_LOCK_STAT is not set | ||
1108 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 1061 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
1109 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | 1062 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set |
1110 | # CONFIG_DEBUG_KOBJECT is not set | 1063 | # CONFIG_DEBUG_KOBJECT is not set |
@@ -1115,6 +1068,7 @@ CONFIG_DEBUG_BUGVERBOSE=y | |||
1115 | CONFIG_FRAME_POINTER=y | 1068 | CONFIG_FRAME_POINTER=y |
1116 | # CONFIG_FORCED_INLINING is not set | 1069 | # CONFIG_FORCED_INLINING is not set |
1117 | # CONFIG_RCU_TORTURE_TEST is not set | 1070 | # CONFIG_RCU_TORTURE_TEST is not set |
1071 | # CONFIG_FAULT_INJECTION is not set | ||
1118 | CONFIG_DEBUG_USER=y | 1072 | CONFIG_DEBUG_USER=y |
1119 | # CONFIG_DEBUG_ERRORS is not set | 1073 | # CONFIG_DEBUG_ERRORS is not set |
1120 | CONFIG_DEBUG_LL=y | 1074 | CONFIG_DEBUG_LL=y |
@@ -1125,10 +1079,10 @@ CONFIG_DEBUG_LL=y | |||
1125 | # | 1079 | # |
1126 | # CONFIG_KEYS is not set | 1080 | # CONFIG_KEYS is not set |
1127 | # CONFIG_SECURITY is not set | 1081 | # CONFIG_SECURITY is not set |
1128 | 1082 | CONFIG_XOR_BLOCKS=y | |
1129 | # | 1083 | CONFIG_ASYNC_CORE=y |
1130 | # Cryptographic options | 1084 | CONFIG_ASYNC_MEMCPY=y |
1131 | # | 1085 | CONFIG_ASYNC_XOR=y |
1132 | # CONFIG_CRYPTO is not set | 1086 | # CONFIG_CRYPTO is not set |
1133 | 1087 | ||
1134 | # | 1088 | # |
@@ -1136,7 +1090,12 @@ CONFIG_DEBUG_LL=y | |||
1136 | # | 1090 | # |
1137 | # CONFIG_CRC_CCITT is not set | 1091 | # CONFIG_CRC_CCITT is not set |
1138 | # CONFIG_CRC16 is not set | 1092 | # CONFIG_CRC16 is not set |
1093 | # CONFIG_CRC_ITU_T is not set | ||
1139 | # CONFIG_CRC32 is not set | 1094 | # CONFIG_CRC32 is not set |
1095 | # CONFIG_CRC7 is not set | ||
1140 | # CONFIG_LIBCRC32C is not set | 1096 | # CONFIG_LIBCRC32C is not set |
1097 | CONFIG_ZLIB_INFLATE=y | ||
1141 | CONFIG_PLIST=y | 1098 | CONFIG_PLIST=y |
1142 | CONFIG_IOMAP_COPY=y | 1099 | CONFIG_HAS_IOMEM=y |
1100 | CONFIG_HAS_IOPORT=y | ||
1101 | CONFIG_HAS_DMA=y | ||
diff --git a/arch/arm/configs/rpc_defconfig b/arch/arm/configs/rpc_defconfig index 8452dc8c7cc3..5ddecb9ddf01 100644 --- a/arch/arm/configs/rpc_defconfig +++ b/arch/arm/configs/rpc_defconfig | |||
@@ -1,87 +1,150 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.11 | 3 | # Linux kernel version: 2.6.23-rc2 |
4 | # Wed Mar 9 14:41:48 2005 | 4 | # Mon Aug 6 16:47:24 2007 |
5 | # | 5 | # |
6 | CONFIG_ARM=y | 6 | CONFIG_ARM=y |
7 | CONFIG_SYS_SUPPORTS_APM_EMULATION=y | ||
8 | # CONFIG_GENERIC_GPIO is not set | ||
9 | # CONFIG_GENERIC_TIME is not set | ||
10 | # CONFIG_GENERIC_CLOCKEVENTS is not set | ||
7 | CONFIG_MMU=y | 11 | CONFIG_MMU=y |
8 | CONFIG_UID16=y | 12 | CONFIG_NO_IOPORT=y |
13 | CONFIG_GENERIC_HARDIRQS=y | ||
14 | CONFIG_STACKTRACE_SUPPORT=y | ||
15 | CONFIG_LOCKDEP_SUPPORT=y | ||
16 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | ||
17 | CONFIG_HARDIRQS_SW_RESEND=y | ||
18 | CONFIG_GENERIC_IRQ_PROBE=y | ||
9 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 19 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
20 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | ||
21 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | ||
22 | CONFIG_GENERIC_HWEIGHT=y | ||
10 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 23 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
11 | CONFIG_GENERIC_IOMAP=y | 24 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y |
25 | CONFIG_ZONE_DMA=y | ||
12 | CONFIG_FIQ=y | 26 | CONFIG_FIQ=y |
27 | CONFIG_VECTORS_BASE=0xffff0000 | ||
28 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | ||
13 | 29 | ||
14 | # | 30 | # |
15 | # Code maturity level options | 31 | # General setup |
16 | # | 32 | # |
17 | CONFIG_EXPERIMENTAL=y | 33 | CONFIG_EXPERIMENTAL=y |
18 | CONFIG_CLEAN_COMPILE=y | ||
19 | CONFIG_BROKEN_ON_SMP=y | 34 | CONFIG_BROKEN_ON_SMP=y |
20 | 35 | CONFIG_INIT_ENV_ARG_LIMIT=32 | |
21 | # | ||
22 | # General setup | ||
23 | # | ||
24 | CONFIG_LOCALVERSION="" | 36 | CONFIG_LOCALVERSION="" |
37 | # CONFIG_LOCALVERSION_AUTO is not set | ||
25 | CONFIG_SWAP=y | 38 | CONFIG_SWAP=y |
26 | CONFIG_SYSVIPC=y | 39 | CONFIG_SYSVIPC=y |
40 | CONFIG_SYSVIPC_SYSCTL=y | ||
27 | # CONFIG_POSIX_MQUEUE is not set | 41 | # CONFIG_POSIX_MQUEUE is not set |
28 | # CONFIG_BSD_PROCESS_ACCT is not set | 42 | # CONFIG_BSD_PROCESS_ACCT is not set |
29 | CONFIG_SYSCTL=y | 43 | # CONFIG_TASKSTATS is not set |
44 | # CONFIG_USER_NS is not set | ||
30 | # CONFIG_AUDIT is not set | 45 | # CONFIG_AUDIT is not set |
31 | CONFIG_LOG_BUF_SHIFT=14 | ||
32 | # CONFIG_HOTPLUG is not set | ||
33 | CONFIG_KOBJECT_UEVENT=y | ||
34 | # CONFIG_IKCONFIG is not set | 46 | # CONFIG_IKCONFIG is not set |
47 | CONFIG_LOG_BUF_SHIFT=14 | ||
48 | CONFIG_SYSFS_DEPRECATED=y | ||
49 | # CONFIG_RELAY is not set | ||
50 | CONFIG_BLK_DEV_INITRD=y | ||
51 | CONFIG_INITRAMFS_SOURCE="" | ||
52 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | ||
53 | CONFIG_SYSCTL=y | ||
35 | # CONFIG_EMBEDDED is not set | 54 | # CONFIG_EMBEDDED is not set |
55 | CONFIG_UID16=y | ||
56 | CONFIG_SYSCTL_SYSCALL=y | ||
36 | CONFIG_KALLSYMS=y | 57 | CONFIG_KALLSYMS=y |
37 | # CONFIG_KALLSYMS_ALL is not set | 58 | # CONFIG_KALLSYMS_ALL is not set |
38 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | 59 | # CONFIG_KALLSYMS_EXTRA_PASS is not set |
60 | CONFIG_HOTPLUG=y | ||
61 | CONFIG_PRINTK=y | ||
62 | CONFIG_BUG=y | ||
63 | CONFIG_ELF_CORE=y | ||
39 | CONFIG_BASE_FULL=y | 64 | CONFIG_BASE_FULL=y |
40 | CONFIG_FUTEX=y | 65 | CONFIG_FUTEX=y |
66 | CONFIG_ANON_INODES=y | ||
41 | CONFIG_EPOLL=y | 67 | CONFIG_EPOLL=y |
42 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | 68 | CONFIG_SIGNALFD=y |
69 | CONFIG_TIMERFD=y | ||
70 | CONFIG_EVENTFD=y | ||
43 | CONFIG_SHMEM=y | 71 | CONFIG_SHMEM=y |
44 | CONFIG_CC_ALIGN_FUNCTIONS=0 | 72 | CONFIG_VM_EVENT_COUNTERS=y |
45 | CONFIG_CC_ALIGN_LABELS=0 | 73 | CONFIG_SLAB=y |
46 | CONFIG_CC_ALIGN_LOOPS=0 | 74 | # CONFIG_SLUB is not set |
47 | CONFIG_CC_ALIGN_JUMPS=0 | 75 | # CONFIG_SLOB is not set |
76 | CONFIG_RT_MUTEXES=y | ||
48 | # CONFIG_TINY_SHMEM is not set | 77 | # CONFIG_TINY_SHMEM is not set |
49 | CONFIG_BASE_SMALL=0 | 78 | CONFIG_BASE_SMALL=0 |
50 | |||
51 | # | ||
52 | # Loadable module support | ||
53 | # | ||
54 | CONFIG_MODULES=y | 79 | CONFIG_MODULES=y |
55 | CONFIG_MODULE_UNLOAD=y | 80 | CONFIG_MODULE_UNLOAD=y |
56 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 81 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
57 | CONFIG_OBSOLETE_MODPARM=y | ||
58 | # CONFIG_MODVERSIONS is not set | 82 | # CONFIG_MODVERSIONS is not set |
59 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 83 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
60 | CONFIG_KMOD=y | 84 | CONFIG_KMOD=y |
85 | CONFIG_BLOCK=y | ||
86 | # CONFIG_LBD is not set | ||
87 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
88 | # CONFIG_LSF is not set | ||
89 | # CONFIG_BLK_DEV_BSG is not set | ||
90 | |||
91 | # | ||
92 | # IO Schedulers | ||
93 | # | ||
94 | CONFIG_IOSCHED_NOOP=y | ||
95 | CONFIG_IOSCHED_AS=y | ||
96 | CONFIG_IOSCHED_DEADLINE=y | ||
97 | CONFIG_IOSCHED_CFQ=y | ||
98 | # CONFIG_DEFAULT_AS is not set | ||
99 | # CONFIG_DEFAULT_DEADLINE is not set | ||
100 | CONFIG_DEFAULT_CFQ=y | ||
101 | # CONFIG_DEFAULT_NOOP is not set | ||
102 | CONFIG_DEFAULT_IOSCHED="cfq" | ||
61 | 103 | ||
62 | # | 104 | # |
63 | # System Type | 105 | # System Type |
64 | # | 106 | # |
107 | # CONFIG_ARCH_AAEC2000 is not set | ||
108 | # CONFIG_ARCH_INTEGRATOR is not set | ||
109 | # CONFIG_ARCH_REALVIEW is not set | ||
110 | # CONFIG_ARCH_VERSATILE is not set | ||
111 | # CONFIG_ARCH_AT91 is not set | ||
65 | # CONFIG_ARCH_CLPS7500 is not set | 112 | # CONFIG_ARCH_CLPS7500 is not set |
66 | # CONFIG_ARCH_CLPS711X is not set | 113 | # CONFIG_ARCH_CLPS711X is not set |
67 | # CONFIG_ARCH_CO285 is not set | 114 | # CONFIG_ARCH_CO285 is not set |
68 | # CONFIG_ARCH_EBSA110 is not set | 115 | # CONFIG_ARCH_EBSA110 is not set |
116 | # CONFIG_ARCH_EP93XX is not set | ||
69 | # CONFIG_ARCH_FOOTBRIDGE is not set | 117 | # CONFIG_ARCH_FOOTBRIDGE is not set |
70 | # CONFIG_ARCH_INTEGRATOR is not set | 118 | # CONFIG_ARCH_NETX is not set |
71 | # CONFIG_ARCH_IOP3XX is not set | 119 | # CONFIG_ARCH_H720X is not set |
72 | # CONFIG_ARCH_IXP4XX is not set | 120 | # CONFIG_ARCH_IMX is not set |
121 | # CONFIG_ARCH_IOP13XX is not set | ||
122 | # CONFIG_ARCH_IOP32X is not set | ||
123 | # CONFIG_ARCH_IOP33X is not set | ||
124 | # CONFIG_ARCH_IXP23XX is not set | ||
73 | # CONFIG_ARCH_IXP2000 is not set | 125 | # CONFIG_ARCH_IXP2000 is not set |
126 | # CONFIG_ARCH_IXP4XX is not set | ||
74 | # CONFIG_ARCH_L7200 is not set | 127 | # CONFIG_ARCH_L7200 is not set |
128 | # CONFIG_ARCH_KS8695 is not set | ||
129 | # CONFIG_ARCH_NS9XXX is not set | ||
130 | # CONFIG_ARCH_MXC is not set | ||
131 | # CONFIG_ARCH_PNX4008 is not set | ||
75 | # CONFIG_ARCH_PXA is not set | 132 | # CONFIG_ARCH_PXA is not set |
76 | CONFIG_ARCH_RPC=y | 133 | CONFIG_ARCH_RPC=y |
77 | # CONFIG_ARCH_SA1100 is not set | 134 | # CONFIG_ARCH_SA1100 is not set |
78 | # CONFIG_ARCH_S3C2410 is not set | 135 | # CONFIG_ARCH_S3C2410 is not set |
79 | # CONFIG_ARCH_SHARK is not set | 136 | # CONFIG_ARCH_SHARK is not set |
80 | # CONFIG_ARCH_LH7A40X is not set | 137 | # CONFIG_ARCH_LH7A40X is not set |
138 | # CONFIG_ARCH_DAVINCI is not set | ||
81 | # CONFIG_ARCH_OMAP is not set | 139 | # CONFIG_ARCH_OMAP is not set |
82 | # CONFIG_ARCH_VERSATILE is not set | 140 | |
83 | # CONFIG_ARCH_IMX is not set | 141 | # |
84 | # CONFIG_ARCH_H720X is not set | 142 | # Boot options |
143 | # | ||
144 | |||
145 | # | ||
146 | # Power management | ||
147 | # | ||
85 | CONFIG_ARCH_ACORN=y | 148 | CONFIG_ARCH_ACORN=y |
86 | 149 | ||
87 | # | 150 | # |
@@ -100,15 +163,22 @@ CONFIG_CPU_COPY_V3=y | |||
100 | CONFIG_CPU_COPY_V4WB=y | 163 | CONFIG_CPU_COPY_V4WB=y |
101 | CONFIG_CPU_TLB_V3=y | 164 | CONFIG_CPU_TLB_V3=y |
102 | CONFIG_CPU_TLB_V4WB=y | 165 | CONFIG_CPU_TLB_V4WB=y |
166 | CONFIG_CPU_CP15=y | ||
167 | CONFIG_CPU_CP15_MMU=y | ||
103 | 168 | ||
104 | # | 169 | # |
105 | # Processor Features | 170 | # Processor Features |
106 | # | 171 | # |
172 | # CONFIG_CPU_DCACHE_DISABLE is not set | ||
173 | # CONFIG_OUTER_CACHE is not set | ||
107 | CONFIG_TIMER_ACORN=y | 174 | CONFIG_TIMER_ACORN=y |
108 | 175 | ||
109 | # | 176 | # |
110 | # Bus support | 177 | # Bus support |
111 | # | 178 | # |
179 | CONFIG_ISA_DMA_API=y | ||
180 | # CONFIG_PCI_SYSCALL is not set | ||
181 | # CONFIG_ARCH_SUPPORTS_MSI is not set | ||
112 | 182 | ||
113 | # | 183 | # |
114 | # PCCARD (PCMCIA/CardBus) support | 184 | # PCCARD (PCMCIA/CardBus) support |
@@ -116,13 +186,26 @@ CONFIG_TIMER_ACORN=y | |||
116 | # CONFIG_PCCARD is not set | 186 | # CONFIG_PCCARD is not set |
117 | 187 | ||
118 | # | 188 | # |
119 | # PC-card bridges | ||
120 | # | ||
121 | |||
122 | # | ||
123 | # Kernel Features | 189 | # Kernel Features |
124 | # | 190 | # |
191 | # CONFIG_TICK_ONESHOT is not set | ||
125 | # CONFIG_PREEMPT is not set | 192 | # CONFIG_PREEMPT is not set |
193 | # CONFIG_NO_IDLE_HZ is not set | ||
194 | CONFIG_HZ=100 | ||
195 | # CONFIG_AEABI is not set | ||
196 | # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set | ||
197 | CONFIG_SELECT_MEMORY_MODEL=y | ||
198 | CONFIG_FLATMEM_MANUAL=y | ||
199 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
200 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
201 | CONFIG_FLATMEM=y | ||
202 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
203 | # CONFIG_SPARSEMEM_STATIC is not set | ||
204 | CONFIG_SPLIT_PTLOCK_CPUS=4096 | ||
205 | # CONFIG_RESOURCES_64BIT is not set | ||
206 | CONFIG_ZONE_DMA_FLAG=1 | ||
207 | CONFIG_BOUNCE=y | ||
208 | CONFIG_VIRT_TO_BUS=y | ||
126 | CONFIG_ALIGNMENT_TRAP=y | 209 | CONFIG_ALIGNMENT_TRAP=y |
127 | 210 | ||
128 | # | 211 | # |
@@ -132,6 +215,7 @@ CONFIG_ZBOOT_ROM_TEXT=0x0 | |||
132 | CONFIG_ZBOOT_ROM_BSS=0x0 | 215 | CONFIG_ZBOOT_ROM_BSS=0x0 |
133 | CONFIG_CMDLINE="" | 216 | CONFIG_CMDLINE="" |
134 | # CONFIG_XIP_KERNEL is not set | 217 | # CONFIG_XIP_KERNEL is not set |
218 | # CONFIG_KEXEC is not set | ||
135 | 219 | ||
136 | # | 220 | # |
137 | # Floating point emulation | 221 | # Floating point emulation |
@@ -157,41 +241,122 @@ CONFIG_BINFMT_AOUT=y | |||
157 | # CONFIG_PM is not set | 241 | # CONFIG_PM is not set |
158 | 242 | ||
159 | # | 243 | # |
160 | # Device Drivers | 244 | # Networking |
161 | # | 245 | # |
246 | CONFIG_NET=y | ||
162 | 247 | ||
163 | # | 248 | # |
164 | # Generic Driver Options | 249 | # Networking options |
165 | # | 250 | # |
166 | CONFIG_STANDALONE=y | 251 | CONFIG_PACKET=y |
167 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 252 | CONFIG_PACKET_MMAP=y |
168 | # CONFIG_FW_LOADER is not set | 253 | CONFIG_UNIX=y |
169 | # CONFIG_DEBUG_DRIVER is not set | 254 | # CONFIG_NET_KEY is not set |
255 | CONFIG_INET=y | ||
256 | CONFIG_IP_MULTICAST=y | ||
257 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
258 | CONFIG_IP_FIB_HASH=y | ||
259 | # CONFIG_IP_PNP is not set | ||
260 | # CONFIG_NET_IPIP is not set | ||
261 | # CONFIG_NET_IPGRE is not set | ||
262 | # CONFIG_IP_MROUTE is not set | ||
263 | # CONFIG_ARPD is not set | ||
264 | # CONFIG_SYN_COOKIES is not set | ||
265 | # CONFIG_INET_AH is not set | ||
266 | # CONFIG_INET_ESP is not set | ||
267 | # CONFIG_INET_IPCOMP is not set | ||
268 | # CONFIG_INET_XFRM_TUNNEL is not set | ||
269 | CONFIG_INET_TUNNEL=m | ||
270 | # CONFIG_INET_XFRM_MODE_TRANSPORT is not set | ||
271 | # CONFIG_INET_XFRM_MODE_TUNNEL is not set | ||
272 | # CONFIG_INET_XFRM_MODE_BEET is not set | ||
273 | CONFIG_INET_DIAG=y | ||
274 | CONFIG_INET_TCP_DIAG=y | ||
275 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
276 | CONFIG_TCP_CONG_CUBIC=y | ||
277 | CONFIG_DEFAULT_TCP_CONG="cubic" | ||
278 | # CONFIG_TCP_MD5SIG is not set | ||
279 | CONFIG_IPV6=m | ||
280 | # CONFIG_IPV6_PRIVACY is not set | ||
281 | # CONFIG_IPV6_ROUTER_PREF is not set | ||
282 | # CONFIG_IPV6_OPTIMISTIC_DAD is not set | ||
283 | # CONFIG_INET6_AH is not set | ||
284 | # CONFIG_INET6_ESP is not set | ||
285 | # CONFIG_INET6_IPCOMP is not set | ||
286 | # CONFIG_IPV6_MIP6 is not set | ||
287 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
288 | # CONFIG_INET6_TUNNEL is not set | ||
289 | # CONFIG_INET6_XFRM_MODE_TRANSPORT is not set | ||
290 | # CONFIG_INET6_XFRM_MODE_TUNNEL is not set | ||
291 | # CONFIG_INET6_XFRM_MODE_BEET is not set | ||
292 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set | ||
293 | CONFIG_IPV6_SIT=m | ||
294 | # CONFIG_IPV6_TUNNEL is not set | ||
295 | # CONFIG_IPV6_MULTIPLE_TABLES is not set | ||
296 | # CONFIG_NETWORK_SECMARK is not set | ||
297 | # CONFIG_NETFILTER is not set | ||
298 | # CONFIG_IP_DCCP is not set | ||
299 | # CONFIG_IP_SCTP is not set | ||
300 | # CONFIG_TIPC is not set | ||
301 | # CONFIG_ATM is not set | ||
302 | # CONFIG_BRIDGE is not set | ||
303 | # CONFIG_VLAN_8021Q is not set | ||
304 | # CONFIG_DECNET is not set | ||
305 | # CONFIG_LLC2 is not set | ||
306 | # CONFIG_IPX is not set | ||
307 | # CONFIG_ATALK is not set | ||
308 | # CONFIG_X25 is not set | ||
309 | # CONFIG_LAPB is not set | ||
310 | # CONFIG_ECONET is not set | ||
311 | # CONFIG_WAN_ROUTER is not set | ||
170 | 312 | ||
171 | # | 313 | # |
172 | # Memory Technology Devices (MTD) | 314 | # QoS and/or fair queueing |
173 | # | 315 | # |
174 | # CONFIG_MTD is not set | 316 | # CONFIG_NET_SCHED is not set |
175 | 317 | ||
176 | # | 318 | # |
177 | # Parallel port support | 319 | # Network testing |
178 | # | 320 | # |
179 | CONFIG_PARPORT=y | 321 | # CONFIG_NET_PKTGEN is not set |
180 | CONFIG_PARPORT_PC=y | 322 | # CONFIG_HAMRADIO is not set |
181 | CONFIG_PARPORT_PC_CML1=y | 323 | # CONFIG_IRDA is not set |
182 | CONFIG_PARPORT_PC_FIFO=y | 324 | # CONFIG_BT is not set |
183 | # CONFIG_PARPORT_PC_SUPERIO is not set | 325 | # CONFIG_AF_RXRPC is not set |
184 | # CONFIG_PARPORT_ARC is not set | 326 | |
185 | # CONFIG_PARPORT_OTHER is not set | 327 | # |
186 | # CONFIG_PARPORT_1284 is not set | 328 | # Wireless |
329 | # | ||
330 | # CONFIG_CFG80211 is not set | ||
331 | # CONFIG_WIRELESS_EXT is not set | ||
332 | # CONFIG_MAC80211 is not set | ||
333 | # CONFIG_IEEE80211 is not set | ||
334 | # CONFIG_RFKILL is not set | ||
335 | # CONFIG_NET_9P is not set | ||
187 | 336 | ||
188 | # | 337 | # |
189 | # Plug and Play support | 338 | # Device Drivers |
190 | # | 339 | # |
191 | 340 | ||
192 | # | 341 | # |
193 | # Block devices | 342 | # Generic Driver Options |
194 | # | 343 | # |
344 | CONFIG_STANDALONE=y | ||
345 | CONFIG_PREVENT_FIRMWARE_BUILD=y | ||
346 | # CONFIG_FW_LOADER is not set | ||
347 | # CONFIG_DEBUG_DRIVER is not set | ||
348 | # CONFIG_DEBUG_DEVRES is not set | ||
349 | # CONFIG_SYS_HYPERVISOR is not set | ||
350 | # CONFIG_CONNECTOR is not set | ||
351 | # CONFIG_MTD is not set | ||
352 | CONFIG_PARPORT=y | ||
353 | CONFIG_PARPORT_PC=y | ||
354 | CONFIG_PARPORT_PC_FIFO=y | ||
355 | # CONFIG_PARPORT_PC_SUPERIO is not set | ||
356 | # CONFIG_PARPORT_GSC is not set | ||
357 | # CONFIG_PARPORT_AX88796 is not set | ||
358 | # CONFIG_PARPORT_1284 is not set | ||
359 | CONFIG_BLK_DEV=y | ||
195 | CONFIG_BLK_DEV_FD=y | 360 | CONFIG_BLK_DEV_FD=y |
196 | # CONFIG_PARIDE is not set | 361 | # CONFIG_PARIDE is not set |
197 | # CONFIG_BLK_DEV_COW_COMMON is not set | 362 | # CONFIG_BLK_DEV_COW_COMMON is not set |
@@ -201,59 +366,19 @@ CONFIG_BLK_DEV_LOOP=m | |||
201 | CONFIG_BLK_DEV_RAM=y | 366 | CONFIG_BLK_DEV_RAM=y |
202 | CONFIG_BLK_DEV_RAM_COUNT=16 | 367 | CONFIG_BLK_DEV_RAM_COUNT=16 |
203 | CONFIG_BLK_DEV_RAM_SIZE=4096 | 368 | CONFIG_BLK_DEV_RAM_SIZE=4096 |
204 | CONFIG_BLK_DEV_INITRD=y | 369 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 |
205 | CONFIG_INITRAMFS_SOURCE="" | ||
206 | # CONFIG_CDROM_PKTCDVD is not set | 370 | # CONFIG_CDROM_PKTCDVD is not set |
207 | |||
208 | # | ||
209 | # IO Schedulers | ||
210 | # | ||
211 | CONFIG_IOSCHED_NOOP=y | ||
212 | CONFIG_IOSCHED_AS=y | ||
213 | CONFIG_IOSCHED_DEADLINE=y | ||
214 | CONFIG_IOSCHED_CFQ=y | ||
215 | # CONFIG_ATA_OVER_ETH is not set | 371 | # CONFIG_ATA_OVER_ETH is not set |
216 | 372 | # CONFIG_IDE is not set | |
217 | # | ||
218 | # Acorn-specific block devices | ||
219 | # | ||
220 | |||
221 | # | ||
222 | # ATA/ATAPI/MFM/RLL support | ||
223 | # | ||
224 | CONFIG_IDE=y | ||
225 | CONFIG_BLK_DEV_IDE=y | ||
226 | |||
227 | # | ||
228 | # Please see Documentation/ide.txt for help/info on IDE drives | ||
229 | # | ||
230 | # CONFIG_BLK_DEV_IDE_SATA is not set | ||
231 | CONFIG_BLK_DEV_IDEDISK=y | ||
232 | CONFIG_IDEDISK_MULTI_MODE=y | ||
233 | CONFIG_BLK_DEV_IDECD=y | ||
234 | # CONFIG_BLK_DEV_IDETAPE is not set | ||
235 | # CONFIG_BLK_DEV_IDEFLOPPY is not set | ||
236 | # CONFIG_BLK_DEV_IDESCSI is not set | ||
237 | # CONFIG_IDE_TASK_IOCTL is not set | ||
238 | |||
239 | # | ||
240 | # IDE chipset support/bugfixes | ||
241 | # | ||
242 | CONFIG_IDE_GENERIC=y | ||
243 | CONFIG_IDE_ARM=y | ||
244 | CONFIG_BLK_DEV_IDE_ICSIDE=y | ||
245 | CONFIG_BLK_DEV_IDEDMA_ICS=y | ||
246 | CONFIG_IDEDMA_ICS_AUTO=y | ||
247 | CONFIG_BLK_DEV_IDE_RAPIDE=y | ||
248 | CONFIG_BLK_DEV_IDEDMA=y | ||
249 | # CONFIG_IDEDMA_IVB is not set | ||
250 | CONFIG_IDEDMA_AUTO=y | ||
251 | # CONFIG_BLK_DEV_HD is not set | ||
252 | 373 | ||
253 | # | 374 | # |
254 | # SCSI device support | 375 | # SCSI device support |
255 | # | 376 | # |
377 | # CONFIG_RAID_ATTRS is not set | ||
256 | CONFIG_SCSI=y | 378 | CONFIG_SCSI=y |
379 | CONFIG_SCSI_DMA=y | ||
380 | # CONFIG_SCSI_TGT is not set | ||
381 | # CONFIG_SCSI_NETLINK is not set | ||
257 | CONFIG_SCSI_PROC_FS=y | 382 | CONFIG_SCSI_PROC_FS=y |
258 | 383 | ||
259 | # | 384 | # |
@@ -265,6 +390,7 @@ CONFIG_CHR_DEV_ST=m | |||
265 | CONFIG_BLK_DEV_SR=y | 390 | CONFIG_BLK_DEV_SR=y |
266 | CONFIG_BLK_DEV_SR_VENDOR=y | 391 | CONFIG_BLK_DEV_SR_VENDOR=y |
267 | CONFIG_CHR_DEV_SG=y | 392 | CONFIG_CHR_DEV_SG=y |
393 | # CONFIG_CHR_DEV_SCH is not set | ||
268 | 394 | ||
269 | # | 395 | # |
270 | # Some SCSI devices (e.g. CD jukebox) support multiple LUNs | 396 | # Some SCSI devices (e.g. CD jukebox) support multiple LUNs |
@@ -272,26 +398,23 @@ CONFIG_CHR_DEV_SG=y | |||
272 | # CONFIG_SCSI_MULTI_LUN is not set | 398 | # CONFIG_SCSI_MULTI_LUN is not set |
273 | CONFIG_SCSI_CONSTANTS=y | 399 | CONFIG_SCSI_CONSTANTS=y |
274 | CONFIG_SCSI_LOGGING=y | 400 | CONFIG_SCSI_LOGGING=y |
401 | # CONFIG_SCSI_SCAN_ASYNC is not set | ||
402 | CONFIG_SCSI_WAIT_SCAN=m | ||
275 | 403 | ||
276 | # | 404 | # |
277 | # SCSI Transport Attributes | 405 | # SCSI Transports |
278 | # | 406 | # |
279 | # CONFIG_SCSI_SPI_ATTRS is not set | 407 | CONFIG_SCSI_SPI_ATTRS=m |
280 | # CONFIG_SCSI_FC_ATTRS is not set | 408 | # CONFIG_SCSI_FC_ATTRS is not set |
281 | # CONFIG_SCSI_ISCSI_ATTRS is not set | 409 | # CONFIG_SCSI_ISCSI_ATTRS is not set |
282 | 410 | # CONFIG_SCSI_SAS_LIBSAS is not set | |
283 | # | 411 | CONFIG_SCSI_LOWLEVEL=y |
284 | # SCSI low-level drivers | 412 | # CONFIG_ISCSI_TCP is not set |
285 | # | 413 | # CONFIG_SCSI_PPA is not set |
286 | # CONFIG_SCSI_SATA is not set | 414 | # CONFIG_SCSI_IMM is not set |
287 | CONFIG_SCSI_PPA=m | ||
288 | CONFIG_SCSI_IMM=m | ||
289 | # CONFIG_SCSI_IZIP_EPP16 is not set | 415 | # CONFIG_SCSI_IZIP_EPP16 is not set |
290 | # CONFIG_SCSI_IZIP_SLOW_CTR is not set | 416 | # CONFIG_SCSI_IZIP_SLOW_CTR is not set |
291 | # CONFIG_SCSI_DEBUG is not set | 417 | # CONFIG_SCSI_DEBUG is not set |
292 | CONFIG_SCSI_ACORNSCSI_3=m | ||
293 | CONFIG_SCSI_ACORNSCSI_TAGGED_QUEUE=y | ||
294 | CONFIG_SCSI_ACORNSCSI_SYNC=y | ||
295 | CONFIG_SCSI_ARXESCSI=m | 418 | CONFIG_SCSI_ARXESCSI=m |
296 | CONFIG_SCSI_CUMANA_2=m | 419 | CONFIG_SCSI_CUMANA_2=m |
297 | CONFIG_SCSI_EESOXSCSI=m | 420 | CONFIG_SCSI_EESOXSCSI=m |
@@ -302,129 +425,36 @@ CONFIG_SCSI_POWERTECSCSI=y | |||
302 | # | 425 | # |
303 | CONFIG_SCSI_CUMANA_1=m | 426 | CONFIG_SCSI_CUMANA_1=m |
304 | CONFIG_SCSI_OAK1=m | 427 | CONFIG_SCSI_OAK1=m |
305 | 428 | CONFIG_ATA=y | |
306 | # | 429 | # CONFIG_ATA_NONSTANDARD is not set |
307 | # Multi-device support (RAID and LVM) | 430 | CONFIG_PATA_PLATFORM=y |
308 | # | 431 | CONFIG_PATA_ICSIDE=y |
309 | # CONFIG_MD is not set | 432 | # CONFIG_MD is not set |
310 | |||
311 | # | ||
312 | # Fusion MPT device support | ||
313 | # | ||
314 | |||
315 | # | ||
316 | # IEEE 1394 (FireWire) support | ||
317 | # | ||
318 | |||
319 | # | ||
320 | # I2O device support | ||
321 | # | ||
322 | |||
323 | # | ||
324 | # Networking support | ||
325 | # | ||
326 | CONFIG_NET=y | ||
327 | |||
328 | # | ||
329 | # Networking options | ||
330 | # | ||
331 | # CONFIG_PACKET is not set | ||
332 | CONFIG_NETLINK_DEV=y | ||
333 | CONFIG_UNIX=y | ||
334 | # CONFIG_NET_KEY is not set | ||
335 | CONFIG_INET=y | ||
336 | CONFIG_IP_MULTICAST=y | ||
337 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
338 | # CONFIG_IP_PNP is not set | ||
339 | # CONFIG_NET_IPIP is not set | ||
340 | # CONFIG_NET_IPGRE is not set | ||
341 | # CONFIG_IP_MROUTE is not set | ||
342 | # CONFIG_ARPD is not set | ||
343 | # CONFIG_SYN_COOKIES is not set | ||
344 | # CONFIG_INET_AH is not set | ||
345 | # CONFIG_INET_ESP is not set | ||
346 | # CONFIG_INET_IPCOMP is not set | ||
347 | # CONFIG_INET_TUNNEL is not set | ||
348 | # CONFIG_IP_TCPDIAG is not set | ||
349 | # CONFIG_IP_TCPDIAG_IPV6 is not set | ||
350 | CONFIG_IPV6=m | ||
351 | # CONFIG_IPV6_PRIVACY is not set | ||
352 | # CONFIG_INET6_AH is not set | ||
353 | # CONFIG_INET6_ESP is not set | ||
354 | # CONFIG_INET6_IPCOMP is not set | ||
355 | # CONFIG_INET6_TUNNEL is not set | ||
356 | # CONFIG_IPV6_TUNNEL is not set | ||
357 | # CONFIG_NETFILTER is not set | ||
358 | |||
359 | # | ||
360 | # SCTP Configuration (EXPERIMENTAL) | ||
361 | # | ||
362 | # CONFIG_IP_SCTP is not set | ||
363 | # CONFIG_ATM is not set | ||
364 | # CONFIG_BRIDGE is not set | ||
365 | # CONFIG_VLAN_8021Q is not set | ||
366 | # CONFIG_DECNET is not set | ||
367 | # CONFIG_LLC2 is not set | ||
368 | # CONFIG_IPX is not set | ||
369 | # CONFIG_ATALK is not set | ||
370 | # CONFIG_X25 is not set | ||
371 | # CONFIG_LAPB is not set | ||
372 | # CONFIG_NET_DIVERT is not set | ||
373 | # CONFIG_ECONET is not set | ||
374 | # CONFIG_WAN_ROUTER is not set | ||
375 | |||
376 | # | ||
377 | # QoS and/or fair queueing | ||
378 | # | ||
379 | # CONFIG_NET_SCHED is not set | ||
380 | # CONFIG_NET_CLS_ROUTE is not set | ||
381 | |||
382 | # | ||
383 | # Network testing | ||
384 | # | ||
385 | # CONFIG_NET_PKTGEN is not set | ||
386 | # CONFIG_NETPOLL is not set | ||
387 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
388 | # CONFIG_HAMRADIO is not set | ||
389 | # CONFIG_IRDA is not set | ||
390 | # CONFIG_BT is not set | ||
391 | CONFIG_NETDEVICES=y | 433 | CONFIG_NETDEVICES=y |
434 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
392 | # CONFIG_DUMMY is not set | 435 | # CONFIG_DUMMY is not set |
393 | # CONFIG_BONDING is not set | 436 | # CONFIG_BONDING is not set |
437 | # CONFIG_MACVLAN is not set | ||
394 | # CONFIG_EQUALIZER is not set | 438 | # CONFIG_EQUALIZER is not set |
395 | # CONFIG_TUN is not set | 439 | # CONFIG_TUN is not set |
396 | # CONFIG_ETHERTAP is not set | 440 | # CONFIG_PHYLIB is not set |
397 | |||
398 | # | ||
399 | # Ethernet (10 or 100Mbit) | ||
400 | # | ||
401 | CONFIG_NET_ETHERNET=y | 441 | CONFIG_NET_ETHERNET=y |
402 | # CONFIG_MII is not set | 442 | # CONFIG_MII is not set |
403 | CONFIG_ARM_ETHER1=y | 443 | CONFIG_ARM_ETHER1=y |
404 | CONFIG_ARM_ETHER3=y | 444 | CONFIG_ARM_ETHER3=y |
405 | CONFIG_ARM_ETHERH=y | 445 | CONFIG_ARM_ETHERH=y |
446 | # CONFIG_AX88796 is not set | ||
406 | # CONFIG_SMC91X is not set | 447 | # CONFIG_SMC91X is not set |
448 | # CONFIG_DM9000 is not set | ||
449 | # CONFIG_NET_POCKET is not set | ||
450 | # CONFIG_NETDEV_1000 is not set | ||
451 | # CONFIG_NETDEV_10000 is not set | ||
407 | 452 | ||
408 | # | 453 | # |
409 | # Ethernet (1000 Mbit) | 454 | # Wireless LAN |
410 | # | ||
411 | |||
412 | # | ||
413 | # Ethernet (10000 Mbit) | ||
414 | # | ||
415 | |||
416 | # | ||
417 | # Token Ring devices | ||
418 | # | ||
419 | |||
420 | # | ||
421 | # Wireless LAN (non-hamradio) | ||
422 | # | ||
423 | # CONFIG_NET_RADIO is not set | ||
424 | |||
425 | # | ||
426 | # Wan interfaces | ||
427 | # | 455 | # |
456 | # CONFIG_WLAN_PRE80211 is not set | ||
457 | # CONFIG_WLAN_80211 is not set | ||
428 | # CONFIG_WAN is not set | 458 | # CONFIG_WAN is not set |
429 | # CONFIG_PLIP is not set | 459 | # CONFIG_PLIP is not set |
430 | CONFIG_PPP=m | 460 | CONFIG_PPP=m |
@@ -434,20 +464,23 @@ CONFIG_PPP=m | |||
434 | # CONFIG_PPP_SYNC_TTY is not set | 464 | # CONFIG_PPP_SYNC_TTY is not set |
435 | # CONFIG_PPP_DEFLATE is not set | 465 | # CONFIG_PPP_DEFLATE is not set |
436 | # CONFIG_PPP_BSDCOMP is not set | 466 | # CONFIG_PPP_BSDCOMP is not set |
467 | # CONFIG_PPP_MPPE is not set | ||
437 | CONFIG_PPPOE=m | 468 | CONFIG_PPPOE=m |
469 | # CONFIG_PPPOL2TP is not set | ||
438 | # CONFIG_SLIP is not set | 470 | # CONFIG_SLIP is not set |
471 | CONFIG_SLHC=m | ||
439 | # CONFIG_SHAPER is not set | 472 | # CONFIG_SHAPER is not set |
440 | # CONFIG_NETCONSOLE is not set | 473 | # CONFIG_NETCONSOLE is not set |
441 | 474 | # CONFIG_NETPOLL is not set | |
442 | # | 475 | # CONFIG_NET_POLL_CONTROLLER is not set |
443 | # ISDN subsystem | ||
444 | # | ||
445 | # CONFIG_ISDN is not set | 476 | # CONFIG_ISDN is not set |
446 | 477 | ||
447 | # | 478 | # |
448 | # Input device support | 479 | # Input device support |
449 | # | 480 | # |
450 | CONFIG_INPUT=y | 481 | CONFIG_INPUT=y |
482 | # CONFIG_INPUT_FF_MEMLESS is not set | ||
483 | # CONFIG_INPUT_POLLDEV is not set | ||
451 | 484 | ||
452 | # | 485 | # |
453 | # Userland interfaces | 486 | # Userland interfaces |
@@ -462,19 +495,6 @@ CONFIG_INPUT_EVDEV=y | |||
462 | # CONFIG_INPUT_EVBUG is not set | 495 | # CONFIG_INPUT_EVBUG is not set |
463 | 496 | ||
464 | # | 497 | # |
465 | # Input I/O drivers | ||
466 | # | ||
467 | # CONFIG_GAMEPORT is not set | ||
468 | CONFIG_SOUND_GAMEPORT=y | ||
469 | CONFIG_SERIO=y | ||
470 | # CONFIG_SERIO_SERPORT is not set | ||
471 | # CONFIG_SERIO_CT82C710 is not set | ||
472 | # CONFIG_SERIO_PARKBD is not set | ||
473 | CONFIG_SERIO_RPCKBD=y | ||
474 | CONFIG_SERIO_LIBPS2=y | ||
475 | # CONFIG_SERIO_RAW is not set | ||
476 | |||
477 | # | ||
478 | # Input Device Drivers | 498 | # Input Device Drivers |
479 | # | 499 | # |
480 | CONFIG_INPUT_KEYBOARD=y | 500 | CONFIG_INPUT_KEYBOARD=y |
@@ -483,21 +503,35 @@ CONFIG_KEYBOARD_ATKBD=y | |||
483 | # CONFIG_KEYBOARD_LKKBD is not set | 503 | # CONFIG_KEYBOARD_LKKBD is not set |
484 | # CONFIG_KEYBOARD_XTKBD is not set | 504 | # CONFIG_KEYBOARD_XTKBD is not set |
485 | # CONFIG_KEYBOARD_NEWTON is not set | 505 | # CONFIG_KEYBOARD_NEWTON is not set |
506 | # CONFIG_KEYBOARD_STOWAWAY is not set | ||
486 | CONFIG_INPUT_MOUSE=y | 507 | CONFIG_INPUT_MOUSE=y |
487 | # CONFIG_MOUSE_PS2 is not set | 508 | # CONFIG_MOUSE_PS2 is not set |
488 | # CONFIG_MOUSE_SERIAL is not set | 509 | # CONFIG_MOUSE_SERIAL is not set |
489 | CONFIG_MOUSE_RISCPC=y | 510 | CONFIG_MOUSE_RISCPC=y |
490 | # CONFIG_MOUSE_VSXXXAA is not set | 511 | # CONFIG_MOUSE_VSXXXAA is not set |
491 | # CONFIG_INPUT_JOYSTICK is not set | 512 | # CONFIG_INPUT_JOYSTICK is not set |
513 | # CONFIG_INPUT_TABLET is not set | ||
492 | # CONFIG_INPUT_TOUCHSCREEN is not set | 514 | # CONFIG_INPUT_TOUCHSCREEN is not set |
493 | # CONFIG_INPUT_MISC is not set | 515 | # CONFIG_INPUT_MISC is not set |
494 | 516 | ||
495 | # | 517 | # |
518 | # Hardware I/O ports | ||
519 | # | ||
520 | CONFIG_SERIO=y | ||
521 | # CONFIG_SERIO_SERPORT is not set | ||
522 | # CONFIG_SERIO_PARKBD is not set | ||
523 | CONFIG_SERIO_RPCKBD=y | ||
524 | CONFIG_SERIO_LIBPS2=y | ||
525 | # CONFIG_SERIO_RAW is not set | ||
526 | # CONFIG_GAMEPORT is not set | ||
527 | |||
528 | # | ||
496 | # Character devices | 529 | # Character devices |
497 | # | 530 | # |
498 | CONFIG_VT=y | 531 | CONFIG_VT=y |
499 | CONFIG_VT_CONSOLE=y | 532 | CONFIG_VT_CONSOLE=y |
500 | CONFIG_HW_CONSOLE=y | 533 | CONFIG_HW_CONSOLE=y |
534 | # CONFIG_VT_HW_CONSOLE_BINDING is not set | ||
501 | # CONFIG_SERIAL_NONSTANDARD is not set | 535 | # CONFIG_SERIAL_NONSTANDARD is not set |
502 | 536 | ||
503 | # | 537 | # |
@@ -506,12 +540,13 @@ CONFIG_HW_CONSOLE=y | |||
506 | CONFIG_SERIAL_8250=y | 540 | CONFIG_SERIAL_8250=y |
507 | CONFIG_SERIAL_8250_CONSOLE=y | 541 | CONFIG_SERIAL_8250_CONSOLE=y |
508 | CONFIG_SERIAL_8250_NR_UARTS=16 | 542 | CONFIG_SERIAL_8250_NR_UARTS=16 |
543 | CONFIG_SERIAL_8250_RUNTIME_UARTS=8 | ||
509 | # CONFIG_SERIAL_8250_EXTENDED is not set | 544 | # CONFIG_SERIAL_8250_EXTENDED is not set |
545 | CONFIG_SERIAL_8250_ACORN=y | ||
510 | 546 | ||
511 | # | 547 | # |
512 | # Non-8250 serial port support | 548 | # Non-8250 serial port support |
513 | # | 549 | # |
514 | CONFIG_SERIAL_8250_ACORN=y | ||
515 | CONFIG_SERIAL_CORE=y | 550 | CONFIG_SERIAL_CORE=y |
516 | CONFIG_SERIAL_CORE_CONSOLE=y | 551 | CONFIG_SERIAL_CORE_CONSOLE=y |
517 | CONFIG_UNIX98_PTYS=y | 552 | CONFIG_UNIX98_PTYS=y |
@@ -521,31 +556,15 @@ CONFIG_PRINTER=m | |||
521 | # CONFIG_LP_CONSOLE is not set | 556 | # CONFIG_LP_CONSOLE is not set |
522 | # CONFIG_PPDEV is not set | 557 | # CONFIG_PPDEV is not set |
523 | # CONFIG_TIPAR is not set | 558 | # CONFIG_TIPAR is not set |
524 | |||
525 | # | ||
526 | # IPMI | ||
527 | # | ||
528 | # CONFIG_IPMI_HANDLER is not set | 559 | # CONFIG_IPMI_HANDLER is not set |
529 | |||
530 | # | ||
531 | # Watchdog Cards | ||
532 | # | ||
533 | # CONFIG_WATCHDOG is not set | 560 | # CONFIG_WATCHDOG is not set |
561 | # CONFIG_HW_RANDOM is not set | ||
534 | # CONFIG_NVRAM is not set | 562 | # CONFIG_NVRAM is not set |
535 | # CONFIG_RTC is not set | ||
536 | # CONFIG_DTLK is not set | ||
537 | # CONFIG_R3964 is not set | 563 | # CONFIG_R3964 is not set |
538 | |||
539 | # | ||
540 | # Ftape, the floppy tape device driver | ||
541 | # | ||
542 | # CONFIG_DRM is not set | ||
543 | # CONFIG_RAW_DRIVER is not set | 564 | # CONFIG_RAW_DRIVER is not set |
544 | 565 | # CONFIG_TCG_TPM is not set | |
545 | # | ||
546 | # I2C support | ||
547 | # | ||
548 | CONFIG_I2C=y | 566 | CONFIG_I2C=y |
567 | CONFIG_I2C_BOARDINFO=y | ||
549 | CONFIG_I2C_CHARDEV=y | 568 | CONFIG_I2C_CHARDEV=y |
550 | 569 | ||
551 | # | 570 | # |
@@ -558,76 +577,87 @@ CONFIG_I2C_ALGOBIT=y | |||
558 | # | 577 | # |
559 | # I2C Hardware Bus support | 578 | # I2C Hardware Bus support |
560 | # | 579 | # |
580 | # CONFIG_I2C_OCORES is not set | ||
561 | # CONFIG_I2C_PARPORT is not set | 581 | # CONFIG_I2C_PARPORT is not set |
562 | # CONFIG_I2C_PARPORT_LIGHT is not set | 582 | # CONFIG_I2C_PARPORT_LIGHT is not set |
583 | # CONFIG_I2C_SIMTEC is not set | ||
584 | # CONFIG_I2C_TAOS_EVM is not set | ||
563 | # CONFIG_I2C_STUB is not set | 585 | # CONFIG_I2C_STUB is not set |
564 | # CONFIG_I2C_PCA_ISA is not set | 586 | CONFIG_I2C_ACORN=y |
565 | 587 | ||
566 | # | 588 | # |
567 | # Hardware Sensors Chip support | 589 | # Miscellaneous I2C Chip support |
568 | # | ||
569 | # CONFIG_I2C_SENSOR is not set | ||
570 | # CONFIG_SENSORS_ADM1021 is not set | ||
571 | # CONFIG_SENSORS_ADM1025 is not set | ||
572 | # CONFIG_SENSORS_ADM1026 is not set | ||
573 | # CONFIG_SENSORS_ADM1031 is not set | ||
574 | # CONFIG_SENSORS_ASB100 is not set | ||
575 | # CONFIG_SENSORS_DS1621 is not set | ||
576 | # CONFIG_SENSORS_FSCHER is not set | ||
577 | # CONFIG_SENSORS_FSCPOS is not set | ||
578 | # CONFIG_SENSORS_GL518SM is not set | ||
579 | # CONFIG_SENSORS_GL520SM is not set | ||
580 | # CONFIG_SENSORS_IT87 is not set | ||
581 | # CONFIG_SENSORS_LM63 is not set | ||
582 | # CONFIG_SENSORS_LM75 is not set | ||
583 | # CONFIG_SENSORS_LM77 is not set | ||
584 | # CONFIG_SENSORS_LM78 is not set | ||
585 | # CONFIG_SENSORS_LM80 is not set | ||
586 | # CONFIG_SENSORS_LM83 is not set | ||
587 | # CONFIG_SENSORS_LM85 is not set | ||
588 | # CONFIG_SENSORS_LM87 is not set | ||
589 | # CONFIG_SENSORS_LM90 is not set | ||
590 | # CONFIG_SENSORS_MAX1619 is not set | ||
591 | # CONFIG_SENSORS_PC87360 is not set | ||
592 | # CONFIG_SENSORS_SMSC47B397 is not set | ||
593 | # CONFIG_SENSORS_SMSC47M1 is not set | ||
594 | # CONFIG_SENSORS_W83781D is not set | ||
595 | # CONFIG_SENSORS_W83L785TS is not set | ||
596 | # CONFIG_SENSORS_W83627HF is not set | ||
597 | |||
598 | # | ||
599 | # Other I2C Chip support | ||
600 | # | 590 | # |
591 | # CONFIG_SENSORS_DS1337 is not set | ||
592 | # CONFIG_SENSORS_DS1374 is not set | ||
593 | # CONFIG_DS1682 is not set | ||
601 | # CONFIG_SENSORS_EEPROM is not set | 594 | # CONFIG_SENSORS_EEPROM is not set |
602 | # CONFIG_SENSORS_PCF8574 is not set | 595 | # CONFIG_SENSORS_PCF8574 is not set |
596 | # CONFIG_SENSORS_PCA9539 is not set | ||
603 | # CONFIG_SENSORS_PCF8591 is not set | 597 | # CONFIG_SENSORS_PCF8591 is not set |
604 | # CONFIG_SENSORS_RTC8564 is not set | 598 | # CONFIG_SENSORS_MAX6875 is not set |
599 | # CONFIG_SENSORS_TSL2550 is not set | ||
605 | # CONFIG_I2C_DEBUG_CORE is not set | 600 | # CONFIG_I2C_DEBUG_CORE is not set |
606 | # CONFIG_I2C_DEBUG_ALGO is not set | 601 | # CONFIG_I2C_DEBUG_ALGO is not set |
607 | # CONFIG_I2C_DEBUG_BUS is not set | 602 | # CONFIG_I2C_DEBUG_BUS is not set |
608 | # CONFIG_I2C_DEBUG_CHIP is not set | 603 | # CONFIG_I2C_DEBUG_CHIP is not set |
609 | 604 | ||
610 | # | 605 | # |
611 | # Misc devices | 606 | # SPI support |
612 | # | 607 | # |
608 | # CONFIG_SPI is not set | ||
609 | # CONFIG_SPI_MASTER is not set | ||
610 | # CONFIG_W1 is not set | ||
611 | # CONFIG_HWMON is not set | ||
612 | CONFIG_MISC_DEVICES=y | ||
613 | # CONFIG_EEPROM_93CX6 is not set | ||
614 | |||
615 | # | ||
616 | # Multifunction device drivers | ||
617 | # | ||
618 | # CONFIG_MFD_SM501 is not set | ||
619 | # CONFIG_NEW_LEDS is not set | ||
613 | 620 | ||
614 | # | 621 | # |
615 | # Multimedia devices | 622 | # Multimedia devices |
616 | # | 623 | # |
617 | # CONFIG_VIDEO_DEV is not set | 624 | # CONFIG_VIDEO_DEV is not set |
625 | # CONFIG_DVB_CORE is not set | ||
626 | # CONFIG_DAB is not set | ||
618 | 627 | ||
619 | # | 628 | # |
620 | # Digital Video Broadcasting Devices | 629 | # Graphics support |
621 | # | 630 | # |
622 | # CONFIG_DVB is not set | 631 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set |
623 | 632 | ||
624 | # | 633 | # |
625 | # Graphics support | 634 | # Display device support |
626 | # | 635 | # |
636 | # CONFIG_DISPLAY_SUPPORT is not set | ||
637 | # CONFIG_VGASTATE is not set | ||
638 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | ||
627 | CONFIG_FB=y | 639 | CONFIG_FB=y |
640 | # CONFIG_FIRMWARE_EDID is not set | ||
641 | # CONFIG_FB_DDC is not set | ||
642 | CONFIG_FB_CFB_FILLRECT=y | ||
643 | CONFIG_FB_CFB_COPYAREA=y | ||
644 | CONFIG_FB_CFB_IMAGEBLIT=y | ||
645 | # CONFIG_FB_SYS_FILLRECT is not set | ||
646 | # CONFIG_FB_SYS_COPYAREA is not set | ||
647 | # CONFIG_FB_SYS_IMAGEBLIT is not set | ||
648 | # CONFIG_FB_SYS_FOPS is not set | ||
649 | CONFIG_FB_DEFERRED_IO=y | ||
650 | # CONFIG_FB_SVGALIB is not set | ||
651 | # CONFIG_FB_MACMODES is not set | ||
652 | # CONFIG_FB_BACKLIGHT is not set | ||
628 | # CONFIG_FB_MODE_HELPERS is not set | 653 | # CONFIG_FB_MODE_HELPERS is not set |
629 | # CONFIG_FB_TILEBLITTING is not set | 654 | # CONFIG_FB_TILEBLITTING is not set |
655 | |||
656 | # | ||
657 | # Frame buffer hardware drivers | ||
658 | # | ||
630 | CONFIG_FB_ACORN=y | 659 | CONFIG_FB_ACORN=y |
660 | # CONFIG_FB_S1D13XXX is not set | ||
631 | # CONFIG_FB_VIRTUAL is not set | 661 | # CONFIG_FB_VIRTUAL is not set |
632 | 662 | ||
633 | # | 663 | # |
@@ -635,24 +665,23 @@ CONFIG_FB_ACORN=y | |||
635 | # | 665 | # |
636 | CONFIG_DUMMY_CONSOLE=y | 666 | CONFIG_DUMMY_CONSOLE=y |
637 | CONFIG_FRAMEBUFFER_CONSOLE=y | 667 | CONFIG_FRAMEBUFFER_CONSOLE=y |
668 | # CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set | ||
669 | # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set | ||
638 | CONFIG_FONTS=y | 670 | CONFIG_FONTS=y |
639 | # CONFIG_FONT_8x8 is not set | 671 | # CONFIG_FONT_8x8 is not set |
640 | CONFIG_FONT_8x16=y | 672 | CONFIG_FONT_8x16=y |
641 | # CONFIG_FONT_6x11 is not set | 673 | # CONFIG_FONT_6x11 is not set |
674 | # CONFIG_FONT_7x14 is not set | ||
642 | # CONFIG_FONT_PEARL_8x8 is not set | 675 | # CONFIG_FONT_PEARL_8x8 is not set |
643 | CONFIG_FONT_ACORN_8x8=y | 676 | CONFIG_FONT_ACORN_8x8=y |
644 | # CONFIG_FONT_MINI_4x6 is not set | 677 | # CONFIG_FONT_MINI_4x6 is not set |
645 | # CONFIG_FONT_SUN8x16 is not set | 678 | # CONFIG_FONT_SUN8x16 is not set |
646 | # CONFIG_FONT_SUN12x22 is not set | 679 | # CONFIG_FONT_SUN12x22 is not set |
647 | 680 | # CONFIG_FONT_10x18 is not set | |
648 | # | ||
649 | # Logo configuration | ||
650 | # | ||
651 | CONFIG_LOGO=y | 681 | CONFIG_LOGO=y |
652 | CONFIG_LOGO_LINUX_MONO=y | 682 | CONFIG_LOGO_LINUX_MONO=y |
653 | CONFIG_LOGO_LINUX_VGA16=y | 683 | CONFIG_LOGO_LINUX_VGA16=y |
654 | CONFIG_LOGO_LINUX_CLUT224=y | 684 | CONFIG_LOGO_LINUX_CLUT224=y |
655 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
656 | 685 | ||
657 | # | 686 | # |
658 | # Sound | 687 | # Sound |
@@ -668,91 +697,115 @@ CONFIG_SOUND=m | |||
668 | # Open Sound System | 697 | # Open Sound System |
669 | # | 698 | # |
670 | CONFIG_SOUND_PRIME=m | 699 | CONFIG_SOUND_PRIME=m |
671 | # CONFIG_SOUND_BT878 is not set | ||
672 | # CONFIG_SOUND_FUSION is not set | ||
673 | # CONFIG_SOUND_CS4281 is not set | ||
674 | # CONFIG_SOUND_SONICVIBES is not set | ||
675 | # CONFIG_SOUND_TRIDENT is not set | ||
676 | # CONFIG_SOUND_MSNDCLAS is not set | 700 | # CONFIG_SOUND_MSNDCLAS is not set |
677 | # CONFIG_SOUND_MSNDPIN is not set | 701 | # CONFIG_SOUND_MSNDPIN is not set |
678 | CONFIG_SOUND_OSS=m | 702 | CONFIG_SOUND_OSS=m |
679 | # CONFIG_SOUND_TRACEINIT is not set | 703 | # CONFIG_SOUND_TRACEINIT is not set |
680 | # CONFIG_SOUND_DMAP is not set | 704 | # CONFIG_SOUND_DMAP is not set |
681 | # CONFIG_SOUND_AD1816 is not set | ||
682 | # CONFIG_SOUND_AD1889 is not set | ||
683 | # CONFIG_SOUND_SGALAXY is not set | ||
684 | # CONFIG_SOUND_ADLIB is not set | ||
685 | # CONFIG_SOUND_ACI_MIXER is not set | ||
686 | # CONFIG_SOUND_CS4232 is not set | ||
687 | # CONFIG_SOUND_SSCAPE is not set | 705 | # CONFIG_SOUND_SSCAPE is not set |
688 | # CONFIG_SOUND_GUS is not set | ||
689 | # CONFIG_SOUND_VMIDI is not set | 706 | # CONFIG_SOUND_VMIDI is not set |
690 | # CONFIG_SOUND_TRIX is not set | 707 | # CONFIG_SOUND_TRIX is not set |
691 | # CONFIG_SOUND_MSS is not set | 708 | # CONFIG_SOUND_MSS is not set |
692 | # CONFIG_SOUND_MPU401 is not set | 709 | # CONFIG_SOUND_MPU401 is not set |
693 | # CONFIG_SOUND_NM256 is not set | ||
694 | # CONFIG_SOUND_MAD16 is not set | ||
695 | # CONFIG_SOUND_PAS is not set | 710 | # CONFIG_SOUND_PAS is not set |
696 | # CONFIG_SOUND_PSS is not set | 711 | # CONFIG_SOUND_PSS is not set |
697 | # CONFIG_SOUND_SB is not set | 712 | # CONFIG_SOUND_SB is not set |
698 | # CONFIG_SOUND_AWE32_SYNTH is not set | ||
699 | # CONFIG_SOUND_WAVEFRONT is not set | ||
700 | # CONFIG_SOUND_MAUI is not set | ||
701 | # CONFIG_SOUND_YM3812 is not set | 713 | # CONFIG_SOUND_YM3812 is not set |
702 | # CONFIG_SOUND_OPL3SA1 is not set | ||
703 | # CONFIG_SOUND_OPL3SA2 is not set | ||
704 | # CONFIG_SOUND_UART6850 is not set | 714 | # CONFIG_SOUND_UART6850 is not set |
705 | # CONFIG_SOUND_AEDSP16 is not set | 715 | # CONFIG_SOUND_AEDSP16 is not set |
706 | CONFIG_SOUND_VIDC=m | 716 | CONFIG_SOUND_VIDC=m |
707 | # CONFIG_SOUND_TVMIXER is not set | 717 | # CONFIG_HID_SUPPORT is not set |
708 | # CONFIG_SOUND_AD1980 is not set | 718 | # CONFIG_USB_SUPPORT is not set |
719 | # CONFIG_MMC is not set | ||
720 | CONFIG_RTC_LIB=y | ||
721 | CONFIG_RTC_CLASS=y | ||
722 | CONFIG_RTC_HCTOSYS=y | ||
723 | CONFIG_RTC_HCTOSYS_DEVICE="rtc0" | ||
724 | # CONFIG_RTC_DEBUG is not set | ||
709 | 725 | ||
710 | # | 726 | # |
711 | # USB support | 727 | # RTC interfaces |
712 | # | 728 | # |
713 | # CONFIG_USB is not set | 729 | CONFIG_RTC_INTF_SYSFS=y |
714 | CONFIG_USB_ARCH_HAS_HCD=y | 730 | CONFIG_RTC_INTF_PROC=y |
715 | # CONFIG_USB_ARCH_HAS_OHCI is not set | 731 | CONFIG_RTC_INTF_DEV=y |
732 | # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set | ||
733 | # CONFIG_RTC_DRV_TEST is not set | ||
716 | 734 | ||
717 | # | 735 | # |
718 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information | 736 | # I2C RTC drivers |
719 | # | 737 | # |
738 | # CONFIG_RTC_DRV_DS1307 is not set | ||
739 | # CONFIG_RTC_DRV_DS1672 is not set | ||
740 | # CONFIG_RTC_DRV_MAX6900 is not set | ||
741 | # CONFIG_RTC_DRV_RS5C372 is not set | ||
742 | # CONFIG_RTC_DRV_ISL1208 is not set | ||
743 | # CONFIG_RTC_DRV_X1205 is not set | ||
744 | # CONFIG_RTC_DRV_PCF8563 is not set | ||
745 | CONFIG_RTC_DRV_PCF8583=y | ||
746 | # CONFIG_RTC_DRV_M41T80 is not set | ||
720 | 747 | ||
721 | # | 748 | # |
722 | # USB Gadget Support | 749 | # SPI RTC drivers |
723 | # | 750 | # |
724 | # CONFIG_USB_GADGET is not set | ||
725 | 751 | ||
726 | # | 752 | # |
727 | # MMC/SD Card support | 753 | # Platform RTC drivers |
754 | # | ||
755 | # CONFIG_RTC_DRV_CMOS is not set | ||
756 | # CONFIG_RTC_DRV_DS1553 is not set | ||
757 | # CONFIG_RTC_DRV_STK17TA8 is not set | ||
758 | # CONFIG_RTC_DRV_DS1742 is not set | ||
759 | # CONFIG_RTC_DRV_M48T86 is not set | ||
760 | # CONFIG_RTC_DRV_M48T59 is not set | ||
761 | # CONFIG_RTC_DRV_V3020 is not set | ||
762 | |||
763 | # | ||
764 | # on-CPU RTC drivers | ||
765 | # | ||
766 | |||
767 | # | ||
768 | # DMA Engine support | ||
769 | # | ||
770 | # CONFIG_DMA_ENGINE is not set | ||
771 | |||
772 | # | ||
773 | # DMA Clients | ||
774 | # | ||
775 | |||
776 | # | ||
777 | # DMA Devices | ||
728 | # | 778 | # |
729 | # CONFIG_MMC is not set | ||
730 | 779 | ||
731 | # | 780 | # |
732 | # File systems | 781 | # File systems |
733 | # | 782 | # |
734 | CONFIG_EXT2_FS=y | 783 | CONFIG_EXT2_FS=y |
735 | # CONFIG_EXT2_FS_XATTR is not set | 784 | # CONFIG_EXT2_FS_XATTR is not set |
785 | # CONFIG_EXT2_FS_XIP is not set | ||
736 | CONFIG_EXT3_FS=y | 786 | CONFIG_EXT3_FS=y |
737 | CONFIG_EXT3_FS_XATTR=y | 787 | CONFIG_EXT3_FS_XATTR=y |
738 | # CONFIG_EXT3_FS_POSIX_ACL is not set | 788 | # CONFIG_EXT3_FS_POSIX_ACL is not set |
739 | # CONFIG_EXT3_FS_SECURITY is not set | 789 | # CONFIG_EXT3_FS_SECURITY is not set |
790 | # CONFIG_EXT4DEV_FS is not set | ||
740 | CONFIG_JBD=y | 791 | CONFIG_JBD=y |
741 | # CONFIG_JBD_DEBUG is not set | 792 | # CONFIG_JBD_DEBUG is not set |
742 | CONFIG_FS_MBCACHE=y | 793 | CONFIG_FS_MBCACHE=y |
743 | # CONFIG_REISERFS_FS is not set | 794 | # CONFIG_REISERFS_FS is not set |
744 | # CONFIG_JFS_FS is not set | 795 | # CONFIG_JFS_FS is not set |
745 | 796 | # CONFIG_FS_POSIX_ACL is not set | |
746 | # | ||
747 | # XFS support | ||
748 | # | ||
749 | # CONFIG_XFS_FS is not set | 797 | # CONFIG_XFS_FS is not set |
798 | # CONFIG_GFS2_FS is not set | ||
799 | # CONFIG_OCFS2_FS is not set | ||
750 | # CONFIG_MINIX_FS is not set | 800 | # CONFIG_MINIX_FS is not set |
751 | # CONFIG_ROMFS_FS is not set | 801 | # CONFIG_ROMFS_FS is not set |
802 | CONFIG_INOTIFY=y | ||
803 | CONFIG_INOTIFY_USER=y | ||
752 | # CONFIG_QUOTA is not set | 804 | # CONFIG_QUOTA is not set |
753 | CONFIG_DNOTIFY=y | 805 | CONFIG_DNOTIFY=y |
754 | # CONFIG_AUTOFS_FS is not set | 806 | # CONFIG_AUTOFS_FS is not set |
755 | CONFIG_AUTOFS4_FS=m | 807 | CONFIG_AUTOFS4_FS=m |
808 | # CONFIG_FUSE_FS is not set | ||
756 | 809 | ||
757 | # | 810 | # |
758 | # CD-ROM/DVD Filesystems | 811 | # CD-ROM/DVD Filesystems |
@@ -776,12 +829,12 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | |||
776 | # Pseudo filesystems | 829 | # Pseudo filesystems |
777 | # | 830 | # |
778 | CONFIG_PROC_FS=y | 831 | CONFIG_PROC_FS=y |
832 | CONFIG_PROC_SYSCTL=y | ||
779 | CONFIG_SYSFS=y | 833 | CONFIG_SYSFS=y |
780 | # CONFIG_DEVFS_FS is not set | ||
781 | # CONFIG_DEVPTS_FS_XATTR is not set | ||
782 | # CONFIG_TMPFS is not set | 834 | # CONFIG_TMPFS is not set |
783 | # CONFIG_HUGETLB_PAGE is not set | 835 | # CONFIG_HUGETLB_PAGE is not set |
784 | CONFIG_RAMFS=y | 836 | CONFIG_RAMFS=y |
837 | # CONFIG_CONFIGFS_FS is not set | ||
785 | 838 | ||
786 | # | 839 | # |
787 | # Miscellaneous filesystems | 840 | # Miscellaneous filesystems |
@@ -810,7 +863,9 @@ CONFIG_NFS_FS=y | |||
810 | # CONFIG_NFS_DIRECTIO is not set | 863 | # CONFIG_NFS_DIRECTIO is not set |
811 | # CONFIG_NFSD is not set | 864 | # CONFIG_NFSD is not set |
812 | CONFIG_LOCKD=y | 865 | CONFIG_LOCKD=y |
866 | CONFIG_NFS_COMMON=y | ||
813 | CONFIG_SUNRPC=y | 867 | CONFIG_SUNRPC=y |
868 | # CONFIG_SUNRPC_BIND34 is not set | ||
814 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 869 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
815 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 870 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
816 | # CONFIG_SMB_FS is not set | 871 | # CONFIG_SMB_FS is not set |
@@ -830,20 +885,22 @@ CONFIG_ACORN_PARTITION_ICS=y | |||
830 | CONFIG_ACORN_PARTITION_ADFS=y | 885 | CONFIG_ACORN_PARTITION_ADFS=y |
831 | CONFIG_ACORN_PARTITION_POWERTEC=y | 886 | CONFIG_ACORN_PARTITION_POWERTEC=y |
832 | CONFIG_ACORN_PARTITION_RISCIX=y | 887 | CONFIG_ACORN_PARTITION_RISCIX=y |
833 | CONFIG_OSF_PARTITION=y | 888 | # CONFIG_OSF_PARTITION is not set |
834 | CONFIG_AMIGA_PARTITION=y | 889 | # CONFIG_AMIGA_PARTITION is not set |
835 | # CONFIG_ATARI_PARTITION is not set | 890 | # CONFIG_ATARI_PARTITION is not set |
836 | CONFIG_MAC_PARTITION=y | 891 | # CONFIG_MAC_PARTITION is not set |
837 | CONFIG_MSDOS_PARTITION=y | 892 | CONFIG_MSDOS_PARTITION=y |
838 | CONFIG_BSD_DISKLABEL=y | 893 | CONFIG_BSD_DISKLABEL=y |
839 | # CONFIG_MINIX_SUBPARTITION is not set | 894 | # CONFIG_MINIX_SUBPARTITION is not set |
840 | CONFIG_SOLARIS_X86_PARTITION=y | 895 | # CONFIG_SOLARIS_X86_PARTITION is not set |
841 | # CONFIG_UNIXWARE_DISKLABEL is not set | 896 | # CONFIG_UNIXWARE_DISKLABEL is not set |
842 | # CONFIG_LDM_PARTITION is not set | 897 | # CONFIG_LDM_PARTITION is not set |
843 | CONFIG_SGI_PARTITION=y | 898 | # CONFIG_SGI_PARTITION is not set |
844 | # CONFIG_ULTRIX_PARTITION is not set | 899 | # CONFIG_ULTRIX_PARTITION is not set |
845 | CONFIG_SUN_PARTITION=y | 900 | # CONFIG_SUN_PARTITION is not set |
901 | # CONFIG_KARMA_PARTITION is not set | ||
846 | # CONFIG_EFI_PARTITION is not set | 902 | # CONFIG_EFI_PARTITION is not set |
903 | # CONFIG_SYSV68_PARTITION is not set | ||
847 | 904 | ||
848 | # | 905 | # |
849 | # Native Language Support | 906 | # Native Language Support |
@@ -890,6 +947,11 @@ CONFIG_NLS_KOI8_R=m | |||
890 | # CONFIG_NLS_UTF8 is not set | 947 | # CONFIG_NLS_UTF8 is not set |
891 | 948 | ||
892 | # | 949 | # |
950 | # Distributed Lock Manager | ||
951 | # | ||
952 | # CONFIG_DLM is not set | ||
953 | |||
954 | # | ||
893 | # Profiling support | 955 | # Profiling support |
894 | # | 956 | # |
895 | # CONFIG_PROFILING is not set | 957 | # CONFIG_PROFILING is not set |
@@ -897,17 +959,37 @@ CONFIG_NLS_KOI8_R=m | |||
897 | # | 959 | # |
898 | # Kernel hacking | 960 | # Kernel hacking |
899 | # | 961 | # |
900 | CONFIG_DEBUG_KERNEL=y | ||
901 | CONFIG_MAGIC_SYSRQ=y | ||
902 | # CONFIG_PRINTK_TIME is not set | 962 | # CONFIG_PRINTK_TIME is not set |
963 | CONFIG_ENABLE_MUST_CHECK=y | ||
964 | CONFIG_MAGIC_SYSRQ=y | ||
965 | # CONFIG_UNUSED_SYMBOLS is not set | ||
966 | # CONFIG_DEBUG_FS is not set | ||
967 | # CONFIG_HEADERS_CHECK is not set | ||
968 | CONFIG_DEBUG_KERNEL=y | ||
969 | # CONFIG_DEBUG_SHIRQ is not set | ||
970 | CONFIG_DETECT_SOFTLOCKUP=y | ||
971 | CONFIG_SCHED_DEBUG=y | ||
903 | # CONFIG_SCHEDSTATS is not set | 972 | # CONFIG_SCHEDSTATS is not set |
973 | # CONFIG_TIMER_STATS is not set | ||
904 | # CONFIG_DEBUG_SLAB is not set | 974 | # CONFIG_DEBUG_SLAB is not set |
975 | # CONFIG_DEBUG_RT_MUTEXES is not set | ||
976 | # CONFIG_RT_MUTEX_TESTER is not set | ||
905 | # CONFIG_DEBUG_SPINLOCK is not set | 977 | # CONFIG_DEBUG_SPINLOCK is not set |
978 | # CONFIG_DEBUG_MUTEXES is not set | ||
979 | # CONFIG_DEBUG_LOCK_ALLOC is not set | ||
980 | # CONFIG_PROVE_LOCKING is not set | ||
981 | # CONFIG_LOCK_STAT is not set | ||
982 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | ||
983 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | ||
906 | # CONFIG_DEBUG_KOBJECT is not set | 984 | # CONFIG_DEBUG_KOBJECT is not set |
907 | CONFIG_DEBUG_BUGVERBOSE=y | 985 | CONFIG_DEBUG_BUGVERBOSE=y |
908 | # CONFIG_DEBUG_INFO is not set | 986 | # CONFIG_DEBUG_INFO is not set |
909 | # CONFIG_DEBUG_FS is not set | 987 | # CONFIG_DEBUG_VM is not set |
988 | # CONFIG_DEBUG_LIST is not set | ||
910 | CONFIG_FRAME_POINTER=y | 989 | CONFIG_FRAME_POINTER=y |
990 | CONFIG_FORCED_INLINING=y | ||
991 | # CONFIG_RCU_TORTURE_TEST is not set | ||
992 | # CONFIG_FAULT_INJECTION is not set | ||
911 | CONFIG_DEBUG_USER=y | 993 | CONFIG_DEBUG_USER=y |
912 | CONFIG_DEBUG_ERRORS=y | 994 | CONFIG_DEBUG_ERRORS=y |
913 | CONFIG_DEBUG_LL=y | 995 | CONFIG_DEBUG_LL=y |
@@ -918,19 +1000,18 @@ CONFIG_DEBUG_LL=y | |||
918 | # | 1000 | # |
919 | # CONFIG_KEYS is not set | 1001 | # CONFIG_KEYS is not set |
920 | # CONFIG_SECURITY is not set | 1002 | # CONFIG_SECURITY is not set |
921 | |||
922 | # | ||
923 | # Cryptographic options | ||
924 | # | ||
925 | # CONFIG_CRYPTO is not set | 1003 | # CONFIG_CRYPTO is not set |
926 | 1004 | ||
927 | # | 1005 | # |
928 | # Hardware crypto devices | ||
929 | # | ||
930 | |||
931 | # | ||
932 | # Library routines | 1006 | # Library routines |
933 | # | 1007 | # |
1008 | CONFIG_BITREVERSE=y | ||
934 | # CONFIG_CRC_CCITT is not set | 1009 | # CONFIG_CRC_CCITT is not set |
1010 | # CONFIG_CRC16 is not set | ||
1011 | # CONFIG_CRC_ITU_T is not set | ||
935 | CONFIG_CRC32=y | 1012 | CONFIG_CRC32=y |
1013 | # CONFIG_CRC7 is not set | ||
936 | # CONFIG_LIBCRC32C is not set | 1014 | # CONFIG_LIBCRC32C is not set |
1015 | CONFIG_PLIST=y | ||
1016 | CONFIG_HAS_IOMEM=y | ||
1017 | CONFIG_HAS_DMA=y | ||
diff --git a/arch/arm/mach-at91/at91sam9261_devices.c b/arch/arm/mach-at91/at91sam9261_devices.c index 9db58da04754..3576595b4941 100644 --- a/arch/arm/mach-at91/at91sam9261_devices.c +++ b/arch/arm/mach-at91/at91sam9261_devices.c | |||
@@ -15,6 +15,8 @@ | |||
15 | 15 | ||
16 | #include <linux/platform_device.h> | 16 | #include <linux/platform_device.h> |
17 | 17 | ||
18 | #include <video/atmel_lcdc.h> | ||
19 | |||
18 | #include <asm/arch/board.h> | 20 | #include <asm/arch/board.h> |
19 | #include <asm/arch/gpio.h> | 21 | #include <asm/arch/gpio.h> |
20 | #include <asm/arch/at91sam9261.h> | 22 | #include <asm/arch/at91sam9261.h> |
diff --git a/arch/arm/mach-at91/at91sam9263_devices.c b/arch/arm/mach-at91/at91sam9263_devices.c index 635695787f91..f924bd5017de 100644 --- a/arch/arm/mach-at91/at91sam9263_devices.c +++ b/arch/arm/mach-at91/at91sam9263_devices.c | |||
@@ -14,6 +14,8 @@ | |||
14 | 14 | ||
15 | #include <linux/platform_device.h> | 15 | #include <linux/platform_device.h> |
16 | 16 | ||
17 | #include <video/atmel_lcdc.h> | ||
18 | |||
17 | #include <asm/arch/board.h> | 19 | #include <asm/arch/board.h> |
18 | #include <asm/arch/gpio.h> | 20 | #include <asm/arch/gpio.h> |
19 | #include <asm/arch/at91sam9263.h> | 21 | #include <asm/arch/at91sam9263.h> |
diff --git a/arch/avr32/boards/atngw100/setup.c b/arch/avr32/boards/atngw100/setup.c index 2edcecdea8bd..ef801563bbf5 100644 --- a/arch/avr32/boards/atngw100/setup.c +++ b/arch/avr32/boards/atngw100/setup.c | |||
@@ -9,6 +9,7 @@ | |||
9 | */ | 9 | */ |
10 | #include <linux/clk.h> | 10 | #include <linux/clk.h> |
11 | #include <linux/etherdevice.h> | 11 | #include <linux/etherdevice.h> |
12 | #include <linux/i2c-gpio.h> | ||
12 | #include <linux/init.h> | 13 | #include <linux/init.h> |
13 | #include <linux/linkage.h> | 14 | #include <linux/linkage.h> |
14 | #include <linux/platform_device.h> | 15 | #include <linux/platform_device.h> |
@@ -123,6 +124,19 @@ static struct platform_device ngw_gpio_leds = { | |||
123 | } | 124 | } |
124 | }; | 125 | }; |
125 | 126 | ||
127 | static struct i2c_gpio_platform_data i2c_gpio_data = { | ||
128 | .sda_pin = GPIO_PIN_PA(6), | ||
129 | .scl_pin = GPIO_PIN_PA(7), | ||
130 | }; | ||
131 | |||
132 | static struct platform_device i2c_gpio_device = { | ||
133 | .name = "i2c-gpio", | ||
134 | .id = 0, | ||
135 | .dev = { | ||
136 | .platform_data = &i2c_gpio_data, | ||
137 | }, | ||
138 | }; | ||
139 | |||
126 | static int __init atngw100_init(void) | 140 | static int __init atngw100_init(void) |
127 | { | 141 | { |
128 | unsigned i; | 142 | unsigned i; |
@@ -147,6 +161,10 @@ static int __init atngw100_init(void) | |||
147 | } | 161 | } |
148 | platform_device_register(&ngw_gpio_leds); | 162 | platform_device_register(&ngw_gpio_leds); |
149 | 163 | ||
164 | at32_select_gpio(i2c_gpio_data.sda_pin, 0); | ||
165 | at32_select_gpio(i2c_gpio_data.scl_pin, 0); | ||
166 | platform_device_register(&i2c_gpio_device); | ||
167 | |||
150 | return 0; | 168 | return 0; |
151 | } | 169 | } |
152 | postcore_initcall(atngw100_init); | 170 | postcore_initcall(atngw100_init); |
diff --git a/arch/avr32/boards/atstk1000/Kconfig b/arch/avr32/boards/atstk1000/Kconfig index 71bc7d364fb7..718578f64069 100644 --- a/arch/avr32/boards/atstk1000/Kconfig +++ b/arch/avr32/boards/atstk1000/Kconfig | |||
@@ -50,4 +50,30 @@ config BOARD_ATSTK1002_SPI1 | |||
50 | GPIO lines and accessed through the J1 jumper block. Say "y" | 50 | GPIO lines and accessed through the J1 jumper block. Say "y" |
51 | here to configure that SPI controller. | 51 | here to configure that SPI controller. |
52 | 52 | ||
53 | config BOARD_ATSTK1002_J2_LED | ||
54 | bool | ||
55 | default BOARD_ATSTK1002_J2_LED8 || BOARD_ATSTK1002_J2_RGB | ||
56 | |||
57 | choice | ||
58 | prompt "LEDs connected to J2:" | ||
59 | depends on LEDS_GPIO && !BOARD_ATSTK1002_SW4_CUSTOM | ||
60 | optional | ||
61 | help | ||
62 | Select this if you have jumpered the J2 jumper block to the | ||
63 | LED0..LED7 amber leds, or to the RGB leds, using a ten-pin | ||
64 | IDC cable. A default "heartbeat" trigger is provided, but | ||
65 | you can of course override this. | ||
66 | |||
67 | config BOARD_ATSTK1002_J2_LED8 | ||
68 | bool "LED0..LED7" | ||
69 | help | ||
70 | Select this if J2 is jumpered to LED0..LED7 amber leds. | ||
71 | |||
72 | config BOARD_ATSTK1002_J2_RGB | ||
73 | bool "RGB leds" | ||
74 | help | ||
75 | Select this if J2 is jumpered to the RGB leds. | ||
76 | |||
77 | endchoice | ||
78 | |||
53 | endif # stk 1002 | 79 | endif # stk 1002 |
diff --git a/arch/avr32/boards/atstk1000/atstk1002.c b/arch/avr32/boards/atstk1000/atstk1002.c index cb93eabb9c6c..c9981b731efa 100644 --- a/arch/avr32/boards/atstk1000/atstk1002.c +++ b/arch/avr32/boards/atstk1000/atstk1002.c | |||
@@ -11,6 +11,7 @@ | |||
11 | #include <linux/etherdevice.h> | 11 | #include <linux/etherdevice.h> |
12 | #include <linux/init.h> | 12 | #include <linux/init.h> |
13 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
14 | #include <linux/leds.h> | ||
14 | #include <linux/platform_device.h> | 15 | #include <linux/platform_device.h> |
15 | #include <linux/string.h> | 16 | #include <linux/string.h> |
16 | #include <linux/types.h> | 17 | #include <linux/types.h> |
@@ -120,6 +121,65 @@ static void __init set_hw_addr(struct platform_device *pdev) | |||
120 | clk_put(pclk); | 121 | clk_put(pclk); |
121 | } | 122 | } |
122 | 123 | ||
124 | #ifdef CONFIG_BOARD_ATSTK1002_J2_LED | ||
125 | |||
126 | static struct gpio_led stk_j2_led[] = { | ||
127 | #ifdef CONFIG_BOARD_ATSTK1002_J2_LED8 | ||
128 | #define LEDSTRING "J2 jumpered to LED8" | ||
129 | { .name = "led0:amber", .gpio = GPIO_PIN_PB( 8), }, | ||
130 | { .name = "led1:amber", .gpio = GPIO_PIN_PB( 9), }, | ||
131 | { .name = "led2:amber", .gpio = GPIO_PIN_PB(10), }, | ||
132 | { .name = "led3:amber", .gpio = GPIO_PIN_PB(13), }, | ||
133 | { .name = "led4:amber", .gpio = GPIO_PIN_PB(14), }, | ||
134 | { .name = "led5:amber", .gpio = GPIO_PIN_PB(15), }, | ||
135 | { .name = "led6:amber", .gpio = GPIO_PIN_PB(16), }, | ||
136 | { .name = "led7:amber", .gpio = GPIO_PIN_PB(30), | ||
137 | .default_trigger = "heartbeat", }, | ||
138 | #else /* RGB */ | ||
139 | #define LEDSTRING "J2 jumpered to RGB LEDs" | ||
140 | { .name = "r1:red", .gpio = GPIO_PIN_PB( 8), }, | ||
141 | { .name = "g1:green", .gpio = GPIO_PIN_PB(10), }, | ||
142 | { .name = "b1:blue", .gpio = GPIO_PIN_PB(14), }, | ||
143 | |||
144 | { .name = "r2:red", .gpio = GPIO_PIN_PB( 9), | ||
145 | .default_trigger = "heartbeat", }, | ||
146 | { .name = "g2:green", .gpio = GPIO_PIN_PB(13), }, | ||
147 | { .name = "b2:blue", .gpio = GPIO_PIN_PB(15), | ||
148 | .default_trigger = "heartbeat", }, | ||
149 | /* PB16, PB30 unused */ | ||
150 | #endif | ||
151 | }; | ||
152 | |||
153 | static struct gpio_led_platform_data stk_j2_led_data = { | ||
154 | .num_leds = ARRAY_SIZE(stk_j2_led), | ||
155 | .leds = stk_j2_led, | ||
156 | }; | ||
157 | |||
158 | static struct platform_device stk_j2_led_dev = { | ||
159 | .name = "leds-gpio", | ||
160 | .id = 2, /* gpio block J2 */ | ||
161 | .dev = { | ||
162 | .platform_data = &stk_j2_led_data, | ||
163 | }, | ||
164 | }; | ||
165 | |||
166 | static void setup_j2_leds(void) | ||
167 | { | ||
168 | unsigned i; | ||
169 | |||
170 | for (i = 0; i < ARRAY_SIZE(stk_j2_led); i++) | ||
171 | at32_select_gpio(stk_j2_led[i].gpio, AT32_GPIOF_OUTPUT); | ||
172 | |||
173 | printk("STK1002: " LEDSTRING "\n"); | ||
174 | platform_device_register(&stk_j2_led_dev); | ||
175 | } | ||
176 | |||
177 | #else | ||
178 | static void setup_j2_leds(void) | ||
179 | { | ||
180 | } | ||
181 | #endif | ||
182 | |||
123 | void __init setup_board(void) | 183 | void __init setup_board(void) |
124 | { | 184 | { |
125 | #ifdef CONFIG_BOARD_ATSTK1002_SW2_CUSTOM | 185 | #ifdef CONFIG_BOARD_ATSTK1002_SW2_CUSTOM |
@@ -185,6 +245,8 @@ static int __init atstk1002_init(void) | |||
185 | at32_add_device_ssc(0, ATMEL_SSC_TX); | 245 | at32_add_device_ssc(0, ATMEL_SSC_TX); |
186 | #endif | 246 | #endif |
187 | 247 | ||
248 | setup_j2_leds(); | ||
249 | |||
188 | return 0; | 250 | return 0; |
189 | } | 251 | } |
190 | postcore_initcall(atstk1002_init); | 252 | postcore_initcall(atstk1002_init); |
diff --git a/arch/blackfin/kernel/init_task.c b/arch/blackfin/kernel/init_task.c index b45188f8512e..673c860ffc23 100644 --- a/arch/blackfin/kernel/init_task.c +++ b/arch/blackfin/kernel/init_task.c | |||
@@ -31,6 +31,7 @@ | |||
31 | #include <linux/module.h> | 31 | #include <linux/module.h> |
32 | #include <linux/init_task.h> | 32 | #include <linux/init_task.h> |
33 | #include <linux/mqueue.h> | 33 | #include <linux/mqueue.h> |
34 | #include <linux/fs.h> | ||
34 | 35 | ||
35 | static struct fs_struct init_fs = INIT_FS; | 36 | static struct fs_struct init_fs = INIT_FS; |
36 | static struct files_struct init_files = INIT_FILES; | 37 | static struct files_struct init_files = INIT_FILES; |
diff --git a/arch/blackfin/kernel/process.c b/arch/blackfin/kernel/process.c index 5a51dd6ab280..6a7aefe48346 100644 --- a/arch/blackfin/kernel/process.c +++ b/arch/blackfin/kernel/process.c | |||
@@ -33,6 +33,8 @@ | |||
33 | #include <linux/user.h> | 33 | #include <linux/user.h> |
34 | #include <linux/a.out.h> | 34 | #include <linux/a.out.h> |
35 | #include <linux/uaccess.h> | 35 | #include <linux/uaccess.h> |
36 | #include <linux/fs.h> | ||
37 | #include <linux/err.h> | ||
36 | 38 | ||
37 | #include <asm/blackfin.h> | 39 | #include <asm/blackfin.h> |
38 | #include <asm/fixed_code.h> | 40 | #include <asm/fixed_code.h> |
diff --git a/arch/blackfin/kernel/sys_bfin.c b/arch/blackfin/kernel/sys_bfin.c index f5e1ae3d1705..abcd14817d0e 100644 --- a/arch/blackfin/kernel/sys_bfin.c +++ b/arch/blackfin/kernel/sys_bfin.c | |||
@@ -37,6 +37,7 @@ | |||
37 | #include <linux/syscalls.h> | 37 | #include <linux/syscalls.h> |
38 | #include <linux/mman.h> | 38 | #include <linux/mman.h> |
39 | #include <linux/file.h> | 39 | #include <linux/file.h> |
40 | #include <linux/fs.h> | ||
40 | #include <linux/uaccess.h> | 41 | #include <linux/uaccess.h> |
41 | #include <linux/ipc.h> | 42 | #include <linux/ipc.h> |
42 | #include <linux/unistd.h> | 43 | #include <linux/unistd.h> |
diff --git a/arch/blackfin/kernel/traps.c b/arch/blackfin/kernel/traps.c index 8766bd612b47..792a8416fe10 100644 --- a/arch/blackfin/kernel/traps.c +++ b/arch/blackfin/kernel/traps.c | |||
@@ -31,6 +31,7 @@ | |||
31 | #include <linux/interrupt.h> | 31 | #include <linux/interrupt.h> |
32 | #include <linux/module.h> | 32 | #include <linux/module.h> |
33 | #include <linux/kallsyms.h> | 33 | #include <linux/kallsyms.h> |
34 | #include <linux/fs.h> | ||
34 | #include <asm/traps.h> | 35 | #include <asm/traps.h> |
35 | #include <asm/cacheflush.h> | 36 | #include <asm/cacheflush.h> |
36 | #include <asm/blackfin.h> | 37 | #include <asm/blackfin.h> |
diff --git a/arch/cris/Kconfig b/arch/cris/Kconfig index 4b41248b61ad..6b4d026a00a1 100644 --- a/arch/cris/Kconfig +++ b/arch/cris/Kconfig | |||
@@ -180,8 +180,6 @@ source "drivers/isdn/Kconfig" | |||
180 | 180 | ||
181 | source "drivers/telephony/Kconfig" | 181 | source "drivers/telephony/Kconfig" |
182 | 182 | ||
183 | source "drivers/cdrom/Kconfig" | ||
184 | |||
185 | # | 183 | # |
186 | # input before char - char/joystick depends on it. As does USB. | 184 | # input before char - char/joystick depends on it. As does USB. |
187 | # | 185 | # |
diff --git a/arch/frv/kernel/entry.S b/arch/frv/kernel/entry.S index 275673c192aa..1e74f3c5cee2 100644 --- a/arch/frv/kernel/entry.S +++ b/arch/frv/kernel/entry.S | |||
@@ -1496,6 +1496,7 @@ sys_call_table: | |||
1496 | .long sys_signalfd | 1496 | .long sys_signalfd |
1497 | .long sys_timerfd | 1497 | .long sys_timerfd |
1498 | .long sys_eventfd | 1498 | .long sys_eventfd |
1499 | .long sys_fallocate | ||
1499 | 1500 | ||
1500 | 1501 | ||
1501 | syscall_table_size = (. - sys_call_table) | 1502 | syscall_table_size = (. - sys_call_table) |
diff --git a/arch/i386/boot/edd.c b/arch/i386/boot/edd.c index 658834d9f92a..82b5c846a194 100644 --- a/arch/i386/boot/edd.c +++ b/arch/i386/boot/edd.c | |||
@@ -19,40 +19,12 @@ | |||
19 | 19 | ||
20 | #if defined(CONFIG_EDD) || defined(CONFIG_EDD_MODULE) | 20 | #if defined(CONFIG_EDD) || defined(CONFIG_EDD_MODULE) |
21 | 21 | ||
22 | struct edd_dapa { | ||
23 | u8 pkt_size; | ||
24 | u8 rsvd; | ||
25 | u16 sector_cnt; | ||
26 | u16 buf_off, buf_seg; | ||
27 | u64 lba; | ||
28 | u64 buf_lin_addr; | ||
29 | }; | ||
30 | |||
31 | /* | 22 | /* |
32 | * Read the MBR (first sector) from a specific device. | 23 | * Read the MBR (first sector) from a specific device. |
33 | */ | 24 | */ |
34 | static int read_mbr(u8 devno, void *buf) | 25 | static int read_mbr(u8 devno, void *buf) |
35 | { | 26 | { |
36 | struct edd_dapa dapa; | 27 | u16 ax, bx, cx, dx; |
37 | u16 ax, bx, cx, dx, si; | ||
38 | |||
39 | memset(&dapa, 0, sizeof dapa); | ||
40 | dapa.pkt_size = sizeof(dapa); | ||
41 | dapa.sector_cnt = 1; | ||
42 | dapa.buf_off = (size_t)buf; | ||
43 | dapa.buf_seg = ds(); | ||
44 | /* dapa.lba = 0; */ | ||
45 | |||
46 | ax = 0x4200; /* Extended Read */ | ||
47 | si = (size_t)&dapa; | ||
48 | dx = devno; | ||
49 | asm("pushfl; stc; int $0x13; setc %%al; popfl" | ||
50 | : "+a" (ax), "+S" (si), "+d" (dx) | ||
51 | : "m" (dapa) | ||
52 | : "ebx", "ecx", "edi", "memory"); | ||
53 | |||
54 | if (!(u8)ax) | ||
55 | return 0; /* OK */ | ||
56 | 28 | ||
57 | ax = 0x0201; /* Legacy Read, one sector */ | 29 | ax = 0x0201; /* Legacy Read, one sector */ |
58 | cx = 0x0001; /* Sector 0-0-1 */ | 30 | cx = 0x0001; /* Sector 0-0-1 */ |
@@ -65,11 +37,10 @@ static int read_mbr(u8 devno, void *buf) | |||
65 | return -(u8)ax; /* 0 or -1 */ | 37 | return -(u8)ax; /* 0 or -1 */ |
66 | } | 38 | } |
67 | 39 | ||
68 | static u32 read_mbr_sig(u8 devno, struct edd_info *ei) | 40 | static u32 read_mbr_sig(u8 devno, struct edd_info *ei, u32 *mbrsig) |
69 | { | 41 | { |
70 | int sector_size; | 42 | int sector_size; |
71 | char *mbrbuf_ptr, *mbrbuf_end; | 43 | char *mbrbuf_ptr, *mbrbuf_end; |
72 | u32 mbrsig; | ||
73 | u32 buf_base, mbr_base; | 44 | u32 buf_base, mbr_base; |
74 | extern char _end[]; | 45 | extern char _end[]; |
75 | 46 | ||
@@ -85,15 +56,15 @@ static u32 read_mbr_sig(u8 devno, struct edd_info *ei) | |||
85 | 56 | ||
86 | /* Make sure we actually have space on the heap... */ | 57 | /* Make sure we actually have space on the heap... */ |
87 | if (!(boot_params.hdr.loadflags & CAN_USE_HEAP)) | 58 | if (!(boot_params.hdr.loadflags & CAN_USE_HEAP)) |
88 | return 0; | 59 | return -1; |
89 | if (mbrbuf_end > (char *)(size_t)boot_params.hdr.heap_end_ptr) | 60 | if (mbrbuf_end > (char *)(size_t)boot_params.hdr.heap_end_ptr) |
90 | return 0; | 61 | return -1; |
91 | 62 | ||
92 | if (read_mbr(devno, mbrbuf_ptr)) | 63 | if (read_mbr(devno, mbrbuf_ptr)) |
93 | return 0; | 64 | return -1; |
94 | 65 | ||
95 | mbrsig = *(u32 *)&mbrbuf_ptr[EDD_MBR_SIG_OFFSET]; | 66 | *mbrsig = *(u32 *)&mbrbuf_ptr[EDD_MBR_SIG_OFFSET]; |
96 | return mbrsig; | 67 | return 0; |
97 | } | 68 | } |
98 | 69 | ||
99 | static int get_edd_info(u8 devno, struct edd_info *ei) | 70 | static int get_edd_info(u8 devno, struct edd_info *ei) |
@@ -160,6 +131,7 @@ void query_edd(void) | |||
160 | int do_edd = 1; | 131 | int do_edd = 1; |
161 | int devno; | 132 | int devno; |
162 | struct edd_info ei, *edp; | 133 | struct edd_info ei, *edp; |
134 | u32 *mbrptr; | ||
163 | 135 | ||
164 | if (cmdline_find_option("edd", eddarg, sizeof eddarg) > 0) { | 136 | if (cmdline_find_option("edd", eddarg, sizeof eddarg) > 0) { |
165 | if (!strcmp(eddarg, "skipmbr") || !strcmp(eddarg, "skip")) | 137 | if (!strcmp(eddarg, "skipmbr") || !strcmp(eddarg, "skip")) |
@@ -168,7 +140,8 @@ void query_edd(void) | |||
168 | do_edd = 0; | 140 | do_edd = 0; |
169 | } | 141 | } |
170 | 142 | ||
171 | edp = (struct edd_info *)boot_params.eddbuf; | 143 | edp = boot_params.eddbuf; |
144 | mbrptr = boot_params.edd_mbr_sig_buffer; | ||
172 | 145 | ||
173 | if (!do_edd) | 146 | if (!do_edd) |
174 | return; | 147 | return; |
@@ -186,11 +159,8 @@ void query_edd(void) | |||
186 | boot_params.eddbuf_entries++; | 159 | boot_params.eddbuf_entries++; |
187 | } | 160 | } |
188 | 161 | ||
189 | if (do_mbr) { | 162 | if (do_mbr && !read_mbr_sig(devno, &ei, mbrptr++)) |
190 | u32 mbr_sig; | 163 | boot_params.edd_mbr_sig_buf_entries = devno-0x80+1; |
191 | mbr_sig = read_mbr_sig(devno, &ei); | ||
192 | boot_params.edd_mbr_sig_buffer[devno-0x80] = mbr_sig; | ||
193 | } | ||
194 | } | 164 | } |
195 | } | 165 | } |
196 | 166 | ||
diff --git a/arch/i386/boot/video.c b/arch/i386/boot/video.c index 958130ef0042..693f20d3102e 100644 --- a/arch/i386/boot/video.c +++ b/arch/i386/boot/video.c | |||
@@ -61,7 +61,7 @@ static void store_video_mode(void) | |||
61 | 61 | ||
62 | /* Not all BIOSes are clean with respect to the top bit */ | 62 | /* Not all BIOSes are clean with respect to the top bit */ |
63 | boot_params.screen_info.orig_video_mode = ax & 0x7f; | 63 | boot_params.screen_info.orig_video_mode = ax & 0x7f; |
64 | boot_params.screen_info.orig_video_page = page; | 64 | boot_params.screen_info.orig_video_page = page >> 8; |
65 | } | 65 | } |
66 | 66 | ||
67 | /* | 67 | /* |
diff --git a/arch/i386/kernel/alternative.c b/arch/i386/kernel/alternative.c index c85598acb8fd..1b66d5c70eaf 100644 --- a/arch/i386/kernel/alternative.c +++ b/arch/i386/kernel/alternative.c | |||
@@ -11,6 +11,8 @@ | |||
11 | #include <asm/mce.h> | 11 | #include <asm/mce.h> |
12 | #include <asm/nmi.h> | 12 | #include <asm/nmi.h> |
13 | 13 | ||
14 | #define MAX_PATCH_LEN (255-1) | ||
15 | |||
14 | #ifdef CONFIG_HOTPLUG_CPU | 16 | #ifdef CONFIG_HOTPLUG_CPU |
15 | static int smp_alt_once; | 17 | static int smp_alt_once; |
16 | 18 | ||
@@ -148,7 +150,8 @@ static unsigned char** find_nop_table(void) | |||
148 | 150 | ||
149 | #endif /* CONFIG_X86_64 */ | 151 | #endif /* CONFIG_X86_64 */ |
150 | 152 | ||
151 | static void nop_out(void *insns, unsigned int len) | 153 | /* Use this to add nops to a buffer, then text_poke the whole buffer. */ |
154 | static void add_nops(void *insns, unsigned int len) | ||
152 | { | 155 | { |
153 | unsigned char **noptable = find_nop_table(); | 156 | unsigned char **noptable = find_nop_table(); |
154 | 157 | ||
@@ -156,7 +159,7 @@ static void nop_out(void *insns, unsigned int len) | |||
156 | unsigned int noplen = len; | 159 | unsigned int noplen = len; |
157 | if (noplen > ASM_NOP_MAX) | 160 | if (noplen > ASM_NOP_MAX) |
158 | noplen = ASM_NOP_MAX; | 161 | noplen = ASM_NOP_MAX; |
159 | text_poke(insns, noptable[noplen], noplen); | 162 | memcpy(insns, noptable[noplen], noplen); |
160 | insns += noplen; | 163 | insns += noplen; |
161 | len -= noplen; | 164 | len -= noplen; |
162 | } | 165 | } |
@@ -174,15 +177,15 @@ extern u8 *__smp_locks[], *__smp_locks_end[]; | |||
174 | void apply_alternatives(struct alt_instr *start, struct alt_instr *end) | 177 | void apply_alternatives(struct alt_instr *start, struct alt_instr *end) |
175 | { | 178 | { |
176 | struct alt_instr *a; | 179 | struct alt_instr *a; |
177 | u8 *instr; | 180 | char insnbuf[MAX_PATCH_LEN]; |
178 | int diff; | ||
179 | 181 | ||
180 | DPRINTK("%s: alt table %p -> %p\n", __FUNCTION__, start, end); | 182 | DPRINTK("%s: alt table %p -> %p\n", __FUNCTION__, start, end); |
181 | for (a = start; a < end; a++) { | 183 | for (a = start; a < end; a++) { |
184 | u8 *instr = a->instr; | ||
182 | BUG_ON(a->replacementlen > a->instrlen); | 185 | BUG_ON(a->replacementlen > a->instrlen); |
186 | BUG_ON(a->instrlen > sizeof(insnbuf)); | ||
183 | if (!boot_cpu_has(a->cpuid)) | 187 | if (!boot_cpu_has(a->cpuid)) |
184 | continue; | 188 | continue; |
185 | instr = a->instr; | ||
186 | #ifdef CONFIG_X86_64 | 189 | #ifdef CONFIG_X86_64 |
187 | /* vsyscall code is not mapped yet. resolve it manually. */ | 190 | /* vsyscall code is not mapped yet. resolve it manually. */ |
188 | if (instr >= (u8 *)VSYSCALL_START && instr < (u8*)VSYSCALL_END) { | 191 | if (instr >= (u8 *)VSYSCALL_START && instr < (u8*)VSYSCALL_END) { |
@@ -191,9 +194,10 @@ void apply_alternatives(struct alt_instr *start, struct alt_instr *end) | |||
191 | __FUNCTION__, a->instr, instr); | 194 | __FUNCTION__, a->instr, instr); |
192 | } | 195 | } |
193 | #endif | 196 | #endif |
194 | memcpy(instr, a->replacement, a->replacementlen); | 197 | memcpy(insnbuf, a->replacement, a->replacementlen); |
195 | diff = a->instrlen - a->replacementlen; | 198 | add_nops(insnbuf + a->replacementlen, |
196 | nop_out(instr + a->replacementlen, diff); | 199 | a->instrlen - a->replacementlen); |
200 | text_poke(instr, insnbuf, a->instrlen); | ||
197 | } | 201 | } |
198 | } | 202 | } |
199 | 203 | ||
@@ -215,16 +219,18 @@ static void alternatives_smp_lock(u8 **start, u8 **end, u8 *text, u8 *text_end) | |||
215 | static void alternatives_smp_unlock(u8 **start, u8 **end, u8 *text, u8 *text_end) | 219 | static void alternatives_smp_unlock(u8 **start, u8 **end, u8 *text, u8 *text_end) |
216 | { | 220 | { |
217 | u8 **ptr; | 221 | u8 **ptr; |
222 | char insn[1]; | ||
218 | 223 | ||
219 | if (noreplace_smp) | 224 | if (noreplace_smp) |
220 | return; | 225 | return; |
221 | 226 | ||
227 | add_nops(insn, 1); | ||
222 | for (ptr = start; ptr < end; ptr++) { | 228 | for (ptr = start; ptr < end; ptr++) { |
223 | if (*ptr < text) | 229 | if (*ptr < text) |
224 | continue; | 230 | continue; |
225 | if (*ptr > text_end) | 231 | if (*ptr > text_end) |
226 | continue; | 232 | continue; |
227 | nop_out(*ptr, 1); | 233 | text_poke(*ptr, insn, 1); |
228 | }; | 234 | }; |
229 | } | 235 | } |
230 | 236 | ||
@@ -351,6 +357,7 @@ void apply_paravirt(struct paravirt_patch_site *start, | |||
351 | struct paravirt_patch_site *end) | 357 | struct paravirt_patch_site *end) |
352 | { | 358 | { |
353 | struct paravirt_patch_site *p; | 359 | struct paravirt_patch_site *p; |
360 | char insnbuf[MAX_PATCH_LEN]; | ||
354 | 361 | ||
355 | if (noreplace_paravirt) | 362 | if (noreplace_paravirt) |
356 | return; | 363 | return; |
@@ -358,13 +365,15 @@ void apply_paravirt(struct paravirt_patch_site *start, | |||
358 | for (p = start; p < end; p++) { | 365 | for (p = start; p < end; p++) { |
359 | unsigned int used; | 366 | unsigned int used; |
360 | 367 | ||
361 | used = paravirt_ops.patch(p->instrtype, p->clobbers, p->instr, | 368 | BUG_ON(p->len > MAX_PATCH_LEN); |
362 | p->len); | 369 | used = paravirt_ops.patch(p->instrtype, p->clobbers, insnbuf, |
370 | (unsigned long)p->instr, p->len); | ||
363 | 371 | ||
364 | BUG_ON(used > p->len); | 372 | BUG_ON(used > p->len); |
365 | 373 | ||
366 | /* Pad the rest with nops */ | 374 | /* Pad the rest with nops */ |
367 | nop_out(p->instr + used, p->len - used); | 375 | add_nops(insnbuf + used, p->len - used); |
376 | text_poke(p->instr, insnbuf, p->len); | ||
368 | } | 377 | } |
369 | } | 378 | } |
370 | extern struct paravirt_patch_site __start_parainstructions[], | 379 | extern struct paravirt_patch_site __start_parainstructions[], |
@@ -379,7 +388,7 @@ void __init alternative_instructions(void) | |||
379 | that might execute the to be patched code. | 388 | that might execute the to be patched code. |
380 | Other CPUs are not running. */ | 389 | Other CPUs are not running. */ |
381 | stop_nmi(); | 390 | stop_nmi(); |
382 | #ifdef CONFIG_MCE | 391 | #ifdef CONFIG_X86_MCE |
383 | stop_mce(); | 392 | stop_mce(); |
384 | #endif | 393 | #endif |
385 | 394 | ||
@@ -417,7 +426,7 @@ void __init alternative_instructions(void) | |||
417 | local_irq_restore(flags); | 426 | local_irq_restore(flags); |
418 | 427 | ||
419 | restart_nmi(); | 428 | restart_nmi(); |
420 | #ifdef CONFIG_MCE | 429 | #ifdef CONFIG_X86_MCE |
421 | restart_mce(); | 430 | restart_mce(); |
422 | #endif | 431 | #endif |
423 | } | 432 | } |
diff --git a/arch/i386/kernel/apic.c b/arch/i386/kernel/apic.c index bfc6cb7df7e7..f9fff29e01a9 100644 --- a/arch/i386/kernel/apic.c +++ b/arch/i386/kernel/apic.c | |||
@@ -61,8 +61,9 @@ static int enable_local_apic __initdata = 0; | |||
61 | 61 | ||
62 | /* Local APIC timer verification ok */ | 62 | /* Local APIC timer verification ok */ |
63 | static int local_apic_timer_verify_ok; | 63 | static int local_apic_timer_verify_ok; |
64 | /* Disable local APIC timer from the kernel commandline or via dmi quirk */ | 64 | /* Disable local APIC timer from the kernel commandline or via dmi quirk |
65 | static int local_apic_timer_disabled; | 65 | or using CPU MSR check */ |
66 | int local_apic_timer_disabled; | ||
66 | /* Local APIC timer works in C2 */ | 67 | /* Local APIC timer works in C2 */ |
67 | int local_apic_timer_c2_ok; | 68 | int local_apic_timer_c2_ok; |
68 | EXPORT_SYMBOL_GPL(local_apic_timer_c2_ok); | 69 | EXPORT_SYMBOL_GPL(local_apic_timer_c2_ok); |
@@ -370,12 +371,9 @@ void __init setup_boot_APIC_clock(void) | |||
370 | long delta, deltapm; | 371 | long delta, deltapm; |
371 | int pm_referenced = 0; | 372 | int pm_referenced = 0; |
372 | 373 | ||
373 | if (boot_cpu_has(X86_FEATURE_LAPIC_TIMER_BROKEN)) | ||
374 | local_apic_timer_disabled = 1; | ||
375 | |||
376 | /* | 374 | /* |
377 | * The local apic timer can be disabled via the kernel | 375 | * The local apic timer can be disabled via the kernel |
378 | * commandline or from the test above. Register the lapic | 376 | * commandline or from the CPU detection code. Register the lapic |
379 | * timer as a dummy clock event source on SMP systems, so the | 377 | * timer as a dummy clock event source on SMP systems, so the |
380 | * broadcast mechanism is used. On UP systems simply ignore it. | 378 | * broadcast mechanism is used. On UP systems simply ignore it. |
381 | */ | 379 | */ |
diff --git a/arch/i386/kernel/cpu/amd.c b/arch/i386/kernel/cpu/amd.c index c7ba455d5ac7..dcf6bbb1c7c0 100644 --- a/arch/i386/kernel/cpu/amd.c +++ b/arch/i386/kernel/cpu/amd.c | |||
@@ -3,6 +3,7 @@ | |||
3 | #include <linux/mm.h> | 3 | #include <linux/mm.h> |
4 | #include <asm/io.h> | 4 | #include <asm/io.h> |
5 | #include <asm/processor.h> | 5 | #include <asm/processor.h> |
6 | #include <asm/apic.h> | ||
6 | 7 | ||
7 | #include "cpu.h" | 8 | #include "cpu.h" |
8 | 9 | ||
@@ -22,6 +23,7 @@ | |||
22 | extern void vide(void); | 23 | extern void vide(void); |
23 | __asm__(".align 4\nvide: ret"); | 24 | __asm__(".align 4\nvide: ret"); |
24 | 25 | ||
26 | #ifdef CONFIG_X86_LOCAL_APIC | ||
25 | #define ENABLE_C1E_MASK 0x18000000 | 27 | #define ENABLE_C1E_MASK 0x18000000 |
26 | #define CPUID_PROCESSOR_SIGNATURE 1 | 28 | #define CPUID_PROCESSOR_SIGNATURE 1 |
27 | #define CPUID_XFAM 0x0ff00000 | 29 | #define CPUID_XFAM 0x0ff00000 |
@@ -52,6 +54,7 @@ static __cpuinit int amd_apic_timer_broken(void) | |||
52 | } | 54 | } |
53 | return 0; | 55 | return 0; |
54 | } | 56 | } |
57 | #endif | ||
55 | 58 | ||
56 | int force_mwait __cpuinitdata; | 59 | int force_mwait __cpuinitdata; |
57 | 60 | ||
@@ -282,8 +285,10 @@ static void __cpuinit init_amd(struct cpuinfo_x86 *c) | |||
282 | num_cache_leaves = 3; | 285 | num_cache_leaves = 3; |
283 | } | 286 | } |
284 | 287 | ||
288 | #ifdef CONFIG_X86_LOCAL_APIC | ||
285 | if (amd_apic_timer_broken()) | 289 | if (amd_apic_timer_broken()) |
286 | set_bit(X86_FEATURE_LAPIC_TIMER_BROKEN, c->x86_capability); | 290 | local_apic_timer_disabled = 1; |
291 | #endif | ||
287 | 292 | ||
288 | if (c->x86 == 0x10 && !force_mwait) | 293 | if (c->x86 == 0x10 && !force_mwait) |
289 | clear_bit(X86_FEATURE_MWAIT, c->x86_capability); | 294 | clear_bit(X86_FEATURE_MWAIT, c->x86_capability); |
diff --git a/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c b/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c index 32d04b083e38..705e13a30781 100644 --- a/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c +++ b/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c | |||
@@ -68,7 +68,8 @@ struct acpi_cpufreq_data { | |||
68 | }; | 68 | }; |
69 | 69 | ||
70 | static struct acpi_cpufreq_data *drv_data[NR_CPUS]; | 70 | static struct acpi_cpufreq_data *drv_data[NR_CPUS]; |
71 | static struct acpi_processor_performance *acpi_perf_data[NR_CPUS]; | 71 | /* acpi_perf_data is a pointer to percpu data. */ |
72 | static struct acpi_processor_performance *acpi_perf_data; | ||
72 | 73 | ||
73 | static struct cpufreq_driver acpi_cpufreq_driver; | 74 | static struct cpufreq_driver acpi_cpufreq_driver; |
74 | 75 | ||
@@ -508,24 +509,14 @@ acpi_cpufreq_guess_freq(struct acpi_cpufreq_data *data, unsigned int cpu) | |||
508 | * do _PDC and _PSD and find out the processor dependency for the | 509 | * do _PDC and _PSD and find out the processor dependency for the |
509 | * actual init that will happen later... | 510 | * actual init that will happen later... |
510 | */ | 511 | */ |
511 | static int acpi_cpufreq_early_init(void) | 512 | static int __init acpi_cpufreq_early_init(void) |
512 | { | 513 | { |
513 | struct acpi_processor_performance *data; | ||
514 | unsigned int i, j; | ||
515 | |||
516 | dprintk("acpi_cpufreq_early_init\n"); | 514 | dprintk("acpi_cpufreq_early_init\n"); |
517 | 515 | ||
518 | for_each_possible_cpu(i) { | 516 | acpi_perf_data = alloc_percpu(struct acpi_processor_performance); |
519 | data = kzalloc(sizeof(struct acpi_processor_performance), | 517 | if (!acpi_perf_data) { |
520 | GFP_KERNEL); | 518 | dprintk("Memory allocation error for acpi_perf_data.\n"); |
521 | if (!data) { | 519 | return -ENOMEM; |
522 | for_each_possible_cpu(j) { | ||
523 | kfree(acpi_perf_data[j]); | ||
524 | acpi_perf_data[j] = NULL; | ||
525 | } | ||
526 | return -ENOMEM; | ||
527 | } | ||
528 | acpi_perf_data[i] = data; | ||
529 | } | 520 | } |
530 | 521 | ||
531 | /* Do initialization in ACPI core */ | 522 | /* Do initialization in ACPI core */ |
@@ -574,14 +565,11 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy) | |||
574 | 565 | ||
575 | dprintk("acpi_cpufreq_cpu_init\n"); | 566 | dprintk("acpi_cpufreq_cpu_init\n"); |
576 | 567 | ||
577 | if (!acpi_perf_data[cpu]) | ||
578 | return -ENODEV; | ||
579 | |||
580 | data = kzalloc(sizeof(struct acpi_cpufreq_data), GFP_KERNEL); | 568 | data = kzalloc(sizeof(struct acpi_cpufreq_data), GFP_KERNEL); |
581 | if (!data) | 569 | if (!data) |
582 | return -ENOMEM; | 570 | return -ENOMEM; |
583 | 571 | ||
584 | data->acpi_data = acpi_perf_data[cpu]; | 572 | data->acpi_data = percpu_ptr(acpi_perf_data, cpu); |
585 | drv_data[cpu] = data; | 573 | drv_data[cpu] = data; |
586 | 574 | ||
587 | if (cpu_has(c, X86_FEATURE_CONSTANT_TSC)) | 575 | if (cpu_has(c, X86_FEATURE_CONSTANT_TSC)) |
@@ -778,24 +766,25 @@ static struct cpufreq_driver acpi_cpufreq_driver = { | |||
778 | 766 | ||
779 | static int __init acpi_cpufreq_init(void) | 767 | static int __init acpi_cpufreq_init(void) |
780 | { | 768 | { |
769 | int ret; | ||
770 | |||
781 | dprintk("acpi_cpufreq_init\n"); | 771 | dprintk("acpi_cpufreq_init\n"); |
782 | 772 | ||
783 | acpi_cpufreq_early_init(); | 773 | ret = acpi_cpufreq_early_init(); |
774 | if (ret) | ||
775 | return ret; | ||
784 | 776 | ||
785 | return cpufreq_register_driver(&acpi_cpufreq_driver); | 777 | return cpufreq_register_driver(&acpi_cpufreq_driver); |
786 | } | 778 | } |
787 | 779 | ||
788 | static void __exit acpi_cpufreq_exit(void) | 780 | static void __exit acpi_cpufreq_exit(void) |
789 | { | 781 | { |
790 | unsigned int i; | ||
791 | dprintk("acpi_cpufreq_exit\n"); | 782 | dprintk("acpi_cpufreq_exit\n"); |
792 | 783 | ||
793 | cpufreq_unregister_driver(&acpi_cpufreq_driver); | 784 | cpufreq_unregister_driver(&acpi_cpufreq_driver); |
794 | 785 | ||
795 | for_each_possible_cpu(i) { | 786 | free_percpu(acpi_perf_data); |
796 | kfree(acpi_perf_data[i]); | 787 | |
797 | acpi_perf_data[i] = NULL; | ||
798 | } | ||
799 | return; | 788 | return; |
800 | } | 789 | } |
801 | 790 | ||
diff --git a/arch/i386/kernel/doublefault.c b/arch/i386/kernel/doublefault.c index 265c5597efb0..40978af630e7 100644 --- a/arch/i386/kernel/doublefault.c +++ b/arch/i386/kernel/doublefault.c | |||
@@ -13,7 +13,7 @@ | |||
13 | static unsigned long doublefault_stack[DOUBLEFAULT_STACKSIZE]; | 13 | static unsigned long doublefault_stack[DOUBLEFAULT_STACKSIZE]; |
14 | #define STACK_START (unsigned long)(doublefault_stack+DOUBLEFAULT_STACKSIZE) | 14 | #define STACK_START (unsigned long)(doublefault_stack+DOUBLEFAULT_STACKSIZE) |
15 | 15 | ||
16 | #define ptr_ok(x) ((x) > PAGE_OFFSET && (x) < PAGE_OFFSET + 0x1000000) | 16 | #define ptr_ok(x) ((x) > PAGE_OFFSET && (x) < PAGE_OFFSET + MAXMEM) |
17 | 17 | ||
18 | static void doublefault_fn(void) | 18 | static void doublefault_fn(void) |
19 | { | 19 | { |
@@ -23,23 +23,23 @@ static void doublefault_fn(void) | |||
23 | store_gdt(&gdt_desc); | 23 | store_gdt(&gdt_desc); |
24 | gdt = gdt_desc.address; | 24 | gdt = gdt_desc.address; |
25 | 25 | ||
26 | printk("double fault, gdt at %08lx [%d bytes]\n", gdt, gdt_desc.size); | 26 | printk(KERN_EMERG "PANIC: double fault, gdt at %08lx [%d bytes]\n", gdt, gdt_desc.size); |
27 | 27 | ||
28 | if (ptr_ok(gdt)) { | 28 | if (ptr_ok(gdt)) { |
29 | gdt += GDT_ENTRY_TSS << 3; | 29 | gdt += GDT_ENTRY_TSS << 3; |
30 | tss = *(u16 *)(gdt+2); | 30 | tss = *(u16 *)(gdt+2); |
31 | tss += *(u8 *)(gdt+4) << 16; | 31 | tss += *(u8 *)(gdt+4) << 16; |
32 | tss += *(u8 *)(gdt+7) << 24; | 32 | tss += *(u8 *)(gdt+7) << 24; |
33 | printk("double fault, tss at %08lx\n", tss); | 33 | printk(KERN_EMERG "double fault, tss at %08lx\n", tss); |
34 | 34 | ||
35 | if (ptr_ok(tss)) { | 35 | if (ptr_ok(tss)) { |
36 | struct i386_hw_tss *t = (struct i386_hw_tss *)tss; | 36 | struct i386_hw_tss *t = (struct i386_hw_tss *)tss; |
37 | 37 | ||
38 | printk("eip = %08lx, esp = %08lx\n", t->eip, t->esp); | 38 | printk(KERN_EMERG "eip = %08lx, esp = %08lx\n", t->eip, t->esp); |
39 | 39 | ||
40 | printk("eax = %08lx, ebx = %08lx, ecx = %08lx, edx = %08lx\n", | 40 | printk(KERN_EMERG "eax = %08lx, ebx = %08lx, ecx = %08lx, edx = %08lx\n", |
41 | t->eax, t->ebx, t->ecx, t->edx); | 41 | t->eax, t->ebx, t->ecx, t->edx); |
42 | printk("esi = %08lx, edi = %08lx\n", | 42 | printk(KERN_EMERG "esi = %08lx, edi = %08lx\n", |
43 | t->esi, t->edi); | 43 | t->esi, t->edi); |
44 | } | 44 | } |
45 | } | 45 | } |
@@ -63,6 +63,7 @@ struct tss_struct doublefault_tss __cacheline_aligned = { | |||
63 | .cs = __KERNEL_CS, | 63 | .cs = __KERNEL_CS, |
64 | .ss = __KERNEL_DS, | 64 | .ss = __KERNEL_DS, |
65 | .ds = __USER_DS, | 65 | .ds = __USER_DS, |
66 | .fs = __KERNEL_PERCPU, | ||
66 | 67 | ||
67 | .__cr3 = __pa(swapper_pg_dir) | 68 | .__cr3 = __pa(swapper_pg_dir) |
68 | } | 69 | } |
diff --git a/arch/i386/kernel/head.S b/arch/i386/kernel/head.S index 7c52b222207e..8f0382161c91 100644 --- a/arch/i386/kernel/head.S +++ b/arch/i386/kernel/head.S | |||
@@ -162,9 +162,7 @@ page_pde_offset = (__PAGE_OFFSET >> 20); | |||
162 | * which will be freed later | 162 | * which will be freed later |
163 | */ | 163 | */ |
164 | 164 | ||
165 | #ifdef CONFIG_HOTPLUG_CPU | 165 | #ifndef CONFIG_HOTPLUG_CPU |
166 | .section .text,"ax",@progbits | ||
167 | #else | ||
168 | .section .init.text,"ax",@progbits | 166 | .section .init.text,"ax",@progbits |
169 | #endif | 167 | #endif |
170 | 168 | ||
diff --git a/arch/i386/kernel/io_apic.c b/arch/i386/kernel/io_apic.c index 893df8280756..4b8a8da4b2e0 100644 --- a/arch/i386/kernel/io_apic.c +++ b/arch/i386/kernel/io_apic.c | |||
@@ -1256,12 +1256,15 @@ static struct irq_chip ioapic_chip; | |||
1256 | static void ioapic_register_intr(int irq, int vector, unsigned long trigger) | 1256 | static void ioapic_register_intr(int irq, int vector, unsigned long trigger) |
1257 | { | 1257 | { |
1258 | if ((trigger == IOAPIC_AUTO && IO_APIC_irq_trigger(irq)) || | 1258 | if ((trigger == IOAPIC_AUTO && IO_APIC_irq_trigger(irq)) || |
1259 | trigger == IOAPIC_LEVEL) | 1259 | trigger == IOAPIC_LEVEL) { |
1260 | irq_desc[irq].status |= IRQ_LEVEL; | ||
1260 | set_irq_chip_and_handler_name(irq, &ioapic_chip, | 1261 | set_irq_chip_and_handler_name(irq, &ioapic_chip, |
1261 | handle_fasteoi_irq, "fasteoi"); | 1262 | handle_fasteoi_irq, "fasteoi"); |
1262 | else | 1263 | } else { |
1264 | irq_desc[irq].status &= ~IRQ_LEVEL; | ||
1263 | set_irq_chip_and_handler_name(irq, &ioapic_chip, | 1265 | set_irq_chip_and_handler_name(irq, &ioapic_chip, |
1264 | handle_edge_irq, "edge"); | 1266 | handle_edge_irq, "edge"); |
1267 | } | ||
1265 | set_intr_gate(vector, interrupt[irq]); | 1268 | set_intr_gate(vector, interrupt[irq]); |
1266 | } | 1269 | } |
1267 | 1270 | ||
diff --git a/arch/i386/kernel/paravirt.c b/arch/i386/kernel/paravirt.c index ea962c0667d5..739cfb207dd7 100644 --- a/arch/i386/kernel/paravirt.c +++ b/arch/i386/kernel/paravirt.c | |||
@@ -69,7 +69,8 @@ DEF_NATIVE(read_tsc, "rdtsc"); | |||
69 | 69 | ||
70 | DEF_NATIVE(ud2a, "ud2a"); | 70 | DEF_NATIVE(ud2a, "ud2a"); |
71 | 71 | ||
72 | static unsigned native_patch(u8 type, u16 clobbers, void *insns, unsigned len) | 72 | static unsigned native_patch(u8 type, u16 clobbers, void *ibuf, |
73 | unsigned long addr, unsigned len) | ||
73 | { | 74 | { |
74 | const unsigned char *start, *end; | 75 | const unsigned char *start, *end; |
75 | unsigned ret; | 76 | unsigned ret; |
@@ -90,7 +91,7 @@ static unsigned native_patch(u8 type, u16 clobbers, void *insns, unsigned len) | |||
90 | #undef SITE | 91 | #undef SITE |
91 | 92 | ||
92 | patch_site: | 93 | patch_site: |
93 | ret = paravirt_patch_insns(insns, len, start, end); | 94 | ret = paravirt_patch_insns(ibuf, len, start, end); |
94 | break; | 95 | break; |
95 | 96 | ||
96 | case PARAVIRT_PATCH(make_pgd): | 97 | case PARAVIRT_PATCH(make_pgd): |
@@ -107,7 +108,7 @@ static unsigned native_patch(u8 type, u16 clobbers, void *insns, unsigned len) | |||
107 | break; | 108 | break; |
108 | 109 | ||
109 | default: | 110 | default: |
110 | ret = paravirt_patch_default(type, clobbers, insns, len); | 111 | ret = paravirt_patch_default(type, clobbers, ibuf, addr, len); |
111 | break; | 112 | break; |
112 | } | 113 | } |
113 | 114 | ||
@@ -129,68 +130,67 @@ struct branch { | |||
129 | u32 delta; | 130 | u32 delta; |
130 | } __attribute__((packed)); | 131 | } __attribute__((packed)); |
131 | 132 | ||
132 | unsigned paravirt_patch_call(void *target, u16 tgt_clobbers, | 133 | unsigned paravirt_patch_call(void *insnbuf, |
133 | void *site, u16 site_clobbers, | 134 | const void *target, u16 tgt_clobbers, |
135 | unsigned long addr, u16 site_clobbers, | ||
134 | unsigned len) | 136 | unsigned len) |
135 | { | 137 | { |
136 | unsigned char *call = site; | 138 | struct branch *b = insnbuf; |
137 | unsigned long delta = (unsigned long)target - (unsigned long)(call+5); | 139 | unsigned long delta = (unsigned long)target - (addr+5); |
138 | struct branch b; | ||
139 | 140 | ||
140 | if (tgt_clobbers & ~site_clobbers) | 141 | if (tgt_clobbers & ~site_clobbers) |
141 | return len; /* target would clobber too much for this site */ | 142 | return len; /* target would clobber too much for this site */ |
142 | if (len < 5) | 143 | if (len < 5) |
143 | return len; /* call too long for patch site */ | 144 | return len; /* call too long for patch site */ |
144 | 145 | ||
145 | b.opcode = 0xe8; /* call */ | 146 | b->opcode = 0xe8; /* call */ |
146 | b.delta = delta; | 147 | b->delta = delta; |
147 | BUILD_BUG_ON(sizeof(b) != 5); | 148 | BUILD_BUG_ON(sizeof(*b) != 5); |
148 | text_poke(call, (unsigned char *)&b, 5); | ||
149 | 149 | ||
150 | return 5; | 150 | return 5; |
151 | } | 151 | } |
152 | 152 | ||
153 | unsigned paravirt_patch_jmp(void *target, void *site, unsigned len) | 153 | unsigned paravirt_patch_jmp(const void *target, void *insnbuf, |
154 | unsigned long addr, unsigned len) | ||
154 | { | 155 | { |
155 | unsigned char *jmp = site; | 156 | struct branch *b = insnbuf; |
156 | unsigned long delta = (unsigned long)target - (unsigned long)(jmp+5); | 157 | unsigned long delta = (unsigned long)target - (addr+5); |
157 | struct branch b; | ||
158 | 158 | ||
159 | if (len < 5) | 159 | if (len < 5) |
160 | return len; /* call too long for patch site */ | 160 | return len; /* call too long for patch site */ |
161 | 161 | ||
162 | b.opcode = 0xe9; /* jmp */ | 162 | b->opcode = 0xe9; /* jmp */ |
163 | b.delta = delta; | 163 | b->delta = delta; |
164 | text_poke(jmp, (unsigned char *)&b, 5); | ||
165 | 164 | ||
166 | return 5; | 165 | return 5; |
167 | } | 166 | } |
168 | 167 | ||
169 | unsigned paravirt_patch_default(u8 type, u16 clobbers, void *site, unsigned len) | 168 | unsigned paravirt_patch_default(u8 type, u16 clobbers, void *insnbuf, |
169 | unsigned long addr, unsigned len) | ||
170 | { | 170 | { |
171 | void *opfunc = *((void **)¶virt_ops + type); | 171 | void *opfunc = *((void **)¶virt_ops + type); |
172 | unsigned ret; | 172 | unsigned ret; |
173 | 173 | ||
174 | if (opfunc == NULL) | 174 | if (opfunc == NULL) |
175 | /* If there's no function, patch it with a ud2a (BUG) */ | 175 | /* If there's no function, patch it with a ud2a (BUG) */ |
176 | ret = paravirt_patch_insns(site, len, start_ud2a, end_ud2a); | 176 | ret = paravirt_patch_insns(insnbuf, len, start_ud2a, end_ud2a); |
177 | else if (opfunc == paravirt_nop) | 177 | else if (opfunc == paravirt_nop) |
178 | /* If the operation is a nop, then nop the callsite */ | 178 | /* If the operation is a nop, then nop the callsite */ |
179 | ret = paravirt_patch_nop(); | 179 | ret = paravirt_patch_nop(); |
180 | else if (type == PARAVIRT_PATCH(iret) || | 180 | else if (type == PARAVIRT_PATCH(iret) || |
181 | type == PARAVIRT_PATCH(irq_enable_sysexit)) | 181 | type == PARAVIRT_PATCH(irq_enable_sysexit)) |
182 | /* If operation requires a jmp, then jmp */ | 182 | /* If operation requires a jmp, then jmp */ |
183 | ret = paravirt_patch_jmp(opfunc, site, len); | 183 | ret = paravirt_patch_jmp(opfunc, insnbuf, addr, len); |
184 | else | 184 | else |
185 | /* Otherwise call the function; assume target could | 185 | /* Otherwise call the function; assume target could |
186 | clobber any caller-save reg */ | 186 | clobber any caller-save reg */ |
187 | ret = paravirt_patch_call(opfunc, CLBR_ANY, | 187 | ret = paravirt_patch_call(insnbuf, opfunc, CLBR_ANY, |
188 | site, clobbers, len); | 188 | addr, clobbers, len); |
189 | 189 | ||
190 | return ret; | 190 | return ret; |
191 | } | 191 | } |
192 | 192 | ||
193 | unsigned paravirt_patch_insns(void *site, unsigned len, | 193 | unsigned paravirt_patch_insns(void *insnbuf, unsigned len, |
194 | const char *start, const char *end) | 194 | const char *start, const char *end) |
195 | { | 195 | { |
196 | unsigned insn_len = end - start; | 196 | unsigned insn_len = end - start; |
@@ -198,7 +198,7 @@ unsigned paravirt_patch_insns(void *site, unsigned len, | |||
198 | if (insn_len > len || start == NULL) | 198 | if (insn_len > len || start == NULL) |
199 | insn_len = len; | 199 | insn_len = len; |
200 | else | 200 | else |
201 | memcpy(site, start, insn_len); | 201 | memcpy(insnbuf, start, insn_len); |
202 | 202 | ||
203 | return insn_len; | 203 | return insn_len; |
204 | } | 204 | } |
diff --git a/arch/i386/kernel/vmi.c b/arch/i386/kernel/vmi.c index 72042bb7ec94..18673e0f193b 100644 --- a/arch/i386/kernel/vmi.c +++ b/arch/i386/kernel/vmi.c | |||
@@ -87,12 +87,14 @@ struct vmi_timer_ops vmi_timer_ops; | |||
87 | #define IRQ_PATCH_INT_MASK 0 | 87 | #define IRQ_PATCH_INT_MASK 0 |
88 | #define IRQ_PATCH_DISABLE 5 | 88 | #define IRQ_PATCH_DISABLE 5 |
89 | 89 | ||
90 | static inline void patch_offset(unsigned char *eip, unsigned char *dest) | 90 | static inline void patch_offset(void *insnbuf, |
91 | unsigned long eip, unsigned long dest) | ||
91 | { | 92 | { |
92 | *(unsigned long *)(eip+1) = dest-eip-5; | 93 | *(unsigned long *)(insnbuf+1) = dest-eip-5; |
93 | } | 94 | } |
94 | 95 | ||
95 | static unsigned patch_internal(int call, unsigned len, void *insns) | 96 | static unsigned patch_internal(int call, unsigned len, void *insnbuf, |
97 | unsigned long eip) | ||
96 | { | 98 | { |
97 | u64 reloc; | 99 | u64 reloc; |
98 | struct vmi_relocation_info *const rel = (struct vmi_relocation_info *)&reloc; | 100 | struct vmi_relocation_info *const rel = (struct vmi_relocation_info *)&reloc; |
@@ -100,14 +102,14 @@ static unsigned patch_internal(int call, unsigned len, void *insns) | |||
100 | switch(rel->type) { | 102 | switch(rel->type) { |
101 | case VMI_RELOCATION_CALL_REL: | 103 | case VMI_RELOCATION_CALL_REL: |
102 | BUG_ON(len < 5); | 104 | BUG_ON(len < 5); |
103 | *(char *)insns = MNEM_CALL; | 105 | *(char *)insnbuf = MNEM_CALL; |
104 | patch_offset(insns, rel->eip); | 106 | patch_offset(insnbuf, eip, (unsigned long)rel->eip); |
105 | return 5; | 107 | return 5; |
106 | 108 | ||
107 | case VMI_RELOCATION_JUMP_REL: | 109 | case VMI_RELOCATION_JUMP_REL: |
108 | BUG_ON(len < 5); | 110 | BUG_ON(len < 5); |
109 | *(char *)insns = MNEM_JMP; | 111 | *(char *)insnbuf = MNEM_JMP; |
110 | patch_offset(insns, rel->eip); | 112 | patch_offset(insnbuf, eip, (unsigned long)rel->eip); |
111 | return 5; | 113 | return 5; |
112 | 114 | ||
113 | case VMI_RELOCATION_NOP: | 115 | case VMI_RELOCATION_NOP: |
@@ -128,21 +130,26 @@ static unsigned patch_internal(int call, unsigned len, void *insns) | |||
128 | * Apply patch if appropriate, return length of new instruction | 130 | * Apply patch if appropriate, return length of new instruction |
129 | * sequence. The callee does nop padding for us. | 131 | * sequence. The callee does nop padding for us. |
130 | */ | 132 | */ |
131 | static unsigned vmi_patch(u8 type, u16 clobbers, void *insns, unsigned len) | 133 | static unsigned vmi_patch(u8 type, u16 clobbers, void *insns, |
134 | unsigned long eip, unsigned len) | ||
132 | { | 135 | { |
133 | switch (type) { | 136 | switch (type) { |
134 | case PARAVIRT_PATCH(irq_disable): | 137 | case PARAVIRT_PATCH(irq_disable): |
135 | return patch_internal(VMI_CALL_DisableInterrupts, len, insns); | 138 | return patch_internal(VMI_CALL_DisableInterrupts, len, |
139 | insns, eip); | ||
136 | case PARAVIRT_PATCH(irq_enable): | 140 | case PARAVIRT_PATCH(irq_enable): |
137 | return patch_internal(VMI_CALL_EnableInterrupts, len, insns); | 141 | return patch_internal(VMI_CALL_EnableInterrupts, len, |
142 | insns, eip); | ||
138 | case PARAVIRT_PATCH(restore_fl): | 143 | case PARAVIRT_PATCH(restore_fl): |
139 | return patch_internal(VMI_CALL_SetInterruptMask, len, insns); | 144 | return patch_internal(VMI_CALL_SetInterruptMask, len, |
145 | insns, eip); | ||
140 | case PARAVIRT_PATCH(save_fl): | 146 | case PARAVIRT_PATCH(save_fl): |
141 | return patch_internal(VMI_CALL_GetInterruptMask, len, insns); | 147 | return patch_internal(VMI_CALL_GetInterruptMask, len, |
148 | insns, eip); | ||
142 | case PARAVIRT_PATCH(iret): | 149 | case PARAVIRT_PATCH(iret): |
143 | return patch_internal(VMI_CALL_IRET, len, insns); | 150 | return patch_internal(VMI_CALL_IRET, len, insns, eip); |
144 | case PARAVIRT_PATCH(irq_enable_sysexit): | 151 | case PARAVIRT_PATCH(irq_enable_sysexit): |
145 | return patch_internal(VMI_CALL_SYSEXIT, len, insns); | 152 | return patch_internal(VMI_CALL_SYSEXIT, len, insns, eip); |
146 | default: | 153 | default: |
147 | break; | 154 | break; |
148 | } | 155 | } |
diff --git a/arch/i386/mm/pageattr.c b/arch/i386/mm/pageattr.c index 8927222b3ab2..4241a74d16c8 100644 --- a/arch/i386/mm/pageattr.c +++ b/arch/i386/mm/pageattr.c | |||
@@ -82,7 +82,7 @@ static void flush_kernel_map(void *arg) | |||
82 | struct page *p; | 82 | struct page *p; |
83 | 83 | ||
84 | /* High level code is not ready for clflush yet */ | 84 | /* High level code is not ready for clflush yet */ |
85 | if (cpu_has_clflush) { | 85 | if (0 && cpu_has_clflush) { |
86 | list_for_each_entry (p, lh, lru) | 86 | list_for_each_entry (p, lh, lru) |
87 | cache_flush_page(p); | 87 | cache_flush_page(p); |
88 | } else if (boot_cpu_data.x86_model >= 4) | 88 | } else if (boot_cpu_data.x86_model >= 4) |
diff --git a/arch/i386/pci/common.c b/arch/i386/pci/common.c index 85503deeda46..ebc6f3c66340 100644 --- a/arch/i386/pci/common.c +++ b/arch/i386/pci/common.c | |||
@@ -455,3 +455,26 @@ void pcibios_disable_device (struct pci_dev *dev) | |||
455 | if (!dev->msi_enabled && pcibios_disable_irq) | 455 | if (!dev->msi_enabled && pcibios_disable_irq) |
456 | pcibios_disable_irq(dev); | 456 | pcibios_disable_irq(dev); |
457 | } | 457 | } |
458 | |||
459 | struct pci_bus *pci_scan_bus_with_sysdata(int busno) | ||
460 | { | ||
461 | struct pci_bus *bus = NULL; | ||
462 | struct pci_sysdata *sd; | ||
463 | |||
464 | /* | ||
465 | * Allocate per-root-bus (not per bus) arch-specific data. | ||
466 | * TODO: leak; this memory is never freed. | ||
467 | * It's arguable whether it's worth the trouble to care. | ||
468 | */ | ||
469 | sd = kzalloc(sizeof(*sd), GFP_KERNEL); | ||
470 | if (!sd) { | ||
471 | printk(KERN_ERR "PCI: OOM, skipping PCI bus %02x\n", busno); | ||
472 | return NULL; | ||
473 | } | ||
474 | sd->node = -1; | ||
475 | bus = pci_scan_bus(busno, &pci_root_ops, sd); | ||
476 | if (!bus) | ||
477 | kfree(sd); | ||
478 | |||
479 | return bus; | ||
480 | } | ||
diff --git a/arch/i386/pci/fixup.c b/arch/i386/pci/fixup.c index e7306dbf6c42..c82cbf4c7226 100644 --- a/arch/i386/pci/fixup.c +++ b/arch/i386/pci/fixup.c | |||
@@ -25,9 +25,9 @@ static void __devinit pci_fixup_i450nx(struct pci_dev *d) | |||
25 | pci_read_config_byte(d, reg++, &subb); | 25 | pci_read_config_byte(d, reg++, &subb); |
26 | DBG("i450NX PXB %d: %02x/%02x/%02x\n", pxb, busno, suba, subb); | 26 | DBG("i450NX PXB %d: %02x/%02x/%02x\n", pxb, busno, suba, subb); |
27 | if (busno) | 27 | if (busno) |
28 | pci_scan_bus(busno, &pci_root_ops, NULL); /* Bus A */ | 28 | pci_scan_bus_with_sysdata(busno); /* Bus A */ |
29 | if (suba < subb) | 29 | if (suba < subb) |
30 | pci_scan_bus(suba+1, &pci_root_ops, NULL); /* Bus B */ | 30 | pci_scan_bus_with_sysdata(suba+1); /* Bus B */ |
31 | } | 31 | } |
32 | pcibios_last_bus = -1; | 32 | pcibios_last_bus = -1; |
33 | } | 33 | } |
@@ -42,7 +42,7 @@ static void __devinit pci_fixup_i450gx(struct pci_dev *d) | |||
42 | u8 busno; | 42 | u8 busno; |
43 | pci_read_config_byte(d, 0x4a, &busno); | 43 | pci_read_config_byte(d, 0x4a, &busno); |
44 | printk(KERN_INFO "PCI: i440KX/GX host bridge %s: secondary bus %02x\n", pci_name(d), busno); | 44 | printk(KERN_INFO "PCI: i440KX/GX host bridge %s: secondary bus %02x\n", pci_name(d), busno); |
45 | pci_scan_bus(busno, &pci_root_ops, NULL); | 45 | pci_scan_bus_with_sysdata(busno); |
46 | pcibios_last_bus = -1; | 46 | pcibios_last_bus = -1; |
47 | } | 47 | } |
48 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82454GX, pci_fixup_i450gx); | 48 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82454GX, pci_fixup_i450gx); |
diff --git a/arch/i386/pci/irq.c b/arch/i386/pci/irq.c index f2cb942f8281..665db063a40a 100644 --- a/arch/i386/pci/irq.c +++ b/arch/i386/pci/irq.c | |||
@@ -138,8 +138,9 @@ static void __init pirq_peer_trick(void) | |||
138 | for(i = 1; i < 256; i++) { | 138 | for(i = 1; i < 256; i++) { |
139 | if (!busmap[i] || pci_find_bus(0, i)) | 139 | if (!busmap[i] || pci_find_bus(0, i)) |
140 | continue; | 140 | continue; |
141 | if (pci_scan_bus(i, &pci_root_ops, NULL)) | 141 | if (pci_scan_bus_with_sysdata(i)) |
142 | printk(KERN_INFO "PCI: Discovered primary peer bus %02x [IRQ]\n", i); | 142 | printk(KERN_INFO "PCI: Discovered primary peer " |
143 | "bus %02x [IRQ]\n", i); | ||
143 | } | 144 | } |
144 | pcibios_last_bus = -1; | 145 | pcibios_last_bus = -1; |
145 | } | 146 | } |
diff --git a/arch/i386/pci/legacy.c b/arch/i386/pci/legacy.c index 149a9588c256..5565d7016b75 100644 --- a/arch/i386/pci/legacy.c +++ b/arch/i386/pci/legacy.c | |||
@@ -26,7 +26,7 @@ static void __devinit pcibios_fixup_peer_bridges(void) | |||
26 | l != 0x0000 && l != 0xffff) { | 26 | l != 0x0000 && l != 0xffff) { |
27 | DBG("Found device at %02x:%02x [%04x]\n", n, devfn, l); | 27 | DBG("Found device at %02x:%02x [%04x]\n", n, devfn, l); |
28 | printk(KERN_INFO "PCI: Discovered peer bus %02x\n", n); | 28 | printk(KERN_INFO "PCI: Discovered peer bus %02x\n", n); |
29 | pci_scan_bus(n, &pci_root_ops, NULL); | 29 | pci_scan_bus_with_sysdata(n); |
30 | break; | 30 | break; |
31 | } | 31 | } |
32 | } | 32 | } |
diff --git a/arch/i386/pci/mmconfig.c b/arch/i386/pci/mmconfig.c index bb1afd9e589d..1bf5816d34c8 100644 --- a/arch/i386/pci/mmconfig.c +++ b/arch/i386/pci/mmconfig.c | |||
@@ -82,16 +82,15 @@ static int pci_mmcfg_read(unsigned int seg, unsigned int bus, | |||
82 | 82 | ||
83 | switch (len) { | 83 | switch (len) { |
84 | case 1: | 84 | case 1: |
85 | *value = readb(mmcfg_virt_addr + reg); | 85 | *value = mmio_config_readb(mmcfg_virt_addr + reg); |
86 | break; | 86 | break; |
87 | case 2: | 87 | case 2: |
88 | *value = readw(mmcfg_virt_addr + reg); | 88 | *value = mmio_config_readw(mmcfg_virt_addr + reg); |
89 | break; | 89 | break; |
90 | case 4: | 90 | case 4: |
91 | *value = readl(mmcfg_virt_addr + reg); | 91 | *value = mmio_config_readl(mmcfg_virt_addr + reg); |
92 | break; | 92 | break; |
93 | } | 93 | } |
94 | |||
95 | spin_unlock_irqrestore(&pci_config_lock, flags); | 94 | spin_unlock_irqrestore(&pci_config_lock, flags); |
96 | 95 | ||
97 | return 0; | 96 | return 0; |
@@ -116,16 +115,15 @@ static int pci_mmcfg_write(unsigned int seg, unsigned int bus, | |||
116 | 115 | ||
117 | switch (len) { | 116 | switch (len) { |
118 | case 1: | 117 | case 1: |
119 | writeb(value, mmcfg_virt_addr + reg); | 118 | mmio_config_writeb(mmcfg_virt_addr + reg, value); |
120 | break; | 119 | break; |
121 | case 2: | 120 | case 2: |
122 | writew(value, mmcfg_virt_addr + reg); | 121 | mmio_config_writew(mmcfg_virt_addr + reg, value); |
123 | break; | 122 | break; |
124 | case 4: | 123 | case 4: |
125 | writel(value, mmcfg_virt_addr + reg); | 124 | mmio_config_writel(mmcfg_virt_addr + reg, value); |
126 | break; | 125 | break; |
127 | } | 126 | } |
128 | |||
129 | spin_unlock_irqrestore(&pci_config_lock, flags); | 127 | spin_unlock_irqrestore(&pci_config_lock, flags); |
130 | 128 | ||
131 | return 0; | 129 | return 0; |
diff --git a/arch/i386/pci/numa.c b/arch/i386/pci/numa.c index adbe17a38f6f..f5f165f69e0c 100644 --- a/arch/i386/pci/numa.c +++ b/arch/i386/pci/numa.c | |||
@@ -96,10 +96,14 @@ static void __devinit pci_fixup_i450nx(struct pci_dev *d) | |||
96 | pci_read_config_byte(d, reg++, &suba); | 96 | pci_read_config_byte(d, reg++, &suba); |
97 | pci_read_config_byte(d, reg++, &subb); | 97 | pci_read_config_byte(d, reg++, &subb); |
98 | DBG("i450NX PXB %d: %02x/%02x/%02x\n", pxb, busno, suba, subb); | 98 | DBG("i450NX PXB %d: %02x/%02x/%02x\n", pxb, busno, suba, subb); |
99 | if (busno) | 99 | if (busno) { |
100 | pci_scan_bus(QUADLOCAL2BUS(quad,busno), &pci_root_ops, NULL); /* Bus A */ | 100 | /* Bus A */ |
101 | if (suba < subb) | 101 | pci_scan_bus_with_sysdata(QUADLOCAL2BUS(quad, busno)); |
102 | pci_scan_bus(QUADLOCAL2BUS(quad,suba+1), &pci_root_ops, NULL); /* Bus B */ | 102 | } |
103 | if (suba < subb) { | ||
104 | /* Bus B */ | ||
105 | pci_scan_bus_with_sysdata(QUADLOCAL2BUS(quad, suba+1)); | ||
106 | } | ||
103 | } | 107 | } |
104 | pcibios_last_bus = -1; | 108 | pcibios_last_bus = -1; |
105 | } | 109 | } |
@@ -123,8 +127,7 @@ static int __init pci_numa_init(void) | |||
123 | continue; | 127 | continue; |
124 | printk("Scanning PCI bus %d for quad %d\n", | 128 | printk("Scanning PCI bus %d for quad %d\n", |
125 | QUADLOCAL2BUS(quad,0), quad); | 129 | QUADLOCAL2BUS(quad,0), quad); |
126 | pci_scan_bus(QUADLOCAL2BUS(quad,0), | 130 | pci_scan_bus_with_sysdata(QUADLOCAL2BUS(quad, 0)); |
127 | &pci_root_ops, NULL); | ||
128 | } | 131 | } |
129 | return 0; | 132 | return 0; |
130 | } | 133 | } |
diff --git a/arch/i386/pci/pci.h b/arch/i386/pci/pci.h index e58bae2076ad..8c66f275756f 100644 --- a/arch/i386/pci/pci.h +++ b/arch/i386/pci/pci.h | |||
@@ -104,3 +104,46 @@ extern DECLARE_BITMAP(pci_mmcfg_fallback_slots, 32*PCI_MMCFG_MAX_CHECK_BUS); | |||
104 | extern int __init pci_mmcfg_arch_reachable(unsigned int seg, unsigned int bus, | 104 | extern int __init pci_mmcfg_arch_reachable(unsigned int seg, unsigned int bus, |
105 | unsigned int devfn); | 105 | unsigned int devfn); |
106 | extern int __init pci_mmcfg_arch_init(void); | 106 | extern int __init pci_mmcfg_arch_init(void); |
107 | |||
108 | /* | ||
109 | * AMD Fam10h CPUs are buggy, and cannot access MMIO config space | ||
110 | * on their northbrige except through the * %eax register. As such, you MUST | ||
111 | * NOT use normal IOMEM accesses, you need to only use the magic mmio-config | ||
112 | * accessor functions. | ||
113 | * In fact just use pci_config_*, nothing else please. | ||
114 | */ | ||
115 | static inline unsigned char mmio_config_readb(void __iomem *pos) | ||
116 | { | ||
117 | u8 val; | ||
118 | asm volatile("movb (%1),%%al" : "=a" (val) : "r" (pos)); | ||
119 | return val; | ||
120 | } | ||
121 | |||
122 | static inline unsigned short mmio_config_readw(void __iomem *pos) | ||
123 | { | ||
124 | u16 val; | ||
125 | asm volatile("movw (%1),%%ax" : "=a" (val) : "r" (pos)); | ||
126 | return val; | ||
127 | } | ||
128 | |||
129 | static inline unsigned int mmio_config_readl(void __iomem *pos) | ||
130 | { | ||
131 | u32 val; | ||
132 | asm volatile("movl (%1),%%eax" : "=a" (val) : "r" (pos)); | ||
133 | return val; | ||
134 | } | ||
135 | |||
136 | static inline void mmio_config_writeb(void __iomem *pos, u8 val) | ||
137 | { | ||
138 | asm volatile("movb %%al,(%1)" :: "a" (val), "r" (pos) : "memory"); | ||
139 | } | ||
140 | |||
141 | static inline void mmio_config_writew(void __iomem *pos, u16 val) | ||
142 | { | ||
143 | asm volatile("movw %%ax,(%1)" :: "a" (val), "r" (pos) : "memory"); | ||
144 | } | ||
145 | |||
146 | static inline void mmio_config_writel(void __iomem *pos, u32 val) | ||
147 | { | ||
148 | asm volatile("movl %%eax,(%1)" :: "a" (val), "r" (pos) : "memory"); | ||
149 | } | ||
diff --git a/arch/i386/pci/visws.c b/arch/i386/pci/visws.c index f1b486d4190b..8ecb1c722594 100644 --- a/arch/i386/pci/visws.c +++ b/arch/i386/pci/visws.c | |||
@@ -101,8 +101,8 @@ static int __init pcibios_init(void) | |||
101 | "bridge B (PIIX4) bus: %u\n", pci_bus1, pci_bus0); | 101 | "bridge B (PIIX4) bus: %u\n", pci_bus1, pci_bus0); |
102 | 102 | ||
103 | raw_pci_ops = &pci_direct_conf1; | 103 | raw_pci_ops = &pci_direct_conf1; |
104 | pci_scan_bus(pci_bus0, &pci_root_ops, NULL); | 104 | pci_scan_bus_with_sysdata(pci_bus0); |
105 | pci_scan_bus(pci_bus1, &pci_root_ops, NULL); | 105 | pci_scan_bus_with_sysdata(pci_bus1); |
106 | pci_fixup_irqs(visws_swizzle, visws_map_irq); | 106 | pci_fixup_irqs(visws_swizzle, visws_map_irq); |
107 | pcibios_resource_survey(); | 107 | pcibios_resource_survey(); |
108 | return 0; | 108 | return 0; |
diff --git a/arch/i386/xen/enlighten.c b/arch/i386/xen/enlighten.c index 9a8c1181c001..f0c37511d8da 100644 --- a/arch/i386/xen/enlighten.c +++ b/arch/i386/xen/enlighten.c | |||
@@ -842,7 +842,8 @@ void __init xen_setup_vcpu_info_placement(void) | |||
842 | } | 842 | } |
843 | } | 843 | } |
844 | 844 | ||
845 | static unsigned xen_patch(u8 type, u16 clobbers, void *insns, unsigned len) | 845 | static unsigned xen_patch(u8 type, u16 clobbers, void *insnbuf, |
846 | unsigned long addr, unsigned len) | ||
846 | { | 847 | { |
847 | char *start, *end, *reloc; | 848 | char *start, *end, *reloc; |
848 | unsigned ret; | 849 | unsigned ret; |
@@ -869,7 +870,7 @@ static unsigned xen_patch(u8 type, u16 clobbers, void *insns, unsigned len) | |||
869 | if (start == NULL || (end-start) > len) | 870 | if (start == NULL || (end-start) > len) |
870 | goto default_patch; | 871 | goto default_patch; |
871 | 872 | ||
872 | ret = paravirt_patch_insns(insns, len, start, end); | 873 | ret = paravirt_patch_insns(insnbuf, len, start, end); |
873 | 874 | ||
874 | /* Note: because reloc is assigned from something that | 875 | /* Note: because reloc is assigned from something that |
875 | appears to be an array, gcc assumes it's non-null, | 876 | appears to be an array, gcc assumes it's non-null, |
@@ -877,8 +878,8 @@ static unsigned xen_patch(u8 type, u16 clobbers, void *insns, unsigned len) | |||
877 | end. */ | 878 | end. */ |
878 | if (reloc > start && reloc < end) { | 879 | if (reloc > start && reloc < end) { |
879 | int reloc_off = reloc - start; | 880 | int reloc_off = reloc - start; |
880 | long *relocp = (long *)(insns + reloc_off); | 881 | long *relocp = (long *)(insnbuf + reloc_off); |
881 | long delta = start - (char *)insns; | 882 | long delta = start - (char *)addr; |
882 | 883 | ||
883 | *relocp += delta; | 884 | *relocp += delta; |
884 | } | 885 | } |
@@ -886,7 +887,8 @@ static unsigned xen_patch(u8 type, u16 clobbers, void *insns, unsigned len) | |||
886 | 887 | ||
887 | default_patch: | 888 | default_patch: |
888 | default: | 889 | default: |
889 | ret = paravirt_patch_default(type, clobbers, insns, len); | 890 | ret = paravirt_patch_default(type, clobbers, insnbuf, |
891 | addr, len); | ||
890 | break; | 892 | break; |
891 | } | 893 | } |
892 | 894 | ||
diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig index 21aa4fc5f8ef..8c39913d1729 100644 --- a/arch/ia64/Kconfig +++ b/arch/ia64/Kconfig | |||
@@ -327,17 +327,7 @@ config FORCE_CPEI_RETARGET | |||
327 | This option it useful to enable this feature on older BIOS's as well. | 327 | This option it useful to enable this feature on older BIOS's as well. |
328 | You can also enable this by using boot command line option force_cpei=1. | 328 | You can also enable this by using boot command line option force_cpei=1. |
329 | 329 | ||
330 | config PREEMPT | 330 | source "kernel/Kconfig.preempt" |
331 | bool "Preemptible Kernel" | ||
332 | help | ||
333 | This option reduces the latency of the kernel when reacting to | ||
334 | real-time or interactive events by allowing a low priority process to | ||
335 | be preempted even if it is in kernel mode executing a system call. | ||
336 | This allows applications to run more reliably even when the system is | ||
337 | under load. | ||
338 | |||
339 | Say Y here if you are building a kernel for a desktop, embedded | ||
340 | or real-time system. Say N if you are unsure. | ||
341 | 331 | ||
342 | source "mm/Kconfig" | 332 | source "mm/Kconfig" |
343 | 333 | ||
diff --git a/arch/ia64/configs/bigsur_defconfig b/arch/ia64/configs/bigsur_defconfig index 9eb48c0927b0..6dd8655664f3 100644 --- a/arch/ia64/configs/bigsur_defconfig +++ b/arch/ia64/configs/bigsur_defconfig | |||
@@ -42,7 +42,7 @@ CONFIG_CC_ALIGN_FUNCTIONS=0 | |||
42 | CONFIG_CC_ALIGN_LABELS=0 | 42 | CONFIG_CC_ALIGN_LABELS=0 |
43 | CONFIG_CC_ALIGN_LOOPS=0 | 43 | CONFIG_CC_ALIGN_LOOPS=0 |
44 | CONFIG_CC_ALIGN_JUMPS=0 | 44 | CONFIG_CC_ALIGN_JUMPS=0 |
45 | CONFIG_SLAB=y | 45 | CONFIG_SLUB=y |
46 | # CONFIG_TINY_SHMEM is not set | 46 | # CONFIG_TINY_SHMEM is not set |
47 | CONFIG_BASE_SMALL=0 | 47 | CONFIG_BASE_SMALL=0 |
48 | # CONFIG_SLOB is not set | 48 | # CONFIG_SLOB is not set |
diff --git a/arch/ia64/configs/gensparse_defconfig b/arch/ia64/configs/gensparse_defconfig index 3a9ed951db08..e86fbd39c795 100644 --- a/arch/ia64/configs/gensparse_defconfig +++ b/arch/ia64/configs/gensparse_defconfig | |||
@@ -43,7 +43,7 @@ CONFIG_CC_ALIGN_FUNCTIONS=0 | |||
43 | CONFIG_CC_ALIGN_LABELS=0 | 43 | CONFIG_CC_ALIGN_LABELS=0 |
44 | CONFIG_CC_ALIGN_LOOPS=0 | 44 | CONFIG_CC_ALIGN_LOOPS=0 |
45 | CONFIG_CC_ALIGN_JUMPS=0 | 45 | CONFIG_CC_ALIGN_JUMPS=0 |
46 | CONFIG_SLAB=y | 46 | CONFIG_SLUB=y |
47 | # CONFIG_TINY_SHMEM is not set | 47 | # CONFIG_TINY_SHMEM is not set |
48 | CONFIG_BASE_SMALL=0 | 48 | CONFIG_BASE_SMALL=0 |
49 | # CONFIG_SLOB is not set | 49 | # CONFIG_SLOB is not set |
diff --git a/arch/ia64/configs/sim_defconfig b/arch/ia64/configs/sim_defconfig index c420d9f3df98..546a772f438e 100644 --- a/arch/ia64/configs/sim_defconfig +++ b/arch/ia64/configs/sim_defconfig | |||
@@ -43,7 +43,7 @@ CONFIG_CC_ALIGN_FUNCTIONS=0 | |||
43 | CONFIG_CC_ALIGN_LABELS=0 | 43 | CONFIG_CC_ALIGN_LABELS=0 |
44 | CONFIG_CC_ALIGN_LOOPS=0 | 44 | CONFIG_CC_ALIGN_LOOPS=0 |
45 | CONFIG_CC_ALIGN_JUMPS=0 | 45 | CONFIG_CC_ALIGN_JUMPS=0 |
46 | CONFIG_SLAB=y | 46 | CONFIG_SLUB=y |
47 | # CONFIG_TINY_SHMEM is not set | 47 | # CONFIG_TINY_SHMEM is not set |
48 | CONFIG_BASE_SMALL=0 | 48 | CONFIG_BASE_SMALL=0 |
49 | # CONFIG_SLOB is not set | 49 | # CONFIG_SLOB is not set |
diff --git a/arch/ia64/configs/sn2_defconfig b/arch/ia64/configs/sn2_defconfig index 4c9ffc47bc7a..9aecfceeb38c 100644 --- a/arch/ia64/configs/sn2_defconfig +++ b/arch/ia64/configs/sn2_defconfig | |||
@@ -46,7 +46,7 @@ CONFIG_BASE_FULL=y | |||
46 | CONFIG_FUTEX=y | 46 | CONFIG_FUTEX=y |
47 | CONFIG_EPOLL=y | 47 | CONFIG_EPOLL=y |
48 | CONFIG_SHMEM=y | 48 | CONFIG_SHMEM=y |
49 | CONFIG_SLAB=y | 49 | CONFIG_SLUB=y |
50 | CONFIG_VM_EVENT_COUNTERS=y | 50 | CONFIG_VM_EVENT_COUNTERS=y |
51 | CONFIG_RT_MUTEXES=y | 51 | CONFIG_RT_MUTEXES=y |
52 | # CONFIG_TINY_SHMEM is not set | 52 | # CONFIG_TINY_SHMEM is not set |
diff --git a/arch/ia64/configs/tiger_defconfig b/arch/ia64/configs/tiger_defconfig index 3dbb3987df27..797acf9066c1 100644 --- a/arch/ia64/configs/tiger_defconfig +++ b/arch/ia64/configs/tiger_defconfig | |||
@@ -53,7 +53,7 @@ CONFIG_TIMERFD=y | |||
53 | CONFIG_EVENTFD=y | 53 | CONFIG_EVENTFD=y |
54 | CONFIG_SHMEM=y | 54 | CONFIG_SHMEM=y |
55 | CONFIG_VM_EVENT_COUNTERS=y | 55 | CONFIG_VM_EVENT_COUNTERS=y |
56 | CONFIG_SLAB=y | 56 | CONFIG_SLUB=y |
57 | # CONFIG_SLUB is not set | 57 | # CONFIG_SLUB is not set |
58 | # CONFIG_SLOB is not set | 58 | # CONFIG_SLOB is not set |
59 | CONFIG_RT_MUTEXES=y | 59 | CONFIG_RT_MUTEXES=y |
diff --git a/arch/ia64/configs/zx1_defconfig b/arch/ia64/configs/zx1_defconfig index 4a060fc39934..0a06b1333c95 100644 --- a/arch/ia64/configs/zx1_defconfig +++ b/arch/ia64/configs/zx1_defconfig | |||
@@ -48,7 +48,7 @@ CONFIG_BASE_FULL=y | |||
48 | CONFIG_FUTEX=y | 48 | CONFIG_FUTEX=y |
49 | CONFIG_EPOLL=y | 49 | CONFIG_EPOLL=y |
50 | CONFIG_SHMEM=y | 50 | CONFIG_SHMEM=y |
51 | CONFIG_SLAB=y | 51 | CONFIG_SLUB=y |
52 | CONFIG_VM_EVENT_COUNTERS=y | 52 | CONFIG_VM_EVENT_COUNTERS=y |
53 | CONFIG_RT_MUTEXES=y | 53 | CONFIG_RT_MUTEXES=y |
54 | # CONFIG_TINY_SHMEM is not set | 54 | # CONFIG_TINY_SHMEM is not set |
diff --git a/arch/ia64/defconfig b/arch/ia64/defconfig index 03172dc8c403..0210545e7f61 100644 --- a/arch/ia64/defconfig +++ b/arch/ia64/defconfig | |||
@@ -53,8 +53,7 @@ CONFIG_TIMERFD=y | |||
53 | CONFIG_EVENTFD=y | 53 | CONFIG_EVENTFD=y |
54 | CONFIG_SHMEM=y | 54 | CONFIG_SHMEM=y |
55 | CONFIG_VM_EVENT_COUNTERS=y | 55 | CONFIG_VM_EVENT_COUNTERS=y |
56 | CONFIG_SLAB=y | 56 | CONFIG_SLUB=y |
57 | # CONFIG_SLUB is not set | ||
58 | # CONFIG_SLOB is not set | 57 | # CONFIG_SLOB is not set |
59 | CONFIG_RT_MUTEXES=y | 58 | CONFIG_RT_MUTEXES=y |
60 | # CONFIG_TINY_SHMEM is not set | 59 | # CONFIG_TINY_SHMEM is not set |
diff --git a/arch/ia64/hp/sim/boot/boot_head.S b/arch/ia64/hp/sim/boot/boot_head.S index a9bd71ac78e2..8808565491fb 100644 --- a/arch/ia64/hp/sim/boot/boot_head.S +++ b/arch/ia64/hp/sim/boot/boot_head.S | |||
@@ -26,6 +26,7 @@ GLOBAL_ENTRY(_start) | |||
26 | movl sp = stack_mem+16384-16 | 26 | movl sp = stack_mem+16384-16 |
27 | bsw.1 | 27 | bsw.1 |
28 | br.call.sptk.many rp=start_bootloader | 28 | br.call.sptk.many rp=start_bootloader |
29 | 0: nop 0 /* dummy nop to make unwinding work */ | ||
29 | END(_start) | 30 | END(_start) |
30 | 31 | ||
31 | /* | 32 | /* |
diff --git a/arch/ia64/kernel/cpufreq/acpi-cpufreq.c b/arch/ia64/kernel/cpufreq/acpi-cpufreq.c index 15c08d52f09f..8c6ec7070844 100644 --- a/arch/ia64/kernel/cpufreq/acpi-cpufreq.c +++ b/arch/ia64/kernel/cpufreq/acpi-cpufreq.c | |||
@@ -113,10 +113,8 @@ processor_get_freq ( | |||
113 | 113 | ||
114 | saved_mask = current->cpus_allowed; | 114 | saved_mask = current->cpus_allowed; |
115 | set_cpus_allowed(current, cpumask_of_cpu(cpu)); | 115 | set_cpus_allowed(current, cpumask_of_cpu(cpu)); |
116 | if (smp_processor_id() != cpu) { | 116 | if (smp_processor_id() != cpu) |
117 | ret = -EAGAIN; | ||
118 | goto migrate_end; | 117 | goto migrate_end; |
119 | } | ||
120 | 118 | ||
121 | /* processor_get_pstate gets the instantaneous frequency */ | 119 | /* processor_get_pstate gets the instantaneous frequency */ |
122 | ret = processor_get_pstate(&value); | 120 | ret = processor_get_pstate(&value); |
@@ -125,7 +123,7 @@ processor_get_freq ( | |||
125 | set_cpus_allowed(current, saved_mask); | 123 | set_cpus_allowed(current, saved_mask); |
126 | printk(KERN_WARNING "get performance failed with error %d\n", | 124 | printk(KERN_WARNING "get performance failed with error %d\n", |
127 | ret); | 125 | ret); |
128 | ret = -EAGAIN; | 126 | ret = 0; |
129 | goto migrate_end; | 127 | goto migrate_end; |
130 | } | 128 | } |
131 | clock_freq = extract_clock(data, value, cpu); | 129 | clock_freq = extract_clock(data, value, cpu); |
diff --git a/arch/ia64/kernel/irq.c b/arch/ia64/kernel/irq.c index cc3ee4ef37af..44be1c952b7c 100644 --- a/arch/ia64/kernel/irq.c +++ b/arch/ia64/kernel/irq.c | |||
@@ -33,6 +33,11 @@ void ack_bad_irq(unsigned int irq) | |||
33 | } | 33 | } |
34 | 34 | ||
35 | #ifdef CONFIG_IA64_GENERIC | 35 | #ifdef CONFIG_IA64_GENERIC |
36 | ia64_vector __ia64_irq_to_vector(int irq) | ||
37 | { | ||
38 | return irq_cfg[irq].vector; | ||
39 | } | ||
40 | |||
36 | unsigned int __ia64_local_vector_to_irq (ia64_vector vec) | 41 | unsigned int __ia64_local_vector_to_irq (ia64_vector vec) |
37 | { | 42 | { |
38 | return __get_cpu_var(vector_irq)[vec]; | 43 | return __get_cpu_var(vector_irq)[vec]; |
diff --git a/arch/ia64/kernel/mca.c b/arch/ia64/kernel/mca.c index ff28620cb992..63b73f3d4c9f 100644 --- a/arch/ia64/kernel/mca.c +++ b/arch/ia64/kernel/mca.c | |||
@@ -2018,22 +2018,26 @@ ia64_mca_late_init(void) | |||
2018 | 2018 | ||
2019 | if (cpe_vector >= 0) { | 2019 | if (cpe_vector >= 0) { |
2020 | /* If platform supports CPEI, enable the irq. */ | 2020 | /* If platform supports CPEI, enable the irq. */ |
2021 | cpe_poll_enabled = 0; | 2021 | irq = local_vector_to_irq(cpe_vector); |
2022 | for (irq = 0; irq < NR_IRQS; ++irq) | 2022 | if (irq > 0) { |
2023 | if (irq_to_vector(irq) == cpe_vector) { | 2023 | cpe_poll_enabled = 0; |
2024 | desc = irq_desc + irq; | 2024 | desc = irq_desc + irq; |
2025 | desc->status |= IRQ_PER_CPU; | 2025 | desc->status |= IRQ_PER_CPU; |
2026 | setup_irq(irq, &mca_cpe_irqaction); | 2026 | setup_irq(irq, &mca_cpe_irqaction); |
2027 | ia64_cpe_irq = irq; | 2027 | ia64_cpe_irq = irq; |
2028 | } | 2028 | ia64_mca_register_cpev(cpe_vector); |
2029 | ia64_mca_register_cpev(cpe_vector); | 2029 | IA64_MCA_DEBUG("%s: CPEI/P setup and enabled.\n", |
2030 | IA64_MCA_DEBUG("%s: CPEI/P setup and enabled.\n", __FUNCTION__); | 2030 | __FUNCTION__); |
2031 | } else { | 2031 | return 0; |
2032 | /* If platform doesn't support CPEI, get the timer going. */ | ||
2033 | if (cpe_poll_enabled) { | ||
2034 | ia64_mca_cpe_poll(0UL); | ||
2035 | IA64_MCA_DEBUG("%s: CPEP setup and enabled.\n", __FUNCTION__); | ||
2036 | } | 2032 | } |
2033 | printk(KERN_ERR "%s: Failed to find irq for CPE " | ||
2034 | "interrupt handler, vector %d\n", | ||
2035 | __FUNCTION__, cpe_vector); | ||
2036 | } | ||
2037 | /* If platform doesn't support CPEI, get the timer going. */ | ||
2038 | if (cpe_poll_enabled) { | ||
2039 | ia64_mca_cpe_poll(0UL); | ||
2040 | IA64_MCA_DEBUG("%s: CPEP setup and enabled.\n", __FUNCTION__); | ||
2037 | } | 2041 | } |
2038 | } | 2042 | } |
2039 | #endif | 2043 | #endif |
diff --git a/arch/ia64/kernel/process.c b/arch/ia64/kernel/process.c index 4158906c45aa..c613fc0e91cc 100644 --- a/arch/ia64/kernel/process.c +++ b/arch/ia64/kernel/process.c | |||
@@ -198,9 +198,13 @@ default_idle (void) | |||
198 | { | 198 | { |
199 | local_irq_enable(); | 199 | local_irq_enable(); |
200 | while (!need_resched()) { | 200 | while (!need_resched()) { |
201 | if (can_do_pal_halt) | 201 | if (can_do_pal_halt) { |
202 | safe_halt(); | 202 | local_irq_disable(); |
203 | else | 203 | if (!need_resched()) { |
204 | safe_halt(); | ||
205 | } | ||
206 | local_irq_enable(); | ||
207 | } else | ||
204 | cpu_relax(); | 208 | cpu_relax(); |
205 | } | 209 | } |
206 | } | 210 | } |
diff --git a/arch/ia64/kernel/ptrace.c b/arch/ia64/kernel/ptrace.c index 00f803246948..122444a97897 100644 --- a/arch/ia64/kernel/ptrace.c +++ b/arch/ia64/kernel/ptrace.c | |||
@@ -951,10 +951,14 @@ access_uarea (struct task_struct *child, unsigned long addr, | |||
951 | return 0; | 951 | return 0; |
952 | 952 | ||
953 | case PT_CR_IPSR: | 953 | case PT_CR_IPSR: |
954 | if (write_access) | 954 | if (write_access) { |
955 | pt->cr_ipsr = ((*data & IPSR_MASK) | 955 | unsigned long tmp = *data; |
956 | /* psr.ri==3 is a reserved value: SDM 2:25 */ | ||
957 | if ((tmp & IA64_PSR_RI) == IA64_PSR_RI) | ||
958 | tmp &= ~IA64_PSR_RI; | ||
959 | pt->cr_ipsr = ((tmp & IPSR_MASK) | ||
956 | | (pt->cr_ipsr & ~IPSR_MASK)); | 960 | | (pt->cr_ipsr & ~IPSR_MASK)); |
957 | else | 961 | } else |
958 | *data = (pt->cr_ipsr & IPSR_MASK); | 962 | *data = (pt->cr_ipsr & IPSR_MASK); |
959 | return 0; | 963 | return 0; |
960 | 964 | ||
diff --git a/arch/ia64/kernel/setup.c b/arch/ia64/kernel/setup.c index cd9a37a552c3..407efea04bf5 100644 --- a/arch/ia64/kernel/setup.c +++ b/arch/ia64/kernel/setup.c | |||
@@ -389,6 +389,13 @@ early_console_setup (char *cmdline) | |||
389 | if (!efi_setup_pcdp_console(cmdline)) | 389 | if (!efi_setup_pcdp_console(cmdline)) |
390 | earlycons++; | 390 | earlycons++; |
391 | #endif | 391 | #endif |
392 | #ifdef CONFIG_HP_SIMSERIAL_CONSOLE | ||
393 | { | ||
394 | extern struct console hpsim_cons; | ||
395 | register_console(&hpsim_cons); | ||
396 | earlycons++; | ||
397 | } | ||
398 | #endif | ||
392 | 399 | ||
393 | return (earlycons) ? 0 : -1; | 400 | return (earlycons) ? 0 : -1; |
394 | } | 401 | } |
diff --git a/arch/ia64/kernel/vmlinux.lds.S b/arch/ia64/kernel/vmlinux.lds.S index 83e80677de70..00232b4357ba 100644 --- a/arch/ia64/kernel/vmlinux.lds.S +++ b/arch/ia64/kernel/vmlinux.lds.S | |||
@@ -20,6 +20,8 @@ PHDRS { | |||
20 | code PT_LOAD; | 20 | code PT_LOAD; |
21 | percpu PT_LOAD; | 21 | percpu PT_LOAD; |
22 | data PT_LOAD; | 22 | data PT_LOAD; |
23 | note PT_NOTE; | ||
24 | unwind 0x70000001; /* PT_IA_64_UNWIND, but ld doesn't match the name */ | ||
23 | } | 25 | } |
24 | SECTIONS | 26 | SECTIONS |
25 | { | 27 | { |
@@ -62,6 +64,9 @@ SECTIONS | |||
62 | 64 | ||
63 | /* Read-only data */ | 65 | /* Read-only data */ |
64 | 66 | ||
67 | NOTES :code :note /* put .notes in text and mark in PT_NOTE */ | ||
68 | code_continues : {} :code /* switch back to regular program... */ | ||
69 | |||
65 | /* Exception table */ | 70 | /* Exception table */ |
66 | . = ALIGN(16); | 71 | . = ALIGN(16); |
67 | __ex_table : AT(ADDR(__ex_table) - LOAD_OFFSET) | 72 | __ex_table : AT(ADDR(__ex_table) - LOAD_OFFSET) |
@@ -99,7 +104,8 @@ SECTIONS | |||
99 | __start_unwind = .; | 104 | __start_unwind = .; |
100 | *(.IA_64.unwind*) | 105 | *(.IA_64.unwind*) |
101 | __end_unwind = .; | 106 | __end_unwind = .; |
102 | } | 107 | } :code :unwind |
108 | code_continues2 : {} : code | ||
103 | 109 | ||
104 | RODATA | 110 | RODATA |
105 | 111 | ||
@@ -276,10 +282,6 @@ SECTIONS | |||
276 | .debug_typenames 0 : { *(.debug_typenames) } | 282 | .debug_typenames 0 : { *(.debug_typenames) } |
277 | .debug_varnames 0 : { *(.debug_varnames) } | 283 | .debug_varnames 0 : { *(.debug_varnames) } |
278 | /* These must appear regardless of . */ | 284 | /* These must appear regardless of . */ |
279 | /* Discard them for now since Intel SoftSDV cannot handle them. | ||
280 | .comment 0 : { *(.comment) } | ||
281 | .note 0 : { *(.note) } | ||
282 | */ | ||
283 | /DISCARD/ : { *(.comment) } | 285 | /DISCARD/ : { *(.comment) } |
284 | /DISCARD/ : { *(.note) } | 286 | /DISCARD/ : { *(.note) } |
285 | } | 287 | } |
diff --git a/arch/ia64/mm/fault.c b/arch/ia64/mm/fault.c index 73ccb6010c05..9150ffaff9e8 100644 --- a/arch/ia64/mm/fault.c +++ b/arch/ia64/mm/fault.c | |||
@@ -112,11 +112,17 @@ ia64_do_page_fault (unsigned long address, unsigned long isr, struct pt_regs *re | |||
112 | down_read(&mm->mmap_sem); | 112 | down_read(&mm->mmap_sem); |
113 | 113 | ||
114 | vma = find_vma_prev(mm, address, &prev_vma); | 114 | vma = find_vma_prev(mm, address, &prev_vma); |
115 | if (!vma) | 115 | if (!vma && !prev_vma ) |
116 | goto bad_area; | 116 | goto bad_area; |
117 | 117 | ||
118 | /* find_vma_prev() returns vma such that address < vma->vm_end or NULL */ | 118 | /* |
119 | if (address < vma->vm_start) | 119 | * find_vma_prev() returns vma such that address < vma->vm_end or NULL |
120 | * | ||
121 | * May find no vma, but could be that the last vm area is the | ||
122 | * register backing store that needs to expand upwards, in | ||
123 | * this case vma will be null, but prev_vma will ne non-null | ||
124 | */ | ||
125 | if (( !vma && prev_vma ) || (address < vma->vm_start) ) | ||
120 | goto check_expansion; | 126 | goto check_expansion; |
121 | 127 | ||
122 | good_area: | 128 | good_area: |
@@ -172,6 +178,8 @@ ia64_do_page_fault (unsigned long address, unsigned long isr, struct pt_regs *re | |||
172 | 178 | ||
173 | check_expansion: | 179 | check_expansion: |
174 | if (!(prev_vma && (prev_vma->vm_flags & VM_GROWSUP) && (address == prev_vma->vm_end))) { | 180 | if (!(prev_vma && (prev_vma->vm_flags & VM_GROWSUP) && (address == prev_vma->vm_end))) { |
181 | if (!vma) | ||
182 | goto bad_area; | ||
175 | if (!(vma->vm_flags & VM_GROWSDOWN)) | 183 | if (!(vma->vm_flags & VM_GROWSDOWN)) |
176 | goto bad_area; | 184 | goto bad_area; |
177 | if (REGION_NUMBER(address) != REGION_NUMBER(vma->vm_start) | 185 | if (REGION_NUMBER(address) != REGION_NUMBER(vma->vm_start) |
diff --git a/arch/ia64/sn/kernel/irq.c b/arch/ia64/sn/kernel/irq.c index 7f6d2360a262..360047389449 100644 --- a/arch/ia64/sn/kernel/irq.c +++ b/arch/ia64/sn/kernel/irq.c | |||
@@ -256,6 +256,13 @@ struct irq_chip irq_type_sn = { | |||
256 | .set_affinity = sn_set_affinity_irq | 256 | .set_affinity = sn_set_affinity_irq |
257 | }; | 257 | }; |
258 | 258 | ||
259 | ia64_vector sn_irq_to_vector(int irq) | ||
260 | { | ||
261 | if (irq >= IA64_NUM_VECTORS) | ||
262 | return 0; | ||
263 | return (ia64_vector)irq; | ||
264 | } | ||
265 | |||
259 | unsigned int sn_local_vector_to_irq(u8 vector) | 266 | unsigned int sn_local_vector_to_irq(u8 vector) |
260 | { | 267 | { |
261 | return (CPU_VECTOR_TO_IRQ(smp_processor_id(), vector)); | 268 | return (CPU_VECTOR_TO_IRQ(smp_processor_id(), vector)); |
@@ -398,7 +405,10 @@ sn_call_force_intr_provider(struct sn_irq_info *sn_irq_info) | |||
398 | struct sn_pcibus_provider *pci_provider; | 405 | struct sn_pcibus_provider *pci_provider; |
399 | 406 | ||
400 | pci_provider = sn_pci_provider[sn_irq_info->irq_bridge_type]; | 407 | pci_provider = sn_pci_provider[sn_irq_info->irq_bridge_type]; |
401 | if (pci_provider && pci_provider->force_interrupt) | 408 | |
409 | /* Don't force an interrupt if the irq has been disabled */ | ||
410 | if (!(irq_desc[sn_irq_info->irq_irq].status & IRQ_DISABLED) && | ||
411 | pci_provider && pci_provider->force_interrupt) | ||
402 | (*pci_provider->force_interrupt)(sn_irq_info); | 412 | (*pci_provider->force_interrupt)(sn_irq_info); |
403 | } | 413 | } |
404 | 414 | ||
diff --git a/arch/powerpc/boot/flatdevtree.c b/arch/powerpc/boot/flatdevtree.c index b732644788db..13761bf160c4 100644 --- a/arch/powerpc/boot/flatdevtree.c +++ b/arch/powerpc/boot/flatdevtree.c | |||
@@ -134,20 +134,6 @@ static char *ft_next(struct ft_cxt *cxt, char *p, struct ft_atom *ret) | |||
134 | #define HDR_SIZE _ALIGN(sizeof(struct boot_param_header), 8) | 134 | #define HDR_SIZE _ALIGN(sizeof(struct boot_param_header), 8) |
135 | #define EXPAND_INCR 1024 /* alloc this much extra when expanding */ | 135 | #define EXPAND_INCR 1024 /* alloc this much extra when expanding */ |
136 | 136 | ||
137 | /* See if the regions are in the standard order and non-overlapping */ | ||
138 | static int ft_ordered(struct ft_cxt *cxt) | ||
139 | { | ||
140 | char *p = (char *)cxt->bph + HDR_SIZE; | ||
141 | enum ft_rgn_id r; | ||
142 | |||
143 | for (r = FT_RSVMAP; r <= FT_STRINGS; ++r) { | ||
144 | if (p > cxt->rgn[r].start) | ||
145 | return 0; | ||
146 | p = cxt->rgn[r].start + cxt->rgn[r].size; | ||
147 | } | ||
148 | return p <= (char *)cxt->bph + cxt->max_size; | ||
149 | } | ||
150 | |||
151 | /* Copy the tree to a newly-allocated region and put things in order */ | 137 | /* Copy the tree to a newly-allocated region and put things in order */ |
152 | static int ft_reorder(struct ft_cxt *cxt, int nextra) | 138 | static int ft_reorder(struct ft_cxt *cxt, int nextra) |
153 | { | 139 | { |
@@ -573,10 +559,6 @@ int ft_open(struct ft_cxt *cxt, void *blob, unsigned int max_size, | |||
573 | cxt->rgn[FT_STRUCT].size = struct_size(cxt); | 559 | cxt->rgn[FT_STRUCT].size = struct_size(cxt); |
574 | cxt->rgn[FT_STRINGS].start = blob + be32_to_cpu(bph->off_dt_strings); | 560 | cxt->rgn[FT_STRINGS].start = blob + be32_to_cpu(bph->off_dt_strings); |
575 | cxt->rgn[FT_STRINGS].size = be32_to_cpu(bph->dt_strings_size); | 561 | cxt->rgn[FT_STRINGS].size = be32_to_cpu(bph->dt_strings_size); |
576 | /* Leave as '0' to force first ft_make_space call to do a ft_reorder | ||
577 | * and move dt to an area allocated by realloc. | ||
578 | cxt->isordered = ft_ordered(cxt); | ||
579 | */ | ||
580 | 562 | ||
581 | cxt->p = cxt->rgn[FT_STRUCT].start; | 563 | cxt->p = cxt->rgn[FT_STRUCT].start; |
582 | cxt->str_anchor = cxt->rgn[FT_STRINGS].start; | 564 | cxt->str_anchor = cxt->rgn[FT_STRINGS].start; |
diff --git a/arch/powerpc/configs/ps3_defconfig b/arch/powerpc/configs/ps3_defconfig index d0b43df44426..ca7a197998ee 100644 --- a/arch/powerpc/configs/ps3_defconfig +++ b/arch/powerpc/configs/ps3_defconfig | |||
@@ -1,9 +1,23 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.22-rc6 | 3 | # Linux kernel version: 2.6.23-rc2 |
4 | # Tue Jun 26 14:15:19 2007 | 4 | # Tue Aug 7 19:17:26 2007 |
5 | # | 5 | # |
6 | CONFIG_PPC64=y | 6 | CONFIG_PPC64=y |
7 | |||
8 | # | ||
9 | # Processor support | ||
10 | # | ||
11 | # CONFIG_POWER4_ONLY is not set | ||
12 | CONFIG_POWER3=y | ||
13 | CONFIG_POWER4=y | ||
14 | CONFIG_PPC_FPU=y | ||
15 | CONFIG_ALTIVEC=y | ||
16 | CONFIG_PPC_STD_MMU=y | ||
17 | # CONFIG_PPC_MM_SLICES is not set | ||
18 | CONFIG_VIRT_CPU_ACCOUNTING=y | ||
19 | CONFIG_SMP=y | ||
20 | CONFIG_NR_CPUS=2 | ||
7 | CONFIG_64BIT=y | 21 | CONFIG_64BIT=y |
8 | CONFIG_PPC_MERGE=y | 22 | CONFIG_PPC_MERGE=y |
9 | CONFIG_MMU=y | 23 | CONFIG_MMU=y |
@@ -15,6 +29,7 @@ CONFIG_ARCH_HAS_ILOG2_U64=y | |||
15 | CONFIG_GENERIC_HWEIGHT=y | 29 | CONFIG_GENERIC_HWEIGHT=y |
16 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 30 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
17 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 31 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
32 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | ||
18 | CONFIG_PPC=y | 33 | CONFIG_PPC=y |
19 | CONFIG_EARLY_PRINTK=y | 34 | CONFIG_EARLY_PRINTK=y |
20 | CONFIG_COMPAT=y | 35 | CONFIG_COMPAT=y |
@@ -22,50 +37,32 @@ CONFIG_SYSVIPC_COMPAT=y | |||
22 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | 37 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y |
23 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y | 38 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y |
24 | CONFIG_PPC_OF=y | 39 | CONFIG_PPC_OF=y |
40 | CONFIG_OF=y | ||
25 | # CONFIG_PPC_UDBG_16550 is not set | 41 | # CONFIG_PPC_UDBG_16550 is not set |
26 | # CONFIG_GENERIC_TBSYNC is not set | 42 | # CONFIG_GENERIC_TBSYNC is not set |
27 | CONFIG_AUDIT_ARCH=y | 43 | CONFIG_AUDIT_ARCH=y |
28 | CONFIG_GENERIC_BUG=y | 44 | CONFIG_GENERIC_BUG=y |
29 | # CONFIG_DEFAULT_UIMAGE is not set | 45 | # CONFIG_DEFAULT_UIMAGE is not set |
30 | |||
31 | # | ||
32 | # Processor support | ||
33 | # | ||
34 | # CONFIG_POWER4_ONLY is not set | ||
35 | CONFIG_POWER3=y | ||
36 | CONFIG_POWER4=y | ||
37 | CONFIG_PPC_FPU=y | ||
38 | # CONFIG_PPC_DCR_NATIVE is not set | 46 | # CONFIG_PPC_DCR_NATIVE is not set |
39 | # CONFIG_PPC_DCR_MMIO is not set | 47 | # CONFIG_PPC_DCR_MMIO is not set |
40 | # CONFIG_PPC_OF_PLATFORM_PCI is not set | 48 | # CONFIG_PPC_OF_PLATFORM_PCI is not set |
41 | CONFIG_ALTIVEC=y | ||
42 | CONFIG_PPC_STD_MMU=y | ||
43 | # CONFIG_PPC_MM_SLICES is not set | ||
44 | CONFIG_VIRT_CPU_ACCOUNTING=y | ||
45 | CONFIG_SMP=y | ||
46 | CONFIG_NR_CPUS=2 | ||
47 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 49 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
48 | 50 | ||
49 | # | 51 | # |
50 | # Code maturity level options | 52 | # General setup |
51 | # | 53 | # |
52 | CONFIG_EXPERIMENTAL=y | 54 | CONFIG_EXPERIMENTAL=y |
53 | CONFIG_LOCK_KERNEL=y | 55 | CONFIG_LOCK_KERNEL=y |
54 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 56 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
55 | |||
56 | # | ||
57 | # General setup | ||
58 | # | ||
59 | CONFIG_LOCALVERSION="" | 57 | CONFIG_LOCALVERSION="" |
60 | CONFIG_LOCALVERSION_AUTO=y | 58 | CONFIG_LOCALVERSION_AUTO=y |
61 | CONFIG_SWAP=y | 59 | CONFIG_SWAP=y |
62 | CONFIG_SYSVIPC=y | 60 | CONFIG_SYSVIPC=y |
63 | # CONFIG_IPC_NS is not set | ||
64 | CONFIG_SYSVIPC_SYSCTL=y | 61 | CONFIG_SYSVIPC_SYSCTL=y |
65 | # CONFIG_POSIX_MQUEUE is not set | 62 | # CONFIG_POSIX_MQUEUE is not set |
66 | # CONFIG_BSD_PROCESS_ACCT is not set | 63 | # CONFIG_BSD_PROCESS_ACCT is not set |
67 | # CONFIG_TASKSTATS is not set | 64 | # CONFIG_TASKSTATS is not set |
68 | # CONFIG_UTS_NS is not set | 65 | # CONFIG_USER_NS is not set |
69 | # CONFIG_AUDIT is not set | 66 | # CONFIG_AUDIT is not set |
70 | # CONFIG_IKCONFIG is not set | 67 | # CONFIG_IKCONFIG is not set |
71 | CONFIG_LOG_BUF_SHIFT=17 | 68 | CONFIG_LOG_BUF_SHIFT=17 |
@@ -100,10 +97,6 @@ CONFIG_SLAB=y | |||
100 | CONFIG_RT_MUTEXES=y | 97 | CONFIG_RT_MUTEXES=y |
101 | # CONFIG_TINY_SHMEM is not set | 98 | # CONFIG_TINY_SHMEM is not set |
102 | CONFIG_BASE_SMALL=0 | 99 | CONFIG_BASE_SMALL=0 |
103 | |||
104 | # | ||
105 | # Loadable module support | ||
106 | # | ||
107 | CONFIG_MODULES=y | 100 | CONFIG_MODULES=y |
108 | CONFIG_MODULE_UNLOAD=y | 101 | CONFIG_MODULE_UNLOAD=y |
109 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 102 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
@@ -111,12 +104,9 @@ CONFIG_MODULE_UNLOAD=y | |||
111 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 104 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
112 | CONFIG_KMOD=y | 105 | CONFIG_KMOD=y |
113 | CONFIG_STOP_MACHINE=y | 106 | CONFIG_STOP_MACHINE=y |
114 | |||
115 | # | ||
116 | # Block layer | ||
117 | # | ||
118 | CONFIG_BLOCK=y | 107 | CONFIG_BLOCK=y |
119 | # CONFIG_BLK_DEV_IO_TRACE is not set | 108 | # CONFIG_BLK_DEV_IO_TRACE is not set |
109 | CONFIG_BLK_DEV_BSG=y | ||
120 | 110 | ||
121 | # | 111 | # |
122 | # IO Schedulers | 112 | # IO Schedulers |
@@ -136,7 +126,9 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
136 | # | 126 | # |
137 | CONFIG_PPC_MULTIPLATFORM=y | 127 | CONFIG_PPC_MULTIPLATFORM=y |
138 | # CONFIG_EMBEDDED6xx is not set | 128 | # CONFIG_EMBEDDED6xx is not set |
139 | # CONFIG_APUS is not set | 129 | # CONFIG_PPC_82xx is not set |
130 | # CONFIG_PPC_83xx is not set | ||
131 | # CONFIG_PPC_86xx is not set | ||
140 | # CONFIG_PPC_PSERIES is not set | 132 | # CONFIG_PPC_PSERIES is not set |
141 | # CONFIG_PPC_ISERIES is not set | 133 | # CONFIG_PPC_ISERIES is not set |
142 | # CONFIG_PPC_MPC52xx is not set | 134 | # CONFIG_PPC_MPC52xx is not set |
@@ -223,6 +215,7 @@ CONFIG_MEMORY_HOTPLUG_SPARSE=y | |||
223 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 215 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
224 | CONFIG_RESOURCES_64BIT=y | 216 | CONFIG_RESOURCES_64BIT=y |
225 | CONFIG_ZONE_DMA_FLAG=1 | 217 | CONFIG_ZONE_DMA_FLAG=1 |
218 | CONFIG_BOUNCE=y | ||
226 | CONFIG_ARCH_MEMORY_PROBE=y | 219 | CONFIG_ARCH_MEMORY_PROBE=y |
227 | # CONFIG_PPC_HAS_HASH_64K is not set | 220 | # CONFIG_PPC_HAS_HASH_64K is not set |
228 | # CONFIG_PPC_64K_PAGES is not set | 221 | # CONFIG_PPC_64K_PAGES is not set |
@@ -241,6 +234,7 @@ CONFIG_ZONE_DMA=y | |||
241 | CONFIG_GENERIC_ISA_DMA=y | 234 | CONFIG_GENERIC_ISA_DMA=y |
242 | # CONFIG_PCI is not set | 235 | # CONFIG_PCI is not set |
243 | # CONFIG_PCI_DOMAINS is not set | 236 | # CONFIG_PCI_DOMAINS is not set |
237 | # CONFIG_PCI_SYSCALL is not set | ||
244 | # CONFIG_ARCH_SUPPORTS_MSI is not set | 238 | # CONFIG_ARCH_SUPPORTS_MSI is not set |
245 | 239 | ||
246 | # | 240 | # |
@@ -365,6 +359,7 @@ CONFIG_WIRELESS_EXT=y | |||
365 | # CONFIG_MAC80211 is not set | 359 | # CONFIG_MAC80211 is not set |
366 | # CONFIG_IEEE80211 is not set | 360 | # CONFIG_IEEE80211 is not set |
367 | # CONFIG_RFKILL is not set | 361 | # CONFIG_RFKILL is not set |
362 | # CONFIG_NET_9P is not set | ||
368 | 363 | ||
369 | # | 364 | # |
370 | # Device Drivers | 365 | # Device Drivers |
@@ -379,26 +374,11 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y | |||
379 | # CONFIG_DEBUG_DRIVER is not set | 374 | # CONFIG_DEBUG_DRIVER is not set |
380 | # CONFIG_DEBUG_DEVRES is not set | 375 | # CONFIG_DEBUG_DEVRES is not set |
381 | # CONFIG_SYS_HYPERVISOR is not set | 376 | # CONFIG_SYS_HYPERVISOR is not set |
382 | |||
383 | # | ||
384 | # Connector - unified userspace <-> kernelspace linker | ||
385 | # | ||
386 | # CONFIG_CONNECTOR is not set | 377 | # CONFIG_CONNECTOR is not set |
387 | # CONFIG_MTD is not set | 378 | # CONFIG_MTD is not set |
388 | 379 | CONFIG_OF_DEVICE=y | |
389 | # | ||
390 | # Parallel port support | ||
391 | # | ||
392 | # CONFIG_PARPORT is not set | 380 | # CONFIG_PARPORT is not set |
393 | 381 | CONFIG_BLK_DEV=y | |
394 | # | ||
395 | # Plug and Play support | ||
396 | # | ||
397 | # CONFIG_PNPACPI is not set | ||
398 | |||
399 | # | ||
400 | # Block devices | ||
401 | # | ||
402 | # CONFIG_BLK_DEV_FD is not set | 382 | # CONFIG_BLK_DEV_FD is not set |
403 | # CONFIG_BLK_DEV_COW_COMMON is not set | 383 | # CONFIG_BLK_DEV_COW_COMMON is not set |
404 | CONFIG_BLK_DEV_LOOP=y | 384 | CONFIG_BLK_DEV_LOOP=y |
@@ -411,11 +391,8 @@ CONFIG_BLK_DEV_RAM_SIZE=65535 | |||
411 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | 391 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 |
412 | # CONFIG_CDROM_PKTCDVD is not set | 392 | # CONFIG_CDROM_PKTCDVD is not set |
413 | # CONFIG_ATA_OVER_ETH is not set | 393 | # CONFIG_ATA_OVER_ETH is not set |
414 | 394 | CONFIG_MISC_DEVICES=y | |
415 | # | 395 | # CONFIG_EEPROM_93CX6 is not set |
416 | # Misc devices | ||
417 | # | ||
418 | # CONFIG_BLINK is not set | ||
419 | # CONFIG_IDE is not set | 396 | # CONFIG_IDE is not set |
420 | 397 | ||
421 | # | 398 | # |
@@ -423,6 +400,7 @@ CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | |||
423 | # | 400 | # |
424 | # CONFIG_RAID_ATTRS is not set | 401 | # CONFIG_RAID_ATTRS is not set |
425 | CONFIG_SCSI=y | 402 | CONFIG_SCSI=y |
403 | CONFIG_SCSI_DMA=y | ||
426 | # CONFIG_SCSI_TGT is not set | 404 | # CONFIG_SCSI_TGT is not set |
427 | # CONFIG_SCSI_NETLINK is not set | 405 | # CONFIG_SCSI_NETLINK is not set |
428 | CONFIG_SCSI_PROC_FS=y | 406 | CONFIG_SCSI_PROC_FS=y |
@@ -455,37 +433,22 @@ CONFIG_SCSI_WAIT_SCAN=m | |||
455 | # CONFIG_SCSI_ISCSI_ATTRS is not set | 433 | # CONFIG_SCSI_ISCSI_ATTRS is not set |
456 | # CONFIG_SCSI_SAS_ATTRS is not set | 434 | # CONFIG_SCSI_SAS_ATTRS is not set |
457 | # CONFIG_SCSI_SAS_LIBSAS is not set | 435 | # CONFIG_SCSI_SAS_LIBSAS is not set |
458 | 436 | # CONFIG_SCSI_LOWLEVEL is not set | |
459 | # | ||
460 | # SCSI low-level drivers | ||
461 | # | ||
462 | # CONFIG_ISCSI_TCP is not set | ||
463 | # CONFIG_SCSI_DEBUG is not set | ||
464 | # CONFIG_ATA is not set | 437 | # CONFIG_ATA is not set |
465 | |||
466 | # | ||
467 | # Multi-device support (RAID and LVM) | ||
468 | # | ||
469 | # CONFIG_MD is not set | 438 | # CONFIG_MD is not set |
470 | # CONFIG_MACINTOSH_DRIVERS is not set | 439 | # CONFIG_MACINTOSH_DRIVERS is not set |
471 | |||
472 | # | ||
473 | # Network device support | ||
474 | # | ||
475 | CONFIG_NETDEVICES=y | 440 | CONFIG_NETDEVICES=y |
441 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
476 | # CONFIG_DUMMY is not set | 442 | # CONFIG_DUMMY is not set |
477 | # CONFIG_BONDING is not set | 443 | # CONFIG_BONDING is not set |
444 | # CONFIG_MACVLAN is not set | ||
478 | # CONFIG_EQUALIZER is not set | 445 | # CONFIG_EQUALIZER is not set |
479 | # CONFIG_TUN is not set | 446 | # CONFIG_TUN is not set |
480 | |||
481 | # | ||
482 | # Ethernet (10 or 100Mbit) | ||
483 | # | ||
484 | # CONFIG_NET_ETHERNET is not set | 447 | # CONFIG_NET_ETHERNET is not set |
485 | CONFIG_MII=m | 448 | CONFIG_MII=m |
486 | CONFIG_NETDEV_1000=y | 449 | CONFIG_NETDEV_1000=y |
487 | CONFIG_NETDEV_10000=y | ||
488 | CONFIG_GELIC_NET=y | 450 | CONFIG_GELIC_NET=y |
451 | # CONFIG_NETDEV_10000 is not set | ||
489 | 452 | ||
490 | # | 453 | # |
491 | # Wireless LAN | 454 | # Wireless LAN |
@@ -518,15 +481,7 @@ CONFIG_USB_NET_MCS7830=m | |||
518 | # CONFIG_NETCONSOLE is not set | 481 | # CONFIG_NETCONSOLE is not set |
519 | # CONFIG_NETPOLL is not set | 482 | # CONFIG_NETPOLL is not set |
520 | # CONFIG_NET_POLL_CONTROLLER is not set | 483 | # CONFIG_NET_POLL_CONTROLLER is not set |
521 | |||
522 | # | ||
523 | # ISDN subsystem | ||
524 | # | ||
525 | # CONFIG_ISDN is not set | 484 | # CONFIG_ISDN is not set |
526 | |||
527 | # | ||
528 | # Telephony Support | ||
529 | # | ||
530 | # CONFIG_PHONE is not set | 485 | # CONFIG_PHONE is not set |
531 | 486 | ||
532 | # | 487 | # |
@@ -604,10 +559,6 @@ CONFIG_VT_HW_CONSOLE_BINDING=y | |||
604 | CONFIG_UNIX98_PTYS=y | 559 | CONFIG_UNIX98_PTYS=y |
605 | CONFIG_LEGACY_PTYS=y | 560 | CONFIG_LEGACY_PTYS=y |
606 | CONFIG_LEGACY_PTY_COUNT=16 | 561 | CONFIG_LEGACY_PTY_COUNT=16 |
607 | |||
608 | # | ||
609 | # IPMI | ||
610 | # | ||
611 | # CONFIG_IPMI_HANDLER is not set | 562 | # CONFIG_IPMI_HANDLER is not set |
612 | # CONFIG_WATCHDOG is not set | 563 | # CONFIG_WATCHDOG is not set |
613 | # CONFIG_HW_RANDOM is not set | 564 | # CONFIG_HW_RANDOM is not set |
@@ -616,10 +567,6 @@ CONFIG_GEN_RTC=y | |||
616 | # CONFIG_R3964 is not set | 567 | # CONFIG_R3964 is not set |
617 | # CONFIG_RAW_DRIVER is not set | 568 | # CONFIG_RAW_DRIVER is not set |
618 | # CONFIG_HANGCHECK_TIMER is not set | 569 | # CONFIG_HANGCHECK_TIMER is not set |
619 | |||
620 | # | ||
621 | # TPM devices | ||
622 | # | ||
623 | # CONFIG_TCG_TPM is not set | 570 | # CONFIG_TCG_TPM is not set |
624 | # CONFIG_I2C is not set | 571 | # CONFIG_I2C is not set |
625 | 572 | ||
@@ -628,11 +575,8 @@ CONFIG_GEN_RTC=y | |||
628 | # | 575 | # |
629 | # CONFIG_SPI is not set | 576 | # CONFIG_SPI is not set |
630 | # CONFIG_SPI_MASTER is not set | 577 | # CONFIG_SPI_MASTER is not set |
631 | |||
632 | # | ||
633 | # Dallas's 1-wire bus | ||
634 | # | ||
635 | # CONFIG_W1 is not set | 578 | # CONFIG_W1 is not set |
579 | # CONFIG_POWER_SUPPLY is not set | ||
636 | # CONFIG_HWMON is not set | 580 | # CONFIG_HWMON is not set |
637 | 581 | ||
638 | # | 582 | # |
@@ -657,6 +601,7 @@ CONFIG_GEN_RTC=y | |||
657 | # | 601 | # |
658 | # CONFIG_DISPLAY_SUPPORT is not set | 602 | # CONFIG_DISPLAY_SUPPORT is not set |
659 | # CONFIG_VGASTATE is not set | 603 | # CONFIG_VGASTATE is not set |
604 | CONFIG_VIDEO_OUTPUT_CONTROL=m | ||
660 | CONFIG_FB=y | 605 | CONFIG_FB=y |
661 | # CONFIG_FIRMWARE_EDID is not set | 606 | # CONFIG_FIRMWARE_EDID is not set |
662 | # CONFIG_FB_DDC is not set | 607 | # CONFIG_FB_DDC is not set |
@@ -691,11 +636,13 @@ CONFIG_FB_PS3_DEFAULT_SIZE_M=18 | |||
691 | # CONFIG_VGA_CONSOLE is not set | 636 | # CONFIG_VGA_CONSOLE is not set |
692 | CONFIG_DUMMY_CONSOLE=y | 637 | CONFIG_DUMMY_CONSOLE=y |
693 | CONFIG_FRAMEBUFFER_CONSOLE=y | 638 | CONFIG_FRAMEBUFFER_CONSOLE=y |
639 | CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y | ||
694 | CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y | 640 | CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y |
695 | # CONFIG_FONTS is not set | 641 | # CONFIG_FONTS is not set |
696 | CONFIG_FONT_8x8=y | 642 | CONFIG_FONT_8x8=y |
697 | CONFIG_FONT_8x16=y | 643 | CONFIG_FONT_8x16=y |
698 | CONFIG_LOGO=y | 644 | CONFIG_LOGO=y |
645 | CONFIG_FB_LOGO_EXTRA=y | ||
699 | # CONFIG_LOGO_LINUX_MONO is not set | 646 | # CONFIG_LOGO_LINUX_MONO is not set |
700 | # CONFIG_LOGO_LINUX_VGA16 is not set | 647 | # CONFIG_LOGO_LINUX_VGA16 is not set |
701 | CONFIG_LOGO_LINUX_CLUT224=y | 648 | CONFIG_LOGO_LINUX_CLUT224=y |
@@ -709,6 +656,8 @@ CONFIG_SOUND=y | |||
709 | # Advanced Linux Sound Architecture | 656 | # Advanced Linux Sound Architecture |
710 | # | 657 | # |
711 | CONFIG_SND=y | 658 | CONFIG_SND=y |
659 | CONFIG_SND_TIMER=y | ||
660 | CONFIG_SND_PCM=y | ||
712 | # CONFIG_SND_SEQUENCER is not set | 661 | # CONFIG_SND_SEQUENCER is not set |
713 | # CONFIG_SND_MIXER_OSS is not set | 662 | # CONFIG_SND_MIXER_OSS is not set |
714 | # CONFIG_SND_PCM_OSS is not set | 663 | # CONFIG_SND_PCM_OSS is not set |
@@ -735,6 +684,12 @@ CONFIG_SND_VERBOSE_PROCFS=y | |||
735 | # | 684 | # |
736 | 685 | ||
737 | # | 686 | # |
687 | # ALSA PowerPC devices | ||
688 | # | ||
689 | CONFIG_SND_PS3=y | ||
690 | CONFIG_SND_PS3_DEFAULT_START_DELAY=2000 | ||
691 | |||
692 | # | ||
738 | # USB devices | 693 | # USB devices |
739 | # | 694 | # |
740 | # CONFIG_SND_USB_AUDIO is not set | 695 | # CONFIG_SND_USB_AUDIO is not set |
@@ -747,13 +702,14 @@ CONFIG_SND_VERBOSE_PROCFS=y | |||
747 | # CONFIG_SND_SOC is not set | 702 | # CONFIG_SND_SOC is not set |
748 | 703 | ||
749 | # | 704 | # |
750 | # Open Sound System | 705 | # SoC Audio support for SuperH |
751 | # | 706 | # |
752 | # CONFIG_SOUND_PRIME is not set | ||
753 | 707 | ||
754 | # | 708 | # |
755 | # HID Devices | 709 | # Open Sound System |
756 | # | 710 | # |
711 | # CONFIG_SOUND_PRIME is not set | ||
712 | CONFIG_HID_SUPPORT=y | ||
757 | CONFIG_HID=y | 713 | CONFIG_HID=y |
758 | # CONFIG_HID_DEBUG is not set | 714 | # CONFIG_HID_DEBUG is not set |
759 | 715 | ||
@@ -770,10 +726,7 @@ CONFIG_USB_HID=m | |||
770 | # | 726 | # |
771 | # CONFIG_USB_KBD is not set | 727 | # CONFIG_USB_KBD is not set |
772 | # CONFIG_USB_MOUSE is not set | 728 | # CONFIG_USB_MOUSE is not set |
773 | 729 | CONFIG_USB_SUPPORT=y | |
774 | # | ||
775 | # USB support | ||
776 | # | ||
777 | CONFIG_USB_ARCH_HAS_HCD=y | 730 | CONFIG_USB_ARCH_HAS_HCD=y |
778 | CONFIG_USB_ARCH_HAS_OHCI=y | 731 | CONFIG_USB_ARCH_HAS_OHCI=y |
779 | CONFIG_USB_ARCH_HAS_EHCI=y | 732 | CONFIG_USB_ARCH_HAS_EHCI=y |
@@ -803,6 +756,7 @@ CONFIG_USB_OHCI_HCD=y | |||
803 | CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y | 756 | CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y |
804 | CONFIG_USB_OHCI_LITTLE_ENDIAN=y | 757 | CONFIG_USB_OHCI_LITTLE_ENDIAN=y |
805 | # CONFIG_USB_SL811_HCD is not set | 758 | # CONFIG_USB_SL811_HCD is not set |
759 | # CONFIG_USB_R8A66597_HCD is not set | ||
806 | 760 | ||
807 | # | 761 | # |
808 | # USB Device Class drivers | 762 | # USB Device Class drivers |
@@ -879,31 +833,8 @@ CONFIG_USB_MON=y | |||
879 | # | 833 | # |
880 | # CONFIG_USB_GADGET is not set | 834 | # CONFIG_USB_GADGET is not set |
881 | # CONFIG_MMC is not set | 835 | # CONFIG_MMC is not set |
882 | |||
883 | # | ||
884 | # LED devices | ||
885 | # | ||
886 | # CONFIG_NEW_LEDS is not set | 836 | # CONFIG_NEW_LEDS is not set |
887 | 837 | # CONFIG_EDAC is not set | |
888 | # | ||
889 | # LED drivers | ||
890 | # | ||
891 | |||
892 | # | ||
893 | # LED Triggers | ||
894 | # | ||
895 | |||
896 | # | ||
897 | # InfiniBand support | ||
898 | # | ||
899 | |||
900 | # | ||
901 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | ||
902 | # | ||
903 | |||
904 | # | ||
905 | # Real Time Clock | ||
906 | # | ||
907 | # CONFIG_RTC_CLASS is not set | 838 | # CONFIG_RTC_CLASS is not set |
908 | 839 | ||
909 | # | 840 | # |
@@ -920,6 +851,11 @@ CONFIG_USB_MON=y | |||
920 | # | 851 | # |
921 | 852 | ||
922 | # | 853 | # |
854 | # Userspace I/O | ||
855 | # | ||
856 | # CONFIG_UIO is not set | ||
857 | |||
858 | # | ||
923 | # File systems | 859 | # File systems |
924 | # | 860 | # |
925 | CONFIG_EXT2_FS=m | 861 | CONFIG_EXT2_FS=m |
@@ -948,8 +884,8 @@ CONFIG_QUOTA=y | |||
948 | CONFIG_QFMT_V2=y | 884 | CONFIG_QFMT_V2=y |
949 | CONFIG_QUOTACTL=y | 885 | CONFIG_QUOTACTL=y |
950 | CONFIG_DNOTIFY=y | 886 | CONFIG_DNOTIFY=y |
951 | # CONFIG_AUTOFS_FS is not set | 887 | CONFIG_AUTOFS_FS=m |
952 | CONFIG_AUTOFS4_FS=y | 888 | CONFIG_AUTOFS4_FS=m |
953 | # CONFIG_FUSE_FS is not set | 889 | # CONFIG_FUSE_FS is not set |
954 | 890 | ||
955 | # | 891 | # |
@@ -1030,7 +966,6 @@ CONFIG_CIFS=m | |||
1030 | # CONFIG_NCP_FS is not set | 966 | # CONFIG_NCP_FS is not set |
1031 | # CONFIG_CODA_FS is not set | 967 | # CONFIG_CODA_FS is not set |
1032 | # CONFIG_AFS_FS is not set | 968 | # CONFIG_AFS_FS is not set |
1033 | # CONFIG_9P_FS is not set | ||
1034 | 969 | ||
1035 | # | 970 | # |
1036 | # Partition Types | 971 | # Partition Types |
@@ -1096,6 +1031,7 @@ CONFIG_BITREVERSE=y | |||
1096 | # CONFIG_CRC16 is not set | 1031 | # CONFIG_CRC16 is not set |
1097 | # CONFIG_CRC_ITU_T is not set | 1032 | # CONFIG_CRC_ITU_T is not set |
1098 | CONFIG_CRC32=y | 1033 | CONFIG_CRC32=y |
1034 | # CONFIG_CRC7 is not set | ||
1099 | # CONFIG_LIBCRC32C is not set | 1035 | # CONFIG_LIBCRC32C is not set |
1100 | CONFIG_PLIST=y | 1036 | CONFIG_PLIST=y |
1101 | CONFIG_HAS_IOMEM=y | 1037 | CONFIG_HAS_IOMEM=y |
@@ -1120,6 +1056,7 @@ CONFIG_MAGIC_SYSRQ=y | |||
1120 | CONFIG_DEBUG_KERNEL=y | 1056 | CONFIG_DEBUG_KERNEL=y |
1121 | # CONFIG_DEBUG_SHIRQ is not set | 1057 | # CONFIG_DEBUG_SHIRQ is not set |
1122 | CONFIG_DETECT_SOFTLOCKUP=y | 1058 | CONFIG_DETECT_SOFTLOCKUP=y |
1059 | CONFIG_SCHED_DEBUG=y | ||
1123 | # CONFIG_SCHEDSTATS is not set | 1060 | # CONFIG_SCHEDSTATS is not set |
1124 | # CONFIG_TIMER_STATS is not set | 1061 | # CONFIG_TIMER_STATS is not set |
1125 | # CONFIG_DEBUG_SLAB is not set | 1062 | # CONFIG_DEBUG_SLAB is not set |
@@ -1150,10 +1087,6 @@ CONFIG_IRQSTACKS=y | |||
1150 | # | 1087 | # |
1151 | # CONFIG_KEYS is not set | 1088 | # CONFIG_KEYS is not set |
1152 | # CONFIG_SECURITY is not set | 1089 | # CONFIG_SECURITY is not set |
1153 | |||
1154 | # | ||
1155 | # Cryptographic options | ||
1156 | # | ||
1157 | CONFIG_CRYPTO=y | 1090 | CONFIG_CRYPTO=y |
1158 | CONFIG_CRYPTO_ALGAPI=y | 1091 | CONFIG_CRYPTO_ALGAPI=y |
1159 | CONFIG_CRYPTO_BLKCIPHER=y | 1092 | CONFIG_CRYPTO_BLKCIPHER=y |
@@ -1191,7 +1124,4 @@ CONFIG_CRYPTO_DES=y | |||
1191 | # CONFIG_CRYPTO_CRC32C is not set | 1124 | # CONFIG_CRYPTO_CRC32C is not set |
1192 | # CONFIG_CRYPTO_CAMELLIA is not set | 1125 | # CONFIG_CRYPTO_CAMELLIA is not set |
1193 | # CONFIG_CRYPTO_TEST is not set | 1126 | # CONFIG_CRYPTO_TEST is not set |
1194 | 1127 | CONFIG_CRYPTO_HW=y | |
1195 | # | ||
1196 | # Hardware crypto devices | ||
1197 | # | ||
diff --git a/arch/powerpc/kernel/Makefile b/arch/powerpc/kernel/Makefile index f39a72f30aad..b0cb2e662c25 100644 --- a/arch/powerpc/kernel/Makefile +++ b/arch/powerpc/kernel/Makefile | |||
@@ -81,6 +81,7 @@ obj-y += iomap.o | |||
81 | endif | 81 | endif |
82 | 82 | ||
83 | ifeq ($(CONFIG_PPC_ISERIES),y) | 83 | ifeq ($(CONFIG_PPC_ISERIES),y) |
84 | CFLAGS_lparmap.s += -g0 | ||
84 | extra-y += lparmap.s | 85 | extra-y += lparmap.s |
85 | $(obj)/head_64.o: $(obj)/lparmap.s | 86 | $(obj)/head_64.o: $(obj)/lparmap.s |
86 | AFLAGS_head_64.o += -I$(obj) | 87 | AFLAGS_head_64.o += -I$(obj) |
diff --git a/arch/powerpc/kernel/head_64.S b/arch/powerpc/kernel/head_64.S index 1448af92c6a9..171800002ede 100644 --- a/arch/powerpc/kernel/head_64.S +++ b/arch/powerpc/kernel/head_64.S | |||
@@ -1672,8 +1672,9 @@ _GLOBAL(__start_initialization_multiplatform) | |||
1672 | * Are we booted from a PROM Of-type client-interface ? | 1672 | * Are we booted from a PROM Of-type client-interface ? |
1673 | */ | 1673 | */ |
1674 | cmpldi cr0,r5,0 | 1674 | cmpldi cr0,r5,0 |
1675 | bne .__boot_from_prom /* yes -> prom */ | 1675 | beq 1f |
1676 | 1676 | b .__boot_from_prom /* yes -> prom */ | |
1677 | 1: | ||
1677 | /* Save parameters */ | 1678 | /* Save parameters */ |
1678 | mr r31,r3 | 1679 | mr r31,r3 |
1679 | mr r30,r4 | 1680 | mr r30,r4 |
@@ -1701,7 +1702,7 @@ _GLOBAL(__start_initialization_multiplatform) | |||
1701 | bl .__mmu_off | 1702 | bl .__mmu_off |
1702 | b .__after_prom_start | 1703 | b .__after_prom_start |
1703 | 1704 | ||
1704 | _STATIC(__boot_from_prom) | 1705 | _INIT_STATIC(__boot_from_prom) |
1705 | /* Save parameters */ | 1706 | /* Save parameters */ |
1706 | mr r31,r3 | 1707 | mr r31,r3 |
1707 | mr r30,r4 | 1708 | mr r30,r4 |
@@ -1768,9 +1769,10 @@ _STATIC(__after_prom_start) | |||
1768 | /* the source addr */ | 1769 | /* the source addr */ |
1769 | 1770 | ||
1770 | cmpdi r4,0 /* In some cases the loader may */ | 1771 | cmpdi r4,0 /* In some cases the loader may */ |
1771 | beq .start_here_multiplatform /* have already put us at zero */ | 1772 | bne 1f |
1773 | b .start_here_multiplatform /* have already put us at zero */ | ||
1772 | /* so we can skip the copy. */ | 1774 | /* so we can skip the copy. */ |
1773 | LOAD_REG_IMMEDIATE(r5,copy_to_here) /* # bytes of memory to copy */ | 1775 | 1: LOAD_REG_IMMEDIATE(r5,copy_to_here) /* # bytes of memory to copy */ |
1774 | sub r5,r5,r27 | 1776 | sub r5,r5,r27 |
1775 | 1777 | ||
1776 | li r6,0x100 /* Start offset, the first 0x100 */ | 1778 | li r6,0x100 /* Start offset, the first 0x100 */ |
@@ -1957,7 +1959,7 @@ _GLOBAL(enable_64b_mode) | |||
1957 | /* | 1959 | /* |
1958 | * This is where the main kernel code starts. | 1960 | * This is where the main kernel code starts. |
1959 | */ | 1961 | */ |
1960 | _STATIC(start_here_multiplatform) | 1962 | _INIT_STATIC(start_here_multiplatform) |
1961 | /* get a new offset, now that the kernel has moved. */ | 1963 | /* get a new offset, now that the kernel has moved. */ |
1962 | bl .reloc_offset | 1964 | bl .reloc_offset |
1963 | mr r26,r3 | 1965 | mr r26,r3 |
@@ -2019,7 +2021,7 @@ _STATIC(start_here_multiplatform) | |||
2019 | b . /* prevent speculative execution */ | 2021 | b . /* prevent speculative execution */ |
2020 | 2022 | ||
2021 | /* This is where all platforms converge execution */ | 2023 | /* This is where all platforms converge execution */ |
2022 | _STATIC(start_here_common) | 2024 | _INIT_STATIC(start_here_common) |
2023 | /* relocation is on at this point */ | 2025 | /* relocation is on at this point */ |
2024 | 2026 | ||
2025 | /* The following code sets up the SP and TOC now that we are */ | 2027 | /* The following code sets up the SP and TOC now that we are */ |
diff --git a/arch/powerpc/kernel/misc_32.S b/arch/powerpc/kernel/misc_32.S index e708ab7ca9e8..8533de50347d 100644 --- a/arch/powerpc/kernel/misc_32.S +++ b/arch/powerpc/kernel/misc_32.S | |||
@@ -301,9 +301,19 @@ _GLOBAL(_tlbie) | |||
301 | mfspr r4,SPRN_MMUCR | 301 | mfspr r4,SPRN_MMUCR |
302 | mfspr r5,SPRN_PID /* Get PID */ | 302 | mfspr r5,SPRN_PID /* Get PID */ |
303 | rlwimi r4,r5,0,24,31 /* Set TID */ | 303 | rlwimi r4,r5,0,24,31 /* Set TID */ |
304 | mtspr SPRN_MMUCR,r4 | ||
305 | 304 | ||
305 | /* We have to run the search with interrupts disabled, even critical | ||
306 | * and debug interrupts (in fact the only critical exceptions we have | ||
307 | * are debug and machine check). Otherwise an interrupt which causes | ||
308 | * a TLB miss can clobber the MMUCR between the mtspr and the tlbsx. */ | ||
309 | mfmsr r5 | ||
310 | lis r6,(MSR_EE|MSR_CE|MSR_ME|MSR_DE)@ha | ||
311 | addi r6,r6,(MSR_EE|MSR_CE|MSR_ME|MSR_DE)@l | ||
312 | andc r6,r5,r6 | ||
313 | mtmsr r6 | ||
314 | mtspr SPRN_MMUCR,r4 | ||
306 | tlbsx. r3, 0, r3 | 315 | tlbsx. r3, 0, r3 |
316 | mtmsr r5 | ||
307 | bne 10f | 317 | bne 10f |
308 | sync | 318 | sync |
309 | /* There are only 64 TLB entries, so r3 < 64, | 319 | /* There are only 64 TLB entries, so r3 < 64, |
diff --git a/arch/powerpc/kernel/pci_64.c b/arch/powerpc/kernel/pci_64.c index a97e23ac1976..291ffbc360c9 100644 --- a/arch/powerpc/kernel/pci_64.c +++ b/arch/powerpc/kernel/pci_64.c | |||
@@ -313,6 +313,7 @@ struct pci_dev *of_create_pci_dev(struct device_node *node, | |||
313 | 313 | ||
314 | dev->current_state = 4; /* unknown power state */ | 314 | dev->current_state = 4; /* unknown power state */ |
315 | dev->error_state = pci_channel_io_normal; | 315 | dev->error_state = pci_channel_io_normal; |
316 | dev->dma_mask = 0xffffffff; | ||
316 | 317 | ||
317 | if (!strcmp(type, "pci") || !strcmp(type, "pciex")) { | 318 | if (!strcmp(type, "pci") || !strcmp(type, "pciex")) { |
318 | /* a PCI-PCI bridge */ | 319 | /* a PCI-PCI bridge */ |
diff --git a/arch/powerpc/mm/hash_utils_64.c b/arch/powerpc/mm/hash_utils_64.c index f1789578747a..a47151e806ca 100644 --- a/arch/powerpc/mm/hash_utils_64.c +++ b/arch/powerpc/mm/hash_utils_64.c | |||
@@ -795,7 +795,7 @@ void hash_preload(struct mm_struct *mm, unsigned long ea, | |||
795 | 795 | ||
796 | #ifdef CONFIG_PPC_MM_SLICES | 796 | #ifdef CONFIG_PPC_MM_SLICES |
797 | /* We only prefault standard pages for now */ | 797 | /* We only prefault standard pages for now */ |
798 | if (unlikely(get_slice_psize(mm, ea) != mm->context.user_psize)); | 798 | if (unlikely(get_slice_psize(mm, ea) != mm->context.user_psize)) |
799 | return; | 799 | return; |
800 | #endif | 800 | #endif |
801 | 801 | ||
diff --git a/arch/powerpc/mm/slb.c b/arch/powerpc/mm/slb.c index b0697017d0e8..a73d2d700973 100644 --- a/arch/powerpc/mm/slb.c +++ b/arch/powerpc/mm/slb.c | |||
@@ -69,20 +69,9 @@ static inline void slb_shadow_update(unsigned long ea, | |||
69 | smp_wmb(); | 69 | smp_wmb(); |
70 | } | 70 | } |
71 | 71 | ||
72 | static inline void create_shadowed_slbe(unsigned long ea, unsigned long flags, | 72 | static inline void slb_shadow_clear(unsigned long entry) |
73 | unsigned long entry) | ||
74 | { | 73 | { |
75 | /* | 74 | get_slb_shadow()->save_area[entry].esid = 0; |
76 | * Updating the shadow buffer before writing the SLB ensures | ||
77 | * we don't get a stale entry here if we get preempted by PHYP | ||
78 | * between these two statements. | ||
79 | */ | ||
80 | slb_shadow_update(ea, flags, entry); | ||
81 | |||
82 | asm volatile("slbmte %0,%1" : | ||
83 | : "r" (mk_vsid_data(ea, flags)), | ||
84 | "r" (mk_esid_data(ea, entry)) | ||
85 | : "memory" ); | ||
86 | } | 75 | } |
87 | 76 | ||
88 | void slb_flush_and_rebolt(void) | 77 | void slb_flush_and_rebolt(void) |
@@ -100,11 +89,13 @@ void slb_flush_and_rebolt(void) | |||
100 | vflags = SLB_VSID_KERNEL | vmalloc_llp; | 89 | vflags = SLB_VSID_KERNEL | vmalloc_llp; |
101 | 90 | ||
102 | ksp_esid_data = mk_esid_data(get_paca()->kstack, 2); | 91 | ksp_esid_data = mk_esid_data(get_paca()->kstack, 2); |
103 | if ((ksp_esid_data & ESID_MASK) == PAGE_OFFSET) | 92 | if ((ksp_esid_data & ESID_MASK) == PAGE_OFFSET) { |
104 | ksp_esid_data &= ~SLB_ESID_V; | 93 | ksp_esid_data &= ~SLB_ESID_V; |
105 | 94 | slb_shadow_clear(2); | |
106 | /* Only third entry (stack) may change here so only resave that */ | 95 | } else { |
107 | slb_shadow_update(get_paca()->kstack, lflags, 2); | 96 | /* Update stack entry; others don't change */ |
97 | slb_shadow_update(get_paca()->kstack, lflags, 2); | ||
98 | } | ||
108 | 99 | ||
109 | /* We need to do this all in asm, so we're sure we don't touch | 100 | /* We need to do this all in asm, so we're sure we don't touch |
110 | * the stack between the slbia and rebolting it. */ | 101 | * the stack between the slbia and rebolting it. */ |
@@ -235,16 +226,12 @@ void slb_initialize(void) | |||
235 | vflags = SLB_VSID_KERNEL | vmalloc_llp; | 226 | vflags = SLB_VSID_KERNEL | vmalloc_llp; |
236 | 227 | ||
237 | /* Invalidate the entire SLB (even slot 0) & all the ERATS */ | 228 | /* Invalidate the entire SLB (even slot 0) & all the ERATS */ |
238 | asm volatile("isync":::"memory"); | 229 | slb_shadow_update(PAGE_OFFSET, lflags, 0); |
239 | asm volatile("slbmte %0,%0"::"r" (0) : "memory"); | 230 | asm volatile("isync; slbia; sync; slbmte %0,%1; isync" :: |
240 | asm volatile("isync; slbia; isync":::"memory"); | 231 | "r" (get_slb_shadow()->save_area[0].vsid), |
241 | create_shadowed_slbe(PAGE_OFFSET, lflags, 0); | 232 | "r" (get_slb_shadow()->save_area[0].esid) : "memory"); |
242 | 233 | ||
243 | create_shadowed_slbe(VMALLOC_START, vflags, 1); | 234 | slb_shadow_update(VMALLOC_START, vflags, 1); |
244 | 235 | ||
245 | /* We don't bolt the stack for the time being - we're in boot, | 236 | slb_flush_and_rebolt(); |
246 | * so the stack is in the bolted segment. By the time it goes | ||
247 | * elsewhere, we'll call _switch() which will bolt in the new | ||
248 | * one. */ | ||
249 | asm volatile("isync":::"memory"); | ||
250 | } | 237 | } |
diff --git a/arch/powerpc/mm/slice.c b/arch/powerpc/mm/slice.c index f833dba2a028..d5fd3909d13a 100644 --- a/arch/powerpc/mm/slice.c +++ b/arch/powerpc/mm/slice.c | |||
@@ -405,6 +405,8 @@ unsigned long slice_get_unmapped_area(unsigned long addr, unsigned long len, | |||
405 | 405 | ||
406 | if (len > mm->task_size) | 406 | if (len > mm->task_size) |
407 | return -ENOMEM; | 407 | return -ENOMEM; |
408 | if (len & ((1ul << pshift) - 1)) | ||
409 | return -EINVAL; | ||
408 | if (fixed && (addr & ((1ul << pshift) - 1))) | 410 | if (fixed && (addr & ((1ul << pshift) - 1))) |
409 | return -EINVAL; | 411 | return -EINVAL; |
410 | if (fixed && addr > (mm->task_size - len)) | 412 | if (fixed && addr > (mm->task_size - len)) |
diff --git a/arch/powerpc/platforms/83xx/mpc832x_mds.c b/arch/powerpc/platforms/83xx/mpc832x_mds.c index b39cb52c6fb9..2c8e641a739b 100644 --- a/arch/powerpc/platforms/83xx/mpc832x_mds.c +++ b/arch/powerpc/platforms/83xx/mpc832x_mds.c | |||
@@ -106,7 +106,6 @@ static struct of_device_id mpc832x_ids[] = { | |||
106 | { .type = "soc", }, | 106 | { .type = "soc", }, |
107 | { .compatible = "soc", }, | 107 | { .compatible = "soc", }, |
108 | { .type = "qe", }, | 108 | { .type = "qe", }, |
109 | { .type = "mdio", }, | ||
110 | {}, | 109 | {}, |
111 | }; | 110 | }; |
112 | 111 | ||
diff --git a/arch/powerpc/platforms/83xx/mpc832x_rdb.c b/arch/powerpc/platforms/83xx/mpc832x_rdb.c index b2b28a44738c..090906170a41 100644 --- a/arch/powerpc/platforms/83xx/mpc832x_rdb.c +++ b/arch/powerpc/platforms/83xx/mpc832x_rdb.c | |||
@@ -70,7 +70,6 @@ static struct of_device_id mpc832x_ids[] = { | |||
70 | { .type = "soc", }, | 70 | { .type = "soc", }, |
71 | { .compatible = "soc", }, | 71 | { .compatible = "soc", }, |
72 | { .type = "qe", }, | 72 | { .type = "qe", }, |
73 | { .type = "mdio", }, | ||
74 | {}, | 73 | {}, |
75 | }; | 74 | }; |
76 | 75 | ||
diff --git a/arch/powerpc/platforms/83xx/mpc836x_mds.c b/arch/powerpc/platforms/83xx/mpc836x_mds.c index 0e615fd65c1f..84b58934aafd 100644 --- a/arch/powerpc/platforms/83xx/mpc836x_mds.c +++ b/arch/powerpc/platforms/83xx/mpc836x_mds.c | |||
@@ -113,7 +113,6 @@ static struct of_device_id mpc836x_ids[] = { | |||
113 | { .type = "soc", }, | 113 | { .type = "soc", }, |
114 | { .compatible = "soc", }, | 114 | { .compatible = "soc", }, |
115 | { .type = "qe", }, | 115 | { .type = "qe", }, |
116 | { .type = "mdio", }, | ||
117 | {}, | 116 | {}, |
118 | }; | 117 | }; |
119 | 118 | ||
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_mds.c b/arch/powerpc/platforms/85xx/mpc85xx_mds.c index e8003bf00c9a..be25ecd911ba 100644 --- a/arch/powerpc/platforms/85xx/mpc85xx_mds.c +++ b/arch/powerpc/platforms/85xx/mpc85xx_mds.c | |||
@@ -142,7 +142,6 @@ static struct of_device_id mpc85xx_ids[] = { | |||
142 | { .type = "soc", }, | 142 | { .type = "soc", }, |
143 | { .compatible = "soc", }, | 143 | { .compatible = "soc", }, |
144 | { .type = "qe", }, | 144 | { .type = "qe", }, |
145 | { .type = "mdio", }, | ||
146 | {}, | 145 | {}, |
147 | }; | 146 | }; |
148 | 147 | ||
diff --git a/arch/powerpc/platforms/cell/spu_base.c b/arch/powerpc/platforms/cell/spu_base.c index 90124228b8f4..095a30304c56 100644 --- a/arch/powerpc/platforms/cell/spu_base.c +++ b/arch/powerpc/platforms/cell/spu_base.c | |||
@@ -36,7 +36,6 @@ | |||
36 | #include <asm/spu_priv1.h> | 36 | #include <asm/spu_priv1.h> |
37 | #include <asm/xmon.h> | 37 | #include <asm/xmon.h> |
38 | #include <asm/prom.h> | 38 | #include <asm/prom.h> |
39 | #include "spu_priv1_mmio.h" | ||
40 | 39 | ||
41 | const struct spu_management_ops *spu_management_ops; | 40 | const struct spu_management_ops *spu_management_ops; |
42 | EXPORT_SYMBOL_GPL(spu_management_ops); | 41 | EXPORT_SYMBOL_GPL(spu_management_ops); |
@@ -636,138 +635,6 @@ static ssize_t spu_stat_show(struct sys_device *sysdev, char *buf) | |||
636 | 635 | ||
637 | static SYSDEV_ATTR(stat, 0644, spu_stat_show, NULL); | 636 | static SYSDEV_ATTR(stat, 0644, spu_stat_show, NULL); |
638 | 637 | ||
639 | /* Hardcoded affinity idxs for QS20 */ | ||
640 | #define SPES_PER_BE 8 | ||
641 | static int QS20_reg_idxs[SPES_PER_BE] = { 0, 2, 4, 6, 7, 5, 3, 1 }; | ||
642 | static int QS20_reg_memory[SPES_PER_BE] = { 1, 1, 0, 0, 0, 0, 0, 0 }; | ||
643 | |||
644 | static struct spu *spu_lookup_reg(int node, u32 reg) | ||
645 | { | ||
646 | struct spu *spu; | ||
647 | |||
648 | list_for_each_entry(spu, &cbe_spu_info[node].spus, cbe_list) { | ||
649 | if (*(u32 *)get_property(spu_devnode(spu), "reg", NULL) == reg) | ||
650 | return spu; | ||
651 | } | ||
652 | return NULL; | ||
653 | } | ||
654 | |||
655 | static void init_aff_QS20_harcoded(void) | ||
656 | { | ||
657 | int node, i; | ||
658 | struct spu *last_spu, *spu; | ||
659 | u32 reg; | ||
660 | |||
661 | for (node = 0; node < MAX_NUMNODES; node++) { | ||
662 | last_spu = NULL; | ||
663 | for (i = 0; i < SPES_PER_BE; i++) { | ||
664 | reg = QS20_reg_idxs[i]; | ||
665 | spu = spu_lookup_reg(node, reg); | ||
666 | if (!spu) | ||
667 | continue; | ||
668 | spu->has_mem_affinity = QS20_reg_memory[reg]; | ||
669 | if (last_spu) | ||
670 | list_add_tail(&spu->aff_list, | ||
671 | &last_spu->aff_list); | ||
672 | last_spu = spu; | ||
673 | } | ||
674 | } | ||
675 | } | ||
676 | |||
677 | static int of_has_vicinity(void) | ||
678 | { | ||
679 | struct spu* spu; | ||
680 | |||
681 | spu = list_entry(cbe_spu_info[0].spus.next, struct spu, cbe_list); | ||
682 | return of_find_property(spu_devnode(spu), "vicinity", NULL) != NULL; | ||
683 | } | ||
684 | |||
685 | static struct spu *aff_devnode_spu(int cbe, struct device_node *dn) | ||
686 | { | ||
687 | struct spu *spu; | ||
688 | |||
689 | list_for_each_entry(spu, &cbe_spu_info[cbe].spus, cbe_list) | ||
690 | if (spu_devnode(spu) == dn) | ||
691 | return spu; | ||
692 | return NULL; | ||
693 | } | ||
694 | |||
695 | static struct spu * | ||
696 | aff_node_next_to(int cbe, struct device_node *target, struct device_node *avoid) | ||
697 | { | ||
698 | struct spu *spu; | ||
699 | const phandle *vic_handles; | ||
700 | int lenp, i; | ||
701 | |||
702 | list_for_each_entry(spu, &cbe_spu_info[cbe].spus, cbe_list) { | ||
703 | if (spu_devnode(spu) == avoid) | ||
704 | continue; | ||
705 | vic_handles = get_property(spu_devnode(spu), "vicinity", &lenp); | ||
706 | for (i=0; i < (lenp / sizeof(phandle)); i++) { | ||
707 | if (vic_handles[i] == target->linux_phandle) | ||
708 | return spu; | ||
709 | } | ||
710 | } | ||
711 | return NULL; | ||
712 | } | ||
713 | |||
714 | static void init_aff_fw_vicinity_node(int cbe) | ||
715 | { | ||
716 | struct spu *spu, *last_spu; | ||
717 | struct device_node *vic_dn, *last_spu_dn; | ||
718 | phandle avoid_ph; | ||
719 | const phandle *vic_handles; | ||
720 | const char *name; | ||
721 | int lenp, i, added, mem_aff; | ||
722 | |||
723 | last_spu = list_entry(cbe_spu_info[cbe].spus.next, struct spu, cbe_list); | ||
724 | avoid_ph = 0; | ||
725 | for (added = 1; added < cbe_spu_info[cbe].n_spus; added++) { | ||
726 | last_spu_dn = spu_devnode(last_spu); | ||
727 | vic_handles = get_property(last_spu_dn, "vicinity", &lenp); | ||
728 | |||
729 | for (i = 0; i < (lenp / sizeof(phandle)); i++) { | ||
730 | if (vic_handles[i] == avoid_ph) | ||
731 | continue; | ||
732 | |||
733 | vic_dn = of_find_node_by_phandle(vic_handles[i]); | ||
734 | if (!vic_dn) | ||
735 | continue; | ||
736 | |||
737 | name = get_property(vic_dn, "name", NULL); | ||
738 | if (strcmp(name, "spe") == 0) { | ||
739 | spu = aff_devnode_spu(cbe, vic_dn); | ||
740 | avoid_ph = last_spu_dn->linux_phandle; | ||
741 | } | ||
742 | else { | ||
743 | mem_aff = strcmp(name, "mic-tm") == 0; | ||
744 | spu = aff_node_next_to(cbe, vic_dn, last_spu_dn); | ||
745 | if (!spu) | ||
746 | continue; | ||
747 | if (mem_aff) { | ||
748 | last_spu->has_mem_affinity = 1; | ||
749 | spu->has_mem_affinity = 1; | ||
750 | } | ||
751 | avoid_ph = vic_dn->linux_phandle; | ||
752 | } | ||
753 | list_add_tail(&spu->aff_list, &last_spu->aff_list); | ||
754 | last_spu = spu; | ||
755 | break; | ||
756 | } | ||
757 | } | ||
758 | } | ||
759 | |||
760 | static void init_aff_fw_vicinity(void) | ||
761 | { | ||
762 | int cbe; | ||
763 | |||
764 | /* sets has_mem_affinity for each spu, as long as the | ||
765 | * spu->aff_list list, linking each spu to its neighbors | ||
766 | */ | ||
767 | for (cbe = 0; cbe < MAX_NUMNODES; cbe++) | ||
768 | init_aff_fw_vicinity_node(cbe); | ||
769 | } | ||
770 | |||
771 | static int __init init_spu_base(void) | 638 | static int __init init_spu_base(void) |
772 | { | 639 | { |
773 | int i, ret = 0; | 640 | int i, ret = 0; |
@@ -811,13 +678,7 @@ static int __init init_spu_base(void) | |||
811 | mutex_unlock(&spu_full_list_mutex); | 678 | mutex_unlock(&spu_full_list_mutex); |
812 | spu_add_sysdev_attr(&attr_stat); | 679 | spu_add_sysdev_attr(&attr_stat); |
813 | 680 | ||
814 | if (of_has_vicinity()) { | 681 | spu_init_affinity(); |
815 | init_aff_fw_vicinity(); | ||
816 | } else { | ||
817 | long root = of_get_flat_dt_root(); | ||
818 | if (of_flat_dt_is_compatible(root, "IBM,CPBW-1.0")) | ||
819 | init_aff_QS20_harcoded(); | ||
820 | } | ||
821 | 682 | ||
822 | return 0; | 683 | return 0; |
823 | 684 | ||
diff --git a/arch/powerpc/platforms/cell/spu_manage.c b/arch/powerpc/platforms/cell/spu_manage.c index 75ed50fcc3db..5eb88346181a 100644 --- a/arch/powerpc/platforms/cell/spu_manage.c +++ b/arch/powerpc/platforms/cell/spu_manage.c | |||
@@ -361,8 +361,171 @@ static int of_destroy_spu(struct spu *spu) | |||
361 | return 0; | 361 | return 0; |
362 | } | 362 | } |
363 | 363 | ||
364 | /* Hardcoded affinity idxs for qs20 */ | ||
365 | #define QS20_SPES_PER_BE 8 | ||
366 | static int qs20_reg_idxs[QS20_SPES_PER_BE] = { 0, 2, 4, 6, 7, 5, 3, 1 }; | ||
367 | static int qs20_reg_memory[QS20_SPES_PER_BE] = { 1, 1, 0, 0, 0, 0, 0, 0 }; | ||
368 | |||
369 | static struct spu *spu_lookup_reg(int node, u32 reg) | ||
370 | { | ||
371 | struct spu *spu; | ||
372 | u32 *spu_reg; | ||
373 | |||
374 | list_for_each_entry(spu, &cbe_spu_info[node].spus, cbe_list) { | ||
375 | spu_reg = (u32*)of_get_property(spu_devnode(spu), "reg", NULL); | ||
376 | if (*spu_reg == reg) | ||
377 | return spu; | ||
378 | } | ||
379 | return NULL; | ||
380 | } | ||
381 | |||
382 | static void init_affinity_qs20_harcoded(void) | ||
383 | { | ||
384 | int node, i; | ||
385 | struct spu *last_spu, *spu; | ||
386 | u32 reg; | ||
387 | |||
388 | for (node = 0; node < MAX_NUMNODES; node++) { | ||
389 | last_spu = NULL; | ||
390 | for (i = 0; i < QS20_SPES_PER_BE; i++) { | ||
391 | reg = qs20_reg_idxs[i]; | ||
392 | spu = spu_lookup_reg(node, reg); | ||
393 | if (!spu) | ||
394 | continue; | ||
395 | spu->has_mem_affinity = qs20_reg_memory[reg]; | ||
396 | if (last_spu) | ||
397 | list_add_tail(&spu->aff_list, | ||
398 | &last_spu->aff_list); | ||
399 | last_spu = spu; | ||
400 | } | ||
401 | } | ||
402 | } | ||
403 | |||
404 | static int of_has_vicinity(void) | ||
405 | { | ||
406 | struct spu* spu; | ||
407 | |||
408 | spu = list_first_entry(&cbe_spu_info[0].spus, struct spu, cbe_list); | ||
409 | return of_find_property(spu_devnode(spu), "vicinity", NULL) != NULL; | ||
410 | } | ||
411 | |||
412 | static struct spu *devnode_spu(int cbe, struct device_node *dn) | ||
413 | { | ||
414 | struct spu *spu; | ||
415 | |||
416 | list_for_each_entry(spu, &cbe_spu_info[cbe].spus, cbe_list) | ||
417 | if (spu_devnode(spu) == dn) | ||
418 | return spu; | ||
419 | return NULL; | ||
420 | } | ||
421 | |||
422 | static struct spu * | ||
423 | neighbour_spu(int cbe, struct device_node *target, struct device_node *avoid) | ||
424 | { | ||
425 | struct spu *spu; | ||
426 | struct device_node *spu_dn; | ||
427 | const phandle *vic_handles; | ||
428 | int lenp, i; | ||
429 | |||
430 | list_for_each_entry(spu, &cbe_spu_info[cbe].spus, cbe_list) { | ||
431 | spu_dn = spu_devnode(spu); | ||
432 | if (spu_dn == avoid) | ||
433 | continue; | ||
434 | vic_handles = of_get_property(spu_dn, "vicinity", &lenp); | ||
435 | for (i=0; i < (lenp / sizeof(phandle)); i++) { | ||
436 | if (vic_handles[i] == target->linux_phandle) | ||
437 | return spu; | ||
438 | } | ||
439 | } | ||
440 | return NULL; | ||
441 | } | ||
442 | |||
443 | static void init_affinity_node(int cbe) | ||
444 | { | ||
445 | struct spu *spu, *last_spu; | ||
446 | struct device_node *vic_dn, *last_spu_dn; | ||
447 | phandle avoid_ph; | ||
448 | const phandle *vic_handles; | ||
449 | const char *name; | ||
450 | int lenp, i, added; | ||
451 | |||
452 | last_spu = list_first_entry(&cbe_spu_info[cbe].spus, struct spu, | ||
453 | cbe_list); | ||
454 | avoid_ph = 0; | ||
455 | for (added = 1; added < cbe_spu_info[cbe].n_spus; added++) { | ||
456 | last_spu_dn = spu_devnode(last_spu); | ||
457 | vic_handles = of_get_property(last_spu_dn, "vicinity", &lenp); | ||
458 | |||
459 | /* | ||
460 | * Walk through each phandle in vicinity property of the spu | ||
461 | * (tipically two vicinity phandles per spe node) | ||
462 | */ | ||
463 | for (i = 0; i < (lenp / sizeof(phandle)); i++) { | ||
464 | if (vic_handles[i] == avoid_ph) | ||
465 | continue; | ||
466 | |||
467 | vic_dn = of_find_node_by_phandle(vic_handles[i]); | ||
468 | if (!vic_dn) | ||
469 | continue; | ||
470 | |||
471 | /* a neighbour might be spe, mic-tm, or bif0 */ | ||
472 | name = of_get_property(vic_dn, "name", NULL); | ||
473 | if (!name) | ||
474 | continue; | ||
475 | |||
476 | if (strcmp(name, "spe") == 0) { | ||
477 | spu = devnode_spu(cbe, vic_dn); | ||
478 | avoid_ph = last_spu_dn->linux_phandle; | ||
479 | } else { | ||
480 | /* | ||
481 | * "mic-tm" and "bif0" nodes do not have | ||
482 | * vicinity property. So we need to find the | ||
483 | * spe which has vic_dn as neighbour, but | ||
484 | * skipping the one we came from (last_spu_dn) | ||
485 | */ | ||
486 | spu = neighbour_spu(cbe, vic_dn, last_spu_dn); | ||
487 | if (!spu) | ||
488 | continue; | ||
489 | if (!strcmp(name, "mic-tm")) { | ||
490 | last_spu->has_mem_affinity = 1; | ||
491 | spu->has_mem_affinity = 1; | ||
492 | } | ||
493 | avoid_ph = vic_dn->linux_phandle; | ||
494 | } | ||
495 | |||
496 | list_add_tail(&spu->aff_list, &last_spu->aff_list); | ||
497 | last_spu = spu; | ||
498 | break; | ||
499 | } | ||
500 | } | ||
501 | } | ||
502 | |||
503 | static void init_affinity_fw(void) | ||
504 | { | ||
505 | int cbe; | ||
506 | |||
507 | for (cbe = 0; cbe < MAX_NUMNODES; cbe++) | ||
508 | init_affinity_node(cbe); | ||
509 | } | ||
510 | |||
511 | static int __init init_affinity(void) | ||
512 | { | ||
513 | if (of_has_vicinity()) { | ||
514 | init_affinity_fw(); | ||
515 | } else { | ||
516 | long root = of_get_flat_dt_root(); | ||
517 | if (of_flat_dt_is_compatible(root, "IBM,CPBW-1.0")) | ||
518 | init_affinity_qs20_harcoded(); | ||
519 | else | ||
520 | printk("No affinity configuration found"); | ||
521 | } | ||
522 | |||
523 | return 0; | ||
524 | } | ||
525 | |||
364 | const struct spu_management_ops spu_management_of_ops = { | 526 | const struct spu_management_ops spu_management_of_ops = { |
365 | .enumerate_spus = of_enumerate_spus, | 527 | .enumerate_spus = of_enumerate_spus, |
366 | .create_spu = of_create_spu, | 528 | .create_spu = of_create_spu, |
367 | .destroy_spu = of_destroy_spu, | 529 | .destroy_spu = of_destroy_spu, |
530 | .init_affinity = init_affinity, | ||
368 | }; | 531 | }; |
diff --git a/arch/powerpc/platforms/cell/spu_syscalls.c b/arch/powerpc/platforms/cell/spu_syscalls.c index dd2c6688c8aa..027ac32cc636 100644 --- a/arch/powerpc/platforms/cell/spu_syscalls.c +++ b/arch/powerpc/platforms/cell/spu_syscalls.c | |||
@@ -45,6 +45,7 @@ asmlinkage long sys_spu_create(const char __user *name, | |||
45 | if (owner && try_module_get(owner)) { | 45 | if (owner && try_module_get(owner)) { |
46 | if (flags & SPU_CREATE_AFFINITY_SPU) { | 46 | if (flags & SPU_CREATE_AFFINITY_SPU) { |
47 | neighbor = fget_light(neighbor_fd, &fput_needed); | 47 | neighbor = fget_light(neighbor_fd, &fput_needed); |
48 | ret = -EBADF; | ||
48 | if (neighbor) { | 49 | if (neighbor) { |
49 | ret = spufs_calls.create_thread(name, flags, | 50 | ret = spufs_calls.create_thread(name, flags, |
50 | mode, neighbor); | 51 | mode, neighbor); |
diff --git a/arch/powerpc/platforms/ps3/Kconfig b/arch/powerpc/platforms/ps3/Kconfig index d4fc74f7bb15..67144d1d1405 100644 --- a/arch/powerpc/platforms/ps3/Kconfig +++ b/arch/powerpc/platforms/ps3/Kconfig | |||
@@ -1,5 +1,5 @@ | |||
1 | config PPC_PS3 | 1 | config PPC_PS3 |
2 | bool "Sony PS3 (incomplete)" | 2 | bool "Sony PS3" |
3 | depends on PPC_MULTIPLATFORM && PPC64 | 3 | depends on PPC_MULTIPLATFORM && PPC64 |
4 | select PPC_CELL | 4 | select PPC_CELL |
5 | select USB_ARCH_HAS_OHCI | 5 | select USB_ARCH_HAS_OHCI |
@@ -10,10 +10,10 @@ config PPC_PS3 | |||
10 | select MEMORY_HOTPLUG | 10 | select MEMORY_HOTPLUG |
11 | help | 11 | help |
12 | This option enables support for the Sony PS3 game console | 12 | This option enables support for the Sony PS3 game console |
13 | and other platforms using the PS3 hypervisor. | 13 | and other platforms using the PS3 hypervisor. Enabling this |
14 | Support for this platform is not yet complete, so | 14 | option will allow building otheros.bld, a kernel image suitable |
15 | enabling this will not result in a bootable kernel on a | 15 | for programming into flash memory, and vmlinux, a kernel image |
16 | PS3 system. | 16 | suitable for loading via kexec. |
17 | 17 | ||
18 | menu "PS3 Platform Options" | 18 | menu "PS3 Platform Options" |
19 | depends on PPC_PS3 | 19 | depends on PPC_PS3 |
diff --git a/arch/powerpc/platforms/ps3/device-init.c b/arch/powerpc/platforms/ps3/device-init.c index 825ebb2cbc2a..ce15cada88d4 100644 --- a/arch/powerpc/platforms/ps3/device-init.c +++ b/arch/powerpc/platforms/ps3/device-init.c | |||
@@ -273,55 +273,58 @@ static int ps3stor_wait_for_completion(u64 dev_id, u64 tag, | |||
273 | 273 | ||
274 | static int ps3_storage_wait_for_device(const struct ps3_repository_device *repo) | 274 | static int ps3_storage_wait_for_device(const struct ps3_repository_device *repo) |
275 | { | 275 | { |
276 | int error = -ENODEV; | ||
276 | int result; | 277 | int result; |
277 | const u64 notification_dev_id = (u64)-1LL; | 278 | const u64 notification_dev_id = (u64)-1LL; |
278 | const unsigned int timeout = HZ; | 279 | const unsigned int timeout = HZ; |
279 | u64 lpar; | 280 | u64 lpar; |
280 | u64 tag; | 281 | u64 tag; |
282 | void *buf; | ||
283 | enum ps3_notify_type { | ||
284 | notify_device_ready = 0, | ||
285 | notify_region_probe = 1, | ||
286 | notify_region_update = 2, | ||
287 | }; | ||
281 | struct { | 288 | struct { |
282 | u64 operation_code; /* must be zero */ | 289 | u64 operation_code; /* must be zero */ |
283 | u64 event_mask; /* 1 = device ready */ | 290 | u64 event_mask; /* OR of 1UL << enum ps3_notify_type */ |
284 | } *notify_cmd; | 291 | } *notify_cmd; |
285 | struct { | 292 | struct { |
286 | u64 event_type; /* notify_device_ready */ | 293 | u64 event_type; /* enum ps3_notify_type */ |
287 | u64 bus_id; | 294 | u64 bus_id; |
288 | u64 dev_id; | 295 | u64 dev_id; |
289 | u64 dev_type; | 296 | u64 dev_type; |
290 | u64 dev_port; | 297 | u64 dev_port; |
291 | } *notify_event; | 298 | } *notify_event; |
292 | enum { | ||
293 | notify_device_ready = 1 | ||
294 | }; | ||
295 | 299 | ||
296 | pr_debug(" -> %s:%u: bus_id %u, dev_id %u, dev_type %u\n", __func__, | 300 | pr_debug(" -> %s:%u: bus_id %u, dev_id %u, dev_type %u\n", __func__, |
297 | __LINE__, repo->bus_id, repo->dev_id, repo->dev_type); | 301 | __LINE__, repo->bus_id, repo->dev_id, repo->dev_type); |
298 | 302 | ||
299 | notify_cmd = kzalloc(512, GFP_KERNEL); | 303 | buf = kzalloc(512, GFP_KERNEL); |
300 | notify_event = (void *)notify_cmd; | 304 | if (!buf) |
301 | if (!notify_cmd) | ||
302 | return -ENOMEM; | 305 | return -ENOMEM; |
303 | 306 | ||
304 | lpar = ps3_mm_phys_to_lpar(__pa(notify_cmd)); | 307 | lpar = ps3_mm_phys_to_lpar(__pa(buf)); |
308 | notify_cmd = buf; | ||
309 | notify_event = buf; | ||
305 | 310 | ||
306 | result = lv1_open_device(repo->bus_id, notification_dev_id, 0); | 311 | result = lv1_open_device(repo->bus_id, notification_dev_id, 0); |
307 | if (result) { | 312 | if (result) { |
308 | printk(KERN_ERR "%s:%u: lv1_open_device %s\n", __func__, | 313 | printk(KERN_ERR "%s:%u: lv1_open_device %s\n", __func__, |
309 | __LINE__, ps3_result(result)); | 314 | __LINE__, ps3_result(result)); |
310 | result = -ENODEV; | ||
311 | goto fail_free; | 315 | goto fail_free; |
312 | } | 316 | } |
313 | 317 | ||
314 | /* Setup and write the request for device notification. */ | 318 | /* Setup and write the request for device notification. */ |
315 | 319 | ||
316 | notify_cmd->operation_code = 0; /* must be zero */ | 320 | notify_cmd->operation_code = 0; /* must be zero */ |
317 | notify_cmd->event_mask = 0x01; /* device ready */ | 321 | notify_cmd->event_mask = 1UL << notify_region_probe; |
318 | 322 | ||
319 | result = lv1_storage_write(notification_dev_id, 0, 0, 1, 0, lpar, | 323 | result = lv1_storage_write(notification_dev_id, 0, 0, 1, 0, lpar, |
320 | &tag); | 324 | &tag); |
321 | if (result) { | 325 | if (result) { |
322 | printk(KERN_ERR "%s:%u: write failed %s\n", __func__, __LINE__, | 326 | printk(KERN_ERR "%s:%u: write failed %s\n", __func__, __LINE__, |
323 | ps3_result(result)); | 327 | ps3_result(result)); |
324 | result = -ENODEV; | ||
325 | goto fail_close; | 328 | goto fail_close; |
326 | } | 329 | } |
327 | 330 | ||
@@ -332,13 +335,11 @@ static int ps3_storage_wait_for_device(const struct ps3_repository_device *repo) | |||
332 | if (result) { | 335 | if (result) { |
333 | printk(KERN_ERR "%s:%u: write not completed %s\n", __func__, | 336 | printk(KERN_ERR "%s:%u: write not completed %s\n", __func__, |
334 | __LINE__, ps3_result(result)); | 337 | __LINE__, ps3_result(result)); |
335 | result = -ENODEV; | ||
336 | goto fail_close; | 338 | goto fail_close; |
337 | } | 339 | } |
338 | 340 | ||
339 | /* Loop here processing the requested notification events. */ | 341 | /* Loop here processing the requested notification events. */ |
340 | 342 | ||
341 | result = -ENODEV; | ||
342 | while (1) { | 343 | while (1) { |
343 | memset(notify_event, 0, sizeof(*notify_event)); | 344 | memset(notify_event, 0, sizeof(*notify_event)); |
344 | 345 | ||
@@ -358,7 +359,7 @@ static int ps3_storage_wait_for_device(const struct ps3_repository_device *repo) | |||
358 | break; | 359 | break; |
359 | } | 360 | } |
360 | 361 | ||
361 | if (notify_event->event_type != notify_device_ready || | 362 | if (notify_event->event_type != notify_region_probe || |
362 | notify_event->bus_id != repo->bus_id) { | 363 | notify_event->bus_id != repo->bus_id) { |
363 | pr_debug("%s:%u: bad notify_event: event %lu, " | 364 | pr_debug("%s:%u: bad notify_event: event %lu, " |
364 | "dev_id %lu, dev_type %lu\n", | 365 | "dev_id %lu, dev_type %lu\n", |
@@ -371,7 +372,7 @@ static int ps3_storage_wait_for_device(const struct ps3_repository_device *repo) | |||
371 | notify_event->dev_type == repo->dev_type) { | 372 | notify_event->dev_type == repo->dev_type) { |
372 | pr_debug("%s:%u: device ready: dev_id %u\n", __func__, | 373 | pr_debug("%s:%u: device ready: dev_id %u\n", __func__, |
373 | __LINE__, repo->dev_id); | 374 | __LINE__, repo->dev_id); |
374 | result = 0; | 375 | error = 0; |
375 | break; | 376 | break; |
376 | } | 377 | } |
377 | 378 | ||
@@ -386,9 +387,9 @@ static int ps3_storage_wait_for_device(const struct ps3_repository_device *repo) | |||
386 | fail_close: | 387 | fail_close: |
387 | lv1_close_device(repo->bus_id, notification_dev_id); | 388 | lv1_close_device(repo->bus_id, notification_dev_id); |
388 | fail_free: | 389 | fail_free: |
389 | kfree(notify_cmd); | 390 | kfree(buf); |
390 | pr_debug(" <- %s:%u\n", __func__, __LINE__); | 391 | pr_debug(" <- %s:%u\n", __func__, __LINE__); |
391 | return result; | 392 | return error; |
392 | } | 393 | } |
393 | 394 | ||
394 | static int ps3_setup_storage_dev(const struct ps3_repository_device *repo, | 395 | static int ps3_setup_storage_dev(const struct ps3_repository_device *repo, |
diff --git a/arch/powerpc/platforms/ps3/spu.c b/arch/powerpc/platforms/ps3/spu.c index 502d80ed982b..ac2a4b8a4c14 100644 --- a/arch/powerpc/platforms/ps3/spu.c +++ b/arch/powerpc/platforms/ps3/spu.c | |||
@@ -414,10 +414,16 @@ static int __init ps3_enumerate_spus(int (*fn)(void *data)) | |||
414 | return num_resource_id; | 414 | return num_resource_id; |
415 | } | 415 | } |
416 | 416 | ||
417 | static int ps3_init_affinity(void) | ||
418 | { | ||
419 | return 0; | ||
420 | } | ||
421 | |||
417 | const struct spu_management_ops spu_management_ps3_ops = { | 422 | const struct spu_management_ops spu_management_ps3_ops = { |
418 | .enumerate_spus = ps3_enumerate_spus, | 423 | .enumerate_spus = ps3_enumerate_spus, |
419 | .create_spu = ps3_create_spu, | 424 | .create_spu = ps3_create_spu, |
420 | .destroy_spu = ps3_destroy_spu, | 425 | .destroy_spu = ps3_destroy_spu, |
426 | .init_affinity = ps3_init_affinity, | ||
421 | }; | 427 | }; |
422 | 428 | ||
423 | /* spu_priv1_ops */ | 429 | /* spu_priv1_ops */ |
diff --git a/arch/ppc/kernel/misc.S b/arch/ppc/kernel/misc.S index 0da55368655c..a22e1f4d94c8 100644 --- a/arch/ppc/kernel/misc.S +++ b/arch/ppc/kernel/misc.S | |||
@@ -237,9 +237,19 @@ _GLOBAL(_tlbie) | |||
237 | mfspr r4,SPRN_MMUCR | 237 | mfspr r4,SPRN_MMUCR |
238 | mfspr r5,SPRN_PID /* Get PID */ | 238 | mfspr r5,SPRN_PID /* Get PID */ |
239 | rlwimi r4,r5,0,24,31 /* Set TID */ | 239 | rlwimi r4,r5,0,24,31 /* Set TID */ |
240 | mtspr SPRN_MMUCR,r4 | ||
241 | 240 | ||
241 | /* We have to run the search with interrupts disabled, even critical | ||
242 | * and debug interrupts (in fact the only critical exceptions we have | ||
243 | * are debug and machine check). Otherwise an interrupt which causes | ||
244 | * a TLB miss can clobber the MMUCR between the mtspr and the tlbsx. */ | ||
245 | mfmsr r5 | ||
246 | lis r6,(MSR_EE|MSR_CE|MSR_ME|MSR_DE)@ha | ||
247 | addi r6,r6,(MSR_EE|MSR_CE|MSR_ME|MSR_DE)@l | ||
248 | andc r6,r5,r6 | ||
249 | mtmsr r6 | ||
250 | mtspr SPRN_MMUCR,r4 | ||
242 | tlbsx. r3, 0, r3 | 251 | tlbsx. r3, 0, r3 |
252 | mtmsr r5 | ||
243 | bne 10f | 253 | bne 10f |
244 | sync | 254 | sync |
245 | /* There are only 64 TLB entries, so r3 < 64, | 255 | /* There are only 64 TLB entries, so r3 < 64, |
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig index 098c62c29f9c..b71132166f60 100644 --- a/arch/s390/Kconfig +++ b/arch/s390/Kconfig | |||
@@ -109,10 +109,6 @@ config HOTPLUG_CPU | |||
109 | can be controlled through /sys/devices/system/cpu/cpu#. | 109 | can be controlled through /sys/devices/system/cpu/cpu#. |
110 | Say N if you want to disable CPU hotplug. | 110 | Say N if you want to disable CPU hotplug. |
111 | 111 | ||
112 | config DEFAULT_MIGRATION_COST | ||
113 | int | ||
114 | default "1000000" | ||
115 | |||
116 | config MATHEMU | 112 | config MATHEMU |
117 | bool "IEEE FPU emulation" | 113 | bool "IEEE FPU emulation" |
118 | depends on MARCH_G5 | 114 | depends on MARCH_G5 |
diff --git a/arch/s390/hypfs/inode.c b/arch/s390/hypfs/inode.c index 8e1ea1c40128..ad4ca75c0f04 100644 --- a/arch/s390/hypfs/inode.c +++ b/arch/s390/hypfs/inode.c | |||
@@ -17,6 +17,8 @@ | |||
17 | #include <linux/parser.h> | 17 | #include <linux/parser.h> |
18 | #include <linux/sysfs.h> | 18 | #include <linux/sysfs.h> |
19 | #include <linux/module.h> | 19 | #include <linux/module.h> |
20 | #include <linux/seq_file.h> | ||
21 | #include <linux/mount.h> | ||
20 | #include <asm/ebcdic.h> | 22 | #include <asm/ebcdic.h> |
21 | #include "hypfs.h" | 23 | #include "hypfs.h" |
22 | 24 | ||
@@ -256,6 +258,15 @@ static int hypfs_parse_options(char *options, struct super_block *sb) | |||
256 | return 0; | 258 | return 0; |
257 | } | 259 | } |
258 | 260 | ||
261 | static int hypfs_show_options(struct seq_file *s, struct vfsmount *mnt) | ||
262 | { | ||
263 | struct hypfs_sb_info *hypfs_info = mnt->mnt_sb->s_fs_info; | ||
264 | |||
265 | seq_printf(s, ",uid=%u", hypfs_info->uid); | ||
266 | seq_printf(s, ",gid=%u", hypfs_info->gid); | ||
267 | return 0; | ||
268 | } | ||
269 | |||
259 | static int hypfs_fill_super(struct super_block *sb, void *data, int silent) | 270 | static int hypfs_fill_super(struct super_block *sb, void *data, int silent) |
260 | { | 271 | { |
261 | struct inode *root_inode; | 272 | struct inode *root_inode; |
@@ -459,6 +470,7 @@ static struct file_system_type hypfs_type = { | |||
459 | static struct super_operations hypfs_s_ops = { | 470 | static struct super_operations hypfs_s_ops = { |
460 | .statfs = simple_statfs, | 471 | .statfs = simple_statfs, |
461 | .drop_inode = hypfs_drop_inode, | 472 | .drop_inode = hypfs_drop_inode, |
473 | .show_options = hypfs_show_options, | ||
462 | }; | 474 | }; |
463 | 475 | ||
464 | static decl_subsys(s390, NULL, NULL); | 476 | static decl_subsys(s390, NULL, NULL); |
diff --git a/arch/sparc/kernel/ebus.c b/arch/sparc/kernel/ebus.c index ac352eb6dff3..e2d02fd13f35 100644 --- a/arch/sparc/kernel/ebus.c +++ b/arch/sparc/kernel/ebus.c | |||
@@ -238,6 +238,7 @@ void __init fill_ebus_device(struct device_node *dp, struct linux_ebus_device *d | |||
238 | sd = &dev->ofdev.dev.archdata; | 238 | sd = &dev->ofdev.dev.archdata; |
239 | sd->prom_node = dp; | 239 | sd->prom_node = dp; |
240 | sd->op = &dev->ofdev; | 240 | sd->op = &dev->ofdev; |
241 | sd->iommu = dev->bus->ofdev.dev.parent->archdata.iommu; | ||
241 | 242 | ||
242 | dev->ofdev.node = dp; | 243 | dev->ofdev.node = dp; |
243 | dev->ofdev.dev.parent = &dev->bus->ofdev.dev; | 244 | dev->ofdev.dev.parent = &dev->bus->ofdev.dev; |
diff --git a/arch/sparc/kernel/prom.c b/arch/sparc/kernel/prom.c index 39fbd3c8ab0b..cd4fb79aa3a8 100644 --- a/arch/sparc/kernel/prom.c +++ b/arch/sparc/kernel/prom.c | |||
@@ -102,6 +102,21 @@ int of_set_property(struct device_node *dp, const char *name, void *val, int len | |||
102 | } | 102 | } |
103 | EXPORT_SYMBOL(of_set_property); | 103 | EXPORT_SYMBOL(of_set_property); |
104 | 104 | ||
105 | int of_find_in_proplist(const char *list, const char *match, int len) | ||
106 | { | ||
107 | while (len > 0) { | ||
108 | int l; | ||
109 | |||
110 | if (!strcmp(list, match)) | ||
111 | return 1; | ||
112 | l = strlen(list) + 1; | ||
113 | list += l; | ||
114 | len -= l; | ||
115 | } | ||
116 | return 0; | ||
117 | } | ||
118 | EXPORT_SYMBOL(of_find_in_proplist); | ||
119 | |||
105 | static unsigned int prom_early_allocated; | 120 | static unsigned int prom_early_allocated; |
106 | 121 | ||
107 | static void * __init prom_early_alloc(unsigned long size) | 122 | static void * __init prom_early_alloc(unsigned long size) |
diff --git a/arch/sparc/mm/init.c b/arch/sparc/mm/init.c index a1bef07755a9..c13e6cd279ac 100644 --- a/arch/sparc/mm/init.c +++ b/arch/sparc/mm/init.c | |||
@@ -206,8 +206,7 @@ unsigned long __init bootmem_init(unsigned long *pages_avail) | |||
206 | #ifdef CONFIG_BLK_DEV_INITRD | 206 | #ifdef CONFIG_BLK_DEV_INITRD |
207 | /* Now have to check initial ramdisk, so that bootmap does not overwrite it */ | 207 | /* Now have to check initial ramdisk, so that bootmap does not overwrite it */ |
208 | if (sparc_ramdisk_image) { | 208 | if (sparc_ramdisk_image) { |
209 | if (sparc_ramdisk_image >= (unsigned long)&_end - 2 * PAGE_SIZE) | 209 | sparc_ramdisk_image -= KERNBASE; |
210 | sparc_ramdisk_image -= KERNBASE; | ||
211 | initrd_start = sparc_ramdisk_image + phys_base; | 210 | initrd_start = sparc_ramdisk_image + phys_base; |
212 | initrd_end = initrd_start + sparc_ramdisk_size; | 211 | initrd_end = initrd_start + sparc_ramdisk_size; |
213 | if (initrd_end > end_of_phys_memory) { | 212 | if (initrd_end > end_of_phys_memory) { |
diff --git a/arch/sparc/mm/io-unit.c b/arch/sparc/mm/io-unit.c index 4ccda77d08d6..7c89893b1fe8 100644 --- a/arch/sparc/mm/io-unit.c +++ b/arch/sparc/mm/io-unit.c | |||
@@ -66,7 +66,7 @@ iounit_init(int sbi_node, int io_node, struct sbus_bus *sbus) | |||
66 | } | 66 | } |
67 | if(!xpt) panic("Cannot map External Page Table."); | 67 | if(!xpt) panic("Cannot map External Page Table."); |
68 | 68 | ||
69 | sbus->iommu = (struct iommu_struct *)iounit; | 69 | sbus->ofdev.dev.archdata.iommu = iounit; |
70 | iounit->page_table = xpt; | 70 | iounit->page_table = xpt; |
71 | spin_lock_init(&iounit->lock); | 71 | spin_lock_init(&iounit->lock); |
72 | 72 | ||
@@ -127,7 +127,7 @@ nexti: scan = find_next_zero_bit(iounit->bmap, limit, scan); | |||
127 | static __u32 iounit_get_scsi_one(char *vaddr, unsigned long len, struct sbus_bus *sbus) | 127 | static __u32 iounit_get_scsi_one(char *vaddr, unsigned long len, struct sbus_bus *sbus) |
128 | { | 128 | { |
129 | unsigned long ret, flags; | 129 | unsigned long ret, flags; |
130 | struct iounit_struct *iounit = (struct iounit_struct *)sbus->iommu; | 130 | struct iounit_struct *iounit = sbus->ofdev.dev.archdata.iommu; |
131 | 131 | ||
132 | spin_lock_irqsave(&iounit->lock, flags); | 132 | spin_lock_irqsave(&iounit->lock, flags); |
133 | ret = iounit_get_area(iounit, (unsigned long)vaddr, len); | 133 | ret = iounit_get_area(iounit, (unsigned long)vaddr, len); |
@@ -138,7 +138,7 @@ static __u32 iounit_get_scsi_one(char *vaddr, unsigned long len, struct sbus_bus | |||
138 | static void iounit_get_scsi_sgl(struct scatterlist *sg, int sz, struct sbus_bus *sbus) | 138 | static void iounit_get_scsi_sgl(struct scatterlist *sg, int sz, struct sbus_bus *sbus) |
139 | { | 139 | { |
140 | unsigned long flags; | 140 | unsigned long flags; |
141 | struct iounit_struct *iounit = (struct iounit_struct *)sbus->iommu; | 141 | struct iounit_struct *iounit = sbus->ofdev.dev.archdata.iommu; |
142 | 142 | ||
143 | /* FIXME: Cache some resolved pages - often several sg entries are to the same page */ | 143 | /* FIXME: Cache some resolved pages - often several sg entries are to the same page */ |
144 | spin_lock_irqsave(&iounit->lock, flags); | 144 | spin_lock_irqsave(&iounit->lock, flags); |
@@ -153,7 +153,7 @@ static void iounit_get_scsi_sgl(struct scatterlist *sg, int sz, struct sbus_bus | |||
153 | static void iounit_release_scsi_one(__u32 vaddr, unsigned long len, struct sbus_bus *sbus) | 153 | static void iounit_release_scsi_one(__u32 vaddr, unsigned long len, struct sbus_bus *sbus) |
154 | { | 154 | { |
155 | unsigned long flags; | 155 | unsigned long flags; |
156 | struct iounit_struct *iounit = (struct iounit_struct *)sbus->iommu; | 156 | struct iounit_struct *iounit = sbus->ofdev.dev.archdata.iommu; |
157 | 157 | ||
158 | spin_lock_irqsave(&iounit->lock, flags); | 158 | spin_lock_irqsave(&iounit->lock, flags); |
159 | len = ((vaddr & ~PAGE_MASK) + len + (PAGE_SIZE-1)) >> PAGE_SHIFT; | 159 | len = ((vaddr & ~PAGE_MASK) + len + (PAGE_SIZE-1)) >> PAGE_SHIFT; |
@@ -168,7 +168,7 @@ static void iounit_release_scsi_sgl(struct scatterlist *sg, int sz, struct sbus_ | |||
168 | { | 168 | { |
169 | unsigned long flags; | 169 | unsigned long flags; |
170 | unsigned long vaddr, len; | 170 | unsigned long vaddr, len; |
171 | struct iounit_struct *iounit = (struct iounit_struct *)sbus->iommu; | 171 | struct iounit_struct *iounit = sbus->ofdev.dev.archdata.iommu; |
172 | 172 | ||
173 | spin_lock_irqsave(&iounit->lock, flags); | 173 | spin_lock_irqsave(&iounit->lock, flags); |
174 | while (sz != 0) { | 174 | while (sz != 0) { |
@@ -211,7 +211,7 @@ static int iounit_map_dma_area(dma_addr_t *pba, unsigned long va, __u32 addr, in | |||
211 | i = ((addr - IOUNIT_DMA_BASE) >> PAGE_SHIFT); | 211 | i = ((addr - IOUNIT_DMA_BASE) >> PAGE_SHIFT); |
212 | 212 | ||
213 | for_each_sbus(sbus) { | 213 | for_each_sbus(sbus) { |
214 | struct iounit_struct *iounit = (struct iounit_struct *)sbus->iommu; | 214 | struct iounit_struct *iounit = sbus->ofdev.dev.archdata.iommu; |
215 | 215 | ||
216 | iopte = (iopte_t *)(iounit->page_table + i); | 216 | iopte = (iopte_t *)(iounit->page_table + i); |
217 | *iopte = MKIOPTE(__pa(page)); | 217 | *iopte = MKIOPTE(__pa(page)); |
@@ -235,7 +235,7 @@ static void iounit_unmap_dma_area(unsigned long addr, int len) | |||
235 | static struct page *iounit_translate_dvma(unsigned long addr) | 235 | static struct page *iounit_translate_dvma(unsigned long addr) |
236 | { | 236 | { |
237 | struct sbus_bus *sbus = sbus_root; /* They are all the same */ | 237 | struct sbus_bus *sbus = sbus_root; /* They are all the same */ |
238 | struct iounit_struct *iounit = (struct iounit_struct *)sbus->iommu; | 238 | struct iounit_struct *iounit = sbus->ofdev.dev.archdata.iommu; |
239 | int i; | 239 | int i; |
240 | iopte_t *iopte; | 240 | iopte_t *iopte; |
241 | 241 | ||
@@ -279,7 +279,7 @@ __u32 iounit_map_dma_init(struct sbus_bus *sbus, int size) | |||
279 | unsigned long rotor, scan, limit; | 279 | unsigned long rotor, scan, limit; |
280 | unsigned long flags; | 280 | unsigned long flags; |
281 | __u32 ret; | 281 | __u32 ret; |
282 | struct iounit_struct *iounit = (struct iounit_struct *)sbus->iommu; | 282 | struct iounit_struct *iounit = sbus->ofdev.dev.archdata.iommu; |
283 | 283 | ||
284 | npages = (size + (PAGE_SIZE-1)) >> PAGE_SHIFT; | 284 | npages = (size + (PAGE_SIZE-1)) >> PAGE_SHIFT; |
285 | i = 0x0213; | 285 | i = 0x0213; |
@@ -315,7 +315,7 @@ nexti: scan = find_next_zero_bit(iounit->bmap, limit, scan); | |||
315 | __u32 iounit_map_dma_page(__u32 vaddr, void *addr, struct sbus_bus *sbus) | 315 | __u32 iounit_map_dma_page(__u32 vaddr, void *addr, struct sbus_bus *sbus) |
316 | { | 316 | { |
317 | int scan = (vaddr - IOUNIT_DMA_BASE) >> PAGE_SHIFT; | 317 | int scan = (vaddr - IOUNIT_DMA_BASE) >> PAGE_SHIFT; |
318 | struct iounit_struct *iounit = (struct iounit_struct *)sbus->iommu; | 318 | struct iounit_struct *iounit = sbus->ofdev.dev.archdata.iommu; |
319 | 319 | ||
320 | iounit->page_table[scan] = MKIOPTE(__pa(((unsigned long)addr) & PAGE_MASK)); | 320 | iounit->page_table[scan] = MKIOPTE(__pa(((unsigned long)addr) & PAGE_MASK)); |
321 | return vaddr + (((unsigned long)addr) & ~PAGE_MASK); | 321 | return vaddr + (((unsigned long)addr) & ~PAGE_MASK); |
diff --git a/arch/sparc/mm/iommu.c b/arch/sparc/mm/iommu.c index be042efd1ba4..52e907af9d29 100644 --- a/arch/sparc/mm/iommu.c +++ b/arch/sparc/mm/iommu.c | |||
@@ -132,7 +132,7 @@ iommu_init(int iommund, struct sbus_bus *sbus) | |||
132 | impl, vers, iommu->page_table, | 132 | impl, vers, iommu->page_table, |
133 | (int)(IOMMU_NPTES*sizeof(iopte_t)), (int)IOMMU_NPTES); | 133 | (int)(IOMMU_NPTES*sizeof(iopte_t)), (int)IOMMU_NPTES); |
134 | 134 | ||
135 | sbus->iommu = iommu; | 135 | sbus->ofdev.dev.archdata.iommu = iommu; |
136 | } | 136 | } |
137 | 137 | ||
138 | /* This begs to be btfixup-ed by srmmu. */ | 138 | /* This begs to be btfixup-ed by srmmu. */ |
@@ -166,7 +166,7 @@ static void iommu_flush_iotlb(iopte_t *iopte, unsigned int niopte) | |||
166 | 166 | ||
167 | static u32 iommu_get_one(struct page *page, int npages, struct sbus_bus *sbus) | 167 | static u32 iommu_get_one(struct page *page, int npages, struct sbus_bus *sbus) |
168 | { | 168 | { |
169 | struct iommu_struct *iommu = sbus->iommu; | 169 | struct iommu_struct *iommu = sbus->ofdev.dev.archdata.iommu; |
170 | int ioptex; | 170 | int ioptex; |
171 | iopte_t *iopte, *iopte0; | 171 | iopte_t *iopte, *iopte0; |
172 | unsigned int busa, busa0; | 172 | unsigned int busa, busa0; |
@@ -291,7 +291,7 @@ static void iommu_get_scsi_sgl_pflush(struct scatterlist *sg, int sz, struct sbu | |||
291 | 291 | ||
292 | static void iommu_release_one(u32 busa, int npages, struct sbus_bus *sbus) | 292 | static void iommu_release_one(u32 busa, int npages, struct sbus_bus *sbus) |
293 | { | 293 | { |
294 | struct iommu_struct *iommu = sbus->iommu; | 294 | struct iommu_struct *iommu = sbus->ofdev.dev.archdata.iommu; |
295 | int ioptex; | 295 | int ioptex; |
296 | int i; | 296 | int i; |
297 | 297 | ||
@@ -334,7 +334,7 @@ static int iommu_map_dma_area(dma_addr_t *pba, unsigned long va, | |||
334 | unsigned long addr, int len) | 334 | unsigned long addr, int len) |
335 | { | 335 | { |
336 | unsigned long page, end; | 336 | unsigned long page, end; |
337 | struct iommu_struct *iommu = sbus_root->iommu; | 337 | struct iommu_struct *iommu = sbus_root->ofdev.dev.archdata.iommu; |
338 | iopte_t *iopte = iommu->page_table; | 338 | iopte_t *iopte = iommu->page_table; |
339 | iopte_t *first; | 339 | iopte_t *first; |
340 | int ioptex; | 340 | int ioptex; |
@@ -399,7 +399,7 @@ static int iommu_map_dma_area(dma_addr_t *pba, unsigned long va, | |||
399 | 399 | ||
400 | static void iommu_unmap_dma_area(unsigned long busa, int len) | 400 | static void iommu_unmap_dma_area(unsigned long busa, int len) |
401 | { | 401 | { |
402 | struct iommu_struct *iommu = sbus_root->iommu; | 402 | struct iommu_struct *iommu = sbus_root->ofdev.dev.archdata.iommu; |
403 | iopte_t *iopte = iommu->page_table; | 403 | iopte_t *iopte = iommu->page_table; |
404 | unsigned long end; | 404 | unsigned long end; |
405 | int ioptex = (busa - iommu->start) >> PAGE_SHIFT; | 405 | int ioptex = (busa - iommu->start) >> PAGE_SHIFT; |
@@ -420,7 +420,7 @@ static void iommu_unmap_dma_area(unsigned long busa, int len) | |||
420 | 420 | ||
421 | static struct page *iommu_translate_dvma(unsigned long busa) | 421 | static struct page *iommu_translate_dvma(unsigned long busa) |
422 | { | 422 | { |
423 | struct iommu_struct *iommu = sbus_root->iommu; | 423 | struct iommu_struct *iommu = sbus_root->ofdev.dev.archdata.iommu; |
424 | iopte_t *iopte = iommu->page_table; | 424 | iopte_t *iopte = iommu->page_table; |
425 | 425 | ||
426 | iopte += ((busa - iommu->start) >> PAGE_SHIFT); | 426 | iopte += ((busa - iommu->start) >> PAGE_SHIFT); |
diff --git a/arch/sparc/mm/sun4c.c b/arch/sparc/mm/sun4c.c index 79d60d86f6f8..005a3e72d4f2 100644 --- a/arch/sparc/mm/sun4c.c +++ b/arch/sparc/mm/sun4c.c | |||
@@ -268,7 +268,6 @@ static inline void sun4c_init_clean_mmu(unsigned long kernel_end) | |||
268 | unsigned char savectx, ctx; | 268 | unsigned char savectx, ctx; |
269 | 269 | ||
270 | savectx = sun4c_get_context(); | 270 | savectx = sun4c_get_context(); |
271 | kernel_end = SUN4C_REAL_PGDIR_ALIGN(kernel_end); | ||
272 | for (ctx = 0; ctx < num_contexts; ctx++) { | 271 | for (ctx = 0; ctx < num_contexts; ctx++) { |
273 | sun4c_set_context(ctx); | 272 | sun4c_set_context(ctx); |
274 | for (vaddr = 0; vaddr < 0x20000000; vaddr += SUN4C_REAL_PGDIR_SIZE) | 273 | for (vaddr = 0; vaddr < 0x20000000; vaddr += SUN4C_REAL_PGDIR_SIZE) |
@@ -2064,7 +2063,6 @@ void __init sun4c_paging_init(void) | |||
2064 | unsigned long end_pfn, pages_avail; | 2063 | unsigned long end_pfn, pages_avail; |
2065 | 2064 | ||
2066 | kernel_end = (unsigned long) &end; | 2065 | kernel_end = (unsigned long) &end; |
2067 | kernel_end += (SUN4C_REAL_PGDIR_SIZE * 4); | ||
2068 | kernel_end = SUN4C_REAL_PGDIR_ALIGN(kernel_end); | 2066 | kernel_end = SUN4C_REAL_PGDIR_ALIGN(kernel_end); |
2069 | 2067 | ||
2070 | pages_avail = 0; | 2068 | pages_avail = 0; |
diff --git a/arch/sparc64/kernel/cpu.c b/arch/sparc64/kernel/cpu.c index 7eb81d3954d9..e43db73f2b91 100644 --- a/arch/sparc64/kernel/cpu.c +++ b/arch/sparc64/kernel/cpu.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* cpu.c: Dinky routines to look for the kind of Sparc cpu | 1 | /* cpu.c: Dinky routines to look for the kind of Sparc cpu |
2 | * we are on. | 2 | * we are on. |
3 | * | 3 | * |
4 | * Copyright (C) 1996 David S. Miller (davem@caip.rutgers.edu) | 4 | * Copyright (C) 1996, 2007 David S. Miller (davem@davemloft.net) |
5 | */ | 5 | */ |
6 | 6 | ||
7 | #include <linux/kernel.h> | 7 | #include <linux/kernel.h> |
@@ -13,6 +13,7 @@ | |||
13 | #include <asm/fpumacro.h> | 13 | #include <asm/fpumacro.h> |
14 | #include <asm/cpudata.h> | 14 | #include <asm/cpudata.h> |
15 | #include <asm/spitfire.h> | 15 | #include <asm/spitfire.h> |
16 | #include <asm/oplib.h> | ||
16 | 17 | ||
17 | DEFINE_PER_CPU(cpuinfo_sparc, __cpu_data) = { 0 }; | 18 | DEFINE_PER_CPU(cpuinfo_sparc, __cpu_data) = { 0 }; |
18 | 19 | ||
@@ -61,21 +62,40 @@ struct cpu_iu_info linux_sparc_chips[] = { | |||
61 | 62 | ||
62 | #define NSPARCCHIPS ARRAY_SIZE(linux_sparc_chips) | 63 | #define NSPARCCHIPS ARRAY_SIZE(linux_sparc_chips) |
63 | 64 | ||
64 | char *sparc_cpu_type = "cpu-oops"; | 65 | char *sparc_cpu_type; |
65 | char *sparc_fpu_type = "fpu-oops"; | 66 | char *sparc_fpu_type; |
66 | 67 | ||
67 | unsigned int fsr_storage; | 68 | unsigned int fsr_storage; |
68 | 69 | ||
70 | static void __init sun4v_cpu_probe(void) | ||
71 | { | ||
72 | switch (sun4v_chip_type) { | ||
73 | case SUN4V_CHIP_NIAGARA1: | ||
74 | sparc_cpu_type = "UltraSparc T1 (Niagara)"; | ||
75 | sparc_fpu_type = "UltraSparc T1 integrated FPU"; | ||
76 | break; | ||
77 | |||
78 | case SUN4V_CHIP_NIAGARA2: | ||
79 | sparc_cpu_type = "UltraSparc T2 (Niagara2)"; | ||
80 | sparc_fpu_type = "UltraSparc T2 integrated FPU"; | ||
81 | break; | ||
82 | |||
83 | default: | ||
84 | printk(KERN_WARNING "CPU: Unknown sun4v cpu type [%s]\n", | ||
85 | prom_cpu_compatible); | ||
86 | sparc_cpu_type = "Unknown SUN4V CPU"; | ||
87 | sparc_fpu_type = "Unknown SUN4V FPU"; | ||
88 | break; | ||
89 | } | ||
90 | } | ||
91 | |||
69 | void __init cpu_probe(void) | 92 | void __init cpu_probe(void) |
70 | { | 93 | { |
71 | unsigned long ver, fpu_vers, manuf, impl, fprs; | 94 | unsigned long ver, fpu_vers, manuf, impl, fprs; |
72 | int i; | 95 | int i; |
73 | 96 | ||
74 | if (tlb_type == hypervisor) { | 97 | if (tlb_type == hypervisor) |
75 | sparc_cpu_type = "UltraSparc T1 (Niagara)"; | 98 | return sun4v_cpu_probe(); |
76 | sparc_fpu_type = "UltraSparc T1 integrated FPU"; | ||
77 | return; | ||
78 | } | ||
79 | 99 | ||
80 | fprs = fprs_read(); | 100 | fprs = fprs_read(); |
81 | fprs_write(FPRS_FEF); | 101 | fprs_write(FPRS_FEF); |
diff --git a/arch/sparc64/kernel/head.S b/arch/sparc64/kernel/head.S index 9dbd833d79d6..63144ad476f6 100644 --- a/arch/sparc64/kernel/head.S +++ b/arch/sparc64/kernel/head.S | |||
@@ -97,7 +97,8 @@ sparc64_boot: | |||
97 | .globl prom_map_name, prom_unmap_name, prom_mmu_ihandle_cache | 97 | .globl prom_map_name, prom_unmap_name, prom_mmu_ihandle_cache |
98 | .globl prom_boot_mapped_pc, prom_boot_mapping_mode | 98 | .globl prom_boot_mapped_pc, prom_boot_mapping_mode |
99 | .globl prom_boot_mapping_phys_high, prom_boot_mapping_phys_low | 99 | .globl prom_boot_mapping_phys_high, prom_boot_mapping_phys_low |
100 | .globl is_sun4v | 100 | .globl prom_compatible_name, prom_cpu_path, prom_cpu_compatible |
101 | .globl is_sun4v, sun4v_chip_type | ||
101 | prom_peer_name: | 102 | prom_peer_name: |
102 | .asciz "peer" | 103 | .asciz "peer" |
103 | prom_compatible_name: | 104 | prom_compatible_name: |
@@ -106,6 +107,8 @@ prom_finddev_name: | |||
106 | .asciz "finddevice" | 107 | .asciz "finddevice" |
107 | prom_chosen_path: | 108 | prom_chosen_path: |
108 | .asciz "/chosen" | 109 | .asciz "/chosen" |
110 | prom_cpu_path: | ||
111 | .asciz "/cpu" | ||
109 | prom_getprop_name: | 112 | prom_getprop_name: |
110 | .asciz "getprop" | 113 | .asciz "getprop" |
111 | prom_mmu_name: | 114 | prom_mmu_name: |
@@ -120,9 +123,13 @@ prom_unmap_name: | |||
120 | .asciz "unmap" | 123 | .asciz "unmap" |
121 | prom_sun4v_name: | 124 | prom_sun4v_name: |
122 | .asciz "sun4v" | 125 | .asciz "sun4v" |
126 | prom_niagara_prefix: | ||
127 | .asciz "SUNW,UltraSPARC-T" | ||
123 | .align 4 | 128 | .align 4 |
124 | prom_root_compatible: | 129 | prom_root_compatible: |
125 | .skip 64 | 130 | .skip 64 |
131 | prom_cpu_compatible: | ||
132 | .skip 64 | ||
126 | prom_root_node: | 133 | prom_root_node: |
127 | .word 0 | 134 | .word 0 |
128 | prom_mmu_ihandle_cache: | 135 | prom_mmu_ihandle_cache: |
@@ -138,6 +145,8 @@ prom_boot_mapping_phys_low: | |||
138 | .xword 0 | 145 | .xword 0 |
139 | is_sun4v: | 146 | is_sun4v: |
140 | .word 0 | 147 | .word 0 |
148 | sun4v_chip_type: | ||
149 | .word SUN4V_CHIP_INVALID | ||
141 | 1: | 150 | 1: |
142 | rd %pc, %l0 | 151 | rd %pc, %l0 |
143 | 152 | ||
@@ -296,13 +305,13 @@ is_sun4v: | |||
296 | sethi %hi(prom_sun4v_name), %g7 | 305 | sethi %hi(prom_sun4v_name), %g7 |
297 | or %g7, %lo(prom_sun4v_name), %g7 | 306 | or %g7, %lo(prom_sun4v_name), %g7 |
298 | mov 5, %g3 | 307 | mov 5, %g3 |
299 | 1: ldub [%g7], %g2 | 308 | 90: ldub [%g7], %g2 |
300 | ldub [%g1], %g4 | 309 | ldub [%g1], %g4 |
301 | cmp %g2, %g4 | 310 | cmp %g2, %g4 |
302 | bne,pn %icc, 2f | 311 | bne,pn %icc, 80f |
303 | add %g7, 1, %g7 | 312 | add %g7, 1, %g7 |
304 | subcc %g3, 1, %g3 | 313 | subcc %g3, 1, %g3 |
305 | bne,pt %xcc, 1b | 314 | bne,pt %xcc, 90b |
306 | add %g1, 1, %g1 | 315 | add %g1, 1, %g1 |
307 | 316 | ||
308 | sethi %hi(is_sun4v), %g1 | 317 | sethi %hi(is_sun4v), %g1 |
@@ -310,7 +319,80 @@ is_sun4v: | |||
310 | mov 1, %g7 | 319 | mov 1, %g7 |
311 | stw %g7, [%g1] | 320 | stw %g7, [%g1] |
312 | 321 | ||
313 | 2: | 322 | /* cpu_node = prom_finddevice("/cpu") */ |
323 | mov (1b - prom_finddev_name), %l1 | ||
324 | mov (1b - prom_cpu_path), %l2 | ||
325 | sub %l0, %l1, %l1 | ||
326 | sub %l0, %l2, %l2 | ||
327 | sub %sp, (192 + 128), %sp | ||
328 | |||
329 | stx %l1, [%sp + 2047 + 128 + 0x00] ! service, "finddevice" | ||
330 | mov 1, %l3 | ||
331 | stx %l3, [%sp + 2047 + 128 + 0x08] ! num_args, 1 | ||
332 | stx %l3, [%sp + 2047 + 128 + 0x10] ! num_rets, 1 | ||
333 | stx %l2, [%sp + 2047 + 128 + 0x18] ! arg1, "/cpu" | ||
334 | stx %g0, [%sp + 2047 + 128 + 0x20] ! ret1 | ||
335 | call %l7 | ||
336 | add %sp, (2047 + 128), %o0 ! argument array | ||
337 | |||
338 | ldx [%sp + 2047 + 128 + 0x20], %l4 ! cpu device node | ||
339 | |||
340 | mov (1b - prom_getprop_name), %l1 | ||
341 | mov (1b - prom_compatible_name), %l2 | ||
342 | mov (1b - prom_cpu_compatible), %l5 | ||
343 | sub %l0, %l1, %l1 | ||
344 | sub %l0, %l2, %l2 | ||
345 | sub %l0, %l5, %l5 | ||
346 | |||
347 | /* prom_getproperty(cpu_node, "compatible", | ||
348 | * &prom_cpu_compatible, 64) | ||
349 | */ | ||
350 | stx %l1, [%sp + 2047 + 128 + 0x00] ! service, "getprop" | ||
351 | mov 4, %l3 | ||
352 | stx %l3, [%sp + 2047 + 128 + 0x08] ! num_args, 4 | ||
353 | mov 1, %l3 | ||
354 | stx %l3, [%sp + 2047 + 128 + 0x10] ! num_rets, 1 | ||
355 | stx %l4, [%sp + 2047 + 128 + 0x18] ! arg1, cpu_node | ||
356 | stx %l2, [%sp + 2047 + 128 + 0x20] ! arg2, "compatible" | ||
357 | stx %l5, [%sp + 2047 + 128 + 0x28] ! arg3, &prom_cpu_compatible | ||
358 | mov 64, %l3 | ||
359 | stx %l3, [%sp + 2047 + 128 + 0x30] ! arg4, size | ||
360 | stx %g0, [%sp + 2047 + 128 + 0x38] ! ret1 | ||
361 | call %l7 | ||
362 | add %sp, (2047 + 128), %o0 ! argument array | ||
363 | |||
364 | add %sp, (192 + 128), %sp | ||
365 | |||
366 | sethi %hi(prom_cpu_compatible), %g1 | ||
367 | or %g1, %lo(prom_cpu_compatible), %g1 | ||
368 | sethi %hi(prom_niagara_prefix), %g7 | ||
369 | or %g7, %lo(prom_niagara_prefix), %g7 | ||
370 | mov 17, %g3 | ||
371 | 90: ldub [%g7], %g2 | ||
372 | ldub [%g1], %g4 | ||
373 | cmp %g2, %g4 | ||
374 | bne,pn %icc, 4f | ||
375 | add %g7, 1, %g7 | ||
376 | subcc %g3, 1, %g3 | ||
377 | bne,pt %xcc, 90b | ||
378 | add %g1, 1, %g1 | ||
379 | |||
380 | sethi %hi(prom_cpu_compatible), %g1 | ||
381 | or %g1, %lo(prom_cpu_compatible), %g1 | ||
382 | ldub [%g1 + 17], %g2 | ||
383 | cmp %g2, '1' | ||
384 | be,pt %xcc, 5f | ||
385 | mov SUN4V_CHIP_NIAGARA1, %g4 | ||
386 | cmp %g2, '2' | ||
387 | be,pt %xcc, 5f | ||
388 | mov SUN4V_CHIP_NIAGARA2, %g4 | ||
389 | 4: | ||
390 | mov SUN4V_CHIP_UNKNOWN, %g4 | ||
391 | 5: sethi %hi(sun4v_chip_type), %g2 | ||
392 | or %g2, %lo(sun4v_chip_type), %g2 | ||
393 | stw %g4, [%g2] | ||
394 | |||
395 | 80: | ||
314 | BRANCH_IF_SUN4V(g1, jump_to_sun4u_init) | 396 | BRANCH_IF_SUN4V(g1, jump_to_sun4u_init) |
315 | BRANCH_IF_CHEETAH_BASE(g1,g7,cheetah_boot) | 397 | BRANCH_IF_CHEETAH_BASE(g1,g7,cheetah_boot) |
316 | BRANCH_IF_CHEETAH_PLUS_OR_FOLLOWON(g1,g7,cheetah_plus_boot) | 398 | BRANCH_IF_CHEETAH_PLUS_OR_FOLLOWON(g1,g7,cheetah_plus_boot) |
@@ -414,6 +496,33 @@ niagara_tlb_fixup: | |||
414 | stw %g2, [%g1 + %lo(tlb_type)] | 496 | stw %g2, [%g1 + %lo(tlb_type)] |
415 | 497 | ||
416 | /* Patch copy/clear ops. */ | 498 | /* Patch copy/clear ops. */ |
499 | sethi %hi(sun4v_chip_type), %g1 | ||
500 | lduw [%g1 + %lo(sun4v_chip_type)], %g1 | ||
501 | cmp %g1, SUN4V_CHIP_NIAGARA1 | ||
502 | be,pt %xcc, niagara_patch | ||
503 | cmp %g1, SUN4V_CHIP_NIAGARA2 | ||
504 | be,pt %xcc, niagara2_patch | ||
505 | nop | ||
506 | |||
507 | call generic_patch_copyops | ||
508 | nop | ||
509 | call generic_patch_bzero | ||
510 | nop | ||
511 | call generic_patch_pageops | ||
512 | nop | ||
513 | |||
514 | ba,a,pt %xcc, 80f | ||
515 | niagara2_patch: | ||
516 | call niagara2_patch_copyops | ||
517 | nop | ||
518 | call niagara_patch_bzero | ||
519 | nop | ||
520 | call niagara2_patch_pageops | ||
521 | nop | ||
522 | |||
523 | ba,a,pt %xcc, 80f | ||
524 | |||
525 | niagara_patch: | ||
417 | call niagara_patch_copyops | 526 | call niagara_patch_copyops |
418 | nop | 527 | nop |
419 | call niagara_patch_bzero | 528 | call niagara_patch_bzero |
@@ -421,6 +530,7 @@ niagara_tlb_fixup: | |||
421 | call niagara_patch_pageops | 530 | call niagara_patch_pageops |
422 | nop | 531 | nop |
423 | 532 | ||
533 | 80: | ||
424 | /* Patch TLB/cache ops. */ | 534 | /* Patch TLB/cache ops. */ |
425 | call hypervisor_patch_cachetlbops | 535 | call hypervisor_patch_cachetlbops |
426 | nop | 536 | nop |
@@ -605,12 +715,13 @@ setup_trap_table: | |||
605 | 715 | ||
606 | membar #Sync | 716 | membar #Sync |
607 | 717 | ||
718 | BRANCH_IF_SUN4V(o2, 1f) | ||
719 | |||
608 | /* Kill PROM timer */ | 720 | /* Kill PROM timer */ |
609 | sethi %hi(0x80000000), %o2 | 721 | sethi %hi(0x80000000), %o2 |
610 | sllx %o2, 32, %o2 | 722 | sllx %o2, 32, %o2 |
611 | wr %o2, 0, %tick_cmpr | 723 | wr %o2, 0, %tick_cmpr |
612 | 724 | ||
613 | BRANCH_IF_SUN4V(o2, 1f) | ||
614 | BRANCH_IF_ANY_CHEETAH(o2, o3, 1f) | 725 | BRANCH_IF_ANY_CHEETAH(o2, o3, 1f) |
615 | 726 | ||
616 | ba,pt %xcc, 2f | 727 | ba,pt %xcc, 2f |
diff --git a/arch/sparc64/kernel/hvtramp.S b/arch/sparc64/kernel/hvtramp.S index a55c252e18cc..b692e044a463 100644 --- a/arch/sparc64/kernel/hvtramp.S +++ b/arch/sparc64/kernel/hvtramp.S | |||
@@ -115,11 +115,8 @@ hv_cpu_startup: | |||
115 | call hard_smp_processor_id | 115 | call hard_smp_processor_id |
116 | nop | 116 | nop |
117 | 117 | ||
118 | mov %o0, %o1 | 118 | call sun4v_register_mondo_queues |
119 | mov 0, %o0 | 119 | nop |
120 | mov 0, %o2 | ||
121 | call sun4v_init_mondo_queues | ||
122 | mov 1, %o3 | ||
123 | 120 | ||
124 | call init_cur_cpu_trap | 121 | call init_cur_cpu_trap |
125 | mov %g6, %o0 | 122 | mov %g6, %o0 |
diff --git a/arch/sparc64/kernel/irq.c b/arch/sparc64/kernel/irq.c index db31bf6b42db..384abf410cf0 100644 --- a/arch/sparc64/kernel/irq.c +++ b/arch/sparc64/kernel/irq.c | |||
@@ -929,7 +929,7 @@ static void __cpuinit register_one_mondo(unsigned long paddr, unsigned long type | |||
929 | } | 929 | } |
930 | } | 930 | } |
931 | 931 | ||
932 | static void __cpuinit sun4v_register_mondo_queues(int this_cpu) | 932 | void __cpuinit sun4v_register_mondo_queues(int this_cpu) |
933 | { | 933 | { |
934 | struct trap_per_cpu *tb = &trap_block[this_cpu]; | 934 | struct trap_per_cpu *tb = &trap_block[this_cpu]; |
935 | 935 | ||
@@ -943,20 +943,10 @@ static void __cpuinit sun4v_register_mondo_queues(int this_cpu) | |||
943 | tb->nonresum_qmask); | 943 | tb->nonresum_qmask); |
944 | } | 944 | } |
945 | 945 | ||
946 | static void __cpuinit alloc_one_mondo(unsigned long *pa_ptr, unsigned long qmask, int use_bootmem) | 946 | static void __init alloc_one_mondo(unsigned long *pa_ptr, unsigned long qmask) |
947 | { | 947 | { |
948 | unsigned long size = PAGE_ALIGN(qmask + 1); | 948 | unsigned long size = PAGE_ALIGN(qmask + 1); |
949 | unsigned long order = get_order(size); | 949 | void *p = __alloc_bootmem_low(size, size, 0); |
950 | void *p = NULL; | ||
951 | |||
952 | if (use_bootmem) { | ||
953 | p = __alloc_bootmem_low(size, size, 0); | ||
954 | } else { | ||
955 | struct page *page = alloc_pages(GFP_ATOMIC | __GFP_ZERO, order); | ||
956 | if (page) | ||
957 | p = page_address(page); | ||
958 | } | ||
959 | |||
960 | if (!p) { | 950 | if (!p) { |
961 | prom_printf("SUN4V: Error, cannot allocate mondo queue.\n"); | 951 | prom_printf("SUN4V: Error, cannot allocate mondo queue.\n"); |
962 | prom_halt(); | 952 | prom_halt(); |
@@ -965,19 +955,10 @@ static void __cpuinit alloc_one_mondo(unsigned long *pa_ptr, unsigned long qmask | |||
965 | *pa_ptr = __pa(p); | 955 | *pa_ptr = __pa(p); |
966 | } | 956 | } |
967 | 957 | ||
968 | static void __cpuinit alloc_one_kbuf(unsigned long *pa_ptr, unsigned long qmask, int use_bootmem) | 958 | static void __init alloc_one_kbuf(unsigned long *pa_ptr, unsigned long qmask) |
969 | { | 959 | { |
970 | unsigned long size = PAGE_ALIGN(qmask + 1); | 960 | unsigned long size = PAGE_ALIGN(qmask + 1); |
971 | unsigned long order = get_order(size); | 961 | void *p = __alloc_bootmem_low(size, size, 0); |
972 | void *p = NULL; | ||
973 | |||
974 | if (use_bootmem) { | ||
975 | p = __alloc_bootmem_low(size, size, 0); | ||
976 | } else { | ||
977 | struct page *page = alloc_pages(GFP_ATOMIC | __GFP_ZERO, order); | ||
978 | if (page) | ||
979 | p = page_address(page); | ||
980 | } | ||
981 | 962 | ||
982 | if (!p) { | 963 | if (!p) { |
983 | prom_printf("SUN4V: Error, cannot allocate kbuf page.\n"); | 964 | prom_printf("SUN4V: Error, cannot allocate kbuf page.\n"); |
@@ -987,18 +968,14 @@ static void __cpuinit alloc_one_kbuf(unsigned long *pa_ptr, unsigned long qmask, | |||
987 | *pa_ptr = __pa(p); | 968 | *pa_ptr = __pa(p); |
988 | } | 969 | } |
989 | 970 | ||
990 | static void __cpuinit init_cpu_send_mondo_info(struct trap_per_cpu *tb, int use_bootmem) | 971 | static void __init init_cpu_send_mondo_info(struct trap_per_cpu *tb) |
991 | { | 972 | { |
992 | #ifdef CONFIG_SMP | 973 | #ifdef CONFIG_SMP |
993 | void *page; | 974 | void *page; |
994 | 975 | ||
995 | BUILD_BUG_ON((NR_CPUS * sizeof(u16)) > (PAGE_SIZE - 64)); | 976 | BUILD_BUG_ON((NR_CPUS * sizeof(u16)) > (PAGE_SIZE - 64)); |
996 | 977 | ||
997 | if (use_bootmem) | 978 | page = alloc_bootmem_low_pages(PAGE_SIZE); |
998 | page = alloc_bootmem_low_pages(PAGE_SIZE); | ||
999 | else | ||
1000 | page = (void *) get_zeroed_page(GFP_ATOMIC); | ||
1001 | |||
1002 | if (!page) { | 979 | if (!page) { |
1003 | prom_printf("SUN4V: Error, cannot allocate cpu mondo page.\n"); | 980 | prom_printf("SUN4V: Error, cannot allocate cpu mondo page.\n"); |
1004 | prom_halt(); | 981 | prom_halt(); |
@@ -1009,30 +986,27 @@ static void __cpuinit init_cpu_send_mondo_info(struct trap_per_cpu *tb, int use_ | |||
1009 | #endif | 986 | #endif |
1010 | } | 987 | } |
1011 | 988 | ||
1012 | /* Allocate and register the mondo and error queues for this cpu. */ | 989 | /* Allocate mondo and error queues for all possible cpus. */ |
1013 | void __cpuinit sun4v_init_mondo_queues(int use_bootmem, int cpu, int alloc, int load) | 990 | static void __init sun4v_init_mondo_queues(void) |
1014 | { | 991 | { |
1015 | struct trap_per_cpu *tb = &trap_block[cpu]; | 992 | int cpu; |
1016 | 993 | ||
1017 | if (alloc) { | 994 | for_each_possible_cpu(cpu) { |
1018 | alloc_one_mondo(&tb->cpu_mondo_pa, tb->cpu_mondo_qmask, use_bootmem); | 995 | struct trap_per_cpu *tb = &trap_block[cpu]; |
1019 | alloc_one_mondo(&tb->dev_mondo_pa, tb->dev_mondo_qmask, use_bootmem); | ||
1020 | alloc_one_mondo(&tb->resum_mondo_pa, tb->resum_qmask, use_bootmem); | ||
1021 | alloc_one_kbuf(&tb->resum_kernel_buf_pa, tb->resum_qmask, use_bootmem); | ||
1022 | alloc_one_mondo(&tb->nonresum_mondo_pa, tb->nonresum_qmask, use_bootmem); | ||
1023 | alloc_one_kbuf(&tb->nonresum_kernel_buf_pa, tb->nonresum_qmask, use_bootmem); | ||
1024 | 996 | ||
1025 | init_cpu_send_mondo_info(tb, use_bootmem); | 997 | alloc_one_mondo(&tb->cpu_mondo_pa, tb->cpu_mondo_qmask); |
1026 | } | 998 | alloc_one_mondo(&tb->dev_mondo_pa, tb->dev_mondo_qmask); |
999 | alloc_one_mondo(&tb->resum_mondo_pa, tb->resum_qmask); | ||
1000 | alloc_one_kbuf(&tb->resum_kernel_buf_pa, tb->resum_qmask); | ||
1001 | alloc_one_mondo(&tb->nonresum_mondo_pa, tb->nonresum_qmask); | ||
1002 | alloc_one_kbuf(&tb->nonresum_kernel_buf_pa, | ||
1003 | tb->nonresum_qmask); | ||
1027 | 1004 | ||
1028 | if (load) { | 1005 | init_cpu_send_mondo_info(tb); |
1029 | if (cpu != hard_smp_processor_id()) { | ||
1030 | prom_printf("SUN4V: init mondo on cpu %d not %d\n", | ||
1031 | cpu, hard_smp_processor_id()); | ||
1032 | prom_halt(); | ||
1033 | } | ||
1034 | sun4v_register_mondo_queues(cpu); | ||
1035 | } | 1006 | } |
1007 | |||
1008 | /* Load up the boot cpu's entries. */ | ||
1009 | sun4v_register_mondo_queues(hard_smp_processor_id()); | ||
1036 | } | 1010 | } |
1037 | 1011 | ||
1038 | static struct irqaction timer_irq_action = { | 1012 | static struct irqaction timer_irq_action = { |
@@ -1047,7 +1021,7 @@ void __init init_IRQ(void) | |||
1047 | memset(&ivector_table[0], 0, sizeof(ivector_table)); | 1021 | memset(&ivector_table[0], 0, sizeof(ivector_table)); |
1048 | 1022 | ||
1049 | if (tlb_type == hypervisor) | 1023 | if (tlb_type == hypervisor) |
1050 | sun4v_init_mondo_queues(1, hard_smp_processor_id(), 1, 1); | 1024 | sun4v_init_mondo_queues(); |
1051 | 1025 | ||
1052 | /* We need to clear any IRQ's pending in the soft interrupt | 1026 | /* We need to clear any IRQ's pending in the soft interrupt |
1053 | * registers, a spurious one could be left around from the | 1027 | * registers, a spurious one could be left around from the |
diff --git a/arch/sparc64/kernel/mdesc.c b/arch/sparc64/kernel/mdesc.c index cce4d0ddf5d5..9f22e4ff6015 100644 --- a/arch/sparc64/kernel/mdesc.c +++ b/arch/sparc64/kernel/mdesc.c | |||
@@ -9,6 +9,7 @@ | |||
9 | #include <linux/list.h> | 9 | #include <linux/list.h> |
10 | #include <linux/slab.h> | 10 | #include <linux/slab.h> |
11 | #include <linux/mm.h> | 11 | #include <linux/mm.h> |
12 | #include <linux/miscdevice.h> | ||
12 | 13 | ||
13 | #include <asm/hypervisor.h> | 14 | #include <asm/hypervisor.h> |
14 | #include <asm/mdesc.h> | 15 | #include <asm/mdesc.h> |
@@ -568,20 +569,6 @@ static void __init report_platform_properties(void) | |||
568 | mdesc_release(hp); | 569 | mdesc_release(hp); |
569 | } | 570 | } |
570 | 571 | ||
571 | static int inline find_in_proplist(const char *list, const char *match, int len) | ||
572 | { | ||
573 | while (len > 0) { | ||
574 | int l; | ||
575 | |||
576 | if (!strcmp(list, match)) | ||
577 | return 1; | ||
578 | l = strlen(list) + 1; | ||
579 | list += l; | ||
580 | len -= l; | ||
581 | } | ||
582 | return 0; | ||
583 | } | ||
584 | |||
585 | static void __devinit fill_in_one_cache(cpuinfo_sparc *c, | 572 | static void __devinit fill_in_one_cache(cpuinfo_sparc *c, |
586 | struct mdesc_handle *hp, | 573 | struct mdesc_handle *hp, |
587 | u64 mp) | 574 | u64 mp) |
@@ -596,10 +583,10 @@ static void __devinit fill_in_one_cache(cpuinfo_sparc *c, | |||
596 | 583 | ||
597 | switch (*level) { | 584 | switch (*level) { |
598 | case 1: | 585 | case 1: |
599 | if (find_in_proplist(type, "instn", type_len)) { | 586 | if (of_find_in_proplist(type, "instn", type_len)) { |
600 | c->icache_size = *size; | 587 | c->icache_size = *size; |
601 | c->icache_line_size = *line_size; | 588 | c->icache_line_size = *line_size; |
602 | } else if (find_in_proplist(type, "data", type_len)) { | 589 | } else if (of_find_in_proplist(type, "data", type_len)) { |
603 | c->dcache_size = *size; | 590 | c->dcache_size = *size; |
604 | c->dcache_line_size = *line_size; | 591 | c->dcache_line_size = *line_size; |
605 | } | 592 | } |
@@ -677,7 +664,7 @@ static void __devinit set_core_ids(struct mdesc_handle *hp) | |||
677 | continue; | 664 | continue; |
678 | 665 | ||
679 | type = mdesc_get_property(hp, mp, "type", &len); | 666 | type = mdesc_get_property(hp, mp, "type", &len); |
680 | if (!find_in_proplist(type, "instn", len)) | 667 | if (!of_find_in_proplist(type, "instn", len)) |
681 | continue; | 668 | continue; |
682 | 669 | ||
683 | mark_core_ids(hp, mp, idx); | 670 | mark_core_ids(hp, mp, idx); |
@@ -718,8 +705,8 @@ static void __devinit __set_proc_ids(struct mdesc_handle *hp, | |||
718 | int len; | 705 | int len; |
719 | 706 | ||
720 | type = mdesc_get_property(hp, mp, "type", &len); | 707 | type = mdesc_get_property(hp, mp, "type", &len); |
721 | if (!find_in_proplist(type, "int", len) && | 708 | if (!of_find_in_proplist(type, "int", len) && |
722 | !find_in_proplist(type, "integer", len)) | 709 | !of_find_in_proplist(type, "integer", len)) |
723 | continue; | 710 | continue; |
724 | 711 | ||
725 | mark_proc_ids(hp, mp, idx); | 712 | mark_proc_ids(hp, mp, idx); |
@@ -850,6 +837,43 @@ void __devinit mdesc_fill_in_cpu_data(cpumask_t mask) | |||
850 | mdesc_release(hp); | 837 | mdesc_release(hp); |
851 | } | 838 | } |
852 | 839 | ||
840 | static ssize_t mdesc_read(struct file *file, char __user *buf, | ||
841 | size_t len, loff_t *offp) | ||
842 | { | ||
843 | struct mdesc_handle *hp = mdesc_grab(); | ||
844 | int err; | ||
845 | |||
846 | if (!hp) | ||
847 | return -ENODEV; | ||
848 | |||
849 | err = hp->handle_size; | ||
850 | if (len < hp->handle_size) | ||
851 | err = -EMSGSIZE; | ||
852 | else if (copy_to_user(buf, &hp->mdesc, hp->handle_size)) | ||
853 | err = -EFAULT; | ||
854 | mdesc_release(hp); | ||
855 | |||
856 | return err; | ||
857 | } | ||
858 | |||
859 | static const struct file_operations mdesc_fops = { | ||
860 | .read = mdesc_read, | ||
861 | .owner = THIS_MODULE, | ||
862 | }; | ||
863 | |||
864 | static struct miscdevice mdesc_misc = { | ||
865 | .minor = MISC_DYNAMIC_MINOR, | ||
866 | .name = "mdesc", | ||
867 | .fops = &mdesc_fops, | ||
868 | }; | ||
869 | |||
870 | static int __init mdesc_misc_init(void) | ||
871 | { | ||
872 | return misc_register(&mdesc_misc); | ||
873 | } | ||
874 | |||
875 | __initcall(mdesc_misc_init); | ||
876 | |||
853 | void __init sun4v_mdesc_init(void) | 877 | void __init sun4v_mdesc_init(void) |
854 | { | 878 | { |
855 | struct mdesc_handle *hp; | 879 | struct mdesc_handle *hp; |
diff --git a/arch/sparc64/kernel/prom.c b/arch/sparc64/kernel/prom.c index f4e0a9ad9be3..d1a78c976cef 100644 --- a/arch/sparc64/kernel/prom.c +++ b/arch/sparc64/kernel/prom.c | |||
@@ -107,6 +107,21 @@ int of_set_property(struct device_node *dp, const char *name, void *val, int len | |||
107 | } | 107 | } |
108 | EXPORT_SYMBOL(of_set_property); | 108 | EXPORT_SYMBOL(of_set_property); |
109 | 109 | ||
110 | int of_find_in_proplist(const char *list, const char *match, int len) | ||
111 | { | ||
112 | while (len > 0) { | ||
113 | int l; | ||
114 | |||
115 | if (!strcmp(list, match)) | ||
116 | return 1; | ||
117 | l = strlen(list) + 1; | ||
118 | list += l; | ||
119 | len -= l; | ||
120 | } | ||
121 | return 0; | ||
122 | } | ||
123 | EXPORT_SYMBOL(of_find_in_proplist); | ||
124 | |||
110 | static unsigned int prom_early_allocated; | 125 | static unsigned int prom_early_allocated; |
111 | 126 | ||
112 | static void * __init prom_early_alloc(unsigned long size) | 127 | static void * __init prom_early_alloc(unsigned long size) |
diff --git a/arch/sparc64/kernel/smp.c b/arch/sparc64/kernel/smp.c index b448d33321c6..b84c49e3697c 100644 --- a/arch/sparc64/kernel/smp.c +++ b/arch/sparc64/kernel/smp.c | |||
@@ -334,8 +334,6 @@ static void ldom_startcpu_cpuid(unsigned int cpu, unsigned long thread_reg) | |||
334 | } | 334 | } |
335 | #endif | 335 | #endif |
336 | 336 | ||
337 | extern void sun4v_init_mondo_queues(int use_bootmem, int cpu, int alloc, int load); | ||
338 | |||
339 | extern unsigned long sparc64_cpu_startup; | 337 | extern unsigned long sparc64_cpu_startup; |
340 | 338 | ||
341 | /* The OBP cpu startup callback truncates the 3rd arg cookie to | 339 | /* The OBP cpu startup callback truncates the 3rd arg cookie to |
@@ -359,9 +357,6 @@ static int __devinit smp_boot_one_cpu(unsigned int cpu) | |||
359 | cpu_new_thread = task_thread_info(p); | 357 | cpu_new_thread = task_thread_info(p); |
360 | 358 | ||
361 | if (tlb_type == hypervisor) { | 359 | if (tlb_type == hypervisor) { |
362 | /* Alloc the mondo queues, cpu will load them. */ | ||
363 | sun4v_init_mondo_queues(0, cpu, 1, 0); | ||
364 | |||
365 | #if defined(CONFIG_SUN_LDOMS) && defined(CONFIG_HOTPLUG_CPU) | 360 | #if defined(CONFIG_SUN_LDOMS) && defined(CONFIG_HOTPLUG_CPU) |
366 | if (ldom_domaining_enabled) | 361 | if (ldom_domaining_enabled) |
367 | ldom_startcpu_cpuid(cpu, | 362 | ldom_startcpu_cpuid(cpu, |
diff --git a/arch/sparc64/kernel/sparc64_ksyms.c b/arch/sparc64/kernel/sparc64_ksyms.c index d270c2f0be0f..23fad7ebdd0d 100644 --- a/arch/sparc64/kernel/sparc64_ksyms.c +++ b/arch/sparc64/kernel/sparc64_ksyms.c | |||
@@ -168,6 +168,7 @@ EXPORT_SYMBOL(change_bit); | |||
168 | EXPORT_SYMBOL(__flushw_user); | 168 | EXPORT_SYMBOL(__flushw_user); |
169 | 169 | ||
170 | EXPORT_SYMBOL(tlb_type); | 170 | EXPORT_SYMBOL(tlb_type); |
171 | EXPORT_SYMBOL(sun4v_chip_type); | ||
171 | EXPORT_SYMBOL(get_fb_unmapped_area); | 172 | EXPORT_SYMBOL(get_fb_unmapped_area); |
172 | EXPORT_SYMBOL(flush_icache_range); | 173 | EXPORT_SYMBOL(flush_icache_range); |
173 | 174 | ||
diff --git a/arch/sparc64/kernel/trampoline.S b/arch/sparc64/kernel/trampoline.S index a4dc01a3d238..9533a25ce5d2 100644 --- a/arch/sparc64/kernel/trampoline.S +++ b/arch/sparc64/kernel/trampoline.S | |||
@@ -95,14 +95,13 @@ spitfire_startup: | |||
95 | membar #Sync | 95 | membar #Sync |
96 | 96 | ||
97 | startup_continue: | 97 | startup_continue: |
98 | mov %o0, %l0 | ||
99 | BRANCH_IF_SUN4V(g1, niagara_lock_tlb) | ||
100 | |||
98 | sethi %hi(0x80000000), %g2 | 101 | sethi %hi(0x80000000), %g2 |
99 | sllx %g2, 32, %g2 | 102 | sllx %g2, 32, %g2 |
100 | wr %g2, 0, %tick_cmpr | 103 | wr %g2, 0, %tick_cmpr |
101 | 104 | ||
102 | mov %o0, %l0 | ||
103 | |||
104 | BRANCH_IF_SUN4V(g1, niagara_lock_tlb) | ||
105 | |||
106 | /* Call OBP by hand to lock KERNBASE into i/d tlbs. | 105 | /* Call OBP by hand to lock KERNBASE into i/d tlbs. |
107 | * We lock 2 consequetive entries if we are 'bigkernel'. | 106 | * We lock 2 consequetive entries if we are 'bigkernel'. |
108 | */ | 107 | */ |
@@ -366,11 +365,8 @@ after_lock_tlb: | |||
366 | call hard_smp_processor_id | 365 | call hard_smp_processor_id |
367 | nop | 366 | nop |
368 | 367 | ||
369 | mov %o0, %o1 | 368 | call sun4v_register_mondo_queues |
370 | mov 0, %o0 | 369 | nop |
371 | mov 0, %o2 | ||
372 | call sun4v_init_mondo_queues | ||
373 | mov 1, %o3 | ||
374 | 370 | ||
375 | 1: call init_cur_cpu_trap | 371 | 1: call init_cur_cpu_trap |
376 | ldx [%l0], %o0 | 372 | ldx [%l0], %o0 |
diff --git a/arch/sparc64/kernel/vio.c b/arch/sparc64/kernel/vio.c index 3685daf5157f..1550ac5673da 100644 --- a/arch/sparc64/kernel/vio.c +++ b/arch/sparc64/kernel/vio.c | |||
@@ -16,21 +16,6 @@ | |||
16 | #include <asm/mdesc.h> | 16 | #include <asm/mdesc.h> |
17 | #include <asm/vio.h> | 17 | #include <asm/vio.h> |
18 | 18 | ||
19 | static inline int find_in_proplist(const char *list, const char *match, | ||
20 | int len) | ||
21 | { | ||
22 | while (len > 0) { | ||
23 | int l; | ||
24 | |||
25 | if (!strcmp(list, match)) | ||
26 | return 1; | ||
27 | l = strlen(list) + 1; | ||
28 | list += l; | ||
29 | len -= l; | ||
30 | } | ||
31 | return 0; | ||
32 | } | ||
33 | |||
34 | static const struct vio_device_id *vio_match_device( | 19 | static const struct vio_device_id *vio_match_device( |
35 | const struct vio_device_id *matches, | 20 | const struct vio_device_id *matches, |
36 | const struct vio_dev *dev) | 21 | const struct vio_dev *dev) |
@@ -49,7 +34,7 @@ static const struct vio_device_id *vio_match_device( | |||
49 | 34 | ||
50 | if (matches->compat[0]) { | 35 | if (matches->compat[0]) { |
51 | match &= len && | 36 | match &= len && |
52 | find_in_proplist(compat, matches->compat, len); | 37 | of_find_in_proplist(compat, matches->compat, len); |
53 | } | 38 | } |
54 | if (match) | 39 | if (match) |
55 | return matches; | 40 | return matches; |
@@ -406,7 +391,7 @@ static int __init vio_init(void) | |||
406 | "property\n"); | 391 | "property\n"); |
407 | goto out_release; | 392 | goto out_release; |
408 | } | 393 | } |
409 | if (!find_in_proplist(compat, channel_devices_compat, len)) { | 394 | if (!of_find_in_proplist(compat, channel_devices_compat, len)) { |
410 | printk(KERN_ERR "VIO: Channel devices node lacks (%s) " | 395 | printk(KERN_ERR "VIO: Channel devices node lacks (%s) " |
411 | "compat entry.\n", channel_devices_compat); | 396 | "compat entry.\n", channel_devices_compat); |
412 | goto out_release; | 397 | goto out_release; |
diff --git a/arch/sparc64/lib/GENbzero.S b/arch/sparc64/lib/GENbzero.S new file mode 100644 index 000000000000..f9c71d64eba1 --- /dev/null +++ b/arch/sparc64/lib/GENbzero.S | |||
@@ -0,0 +1,160 @@ | |||
1 | /* GENbzero.S: Generic sparc64 memset/clear_user. | ||
2 | * | ||
3 | * Copyright (C) 2007 David S. Miller (davem@davemloft.net) | ||
4 | */ | ||
5 | #include <asm/asi.h> | ||
6 | |||
7 | #define EX_ST(x,y) \ | ||
8 | 98: x,y; \ | ||
9 | .section .fixup; \ | ||
10 | .align 4; \ | ||
11 | 99: retl; \ | ||
12 | mov %o1, %o0; \ | ||
13 | .section __ex_table; \ | ||
14 | .align 4; \ | ||
15 | .word 98b, 99b; \ | ||
16 | .text; \ | ||
17 | .align 4; | ||
18 | |||
19 | .align 32 | ||
20 | .text | ||
21 | |||
22 | .globl GENmemset | ||
23 | .type GENmemset, #function | ||
24 | GENmemset: /* %o0=buf, %o1=pat, %o2=len */ | ||
25 | and %o1, 0xff, %o3 | ||
26 | mov %o2, %o1 | ||
27 | sllx %o3, 8, %g1 | ||
28 | or %g1, %o3, %o2 | ||
29 | sllx %o2, 16, %g1 | ||
30 | or %g1, %o2, %o2 | ||
31 | sllx %o2, 32, %g1 | ||
32 | ba,pt %xcc, 1f | ||
33 | or %g1, %o2, %o2 | ||
34 | |||
35 | .globl GENbzero | ||
36 | .type GENbzero, #function | ||
37 | GENbzero: | ||
38 | clr %o2 | ||
39 | 1: brz,pn %o1, GENbzero_return | ||
40 | mov %o0, %o3 | ||
41 | |||
42 | /* %o5: saved %asi, restored at GENbzero_done | ||
43 | * %o4: store %asi to use | ||
44 | */ | ||
45 | rd %asi, %o5 | ||
46 | mov ASI_P, %o4 | ||
47 | wr %o4, 0x0, %asi | ||
48 | |||
49 | GENbzero_from_clear_user: | ||
50 | cmp %o1, 15 | ||
51 | bl,pn %icc, GENbzero_tiny | ||
52 | andcc %o0, 0x7, %g1 | ||
53 | be,pt %xcc, 2f | ||
54 | mov 8, %g2 | ||
55 | sub %g2, %g1, %g1 | ||
56 | sub %o1, %g1, %o1 | ||
57 | 1: EX_ST(stba %o2, [%o0 + 0x00] %asi) | ||
58 | subcc %g1, 1, %g1 | ||
59 | bne,pt %xcc, 1b | ||
60 | add %o0, 1, %o0 | ||
61 | 2: cmp %o1, 128 | ||
62 | bl,pn %icc, GENbzero_medium | ||
63 | andcc %o0, (64 - 1), %g1 | ||
64 | be,pt %xcc, GENbzero_pre_loop | ||
65 | mov 64, %g2 | ||
66 | sub %g2, %g1, %g1 | ||
67 | sub %o1, %g1, %o1 | ||
68 | 1: EX_ST(stxa %o2, [%o0 + 0x00] %asi) | ||
69 | subcc %g1, 8, %g1 | ||
70 | bne,pt %xcc, 1b | ||
71 | add %o0, 8, %o0 | ||
72 | |||
73 | GENbzero_pre_loop: | ||
74 | andn %o1, (64 - 1), %g1 | ||
75 | sub %o1, %g1, %o1 | ||
76 | GENbzero_loop: | ||
77 | EX_ST(stxa %o2, [%o0 + 0x00] %asi) | ||
78 | EX_ST(stxa %o2, [%o0 + 0x08] %asi) | ||
79 | EX_ST(stxa %o2, [%o0 + 0x10] %asi) | ||
80 | EX_ST(stxa %o2, [%o0 + 0x18] %asi) | ||
81 | EX_ST(stxa %o2, [%o0 + 0x20] %asi) | ||
82 | EX_ST(stxa %o2, [%o0 + 0x28] %asi) | ||
83 | EX_ST(stxa %o2, [%o0 + 0x30] %asi) | ||
84 | EX_ST(stxa %o2, [%o0 + 0x38] %asi) | ||
85 | subcc %g1, 64, %g1 | ||
86 | bne,pt %xcc, GENbzero_loop | ||
87 | add %o0, 64, %o0 | ||
88 | |||
89 | membar #Sync | ||
90 | wr %o4, 0x0, %asi | ||
91 | brz,pn %o1, GENbzero_done | ||
92 | GENbzero_medium: | ||
93 | andncc %o1, 0x7, %g1 | ||
94 | be,pn %xcc, 2f | ||
95 | sub %o1, %g1, %o1 | ||
96 | 1: EX_ST(stxa %o2, [%o0 + 0x00] %asi) | ||
97 | subcc %g1, 8, %g1 | ||
98 | bne,pt %xcc, 1b | ||
99 | add %o0, 8, %o0 | ||
100 | 2: brz,pt %o1, GENbzero_done | ||
101 | nop | ||
102 | |||
103 | GENbzero_tiny: | ||
104 | 1: EX_ST(stba %o2, [%o0 + 0x00] %asi) | ||
105 | subcc %o1, 1, %o1 | ||
106 | bne,pt %icc, 1b | ||
107 | add %o0, 1, %o0 | ||
108 | |||
109 | /* fallthrough */ | ||
110 | |||
111 | GENbzero_done: | ||
112 | wr %o5, 0x0, %asi | ||
113 | |||
114 | GENbzero_return: | ||
115 | retl | ||
116 | mov %o3, %o0 | ||
117 | .size GENbzero, .-GENbzero | ||
118 | .size GENmemset, .-GENmemset | ||
119 | |||
120 | .globl GENclear_user | ||
121 | .type GENclear_user, #function | ||
122 | GENclear_user: /* %o0=buf, %o1=len */ | ||
123 | rd %asi, %o5 | ||
124 | brz,pn %o1, GENbzero_done | ||
125 | clr %o3 | ||
126 | cmp %o5, ASI_AIUS | ||
127 | bne,pn %icc, GENbzero | ||
128 | clr %o2 | ||
129 | ba,pt %xcc, GENbzero_from_clear_user | ||
130 | mov ASI_AIUS, %o4 | ||
131 | .size GENclear_user, .-GENclear_user | ||
132 | |||
133 | #define BRANCH_ALWAYS 0x10680000 | ||
134 | #define NOP 0x01000000 | ||
135 | #define GEN_DO_PATCH(OLD, NEW) \ | ||
136 | sethi %hi(NEW), %g1; \ | ||
137 | or %g1, %lo(NEW), %g1; \ | ||
138 | sethi %hi(OLD), %g2; \ | ||
139 | or %g2, %lo(OLD), %g2; \ | ||
140 | sub %g1, %g2, %g1; \ | ||
141 | sethi %hi(BRANCH_ALWAYS), %g3; \ | ||
142 | sll %g1, 11, %g1; \ | ||
143 | srl %g1, 11 + 2, %g1; \ | ||
144 | or %g3, %lo(BRANCH_ALWAYS), %g3; \ | ||
145 | or %g3, %g1, %g3; \ | ||
146 | stw %g3, [%g2]; \ | ||
147 | sethi %hi(NOP), %g3; \ | ||
148 | or %g3, %lo(NOP), %g3; \ | ||
149 | stw %g3, [%g2 + 0x4]; \ | ||
150 | flush %g2; | ||
151 | |||
152 | .globl generic_patch_bzero | ||
153 | .type generic_patch_bzero,#function | ||
154 | generic_patch_bzero: | ||
155 | GEN_DO_PATCH(memset, GENmemset) | ||
156 | GEN_DO_PATCH(__bzero, GENbzero) | ||
157 | GEN_DO_PATCH(__clear_user, GENclear_user) | ||
158 | retl | ||
159 | nop | ||
160 | .size generic_patch_bzero,.-generic_patch_bzero | ||
diff --git a/arch/sparc64/lib/GENcopy_from_user.S b/arch/sparc64/lib/GENcopy_from_user.S new file mode 100644 index 000000000000..2b9df99e87f9 --- /dev/null +++ b/arch/sparc64/lib/GENcopy_from_user.S | |||
@@ -0,0 +1,34 @@ | |||
1 | /* GENcopy_from_user.S: Generic sparc64 copy from userspace. | ||
2 | * | ||
3 | * Copyright (C) 2007 David S. Miller (davem@davemloft.net) | ||
4 | */ | ||
5 | |||
6 | #define EX_LD(x) \ | ||
7 | 98: x; \ | ||
8 | .section .fixup; \ | ||
9 | .align 4; \ | ||
10 | 99: retl; \ | ||
11 | mov 1, %o0; \ | ||
12 | .section __ex_table,"a";\ | ||
13 | .align 4; \ | ||
14 | .word 98b, 99b; \ | ||
15 | .text; \ | ||
16 | .align 4; | ||
17 | |||
18 | #ifndef ASI_AIUS | ||
19 | #define ASI_AIUS 0x11 | ||
20 | #endif | ||
21 | |||
22 | #define FUNC_NAME GENcopy_from_user | ||
23 | #define LOAD(type,addr,dest) type##a [addr] ASI_AIUS, dest | ||
24 | #define EX_RETVAL(x) 0 | ||
25 | |||
26 | #ifdef __KERNEL__ | ||
27 | #define PREAMBLE \ | ||
28 | rd %asi, %g1; \ | ||
29 | cmp %g1, ASI_AIUS; \ | ||
30 | bne,pn %icc, memcpy_user_stub; \ | ||
31 | nop | ||
32 | #endif | ||
33 | |||
34 | #include "GENmemcpy.S" | ||
diff --git a/arch/sparc64/lib/GENcopy_to_user.S b/arch/sparc64/lib/GENcopy_to_user.S new file mode 100644 index 000000000000..bb3f7084daf9 --- /dev/null +++ b/arch/sparc64/lib/GENcopy_to_user.S | |||
@@ -0,0 +1,38 @@ | |||
1 | /* GENcopy_to_user.S: Generic sparc64 copy to userspace. | ||
2 | * | ||
3 | * Copyright (C) 2007 David S. Miller (davem@davemloft.net) | ||
4 | */ | ||
5 | |||
6 | #define EX_ST(x) \ | ||
7 | 98: x; \ | ||
8 | .section .fixup; \ | ||
9 | .align 4; \ | ||
10 | 99: retl; \ | ||
11 | mov 1, %o0; \ | ||
12 | .section __ex_table,"a";\ | ||
13 | .align 4; \ | ||
14 | .word 98b, 99b; \ | ||
15 | .text; \ | ||
16 | .align 4; | ||
17 | |||
18 | #ifndef ASI_AIUS | ||
19 | #define ASI_AIUS 0x11 | ||
20 | #endif | ||
21 | |||
22 | #define FUNC_NAME GENcopy_to_user | ||
23 | #define STORE(type,src,addr) type##a src, [addr] ASI_AIUS | ||
24 | #define EX_RETVAL(x) 0 | ||
25 | |||
26 | #ifdef __KERNEL__ | ||
27 | /* Writing to %asi is _expensive_ so we hardcode it. | ||
28 | * Reading %asi to check for KERNEL_DS is comparatively | ||
29 | * cheap. | ||
30 | */ | ||
31 | #define PREAMBLE \ | ||
32 | rd %asi, %g1; \ | ||
33 | cmp %g1, ASI_AIUS; \ | ||
34 | bne,pn %icc, memcpy_user_stub; \ | ||
35 | nop | ||
36 | #endif | ||
37 | |||
38 | #include "GENmemcpy.S" | ||
diff --git a/arch/sparc64/lib/GENmemcpy.S b/arch/sparc64/lib/GENmemcpy.S new file mode 100644 index 000000000000..89358ee94851 --- /dev/null +++ b/arch/sparc64/lib/GENmemcpy.S | |||
@@ -0,0 +1,121 @@ | |||
1 | /* GENmemcpy.S: Generic sparc64 memcpy. | ||
2 | * | ||
3 | * Copyright (C) 2007 David S. Miller (davem@davemloft.net) | ||
4 | */ | ||
5 | |||
6 | #ifdef __KERNEL__ | ||
7 | #define GLOBAL_SPARE %g7 | ||
8 | #else | ||
9 | #define GLOBAL_SPARE %g5 | ||
10 | #endif | ||
11 | |||
12 | #ifndef EX_LD | ||
13 | #define EX_LD(x) x | ||
14 | #endif | ||
15 | |||
16 | #ifndef EX_ST | ||
17 | #define EX_ST(x) x | ||
18 | #endif | ||
19 | |||
20 | #ifndef EX_RETVAL | ||
21 | #define EX_RETVAL(x) x | ||
22 | #endif | ||
23 | |||
24 | #ifndef LOAD | ||
25 | #define LOAD(type,addr,dest) type [addr], dest | ||
26 | #endif | ||
27 | |||
28 | #ifndef STORE | ||
29 | #define STORE(type,src,addr) type src, [addr] | ||
30 | #endif | ||
31 | |||
32 | #ifndef FUNC_NAME | ||
33 | #define FUNC_NAME GENmemcpy | ||
34 | #endif | ||
35 | |||
36 | #ifndef PREAMBLE | ||
37 | #define PREAMBLE | ||
38 | #endif | ||
39 | |||
40 | #ifndef XCC | ||
41 | #define XCC xcc | ||
42 | #endif | ||
43 | |||
44 | .register %g2,#scratch | ||
45 | .register %g3,#scratch | ||
46 | |||
47 | .text | ||
48 | .align 64 | ||
49 | |||
50 | .globl FUNC_NAME | ||
51 | .type FUNC_NAME,#function | ||
52 | FUNC_NAME: /* %o0=dst, %o1=src, %o2=len */ | ||
53 | srlx %o2, 31, %g2 | ||
54 | cmp %g2, 0 | ||
55 | tne %XCC, 5 | ||
56 | PREAMBLE | ||
57 | mov %o0, GLOBAL_SPARE | ||
58 | |||
59 | cmp %o2, 0 | ||
60 | be,pn %XCC, 85f | ||
61 | or %o0, %o1, %o3 | ||
62 | cmp %o2, 16 | ||
63 | blu,a,pn %XCC, 80f | ||
64 | or %o3, %o2, %o3 | ||
65 | |||
66 | xor %o0, %o1, %o4 | ||
67 | andcc %o4, 0x7, %g0 | ||
68 | bne,a,pn %XCC, 90f | ||
69 | sub %o0, %o1, %o3 | ||
70 | |||
71 | and %o0, 0x7, %o4 | ||
72 | sub %o4, 0x8, %o4 | ||
73 | sub %g0, %o4, %o4 | ||
74 | sub %o2, %o4, %o2 | ||
75 | 1: subcc %o4, 1, %o4 | ||
76 | EX_LD(LOAD(ldub, %o1, %g1)) | ||
77 | EX_ST(STORE(stb, %g1, %o0)) | ||
78 | add %o1, 1, %o1 | ||
79 | bne,pt %XCC, 1b | ||
80 | add %o0, 1, %o0 | ||
81 | |||
82 | andn %o2, 0x7, %g1 | ||
83 | sub %o2, %g1, %o2 | ||
84 | 1: subcc %g1, 0x8, %g1 | ||
85 | EX_LD(LOAD(ldx, %o1, %g2)) | ||
86 | EX_ST(STORE(stx, %g2, %o0)) | ||
87 | add %o1, 0x8, %o1 | ||
88 | bne,pt %XCC, 1b | ||
89 | add %o0, 0x8, %o0 | ||
90 | |||
91 | brz,pt %o2, 85f | ||
92 | sub %o0, %o1, %o3 | ||
93 | ba,a,pt %XCC, 90f | ||
94 | |||
95 | .align 64 | ||
96 | 80: /* 0 < len <= 16 */ | ||
97 | andcc %o3, 0x3, %g0 | ||
98 | bne,pn %XCC, 90f | ||
99 | sub %o0, %o1, %o3 | ||
100 | |||
101 | 1: | ||
102 | subcc %o2, 4, %o2 | ||
103 | EX_LD(LOAD(lduw, %o1, %g1)) | ||
104 | EX_ST(STORE(stw, %g1, %o1 + %o3)) | ||
105 | bgu,pt %XCC, 1b | ||
106 | add %o1, 4, %o1 | ||
107 | |||
108 | 85: retl | ||
109 | mov EX_RETVAL(GLOBAL_SPARE), %o0 | ||
110 | |||
111 | .align 32 | ||
112 | 90: | ||
113 | subcc %o2, 1, %o2 | ||
114 | EX_LD(LOAD(ldub, %o1, %g1)) | ||
115 | EX_ST(STORE(stb, %g1, %o1 + %o3)) | ||
116 | bgu,pt %XCC, 90b | ||
117 | add %o1, 1, %o1 | ||
118 | retl | ||
119 | mov EX_RETVAL(GLOBAL_SPARE), %o0 | ||
120 | |||
121 | .size FUNC_NAME, .-FUNC_NAME | ||
diff --git a/arch/sparc64/lib/GENpage.S b/arch/sparc64/lib/GENpage.S new file mode 100644 index 000000000000..2ef9d05f21bc --- /dev/null +++ b/arch/sparc64/lib/GENpage.S | |||
@@ -0,0 +1,77 @@ | |||
1 | /* GENpage.S: Generic clear and copy page. | ||
2 | * | ||
3 | * Copyright (C) 2007 (davem@davemloft.net) | ||
4 | */ | ||
5 | #include <asm/page.h> | ||
6 | |||
7 | .text | ||
8 | .align 32 | ||
9 | |||
10 | GENcopy_user_page: | ||
11 | set PAGE_SIZE, %g7 | ||
12 | 1: ldx [%o1 + 0x00], %o2 | ||
13 | ldx [%o1 + 0x08], %o3 | ||
14 | ldx [%o1 + 0x10], %o4 | ||
15 | ldx [%o1 + 0x18], %o5 | ||
16 | stx %o2, [%o0 + 0x00] | ||
17 | stx %o3, [%o0 + 0x08] | ||
18 | stx %o4, [%o0 + 0x10] | ||
19 | stx %o5, [%o0 + 0x18] | ||
20 | ldx [%o1 + 0x20], %o2 | ||
21 | ldx [%o1 + 0x28], %o3 | ||
22 | ldx [%o1 + 0x30], %o4 | ||
23 | ldx [%o1 + 0x38], %o5 | ||
24 | stx %o2, [%o0 + 0x20] | ||
25 | stx %o3, [%o0 + 0x28] | ||
26 | stx %o4, [%o0 + 0x30] | ||
27 | stx %o5, [%o0 + 0x38] | ||
28 | subcc %g7, 64, %g7 | ||
29 | add %o1, 64, %o1 | ||
30 | bne,pt %xcc, 1b | ||
31 | add %o0, 64, %o0 | ||
32 | retl | ||
33 | nop | ||
34 | |||
35 | GENclear_page: | ||
36 | GENclear_user_page: | ||
37 | set PAGE_SIZE, %g7 | ||
38 | 1: stx %g0, [%o0 + 0x00] | ||
39 | stx %g0, [%o0 + 0x08] | ||
40 | stx %g0, [%o0 + 0x10] | ||
41 | stx %g0, [%o0 + 0x18] | ||
42 | stx %g0, [%o0 + 0x20] | ||
43 | stx %g0, [%o0 + 0x28] | ||
44 | stx %g0, [%o0 + 0x30] | ||
45 | stx %g0, [%o0 + 0x38] | ||
46 | subcc %g7, 64, %g7 | ||
47 | bne,pt %xcc, 1b | ||
48 | add %o0, 64, %o0 | ||
49 | |||
50 | #define BRANCH_ALWAYS 0x10680000 | ||
51 | #define NOP 0x01000000 | ||
52 | #define GEN_DO_PATCH(OLD, NEW) \ | ||
53 | sethi %hi(NEW), %g1; \ | ||
54 | or %g1, %lo(NEW), %g1; \ | ||
55 | sethi %hi(OLD), %g2; \ | ||
56 | or %g2, %lo(OLD), %g2; \ | ||
57 | sub %g1, %g2, %g1; \ | ||
58 | sethi %hi(BRANCH_ALWAYS), %g3; \ | ||
59 | sll %g1, 11, %g1; \ | ||
60 | srl %g1, 11 + 2, %g1; \ | ||
61 | or %g3, %lo(BRANCH_ALWAYS), %g3; \ | ||
62 | or %g3, %g1, %g3; \ | ||
63 | stw %g3, [%g2]; \ | ||
64 | sethi %hi(NOP), %g3; \ | ||
65 | or %g3, %lo(NOP), %g3; \ | ||
66 | stw %g3, [%g2 + 0x4]; \ | ||
67 | flush %g2; | ||
68 | |||
69 | .globl generic_patch_pageops | ||
70 | .type generic_patch_pageops,#function | ||
71 | generic_patch_pageops: | ||
72 | GEN_DO_PATCH(copy_user_page, GENcopy_user_page) | ||
73 | GEN_DO_PATCH(_clear_page, GENclear_page) | ||
74 | GEN_DO_PATCH(clear_user_page, GENclear_user_page) | ||
75 | retl | ||
76 | nop | ||
77 | .size generic_patch_pageops,.-generic_patch_pageops | ||
diff --git a/arch/sparc64/lib/GENpatch.S b/arch/sparc64/lib/GENpatch.S new file mode 100644 index 000000000000..fab9e89f16bd --- /dev/null +++ b/arch/sparc64/lib/GENpatch.S | |||
@@ -0,0 +1,33 @@ | |||
1 | /* GENpatch.S: Patch Ultra-I routines with generic variant. | ||
2 | * | ||
3 | * Copyright (C) 2007 David S. Miller <davem@davemloft.net> | ||
4 | */ | ||
5 | |||
6 | #define BRANCH_ALWAYS 0x10680000 | ||
7 | #define NOP 0x01000000 | ||
8 | #define GEN_DO_PATCH(OLD, NEW) \ | ||
9 | sethi %hi(NEW), %g1; \ | ||
10 | or %g1, %lo(NEW), %g1; \ | ||
11 | sethi %hi(OLD), %g2; \ | ||
12 | or %g2, %lo(OLD), %g2; \ | ||
13 | sub %g1, %g2, %g1; \ | ||
14 | sethi %hi(BRANCH_ALWAYS), %g3; \ | ||
15 | sll %g1, 11, %g1; \ | ||
16 | srl %g1, 11 + 2, %g1; \ | ||
17 | or %g3, %lo(BRANCH_ALWAYS), %g3; \ | ||
18 | or %g3, %g1, %g3; \ | ||
19 | stw %g3, [%g2]; \ | ||
20 | sethi %hi(NOP), %g3; \ | ||
21 | or %g3, %lo(NOP), %g3; \ | ||
22 | stw %g3, [%g2 + 0x4]; \ | ||
23 | flush %g2; | ||
24 | |||
25 | .globl generic_patch_copyops | ||
26 | .type generic_patch_copyops,#function | ||
27 | generic_patch_copyops: | ||
28 | GEN_DO_PATCH(memcpy, GENmemcpy) | ||
29 | GEN_DO_PATCH(___copy_from_user, GENcopy_from_user) | ||
30 | GEN_DO_PATCH(___copy_to_user, GENcopy_to_user) | ||
31 | retl | ||
32 | nop | ||
33 | .size generic_patch_copyops,.-generic_patch_copyops | ||
diff --git a/arch/sparc64/lib/Makefile b/arch/sparc64/lib/Makefile index c4a6d6e7d03c..f095e13910bc 100644 --- a/arch/sparc64/lib/Makefile +++ b/arch/sparc64/lib/Makefile | |||
@@ -1,4 +1,4 @@ | |||
1 | # $Id: Makefile,v 1.25 2000/12/14 22:57:25 davem Exp $ | 1 | # |
2 | # Makefile for Sparc64 library files.. | 2 | # Makefile for Sparc64 library files.. |
3 | # | 3 | # |
4 | 4 | ||
@@ -13,6 +13,10 @@ lib-y := PeeCeeI.o copy_page.o clear_page.o strlen.o strncmp.o \ | |||
13 | U3memcpy.o U3copy_from_user.o U3copy_to_user.o U3patch.o \ | 13 | U3memcpy.o U3copy_from_user.o U3copy_to_user.o U3patch.o \ |
14 | NGmemcpy.o NGcopy_from_user.o NGcopy_to_user.o NGpatch.o \ | 14 | NGmemcpy.o NGcopy_from_user.o NGcopy_to_user.o NGpatch.o \ |
15 | NGpage.o NGbzero.o \ | 15 | NGpage.o NGbzero.o \ |
16 | NG2memcpy.o NG2copy_from_user.o NG2copy_to_user.o NG2patch.o \ | ||
17 | NG2page.o \ | ||
18 | GENmemcpy.o GENcopy_from_user.o GENcopy_to_user.o GENpatch.o \ | ||
19 | GENpage.o GENbzero.o \ | ||
16 | copy_in_user.o user_fixup.o memmove.o \ | 20 | copy_in_user.o user_fixup.o memmove.o \ |
17 | mcount.o ipcsum.o rwsem.o xor.o | 21 | mcount.o ipcsum.o rwsem.o xor.o |
18 | 22 | ||
diff --git a/arch/sparc64/lib/NG2copy_from_user.S b/arch/sparc64/lib/NG2copy_from_user.S new file mode 100644 index 000000000000..c77ef5f22102 --- /dev/null +++ b/arch/sparc64/lib/NG2copy_from_user.S | |||
@@ -0,0 +1,40 @@ | |||
1 | /* NG2copy_from_user.S: Niagara-2 optimized copy from userspace. | ||
2 | * | ||
3 | * Copyright (C) 2007 David S. Miller (davem@davemloft.net) | ||
4 | */ | ||
5 | |||
6 | #define EX_LD(x) \ | ||
7 | 98: x; \ | ||
8 | .section .fixup; \ | ||
9 | .align 4; \ | ||
10 | 99: wr %g0, ASI_AIUS, %asi;\ | ||
11 | retl; \ | ||
12 | mov 1, %o0; \ | ||
13 | .section __ex_table,"a";\ | ||
14 | .align 4; \ | ||
15 | .word 98b, 99b; \ | ||
16 | .text; \ | ||
17 | .align 4; | ||
18 | |||
19 | #ifndef ASI_AIUS | ||
20 | #define ASI_AIUS 0x11 | ||
21 | #endif | ||
22 | |||
23 | #ifndef ASI_BLK_AIUS_4V | ||
24 | #define ASI_BLK_AIUS_4V 0x17 | ||
25 | #endif | ||
26 | |||
27 | #define FUNC_NAME NG2copy_from_user | ||
28 | #define LOAD(type,addr,dest) type##a [addr] %asi, dest | ||
29 | #define LOAD_BLK(addr,dest) ldda [addr] ASI_BLK_AIUS_4V, dest | ||
30 | #define EX_RETVAL(x) 0 | ||
31 | |||
32 | #ifdef __KERNEL__ | ||
33 | #define PREAMBLE \ | ||
34 | rd %asi, %g1; \ | ||
35 | cmp %g1, ASI_AIUS; \ | ||
36 | bne,pn %icc, memcpy_user_stub; \ | ||
37 | nop | ||
38 | #endif | ||
39 | |||
40 | #include "NG2memcpy.S" | ||
diff --git a/arch/sparc64/lib/NG2copy_to_user.S b/arch/sparc64/lib/NG2copy_to_user.S new file mode 100644 index 000000000000..4bd4093acbbd --- /dev/null +++ b/arch/sparc64/lib/NG2copy_to_user.S | |||
@@ -0,0 +1,49 @@ | |||
1 | /* NG2copy_to_user.S: Niagara-2 optimized copy to userspace. | ||
2 | * | ||
3 | * Copyright (C) 2007 David S. Miller (davem@davemloft.net) | ||
4 | */ | ||
5 | |||
6 | #define EX_ST(x) \ | ||
7 | 98: x; \ | ||
8 | .section .fixup; \ | ||
9 | .align 4; \ | ||
10 | 99: wr %g0, ASI_AIUS, %asi;\ | ||
11 | retl; \ | ||
12 | mov 1, %o0; \ | ||
13 | .section __ex_table,"a";\ | ||
14 | .align 4; \ | ||
15 | .word 98b, 99b; \ | ||
16 | .text; \ | ||
17 | .align 4; | ||
18 | |||
19 | #ifndef ASI_AIUS | ||
20 | #define ASI_AIUS 0x11 | ||
21 | #endif | ||
22 | |||
23 | #ifndef ASI_BLK_AIUS_4V | ||
24 | #define ASI_BLK_AIUS_4V 0x17 | ||
25 | #endif | ||
26 | |||
27 | #ifndef ASI_BLK_INIT_QUAD_LDD_AIUS | ||
28 | #define ASI_BLK_INIT_QUAD_LDD_AIUS 0x23 | ||
29 | #endif | ||
30 | |||
31 | #define FUNC_NAME NG2copy_to_user | ||
32 | #define STORE(type,src,addr) type##a src, [addr] ASI_AIUS | ||
33 | #define STORE_ASI ASI_BLK_INIT_QUAD_LDD_AIUS | ||
34 | #define STORE_BLK(src,addr) stda src, [addr] ASI_BLK_AIUS_4V | ||
35 | #define EX_RETVAL(x) 0 | ||
36 | |||
37 | #ifdef __KERNEL__ | ||
38 | /* Writing to %asi is _expensive_ so we hardcode it. | ||
39 | * Reading %asi to check for KERNEL_DS is comparatively | ||
40 | * cheap. | ||
41 | */ | ||
42 | #define PREAMBLE \ | ||
43 | rd %asi, %g1; \ | ||
44 | cmp %g1, ASI_AIUS; \ | ||
45 | bne,pn %icc, memcpy_user_stub; \ | ||
46 | nop | ||
47 | #endif | ||
48 | |||
49 | #include "NG2memcpy.S" | ||
diff --git a/arch/sparc64/lib/NG2memcpy.S b/arch/sparc64/lib/NG2memcpy.S new file mode 100644 index 000000000000..0aed75653b50 --- /dev/null +++ b/arch/sparc64/lib/NG2memcpy.S | |||
@@ -0,0 +1,520 @@ | |||
1 | /* NG2memcpy.S: Niagara-2 optimized memcpy. | ||
2 | * | ||
3 | * Copyright (C) 2007 David S. Miller (davem@davemloft.net) | ||
4 | */ | ||
5 | |||
6 | #ifdef __KERNEL__ | ||
7 | #include <asm/visasm.h> | ||
8 | #include <asm/asi.h> | ||
9 | #define GLOBAL_SPARE %g7 | ||
10 | #else | ||
11 | #define ASI_PNF 0x82 | ||
12 | #define ASI_BLK_P 0xf0 | ||
13 | #define ASI_BLK_INIT_QUAD_LDD_P 0xe2 | ||
14 | #define FPRS_FEF 0x04 | ||
15 | #ifdef MEMCPY_DEBUG | ||
16 | #define VISEntryHalf rd %fprs, %o5; wr %g0, FPRS_FEF, %fprs; \ | ||
17 | clr %g1; clr %g2; clr %g3; subcc %g0, %g0, %g0; | ||
18 | #define VISExitHalf and %o5, FPRS_FEF, %o5; wr %o5, 0x0, %fprs | ||
19 | #else | ||
20 | #define VISEntryHalf rd %fprs, %o5; wr %g0, FPRS_FEF, %fprs | ||
21 | #define VISExitHalf and %o5, FPRS_FEF, %o5; wr %o5, 0x0, %fprs | ||
22 | #endif | ||
23 | #define GLOBAL_SPARE %g5 | ||
24 | #endif | ||
25 | |||
26 | #ifndef STORE_ASI | ||
27 | #ifndef SIMULATE_NIAGARA_ON_NON_NIAGARA | ||
28 | #define STORE_ASI ASI_BLK_INIT_QUAD_LDD_P | ||
29 | #else | ||
30 | #define STORE_ASI 0x80 /* ASI_P */ | ||
31 | #endif | ||
32 | #endif | ||
33 | |||
34 | #ifndef EX_LD | ||
35 | #define EX_LD(x) x | ||
36 | #endif | ||
37 | |||
38 | #ifndef EX_ST | ||
39 | #define EX_ST(x) x | ||
40 | #endif | ||
41 | |||
42 | #ifndef EX_RETVAL | ||
43 | #define EX_RETVAL(x) x | ||
44 | #endif | ||
45 | |||
46 | #ifndef LOAD | ||
47 | #define LOAD(type,addr,dest) type [addr], dest | ||
48 | #endif | ||
49 | |||
50 | #ifndef LOAD_BLK | ||
51 | #define LOAD_BLK(addr,dest) ldda [addr] ASI_BLK_P, dest | ||
52 | #endif | ||
53 | |||
54 | #ifndef STORE | ||
55 | #ifndef MEMCPY_DEBUG | ||
56 | #define STORE(type,src,addr) type src, [addr] | ||
57 | #else | ||
58 | #define STORE(type,src,addr) type##a src, [addr] 0x80 | ||
59 | #endif | ||
60 | #endif | ||
61 | |||
62 | #ifndef STORE_BLK | ||
63 | #define STORE_BLK(src,addr) stda src, [addr] ASI_BLK_P | ||
64 | #endif | ||
65 | |||
66 | #ifndef STORE_INIT | ||
67 | #define STORE_INIT(src,addr) stxa src, [addr] STORE_ASI | ||
68 | #endif | ||
69 | |||
70 | #ifndef FUNC_NAME | ||
71 | #define FUNC_NAME NG2memcpy | ||
72 | #endif | ||
73 | |||
74 | #ifndef PREAMBLE | ||
75 | #define PREAMBLE | ||
76 | #endif | ||
77 | |||
78 | #ifndef XCC | ||
79 | #define XCC xcc | ||
80 | #endif | ||
81 | |||
82 | #define FREG_FROB(x0, x1, x2, x3, x4, x5, x6, x7, x8) \ | ||
83 | faligndata %x0, %x1, %f0; \ | ||
84 | faligndata %x1, %x2, %f2; \ | ||
85 | faligndata %x2, %x3, %f4; \ | ||
86 | faligndata %x3, %x4, %f6; \ | ||
87 | faligndata %x4, %x5, %f8; \ | ||
88 | faligndata %x5, %x6, %f10; \ | ||
89 | faligndata %x6, %x7, %f12; \ | ||
90 | faligndata %x7, %x8, %f14; | ||
91 | |||
92 | #define FREG_MOVE_1(x0) \ | ||
93 | fmovd %x0, %f0; | ||
94 | #define FREG_MOVE_2(x0, x1) \ | ||
95 | fmovd %x0, %f0; \ | ||
96 | fmovd %x1, %f2; | ||
97 | #define FREG_MOVE_3(x0, x1, x2) \ | ||
98 | fmovd %x0, %f0; \ | ||
99 | fmovd %x1, %f2; \ | ||
100 | fmovd %x2, %f4; | ||
101 | #define FREG_MOVE_4(x0, x1, x2, x3) \ | ||
102 | fmovd %x0, %f0; \ | ||
103 | fmovd %x1, %f2; \ | ||
104 | fmovd %x2, %f4; \ | ||
105 | fmovd %x3, %f6; | ||
106 | #define FREG_MOVE_5(x0, x1, x2, x3, x4) \ | ||
107 | fmovd %x0, %f0; \ | ||
108 | fmovd %x1, %f2; \ | ||
109 | fmovd %x2, %f4; \ | ||
110 | fmovd %x3, %f6; \ | ||
111 | fmovd %x4, %f8; | ||
112 | #define FREG_MOVE_6(x0, x1, x2, x3, x4, x5) \ | ||
113 | fmovd %x0, %f0; \ | ||
114 | fmovd %x1, %f2; \ | ||
115 | fmovd %x2, %f4; \ | ||
116 | fmovd %x3, %f6; \ | ||
117 | fmovd %x4, %f8; \ | ||
118 | fmovd %x5, %f10; | ||
119 | #define FREG_MOVE_7(x0, x1, x2, x3, x4, x5, x6) \ | ||
120 | fmovd %x0, %f0; \ | ||
121 | fmovd %x1, %f2; \ | ||
122 | fmovd %x2, %f4; \ | ||
123 | fmovd %x3, %f6; \ | ||
124 | fmovd %x4, %f8; \ | ||
125 | fmovd %x5, %f10; \ | ||
126 | fmovd %x6, %f12; | ||
127 | #define FREG_MOVE_8(x0, x1, x2, x3, x4, x5, x6, x7) \ | ||
128 | fmovd %x0, %f0; \ | ||
129 | fmovd %x1, %f2; \ | ||
130 | fmovd %x2, %f4; \ | ||
131 | fmovd %x3, %f6; \ | ||
132 | fmovd %x4, %f8; \ | ||
133 | fmovd %x5, %f10; \ | ||
134 | fmovd %x6, %f12; \ | ||
135 | fmovd %x7, %f14; | ||
136 | #define FREG_LOAD_1(base, x0) \ | ||
137 | EX_LD(LOAD(ldd, base + 0x00, %x0)) | ||
138 | #define FREG_LOAD_2(base, x0, x1) \ | ||
139 | EX_LD(LOAD(ldd, base + 0x00, %x0)); \ | ||
140 | EX_LD(LOAD(ldd, base + 0x08, %x1)); | ||
141 | #define FREG_LOAD_3(base, x0, x1, x2) \ | ||
142 | EX_LD(LOAD(ldd, base + 0x00, %x0)); \ | ||
143 | EX_LD(LOAD(ldd, base + 0x08, %x1)); \ | ||
144 | EX_LD(LOAD(ldd, base + 0x10, %x2)); | ||
145 | #define FREG_LOAD_4(base, x0, x1, x2, x3) \ | ||
146 | EX_LD(LOAD(ldd, base + 0x00, %x0)); \ | ||
147 | EX_LD(LOAD(ldd, base + 0x08, %x1)); \ | ||
148 | EX_LD(LOAD(ldd, base + 0x10, %x2)); \ | ||
149 | EX_LD(LOAD(ldd, base + 0x18, %x3)); | ||
150 | #define FREG_LOAD_5(base, x0, x1, x2, x3, x4) \ | ||
151 | EX_LD(LOAD(ldd, base + 0x00, %x0)); \ | ||
152 | EX_LD(LOAD(ldd, base + 0x08, %x1)); \ | ||
153 | EX_LD(LOAD(ldd, base + 0x10, %x2)); \ | ||
154 | EX_LD(LOAD(ldd, base + 0x18, %x3)); \ | ||
155 | EX_LD(LOAD(ldd, base + 0x20, %x4)); | ||
156 | #define FREG_LOAD_6(base, x0, x1, x2, x3, x4, x5) \ | ||
157 | EX_LD(LOAD(ldd, base + 0x00, %x0)); \ | ||
158 | EX_LD(LOAD(ldd, base + 0x08, %x1)); \ | ||
159 | EX_LD(LOAD(ldd, base + 0x10, %x2)); \ | ||
160 | EX_LD(LOAD(ldd, base + 0x18, %x3)); \ | ||
161 | EX_LD(LOAD(ldd, base + 0x20, %x4)); \ | ||
162 | EX_LD(LOAD(ldd, base + 0x28, %x5)); | ||
163 | #define FREG_LOAD_7(base, x0, x1, x2, x3, x4, x5, x6) \ | ||
164 | EX_LD(LOAD(ldd, base + 0x00, %x0)); \ | ||
165 | EX_LD(LOAD(ldd, base + 0x08, %x1)); \ | ||
166 | EX_LD(LOAD(ldd, base + 0x10, %x2)); \ | ||
167 | EX_LD(LOAD(ldd, base + 0x18, %x3)); \ | ||
168 | EX_LD(LOAD(ldd, base + 0x20, %x4)); \ | ||
169 | EX_LD(LOAD(ldd, base + 0x28, %x5)); \ | ||
170 | EX_LD(LOAD(ldd, base + 0x30, %x6)); | ||
171 | |||
172 | .register %g2,#scratch | ||
173 | .register %g3,#scratch | ||
174 | |||
175 | .text | ||
176 | .align 64 | ||
177 | |||
178 | .globl FUNC_NAME | ||
179 | .type FUNC_NAME,#function | ||
180 | FUNC_NAME: /* %o0=dst, %o1=src, %o2=len */ | ||
181 | srlx %o2, 31, %g2 | ||
182 | cmp %g2, 0 | ||
183 | tne %xcc, 5 | ||
184 | PREAMBLE | ||
185 | mov %o0, GLOBAL_SPARE | ||
186 | cmp %o2, 0 | ||
187 | be,pn %XCC, 85f | ||
188 | or %o0, %o1, %o3 | ||
189 | cmp %o2, 16 | ||
190 | blu,a,pn %XCC, 80f | ||
191 | or %o3, %o2, %o3 | ||
192 | |||
193 | /* 2 blocks (128 bytes) is the minimum we can do the block | ||
194 | * copy with. We need to ensure that we'll iterate at least | ||
195 | * once in the block copy loop. At worst we'll need to align | ||
196 | * the destination to a 64-byte boundary which can chew up | ||
197 | * to (64 - 1) bytes from the length before we perform the | ||
198 | * block copy loop. | ||
199 | * | ||
200 | * However, the cut-off point, performance wise, is around | ||
201 | * 4 64-byte blocks. | ||
202 | */ | ||
203 | cmp %o2, (4 * 64) | ||
204 | blu,pt %XCC, 75f | ||
205 | andcc %o3, 0x7, %g0 | ||
206 | |||
207 | /* %o0: dst | ||
208 | * %o1: src | ||
209 | * %o2: len (known to be >= 128) | ||
210 | * | ||
211 | * The block copy loops can use %o4, %g2, %g3 as | ||
212 | * temporaries while copying the data. %o5 must | ||
213 | * be preserved between VISEntryHalf and VISExitHalf | ||
214 | */ | ||
215 | |||
216 | LOAD(prefetch, %o1 + 0x000, #one_read) | ||
217 | LOAD(prefetch, %o1 + 0x040, #one_read) | ||
218 | LOAD(prefetch, %o1 + 0x080, #one_read) | ||
219 | |||
220 | /* Align destination on 64-byte boundary. */ | ||
221 | andcc %o0, (64 - 1), %o4 | ||
222 | be,pt %XCC, 2f | ||
223 | sub %o4, 64, %o4 | ||
224 | sub %g0, %o4, %o4 ! bytes to align dst | ||
225 | sub %o2, %o4, %o2 | ||
226 | 1: subcc %o4, 1, %o4 | ||
227 | EX_LD(LOAD(ldub, %o1, %g1)) | ||
228 | EX_ST(STORE(stb, %g1, %o0)) | ||
229 | add %o1, 1, %o1 | ||
230 | bne,pt %XCC, 1b | ||
231 | add %o0, 1, %o0 | ||
232 | |||
233 | 2: | ||
234 | /* Clobbers o5/g1/g2/g3/g7/icc/xcc. We must preserve | ||
235 | * o5 from here until we hit VISExitHalf. | ||
236 | */ | ||
237 | VISEntryHalf | ||
238 | |||
239 | alignaddr %o1, %g0, %g0 | ||
240 | |||
241 | add %o1, (64 - 1), %o4 | ||
242 | andn %o4, (64 - 1), %o4 | ||
243 | andn %o2, (64 - 1), %g1 | ||
244 | sub %o2, %g1, %o2 | ||
245 | |||
246 | and %o1, (64 - 1), %g2 | ||
247 | add %o1, %g1, %o1 | ||
248 | sub %o0, %o4, %g3 | ||
249 | brz,pt %g2, 190f | ||
250 | cmp %g2, 32 | ||
251 | blu,a 5f | ||
252 | cmp %g2, 16 | ||
253 | cmp %g2, 48 | ||
254 | blu,a 4f | ||
255 | cmp %g2, 40 | ||
256 | cmp %g2, 56 | ||
257 | blu 170f | ||
258 | nop | ||
259 | ba,a,pt %xcc, 180f | ||
260 | |||
261 | 4: /* 32 <= low bits < 48 */ | ||
262 | blu 150f | ||
263 | nop | ||
264 | ba,a,pt %xcc, 160f | ||
265 | 5: /* 0 < low bits < 32 */ | ||
266 | blu,a 6f | ||
267 | cmp %g2, 8 | ||
268 | cmp %g2, 24 | ||
269 | blu 130f | ||
270 | nop | ||
271 | ba,a,pt %xcc, 140f | ||
272 | 6: /* 0 < low bits < 16 */ | ||
273 | bgeu 120f | ||
274 | nop | ||
275 | /* fall through for 0 < low bits < 8 */ | ||
276 | 110: sub %o4, 64, %g2 | ||
277 | EX_LD(LOAD_BLK(%g2, %f0)) | ||
278 | 1: EX_ST(STORE_INIT(%g0, %o4 + %g3)) | ||
279 | EX_LD(LOAD_BLK(%o4, %f16)) | ||
280 | FREG_FROB(f0, f2, f4, f6, f8, f10, f12, f14, f16) | ||
281 | EX_ST(STORE_BLK(%f0, %o4 + %g3)) | ||
282 | FREG_MOVE_8(f16, f18, f20, f22, f24, f26, f28, f30) | ||
283 | subcc %g1, 64, %g1 | ||
284 | add %o4, 64, %o4 | ||
285 | bne,pt %xcc, 1b | ||
286 | LOAD(prefetch, %o4 + 64, #one_read) | ||
287 | ba,pt %xcc, 195f | ||
288 | nop | ||
289 | |||
290 | 120: sub %o4, 56, %g2 | ||
291 | FREG_LOAD_7(%g2, f0, f2, f4, f6, f8, f10, f12) | ||
292 | 1: EX_ST(STORE_INIT(%g0, %o4 + %g3)) | ||
293 | EX_LD(LOAD_BLK(%o4, %f16)) | ||
294 | FREG_FROB(f0, f2, f4, f6, f8, f10, f12, f16, f18) | ||
295 | EX_ST(STORE_BLK(%f0, %o4 + %g3)) | ||
296 | FREG_MOVE_7(f18, f20, f22, f24, f26, f28, f30) | ||
297 | subcc %g1, 64, %g1 | ||
298 | add %o4, 64, %o4 | ||
299 | bne,pt %xcc, 1b | ||
300 | LOAD(prefetch, %o4 + 64, #one_read) | ||
301 | ba,pt %xcc, 195f | ||
302 | nop | ||
303 | |||
304 | 130: sub %o4, 48, %g2 | ||
305 | FREG_LOAD_6(%g2, f0, f2, f4, f6, f8, f10) | ||
306 | 1: EX_ST(STORE_INIT(%g0, %o4 + %g3)) | ||
307 | EX_LD(LOAD_BLK(%o4, %f16)) | ||
308 | FREG_FROB(f0, f2, f4, f6, f8, f10, f16, f18, f20) | ||
309 | EX_ST(STORE_BLK(%f0, %o4 + %g3)) | ||
310 | FREG_MOVE_6(f20, f22, f24, f26, f28, f30) | ||
311 | subcc %g1, 64, %g1 | ||
312 | add %o4, 64, %o4 | ||
313 | bne,pt %xcc, 1b | ||
314 | LOAD(prefetch, %o4 + 64, #one_read) | ||
315 | ba,pt %xcc, 195f | ||
316 | nop | ||
317 | |||
318 | 140: sub %o4, 40, %g2 | ||
319 | FREG_LOAD_5(%g2, f0, f2, f4, f6, f8) | ||
320 | 1: EX_ST(STORE_INIT(%g0, %o4 + %g3)) | ||
321 | EX_LD(LOAD_BLK(%o4, %f16)) | ||
322 | FREG_FROB(f0, f2, f4, f6, f8, f16, f18, f20, f22) | ||
323 | EX_ST(STORE_BLK(%f0, %o4 + %g3)) | ||
324 | FREG_MOVE_5(f22, f24, f26, f28, f30) | ||
325 | subcc %g1, 64, %g1 | ||
326 | add %o4, 64, %o4 | ||
327 | bne,pt %xcc, 1b | ||
328 | LOAD(prefetch, %o4 + 64, #one_read) | ||
329 | ba,pt %xcc, 195f | ||
330 | nop | ||
331 | |||
332 | 150: sub %o4, 32, %g2 | ||
333 | FREG_LOAD_4(%g2, f0, f2, f4, f6) | ||
334 | 1: EX_ST(STORE_INIT(%g0, %o4 + %g3)) | ||
335 | EX_LD(LOAD_BLK(%o4, %f16)) | ||
336 | FREG_FROB(f0, f2, f4, f6, f16, f18, f20, f22, f24) | ||
337 | EX_ST(STORE_BLK(%f0, %o4 + %g3)) | ||
338 | FREG_MOVE_4(f24, f26, f28, f30) | ||
339 | subcc %g1, 64, %g1 | ||
340 | add %o4, 64, %o4 | ||
341 | bne,pt %xcc, 1b | ||
342 | LOAD(prefetch, %o4 + 64, #one_read) | ||
343 | ba,pt %xcc, 195f | ||
344 | nop | ||
345 | |||
346 | 160: sub %o4, 24, %g2 | ||
347 | FREG_LOAD_3(%g2, f0, f2, f4) | ||
348 | 1: EX_ST(STORE_INIT(%g0, %o4 + %g3)) | ||
349 | EX_LD(LOAD_BLK(%o4, %f16)) | ||
350 | FREG_FROB(f0, f2, f4, f16, f18, f20, f22, f24, f26) | ||
351 | EX_ST(STORE_BLK(%f0, %o4 + %g3)) | ||
352 | FREG_MOVE_3(f26, f28, f30) | ||
353 | subcc %g1, 64, %g1 | ||
354 | add %o4, 64, %o4 | ||
355 | bne,pt %xcc, 1b | ||
356 | LOAD(prefetch, %o4 + 64, #one_read) | ||
357 | ba,pt %xcc, 195f | ||
358 | nop | ||
359 | |||
360 | 170: sub %o4, 16, %g2 | ||
361 | FREG_LOAD_2(%g2, f0, f2) | ||
362 | 1: EX_ST(STORE_INIT(%g0, %o4 + %g3)) | ||
363 | EX_LD(LOAD_BLK(%o4, %f16)) | ||
364 | FREG_FROB(f0, f2, f16, f18, f20, f22, f24, f26, f28) | ||
365 | EX_ST(STORE_BLK(%f0, %o4 + %g3)) | ||
366 | FREG_MOVE_2(f28, f30) | ||
367 | subcc %g1, 64, %g1 | ||
368 | add %o4, 64, %o4 | ||
369 | bne,pt %xcc, 1b | ||
370 | LOAD(prefetch, %o4 + 64, #one_read) | ||
371 | ba,pt %xcc, 195f | ||
372 | nop | ||
373 | |||
374 | 180: sub %o4, 8, %g2 | ||
375 | FREG_LOAD_1(%g2, f0) | ||
376 | 1: EX_ST(STORE_INIT(%g0, %o4 + %g3)) | ||
377 | EX_LD(LOAD_BLK(%o4, %f16)) | ||
378 | FREG_FROB(f0, f16, f18, f20, f22, f24, f26, f28, f30) | ||
379 | EX_ST(STORE_BLK(%f0, %o4 + %g3)) | ||
380 | FREG_MOVE_1(f30) | ||
381 | subcc %g1, 64, %g1 | ||
382 | add %o4, 64, %o4 | ||
383 | bne,pt %xcc, 1b | ||
384 | LOAD(prefetch, %o4 + 64, #one_read) | ||
385 | ba,pt %xcc, 195f | ||
386 | nop | ||
387 | |||
388 | 190: | ||
389 | 1: EX_ST(STORE_INIT(%g0, %o4 + %g3)) | ||
390 | subcc %g1, 64, %g1 | ||
391 | EX_LD(LOAD_BLK(%o4, %f0)) | ||
392 | EX_ST(STORE_BLK(%f0, %o4 + %g3)) | ||
393 | add %o4, 64, %o4 | ||
394 | bne,pt %xcc, 1b | ||
395 | LOAD(prefetch, %o4 + 64, #one_read) | ||
396 | |||
397 | 195: | ||
398 | add %o4, %g3, %o0 | ||
399 | membar #Sync | ||
400 | |||
401 | VISExitHalf | ||
402 | |||
403 | /* %o2 contains any final bytes still needed to be copied | ||
404 | * over. If anything is left, we copy it one byte at a time. | ||
405 | */ | ||
406 | brz,pt %o2, 85f | ||
407 | sub %o0, %o1, %o3 | ||
408 | ba,a,pt %XCC, 90f | ||
409 | |||
410 | .align 64 | ||
411 | 75: /* 16 < len <= 64 */ | ||
412 | bne,pn %XCC, 75f | ||
413 | sub %o0, %o1, %o3 | ||
414 | |||
415 | 72: | ||
416 | andn %o2, 0xf, %o4 | ||
417 | and %o2, 0xf, %o2 | ||
418 | 1: subcc %o4, 0x10, %o4 | ||
419 | EX_LD(LOAD(ldx, %o1, %o5)) | ||
420 | add %o1, 0x08, %o1 | ||
421 | EX_LD(LOAD(ldx, %o1, %g1)) | ||
422 | sub %o1, 0x08, %o1 | ||
423 | EX_ST(STORE(stx, %o5, %o1 + %o3)) | ||
424 | add %o1, 0x8, %o1 | ||
425 | EX_ST(STORE(stx, %g1, %o1 + %o3)) | ||
426 | bgu,pt %XCC, 1b | ||
427 | add %o1, 0x8, %o1 | ||
428 | 73: andcc %o2, 0x8, %g0 | ||
429 | be,pt %XCC, 1f | ||
430 | nop | ||
431 | sub %o2, 0x8, %o2 | ||
432 | EX_LD(LOAD(ldx, %o1, %o5)) | ||
433 | EX_ST(STORE(stx, %o5, %o1 + %o3)) | ||
434 | add %o1, 0x8, %o1 | ||
435 | 1: andcc %o2, 0x4, %g0 | ||
436 | be,pt %XCC, 1f | ||
437 | nop | ||
438 | sub %o2, 0x4, %o2 | ||
439 | EX_LD(LOAD(lduw, %o1, %o5)) | ||
440 | EX_ST(STORE(stw, %o5, %o1 + %o3)) | ||
441 | add %o1, 0x4, %o1 | ||
442 | 1: cmp %o2, 0 | ||
443 | be,pt %XCC, 85f | ||
444 | nop | ||
445 | ba,pt %xcc, 90f | ||
446 | nop | ||
447 | |||
448 | 75: | ||
449 | andcc %o0, 0x7, %g1 | ||
450 | sub %g1, 0x8, %g1 | ||
451 | be,pn %icc, 2f | ||
452 | sub %g0, %g1, %g1 | ||
453 | sub %o2, %g1, %o2 | ||
454 | |||
455 | 1: subcc %g1, 1, %g1 | ||
456 | EX_LD(LOAD(ldub, %o1, %o5)) | ||
457 | EX_ST(STORE(stb, %o5, %o1 + %o3)) | ||
458 | bgu,pt %icc, 1b | ||
459 | add %o1, 1, %o1 | ||
460 | |||
461 | 2: add %o1, %o3, %o0 | ||
462 | andcc %o1, 0x7, %g1 | ||
463 | bne,pt %icc, 8f | ||
464 | sll %g1, 3, %g1 | ||
465 | |||
466 | cmp %o2, 16 | ||
467 | bgeu,pt %icc, 72b | ||
468 | nop | ||
469 | ba,a,pt %xcc, 73b | ||
470 | |||
471 | 8: mov 64, %o3 | ||
472 | andn %o1, 0x7, %o1 | ||
473 | EX_LD(LOAD(ldx, %o1, %g2)) | ||
474 | sub %o3, %g1, %o3 | ||
475 | andn %o2, 0x7, %o4 | ||
476 | sllx %g2, %g1, %g2 | ||
477 | 1: add %o1, 0x8, %o1 | ||
478 | EX_LD(LOAD(ldx, %o1, %g3)) | ||
479 | subcc %o4, 0x8, %o4 | ||
480 | srlx %g3, %o3, %o5 | ||
481 | or %o5, %g2, %o5 | ||
482 | EX_ST(STORE(stx, %o5, %o0)) | ||
483 | add %o0, 0x8, %o0 | ||
484 | bgu,pt %icc, 1b | ||
485 | sllx %g3, %g1, %g2 | ||
486 | |||
487 | srl %g1, 3, %g1 | ||
488 | andcc %o2, 0x7, %o2 | ||
489 | be,pn %icc, 85f | ||
490 | add %o1, %g1, %o1 | ||
491 | ba,pt %xcc, 90f | ||
492 | sub %o0, %o1, %o3 | ||
493 | |||
494 | .align 64 | ||
495 | 80: /* 0 < len <= 16 */ | ||
496 | andcc %o3, 0x3, %g0 | ||
497 | bne,pn %XCC, 90f | ||
498 | sub %o0, %o1, %o3 | ||
499 | |||
500 | 1: | ||
501 | subcc %o2, 4, %o2 | ||
502 | EX_LD(LOAD(lduw, %o1, %g1)) | ||
503 | EX_ST(STORE(stw, %g1, %o1 + %o3)) | ||
504 | bgu,pt %XCC, 1b | ||
505 | add %o1, 4, %o1 | ||
506 | |||
507 | 85: retl | ||
508 | mov EX_RETVAL(GLOBAL_SPARE), %o0 | ||
509 | |||
510 | .align 32 | ||
511 | 90: | ||
512 | subcc %o2, 1, %o2 | ||
513 | EX_LD(LOAD(ldub, %o1, %g1)) | ||
514 | EX_ST(STORE(stb, %g1, %o1 + %o3)) | ||
515 | bgu,pt %XCC, 90b | ||
516 | add %o1, 1, %o1 | ||
517 | retl | ||
518 | mov EX_RETVAL(GLOBAL_SPARE), %o0 | ||
519 | |||
520 | .size FUNC_NAME, .-FUNC_NAME | ||
diff --git a/arch/sparc64/lib/NG2page.S b/arch/sparc64/lib/NG2page.S new file mode 100644 index 000000000000..73b6b7c72cbf --- /dev/null +++ b/arch/sparc64/lib/NG2page.S | |||
@@ -0,0 +1,61 @@ | |||
1 | /* NG2page.S: Niagara-2 optimized clear and copy page. | ||
2 | * | ||
3 | * Copyright (C) 2007 (davem@davemloft.net) | ||
4 | */ | ||
5 | |||
6 | #include <asm/asi.h> | ||
7 | #include <asm/page.h> | ||
8 | #include <asm/visasm.h> | ||
9 | |||
10 | .text | ||
11 | .align 32 | ||
12 | |||
13 | /* This is heavily simplified from the sun4u variants | ||
14 | * because Niagara-2 does not have any D-cache aliasing issues. | ||
15 | */ | ||
16 | NG2copy_user_page: /* %o0=dest, %o1=src, %o2=vaddr */ | ||
17 | prefetch [%o1 + 0x00], #one_read | ||
18 | prefetch [%o1 + 0x40], #one_read | ||
19 | VISEntryHalf | ||
20 | set PAGE_SIZE, %g7 | ||
21 | sub %o0, %o1, %g3 | ||
22 | 1: stxa %g0, [%o1 + %g3] ASI_BLK_INIT_QUAD_LDD_P | ||
23 | subcc %g7, 64, %g7 | ||
24 | ldda [%o1] ASI_BLK_P, %f0 | ||
25 | stda %f0, [%o1 + %g3] ASI_BLK_P | ||
26 | add %o1, 64, %o1 | ||
27 | bne,pt %xcc, 1b | ||
28 | prefetch [%o1 + 0x40], #one_read | ||
29 | membar #Sync | ||
30 | VISExitHalf | ||
31 | retl | ||
32 | nop | ||
33 | |||
34 | #define BRANCH_ALWAYS 0x10680000 | ||
35 | #define NOP 0x01000000 | ||
36 | #define NG_DO_PATCH(OLD, NEW) \ | ||
37 | sethi %hi(NEW), %g1; \ | ||
38 | or %g1, %lo(NEW), %g1; \ | ||
39 | sethi %hi(OLD), %g2; \ | ||
40 | or %g2, %lo(OLD), %g2; \ | ||
41 | sub %g1, %g2, %g1; \ | ||
42 | sethi %hi(BRANCH_ALWAYS), %g3; \ | ||
43 | sll %g1, 11, %g1; \ | ||
44 | srl %g1, 11 + 2, %g1; \ | ||
45 | or %g3, %lo(BRANCH_ALWAYS), %g3; \ | ||
46 | or %g3, %g1, %g3; \ | ||
47 | stw %g3, [%g2]; \ | ||
48 | sethi %hi(NOP), %g3; \ | ||
49 | or %g3, %lo(NOP), %g3; \ | ||
50 | stw %g3, [%g2 + 0x4]; \ | ||
51 | flush %g2; | ||
52 | |||
53 | .globl niagara2_patch_pageops | ||
54 | .type niagara2_patch_pageops,#function | ||
55 | niagara2_patch_pageops: | ||
56 | NG_DO_PATCH(copy_user_page, NG2copy_user_page) | ||
57 | NG_DO_PATCH(_clear_page, NGclear_page) | ||
58 | NG_DO_PATCH(clear_user_page, NGclear_user_page) | ||
59 | retl | ||
60 | nop | ||
61 | .size niagara2_patch_pageops,.-niagara2_patch_pageops | ||
diff --git a/arch/sparc64/lib/NG2patch.S b/arch/sparc64/lib/NG2patch.S new file mode 100644 index 000000000000..28c36f06a6d1 --- /dev/null +++ b/arch/sparc64/lib/NG2patch.S | |||
@@ -0,0 +1,33 @@ | |||
1 | /* NG2patch.S: Patch Ultra-I routines with Niagara-2 variant. | ||
2 | * | ||
3 | * Copyright (C) 2007 David S. Miller <davem@davemloft.net> | ||
4 | */ | ||
5 | |||
6 | #define BRANCH_ALWAYS 0x10680000 | ||
7 | #define NOP 0x01000000 | ||
8 | #define NG_DO_PATCH(OLD, NEW) \ | ||
9 | sethi %hi(NEW), %g1; \ | ||
10 | or %g1, %lo(NEW), %g1; \ | ||
11 | sethi %hi(OLD), %g2; \ | ||
12 | or %g2, %lo(OLD), %g2; \ | ||
13 | sub %g1, %g2, %g1; \ | ||
14 | sethi %hi(BRANCH_ALWAYS), %g3; \ | ||
15 | sll %g1, 11, %g1; \ | ||
16 | srl %g1, 11 + 2, %g1; \ | ||
17 | or %g3, %lo(BRANCH_ALWAYS), %g3; \ | ||
18 | or %g3, %g1, %g3; \ | ||
19 | stw %g3, [%g2]; \ | ||
20 | sethi %hi(NOP), %g3; \ | ||
21 | or %g3, %lo(NOP), %g3; \ | ||
22 | stw %g3, [%g2 + 0x4]; \ | ||
23 | flush %g2; | ||
24 | |||
25 | .globl niagara2_patch_copyops | ||
26 | .type niagara2_patch_copyops,#function | ||
27 | niagara2_patch_copyops: | ||
28 | NG_DO_PATCH(memcpy, NG2memcpy) | ||
29 | NG_DO_PATCH(___copy_from_user, NG2copy_from_user) | ||
30 | NG_DO_PATCH(___copy_to_user, NG2copy_to_user) | ||
31 | retl | ||
32 | nop | ||
33 | .size niagara2_patch_copyops,.-niagara2_patch_copyops | ||
diff --git a/arch/sparc64/lib/NGpage.S b/arch/sparc64/lib/NGpage.S index 8ce3a0c9c537..428920de05ba 100644 --- a/arch/sparc64/lib/NGpage.S +++ b/arch/sparc64/lib/NGpage.S | |||
@@ -45,6 +45,7 @@ NGcopy_user_page: /* %o0=dest, %o1=src, %o2=vaddr */ | |||
45 | retl | 45 | retl |
46 | nop | 46 | nop |
47 | 47 | ||
48 | .globl NGclear_page, NGclear_user_page | ||
48 | NGclear_page: /* %o0=dest */ | 49 | NGclear_page: /* %o0=dest */ |
49 | NGclear_user_page: /* %o0=dest, %o1=vaddr */ | 50 | NGclear_user_page: /* %o0=dest, %o1=vaddr */ |
50 | mov 8, %g1 | 51 | mov 8, %g1 |
diff --git a/arch/x86_64/boot/compressed/head.S b/arch/x86_64/boot/compressed/head.S index 1312bfaff306..9fd8030cc54f 100644 --- a/arch/x86_64/boot/compressed/head.S +++ b/arch/x86_64/boot/compressed/head.S | |||
@@ -195,6 +195,11 @@ ENTRY(startup_64) | |||
195 | movl %eax, %ds | 195 | movl %eax, %ds |
196 | movl %eax, %es | 196 | movl %eax, %es |
197 | movl %eax, %ss | 197 | movl %eax, %ss |
198 | movl %eax, %fs | ||
199 | movl %eax, %gs | ||
200 | lldt %ax | ||
201 | movl $0x20, %eax | ||
202 | ltr %ax | ||
198 | 203 | ||
199 | /* Compute the decompressed kernel start address. It is where | 204 | /* Compute the decompressed kernel start address. It is where |
200 | * we were loaded at aligned to a 2M boundary. %rbp contains the | 205 | * we were loaded at aligned to a 2M boundary. %rbp contains the |
@@ -295,6 +300,8 @@ gdt: | |||
295 | .quad 0x0000000000000000 /* NULL descriptor */ | 300 | .quad 0x0000000000000000 /* NULL descriptor */ |
296 | .quad 0x00af9a000000ffff /* __KERNEL_CS */ | 301 | .quad 0x00af9a000000ffff /* __KERNEL_CS */ |
297 | .quad 0x00cf92000000ffff /* __KERNEL_DS */ | 302 | .quad 0x00cf92000000ffff /* __KERNEL_DS */ |
303 | .quad 0x0080890000000000 /* TS descriptor */ | ||
304 | .quad 0x0000000000000000 /* TS continued */ | ||
298 | gdt_end: | 305 | gdt_end: |
299 | .bss | 306 | .bss |
300 | /* Stack for uncompression */ | 307 | /* Stack for uncompression */ |
diff --git a/arch/x86_64/kernel/apic.c b/arch/x86_64/kernel/apic.c index 900ff38d68de..925758dbca0c 100644 --- a/arch/x86_64/kernel/apic.c +++ b/arch/x86_64/kernel/apic.c | |||
@@ -791,10 +791,8 @@ static void setup_APIC_timer(unsigned int clocks) | |||
791 | 791 | ||
792 | /* wait for irq slice */ | 792 | /* wait for irq slice */ |
793 | if (hpet_address && hpet_use_timer) { | 793 | if (hpet_address && hpet_use_timer) { |
794 | int trigger = hpet_readl(HPET_T0_CMP); | 794 | u32 trigger = hpet_readl(HPET_T0_CMP); |
795 | while (hpet_readl(HPET_COUNTER) >= trigger) | 795 | while (hpet_readl(HPET_T0_CMP) == trigger) |
796 | /* do nothing */ ; | ||
797 | while (hpet_readl(HPET_COUNTER) < trigger) | ||
798 | /* do nothing */ ; | 796 | /* do nothing */ ; |
799 | } else { | 797 | } else { |
800 | int c1, c2; | 798 | int c1, c2; |
diff --git a/arch/x86_64/kernel/io_apic.c b/arch/x86_64/kernel/io_apic.c index 050141c0602b..f57f8b901912 100644 --- a/arch/x86_64/kernel/io_apic.c +++ b/arch/x86_64/kernel/io_apic.c | |||
@@ -800,12 +800,15 @@ static struct irq_chip ioapic_chip; | |||
800 | 800 | ||
801 | static void ioapic_register_intr(int irq, unsigned long trigger) | 801 | static void ioapic_register_intr(int irq, unsigned long trigger) |
802 | { | 802 | { |
803 | if (trigger) | 803 | if (trigger) { |
804 | irq_desc[irq].status |= IRQ_LEVEL; | ||
804 | set_irq_chip_and_handler_name(irq, &ioapic_chip, | 805 | set_irq_chip_and_handler_name(irq, &ioapic_chip, |
805 | handle_fasteoi_irq, "fasteoi"); | 806 | handle_fasteoi_irq, "fasteoi"); |
806 | else | 807 | } else { |
808 | irq_desc[irq].status &= ~IRQ_LEVEL; | ||
807 | set_irq_chip_and_handler_name(irq, &ioapic_chip, | 809 | set_irq_chip_and_handler_name(irq, &ioapic_chip, |
808 | handle_edge_irq, "edge"); | 810 | handle_edge_irq, "edge"); |
811 | } | ||
809 | } | 812 | } |
810 | 813 | ||
811 | static void setup_IO_APIC_irq(int apic, int pin, unsigned int irq, | 814 | static void setup_IO_APIC_irq(int apic, int pin, unsigned int irq, |
diff --git a/arch/x86_64/kernel/pci-calgary.c b/arch/x86_64/kernel/pci-calgary.c index ba16c968ca3f..71da01e73f03 100644 --- a/arch/x86_64/kernel/pci-calgary.c +++ b/arch/x86_64/kernel/pci-calgary.c | |||
@@ -367,16 +367,15 @@ static inline struct iommu_table *find_iommu_table(struct device *dev) | |||
367 | 367 | ||
368 | pdev = to_pci_dev(dev); | 368 | pdev = to_pci_dev(dev); |
369 | 369 | ||
370 | /* is the device behind a bridge? */ | 370 | pbus = pdev->bus; |
371 | if (unlikely(pdev->bus->parent)) | 371 | |
372 | pbus = pdev->bus->parent; | 372 | /* is the device behind a bridge? Look for the root bus */ |
373 | else | 373 | while (pbus->parent) |
374 | pbus = pdev->bus; | 374 | pbus = pbus->parent; |
375 | 375 | ||
376 | tbl = pci_iommu(pbus); | 376 | tbl = pci_iommu(pbus); |
377 | 377 | ||
378 | BUG_ON(pdev->bus->parent && | 378 | BUG_ON(tbl && (tbl->it_busno != pbus->number)); |
379 | (tbl->it_busno != pdev->bus->parent->number)); | ||
380 | 379 | ||
381 | return tbl; | 380 | return tbl; |
382 | } | 381 | } |
diff --git a/arch/x86_64/lib/memcpy.S b/arch/x86_64/lib/memcpy.S index 0ea0ddc875a7..c22981fa2f3a 100644 --- a/arch/x86_64/lib/memcpy.S +++ b/arch/x86_64/lib/memcpy.S | |||
@@ -124,6 +124,8 @@ ENDPROC(__memcpy) | |||
124 | .quad memcpy | 124 | .quad memcpy |
125 | .quad 1b | 125 | .quad 1b |
126 | .byte X86_FEATURE_REP_GOOD | 126 | .byte X86_FEATURE_REP_GOOD |
127 | .byte .Lfinal - memcpy | 127 | /* Replace only beginning, memcpy is used to apply alternatives, so it |
128 | * is silly to overwrite itself with nops - reboot is only outcome... */ | ||
129 | .byte 2b - 1b | ||
128 | .byte 2b - 1b | 130 | .byte 2b - 1b |
129 | .previous | 131 | .previous |
diff --git a/arch/x86_64/mm/pageattr.c b/arch/x86_64/mm/pageattr.c index 7e161c698af4..10b9809ce821 100644 --- a/arch/x86_64/mm/pageattr.c +++ b/arch/x86_64/mm/pageattr.c | |||
@@ -75,7 +75,8 @@ static void flush_kernel_map(void *arg) | |||
75 | 75 | ||
76 | /* When clflush is available always use it because it is | 76 | /* When clflush is available always use it because it is |
77 | much cheaper than WBINVD. */ | 77 | much cheaper than WBINVD. */ |
78 | if (!cpu_has_clflush) | 78 | /* clflush is still broken. Disable for now. */ |
79 | if (1 || !cpu_has_clflush) | ||
79 | asm volatile("wbinvd" ::: "memory"); | 80 | asm volatile("wbinvd" ::: "memory"); |
80 | else list_for_each_entry(pg, l, lru) { | 81 | else list_for_each_entry(pg, l, lru) { |
81 | void *adr = page_address(pg); | 82 | void *adr = page_address(pg); |
diff --git a/arch/x86_64/pci/mmconfig.c b/arch/x86_64/pci/mmconfig.c index 65d82736987e..4095e4d66a1d 100644 --- a/arch/x86_64/pci/mmconfig.c +++ b/arch/x86_64/pci/mmconfig.c | |||
@@ -66,13 +66,13 @@ static int pci_mmcfg_read(unsigned int seg, unsigned int bus, | |||
66 | 66 | ||
67 | switch (len) { | 67 | switch (len) { |
68 | case 1: | 68 | case 1: |
69 | *value = readb(addr + reg); | 69 | *value = mmio_config_readb(addr + reg); |
70 | break; | 70 | break; |
71 | case 2: | 71 | case 2: |
72 | *value = readw(addr + reg); | 72 | *value = mmio_config_readw(addr + reg); |
73 | break; | 73 | break; |
74 | case 4: | 74 | case 4: |
75 | *value = readl(addr + reg); | 75 | *value = mmio_config_readl(addr + reg); |
76 | break; | 76 | break; |
77 | } | 77 | } |
78 | 78 | ||
@@ -94,13 +94,13 @@ static int pci_mmcfg_write(unsigned int seg, unsigned int bus, | |||
94 | 94 | ||
95 | switch (len) { | 95 | switch (len) { |
96 | case 1: | 96 | case 1: |
97 | writeb(value, addr + reg); | 97 | mmio_config_writeb(addr + reg, value); |
98 | break; | 98 | break; |
99 | case 2: | 99 | case 2: |
100 | writew(value, addr + reg); | 100 | mmio_config_writew(addr + reg, value); |
101 | break; | 101 | break; |
102 | case 4: | 102 | case 4: |
103 | writel(value, addr + reg); | 103 | mmio_config_writel(addr + reg, value); |
104 | break; | 104 | break; |
105 | } | 105 | } |
106 | 106 | ||
diff --git a/arch/x86_64/vdso/.gitignore b/arch/x86_64/vdso/.gitignore new file mode 100644 index 000000000000..f8b69d84238e --- /dev/null +++ b/arch/x86_64/vdso/.gitignore | |||
@@ -0,0 +1 @@ | |||
vdso.lds | |||