diff options
-rw-r--r-- | arch/powerpc/configs/mpc85xx_cds_defconfig | 846 | ||||
-rw-r--r-- | arch/powerpc/platforms/85xx/Kconfig | 9 | ||||
-rw-r--r-- | arch/powerpc/platforms/85xx/Makefile | 1 | ||||
-rw-r--r-- | arch/powerpc/platforms/85xx/mpc85xx_cds.c | 359 | ||||
-rw-r--r-- | arch/powerpc/platforms/85xx/mpc85xx_cds.h | 43 | ||||
-rw-r--r-- | include/asm-ppc/mpc85xx.h | 3 |
6 files changed, 1260 insertions, 1 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/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/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 |