aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXianghua Xiao <x.xiao@freescale.com>2007-10-03 16:09:33 -0400
committerKumar Gala <galak@kernel.crashing.org>2007-10-08 09:38:31 -0400
commit0e65bfe34c1000581746b9889d095241c4cf4a5c (patch)
tree4ea65b112435055fff0e3ab759b6d85488f62b9d
parent61c5d3cde10689867b86c8352aa0295637e941cb (diff)
[POWERPC] Add initial MPC8610 HPCD Platform files.
Add basic board support for the MPC8610 HPCD. This does not include any support the SoC Display or Audio controllers. Signed-off-by: Xianghua Xiao <x.xiao@freescale.com> Signed-off-by: Jason Jin <Jason.jin@freescale.com> Signed-off-by: Jon Loelier <jdl@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
-rw-r--r--arch/powerpc/configs/mpc8610_hpcd_defconfig1023
-rw-r--r--arch/powerpc/platforms/86xx/Kconfig13
-rw-r--r--arch/powerpc/platforms/86xx/Makefile1
-rw-r--r--arch/powerpc/platforms/86xx/mpc8610_hpcd.c233
4 files changed, 1270 insertions, 0 deletions
diff --git a/arch/powerpc/configs/mpc8610_hpcd_defconfig b/arch/powerpc/configs/mpc8610_hpcd_defconfig
new file mode 100644
index 000000000000..de19b781937f
--- /dev/null
+++ b/arch/powerpc/configs/mpc8610_hpcd_defconfig
@@ -0,0 +1,1023 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.23-rc6
4# Tue Oct 2 11:42:56 2007
5#
6# CONFIG_PPC64 is not set
7
8#
9# Processor support
10#
11CONFIG_6xx=y
12# CONFIG_PPC_85xx is not set
13# CONFIG_PPC_8xx is not set
14# CONFIG_40x is not set
15# CONFIG_44x is not set
16# CONFIG_E200 is not set
17CONFIG_PPC_FPU=y
18CONFIG_ALTIVEC=y
19CONFIG_PPC_STD_MMU=y
20CONFIG_PPC_STD_MMU_32=y
21# CONFIG_PPC_MM_SLICES is not set
22# CONFIG_SMP is not set
23CONFIG_PPC32=y
24CONFIG_PPC_MERGE=y
25CONFIG_MMU=y
26CONFIG_GENERIC_HARDIRQS=y
27CONFIG_IRQ_PER_CPU=y
28CONFIG_RWSEM_XCHGADD_ALGORITHM=y
29CONFIG_ARCH_HAS_ILOG2_U32=y
30CONFIG_GENERIC_HWEIGHT=y
31CONFIG_GENERIC_CALIBRATE_DELAY=y
32CONFIG_GENERIC_FIND_NEXT_BIT=y
33# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
34CONFIG_PPC=y
35CONFIG_EARLY_PRINTK=y
36CONFIG_GENERIC_NVRAM=y
37CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
38CONFIG_ARCH_MAY_HAVE_PC_FDC=y
39CONFIG_PPC_OF=y
40CONFIG_OF=y
41CONFIG_PPC_UDBG_16550=y
42# CONFIG_GENERIC_TBSYNC is not set
43CONFIG_AUDIT_ARCH=y
44CONFIG_GENERIC_BUG=y
45CONFIG_DEFAULT_UIMAGE=y
46# CONFIG_PPC_DCR_NATIVE is not set
47# CONFIG_PPC_DCR_MMIO is not set
48CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
49
50#
51# General setup
52#
53CONFIG_EXPERIMENTAL=y
54CONFIG_BROKEN_ON_SMP=y
55CONFIG_INIT_ENV_ARG_LIMIT=32
56CONFIG_LOCALVERSION=""
57# CONFIG_LOCALVERSION_AUTO is not set
58# CONFIG_SWAP is not set
59# CONFIG_SYSVIPC is not set
60# CONFIG_POSIX_MQUEUE is not set
61# CONFIG_BSD_PROCESS_ACCT is not set
62# CONFIG_TASKSTATS is not set
63# CONFIG_USER_NS is not set
64# CONFIG_AUDIT is not set
65CONFIG_IKCONFIG=y
66CONFIG_IKCONFIG_PROC=y
67CONFIG_LOG_BUF_SHIFT=14
68CONFIG_SYSFS_DEPRECATED=y
69# CONFIG_RELAY is not set
70CONFIG_BLK_DEV_INITRD=y
71CONFIG_INITRAMFS_SOURCE=""
72# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
73CONFIG_SYSCTL=y
74CONFIG_EMBEDDED=y
75CONFIG_SYSCTL_SYSCALL=y
76CONFIG_KALLSYMS=y
77# CONFIG_KALLSYMS_ALL is not set
78CONFIG_KALLSYMS_EXTRA_PASS=y
79CONFIG_HOTPLUG=y
80CONFIG_PRINTK=y
81CONFIG_BUG=y
82# CONFIG_ELF_CORE is not set
83CONFIG_BASE_FULL=y
84CONFIG_FUTEX=y
85CONFIG_ANON_INODES=y
86CONFIG_EPOLL=y
87CONFIG_SIGNALFD=y
88CONFIG_EVENTFD=y
89CONFIG_SHMEM=y
90CONFIG_VM_EVENT_COUNTERS=y
91CONFIG_SLAB=y
92# CONFIG_SLUB is not set
93# CONFIG_SLOB is not set
94CONFIG_RT_MUTEXES=y
95# CONFIG_TINY_SHMEM is not set
96CONFIG_BASE_SMALL=0
97# CONFIG_MODULES is not set
98CONFIG_BLOCK=y
99# CONFIG_LBD is not set
100# CONFIG_BLK_DEV_IO_TRACE is not set
101# CONFIG_LSF is not set
102# CONFIG_BLK_DEV_BSG is not set
103
104#
105# IO Schedulers
106#
107CONFIG_IOSCHED_NOOP=y
108# CONFIG_IOSCHED_AS is not set
109CONFIG_IOSCHED_DEADLINE=y
110# CONFIG_IOSCHED_CFQ is not set
111# CONFIG_DEFAULT_AS is not set
112CONFIG_DEFAULT_DEADLINE=y
113# CONFIG_DEFAULT_CFQ is not set
114# CONFIG_DEFAULT_NOOP is not set
115CONFIG_DEFAULT_IOSCHED="deadline"
116
117#
118# Platform support
119#
120# CONFIG_PPC_MULTIPLATFORM is not set
121# CONFIG_EMBEDDED6xx is not set
122# CONFIG_PPC_82xx is not set
123# CONFIG_PPC_83xx is not set
124CONFIG_PPC_86xx=y
125# CONFIG_PPC_MPC52xx is not set
126# CONFIG_PPC_MPC5200 is not set
127# CONFIG_PPC_CELL is not set
128# CONFIG_PPC_CELL_NATIVE is not set
129# CONFIG_PQ2ADS is not set
130# CONFIG_MPC8641_HPCN is not set
131CONFIG_MPC8610_HPCD=y
132CONFIG_MPC8610=y
133CONFIG_MPIC=y
134# CONFIG_MPIC_WEIRD is not set
135# CONFIG_PPC_I8259 is not set
136# CONFIG_PPC_RTAS is not set
137# CONFIG_MMIO_NVRAM is not set
138# CONFIG_PPC_MPC106 is not set
139# CONFIG_PPC_970_NAP is not set
140# CONFIG_PPC_INDIRECT_IO is not set
141# CONFIG_GENERIC_IOMAP is not set
142# CONFIG_CPU_FREQ is not set
143# CONFIG_CPM2 is not set
144# CONFIG_FSL_ULI1575 is not set
145
146#
147# Kernel options
148#
149CONFIG_HIGHMEM=y
150# CONFIG_HZ_100 is not set
151# CONFIG_HZ_250 is not set
152# CONFIG_HZ_300 is not set
153CONFIG_HZ_1000=y
154CONFIG_HZ=1000
155CONFIG_PREEMPT_NONE=y
156# CONFIG_PREEMPT_VOLUNTARY is not set
157# CONFIG_PREEMPT is not set
158CONFIG_BINFMT_ELF=y
159# CONFIG_BINFMT_MISC is not set
160CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
161CONFIG_ARCH_FLATMEM_ENABLE=y
162CONFIG_ARCH_POPULATES_NODE_MAP=y
163CONFIG_SELECT_MEMORY_MODEL=y
164CONFIG_FLATMEM_MANUAL=y
165# CONFIG_DISCONTIGMEM_MANUAL is not set
166# CONFIG_SPARSEMEM_MANUAL is not set
167CONFIG_FLATMEM=y
168CONFIG_FLAT_NODE_MEM_MAP=y
169# CONFIG_SPARSEMEM_STATIC is not set
170CONFIG_SPLIT_PTLOCK_CPUS=4
171# CONFIG_RESOURCES_64BIT is not set
172CONFIG_ZONE_DMA_FLAG=1
173CONFIG_BOUNCE=y
174CONFIG_VIRT_TO_BUS=y
175CONFIG_PROC_DEVICETREE=y
176# CONFIG_CMDLINE_BOOL is not set
177# CONFIG_PM is not set
178CONFIG_SUSPEND_UP_POSSIBLE=y
179CONFIG_HIBERNATION_UP_POSSIBLE=y
180# CONFIG_SECCOMP is not set
181# CONFIG_WANT_DEVICE_TREE is not set
182CONFIG_ISA_DMA_API=y
183
184#
185# Bus options
186#
187CONFIG_ZONE_DMA=y
188CONFIG_GENERIC_ISA_DMA=y
189CONFIG_PPC_INDIRECT_PCI=y
190CONFIG_FSL_SOC=y
191CONFIG_FSL_PCI=y
192CONFIG_PCI=y
193CONFIG_PCI_DOMAINS=y
194CONFIG_PCI_SYSCALL=y
195CONFIG_PCIEPORTBUS=y
196CONFIG_PCIEAER=y
197CONFIG_ARCH_SUPPORTS_MSI=y
198# CONFIG_PCI_MSI is not set
199CONFIG_PCI_DEBUG=y
200
201#
202# PCCARD (PCMCIA/CardBus) support
203#
204# CONFIG_PCCARD is not set
205# CONFIG_HOTPLUG_PCI is not set
206
207#
208# Advanced setup
209#
210# CONFIG_ADVANCED_OPTIONS is not set
211
212#
213# Default settings for advanced configuration options are used
214#
215CONFIG_HIGHMEM_START=0xfe000000
216CONFIG_LOWMEM_SIZE=0x30000000
217CONFIG_KERNEL_START=0xc0000000
218CONFIG_TASK_SIZE=0x80000000
219CONFIG_BOOT_LOAD=0x00800000
220
221#
222# Networking
223#
224CONFIG_NET=y
225
226#
227# Networking options
228#
229CONFIG_PACKET=y
230# CONFIG_PACKET_MMAP is not set
231CONFIG_UNIX=y
232CONFIG_XFRM=y
233CONFIG_XFRM_USER=y
234# CONFIG_XFRM_SUB_POLICY is not set
235# CONFIG_XFRM_MIGRATE is not set
236# CONFIG_NET_KEY is not set
237CONFIG_INET=y
238# CONFIG_IP_MULTICAST is not set
239# CONFIG_IP_ADVANCED_ROUTER is not set
240CONFIG_IP_FIB_HASH=y
241CONFIG_IP_PNP=y
242CONFIG_IP_PNP_DHCP=y
243CONFIG_IP_PNP_BOOTP=y
244CONFIG_IP_PNP_RARP=y
245# CONFIG_NET_IPIP is not set
246# CONFIG_NET_IPGRE is not set
247# CONFIG_ARPD is not set
248# CONFIG_SYN_COOKIES is not set
249# CONFIG_INET_AH is not set
250# CONFIG_INET_ESP is not set
251# CONFIG_INET_IPCOMP is not set
252# CONFIG_INET_XFRM_TUNNEL is not set
253CONFIG_INET_TUNNEL=y
254CONFIG_INET_XFRM_MODE_TRANSPORT=y
255CONFIG_INET_XFRM_MODE_TUNNEL=y
256CONFIG_INET_XFRM_MODE_BEET=y
257CONFIG_INET_DIAG=y
258CONFIG_INET_TCP_DIAG=y
259# CONFIG_TCP_CONG_ADVANCED is not set
260CONFIG_TCP_CONG_CUBIC=y
261CONFIG_DEFAULT_TCP_CONG="cubic"
262# CONFIG_TCP_MD5SIG is not set
263CONFIG_IPV6=y
264# CONFIG_IPV6_PRIVACY is not set
265# CONFIG_IPV6_ROUTER_PREF is not set
266# CONFIG_IPV6_OPTIMISTIC_DAD is not set
267# CONFIG_INET6_AH is not set
268# CONFIG_INET6_ESP is not set
269# CONFIG_INET6_IPCOMP is not set
270# CONFIG_IPV6_MIP6 is not set
271# CONFIG_INET6_XFRM_TUNNEL is not set
272# CONFIG_INET6_TUNNEL is not set
273CONFIG_INET6_XFRM_MODE_TRANSPORT=y
274CONFIG_INET6_XFRM_MODE_TUNNEL=y
275CONFIG_INET6_XFRM_MODE_BEET=y
276# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
277CONFIG_IPV6_SIT=y
278# CONFIG_IPV6_TUNNEL is not set
279# CONFIG_IPV6_MULTIPLE_TABLES is not set
280# CONFIG_NETWORK_SECMARK is not set
281# CONFIG_NETFILTER is not set
282# CONFIG_IP_DCCP is not set
283# CONFIG_IP_SCTP is not set
284# CONFIG_TIPC is not set
285# CONFIG_ATM is not set
286# CONFIG_BRIDGE is not set
287# CONFIG_VLAN_8021Q is not set
288# CONFIG_DECNET is not set
289# CONFIG_LLC2 is not set
290# CONFIG_IPX is not set
291# CONFIG_ATALK is not set
292# CONFIG_X25 is not set
293# CONFIG_LAPB is not set
294# CONFIG_ECONET is not set
295# CONFIG_WAN_ROUTER is not set
296
297#
298# QoS and/or fair queueing
299#
300# CONFIG_NET_SCHED is not set
301
302#
303# Network testing
304#
305# CONFIG_NET_PKTGEN is not set
306# CONFIG_HAMRADIO is not set
307# CONFIG_IRDA is not set
308# CONFIG_BT is not set
309# CONFIG_AF_RXRPC is not set
310
311#
312# Wireless
313#
314# CONFIG_CFG80211 is not set
315# CONFIG_WIRELESS_EXT is not set
316# CONFIG_MAC80211 is not set
317# CONFIG_IEEE80211 is not set
318# CONFIG_RFKILL is not set
319# CONFIG_NET_9P is not set
320
321#
322# Device Drivers
323#
324
325#
326# Generic Driver Options
327#
328CONFIG_STANDALONE=y
329CONFIG_PREVENT_FIRMWARE_BUILD=y
330CONFIG_FW_LOADER=y
331# CONFIG_DEBUG_DRIVER is not set
332# CONFIG_DEBUG_DEVRES is not set
333# CONFIG_SYS_HYPERVISOR is not set
334# CONFIG_CONNECTOR is not set
335# CONFIG_MTD is not set
336CONFIG_OF_DEVICE=y
337# CONFIG_PARPORT is not set
338CONFIG_BLK_DEV=y
339# CONFIG_BLK_DEV_FD is not set
340# CONFIG_BLK_CPQ_DA is not set
341# CONFIG_BLK_CPQ_CISS_DA is not set
342# CONFIG_BLK_DEV_DAC960 is not set
343# CONFIG_BLK_DEV_UMEM is not set
344# CONFIG_BLK_DEV_COW_COMMON is not set
345CONFIG_BLK_DEV_LOOP=y
346# CONFIG_BLK_DEV_CRYPTOLOOP is not set
347# CONFIG_BLK_DEV_NBD is not set
348# CONFIG_BLK_DEV_SX8 is not set
349CONFIG_BLK_DEV_RAM=y
350CONFIG_BLK_DEV_RAM_COUNT=16
351CONFIG_BLK_DEV_RAM_SIZE=131072
352CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
353# CONFIG_CDROM_PKTCDVD is not set
354# CONFIG_ATA_OVER_ETH is not set
355CONFIG_MISC_DEVICES=y
356# CONFIG_PHANTOM is not set
357# CONFIG_EEPROM_93CX6 is not set
358# CONFIG_SGI_IOC4 is not set
359# CONFIG_TIFM_CORE is not set
360CONFIG_IDE=y
361CONFIG_IDE_MAX_HWIFS=4
362# CONFIG_BLK_DEV_IDE is not set
363# CONFIG_BLK_DEV_HD_ONLY is not set
364# CONFIG_BLK_DEV_HD is not set
365
366#
367# SCSI device support
368#
369# CONFIG_RAID_ATTRS is not set
370CONFIG_SCSI=y
371CONFIG_SCSI_DMA=y
372CONFIG_SCSI_TGT=y
373# CONFIG_SCSI_NETLINK is not set
374CONFIG_SCSI_PROC_FS=y
375
376#
377# SCSI support type (disk, tape, CD-ROM)
378#
379CONFIG_BLK_DEV_SD=y
380# CONFIG_CHR_DEV_ST is not set
381# CONFIG_CHR_DEV_OSST is not set
382# CONFIG_BLK_DEV_SR is not set
383CONFIG_CHR_DEV_SG=y
384# CONFIG_CHR_DEV_SCH is not set
385
386#
387# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
388#
389# CONFIG_SCSI_MULTI_LUN is not set
390# CONFIG_SCSI_CONSTANTS is not set
391# CONFIG_SCSI_LOGGING is not set
392# CONFIG_SCSI_SCAN_ASYNC is not set
393
394#
395# SCSI Transports
396#
397# CONFIG_SCSI_SPI_ATTRS is not set
398# CONFIG_SCSI_FC_ATTRS is not set
399# CONFIG_SCSI_ISCSI_ATTRS is not set
400# CONFIG_SCSI_SAS_LIBSAS is not set
401CONFIG_SCSI_LOWLEVEL=y
402# CONFIG_ISCSI_TCP is not set
403# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
404# CONFIG_SCSI_3W_9XXX is not set
405# CONFIG_SCSI_ACARD is not set
406# CONFIG_SCSI_AACRAID is not set
407# CONFIG_SCSI_AIC7XXX is not set
408# CONFIG_SCSI_AIC7XXX_OLD is not set
409# CONFIG_SCSI_AIC79XX is not set
410# CONFIG_SCSI_AIC94XX is not set
411# CONFIG_SCSI_DPT_I2O is not set
412# CONFIG_SCSI_ARCMSR is not set
413# CONFIG_MEGARAID_NEWGEN is not set
414# CONFIG_MEGARAID_LEGACY is not set
415# CONFIG_MEGARAID_SAS is not set
416# CONFIG_SCSI_HPTIOP is not set
417# CONFIG_SCSI_BUSLOGIC is not set
418# CONFIG_SCSI_DMX3191D is not set
419# CONFIG_SCSI_EATA is not set
420# CONFIG_SCSI_FUTURE_DOMAIN is not set
421# CONFIG_SCSI_GDTH is not set
422# CONFIG_SCSI_IPS is not set
423# CONFIG_SCSI_INITIO is not set
424# CONFIG_SCSI_INIA100 is not set
425# CONFIG_SCSI_STEX is not set
426# CONFIG_SCSI_SYM53C8XX_2 is not set
427# CONFIG_SCSI_IPR is not set
428# CONFIG_SCSI_QLOGIC_1280 is not set
429# CONFIG_SCSI_QLA_FC is not set
430# CONFIG_SCSI_QLA_ISCSI is not set
431# CONFIG_SCSI_LPFC is not set
432# CONFIG_SCSI_DC395x is not set
433# CONFIG_SCSI_DC390T is not set
434# CONFIG_SCSI_NSP32 is not set
435# CONFIG_SCSI_DEBUG is not set
436# CONFIG_SCSI_SRP is not set
437CONFIG_ATA=y
438# CONFIG_ATA_NONSTANDARD is not set
439CONFIG_SATA_AHCI=y
440# CONFIG_SATA_SVW is not set
441# CONFIG_ATA_PIIX is not set
442# CONFIG_SATA_MV is not set
443# CONFIG_SATA_NV is not set
444# CONFIG_PDC_ADMA is not set
445# CONFIG_SATA_QSTOR is not set
446# CONFIG_SATA_PROMISE is not set
447# CONFIG_SATA_SX4 is not set
448# CONFIG_SATA_SIL is not set
449# CONFIG_SATA_SIL24 is not set
450# CONFIG_SATA_SIS is not set
451# CONFIG_SATA_ULI is not set
452# CONFIG_SATA_VIA is not set
453# CONFIG_SATA_VITESSE is not set
454# CONFIG_SATA_INIC162X is not set
455CONFIG_PATA_ALI=y
456# CONFIG_PATA_AMD is not set
457# CONFIG_PATA_ARTOP is not set
458# CONFIG_PATA_ATIIXP is not set
459# CONFIG_PATA_CMD640_PCI is not set
460# CONFIG_PATA_CMD64X is not set
461# CONFIG_PATA_CS5520 is not set
462# CONFIG_PATA_CS5530 is not set
463# CONFIG_PATA_CYPRESS is not set
464# CONFIG_PATA_EFAR is not set
465# CONFIG_ATA_GENERIC is not set
466# CONFIG_PATA_HPT366 is not set
467# CONFIG_PATA_HPT37X is not set
468# CONFIG_PATA_HPT3X2N is not set
469# CONFIG_PATA_HPT3X3 is not set
470# CONFIG_PATA_IT821X is not set
471# CONFIG_PATA_IT8213 is not set
472# CONFIG_PATA_JMICRON is not set
473# CONFIG_PATA_TRIFLEX is not set
474# CONFIG_PATA_MARVELL is not set
475# CONFIG_PATA_MPIIX is not set
476# CONFIG_PATA_OLDPIIX is not set
477# CONFIG_PATA_NETCELL is not set
478# CONFIG_PATA_NS87410 is not set
479# CONFIG_PATA_OPTI is not set
480# CONFIG_PATA_OPTIDMA is not set
481# CONFIG_PATA_PDC_OLD is not set
482# CONFIG_PATA_RADISYS is not set
483# CONFIG_PATA_RZ1000 is not set
484# CONFIG_PATA_SC1200 is not set
485# CONFIG_PATA_SERVERWORKS is not set
486# CONFIG_PATA_PDC2027X is not set
487# CONFIG_PATA_SIL680 is not set
488# CONFIG_PATA_SIS is not set
489# CONFIG_PATA_VIA is not set
490# CONFIG_PATA_WINBOND is not set
491# CONFIG_PATA_PLATFORM is not set
492# CONFIG_MD is not set
493
494#
495# Fusion MPT device support
496#
497# CONFIG_FUSION is not set
498# CONFIG_FUSION_SPI is not set
499# CONFIG_FUSION_FC is not set
500# CONFIG_FUSION_SAS is not set
501
502#
503# IEEE 1394 (FireWire) support
504#
505# CONFIG_FIREWIRE is not set
506# CONFIG_IEEE1394 is not set
507# CONFIG_I2O is not set
508# CONFIG_MACINTOSH_DRIVERS is not set
509CONFIG_NETDEVICES=y
510# CONFIG_NETDEVICES_MULTIQUEUE is not set
511CONFIG_DUMMY=y
512# CONFIG_BONDING is not set
513# CONFIG_MACVLAN is not set
514# CONFIG_EQUALIZER is not set
515# CONFIG_TUN is not set
516# CONFIG_ARCNET is not set
517CONFIG_PHYLIB=y
518
519#
520# MII PHY device drivers
521#
522# CONFIG_MARVELL_PHY is not set
523# CONFIG_DAVICOM_PHY is not set
524# CONFIG_QSEMI_PHY is not set
525# CONFIG_LXT_PHY is not set
526# CONFIG_CICADA_PHY is not set
527# CONFIG_VITESSE_PHY is not set
528# CONFIG_SMSC_PHY is not set
529# CONFIG_BROADCOM_PHY is not set
530# CONFIG_ICPLUS_PHY is not set
531# CONFIG_FIXED_PHY is not set
532CONFIG_NET_ETHERNET=y
533CONFIG_MII=y
534# CONFIG_HAPPYMEAL is not set
535# CONFIG_SUNGEM is not set
536# CONFIG_CASSINI is not set
537# CONFIG_NET_VENDOR_3COM is not set
538CONFIG_NET_TULIP=y
539# CONFIG_DE2104X is not set
540CONFIG_TULIP=y
541# CONFIG_TULIP_MWI is not set
542CONFIG_TULIP_MMIO=y
543# CONFIG_TULIP_NAPI is not set
544# CONFIG_DE4X5 is not set
545# CONFIG_WINBOND_840 is not set
546# CONFIG_DM9102 is not set
547# CONFIG_ULI526X is not set
548# CONFIG_HP100 is not set
549CONFIG_NET_PCI=y
550# CONFIG_PCNET32 is not set
551# CONFIG_AMD8111_ETH is not set
552# CONFIG_ADAPTEC_STARFIRE is not set
553# CONFIG_B44 is not set
554# CONFIG_FORCEDETH is not set
555# CONFIG_DGRS is not set
556# CONFIG_EEPRO100 is not set
557# CONFIG_E100 is not set
558# CONFIG_FEALNX is not set
559# CONFIG_NATSEMI is not set
560# CONFIG_NE2K_PCI is not set
561# CONFIG_8139CP is not set
562CONFIG_8139TOO=y
563CONFIG_8139TOO_PIO=y
564# CONFIG_8139TOO_TUNE_TWISTER is not set
565# CONFIG_8139TOO_8129 is not set
566# CONFIG_8139_OLD_RX_RESET is not set
567# CONFIG_SIS900 is not set
568# CONFIG_EPIC100 is not set
569# CONFIG_SUNDANCE is not set
570# CONFIG_TLAN is not set
571# CONFIG_VIA_RHINE is not set
572# CONFIG_SC92031 is not set
573CONFIG_NETDEV_1000=y
574# CONFIG_ACENIC is not set
575# CONFIG_DL2K is not set
576# CONFIG_E1000 is not set
577# CONFIG_NS83820 is not set
578# CONFIG_HAMACHI is not set
579# CONFIG_YELLOWFIN is not set
580# CONFIG_R8169 is not set
581# CONFIG_SIS190 is not set
582# CONFIG_SKGE is not set
583# CONFIG_SKY2 is not set
584# CONFIG_SK98LIN is not set
585# CONFIG_VIA_VELOCITY is not set
586# CONFIG_TIGON3 is not set
587# CONFIG_BNX2 is not set
588# CONFIG_GIANFAR is not set
589# CONFIG_QLA3XXX is not set
590# CONFIG_ATL1 is not set
591CONFIG_NETDEV_10000=y
592# CONFIG_CHELSIO_T1 is not set
593# CONFIG_CHELSIO_T3 is not set
594# CONFIG_IXGB is not set
595# CONFIG_S2IO is not set
596# CONFIG_MYRI10GE is not set
597# CONFIG_NETXEN_NIC is not set
598# CONFIG_MLX4_CORE is not set
599# CONFIG_TR is not set
600
601#
602# Wireless LAN
603#
604# CONFIG_WLAN_PRE80211 is not set
605# CONFIG_WLAN_80211 is not set
606# CONFIG_WAN is not set
607# CONFIG_FDDI is not set
608# CONFIG_HIPPI is not set
609# CONFIG_PPP is not set
610# CONFIG_SLIP is not set
611# CONFIG_NET_FC is not set
612# CONFIG_SHAPER is not set
613# CONFIG_NETCONSOLE is not set
614# CONFIG_NETPOLL is not set
615# CONFIG_NET_POLL_CONTROLLER is not set
616# CONFIG_ISDN is not set
617# CONFIG_PHONE is not set
618
619#
620# Input device support
621#
622CONFIG_INPUT=y
623# CONFIG_INPUT_FF_MEMLESS is not set
624# CONFIG_INPUT_POLLDEV is not set
625
626#
627# Userland interfaces
628#
629# CONFIG_INPUT_MOUSEDEV is not set
630# CONFIG_INPUT_JOYDEV is not set
631# CONFIG_INPUT_TSDEV is not set
632# CONFIG_INPUT_EVDEV is not set
633# CONFIG_INPUT_EVBUG is not set
634
635#
636# Input Device Drivers
637#
638# CONFIG_INPUT_KEYBOARD is not set
639# CONFIG_INPUT_MOUSE is not set
640# CONFIG_INPUT_JOYSTICK is not set
641# CONFIG_INPUT_TABLET is not set
642# CONFIG_INPUT_TOUCHSCREEN is not set
643# CONFIG_INPUT_MISC is not set
644
645#
646# Hardware I/O ports
647#
648CONFIG_SERIO=y
649CONFIG_SERIO_I8042=y
650CONFIG_SERIO_SERPORT=y
651# CONFIG_SERIO_PCIPS2 is not set
652CONFIG_SERIO_LIBPS2=y
653# CONFIG_SERIO_RAW is not set
654# CONFIG_GAMEPORT is not set
655
656#
657# Character devices
658#
659CONFIG_VT=y
660CONFIG_VT_CONSOLE=y
661CONFIG_HW_CONSOLE=y
662# CONFIG_VT_HW_CONSOLE_BINDING is not set
663# CONFIG_SERIAL_NONSTANDARD is not set
664
665#
666# Serial drivers
667#
668CONFIG_SERIAL_8250=y
669CONFIG_SERIAL_8250_CONSOLE=y
670CONFIG_SERIAL_8250_PCI=y
671CONFIG_SERIAL_8250_NR_UARTS=2
672CONFIG_SERIAL_8250_RUNTIME_UARTS=2
673CONFIG_SERIAL_8250_EXTENDED=y
674CONFIG_SERIAL_8250_MANY_PORTS=y
675CONFIG_SERIAL_8250_SHARE_IRQ=y
676CONFIG_SERIAL_8250_DETECT_IRQ=y
677CONFIG_SERIAL_8250_RSA=y
678
679#
680# Non-8250 serial port support
681#
682# CONFIG_SERIAL_UARTLITE is not set
683CONFIG_SERIAL_CORE=y
684CONFIG_SERIAL_CORE_CONSOLE=y
685# CONFIG_SERIAL_JSM is not set
686CONFIG_SERIAL_OF_PLATFORM=y
687CONFIG_UNIX98_PTYS=y
688# CONFIG_LEGACY_PTYS is not set
689# CONFIG_IPMI_HANDLER is not set
690# CONFIG_WATCHDOG is not set
691# CONFIG_HW_RANDOM is not set
692# CONFIG_NVRAM is not set
693# CONFIG_GEN_RTC is not set
694# CONFIG_R3964 is not set
695# CONFIG_APPLICOM is not set
696# CONFIG_AGP is not set
697# CONFIG_DRM is not set
698# CONFIG_RAW_DRIVER is not set
699# CONFIG_TCG_TPM is not set
700CONFIG_DEVPORT=y
701# CONFIG_I2C is not set
702
703#
704# SPI support
705#
706# CONFIG_SPI is not set
707# CONFIG_SPI_MASTER is not set
708# CONFIG_W1 is not set
709# CONFIG_POWER_SUPPLY is not set
710# CONFIG_HWMON is not set
711
712#
713# Multifunction device drivers
714#
715# CONFIG_MFD_SM501 is not set
716
717#
718# Multimedia devices
719#
720# CONFIG_VIDEO_DEV is not set
721# CONFIG_DVB_CORE is not set
722CONFIG_DAB=y
723
724#
725# Graphics support
726#
727# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
728
729#
730# Display device support
731#
732# CONFIG_DISPLAY_SUPPORT is not set
733# CONFIG_VGASTATE is not set
734CONFIG_VIDEO_OUTPUT_CONTROL=y
735# CONFIG_FB is not set
736# CONFIG_FB_IBM_GXT4500 is not set
737
738#
739# Console display driver support
740#
741CONFIG_VGA_CONSOLE=y
742# CONFIG_VGACON_SOFT_SCROLLBACK is not set
743CONFIG_DUMMY_CONSOLE=y
744
745#
746# Sound
747#
748# CONFIG_SOUND is not set
749CONFIG_HID_SUPPORT=y
750CONFIG_HID=y
751# CONFIG_HID_DEBUG is not set
752CONFIG_USB_SUPPORT=y
753CONFIG_USB_ARCH_HAS_HCD=y
754CONFIG_USB_ARCH_HAS_OHCI=y
755CONFIG_USB_ARCH_HAS_EHCI=y
756# CONFIG_USB is not set
757
758#
759# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
760#
761
762#
763# USB Gadget Support
764#
765# CONFIG_USB_GADGET is not set
766# CONFIG_MMC is not set
767# CONFIG_NEW_LEDS is not set
768# CONFIG_INFINIBAND is not set
769# CONFIG_EDAC is not set
770# CONFIG_RTC_CLASS is not set
771
772#
773# DMA Engine support
774#
775# CONFIG_DMA_ENGINE is not set
776
777#
778# DMA Clients
779#
780
781#
782# DMA Devices
783#
784
785#
786# Userspace I/O
787#
788# CONFIG_UIO is not set
789
790#
791# File systems
792#
793CONFIG_EXT2_FS=y
794# CONFIG_EXT2_FS_XATTR is not set
795# CONFIG_EXT2_FS_XIP is not set
796CONFIG_EXT3_FS=y
797CONFIG_EXT3_FS_XATTR=y
798# CONFIG_EXT3_FS_POSIX_ACL is not set
799# CONFIG_EXT3_FS_SECURITY is not set
800# CONFIG_EXT4DEV_FS is not set
801CONFIG_JBD=y
802# CONFIG_JBD_DEBUG is not set
803CONFIG_FS_MBCACHE=y
804# CONFIG_REISERFS_FS is not set
805# CONFIG_JFS_FS is not set
806# CONFIG_FS_POSIX_ACL is not set
807# CONFIG_XFS_FS is not set
808# CONFIG_GFS2_FS is not set
809# CONFIG_OCFS2_FS is not set
810# CONFIG_MINIX_FS is not set
811# CONFIG_ROMFS_FS is not set
812# CONFIG_INOTIFY is not set
813# CONFIG_QUOTA is not set
814# CONFIG_DNOTIFY is not set
815# CONFIG_AUTOFS_FS is not set
816# CONFIG_AUTOFS4_FS is not set
817# CONFIG_FUSE_FS is not set
818
819#
820# CD-ROM/DVD Filesystems
821#
822# CONFIG_ISO9660_FS is not set
823# CONFIG_UDF_FS is not set
824
825#
826# DOS/FAT/NT Filesystems
827#
828# CONFIG_MSDOS_FS is not set
829# CONFIG_VFAT_FS is not set
830# CONFIG_NTFS_FS is not set
831
832#
833# Pseudo filesystems
834#
835CONFIG_PROC_FS=y
836CONFIG_PROC_KCORE=y
837CONFIG_PROC_SYSCTL=y
838CONFIG_SYSFS=y
839CONFIG_TMPFS=y
840# CONFIG_TMPFS_POSIX_ACL is not set
841# CONFIG_HUGETLB_PAGE is not set
842CONFIG_RAMFS=y
843# CONFIG_CONFIGFS_FS is not set
844
845#
846# Miscellaneous filesystems
847#
848# CONFIG_ADFS_FS is not set
849# CONFIG_AFFS_FS is not set
850# CONFIG_HFS_FS is not set
851# CONFIG_HFSPLUS_FS is not set
852# CONFIG_BEFS_FS is not set
853# CONFIG_BFS_FS is not set
854# CONFIG_EFS_FS is not set
855# CONFIG_CRAMFS is not set
856# CONFIG_VXFS_FS is not set
857# CONFIG_HPFS_FS is not set
858# CONFIG_QNX4FS_FS is not set
859# CONFIG_SYSV_FS is not set
860# CONFIG_UFS_FS is not set
861
862#
863# Network File Systems
864#
865CONFIG_NFS_FS=y
866CONFIG_NFS_V3=y
867# CONFIG_NFS_V3_ACL is not set
868# CONFIG_NFS_V4 is not set
869# CONFIG_NFS_DIRECTIO is not set
870CONFIG_NFSD=y
871# CONFIG_NFSD_V3 is not set
872CONFIG_NFSD_TCP=y
873CONFIG_ROOT_NFS=y
874CONFIG_LOCKD=y
875CONFIG_LOCKD_V4=y
876CONFIG_EXPORTFS=y
877CONFIG_NFS_COMMON=y
878CONFIG_SUNRPC=y
879# CONFIG_SUNRPC_BIND34 is not set
880# CONFIG_RPCSEC_GSS_KRB5 is not set
881# CONFIG_RPCSEC_GSS_SPKM3 is not set
882# CONFIG_SMB_FS is not set
883# CONFIG_CIFS is not set
884# CONFIG_NCP_FS is not set
885# CONFIG_CODA_FS is not set
886# CONFIG_AFS_FS is not set
887
888#
889# Partition Types
890#
891CONFIG_PARTITION_ADVANCED=y
892# CONFIG_ACORN_PARTITION is not set
893# CONFIG_OSF_PARTITION is not set
894# CONFIG_AMIGA_PARTITION is not set
895# CONFIG_ATARI_PARTITION is not set
896# CONFIG_MAC_PARTITION is not set
897CONFIG_MSDOS_PARTITION=y
898# CONFIG_BSD_DISKLABEL is not set
899# CONFIG_MINIX_SUBPARTITION is not set
900# CONFIG_SOLARIS_X86_PARTITION is not set
901# CONFIG_UNIXWARE_DISKLABEL is not set
902CONFIG_LDM_PARTITION=y
903# CONFIG_LDM_DEBUG is not set
904# CONFIG_SGI_PARTITION is not set
905# CONFIG_ULTRIX_PARTITION is not set
906# CONFIG_SUN_PARTITION is not set
907# CONFIG_KARMA_PARTITION is not set
908# CONFIG_EFI_PARTITION is not set
909# CONFIG_SYSV68_PARTITION is not set
910
911#
912# Native Language Support
913#
914CONFIG_NLS=y
915CONFIG_NLS_DEFAULT="iso8859-1"
916# CONFIG_NLS_CODEPAGE_437 is not set
917# CONFIG_NLS_CODEPAGE_737 is not set
918# CONFIG_NLS_CODEPAGE_775 is not set
919# CONFIG_NLS_CODEPAGE_850 is not set
920# CONFIG_NLS_CODEPAGE_852 is not set
921# CONFIG_NLS_CODEPAGE_855 is not set
922# CONFIG_NLS_CODEPAGE_857 is not set
923# CONFIG_NLS_CODEPAGE_860 is not set
924# CONFIG_NLS_CODEPAGE_861 is not set
925# CONFIG_NLS_CODEPAGE_862 is not set
926# CONFIG_NLS_CODEPAGE_863 is not set
927# CONFIG_NLS_CODEPAGE_864 is not set
928# CONFIG_NLS_CODEPAGE_865 is not set
929# CONFIG_NLS_CODEPAGE_866 is not set
930# CONFIG_NLS_CODEPAGE_869 is not set
931# CONFIG_NLS_CODEPAGE_936 is not set
932# CONFIG_NLS_CODEPAGE_950 is not set
933# CONFIG_NLS_CODEPAGE_932 is not set
934# CONFIG_NLS_CODEPAGE_949 is not set
935# CONFIG_NLS_CODEPAGE_874 is not set
936# CONFIG_NLS_ISO8859_8 is not set
937# CONFIG_NLS_CODEPAGE_1250 is not set
938# CONFIG_NLS_CODEPAGE_1251 is not set
939# CONFIG_NLS_ASCII is not set
940# CONFIG_NLS_ISO8859_1 is not set
941# CONFIG_NLS_ISO8859_2 is not set
942# CONFIG_NLS_ISO8859_3 is not set
943# CONFIG_NLS_ISO8859_4 is not set
944# CONFIG_NLS_ISO8859_5 is not set
945# CONFIG_NLS_ISO8859_6 is not set
946# CONFIG_NLS_ISO8859_7 is not set
947# CONFIG_NLS_ISO8859_9 is not set
948# CONFIG_NLS_ISO8859_13 is not set
949# CONFIG_NLS_ISO8859_14 is not set
950# CONFIG_NLS_ISO8859_15 is not set
951# CONFIG_NLS_KOI8_R is not set
952# CONFIG_NLS_KOI8_U is not set
953# CONFIG_NLS_UTF8 is not set
954
955#
956# Distributed Lock Manager
957#
958# CONFIG_DLM is not set
959# CONFIG_UCC_SLOW is not set
960
961#
962# Library routines
963#
964CONFIG_BITREVERSE=y
965# CONFIG_CRC_CCITT is not set
966# CONFIG_CRC16 is not set
967# CONFIG_CRC_ITU_T is not set
968CONFIG_CRC32=y
969# CONFIG_CRC7 is not set
970# CONFIG_LIBCRC32C is not set
971CONFIG_PLIST=y
972CONFIG_HAS_IOMEM=y
973CONFIG_HAS_IOPORT=y
974CONFIG_HAS_DMA=y
975
976#
977# Instrumentation Support
978#
979# CONFIG_PROFILING is not set
980
981#
982# Kernel hacking
983#
984# CONFIG_PRINTK_TIME is not set
985CONFIG_ENABLE_MUST_CHECK=y
986# CONFIG_MAGIC_SYSRQ is not set
987# CONFIG_UNUSED_SYMBOLS is not set
988# CONFIG_DEBUG_FS is not set
989# CONFIG_HEADERS_CHECK is not set
990CONFIG_DEBUG_KERNEL=y
991CONFIG_DEBUG_SHIRQ=y
992CONFIG_DETECT_SOFTLOCKUP=y
993CONFIG_SCHED_DEBUG=y
994# CONFIG_SCHEDSTATS is not set
995# CONFIG_TIMER_STATS is not set
996# CONFIG_DEBUG_SLAB is not set
997# CONFIG_DEBUG_RT_MUTEXES is not set
998# CONFIG_RT_MUTEX_TESTER is not set
999# CONFIG_DEBUG_SPINLOCK is not set
1000# CONFIG_DEBUG_MUTEXES is not set
1001# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1002# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1003# CONFIG_DEBUG_KOBJECT is not set
1004# CONFIG_DEBUG_HIGHMEM is not set
1005CONFIG_DEBUG_BUGVERBOSE=y
1006CONFIG_DEBUG_INFO=y
1007# CONFIG_DEBUG_VM is not set
1008# CONFIG_DEBUG_LIST is not set
1009CONFIG_FORCED_INLINING=y
1010# CONFIG_FAULT_INJECTION is not set
1011# CONFIG_DEBUG_STACKOVERFLOW is not set
1012# CONFIG_DEBUG_STACK_USAGE is not set
1013# CONFIG_DEBUG_PAGEALLOC is not set
1014# CONFIG_DEBUGGER is not set
1015# CONFIG_BDI_SWITCH is not set
1016# CONFIG_PPC_EARLY_DEBUG is not set
1017
1018#
1019# Security options
1020#
1021# CONFIG_KEYS is not set
1022# CONFIG_SECURITY is not set
1023# CONFIG_CRYPTO is not set
diff --git a/arch/powerpc/platforms/86xx/Kconfig b/arch/powerpc/platforms/86xx/Kconfig
index 685b2fbbbe00..21d113536b86 100644
--- a/arch/powerpc/platforms/86xx/Kconfig
+++ b/arch/powerpc/platforms/86xx/Kconfig
@@ -11,6 +11,12 @@ config MPC8641_HPCN
11 help 11 help
12 This option enables support for the MPC8641 HPCN board. 12 This option enables support for the MPC8641 HPCN board.
13 13
14config MPC8610_HPCD
15 bool "Freescale MPC8610 HPCD"
16 select DEFAULT_UIMAGE
17 help
18 This option enables support for the MPC8610 HPCD board.
19
14endchoice 20endchoice
15 21
16config MPC8641 22config MPC8641
@@ -19,3 +25,10 @@ config MPC8641
19 select PPC_UDBG_16550 25 select PPC_UDBG_16550
20 select MPIC 26 select MPIC
21 default y if MPC8641_HPCN 27 default y if MPC8641_HPCN
28
29config MPC8610
30 bool
31 select FSL_PCI if PCI
32 select PPC_UDBG_16550
33 select MPIC
34 default y if MPC8610_HPCD
diff --git a/arch/powerpc/platforms/86xx/Makefile b/arch/powerpc/platforms/86xx/Makefile
index 3376c7767f2d..c96706327eaa 100644
--- a/arch/powerpc/platforms/86xx/Makefile
+++ b/arch/powerpc/platforms/86xx/Makefile
@@ -4,3 +4,4 @@
4 4
5obj-$(CONFIG_SMP) += mpc86xx_smp.o 5obj-$(CONFIG_SMP) += mpc86xx_smp.o
6obj-$(CONFIG_MPC8641_HPCN) += mpc86xx_hpcn.o 6obj-$(CONFIG_MPC8641_HPCN) += mpc86xx_hpcn.o
7obj-$(CONFIG_MPC8610_HPCD) += mpc8610_hpcd.o
diff --git a/arch/powerpc/platforms/86xx/mpc8610_hpcd.c b/arch/powerpc/platforms/86xx/mpc8610_hpcd.c
new file mode 100644
index 000000000000..c794d88fa55f
--- /dev/null
+++ b/arch/powerpc/platforms/86xx/mpc8610_hpcd.c
@@ -0,0 +1,233 @@
1/*
2 * MPC8610 HPCD board specific routines
3 *
4 * Initial author: Xianghua Xiao <x.xiao@freescale.com>
5 * Recode: Jason Jin <jason.jin@freescale.com>
6 *
7 * Rewrite the interrupt routing. remove the 8259PIC support,
8 * All the integrated device in ULI use sideband interrupt.
9 *
10 * Copyright 2007 Freescale Semiconductor Inc.
11 *
12 * This program is free software; you can redistribute it and/or modify it
13 * under the terms of the GNU General Public License as published by the
14 * Free Software Foundation; either version 2 of the License, or (at your
15 * option) any later version.
16 */
17
18#include <linux/stddef.h>
19#include <linux/kernel.h>
20#include <linux/pci.h>
21#include <linux/kdev_t.h>
22#include <linux/delay.h>
23#include <linux/seq_file.h>
24#include <linux/of.h>
25
26#include <asm/system.h>
27#include <asm/time.h>
28#include <asm/machdep.h>
29#include <asm/pci-bridge.h>
30#include <asm/mpc86xx.h>
31#include <asm/prom.h>
32#include <mm/mmu_decl.h>
33#include <asm/udbg.h>
34
35#include <asm/mpic.h>
36
37#include <sysdev/fsl_pci.h>
38#include <sysdev/fsl_soc.h>
39
40#define MPC86XX_RSTCR_OFFSET (0xe00b0) /* Reset Control Register */
41
42void __init
43mpc86xx_hpcd_init_irq(void)
44{
45 struct mpic *mpic1;
46 struct device_node *np;
47 struct resource res;
48
49 /* Determine PIC address. */
50 np = of_find_node_by_type(NULL, "open-pic");
51 if (np == NULL)
52 return;
53 of_address_to_resource(np, 0, &res);
54
55 /* Alloc mpic structure and per isu has 16 INT entries. */
56 mpic1 = mpic_alloc(np, res.start,
57 MPIC_PRIMARY | MPIC_WANTS_RESET | MPIC_BIG_ENDIAN,
58 0, 256, " MPIC ");
59 BUG_ON(mpic1 == NULL);
60
61 mpic_init(mpic1);
62}
63
64#ifdef CONFIG_PCI
65static void __devinit quirk_uli1575(struct pci_dev *dev)
66{
67 u32 temp32;
68
69 /* Disable INTx */
70 pci_read_config_dword(dev, 0x48, &temp32);
71 pci_write_config_dword(dev, 0x48, (temp32 | 1<<26));
72
73 /* Enable sideband interrupt */
74 pci_read_config_dword(dev, 0x90, &temp32);
75 pci_write_config_dword(dev, 0x90, (temp32 | 1<<22));
76}
77
78static void __devinit quirk_uli5288(struct pci_dev *dev)
79{
80 unsigned char c;
81 unsigned short temp;
82
83 /* Interrupt Disable, Needed when SATA disabled */
84 pci_read_config_word(dev, PCI_COMMAND, &temp);
85 temp |= 1<<10;
86 pci_write_config_word(dev, PCI_COMMAND, temp);
87
88 pci_read_config_byte(dev, 0x83, &c);
89 c |= 0x80;
90 pci_write_config_byte(dev, 0x83, c);
91
92 pci_write_config_byte(dev, PCI_CLASS_PROG, 0x01);
93 pci_write_config_byte(dev, PCI_CLASS_DEVICE, 0x06);
94
95 pci_read_config_byte(dev, 0x83, &c);
96 c &= 0x7f;
97 pci_write_config_byte(dev, 0x83, c);
98}
99
100/*
101 * Since 8259PIC was disabled on the board, the IDE device can not
102 * use the legacy IRQ, we need to let the IDE device work under
103 * native mode and use the interrupt line like other PCI devices.
104 * IRQ14 is a sideband interrupt from IDE device to CPU and we use this
105 * as the interrupt for IDE device.
106 */
107static void __devinit quirk_uli5229(struct pci_dev *dev)
108{
109 unsigned char c;
110
111 pci_read_config_byte(dev, 0x4b, &c);
112 c |= 0x10;
113 pci_write_config_byte(dev, 0x4b, c);
114}
115
116/*
117 * SATA interrupt pin bug fix
118 * There's a chip bug for 5288, The interrupt pin should be 2,
119 * not the read only value 1, So it use INTB#, not INTA# which
120 * actually used by the IDE device 5229.
121 * As of this bug, during the PCI initialization, 5288 read the
122 * irq of IDE device from the device tree, this function fix this
123 * bug by re-assigning a correct irq to 5288.
124 *
125 */
126static void __devinit final_uli5288(struct pci_dev *dev)
127{
128 struct pci_controller *hose = pci_bus_to_host(dev->bus);
129 struct device_node *hosenode = hose ? hose->arch_data : NULL;
130 struct of_irq oirq;
131 int virq, pin = 2;
132 u32 laddr[3];
133
134 if (!hosenode)
135 return;
136
137 laddr[0] = (hose->first_busno << 16) | (PCI_DEVFN(31, 0) << 8);
138 laddr[1] = laddr[2] = 0;
139 of_irq_map_raw(hosenode, &pin, 1, laddr, &oirq);
140 virq = irq_create_of_mapping(oirq.controller, oirq.specifier,
141 oirq.size);
142 dev->irq = virq;
143}
144
145DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AL, 0x1575, quirk_uli1575);
146DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AL, 0x5288, quirk_uli5288);
147DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AL, 0x5229, quirk_uli5229);
148DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AL, 0x5288, final_uli5288);
149#endif /* CONFIG_PCI */
150
151static void __init
152mpc86xx_hpcd_setup_arch(void)
153{
154#ifdef CONFIG_PCI
155 struct device_node *np;
156#endif
157 if (ppc_md.progress)
158 ppc_md.progress("mpc86xx_hpcd_setup_arch()", 0);
159
160#ifdef CONFIG_PCI
161 for_each_node_by_type(np, "pci") {
162 if (of_device_is_compatible(np, "fsl,mpc8610-pci")
163 || of_device_is_compatible(np, "fsl,mpc8641-pcie")) {
164 struct resource rsrc;
165 of_address_to_resource(np, 0, &rsrc);
166 if ((rsrc.start & 0xfffff) == 0xa000)
167 fsl_add_bridge(np, 1);
168 else
169 fsl_add_bridge(np, 0);
170 }
171 }
172#endif
173
174 printk("MPC86xx HPCD board from Freescale Semiconductor\n");
175}
176
177/*
178 * Called very early, device-tree isn't unflattened
179 */
180static int __init mpc86xx_hpcd_probe(void)
181{
182 unsigned long root = of_get_flat_dt_root();
183
184 if (of_flat_dt_is_compatible(root, "fsl,MPC8610HPCD"))
185 return 1; /* Looks good */
186
187 return 0;
188}
189
190void
191mpc86xx_restart(char *cmd)
192{
193 void __iomem *rstcr;
194
195 rstcr = ioremap(get_immrbase() + MPC86XX_RSTCR_OFFSET, 0x100);
196
197 local_irq_disable();
198
199 /* Assert reset request to Reset Control Register */
200 out_be32(rstcr, 0x2);
201
202 /* not reached */
203}
204
205long __init
206mpc86xx_time_init(void)
207{
208 unsigned int temp;
209
210 /* Set the time base to zero */
211 mtspr(SPRN_TBWL, 0);
212 mtspr(SPRN_TBWU, 0);
213
214 temp = mfspr(SPRN_HID0);
215 temp |= HID0_TBEN;
216 mtspr(SPRN_HID0, temp);
217 asm volatile("isync");
218
219 return 0;
220}
221
222define_machine(mpc86xx_hpcd) {
223 .name = "MPC86xx HPCD",
224 .probe = mpc86xx_hpcd_probe,
225 .setup_arch = mpc86xx_hpcd_setup_arch,
226 .init_IRQ = mpc86xx_hpcd_init_irq,
227 .get_irq = mpic_get_irq,
228 .restart = mpc86xx_restart,
229 .time_init = mpc86xx_time_init,
230 .calibrate_decr = generic_calibrate_decr,
231 .progress = udbg_progress,
232 .pcibios_fixup_bus = fsl_pcibios_fixup_bus,
233};