diff options
31 files changed, 1363 insertions, 147 deletions
diff --git a/arch/powerpc/configs/mpc85xx_cds_defconfig b/arch/powerpc/configs/mpc85xx_cds_defconfig new file mode 100644 index 000000000000..9bb022a523fe --- /dev/null +++ b/arch/powerpc/configs/mpc85xx_cds_defconfig | |||
@@ -0,0 +1,846 @@ | |||
1 | # | ||
2 | # Automatically generated make config: don't edit | ||
3 | # Linux kernel version: 2.6.16 | ||
4 | # Sun Apr 2 11:23:42 2006 | ||
5 | # | ||
6 | # CONFIG_PPC64 is not set | ||
7 | CONFIG_PPC32=y | ||
8 | CONFIG_PPC_MERGE=y | ||
9 | CONFIG_MMU=y | ||
10 | CONFIG_GENERIC_HARDIRQS=y | ||
11 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | ||
12 | CONFIG_GENERIC_HWEIGHT=y | ||
13 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
14 | CONFIG_PPC=y | ||
15 | CONFIG_EARLY_PRINTK=y | ||
16 | CONFIG_GENERIC_NVRAM=y | ||
17 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | ||
18 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y | ||
19 | CONFIG_PPC_OF=y | ||
20 | CONFIG_PPC_UDBG_16550=y | ||
21 | # CONFIG_GENERIC_TBSYNC is not set | ||
22 | # CONFIG_DEFAULT_UIMAGE is not set | ||
23 | |||
24 | # | ||
25 | # Processor support | ||
26 | # | ||
27 | # CONFIG_CLASSIC32 is not set | ||
28 | # CONFIG_PPC_52xx is not set | ||
29 | # CONFIG_PPC_82xx is not set | ||
30 | # CONFIG_PPC_83xx is not set | ||
31 | CONFIG_PPC_85xx=y | ||
32 | # CONFIG_40x is not set | ||
33 | # CONFIG_44x is not set | ||
34 | # CONFIG_8xx is not set | ||
35 | # CONFIG_E200 is not set | ||
36 | CONFIG_85xx=y | ||
37 | CONFIG_E500=y | ||
38 | CONFIG_BOOKE=y | ||
39 | CONFIG_FSL_BOOKE=y | ||
40 | # CONFIG_PHYS_64BIT is not set | ||
41 | CONFIG_SPE=y | ||
42 | |||
43 | # | ||
44 | # Code maturity level options | ||
45 | # | ||
46 | CONFIG_EXPERIMENTAL=y | ||
47 | CONFIG_BROKEN_ON_SMP=y | ||
48 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
49 | |||
50 | # | ||
51 | # General setup | ||
52 | # | ||
53 | CONFIG_LOCALVERSION="" | ||
54 | CONFIG_LOCALVERSION_AUTO=y | ||
55 | CONFIG_SWAP=y | ||
56 | CONFIG_SYSVIPC=y | ||
57 | # CONFIG_POSIX_MQUEUE is not set | ||
58 | # CONFIG_BSD_PROCESS_ACCT is not set | ||
59 | CONFIG_SYSCTL=y | ||
60 | # CONFIG_AUDIT is not set | ||
61 | # CONFIG_IKCONFIG is not set | ||
62 | # CONFIG_RELAY is not set | ||
63 | CONFIG_INITRAMFS_SOURCE="" | ||
64 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||
65 | CONFIG_EMBEDDED=y | ||
66 | CONFIG_KALLSYMS=y | ||
67 | # CONFIG_KALLSYMS_ALL is not set | ||
68 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | ||
69 | CONFIG_HOTPLUG=y | ||
70 | CONFIG_PRINTK=y | ||
71 | CONFIG_BUG=y | ||
72 | CONFIG_ELF_CORE=y | ||
73 | CONFIG_BASE_FULL=y | ||
74 | CONFIG_FUTEX=y | ||
75 | CONFIG_EPOLL=y | ||
76 | CONFIG_SHMEM=y | ||
77 | CONFIG_SLAB=y | ||
78 | # CONFIG_TINY_SHMEM is not set | ||
79 | CONFIG_BASE_SMALL=0 | ||
80 | # CONFIG_SLOB is not set | ||
81 | |||
82 | # | ||
83 | # Loadable module support | ||
84 | # | ||
85 | # CONFIG_MODULES is not set | ||
86 | |||
87 | # | ||
88 | # Block layer | ||
89 | # | ||
90 | # CONFIG_LBD is not set | ||
91 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
92 | # CONFIG_LSF is not set | ||
93 | |||
94 | # | ||
95 | # IO Schedulers | ||
96 | # | ||
97 | CONFIG_IOSCHED_NOOP=y | ||
98 | CONFIG_IOSCHED_AS=y | ||
99 | CONFIG_IOSCHED_DEADLINE=y | ||
100 | CONFIG_IOSCHED_CFQ=y | ||
101 | CONFIG_DEFAULT_AS=y | ||
102 | # CONFIG_DEFAULT_DEADLINE is not set | ||
103 | # CONFIG_DEFAULT_CFQ is not set | ||
104 | # CONFIG_DEFAULT_NOOP is not set | ||
105 | CONFIG_DEFAULT_IOSCHED="anticipatory" | ||
106 | CONFIG_MPIC=y | ||
107 | # CONFIG_WANT_EARLY_SERIAL is not set | ||
108 | |||
109 | # | ||
110 | # Platform support | ||
111 | # | ||
112 | # CONFIG_MPC8540_ADS is not set | ||
113 | CONFIG_MPC85xx_CDS=y | ||
114 | CONFIG_MPC8540=y | ||
115 | CONFIG_PPC_INDIRECT_PCI_BE=y | ||
116 | |||
117 | # | ||
118 | # Kernel options | ||
119 | # | ||
120 | # CONFIG_HIGHMEM is not set | ||
121 | # CONFIG_HZ_100 is not set | ||
122 | CONFIG_HZ_250=y | ||
123 | # CONFIG_HZ_1000 is not set | ||
124 | CONFIG_HZ=250 | ||
125 | CONFIG_PREEMPT_NONE=y | ||
126 | # CONFIG_PREEMPT_VOLUNTARY is not set | ||
127 | # CONFIG_PREEMPT is not set | ||
128 | CONFIG_BINFMT_ELF=y | ||
129 | CONFIG_BINFMT_MISC=y | ||
130 | CONFIG_MATH_EMULATION=y | ||
131 | CONFIG_ARCH_FLATMEM_ENABLE=y | ||
132 | CONFIG_SELECT_MEMORY_MODEL=y | ||
133 | CONFIG_FLATMEM_MANUAL=y | ||
134 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
135 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
136 | CONFIG_FLATMEM=y | ||
137 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
138 | # CONFIG_SPARSEMEM_STATIC is not set | ||
139 | CONFIG_SPLIT_PTLOCK_CPUS=4 | ||
140 | CONFIG_PROC_DEVICETREE=y | ||
141 | # CONFIG_CMDLINE_BOOL is not set | ||
142 | # CONFIG_PM is not set | ||
143 | # CONFIG_SOFTWARE_SUSPEND is not set | ||
144 | # CONFIG_SECCOMP is not set | ||
145 | CONFIG_ISA_DMA_API=y | ||
146 | |||
147 | # | ||
148 | # Bus options | ||
149 | # | ||
150 | CONFIG_PPC_I8259=y | ||
151 | CONFIG_PPC_INDIRECT_PCI=y | ||
152 | CONFIG_FSL_SOC=y | ||
153 | CONFIG_PCI=y | ||
154 | CONFIG_PCI_DOMAINS=y | ||
155 | # CONFIG_PCI_DEBUG is not set | ||
156 | |||
157 | # | ||
158 | # PCCARD (PCMCIA/CardBus) support | ||
159 | # | ||
160 | # CONFIG_PCCARD is not set | ||
161 | |||
162 | # | ||
163 | # PCI Hotplug Support | ||
164 | # | ||
165 | # CONFIG_HOTPLUG_PCI is not set | ||
166 | |||
167 | # | ||
168 | # Advanced setup | ||
169 | # | ||
170 | # CONFIG_ADVANCED_OPTIONS is not set | ||
171 | |||
172 | # | ||
173 | # Default settings for advanced configuration options are used | ||
174 | # | ||
175 | CONFIG_HIGHMEM_START=0xfe000000 | ||
176 | CONFIG_LOWMEM_SIZE=0x30000000 | ||
177 | CONFIG_KERNEL_START=0xc0000000 | ||
178 | CONFIG_TASK_SIZE=0x80000000 | ||
179 | CONFIG_BOOT_LOAD=0x00800000 | ||
180 | |||
181 | # | ||
182 | # Networking | ||
183 | # | ||
184 | CONFIG_NET=y | ||
185 | |||
186 | # | ||
187 | # Networking options | ||
188 | # | ||
189 | # CONFIG_NETDEBUG is not set | ||
190 | CONFIG_PACKET=y | ||
191 | # CONFIG_PACKET_MMAP is not set | ||
192 | CONFIG_UNIX=y | ||
193 | # CONFIG_NET_KEY is not set | ||
194 | CONFIG_INET=y | ||
195 | CONFIG_IP_MULTICAST=y | ||
196 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
197 | CONFIG_IP_FIB_HASH=y | ||
198 | CONFIG_IP_PNP=y | ||
199 | CONFIG_IP_PNP_DHCP=y | ||
200 | CONFIG_IP_PNP_BOOTP=y | ||
201 | # CONFIG_IP_PNP_RARP is not set | ||
202 | # CONFIG_NET_IPIP is not set | ||
203 | # CONFIG_NET_IPGRE is not set | ||
204 | # CONFIG_IP_MROUTE is not set | ||
205 | # CONFIG_ARPD is not set | ||
206 | CONFIG_SYN_COOKIES=y | ||
207 | # CONFIG_INET_AH is not set | ||
208 | # CONFIG_INET_ESP is not set | ||
209 | # CONFIG_INET_IPCOMP is not set | ||
210 | # CONFIG_INET_XFRM_TUNNEL is not set | ||
211 | # CONFIG_INET_TUNNEL is not set | ||
212 | CONFIG_INET_DIAG=y | ||
213 | CONFIG_INET_TCP_DIAG=y | ||
214 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
215 | CONFIG_TCP_CONG_BIC=y | ||
216 | # CONFIG_IPV6 is not set | ||
217 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
218 | # CONFIG_INET6_TUNNEL is not set | ||
219 | # CONFIG_NETFILTER is not set | ||
220 | |||
221 | # | ||
222 | # DCCP Configuration (EXPERIMENTAL) | ||
223 | # | ||
224 | # CONFIG_IP_DCCP is not set | ||
225 | |||
226 | # | ||
227 | # SCTP Configuration (EXPERIMENTAL) | ||
228 | # | ||
229 | # CONFIG_IP_SCTP is not set | ||
230 | |||
231 | # | ||
232 | # TIPC Configuration (EXPERIMENTAL) | ||
233 | # | ||
234 | # CONFIG_TIPC is not set | ||
235 | # CONFIG_ATM is not set | ||
236 | # CONFIG_BRIDGE is not set | ||
237 | # CONFIG_VLAN_8021Q is not set | ||
238 | # CONFIG_DECNET is not set | ||
239 | # CONFIG_LLC2 is not set | ||
240 | # CONFIG_IPX is not set | ||
241 | # CONFIG_ATALK is not set | ||
242 | # CONFIG_X25 is not set | ||
243 | # CONFIG_LAPB is not set | ||
244 | # CONFIG_NET_DIVERT is not set | ||
245 | # CONFIG_ECONET is not set | ||
246 | # CONFIG_WAN_ROUTER is not set | ||
247 | |||
248 | # | ||
249 | # QoS and/or fair queueing | ||
250 | # | ||
251 | # CONFIG_NET_SCHED is not set | ||
252 | |||
253 | # | ||
254 | # Network testing | ||
255 | # | ||
256 | # CONFIG_NET_PKTGEN is not set | ||
257 | # CONFIG_HAMRADIO is not set | ||
258 | # CONFIG_IRDA is not set | ||
259 | # CONFIG_BT is not set | ||
260 | # CONFIG_IEEE80211 is not set | ||
261 | |||
262 | # | ||
263 | # Device Drivers | ||
264 | # | ||
265 | |||
266 | # | ||
267 | # Generic Driver Options | ||
268 | # | ||
269 | CONFIG_STANDALONE=y | ||
270 | CONFIG_PREVENT_FIRMWARE_BUILD=y | ||
271 | # CONFIG_FW_LOADER is not set | ||
272 | # CONFIG_DEBUG_DRIVER is not set | ||
273 | |||
274 | # | ||
275 | # Connector - unified userspace <-> kernelspace linker | ||
276 | # | ||
277 | # CONFIG_CONNECTOR is not set | ||
278 | |||
279 | # | ||
280 | # Memory Technology Devices (MTD) | ||
281 | # | ||
282 | # CONFIG_MTD is not set | ||
283 | |||
284 | # | ||
285 | # Parallel port support | ||
286 | # | ||
287 | # CONFIG_PARPORT is not set | ||
288 | |||
289 | # | ||
290 | # Plug and Play support | ||
291 | # | ||
292 | |||
293 | # | ||
294 | # Block devices | ||
295 | # | ||
296 | # CONFIG_BLK_DEV_FD is not set | ||
297 | # CONFIG_BLK_CPQ_DA is not set | ||
298 | # CONFIG_BLK_CPQ_CISS_DA is not set | ||
299 | # CONFIG_BLK_DEV_DAC960 is not set | ||
300 | # CONFIG_BLK_DEV_UMEM is not set | ||
301 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
302 | CONFIG_BLK_DEV_LOOP=y | ||
303 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | ||
304 | # CONFIG_BLK_DEV_NBD is not set | ||
305 | # CONFIG_BLK_DEV_SX8 is not set | ||
306 | CONFIG_BLK_DEV_RAM=y | ||
307 | CONFIG_BLK_DEV_RAM_COUNT=16 | ||
308 | CONFIG_BLK_DEV_RAM_SIZE=32768 | ||
309 | CONFIG_BLK_DEV_INITRD=y | ||
310 | # CONFIG_CDROM_PKTCDVD is not set | ||
311 | # CONFIG_ATA_OVER_ETH is not set | ||
312 | |||
313 | # | ||
314 | # ATA/ATAPI/MFM/RLL support | ||
315 | # | ||
316 | CONFIG_IDE=y | ||
317 | CONFIG_BLK_DEV_IDE=y | ||
318 | |||
319 | # | ||
320 | # Please see Documentation/ide.txt for help/info on IDE drives | ||
321 | # | ||
322 | # CONFIG_BLK_DEV_IDE_SATA is not set | ||
323 | # CONFIG_BLK_DEV_IDEDISK is not set | ||
324 | # CONFIG_IDEDISK_MULTI_MODE is not set | ||
325 | # CONFIG_BLK_DEV_IDECD is not set | ||
326 | # CONFIG_BLK_DEV_IDETAPE is not set | ||
327 | # CONFIG_BLK_DEV_IDEFLOPPY is not set | ||
328 | # CONFIG_IDE_TASK_IOCTL is not set | ||
329 | |||
330 | # | ||
331 | # IDE chipset support/bugfixes | ||
332 | # | ||
333 | CONFIG_IDE_GENERIC=y | ||
334 | CONFIG_BLK_DEV_IDEPCI=y | ||
335 | CONFIG_IDEPCI_SHARE_IRQ=y | ||
336 | # CONFIG_BLK_DEV_OFFBOARD is not set | ||
337 | CONFIG_BLK_DEV_GENERIC=y | ||
338 | # CONFIG_BLK_DEV_OPTI621 is not set | ||
339 | # CONFIG_BLK_DEV_SL82C105 is not set | ||
340 | CONFIG_BLK_DEV_IDEDMA_PCI=y | ||
341 | # CONFIG_BLK_DEV_IDEDMA_FORCED is not set | ||
342 | # CONFIG_IDEDMA_PCI_AUTO is not set | ||
343 | # CONFIG_BLK_DEV_AEC62XX is not set | ||
344 | # CONFIG_BLK_DEV_ALI15X3 is not set | ||
345 | # CONFIG_BLK_DEV_AMD74XX is not set | ||
346 | # CONFIG_BLK_DEV_CMD64X is not set | ||
347 | # CONFIG_BLK_DEV_TRIFLEX is not set | ||
348 | # CONFIG_BLK_DEV_CY82C693 is not set | ||
349 | # CONFIG_BLK_DEV_CS5520 is not set | ||
350 | # CONFIG_BLK_DEV_CS5530 is not set | ||
351 | # CONFIG_BLK_DEV_HPT34X is not set | ||
352 | # CONFIG_BLK_DEV_HPT366 is not set | ||
353 | # CONFIG_BLK_DEV_SC1200 is not set | ||
354 | # CONFIG_BLK_DEV_PIIX is not set | ||
355 | # CONFIG_BLK_DEV_IT821X is not set | ||
356 | # CONFIG_BLK_DEV_NS87415 is not set | ||
357 | # CONFIG_BLK_DEV_PDC202XX_OLD is not set | ||
358 | # CONFIG_BLK_DEV_PDC202XX_NEW is not set | ||
359 | # CONFIG_BLK_DEV_SVWKS is not set | ||
360 | # CONFIG_BLK_DEV_SIIMAGE is not set | ||
361 | # CONFIG_BLK_DEV_SLC90E66 is not set | ||
362 | # CONFIG_BLK_DEV_TRM290 is not set | ||
363 | CONFIG_BLK_DEV_VIA82CXXX=y | ||
364 | # CONFIG_IDE_ARM is not set | ||
365 | CONFIG_BLK_DEV_IDEDMA=y | ||
366 | # CONFIG_IDEDMA_IVB is not set | ||
367 | # CONFIG_IDEDMA_AUTO is not set | ||
368 | # CONFIG_BLK_DEV_HD is not set | ||
369 | |||
370 | # | ||
371 | # SCSI device support | ||
372 | # | ||
373 | # CONFIG_RAID_ATTRS is not set | ||
374 | # CONFIG_SCSI is not set | ||
375 | |||
376 | # | ||
377 | # Multi-device support (RAID and LVM) | ||
378 | # | ||
379 | # CONFIG_MD is not set | ||
380 | |||
381 | # | ||
382 | # Fusion MPT device support | ||
383 | # | ||
384 | # CONFIG_FUSION is not set | ||
385 | |||
386 | # | ||
387 | # IEEE 1394 (FireWire) support | ||
388 | # | ||
389 | # CONFIG_IEEE1394 is not set | ||
390 | |||
391 | # | ||
392 | # I2O device support | ||
393 | # | ||
394 | # CONFIG_I2O is not set | ||
395 | |||
396 | # | ||
397 | # Macintosh device drivers | ||
398 | # | ||
399 | # CONFIG_WINDFARM is not set | ||
400 | |||
401 | # | ||
402 | # Network device support | ||
403 | # | ||
404 | CONFIG_NETDEVICES=y | ||
405 | # CONFIG_DUMMY is not set | ||
406 | # CONFIG_BONDING is not set | ||
407 | # CONFIG_EQUALIZER is not set | ||
408 | # CONFIG_TUN is not set | ||
409 | |||
410 | # | ||
411 | # ARCnet devices | ||
412 | # | ||
413 | # CONFIG_ARCNET is not set | ||
414 | |||
415 | # | ||
416 | # PHY device support | ||
417 | # | ||
418 | CONFIG_PHYLIB=y | ||
419 | |||
420 | # | ||
421 | # MII PHY device drivers | ||
422 | # | ||
423 | # CONFIG_MARVELL_PHY is not set | ||
424 | # CONFIG_DAVICOM_PHY is not set | ||
425 | # CONFIG_QSEMI_PHY is not set | ||
426 | # CONFIG_LXT_PHY is not set | ||
427 | # CONFIG_CICADA_PHY is not set | ||
428 | |||
429 | # | ||
430 | # Ethernet (10 or 100Mbit) | ||
431 | # | ||
432 | CONFIG_NET_ETHERNET=y | ||
433 | CONFIG_MII=y | ||
434 | # CONFIG_HAPPYMEAL is not set | ||
435 | # CONFIG_SUNGEM is not set | ||
436 | # CONFIG_CASSINI is not set | ||
437 | # CONFIG_NET_VENDOR_3COM is not set | ||
438 | |||
439 | # | ||
440 | # Tulip family network device support | ||
441 | # | ||
442 | # CONFIG_NET_TULIP is not set | ||
443 | # CONFIG_HP100 is not set | ||
444 | # CONFIG_NET_PCI is not set | ||
445 | |||
446 | # | ||
447 | # Ethernet (1000 Mbit) | ||
448 | # | ||
449 | # CONFIG_ACENIC is not set | ||
450 | # CONFIG_DL2K is not set | ||
451 | CONFIG_E1000=y | ||
452 | CONFIG_E1000_NAPI=y | ||
453 | # CONFIG_E1000_DISABLE_PACKET_SPLIT is not set | ||
454 | # CONFIG_NS83820 is not set | ||
455 | # CONFIG_HAMACHI is not set | ||
456 | # CONFIG_YELLOWFIN is not set | ||
457 | # CONFIG_R8169 is not set | ||
458 | # CONFIG_SIS190 is not set | ||
459 | # CONFIG_SKGE is not set | ||
460 | # CONFIG_SKY2 is not set | ||
461 | # CONFIG_SK98LIN is not set | ||
462 | # CONFIG_TIGON3 is not set | ||
463 | # CONFIG_BNX2 is not set | ||
464 | CONFIG_GIANFAR=y | ||
465 | CONFIG_GFAR_NAPI=y | ||
466 | |||
467 | # | ||
468 | # Ethernet (10000 Mbit) | ||
469 | # | ||
470 | # CONFIG_CHELSIO_T1 is not set | ||
471 | # CONFIG_IXGB is not set | ||
472 | # CONFIG_S2IO is not set | ||
473 | |||
474 | # | ||
475 | # Token Ring devices | ||
476 | # | ||
477 | # CONFIG_TR is not set | ||
478 | |||
479 | # | ||
480 | # Wireless LAN (non-hamradio) | ||
481 | # | ||
482 | # CONFIG_NET_RADIO is not set | ||
483 | |||
484 | # | ||
485 | # Wan interfaces | ||
486 | # | ||
487 | # CONFIG_WAN is not set | ||
488 | # CONFIG_FDDI is not set | ||
489 | # CONFIG_HIPPI is not set | ||
490 | # CONFIG_PPP is not set | ||
491 | # CONFIG_SLIP is not set | ||
492 | # CONFIG_SHAPER is not set | ||
493 | # CONFIG_NETCONSOLE is not set | ||
494 | # CONFIG_NETPOLL is not set | ||
495 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
496 | |||
497 | # | ||
498 | # ISDN subsystem | ||
499 | # | ||
500 | # CONFIG_ISDN is not set | ||
501 | |||
502 | # | ||
503 | # Telephony Support | ||
504 | # | ||
505 | # CONFIG_PHONE is not set | ||
506 | |||
507 | # | ||
508 | # Input device support | ||
509 | # | ||
510 | CONFIG_INPUT=y | ||
511 | |||
512 | # | ||
513 | # Userland interfaces | ||
514 | # | ||
515 | # CONFIG_INPUT_MOUSEDEV is not set | ||
516 | # CONFIG_INPUT_JOYDEV is not set | ||
517 | # CONFIG_INPUT_TSDEV is not set | ||
518 | # CONFIG_INPUT_EVDEV is not set | ||
519 | # CONFIG_INPUT_EVBUG is not set | ||
520 | |||
521 | # | ||
522 | # Input Device Drivers | ||
523 | # | ||
524 | # CONFIG_INPUT_KEYBOARD is not set | ||
525 | # CONFIG_INPUT_MOUSE is not set | ||
526 | # CONFIG_INPUT_JOYSTICK is not set | ||
527 | # CONFIG_INPUT_TOUCHSCREEN is not set | ||
528 | # CONFIG_INPUT_MISC is not set | ||
529 | |||
530 | # | ||
531 | # Hardware I/O ports | ||
532 | # | ||
533 | # CONFIG_SERIO is not set | ||
534 | # CONFIG_GAMEPORT is not set | ||
535 | |||
536 | # | ||
537 | # Character devices | ||
538 | # | ||
539 | # CONFIG_VT is not set | ||
540 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
541 | |||
542 | # | ||
543 | # Serial drivers | ||
544 | # | ||
545 | CONFIG_SERIAL_8250=y | ||
546 | CONFIG_SERIAL_8250_CONSOLE=y | ||
547 | CONFIG_SERIAL_8250_PCI=y | ||
548 | CONFIG_SERIAL_8250_NR_UARTS=4 | ||
549 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | ||
550 | # CONFIG_SERIAL_8250_EXTENDED is not set | ||
551 | |||
552 | # | ||
553 | # Non-8250 serial port support | ||
554 | # | ||
555 | CONFIG_SERIAL_CORE=y | ||
556 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
557 | # CONFIG_SERIAL_JSM is not set | ||
558 | CONFIG_UNIX98_PTYS=y | ||
559 | CONFIG_LEGACY_PTYS=y | ||
560 | CONFIG_LEGACY_PTY_COUNT=256 | ||
561 | |||
562 | # | ||
563 | # IPMI | ||
564 | # | ||
565 | # CONFIG_IPMI_HANDLER is not set | ||
566 | |||
567 | # | ||
568 | # Watchdog Cards | ||
569 | # | ||
570 | # CONFIG_WATCHDOG is not set | ||
571 | # CONFIG_NVRAM is not set | ||
572 | CONFIG_GEN_RTC=y | ||
573 | # CONFIG_GEN_RTC_X is not set | ||
574 | # CONFIG_DTLK is not set | ||
575 | # CONFIG_R3964 is not set | ||
576 | # CONFIG_APPLICOM is not set | ||
577 | |||
578 | # | ||
579 | # Ftape, the floppy tape device driver | ||
580 | # | ||
581 | # CONFIG_AGP is not set | ||
582 | # CONFIG_DRM is not set | ||
583 | # CONFIG_RAW_DRIVER is not set | ||
584 | |||
585 | # | ||
586 | # TPM devices | ||
587 | # | ||
588 | # CONFIG_TCG_TPM is not set | ||
589 | # CONFIG_TELCLOCK is not set | ||
590 | |||
591 | # | ||
592 | # I2C support | ||
593 | # | ||
594 | # CONFIG_I2C is not set | ||
595 | |||
596 | # | ||
597 | # SPI support | ||
598 | # | ||
599 | # CONFIG_SPI is not set | ||
600 | # CONFIG_SPI_MASTER is not set | ||
601 | |||
602 | # | ||
603 | # Dallas's 1-wire bus | ||
604 | # | ||
605 | # CONFIG_W1 is not set | ||
606 | |||
607 | # | ||
608 | # Hardware Monitoring support | ||
609 | # | ||
610 | CONFIG_HWMON=y | ||
611 | # CONFIG_HWMON_VID is not set | ||
612 | # CONFIG_SENSORS_F71805F is not set | ||
613 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
614 | |||
615 | # | ||
616 | # Misc devices | ||
617 | # | ||
618 | |||
619 | # | ||
620 | # Multimedia devices | ||
621 | # | ||
622 | # CONFIG_VIDEO_DEV is not set | ||
623 | |||
624 | # | ||
625 | # Digital Video Broadcasting Devices | ||
626 | # | ||
627 | # CONFIG_DVB is not set | ||
628 | |||
629 | # | ||
630 | # Graphics support | ||
631 | # | ||
632 | # CONFIG_FB is not set | ||
633 | |||
634 | # | ||
635 | # Sound | ||
636 | # | ||
637 | # CONFIG_SOUND is not set | ||
638 | |||
639 | # | ||
640 | # USB support | ||
641 | # | ||
642 | CONFIG_USB_ARCH_HAS_HCD=y | ||
643 | CONFIG_USB_ARCH_HAS_OHCI=y | ||
644 | CONFIG_USB_ARCH_HAS_EHCI=y | ||
645 | # CONFIG_USB is not set | ||
646 | |||
647 | # | ||
648 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | ||
649 | # | ||
650 | |||
651 | # | ||
652 | # USB Gadget Support | ||
653 | # | ||
654 | # CONFIG_USB_GADGET is not set | ||
655 | |||
656 | # | ||
657 | # MMC/SD Card support | ||
658 | # | ||
659 | # CONFIG_MMC is not set | ||
660 | |||
661 | # | ||
662 | # LED devices | ||
663 | # | ||
664 | # CONFIG_NEW_LEDS is not set | ||
665 | |||
666 | # | ||
667 | # InfiniBand support | ||
668 | # | ||
669 | # CONFIG_INFINIBAND is not set | ||
670 | |||
671 | # | ||
672 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | ||
673 | # | ||
674 | |||
675 | # | ||
676 | # Real Time Clock | ||
677 | # | ||
678 | # CONFIG_RTC_CLASS is not set | ||
679 | |||
680 | # | ||
681 | # File systems | ||
682 | # | ||
683 | CONFIG_EXT2_FS=y | ||
684 | # CONFIG_EXT2_FS_XATTR is not set | ||
685 | # CONFIG_EXT2_FS_XIP is not set | ||
686 | CONFIG_EXT3_FS=y | ||
687 | CONFIG_EXT3_FS_XATTR=y | ||
688 | # CONFIG_EXT3_FS_POSIX_ACL is not set | ||
689 | # CONFIG_EXT3_FS_SECURITY is not set | ||
690 | CONFIG_JBD=y | ||
691 | # CONFIG_JBD_DEBUG is not set | ||
692 | CONFIG_FS_MBCACHE=y | ||
693 | # CONFIG_REISERFS_FS is not set | ||
694 | # CONFIG_JFS_FS is not set | ||
695 | # CONFIG_FS_POSIX_ACL is not set | ||
696 | # CONFIG_XFS_FS is not set | ||
697 | # CONFIG_OCFS2_FS is not set | ||
698 | # CONFIG_MINIX_FS is not set | ||
699 | # CONFIG_ROMFS_FS is not set | ||
700 | CONFIG_INOTIFY=y | ||
701 | # CONFIG_QUOTA is not set | ||
702 | CONFIG_DNOTIFY=y | ||
703 | # CONFIG_AUTOFS_FS is not set | ||
704 | # CONFIG_AUTOFS4_FS is not set | ||
705 | # CONFIG_FUSE_FS is not set | ||
706 | |||
707 | # | ||
708 | # CD-ROM/DVD Filesystems | ||
709 | # | ||
710 | # CONFIG_ISO9660_FS is not set | ||
711 | # CONFIG_UDF_FS is not set | ||
712 | |||
713 | # | ||
714 | # DOS/FAT/NT Filesystems | ||
715 | # | ||
716 | # CONFIG_MSDOS_FS is not set | ||
717 | # CONFIG_VFAT_FS is not set | ||
718 | # CONFIG_NTFS_FS is not set | ||
719 | |||
720 | # | ||
721 | # Pseudo filesystems | ||
722 | # | ||
723 | CONFIG_PROC_FS=y | ||
724 | CONFIG_PROC_KCORE=y | ||
725 | CONFIG_SYSFS=y | ||
726 | CONFIG_TMPFS=y | ||
727 | # CONFIG_HUGETLB_PAGE is not set | ||
728 | CONFIG_RAMFS=y | ||
729 | # CONFIG_CONFIGFS_FS is not set | ||
730 | |||
731 | # | ||
732 | # Miscellaneous filesystems | ||
733 | # | ||
734 | # CONFIG_ADFS_FS is not set | ||
735 | # CONFIG_AFFS_FS is not set | ||
736 | # CONFIG_HFS_FS is not set | ||
737 | # CONFIG_HFSPLUS_FS is not set | ||
738 | # CONFIG_BEFS_FS is not set | ||
739 | # CONFIG_BFS_FS is not set | ||
740 | # CONFIG_EFS_FS is not set | ||
741 | # CONFIG_CRAMFS is not set | ||
742 | # CONFIG_VXFS_FS is not set | ||
743 | # CONFIG_HPFS_FS is not set | ||
744 | # CONFIG_QNX4FS_FS is not set | ||
745 | # CONFIG_SYSV_FS is not set | ||
746 | # CONFIG_UFS_FS is not set | ||
747 | |||
748 | # | ||
749 | # Network File Systems | ||
750 | # | ||
751 | CONFIG_NFS_FS=y | ||
752 | # CONFIG_NFS_V3 is not set | ||
753 | # CONFIG_NFS_V4 is not set | ||
754 | # CONFIG_NFS_DIRECTIO is not set | ||
755 | # CONFIG_NFSD is not set | ||
756 | CONFIG_ROOT_NFS=y | ||
757 | CONFIG_LOCKD=y | ||
758 | CONFIG_NFS_COMMON=y | ||
759 | CONFIG_SUNRPC=y | ||
760 | # CONFIG_RPCSEC_GSS_KRB5 is not set | ||
761 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | ||
762 | # CONFIG_SMB_FS is not set | ||
763 | # CONFIG_CIFS is not set | ||
764 | # CONFIG_NCP_FS is not set | ||
765 | # CONFIG_CODA_FS is not set | ||
766 | # CONFIG_AFS_FS is not set | ||
767 | # CONFIG_9P_FS is not set | ||
768 | |||
769 | # | ||
770 | # Partition Types | ||
771 | # | ||
772 | CONFIG_PARTITION_ADVANCED=y | ||
773 | # CONFIG_ACORN_PARTITION is not set | ||
774 | # CONFIG_OSF_PARTITION is not set | ||
775 | # CONFIG_AMIGA_PARTITION is not set | ||
776 | # CONFIG_ATARI_PARTITION is not set | ||
777 | # CONFIG_MAC_PARTITION is not set | ||
778 | # CONFIG_MSDOS_PARTITION is not set | ||
779 | # CONFIG_LDM_PARTITION is not set | ||
780 | # CONFIG_SGI_PARTITION is not set | ||
781 | # CONFIG_ULTRIX_PARTITION is not set | ||
782 | # CONFIG_SUN_PARTITION is not set | ||
783 | # CONFIG_KARMA_PARTITION is not set | ||
784 | # CONFIG_EFI_PARTITION is not set | ||
785 | |||
786 | # | ||
787 | # Native Language Support | ||
788 | # | ||
789 | # CONFIG_NLS is not set | ||
790 | |||
791 | # | ||
792 | # Library routines | ||
793 | # | ||
794 | # CONFIG_CRC_CCITT is not set | ||
795 | # CONFIG_CRC16 is not set | ||
796 | CONFIG_CRC32=y | ||
797 | # CONFIG_LIBCRC32C is not set | ||
798 | |||
799 | # | ||
800 | # Instrumentation Support | ||
801 | # | ||
802 | # CONFIG_PROFILING is not set | ||
803 | |||
804 | # | ||
805 | # Kernel hacking | ||
806 | # | ||
807 | # CONFIG_PRINTK_TIME is not set | ||
808 | # CONFIG_MAGIC_SYSRQ is not set | ||
809 | CONFIG_DEBUG_KERNEL=y | ||
810 | CONFIG_LOG_BUF_SHIFT=14 | ||
811 | CONFIG_DETECT_SOFTLOCKUP=y | ||
812 | # CONFIG_SCHEDSTATS is not set | ||
813 | # CONFIG_DEBUG_SLAB is not set | ||
814 | CONFIG_DEBUG_MUTEXES=y | ||
815 | # CONFIG_DEBUG_SPINLOCK is not set | ||
816 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | ||
817 | # CONFIG_DEBUG_KOBJECT is not set | ||
818 | # CONFIG_DEBUG_INFO is not set | ||
819 | # CONFIG_DEBUG_FS is not set | ||
820 | # CONFIG_DEBUG_VM is not set | ||
821 | # CONFIG_UNWIND_INFO is not set | ||
822 | CONFIG_FORCED_INLINING=y | ||
823 | # CONFIG_RCU_TORTURE_TEST is not set | ||
824 | # CONFIG_DEBUGGER is not set | ||
825 | # CONFIG_BDI_SWITCH is not set | ||
826 | # CONFIG_BOOTX_TEXT is not set | ||
827 | # CONFIG_PPC_EARLY_DEBUG_LPAR is not set | ||
828 | # CONFIG_PPC_EARLY_DEBUG_G5 is not set | ||
829 | # CONFIG_PPC_EARLY_DEBUG_RTAS is not set | ||
830 | # CONFIG_PPC_EARLY_DEBUG_MAPLE is not set | ||
831 | # CONFIG_PPC_EARLY_DEBUG_ISERIES is not set | ||
832 | |||
833 | # | ||
834 | # Security options | ||
835 | # | ||
836 | # CONFIG_KEYS is not set | ||
837 | # CONFIG_SECURITY is not set | ||
838 | |||
839 | # | ||
840 | # Cryptographic options | ||
841 | # | ||
842 | # CONFIG_CRYPTO is not set | ||
843 | |||
844 | # | ||
845 | # Hardware crypto devices | ||
846 | # | ||
diff --git a/arch/powerpc/kernel/crash.c b/arch/powerpc/kernel/crash.c index 778f22fd85d2..dbcb85994f46 100644 --- a/arch/powerpc/kernel/crash.c +++ b/arch/powerpc/kernel/crash.c | |||
@@ -22,6 +22,7 @@ | |||
22 | #include <linux/elf.h> | 22 | #include <linux/elf.h> |
23 | #include <linux/elfcore.h> | 23 | #include <linux/elfcore.h> |
24 | #include <linux/init.h> | 24 | #include <linux/init.h> |
25 | #include <linux/irq.h> | ||
25 | #include <linux/types.h> | 26 | #include <linux/types.h> |
26 | 27 | ||
27 | #include <asm/processor.h> | 28 | #include <asm/processor.h> |
@@ -174,6 +175,8 @@ static void crash_kexec_prepare_cpus(void) | |||
174 | 175 | ||
175 | void default_machine_crash_shutdown(struct pt_regs *regs) | 176 | void default_machine_crash_shutdown(struct pt_regs *regs) |
176 | { | 177 | { |
178 | unsigned int irq; | ||
179 | |||
177 | /* | 180 | /* |
178 | * This function is only called after the system | 181 | * This function is only called after the system |
179 | * has paniced or is otherwise in a critical state. | 182 | * has paniced or is otherwise in a critical state. |
@@ -186,6 +189,16 @@ void default_machine_crash_shutdown(struct pt_regs *regs) | |||
186 | */ | 189 | */ |
187 | local_irq_disable(); | 190 | local_irq_disable(); |
188 | 191 | ||
192 | for_each_irq(irq) { | ||
193 | struct irq_desc *desc = irq_descp(irq); | ||
194 | |||
195 | if (desc->status & IRQ_INPROGRESS) | ||
196 | desc->handler->end(irq); | ||
197 | |||
198 | if (!(desc->status & IRQ_DISABLED)) | ||
199 | desc->handler->disable(irq); | ||
200 | } | ||
201 | |||
189 | if (ppc_md.kexec_cpu_down) | 202 | if (ppc_md.kexec_cpu_down) |
190 | ppc_md.kexec_cpu_down(1, 0); | 203 | ppc_md.kexec_cpu_down(1, 0); |
191 | 204 | ||
diff --git a/arch/powerpc/kernel/iomap.c b/arch/powerpc/kernel/iomap.c index fd8214caedee..a13a93dfc655 100644 --- a/arch/powerpc/kernel/iomap.c +++ b/arch/powerpc/kernel/iomap.c | |||
@@ -106,8 +106,6 @@ EXPORT_SYMBOL(iowrite32_rep); | |||
106 | 106 | ||
107 | void __iomem *ioport_map(unsigned long port, unsigned int len) | 107 | void __iomem *ioport_map(unsigned long port, unsigned int len) |
108 | { | 108 | { |
109 | if (!_IO_IS_VALID(port)) | ||
110 | return NULL; | ||
111 | return (void __iomem *) (port+pci_io_base); | 109 | return (void __iomem *) (port+pci_io_base); |
112 | } | 110 | } |
113 | 111 | ||
diff --git a/arch/powerpc/kernel/pci_64.c b/arch/powerpc/kernel/pci_64.c index 4c4449be81ce..e1b3b3ef1912 100644 --- a/arch/powerpc/kernel/pci_64.c +++ b/arch/powerpc/kernel/pci_64.c | |||
@@ -42,14 +42,6 @@ | |||
42 | unsigned long pci_probe_only = 1; | 42 | unsigned long pci_probe_only = 1; |
43 | int pci_assign_all_buses = 0; | 43 | int pci_assign_all_buses = 0; |
44 | 44 | ||
45 | /* | ||
46 | * legal IO pages under MAX_ISA_PORT. This is to ensure we don't touch | ||
47 | * devices we don't have access to. | ||
48 | */ | ||
49 | unsigned long io_page_mask; | ||
50 | |||
51 | EXPORT_SYMBOL(io_page_mask); | ||
52 | |||
53 | #ifdef CONFIG_PPC_MULTIPLATFORM | 45 | #ifdef CONFIG_PPC_MULTIPLATFORM |
54 | static void fixup_resource(struct resource *res, struct pci_dev *dev); | 46 | static void fixup_resource(struct resource *res, struct pci_dev *dev); |
55 | static void do_bus_setup(struct pci_bus *bus); | 47 | static void do_bus_setup(struct pci_bus *bus); |
@@ -605,7 +597,7 @@ static int __init pcibios_init(void) | |||
605 | iSeries_pcibios_init(); | 597 | iSeries_pcibios_init(); |
606 | #endif | 598 | #endif |
607 | 599 | ||
608 | printk("PCI: Probing PCI hardware\n"); | 600 | printk(KERN_DEBUG "PCI: Probing PCI hardware\n"); |
609 | 601 | ||
610 | /* Scan all of the recorded PCI controllers. */ | 602 | /* Scan all of the recorded PCI controllers. */ |
611 | list_for_each_entry_safe(hose, tmp, &hose_list, list_node) { | 603 | list_for_each_entry_safe(hose, tmp, &hose_list, list_node) { |
@@ -630,14 +622,14 @@ static int __init pcibios_init(void) | |||
630 | /* Cache the location of the ISA bridge (if we have one) */ | 622 | /* Cache the location of the ISA bridge (if we have one) */ |
631 | ppc64_isabridge_dev = pci_get_class(PCI_CLASS_BRIDGE_ISA << 8, NULL); | 623 | ppc64_isabridge_dev = pci_get_class(PCI_CLASS_BRIDGE_ISA << 8, NULL); |
632 | if (ppc64_isabridge_dev != NULL) | 624 | if (ppc64_isabridge_dev != NULL) |
633 | printk("ISA bridge at %s\n", pci_name(ppc64_isabridge_dev)); | 625 | printk(KERN_DEBUG "ISA bridge at %s\n", pci_name(ppc64_isabridge_dev)); |
634 | 626 | ||
635 | #ifdef CONFIG_PPC_MULTIPLATFORM | 627 | #ifdef CONFIG_PPC_MULTIPLATFORM |
636 | /* map in PCI I/O space */ | 628 | /* map in PCI I/O space */ |
637 | phbs_remap_io(); | 629 | phbs_remap_io(); |
638 | #endif | 630 | #endif |
639 | 631 | ||
640 | printk("PCI: Probing PCI hardware done\n"); | 632 | printk(KERN_DEBUG "PCI: Probing PCI hardware done\n"); |
641 | 633 | ||
642 | return 0; | 634 | return 0; |
643 | } | 635 | } |
@@ -804,7 +796,7 @@ static pgprot_t __pci_mmap_set_pgprot(struct pci_dev *dev, struct resource *rp, | |||
804 | else | 796 | else |
805 | prot |= _PAGE_GUARDED; | 797 | prot |= _PAGE_GUARDED; |
806 | 798 | ||
807 | printk("PCI map for %s:%lx, prot: %lx\n", pci_name(dev), rp->start, | 799 | printk(KERN_DEBUG "PCI map for %s:%lx, prot: %lx\n", pci_name(dev), rp->start, |
808 | prot); | 800 | prot); |
809 | 801 | ||
810 | return __pgprot(prot); | 802 | return __pgprot(prot); |
@@ -1104,8 +1096,6 @@ void __init pci_setup_phb_io(struct pci_controller *hose, int primary) | |||
1104 | pci_process_ISA_OF_ranges(isa_dn, hose->io_base_phys, | 1096 | pci_process_ISA_OF_ranges(isa_dn, hose->io_base_phys, |
1105 | hose->io_base_virt); | 1097 | hose->io_base_virt); |
1106 | of_node_put(isa_dn); | 1098 | of_node_put(isa_dn); |
1107 | /* Allow all IO */ | ||
1108 | io_page_mask = -1; | ||
1109 | } | 1099 | } |
1110 | } | 1100 | } |
1111 | 1101 | ||
@@ -1212,7 +1202,7 @@ int remap_bus_range(struct pci_bus *bus) | |||
1212 | return 1; | 1202 | return 1; |
1213 | if (start_phys == 0) | 1203 | if (start_phys == 0) |
1214 | return 1; | 1204 | return 1; |
1215 | printk("mapping IO %lx -> %lx, size: %lx\n", start_phys, start_virt, size); | 1205 | printk(KERN_DEBUG "mapping IO %lx -> %lx, size: %lx\n", start_phys, start_virt, size); |
1216 | if (__ioremap_explicit(start_phys, start_virt, size, | 1206 | if (__ioremap_explicit(start_phys, start_virt, size, |
1217 | _PAGE_NO_CACHE | _PAGE_GUARDED)) | 1207 | _PAGE_NO_CACHE | _PAGE_GUARDED)) |
1218 | return 1; | 1208 | return 1; |
@@ -1232,27 +1222,13 @@ static void phbs_remap_io(void) | |||
1232 | static void __devinit fixup_resource(struct resource *res, struct pci_dev *dev) | 1222 | static void __devinit fixup_resource(struct resource *res, struct pci_dev *dev) |
1233 | { | 1223 | { |
1234 | struct pci_controller *hose = pci_bus_to_host(dev->bus); | 1224 | struct pci_controller *hose = pci_bus_to_host(dev->bus); |
1235 | unsigned long start, end, mask, offset; | 1225 | unsigned long offset; |
1236 | 1226 | ||
1237 | if (res->flags & IORESOURCE_IO) { | 1227 | if (res->flags & IORESOURCE_IO) { |
1238 | offset = (unsigned long)hose->io_base_virt - pci_io_base; | 1228 | offset = (unsigned long)hose->io_base_virt - pci_io_base; |
1239 | 1229 | ||
1240 | start = res->start += offset; | 1230 | res->start += offset; |
1241 | end = res->end += offset; | 1231 | res->end += offset; |
1242 | |||
1243 | /* Need to allow IO access to pages that are in the | ||
1244 | ISA range */ | ||
1245 | if (start < MAX_ISA_PORT) { | ||
1246 | if (end > MAX_ISA_PORT) | ||
1247 | end = MAX_ISA_PORT; | ||
1248 | |||
1249 | start >>= PAGE_SHIFT; | ||
1250 | end >>= PAGE_SHIFT; | ||
1251 | |||
1252 | /* get the range of pages for the map */ | ||
1253 | mask = ((1 << (end+1)) - 1) ^ ((1 << start) - 1); | ||
1254 | io_page_mask |= mask; | ||
1255 | } | ||
1256 | } else if (res->flags & IORESOURCE_MEM) { | 1232 | } else if (res->flags & IORESOURCE_MEM) { |
1257 | res->start += hose->pci_mem_offset; | 1233 | res->start += hose->pci_mem_offset; |
1258 | res->end += hose->pci_mem_offset; | 1234 | res->end += hose->pci_mem_offset; |
diff --git a/arch/powerpc/kernel/time.c b/arch/powerpc/kernel/time.c index 24e3ad756de0..528e7f84cb67 100644 --- a/arch/powerpc/kernel/time.c +++ b/arch/powerpc/kernel/time.c | |||
@@ -76,7 +76,6 @@ | |||
76 | 76 | ||
77 | /* keep track of when we need to update the rtc */ | 77 | /* keep track of when we need to update the rtc */ |
78 | time_t last_rtc_update; | 78 | time_t last_rtc_update; |
79 | extern int piranha_simulator; | ||
80 | #ifdef CONFIG_PPC_ISERIES | 79 | #ifdef CONFIG_PPC_ISERIES |
81 | unsigned long iSeries_recal_titan = 0; | 80 | unsigned long iSeries_recal_titan = 0; |
82 | unsigned long iSeries_recal_tb = 0; | 81 | unsigned long iSeries_recal_tb = 0; |
@@ -945,9 +944,9 @@ void __init time_init(void) | |||
945 | } else { | 944 | } else { |
946 | /* Normal PowerPC with timebase register */ | 945 | /* Normal PowerPC with timebase register */ |
947 | ppc_md.calibrate_decr(); | 946 | ppc_md.calibrate_decr(); |
948 | printk(KERN_INFO "time_init: decrementer frequency = %lu.%.6lu MHz\n", | 947 | printk(KERN_DEBUG "time_init: decrementer frequency = %lu.%.6lu MHz\n", |
949 | ppc_tb_freq / 1000000, ppc_tb_freq % 1000000); | 948 | ppc_tb_freq / 1000000, ppc_tb_freq % 1000000); |
950 | printk(KERN_INFO "time_init: processor frequency = %lu.%.6lu MHz\n", | 949 | printk(KERN_DEBUG "time_init: processor frequency = %lu.%.6lu MHz\n", |
951 | ppc_proc_freq / 1000000, ppc_proc_freq % 1000000); | 950 | ppc_proc_freq / 1000000, ppc_proc_freq % 1000000); |
952 | tb_last_stamp = tb_last_jiffy = get_tb(); | 951 | tb_last_stamp = tb_last_jiffy = get_tb(); |
953 | } | 952 | } |
@@ -1010,10 +1009,7 @@ void __init time_init(void) | |||
1010 | tb_to_ns_scale = scale; | 1009 | tb_to_ns_scale = scale; |
1011 | tb_to_ns_shift = shift; | 1010 | tb_to_ns_shift = shift; |
1012 | 1011 | ||
1013 | #ifdef CONFIG_PPC_ISERIES | 1012 | tm = get_boot_time(); |
1014 | if (!piranha_simulator) | ||
1015 | #endif | ||
1016 | tm = get_boot_time(); | ||
1017 | 1013 | ||
1018 | write_seqlock_irqsave(&xtime_lock, flags); | 1014 | write_seqlock_irqsave(&xtime_lock, flags); |
1019 | 1015 | ||
diff --git a/arch/powerpc/mm/hash_utils_64.c b/arch/powerpc/mm/hash_utils_64.c index c006d9039633..b43ed92ef471 100644 --- a/arch/powerpc/mm/hash_utils_64.c +++ b/arch/powerpc/mm/hash_utils_64.c | |||
@@ -319,7 +319,7 @@ static void __init htab_init_page_sizes(void) | |||
319 | mmu_virtual_psize = MMU_PAGE_64K; | 319 | mmu_virtual_psize = MMU_PAGE_64K; |
320 | #endif | 320 | #endif |
321 | 321 | ||
322 | printk(KERN_INFO "Page orders: linear mapping = %d, others = %d\n", | 322 | printk(KERN_DEBUG "Page orders: linear mapping = %d, others = %d\n", |
323 | mmu_psize_defs[mmu_linear_psize].shift, | 323 | mmu_psize_defs[mmu_linear_psize].shift, |
324 | mmu_psize_defs[mmu_virtual_psize].shift); | 324 | mmu_psize_defs[mmu_virtual_psize].shift); |
325 | 325 | ||
diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c index 741dd8802d49..69f3b9a20beb 100644 --- a/arch/powerpc/mm/mem.c +++ b/arch/powerpc/mm/mem.c | |||
@@ -299,9 +299,9 @@ void __init paging_init(void) | |||
299 | kmap_prot = PAGE_KERNEL; | 299 | kmap_prot = PAGE_KERNEL; |
300 | #endif /* CONFIG_HIGHMEM */ | 300 | #endif /* CONFIG_HIGHMEM */ |
301 | 301 | ||
302 | printk(KERN_INFO "Top of RAM: 0x%lx, Total RAM: 0x%lx\n", | 302 | printk(KERN_DEBUG "Top of RAM: 0x%lx, Total RAM: 0x%lx\n", |
303 | top_of_ram, total_ram); | 303 | top_of_ram, total_ram); |
304 | printk(KERN_INFO "Memory hole size: %ldMB\n", | 304 | printk(KERN_DEBUG "Memory hole size: %ldMB\n", |
305 | (top_of_ram - total_ram) >> 20); | 305 | (top_of_ram - total_ram) >> 20); |
306 | /* | 306 | /* |
307 | * All pages are DMA-able so we put them all in the DMA zone. | 307 | * All pages are DMA-able so we put them all in the DMA zone. |
@@ -380,7 +380,7 @@ void __init mem_init(void) | |||
380 | totalhigh_pages++; | 380 | totalhigh_pages++; |
381 | } | 381 | } |
382 | totalram_pages += totalhigh_pages; | 382 | totalram_pages += totalhigh_pages; |
383 | printk(KERN_INFO "High memory: %luk\n", | 383 | printk(KERN_DEBUG "High memory: %luk\n", |
384 | totalhigh_pages << (PAGE_SHIFT-10)); | 384 | totalhigh_pages << (PAGE_SHIFT-10)); |
385 | } | 385 | } |
386 | #endif /* CONFIG_HIGHMEM */ | 386 | #endif /* CONFIG_HIGHMEM */ |
diff --git a/arch/powerpc/mm/numa.c b/arch/powerpc/mm/numa.c index 0a335f34974c..ea816c618a7b 100644 --- a/arch/powerpc/mm/numa.c +++ b/arch/powerpc/mm/numa.c | |||
@@ -465,9 +465,9 @@ static void __init setup_nonnuma(void) | |||
465 | unsigned long total_ram = lmb_phys_mem_size(); | 465 | unsigned long total_ram = lmb_phys_mem_size(); |
466 | unsigned int i; | 466 | unsigned int i; |
467 | 467 | ||
468 | printk(KERN_INFO "Top of RAM: 0x%lx, Total RAM: 0x%lx\n", | 468 | printk(KERN_DEBUG "Top of RAM: 0x%lx, Total RAM: 0x%lx\n", |
469 | top_of_ram, total_ram); | 469 | top_of_ram, total_ram); |
470 | printk(KERN_INFO "Memory hole size: %ldMB\n", | 470 | printk(KERN_DEBUG "Memory hole size: %ldMB\n", |
471 | (top_of_ram - total_ram) >> 20); | 471 | (top_of_ram - total_ram) >> 20); |
472 | 472 | ||
473 | for (i = 0; i < lmb.memory.cnt; ++i) | 473 | for (i = 0; i < lmb.memory.cnt; ++i) |
@@ -485,7 +485,7 @@ void __init dump_numa_cpu_topology(void) | |||
485 | return; | 485 | return; |
486 | 486 | ||
487 | for_each_online_node(node) { | 487 | for_each_online_node(node) { |
488 | printk(KERN_INFO "Node %d CPUs:", node); | 488 | printk(KERN_DEBUG "Node %d CPUs:", node); |
489 | 489 | ||
490 | count = 0; | 490 | count = 0; |
491 | /* | 491 | /* |
@@ -521,7 +521,7 @@ static void __init dump_numa_memory_topology(void) | |||
521 | for_each_online_node(node) { | 521 | for_each_online_node(node) { |
522 | unsigned long i; | 522 | unsigned long i; |
523 | 523 | ||
524 | printk(KERN_INFO "Node %d Memory:", node); | 524 | printk(KERN_DEBUG "Node %d Memory:", node); |
525 | 525 | ||
526 | count = 0; | 526 | count = 0; |
527 | 527 | ||
diff --git a/arch/powerpc/oprofile/common.c b/arch/powerpc/oprofile/common.c index 5b1de7e8041e..38a2f9c17187 100644 --- a/arch/powerpc/oprofile/common.c +++ b/arch/powerpc/oprofile/common.c | |||
@@ -162,7 +162,7 @@ int __init oprofile_arch_init(struct oprofile_operations *ops) | |||
162 | ops->stop = op_powerpc_stop; | 162 | ops->stop = op_powerpc_stop; |
163 | ops->backtrace = op_powerpc_backtrace; | 163 | ops->backtrace = op_powerpc_backtrace; |
164 | 164 | ||
165 | printk(KERN_INFO "oprofile: using %s performance monitoring.\n", | 165 | printk(KERN_DEBUG "oprofile: using %s performance monitoring.\n", |
166 | ops->cpu_type); | 166 | ops->cpu_type); |
167 | 167 | ||
168 | return 0; | 168 | return 0; |
diff --git a/arch/powerpc/platforms/85xx/Kconfig b/arch/powerpc/platforms/85xx/Kconfig index 06e371282f57..454fc53289ab 100644 --- a/arch/powerpc/platforms/85xx/Kconfig +++ b/arch/powerpc/platforms/85xx/Kconfig | |||
@@ -11,13 +11,20 @@ config MPC8540_ADS | |||
11 | help | 11 | help |
12 | This option enables support for the MPC 8540 ADS board | 12 | This option enables support for the MPC 8540 ADS board |
13 | 13 | ||
14 | config MPC85xx_CDS | ||
15 | bool "Freescale MPC85xx CDS" | ||
16 | select DEFAULT_UIMAGE | ||
17 | select PPC_I8259 if PCI | ||
18 | help | ||
19 | This option enables support for the MPC85xx CDS board | ||
20 | |||
14 | endchoice | 21 | endchoice |
15 | 22 | ||
16 | config MPC8540 | 23 | config MPC8540 |
17 | bool | 24 | bool |
18 | select PPC_UDBG_16550 | 25 | select PPC_UDBG_16550 |
19 | select PPC_INDIRECT_PCI | 26 | select PPC_INDIRECT_PCI |
20 | default y if MPC8540_ADS | 27 | default y if MPC8540_ADS || MPC85xx_CDS |
21 | 28 | ||
22 | config PPC_INDIRECT_PCI_BE | 29 | config PPC_INDIRECT_PCI_BE |
23 | bool | 30 | bool |
diff --git a/arch/powerpc/platforms/85xx/Makefile b/arch/powerpc/platforms/85xx/Makefile index ffc4139cb214..7615aa59c78b 100644 --- a/arch/powerpc/platforms/85xx/Makefile +++ b/arch/powerpc/platforms/85xx/Makefile | |||
@@ -3,3 +3,4 @@ | |||
3 | # | 3 | # |
4 | obj-$(CONFIG_PPC_85xx) += misc.o pci.o | 4 | obj-$(CONFIG_PPC_85xx) += misc.o pci.o |
5 | obj-$(CONFIG_MPC8540_ADS) += mpc85xx_ads.o | 5 | obj-$(CONFIG_MPC8540_ADS) += mpc85xx_ads.o |
6 | obj-$(CONFIG_MPC85xx_CDS) += mpc85xx_cds.o | ||
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_cds.c b/arch/powerpc/platforms/85xx/mpc85xx_cds.c new file mode 100644 index 000000000000..18e6e11f7020 --- /dev/null +++ b/arch/powerpc/platforms/85xx/mpc85xx_cds.c | |||
@@ -0,0 +1,359 @@ | |||
1 | /* | ||
2 | * MPC85xx setup and early boot code plus other random bits. | ||
3 | * | ||
4 | * Maintained by Kumar Gala (see MAINTAINERS for contact information) | ||
5 | * | ||
6 | * Copyright 2005 Freescale Semiconductor Inc. | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify it | ||
9 | * under the terms of the GNU General Public License as published by the | ||
10 | * Free Software Foundation; either version 2 of the License, or (at your | ||
11 | * option) any later version. | ||
12 | */ | ||
13 | |||
14 | #include <linux/config.h> | ||
15 | #include <linux/stddef.h> | ||
16 | #include <linux/kernel.h> | ||
17 | #include <linux/init.h> | ||
18 | #include <linux/errno.h> | ||
19 | #include <linux/reboot.h> | ||
20 | #include <linux/pci.h> | ||
21 | #include <linux/kdev_t.h> | ||
22 | #include <linux/major.h> | ||
23 | #include <linux/console.h> | ||
24 | #include <linux/delay.h> | ||
25 | #include <linux/seq_file.h> | ||
26 | #include <linux/root_dev.h> | ||
27 | #include <linux/initrd.h> | ||
28 | #include <linux/module.h> | ||
29 | #include <linux/fsl_devices.h> | ||
30 | |||
31 | #include <asm/system.h> | ||
32 | #include <asm/pgtable.h> | ||
33 | #include <asm/page.h> | ||
34 | #include <asm/atomic.h> | ||
35 | #include <asm/time.h> | ||
36 | #include <asm/io.h> | ||
37 | #include <asm/machdep.h> | ||
38 | #include <asm/ipic.h> | ||
39 | #include <asm/bootinfo.h> | ||
40 | #include <asm/pci-bridge.h> | ||
41 | #include <asm/mpc85xx.h> | ||
42 | #include <asm/irq.h> | ||
43 | #include <mm/mmu_decl.h> | ||
44 | #include <asm/prom.h> | ||
45 | #include <asm/udbg.h> | ||
46 | #include <asm/mpic.h> | ||
47 | #include <asm/i8259.h> | ||
48 | |||
49 | #include <sysdev/fsl_soc.h> | ||
50 | #include "mpc85xx.h" | ||
51 | |||
52 | #ifndef CONFIG_PCI | ||
53 | unsigned long isa_io_base = 0; | ||
54 | unsigned long isa_mem_base = 0; | ||
55 | #endif | ||
56 | |||
57 | static int cds_pci_slot = 2; | ||
58 | static volatile u8 *cadmus; | ||
59 | |||
60 | /* | ||
61 | * Internal interrupts are all Level Sensitive, and Positive Polarity | ||
62 | * | ||
63 | * Note: Likely, this table and the following function should be | ||
64 | * obtained and derived from the OF Device Tree. | ||
65 | */ | ||
66 | static u_char mpc85xx_cds_openpic_initsenses[] __initdata = { | ||
67 | MPC85XX_INTERNAL_IRQ_SENSES, | ||
68 | #if defined(CONFIG_PCI) | ||
69 | (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Ext 0: PCI slot 0 */ | ||
70 | (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* Ext 1: PCI slot 1 */ | ||
71 | (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* Ext 2: PCI slot 2 */ | ||
72 | (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* Ext 3: PCI slot 3 */ | ||
73 | #else | ||
74 | 0x0, /* External 0: */ | ||
75 | 0x0, /* External 1: */ | ||
76 | 0x0, /* External 2: */ | ||
77 | 0x0, /* External 3: */ | ||
78 | #endif | ||
79 | (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* External 5: PHY */ | ||
80 | 0x0, /* External 6: */ | ||
81 | 0x0, /* External 7: */ | ||
82 | 0x0, /* External 8: */ | ||
83 | 0x0, /* External 9: */ | ||
84 | 0x0, /* External 10: */ | ||
85 | #ifdef CONFIG_PCI | ||
86 | (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* Ext 11: PCI2 slot 0 */ | ||
87 | #else | ||
88 | 0x0, /* External 11: */ | ||
89 | #endif | ||
90 | }; | ||
91 | |||
92 | |||
93 | #ifdef CONFIG_PCI | ||
94 | /* | ||
95 | * interrupt routing | ||
96 | */ | ||
97 | int | ||
98 | mpc85xx_map_irq(struct pci_dev *dev, unsigned char idsel, unsigned char pin) | ||
99 | { | ||
100 | struct pci_controller *hose = pci_bus_to_hose(dev->bus->number); | ||
101 | |||
102 | if (!hose->index) | ||
103 | { | ||
104 | /* Handle PCI1 interrupts */ | ||
105 | char pci_irq_table[][4] = | ||
106 | /* | ||
107 | * PCI IDSEL/INTPIN->INTLINE | ||
108 | * A B C D | ||
109 | */ | ||
110 | |||
111 | /* Note IRQ assignment for slots is based on which slot the elysium is | ||
112 | * in -- in this setup elysium is in slot #2 (this PIRQA as first | ||
113 | * interrupt on slot */ | ||
114 | { | ||
115 | { 0, 1, 2, 3 }, /* 16 - PMC */ | ||
116 | { 0, 1, 2, 3 }, /* 17 P2P (Tsi320) */ | ||
117 | { 0, 1, 2, 3 }, /* 18 - Slot 1 */ | ||
118 | { 1, 2, 3, 0 }, /* 19 - Slot 2 */ | ||
119 | { 2, 3, 0, 1 }, /* 20 - Slot 3 */ | ||
120 | { 3, 0, 1, 2 }, /* 21 - Slot 4 */ | ||
121 | }; | ||
122 | |||
123 | const long min_idsel = 16, max_idsel = 21, irqs_per_slot = 4; | ||
124 | int i, j; | ||
125 | |||
126 | for (i = 0; i < 6; i++) | ||
127 | for (j = 0; j < 4; j++) | ||
128 | pci_irq_table[i][j] = | ||
129 | ((pci_irq_table[i][j] + 5 - | ||
130 | cds_pci_slot) & 0x3) + PIRQ0A; | ||
131 | |||
132 | return PCI_IRQ_TABLE_LOOKUP; | ||
133 | } else { | ||
134 | /* Handle PCI2 interrupts (if we have one) */ | ||
135 | char pci_irq_table[][4] = | ||
136 | { | ||
137 | /* | ||
138 | * We only have one slot and one interrupt | ||
139 | * going to PIRQA - PIRQD */ | ||
140 | { PIRQ1A, PIRQ1A, PIRQ1A, PIRQ1A }, /* 21 - slot 0 */ | ||
141 | }; | ||
142 | |||
143 | const long min_idsel = 21, max_idsel = 21, irqs_per_slot = 4; | ||
144 | |||
145 | return PCI_IRQ_TABLE_LOOKUP; | ||
146 | } | ||
147 | } | ||
148 | |||
149 | #define ARCADIA_HOST_BRIDGE_IDSEL 17 | ||
150 | #define ARCADIA_2ND_BRIDGE_IDSEL 3 | ||
151 | |||
152 | extern int mpc85xx_pci2_busno; | ||
153 | |||
154 | int | ||
155 | mpc85xx_exclude_device(u_char bus, u_char devfn) | ||
156 | { | ||
157 | if (bus == 0 && PCI_SLOT(devfn) == 0) | ||
158 | return PCIBIOS_DEVICE_NOT_FOUND; | ||
159 | if (mpc85xx_pci2_busno) | ||
160 | if (bus == (mpc85xx_pci2_busno) && PCI_SLOT(devfn) == 0) | ||
161 | return PCIBIOS_DEVICE_NOT_FOUND; | ||
162 | /* We explicitly do not go past the Tundra 320 Bridge */ | ||
163 | if ((bus == 1) && (PCI_SLOT(devfn) == ARCADIA_2ND_BRIDGE_IDSEL)) | ||
164 | return PCIBIOS_DEVICE_NOT_FOUND; | ||
165 | if ((bus == 0) && (PCI_SLOT(devfn) == ARCADIA_2ND_BRIDGE_IDSEL)) | ||
166 | return PCIBIOS_DEVICE_NOT_FOUND; | ||
167 | else | ||
168 | return PCIBIOS_SUCCESSFUL; | ||
169 | } | ||
170 | |||
171 | void __init | ||
172 | mpc85xx_cds_pcibios_fixup(void) | ||
173 | { | ||
174 | struct pci_dev *dev; | ||
175 | u_char c; | ||
176 | |||
177 | if ((dev = pci_get_device(PCI_VENDOR_ID_VIA, | ||
178 | PCI_DEVICE_ID_VIA_82C586_1, NULL))) { | ||
179 | /* | ||
180 | * U-Boot does not set the enable bits | ||
181 | * for the IDE device. Force them on here. | ||
182 | */ | ||
183 | pci_read_config_byte(dev, 0x40, &c); | ||
184 | c |= 0x03; /* IDE: Chip Enable Bits */ | ||
185 | pci_write_config_byte(dev, 0x40, c); | ||
186 | |||
187 | /* | ||
188 | * Since only primary interface works, force the | ||
189 | * IDE function to standard primary IDE interrupt | ||
190 | * w/ 8259 offset | ||
191 | */ | ||
192 | dev->irq = 14; | ||
193 | pci_write_config_byte(dev, PCI_INTERRUPT_LINE, dev->irq); | ||
194 | pci_dev_put(dev); | ||
195 | } | ||
196 | |||
197 | /* | ||
198 | * Force legacy USB interrupt routing | ||
199 | */ | ||
200 | if ((dev = pci_get_device(PCI_VENDOR_ID_VIA, | ||
201 | PCI_DEVICE_ID_VIA_82C586_2, NULL))) { | ||
202 | dev->irq = 10; | ||
203 | pci_write_config_byte(dev, PCI_INTERRUPT_LINE, 10); | ||
204 | pci_dev_put(dev); | ||
205 | } | ||
206 | |||
207 | if ((dev = pci_get_device(PCI_VENDOR_ID_VIA, | ||
208 | PCI_DEVICE_ID_VIA_82C586_2, dev))) { | ||
209 | dev->irq = 11; | ||
210 | pci_write_config_byte(dev, PCI_INTERRUPT_LINE, 11); | ||
211 | pci_dev_put(dev); | ||
212 | } | ||
213 | } | ||
214 | #endif /* CONFIG_PCI */ | ||
215 | |||
216 | void __init mpc85xx_cds_pic_init(void) | ||
217 | { | ||
218 | struct mpic *mpic1; | ||
219 | phys_addr_t OpenPIC_PAddr; | ||
220 | |||
221 | /* Determine the Physical Address of the OpenPIC regs */ | ||
222 | OpenPIC_PAddr = get_immrbase() + MPC85xx_OPENPIC_OFFSET; | ||
223 | |||
224 | mpic1 = mpic_alloc(OpenPIC_PAddr, | ||
225 | MPIC_PRIMARY | MPIC_WANTS_RESET | MPIC_BIG_ENDIAN, | ||
226 | 4, MPC85xx_OPENPIC_IRQ_OFFSET, 0, 250, | ||
227 | mpc85xx_cds_openpic_initsenses, | ||
228 | sizeof(mpc85xx_cds_openpic_initsenses), " OpenPIC "); | ||
229 | BUG_ON(mpic1 == NULL); | ||
230 | mpic_assign_isu(mpic1, 0, OpenPIC_PAddr + 0x10200); | ||
231 | mpic_assign_isu(mpic1, 1, OpenPIC_PAddr + 0x10280); | ||
232 | mpic_assign_isu(mpic1, 2, OpenPIC_PAddr + 0x10300); | ||
233 | mpic_assign_isu(mpic1, 3, OpenPIC_PAddr + 0x10380); | ||
234 | mpic_assign_isu(mpic1, 4, OpenPIC_PAddr + 0x10400); | ||
235 | mpic_assign_isu(mpic1, 5, OpenPIC_PAddr + 0x10480); | ||
236 | mpic_assign_isu(mpic1, 6, OpenPIC_PAddr + 0x10500); | ||
237 | mpic_assign_isu(mpic1, 7, OpenPIC_PAddr + 0x10580); | ||
238 | |||
239 | /* dummy mappings to get to 48 */ | ||
240 | mpic_assign_isu(mpic1, 8, OpenPIC_PAddr + 0x10600); | ||
241 | mpic_assign_isu(mpic1, 9, OpenPIC_PAddr + 0x10680); | ||
242 | mpic_assign_isu(mpic1, 10, OpenPIC_PAddr + 0x10700); | ||
243 | mpic_assign_isu(mpic1, 11, OpenPIC_PAddr + 0x10780); | ||
244 | |||
245 | /* External ints */ | ||
246 | mpic_assign_isu(mpic1, 12, OpenPIC_PAddr + 0x10000); | ||
247 | mpic_assign_isu(mpic1, 13, OpenPIC_PAddr + 0x10080); | ||
248 | mpic_assign_isu(mpic1, 14, OpenPIC_PAddr + 0x10100); | ||
249 | |||
250 | mpic_init(mpic1); | ||
251 | |||
252 | #ifdef CONFIG_PCI | ||
253 | mpic_setup_cascade(PIRQ0A, i8259_irq_cascade, NULL); | ||
254 | |||
255 | i8259_init(0,0); | ||
256 | #endif | ||
257 | } | ||
258 | |||
259 | |||
260 | /* | ||
261 | * Setup the architecture | ||
262 | */ | ||
263 | static void __init | ||
264 | mpc85xx_cds_setup_arch(void) | ||
265 | { | ||
266 | struct device_node *cpu; | ||
267 | #ifdef CONFIG_PCI | ||
268 | struct device_node *np; | ||
269 | #endif | ||
270 | |||
271 | if (ppc_md.progress) | ||
272 | ppc_md.progress("mpc85xx_cds_setup_arch()", 0); | ||
273 | |||
274 | cpu = of_find_node_by_type(NULL, "cpu"); | ||
275 | if (cpu != 0) { | ||
276 | unsigned int *fp; | ||
277 | |||
278 | fp = (int *)get_property(cpu, "clock-frequency", NULL); | ||
279 | if (fp != 0) | ||
280 | loops_per_jiffy = *fp / HZ; | ||
281 | else | ||
282 | loops_per_jiffy = 500000000 / HZ; | ||
283 | of_node_put(cpu); | ||
284 | } | ||
285 | |||
286 | cadmus = ioremap(CADMUS_BASE, CADMUS_SIZE); | ||
287 | cds_pci_slot = ((cadmus[CM_CSR] >> 6) & 0x3) + 1; | ||
288 | |||
289 | if (ppc_md.progress) { | ||
290 | char buf[40]; | ||
291 | snprintf(buf, 40, "CDS Version = 0x%x in slot %d\n", | ||
292 | cadmus[CM_VER], cds_pci_slot); | ||
293 | ppc_md.progress(buf, 0); | ||
294 | } | ||
295 | |||
296 | #ifdef CONFIG_PCI | ||
297 | for (np = NULL; (np = of_find_node_by_type(np, "pci")) != NULL;) | ||
298 | add_bridge(np); | ||
299 | |||
300 | ppc_md.pcibios_fixup = mpc85xx_cds_pcibios_fixup; | ||
301 | ppc_md.pci_swizzle = common_swizzle; | ||
302 | ppc_md.pci_map_irq = mpc85xx_map_irq; | ||
303 | ppc_md.pci_exclude_device = mpc85xx_exclude_device; | ||
304 | #endif | ||
305 | |||
306 | #ifdef CONFIG_ROOT_NFS | ||
307 | ROOT_DEV = Root_NFS; | ||
308 | #else | ||
309 | ROOT_DEV = Root_HDA1; | ||
310 | #endif | ||
311 | } | ||
312 | |||
313 | |||
314 | void | ||
315 | mpc85xx_cds_show_cpuinfo(struct seq_file *m) | ||
316 | { | ||
317 | uint pvid, svid, phid1; | ||
318 | uint memsize = total_memory; | ||
319 | |||
320 | pvid = mfspr(SPRN_PVR); | ||
321 | svid = mfspr(SPRN_SVR); | ||
322 | |||
323 | seq_printf(m, "Vendor\t\t: Freescale Semiconductor\n"); | ||
324 | seq_printf(m, "Machine\t\t: MPC85xx CDS (0x%x)\n", cadmus[CM_VER]); | ||
325 | seq_printf(m, "PVR\t\t: 0x%x\n", pvid); | ||
326 | seq_printf(m, "SVR\t\t: 0x%x\n", svid); | ||
327 | |||
328 | /* Display cpu Pll setting */ | ||
329 | phid1 = mfspr(SPRN_HID1); | ||
330 | seq_printf(m, "PLL setting\t: 0x%x\n", ((phid1 >> 24) & 0x3f)); | ||
331 | |||
332 | /* Display the amount of memory */ | ||
333 | seq_printf(m, "Memory\t\t: %d MB\n", memsize / (1024 * 1024)); | ||
334 | } | ||
335 | |||
336 | |||
337 | /* | ||
338 | * Called very early, device-tree isn't unflattened | ||
339 | */ | ||
340 | static int __init mpc85xx_cds_probe(void) | ||
341 | { | ||
342 | /* We always match for now, eventually we should look at | ||
343 | * the flat dev tree to ensure this is the board we are | ||
344 | * supposed to run on | ||
345 | */ | ||
346 | return 1; | ||
347 | } | ||
348 | |||
349 | define_machine(mpc85xx_cds) { | ||
350 | .name = "MPC85xx CDS", | ||
351 | .probe = mpc85xx_cds_probe, | ||
352 | .setup_arch = mpc85xx_cds_setup_arch, | ||
353 | .init_IRQ = mpc85xx_cds_pic_init, | ||
354 | .show_cpuinfo = mpc85xx_cds_show_cpuinfo, | ||
355 | .get_irq = mpic_get_irq, | ||
356 | .restart = mpc85xx_restart, | ||
357 | .calibrate_decr = generic_calibrate_decr, | ||
358 | .progress = udbg_progress, | ||
359 | }; | ||
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_cds.h b/arch/powerpc/platforms/85xx/mpc85xx_cds.h new file mode 100644 index 000000000000..671f54ff185a --- /dev/null +++ b/arch/powerpc/platforms/85xx/mpc85xx_cds.h | |||
@@ -0,0 +1,43 @@ | |||
1 | /* | ||
2 | * arch/ppc/platforms/85xx/mpc85xx_cds_common.h | ||
3 | * | ||
4 | * MPC85xx CDS board definitions | ||
5 | * | ||
6 | * Maintainer: Kumar Gala <galak@kernel.crashing.org> | ||
7 | * | ||
8 | * Copyright 2004 Freescale Semiconductor, Inc | ||
9 | * | ||
10 | * This program is free software; you can redistribute it and/or modify it | ||
11 | * under the terms of the GNU General Public License as published by the | ||
12 | * Free Software Foundation; either version 2 of the License, or (at your | ||
13 | * option) any later version. | ||
14 | * | ||
15 | */ | ||
16 | |||
17 | #ifndef __MACH_MPC85XX_CDS_H__ | ||
18 | #define __MACH_MPC85XX_CDS_H__ | ||
19 | |||
20 | /* CADMUS info */ | ||
21 | #define CADMUS_BASE (0xf8004000) | ||
22 | #define CADMUS_SIZE (256) | ||
23 | #define CM_VER (0) | ||
24 | #define CM_CSR (1) | ||
25 | #define CM_RST (2) | ||
26 | |||
27 | /* CDS NVRAM/RTC */ | ||
28 | #define CDS_RTC_ADDR (0xf8000000) | ||
29 | #define CDS_RTC_SIZE (8 * 1024) | ||
30 | |||
31 | /* PCI interrupt controller */ | ||
32 | #define PIRQ0A MPC85xx_IRQ_EXT0 | ||
33 | #define PIRQ0B MPC85xx_IRQ_EXT1 | ||
34 | #define PIRQ0C MPC85xx_IRQ_EXT2 | ||
35 | #define PIRQ0D MPC85xx_IRQ_EXT3 | ||
36 | #define PIRQ1A MPC85xx_IRQ_EXT11 | ||
37 | |||
38 | #define NR_8259_INTS 16 | ||
39 | #define CPM_IRQ_OFFSET NR_8259_INTS | ||
40 | |||
41 | #define MPC85xx_OPENPIC_IRQ_OFFSET 80 | ||
42 | |||
43 | #endif /* __MACH_MPC85XX_CDS_H__ */ | ||
diff --git a/arch/powerpc/platforms/iseries/mf.c b/arch/powerpc/platforms/iseries/mf.c index d771b8ee857d..1a2c2a50f922 100644 --- a/arch/powerpc/platforms/iseries/mf.c +++ b/arch/powerpc/platforms/iseries/mf.c | |||
@@ -45,7 +45,6 @@ | |||
45 | 45 | ||
46 | #include "setup.h" | 46 | #include "setup.h" |
47 | 47 | ||
48 | extern int piranha_simulator; | ||
49 | static int mf_initialized; | 48 | static int mf_initialized; |
50 | 49 | ||
51 | /* | 50 | /* |
@@ -658,7 +657,7 @@ static void mf_clear_src(void) | |||
658 | 657 | ||
659 | void __init mf_display_progress(u16 value) | 658 | void __init mf_display_progress(u16 value) |
660 | { | 659 | { |
661 | if (piranha_simulator || !mf_initialized) | 660 | if (!mf_initialized) |
662 | return; | 661 | return; |
663 | 662 | ||
664 | if (0xFFFF == value) | 663 | if (0xFFFF == value) |
@@ -1295,9 +1294,6 @@ __initcall(mf_proc_init); | |||
1295 | */ | 1294 | */ |
1296 | void iSeries_get_rtc_time(struct rtc_time *rtc_tm) | 1295 | void iSeries_get_rtc_time(struct rtc_time *rtc_tm) |
1297 | { | 1296 | { |
1298 | if (piranha_simulator) | ||
1299 | return; | ||
1300 | |||
1301 | mf_get_rtc(rtc_tm); | 1297 | mf_get_rtc(rtc_tm); |
1302 | rtc_tm->tm_mon--; | 1298 | rtc_tm->tm_mon--; |
1303 | } | 1299 | } |
@@ -1316,9 +1312,6 @@ unsigned long iSeries_get_boot_time(void) | |||
1316 | { | 1312 | { |
1317 | struct rtc_time tm; | 1313 | struct rtc_time tm; |
1318 | 1314 | ||
1319 | if (piranha_simulator) | ||
1320 | return 0; | ||
1321 | |||
1322 | mf_get_boot_rtc(&tm); | 1315 | mf_get_boot_rtc(&tm); |
1323 | return mktime(tm.tm_year + 1900, tm.tm_mon, tm.tm_mday, | 1316 | return mktime(tm.tm_year + 1900, tm.tm_mon, tm.tm_mday, |
1324 | tm.tm_hour, tm.tm_min, tm.tm_sec); | 1317 | tm.tm_hour, tm.tm_min, tm.tm_sec); |
diff --git a/arch/powerpc/platforms/iseries/pci.c b/arch/powerpc/platforms/iseries/pci.c index a19833b880e4..5a61c6fdb33a 100644 --- a/arch/powerpc/platforms/iseries/pci.c +++ b/arch/powerpc/platforms/iseries/pci.c | |||
@@ -45,8 +45,6 @@ | |||
45 | #include "call_pci.h" | 45 | #include "call_pci.h" |
46 | #include "iommu.h" | 46 | #include "iommu.h" |
47 | 47 | ||
48 | extern unsigned long io_page_mask; | ||
49 | |||
50 | /* | 48 | /* |
51 | * Forward declares of prototypes. | 49 | * Forward declares of prototypes. |
52 | */ | 50 | */ |
@@ -277,7 +275,6 @@ void iSeries_pcibios_init(void) | |||
277 | { | 275 | { |
278 | iomm_table_initialize(); | 276 | iomm_table_initialize(); |
279 | find_and_init_phbs(); | 277 | find_and_init_phbs(); |
280 | io_page_mask = -1; | ||
281 | } | 278 | } |
282 | 279 | ||
283 | /* | 280 | /* |
diff --git a/arch/powerpc/platforms/iseries/setup.c b/arch/powerpc/platforms/iseries/setup.c index a6fd9bedb074..3c51448a1855 100644 --- a/arch/powerpc/platforms/iseries/setup.c +++ b/arch/powerpc/platforms/iseries/setup.c | |||
@@ -81,9 +81,6 @@ extern void iSeries_pci_final_fixup(void); | |||
81 | static void iSeries_pci_final_fixup(void) { } | 81 | static void iSeries_pci_final_fixup(void) { } |
82 | #endif | 82 | #endif |
83 | 83 | ||
84 | /* Global Variables */ | ||
85 | int piranha_simulator; | ||
86 | |||
87 | extern int rd_size; /* Defined in drivers/block/rd.c */ | 84 | extern int rd_size; /* Defined in drivers/block/rd.c */ |
88 | extern unsigned long embedded_sysmap_start; | 85 | extern unsigned long embedded_sysmap_start; |
89 | extern unsigned long embedded_sysmap_end; | 86 | extern unsigned long embedded_sysmap_end; |
@@ -340,8 +337,6 @@ static void __init iSeries_init_early(void) | |||
340 | #ifdef CONFIG_SMP | 337 | #ifdef CONFIG_SMP |
341 | smp_init_iSeries(); | 338 | smp_init_iSeries(); |
342 | #endif | 339 | #endif |
343 | if (itLpNaca.xPirEnvironMode == 0) | ||
344 | piranha_simulator = 1; | ||
345 | 340 | ||
346 | /* Associate Lp Event Queue 0 with processor 0 */ | 341 | /* Associate Lp Event Queue 0 with processor 0 */ |
347 | HvCallEvent_setLpEventQueueInterruptProc(0, 0); | 342 | HvCallEvent_setLpEventQueueInterruptProc(0, 0); |
@@ -536,10 +531,10 @@ static void __init iSeries_setup_arch(void) | |||
536 | { | 531 | { |
537 | if (get_lppaca()->shared_proc) { | 532 | if (get_lppaca()->shared_proc) { |
538 | ppc_md.idle_loop = iseries_shared_idle; | 533 | ppc_md.idle_loop = iseries_shared_idle; |
539 | printk(KERN_INFO "Using shared processor idle loop\n"); | 534 | printk(KERN_DEBUG "Using shared processor idle loop\n"); |
540 | } else { | 535 | } else { |
541 | ppc_md.idle_loop = iseries_dedicated_idle; | 536 | ppc_md.idle_loop = iseries_dedicated_idle; |
542 | printk(KERN_INFO "Using dedicated idle loop\n"); | 537 | printk(KERN_DEBUG "Using dedicated idle loop\n"); |
543 | } | 538 | } |
544 | 539 | ||
545 | /* Setup the Lp Event Queue */ | 540 | /* Setup the Lp Event Queue */ |
diff --git a/arch/powerpc/platforms/maple/pci.c b/arch/powerpc/platforms/maple/pci.c index 85d6c93659cc..9a4efc0c3b29 100644 --- a/arch/powerpc/platforms/maple/pci.c +++ b/arch/powerpc/platforms/maple/pci.c | |||
@@ -437,9 +437,6 @@ void __init maple_pci_init(void) | |||
437 | 437 | ||
438 | /* Tell pci.c to not change any resource allocations. */ | 438 | /* Tell pci.c to not change any resource allocations. */ |
439 | pci_probe_only = 1; | 439 | pci_probe_only = 1; |
440 | |||
441 | /* Allow all IO */ | ||
442 | io_page_mask = -1; | ||
443 | } | 440 | } |
444 | 441 | ||
445 | int maple_pci_get_legacy_ide_irq(struct pci_dev *pdev, int channel) | 442 | int maple_pci_get_legacy_ide_irq(struct pci_dev *pdev, int channel) |
diff --git a/arch/powerpc/platforms/maple/setup.c b/arch/powerpc/platforms/maple/setup.c index 24c0aef4ea39..a0505ea48a86 100644 --- a/arch/powerpc/platforms/maple/setup.c +++ b/arch/powerpc/platforms/maple/setup.c | |||
@@ -189,7 +189,7 @@ void __init maple_setup_arch(void) | |||
189 | conswitchp = &dummy_con; | 189 | conswitchp = &dummy_con; |
190 | #endif | 190 | #endif |
191 | 191 | ||
192 | printk(KERN_INFO "Using native/NAP idle loop\n"); | 192 | printk(KERN_DEBUG "Using native/NAP idle loop\n"); |
193 | } | 193 | } |
194 | 194 | ||
195 | /* | 195 | /* |
diff --git a/arch/powerpc/platforms/powermac/feature.c b/arch/powerpc/platforms/powermac/feature.c index a5063cd675c5..85e00cb0006e 100644 --- a/arch/powerpc/platforms/powermac/feature.c +++ b/arch/powerpc/platforms/powermac/feature.c | |||
@@ -2510,7 +2510,7 @@ found: | |||
2510 | if (get_property(np, "flush-on-lock", NULL)) | 2510 | if (get_property(np, "flush-on-lock", NULL)) |
2511 | break; | 2511 | break; |
2512 | powersave_nap = 1; | 2512 | powersave_nap = 1; |
2513 | printk(KERN_INFO "Processor NAP mode on idle enabled.\n"); | 2513 | printk(KERN_DEBUG "Processor NAP mode on idle enabled.\n"); |
2514 | break; | 2514 | break; |
2515 | } | 2515 | } |
2516 | 2516 | ||
diff --git a/arch/powerpc/platforms/powermac/pci.c b/arch/powerpc/platforms/powermac/pci.c index ea179afea632..80035853467b 100644 --- a/arch/powerpc/platforms/powermac/pci.c +++ b/arch/powerpc/platforms/powermac/pci.c | |||
@@ -1068,9 +1068,6 @@ void __init pmac_pci_init(void) | |||
1068 | /* Tell pci.c to not use the common resource allocation mechanism */ | 1068 | /* Tell pci.c to not use the common resource allocation mechanism */ |
1069 | pci_probe_only = 1; | 1069 | pci_probe_only = 1; |
1070 | 1070 | ||
1071 | /* Allow all IO */ | ||
1072 | io_page_mask = -1; | ||
1073 | |||
1074 | #else /* CONFIG_PPC64 */ | 1071 | #else /* CONFIG_PPC64 */ |
1075 | init_p2pbridge(); | 1072 | init_p2pbridge(); |
1076 | fixup_nec_usb2(); | 1073 | fixup_nec_usb2(); |
diff --git a/arch/powerpc/platforms/pseries/eeh_driver.c b/arch/powerpc/platforms/pseries/eeh_driver.c index 1fba695e32e8..2a9eb2630730 100644 --- a/arch/powerpc/platforms/pseries/eeh_driver.c +++ b/arch/powerpc/platforms/pseries/eeh_driver.c | |||
@@ -23,9 +23,8 @@ | |||
23 | * | 23 | * |
24 | */ | 24 | */ |
25 | #include <linux/delay.h> | 25 | #include <linux/delay.h> |
26 | #include <linux/irq.h> | ||
27 | #include <linux/interrupt.h> | 26 | #include <linux/interrupt.h> |
28 | #include <linux/notifier.h> | 27 | #include <linux/irq.h> |
29 | #include <linux/pci.h> | 28 | #include <linux/pci.h> |
30 | #include <asm/eeh.h> | 29 | #include <asm/eeh.h> |
31 | #include <asm/eeh_event.h> | 30 | #include <asm/eeh_event.h> |
@@ -250,7 +249,7 @@ static int eeh_reset_device (struct pci_dn *pe_dn, struct pci_bus *bus) | |||
250 | */ | 249 | */ |
251 | #define MAX_WAIT_FOR_RECOVERY 15 | 250 | #define MAX_WAIT_FOR_RECOVERY 15 |
252 | 251 | ||
253 | void handle_eeh_events (struct eeh_event *event) | 252 | struct pci_dn * handle_eeh_events (struct eeh_event *event) |
254 | { | 253 | { |
255 | struct device_node *frozen_dn; | 254 | struct device_node *frozen_dn; |
256 | struct pci_dn *frozen_pdn; | 255 | struct pci_dn *frozen_pdn; |
@@ -265,7 +264,7 @@ void handle_eeh_events (struct eeh_event *event) | |||
265 | if (!frozen_dn) { | 264 | if (!frozen_dn) { |
266 | printk(KERN_ERR "EEH: Error: Cannot find partition endpoint for %s\n", | 265 | printk(KERN_ERR "EEH: Error: Cannot find partition endpoint for %s\n", |
267 | pci_name(event->dev)); | 266 | pci_name(event->dev)); |
268 | return; | 267 | return NULL; |
269 | } | 268 | } |
270 | 269 | ||
271 | /* There are two different styles for coming up with the PE. | 270 | /* There are two different styles for coming up with the PE. |
@@ -280,7 +279,7 @@ void handle_eeh_events (struct eeh_event *event) | |||
280 | if (!frozen_bus) { | 279 | if (!frozen_bus) { |
281 | printk(KERN_ERR "EEH: Cannot find PCI bus for %s\n", | 280 | printk(KERN_ERR "EEH: Cannot find PCI bus for %s\n", |
282 | frozen_dn->full_name); | 281 | frozen_dn->full_name); |
283 | return; | 282 | return NULL; |
284 | } | 283 | } |
285 | 284 | ||
286 | #if 0 | 285 | #if 0 |
@@ -355,7 +354,7 @@ void handle_eeh_events (struct eeh_event *event) | |||
355 | /* Tell all device drivers that they can resume operations */ | 354 | /* Tell all device drivers that they can resume operations */ |
356 | pci_walk_bus(frozen_bus, eeh_report_resume, NULL); | 355 | pci_walk_bus(frozen_bus, eeh_report_resume, NULL); |
357 | 356 | ||
358 | return; | 357 | return frozen_pdn; |
359 | 358 | ||
360 | excess_failures: | 359 | excess_failures: |
361 | /* | 360 | /* |
@@ -384,6 +383,8 @@ perm_error: | |||
384 | 383 | ||
385 | /* Shut down the device drivers for good. */ | 384 | /* Shut down the device drivers for good. */ |
386 | pcibios_remove_pci_devices(frozen_bus); | 385 | pcibios_remove_pci_devices(frozen_bus); |
386 | |||
387 | return NULL; | ||
387 | } | 388 | } |
388 | 389 | ||
389 | /* ---------- end of file ---------- */ | 390 | /* ---------- end of file ---------- */ |
diff --git a/arch/powerpc/platforms/pseries/eeh_event.c b/arch/powerpc/platforms/pseries/eeh_event.c index a1bda6f96fd1..a0b39640a00f 100644 --- a/arch/powerpc/platforms/pseries/eeh_event.c +++ b/arch/powerpc/platforms/pseries/eeh_event.c | |||
@@ -18,6 +18,7 @@ | |||
18 | * Copyright (c) 2005 Linas Vepstas <linas@linas.org> | 18 | * Copyright (c) 2005 Linas Vepstas <linas@linas.org> |
19 | */ | 19 | */ |
20 | 20 | ||
21 | #include <linux/delay.h> | ||
21 | #include <linux/list.h> | 22 | #include <linux/list.h> |
22 | #include <linux/mutex.h> | 23 | #include <linux/mutex.h> |
23 | #include <linux/pci.h> | 24 | #include <linux/pci.h> |
@@ -56,38 +57,43 @@ static int eeh_event_handler(void * dummy) | |||
56 | { | 57 | { |
57 | unsigned long flags; | 58 | unsigned long flags; |
58 | struct eeh_event *event; | 59 | struct eeh_event *event; |
60 | struct pci_dn *pdn; | ||
59 | 61 | ||
60 | daemonize ("eehd"); | 62 | daemonize ("eehd"); |
63 | set_current_state(TASK_INTERRUPTIBLE); | ||
61 | 64 | ||
62 | while (1) { | 65 | spin_lock_irqsave(&eeh_eventlist_lock, flags); |
63 | set_current_state(TASK_INTERRUPTIBLE); | 66 | event = NULL; |
64 | 67 | ||
65 | spin_lock_irqsave(&eeh_eventlist_lock, flags); | 68 | /* Unqueue the event, get ready to process. */ |
66 | event = NULL; | 69 | if (!list_empty(&eeh_eventlist)) { |
70 | event = list_entry(eeh_eventlist.next, struct eeh_event, list); | ||
71 | list_del(&event->list); | ||
72 | } | ||
73 | spin_unlock_irqrestore(&eeh_eventlist_lock, flags); | ||
67 | 74 | ||
68 | /* Unqueue the event, get ready to process. */ | 75 | if (event == NULL) |
69 | if (!list_empty(&eeh_eventlist)) { | 76 | return 0; |
70 | event = list_entry(eeh_eventlist.next, struct eeh_event, list); | ||
71 | list_del(&event->list); | ||
72 | } | ||
73 | spin_unlock_irqrestore(&eeh_eventlist_lock, flags); | ||
74 | 77 | ||
75 | if (event == NULL) | 78 | /* Serialize processing of EEH events */ |
76 | break; | 79 | mutex_lock(&eeh_event_mutex); |
80 | eeh_mark_slot(event->dn, EEH_MODE_RECOVERING); | ||
77 | 81 | ||
78 | /* Serialize processing of EEH events */ | 82 | printk(KERN_INFO "EEH: Detected PCI bus error on device %s\n", |
79 | mutex_lock(&eeh_event_mutex); | 83 | pci_name(event->dev)); |
80 | eeh_mark_slot(event->dn, EEH_MODE_RECOVERING); | ||
81 | 84 | ||
82 | printk(KERN_INFO "EEH: Detected PCI bus error on device %s\n", | 85 | pdn = handle_eeh_events(event); |
83 | pci_name(event->dev)); | ||
84 | 86 | ||
85 | handle_eeh_events(event); | 87 | eeh_clear_slot(event->dn, EEH_MODE_RECOVERING); |
88 | pci_dev_put(event->dev); | ||
89 | kfree(event); | ||
90 | mutex_unlock(&eeh_event_mutex); | ||
86 | 91 | ||
87 | eeh_clear_slot(event->dn, EEH_MODE_RECOVERING); | 92 | /* If there are no new errors after an hour, clear the counter. */ |
88 | pci_dev_put(event->dev); | 93 | if (pdn && pdn->eeh_freeze_count>0) { |
89 | kfree(event); | 94 | msleep_interruptible (3600*1000); |
90 | mutex_unlock(&eeh_event_mutex); | 95 | if (pdn->eeh_freeze_count>0) |
96 | pdn->eeh_freeze_count--; | ||
91 | } | 97 | } |
92 | 98 | ||
93 | return 0; | 99 | return 0; |
diff --git a/arch/powerpc/platforms/pseries/rtasd.c b/arch/powerpc/platforms/pseries/rtasd.c index e0000ce769e5..2e4e04042d85 100644 --- a/arch/powerpc/platforms/pseries/rtasd.c +++ b/arch/powerpc/platforms/pseries/rtasd.c | |||
@@ -348,7 +348,7 @@ static int enable_surveillance(int timeout) | |||
348 | return 0; | 348 | return 0; |
349 | 349 | ||
350 | if (error == -EINVAL) { | 350 | if (error == -EINVAL) { |
351 | printk(KERN_INFO "rtasd: surveillance not supported\n"); | 351 | printk(KERN_DEBUG "rtasd: surveillance not supported\n"); |
352 | return 0; | 352 | return 0; |
353 | } | 353 | } |
354 | 354 | ||
@@ -440,7 +440,7 @@ static int rtasd(void *unused) | |||
440 | goto error; | 440 | goto error; |
441 | } | 441 | } |
442 | 442 | ||
443 | printk(KERN_INFO "RTAS daemon started\n"); | 443 | printk(KERN_DEBUG "RTAS daemon started\n"); |
444 | 444 | ||
445 | DEBUG("will sleep for %d milliseconds\n", (30000/rtas_event_scan_rate)); | 445 | DEBUG("will sleep for %d milliseconds\n", (30000/rtas_event_scan_rate)); |
446 | 446 | ||
@@ -487,7 +487,7 @@ static int __init rtas_init(void) | |||
487 | 487 | ||
488 | /* No RTAS */ | 488 | /* No RTAS */ |
489 | if (rtas_token("event-scan") == RTAS_UNKNOWN_SERVICE) { | 489 | if (rtas_token("event-scan") == RTAS_UNKNOWN_SERVICE) { |
490 | printk(KERN_INFO "rtasd: no event-scan on system\n"); | 490 | printk(KERN_DEBUG "rtasd: no event-scan on system\n"); |
491 | return -ENODEV; | 491 | return -ENODEV; |
492 | } | 492 | } |
493 | 493 | ||
diff --git a/arch/powerpc/platforms/pseries/setup.c b/arch/powerpc/platforms/pseries/setup.c index 5eb55ef1c91c..9118d79b7b46 100644 --- a/arch/powerpc/platforms/pseries/setup.c +++ b/arch/powerpc/platforms/pseries/setup.c | |||
@@ -235,14 +235,14 @@ static void __init pSeries_setup_arch(void) | |||
235 | if (firmware_has_feature(FW_FEATURE_SPLPAR)) { | 235 | if (firmware_has_feature(FW_FEATURE_SPLPAR)) { |
236 | vpa_init(boot_cpuid); | 236 | vpa_init(boot_cpuid); |
237 | if (get_lppaca()->shared_proc) { | 237 | if (get_lppaca()->shared_proc) { |
238 | printk(KERN_INFO "Using shared processor idle loop\n"); | 238 | printk(KERN_DEBUG "Using shared processor idle loop\n"); |
239 | ppc_md.power_save = pseries_shared_idle_sleep; | 239 | ppc_md.power_save = pseries_shared_idle_sleep; |
240 | } else { | 240 | } else { |
241 | printk(KERN_INFO "Using dedicated idle loop\n"); | 241 | printk(KERN_DEBUG "Using dedicated idle loop\n"); |
242 | ppc_md.power_save = pseries_dedicated_idle_sleep; | 242 | ppc_md.power_save = pseries_dedicated_idle_sleep; |
243 | } | 243 | } |
244 | } else { | 244 | } else { |
245 | printk(KERN_INFO "Using default idle loop\n"); | 245 | printk(KERN_DEBUG "Using default idle loop\n"); |
246 | } | 246 | } |
247 | 247 | ||
248 | if (firmware_has_feature(FW_FEATURE_LPAR)) | 248 | if (firmware_has_feature(FW_FEATURE_LPAR)) |
diff --git a/arch/powerpc/platforms/pseries/xics.c b/arch/powerpc/platforms/pseries/xics.c index 2d60ea30fed6..b14f9b5c114e 100644 --- a/arch/powerpc/platforms/pseries/xics.c +++ b/arch/powerpc/platforms/pseries/xics.c | |||
@@ -522,7 +522,7 @@ nextnode: | |||
522 | 522 | ||
523 | np = of_find_node_by_type(NULL, "interrupt-controller"); | 523 | np = of_find_node_by_type(NULL, "interrupt-controller"); |
524 | if (!np) { | 524 | if (!np) { |
525 | printk(KERN_WARNING "xics: no ISA interrupt controller\n"); | 525 | printk(KERN_DEBUG "xics: no ISA interrupt controller\n"); |
526 | xics_irq_8259_cascade_real = -1; | 526 | xics_irq_8259_cascade_real = -1; |
527 | xics_irq_8259_cascade = -1; | 527 | xics_irq_8259_cascade = -1; |
528 | } else { | 528 | } else { |
@@ -641,23 +641,26 @@ void xics_teardown_cpu(int secondary) | |||
641 | ops->cppr_info(cpu, 0x00); | 641 | ops->cppr_info(cpu, 0x00); |
642 | iosync(); | 642 | iosync(); |
643 | 643 | ||
644 | /* Clear IPI */ | ||
645 | ops->qirr_info(cpu, 0xff); | ||
646 | |||
647 | /* | ||
648 | * we need to EOI the IPI if we got here from kexec down IPI | ||
649 | * | ||
650 | * probably need to check all the other interrupts too | ||
651 | * should we be flagging idle loop instead? | ||
652 | * or creating some task to be scheduled? | ||
653 | */ | ||
654 | ops->xirr_info_set(cpu, XICS_IPI); | ||
655 | |||
644 | /* | 656 | /* |
645 | * Some machines need to have at least one cpu in the GIQ, | 657 | * Some machines need to have at least one cpu in the GIQ, |
646 | * so leave the master cpu in the group. | 658 | * so leave the master cpu in the group. |
647 | */ | 659 | */ |
648 | if (secondary) { | 660 | if (secondary) |
649 | /* | ||
650 | * we need to EOI the IPI if we got here from kexec down IPI | ||
651 | * | ||
652 | * probably need to check all the other interrupts too | ||
653 | * should we be flagging idle loop instead? | ||
654 | * or creating some task to be scheduled? | ||
655 | */ | ||
656 | ops->xirr_info_set(cpu, XICS_IPI); | ||
657 | rtas_set_indicator(GLOBAL_INTERRUPT_QUEUE, | 661 | rtas_set_indicator(GLOBAL_INTERRUPT_QUEUE, |
658 | (1UL << interrupt_server_size) - 1 - | 662 | (1UL << interrupt_server_size) - 1 - |
659 | default_distrib_server, 0); | 663 | default_distrib_server, 0); |
660 | } | ||
661 | } | 664 | } |
662 | 665 | ||
663 | #ifdef CONFIG_HOTPLUG_CPU | 666 | #ifdef CONFIG_HOTPLUG_CPU |
diff --git a/drivers/char/hvsi.c b/drivers/char/hvsi.c index a9522189fc9e..a0370ed752ce 100644 --- a/drivers/char/hvsi.c +++ b/drivers/char/hvsi.c | |||
@@ -1179,7 +1179,7 @@ static int __init hvsi_init(void) | |||
1179 | if (tty_register_driver(hvsi_driver)) | 1179 | if (tty_register_driver(hvsi_driver)) |
1180 | panic("Couldn't register hvsi console driver\n"); | 1180 | panic("Couldn't register hvsi console driver\n"); |
1181 | 1181 | ||
1182 | printk(KERN_INFO "HVSI: registered %i devices\n", hvsi_count); | 1182 | printk(KERN_DEBUG "HVSI: registered %i devices\n", hvsi_count); |
1183 | 1183 | ||
1184 | return 0; | 1184 | return 0; |
1185 | } | 1185 | } |
diff --git a/drivers/net/ibmveth.c b/drivers/net/ibmveth.c index 52d01027d9e7..37965dc78eec 100644 --- a/drivers/net/ibmveth.c +++ b/drivers/net/ibmveth.c | |||
@@ -61,7 +61,7 @@ | |||
61 | #undef DEBUG | 61 | #undef DEBUG |
62 | 62 | ||
63 | #define ibmveth_printk(fmt, args...) \ | 63 | #define ibmveth_printk(fmt, args...) \ |
64 | printk(KERN_INFO "%s: " fmt, __FILE__, ## args) | 64 | printk(KERN_DEBUG "%s: " fmt, __FILE__, ## args) |
65 | 65 | ||
66 | #define ibmveth_error_printk(fmt, args...) \ | 66 | #define ibmveth_error_printk(fmt, args...) \ |
67 | printk(KERN_ERR "(%s:%3.3d ua:%x) ERROR: " fmt, __FILE__, __LINE__ , adapter->vdev->unit_address, ## args) | 67 | printk(KERN_ERR "(%s:%3.3d ua:%x) ERROR: " fmt, __FILE__, __LINE__ , adapter->vdev->unit_address, ## args) |
diff --git a/include/asm-powerpc/eeh.h b/include/asm-powerpc/eeh.h index 868c7139dbff..2c3dc4a2b12a 100644 --- a/include/asm-powerpc/eeh.h +++ b/include/asm-powerpc/eeh.h | |||
@@ -293,8 +293,6 @@ static inline void eeh_memcpy_toio(volatile void __iomem *dest, const void *src, | |||
293 | static inline u8 eeh_inb(unsigned long port) | 293 | static inline u8 eeh_inb(unsigned long port) |
294 | { | 294 | { |
295 | u8 val; | 295 | u8 val; |
296 | if (!_IO_IS_VALID(port)) | ||
297 | return ~0; | ||
298 | val = in_8((u8 __iomem *)(port+pci_io_base)); | 296 | val = in_8((u8 __iomem *)(port+pci_io_base)); |
299 | if (EEH_POSSIBLE_ERROR(val, u8)) | 297 | if (EEH_POSSIBLE_ERROR(val, u8)) |
300 | return eeh_check_failure((void __iomem *)(port), val); | 298 | return eeh_check_failure((void __iomem *)(port), val); |
@@ -303,15 +301,12 @@ static inline u8 eeh_inb(unsigned long port) | |||
303 | 301 | ||
304 | static inline void eeh_outb(u8 val, unsigned long port) | 302 | static inline void eeh_outb(u8 val, unsigned long port) |
305 | { | 303 | { |
306 | if (_IO_IS_VALID(port)) | 304 | out_8((u8 __iomem *)(port+pci_io_base), val); |
307 | out_8((u8 __iomem *)(port+pci_io_base), val); | ||
308 | } | 305 | } |
309 | 306 | ||
310 | static inline u16 eeh_inw(unsigned long port) | 307 | static inline u16 eeh_inw(unsigned long port) |
311 | { | 308 | { |
312 | u16 val; | 309 | u16 val; |
313 | if (!_IO_IS_VALID(port)) | ||
314 | return ~0; | ||
315 | val = in_le16((u16 __iomem *)(port+pci_io_base)); | 310 | val = in_le16((u16 __iomem *)(port+pci_io_base)); |
316 | if (EEH_POSSIBLE_ERROR(val, u16)) | 311 | if (EEH_POSSIBLE_ERROR(val, u16)) |
317 | return eeh_check_failure((void __iomem *)(port), val); | 312 | return eeh_check_failure((void __iomem *)(port), val); |
@@ -320,15 +315,12 @@ static inline u16 eeh_inw(unsigned long port) | |||
320 | 315 | ||
321 | static inline void eeh_outw(u16 val, unsigned long port) | 316 | static inline void eeh_outw(u16 val, unsigned long port) |
322 | { | 317 | { |
323 | if (_IO_IS_VALID(port)) | 318 | out_le16((u16 __iomem *)(port+pci_io_base), val); |
324 | out_le16((u16 __iomem *)(port+pci_io_base), val); | ||
325 | } | 319 | } |
326 | 320 | ||
327 | static inline u32 eeh_inl(unsigned long port) | 321 | static inline u32 eeh_inl(unsigned long port) |
328 | { | 322 | { |
329 | u32 val; | 323 | u32 val; |
330 | if (!_IO_IS_VALID(port)) | ||
331 | return ~0; | ||
332 | val = in_le32((u32 __iomem *)(port+pci_io_base)); | 324 | val = in_le32((u32 __iomem *)(port+pci_io_base)); |
333 | if (EEH_POSSIBLE_ERROR(val, u32)) | 325 | if (EEH_POSSIBLE_ERROR(val, u32)) |
334 | return eeh_check_failure((void __iomem *)(port), val); | 326 | return eeh_check_failure((void __iomem *)(port), val); |
@@ -337,8 +329,7 @@ static inline u32 eeh_inl(unsigned long port) | |||
337 | 329 | ||
338 | static inline void eeh_outl(u32 val, unsigned long port) | 330 | static inline void eeh_outl(u32 val, unsigned long port) |
339 | { | 331 | { |
340 | if (_IO_IS_VALID(port)) | 332 | out_le32((u32 __iomem *)(port+pci_io_base), val); |
341 | out_le32((u32 __iomem *)(port+pci_io_base), val); | ||
342 | } | 333 | } |
343 | 334 | ||
344 | /* in-string eeh macros */ | 335 | /* in-string eeh macros */ |
diff --git a/include/asm-powerpc/eeh_event.h b/include/asm-powerpc/eeh_event.h index 93d55a2bebfd..dc6bf0ffb796 100644 --- a/include/asm-powerpc/eeh_event.h +++ b/include/asm-powerpc/eeh_event.h | |||
@@ -18,8 +18,8 @@ | |||
18 | * Copyright (c) 2005 Linas Vepstas <linas@linas.org> | 18 | * Copyright (c) 2005 Linas Vepstas <linas@linas.org> |
19 | */ | 19 | */ |
20 | 20 | ||
21 | #ifndef ASM_PPC64_EEH_EVENT_H | 21 | #ifndef ASM_POWERPC_EEH_EVENT_H |
22 | #define ASM_PPC64_EEH_EVENT_H | 22 | #define ASM_POWERPC_EEH_EVENT_H |
23 | #ifdef __KERNEL__ | 23 | #ifdef __KERNEL__ |
24 | 24 | ||
25 | /** EEH event -- structure holding pci controller data that describes | 25 | /** EEH event -- structure holding pci controller data that describes |
@@ -39,7 +39,7 @@ struct eeh_event { | |||
39 | * @dev pci device | 39 | * @dev pci device |
40 | * | 40 | * |
41 | * This routine builds a PCI error event which will be delivered | 41 | * This routine builds a PCI error event which will be delivered |
42 | * to all listeners on the peh_notifier_chain. | 42 | * to all listeners on the eeh_notifier_chain. |
43 | * | 43 | * |
44 | * This routine can be called within an interrupt context; | 44 | * This routine can be called within an interrupt context; |
45 | * the actual event will be delivered in a normal context | 45 | * the actual event will be delivered in a normal context |
@@ -51,7 +51,7 @@ int eeh_send_failure_event (struct device_node *dn, | |||
51 | int time_unavail); | 51 | int time_unavail); |
52 | 52 | ||
53 | /* Main recovery function */ | 53 | /* Main recovery function */ |
54 | void handle_eeh_events (struct eeh_event *); | 54 | struct pci_dn * handle_eeh_events (struct eeh_event *); |
55 | 55 | ||
56 | #endif /* __KERNEL__ */ | 56 | #endif /* __KERNEL__ */ |
57 | #endif /* ASM_PPC64_EEH_EVENT_H */ | 57 | #endif /* ASM_POWERPC_EEH_EVENT_H */ |
diff --git a/include/asm-powerpc/io.h b/include/asm-powerpc/io.h index f1c2469b8844..a9496f34b048 100644 --- a/include/asm-powerpc/io.h +++ b/include/asm-powerpc/io.h | |||
@@ -40,12 +40,6 @@ extern int check_legacy_ioport(unsigned long base_port); | |||
40 | 40 | ||
41 | extern unsigned long isa_io_base; | 41 | extern unsigned long isa_io_base; |
42 | extern unsigned long pci_io_base; | 42 | extern unsigned long pci_io_base; |
43 | extern unsigned long io_page_mask; | ||
44 | |||
45 | #define MAX_ISA_PORT 0x10000 | ||
46 | |||
47 | #define _IO_IS_VALID(port) ((port) >= MAX_ISA_PORT || (1 << (port>>PAGE_SHIFT)) \ | ||
48 | & io_page_mask) | ||
49 | 43 | ||
50 | #ifdef CONFIG_PPC_ISERIES | 44 | #ifdef CONFIG_PPC_ISERIES |
51 | /* __raw_* accessors aren't supported on iSeries */ | 45 | /* __raw_* accessors aren't supported on iSeries */ |
diff --git a/include/asm-ppc/mpc85xx.h b/include/asm-ppc/mpc85xx.h index f47002a60edf..4f844ebe7669 100644 --- a/include/asm-ppc/mpc85xx.h +++ b/include/asm-ppc/mpc85xx.h | |||
@@ -28,6 +28,9 @@ | |||
28 | #if defined(CONFIG_MPC8555_CDS) || defined(CONFIG_MPC8548_CDS) | 28 | #if defined(CONFIG_MPC8555_CDS) || defined(CONFIG_MPC8548_CDS) |
29 | #include <platforms/85xx/mpc8555_cds.h> | 29 | #include <platforms/85xx/mpc8555_cds.h> |
30 | #endif | 30 | #endif |
31 | #ifdef CONFIG_MPC85xx_CDS | ||
32 | #include <platforms/85xx/mpc85xx_cds.h> | ||
33 | #endif | ||
31 | #ifdef CONFIG_MPC8560_ADS | 34 | #ifdef CONFIG_MPC8560_ADS |
32 | #include <platforms/85xx/mpc8560_ads.h> | 35 | #include <platforms/85xx/mpc8560_ads.h> |
33 | #endif | 36 | #endif |