summaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
authorMarcin Juszkiewicz <hrw@openedhand.com>2007-10-08 09:17:11 +0000
committerMarcin Juszkiewicz <hrw@openedhand.com>2007-10-08 09:17:11 +0000
commita68b4316239c67fc6e9cf12e562a6e2375754182 (patch)
tree6b16a8c5ac19d296a66f1dd4a5f2dda7d58851cd /meta
parentc8587daecba885c0ba5438aaea66281aa998ac34 (diff)
downloadpoky-a68b4316239c67fc6e9cf12e562a6e2375754182.tar.gz
linux 2.6.22: kernel for cm-x270 taken from OE
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@2853 311d38ba-8fff-0310-9ca6-ca027cbcb966
Diffstat (limited to 'meta')
-rw-r--r--meta/packages/linux/linux-2.6.22/cm-x270/0001-cm-x270-base2.patch2850
-rw-r--r--meta/packages/linux/linux-2.6.22/cm-x270/0002-cm-x270-match-type.patch25
-rw-r--r--meta/packages/linux/linux-2.6.22/cm-x270/0003-cm-x270-ide.patch186
-rw-r--r--meta/packages/linux/linux-2.6.22/cm-x270/0004-cm-x270-it8152.patch496
-rw-r--r--meta/packages/linux/linux-2.6.22/cm-x270/0005-cm-x270-pcmcia.patch228
-rw-r--r--meta/packages/linux/linux-2.6.22/cm-x270/0006-ramdisk_load.patch80
-rw-r--r--meta/packages/linux/linux-2.6.22/cm-x270/0007-mmcsd_large_cards-r0.patch36
-rw-r--r--meta/packages/linux/linux-2.6.22/cm-x270/0008-cm-x270-nand-simplify-name.patch25
-rw-r--r--meta/packages/linux/linux-2.6.22/cm-x270/0009-cursor-fix.patch43
-rw-r--r--meta/packages/linux/linux-2.6.22/cm-x270/defconfig1234
-rw-r--r--meta/packages/linux/linux.inc137
-rw-r--r--meta/packages/linux/linux_2.6.22.bb56
12 files changed, 5396 insertions, 0 deletions
diff --git a/meta/packages/linux/linux-2.6.22/cm-x270/0001-cm-x270-base2.patch b/meta/packages/linux/linux-2.6.22/cm-x270/0001-cm-x270-base2.patch
new file mode 100644
index 0000000000..9a635c5cbc
--- /dev/null
+++ b/meta/packages/linux/linux-2.6.22/cm-x270/0001-cm-x270-base2.patch
@@ -0,0 +1,2850 @@
1From 0db989f536f29c343bb4e42dc0b34d892d86de60 Mon Sep 17 00:00:00 2001
2From: Cliff Brake <cbrake@happy.dev.bec-systems.com>
3Date: Fri, 20 Jul 2007 18:55:59 -0400
4Subject: [PATCH] cm-x270-base2
5
6---
7 arch/arm/Kconfig | 8 +-
8 arch/arm/configs/cm_x270_defconfig | 1567 +++++++++++++++++++++++++++++++++++
9 arch/arm/mach-pxa/Kconfig | 5 +
10 arch/arm/mach-pxa/Makefile | 7 +
11 arch/arm/mach-pxa/cm-x270.c | 821 ++++++++++++++++++
12 drivers/leds/Kconfig | 6 +
13 drivers/leds/Makefile | 1 +
14 drivers/leds/leds-cm-x270.c | 126 +++
15 drivers/net/Kconfig | 8 +
16 drivers/net/dm9000.c | 6 +
17 include/asm-arm/arch-pxa/cm-x270.h | 71 ++
18 include/asm-arm/arch-pxa/hardware.h | 11 +
19 include/asm-arm/arch-pxa/irqs.h | 20 +
20 include/asm-arm/memory.h | 10 +
21 14 files changed, 2666 insertions(+), 1 deletions(-)
22 create mode 100644 arch/arm/configs/cm_x270_defconfig
23 create mode 100644 arch/arm/mach-pxa/cm-x270.c
24 create mode 100644 drivers/leds/leds-cm-x270.c
25 create mode 100644 include/asm-arm/arch-pxa/cm-x270.h
26
27diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
28index 50d9f3e..dec0a27 100644
29--- a/arch/arm/Kconfig
30+++ b/arch/arm/Kconfig
31@@ -519,7 +519,7 @@ config ISA_DMA_API
32 bool
33
34 config PCI
35- bool "PCI support" if ARCH_INTEGRATOR_AP || ARCH_VERSATILE_PB || ARCH_IXP4XX || ARCH_KS8695
36+ bool "PCI support" if ARCH_INTEGRATOR_AP || ARCH_VERSATILE_PB || ARCH_IXP4XX || ARCH_KS8695 || MACH_ARMCORE
37 help
38 Find out whether you have a PCI motherboard. PCI is the name of a
39 bus system, i.e. the way the CPU talks to the other stuff inside
40@@ -537,6 +537,12 @@ config PCI_HOST_VIA82C505
41 depends on PCI && ARCH_SHARK
42 default y
43
44+config PCI_HOST_ITE8152
45+ bool
46+ depends on PCI && MACH_ARMCORE
47+ default y
48+ select DMABOUNCE
49+
50 source "drivers/pci/Kconfig"
51
52 source "drivers/pcmcia/Kconfig"
53diff --git a/arch/arm/configs/cm_x270_defconfig b/arch/arm/configs/cm_x270_defconfig
54new file mode 100644
55index 0000000..f728363
56--- /dev/null
57+++ b/arch/arm/configs/cm_x270_defconfig
58@@ -0,0 +1,1567 @@
59+#
60+# Automatically generated make config: don't edit
61+# Linux kernel version: 2.6.21-rc4
62+# Wed Apr 4 16:42:03 2007
63+#
64+CONFIG_ARM=y
65+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
66+CONFIG_GENERIC_GPIO=y
67+CONFIG_GENERIC_TIME=y
68+CONFIG_MMU=y
69+# CONFIG_NO_IOPORT is not set
70+CONFIG_GENERIC_HARDIRQS=y
71+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
72+CONFIG_HARDIRQS_SW_RESEND=y
73+CONFIG_GENERIC_IRQ_PROBE=y
74+CONFIG_RWSEM_GENERIC_SPINLOCK=y
75+# CONFIG_ARCH_HAS_ILOG2_U32 is not set
76+# CONFIG_ARCH_HAS_ILOG2_U64 is not set
77+CONFIG_GENERIC_HWEIGHT=y
78+CONFIG_GENERIC_CALIBRATE_DELAY=y
79+CONFIG_ZONE_DMA=y
80+CONFIG_ARCH_MTD_XIP=y
81+CONFIG_VECTORS_BASE=0xffff0000
82+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
83+
84+#
85+# Code maturity level options
86+#
87+CONFIG_EXPERIMENTAL=y
88+CONFIG_BROKEN_ON_SMP=y
89+CONFIG_INIT_ENV_ARG_LIMIT=32
90+
91+#
92+# General setup
93+#
94+CONFIG_LOCALVERSION=""
95+# CONFIG_LOCALVERSION_AUTO is not set
96+CONFIG_SWAP=y
97+CONFIG_SYSVIPC=y
98+# CONFIG_IPC_NS is not set
99+CONFIG_SYSVIPC_SYSCTL=y
100+# CONFIG_POSIX_MQUEUE is not set
101+# CONFIG_BSD_PROCESS_ACCT is not set
102+# CONFIG_TASKSTATS is not set
103+# CONFIG_UTS_NS is not set
104+# CONFIG_AUDIT is not set
105+CONFIG_IKCONFIG=y
106+CONFIG_IKCONFIG_PROC=y
107+CONFIG_SYSFS_DEPRECATED=y
108+# CONFIG_RELAY is not set
109+CONFIG_BLK_DEV_INITRD=y
110+CONFIG_INITRAMFS_SOURCE=""
111+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
112+CONFIG_SYSCTL=y
113+CONFIG_EMBEDDED=y
114+CONFIG_UID16=y
115+CONFIG_SYSCTL_SYSCALL=y
116+CONFIG_KALLSYMS=y
117+# CONFIG_KALLSYMS_ALL is not set
118+# CONFIG_KALLSYMS_EXTRA_PASS is not set
119+CONFIG_HOTPLUG=y
120+CONFIG_PRINTK=y
121+CONFIG_BUG=y
122+CONFIG_ELF_CORE=y
123+CONFIG_BASE_FULL=y
124+CONFIG_FUTEX=y
125+CONFIG_EPOLL=y
126+CONFIG_SHMEM=y
127+CONFIG_SLAB=y
128+CONFIG_VM_EVENT_COUNTERS=y
129+CONFIG_RT_MUTEXES=y
130+# CONFIG_TINY_SHMEM is not set
131+CONFIG_BASE_SMALL=0
132+# CONFIG_SLOB is not set
133+
134+#
135+# Loadable module support
136+#
137+CONFIG_MODULES=y
138+CONFIG_MODULE_UNLOAD=y
139+CONFIG_MODULE_FORCE_UNLOAD=y
140+# CONFIG_MODVERSIONS is not set
141+# CONFIG_MODULE_SRCVERSION_ALL is not set
142+CONFIG_KMOD=y
143+
144+#
145+# Block layer
146+#
147+CONFIG_BLOCK=y
148+# CONFIG_LBD is not set
149+# CONFIG_BLK_DEV_IO_TRACE is not set
150+# CONFIG_LSF is not set
151+
152+#
153+# IO Schedulers
154+#
155+CONFIG_IOSCHED_NOOP=y
156+CONFIG_IOSCHED_AS=y
157+CONFIG_IOSCHED_DEADLINE=y
158+CONFIG_IOSCHED_CFQ=y
159+CONFIG_DEFAULT_AS=y
160+# CONFIG_DEFAULT_DEADLINE is not set
161+# CONFIG_DEFAULT_CFQ is not set
162+# CONFIG_DEFAULT_NOOP is not set
163+CONFIG_DEFAULT_IOSCHED="anticipatory"
164+
165+#
166+# System Type
167+#
168+# CONFIG_ARCH_AAEC2000 is not set
169+# CONFIG_ARCH_INTEGRATOR is not set
170+# CONFIG_ARCH_REALVIEW is not set
171+# CONFIG_ARCH_VERSATILE is not set
172+# CONFIG_ARCH_AT91 is not set
173+# CONFIG_ARCH_CLPS7500 is not set
174+# CONFIG_ARCH_CLPS711X is not set
175+# CONFIG_ARCH_CO285 is not set
176+# CONFIG_ARCH_EBSA110 is not set
177+# CONFIG_ARCH_EP93XX is not set
178+# CONFIG_ARCH_FOOTBRIDGE is not set
179+# CONFIG_ARCH_NETX is not set
180+# CONFIG_ARCH_H720X is not set
181+# CONFIG_ARCH_IMX is not set
182+# CONFIG_ARCH_IOP32X is not set
183+# CONFIG_ARCH_IOP33X is not set
184+# CONFIG_ARCH_IOP13XX is not set
185+# CONFIG_ARCH_IXP4XX is not set
186+# CONFIG_ARCH_IXP2000 is not set
187+# CONFIG_ARCH_IXP23XX is not set
188+# CONFIG_ARCH_L7200 is not set
189+# CONFIG_ARCH_NS9XXX is not set
190+# CONFIG_ARCH_PNX4008 is not set
191+CONFIG_ARCH_PXA=y
192+# CONFIG_ARCH_RPC is not set
193+# CONFIG_ARCH_SA1100 is not set
194+# CONFIG_ARCH_S3C2410 is not set
195+# CONFIG_ARCH_SHARK is not set
196+# CONFIG_ARCH_LH7A40X is not set
197+# CONFIG_ARCH_OMAP is not set
198+CONFIG_DMABOUNCE=y
199+
200+#
201+# Intel PXA2xx Implementations
202+#
203+# CONFIG_ARCH_LUBBOCK is not set
204+# CONFIG_MACH_LOGICPD_PXA270 is not set
205+# CONFIG_MACH_MAINSTONE is not set
206+# CONFIG_ARCH_PXA_IDP is not set
207+# CONFIG_PXA_SHARPSL is not set
208+# CONFIG_MACH_TRIZEPS4 is not set
209+CONFIG_MACH_ARMCORE=y
210+CONFIG_PXA27x=y
211+
212+#
213+# Processor Type
214+#
215+CONFIG_CPU_32=y
216+CONFIG_CPU_XSCALE=y
217+CONFIG_CPU_32v5=y
218+CONFIG_CPU_ABRT_EV5T=y
219+CONFIG_CPU_CACHE_VIVT=y
220+CONFIG_CPU_TLB_V4WBI=y
221+CONFIG_CPU_CP15=y
222+CONFIG_CPU_CP15_MMU=y
223+
224+#
225+# Processor Features
226+#
227+CONFIG_ARM_THUMB=y
228+# CONFIG_CPU_DCACHE_DISABLE is not set
229+# CONFIG_OUTER_CACHE is not set
230+CONFIG_IWMMXT=y
231+CONFIG_XSCALE_PMU=y
232+
233+#
234+# Bus support
235+#
236+CONFIG_PCI=y
237+CONFIG_PCI_HOST_ITE8152=y
238+# CONFIG_PCI_DEBUG is not set
239+
240+#
241+# PCCARD (PCMCIA/CardBus) support
242+#
243+CONFIG_PCCARD=y
244+# CONFIG_PCMCIA_DEBUG is not set
245+CONFIG_PCMCIA=m
246+# CONFIG_PCMCIA_LOAD_CIS is not set
247+CONFIG_PCMCIA_IOCTL=y
248+CONFIG_CARDBUS=y
249+
250+#
251+# PC-card bridges
252+#
253+# CONFIG_YENTA is not set
254+# CONFIG_PD6729 is not set
255+# CONFIG_I82092 is not set
256+CONFIG_PCMCIA_PXA2XX=m
257+
258+#
259+# Kernel Features
260+#
261+# CONFIG_PREEMPT is not set
262+# CONFIG_NO_IDLE_HZ is not set
263+CONFIG_HZ=100
264+# CONFIG_AEABI is not set
265+# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
266+CONFIG_SELECT_MEMORY_MODEL=y
267+CONFIG_FLATMEM_MANUAL=y
268+# CONFIG_DISCONTIGMEM_MANUAL is not set
269+# CONFIG_SPARSEMEM_MANUAL is not set
270+CONFIG_FLATMEM=y
271+CONFIG_FLAT_NODE_MEM_MAP=y
272+# CONFIG_SPARSEMEM_STATIC is not set
273+CONFIG_SPLIT_PTLOCK_CPUS=4096
274+# CONFIG_RESOURCES_64BIT is not set
275+CONFIG_ZONE_DMA_FLAG=1
276+CONFIG_ALIGNMENT_TRAP=y
277+
278+#
279+# Boot options
280+#
281+CONFIG_ZBOOT_ROM_TEXT=0x0
282+CONFIG_ZBOOT_ROM_BSS=0x0
283+CONFIG_CMDLINE=""
284+# CONFIG_XIP_KERNEL is not set
285+# CONFIG_KEXEC is not set
286+
287+#
288+# Floating point emulation
289+#
290+
291+#
292+# At least one emulation must be selected
293+#
294+CONFIG_FPE_NWFPE=y
295+# CONFIG_FPE_NWFPE_XP is not set
296+# CONFIG_FPE_FASTFPE is not set
297+
298+#
299+# Userspace binary formats
300+#
301+CONFIG_BINFMT_ELF=y
302+# CONFIG_BINFMT_AOUT is not set
303+# CONFIG_BINFMT_MISC is not set
304+# CONFIG_ARTHUR is not set
305+
306+#
307+# Power management options
308+#
309+CONFIG_PM=y
310+# CONFIG_PM_LEGACY is not set
311+# CONFIG_PM_DEBUG is not set
312+# CONFIG_PM_SYSFS_DEPRECATED is not set
313+# CONFIG_APM_EMULATION is not set
314+
315+#
316+# Networking
317+#
318+CONFIG_NET=y
319+
320+#
321+# Networking options
322+#
323+# CONFIG_NETDEBUG is not set
324+CONFIG_PACKET=y
325+# CONFIG_PACKET_MMAP is not set
326+CONFIG_UNIX=y
327+CONFIG_XFRM=y
328+# CONFIG_XFRM_USER is not set
329+# CONFIG_XFRM_SUB_POLICY is not set
330+# CONFIG_XFRM_MIGRATE is not set
331+# CONFIG_NET_KEY is not set
332+CONFIG_INET=y
333+# CONFIG_IP_MULTICAST is not set
334+# CONFIG_IP_ADVANCED_ROUTER is not set
335+CONFIG_IP_FIB_HASH=y
336+CONFIG_IP_PNP=y
337+CONFIG_IP_PNP_DHCP=y
338+CONFIG_IP_PNP_BOOTP=y
339+# CONFIG_IP_PNP_RARP is not set
340+# CONFIG_NET_IPIP is not set
341+# CONFIG_NET_IPGRE is not set
342+# CONFIG_ARPD is not set
343+# CONFIG_SYN_COOKIES is not set
344+# CONFIG_INET_AH is not set
345+# CONFIG_INET_ESP is not set
346+# CONFIG_INET_IPCOMP is not set
347+# CONFIG_INET_XFRM_TUNNEL is not set
348+# CONFIG_INET_TUNNEL is not set
349+CONFIG_INET_XFRM_MODE_TRANSPORT=y
350+CONFIG_INET_XFRM_MODE_TUNNEL=y
351+CONFIG_INET_XFRM_MODE_BEET=y
352+CONFIG_INET_DIAG=y
353+CONFIG_INET_TCP_DIAG=y
354+# CONFIG_TCP_CONG_ADVANCED is not set
355+CONFIG_TCP_CONG_CUBIC=y
356+CONFIG_DEFAULT_TCP_CONG="cubic"
357+# CONFIG_TCP_MD5SIG is not set
358+# CONFIG_IPV6 is not set
359+# CONFIG_INET6_XFRM_TUNNEL is not set
360+# CONFIG_INET6_TUNNEL is not set
361+# CONFIG_NETWORK_SECMARK is not set
362+# CONFIG_NETFILTER is not set
363+
364+#
365+# DCCP Configuration (EXPERIMENTAL)
366+#
367+# CONFIG_IP_DCCP is not set
368+
369+#
370+# SCTP Configuration (EXPERIMENTAL)
371+#
372+# CONFIG_IP_SCTP is not set
373+
374+#
375+# TIPC Configuration (EXPERIMENTAL)
376+#
377+# CONFIG_TIPC is not set
378+# CONFIG_ATM is not set
379+# CONFIG_BRIDGE is not set
380+# CONFIG_VLAN_8021Q is not set
381+# CONFIG_DECNET is not set
382+# CONFIG_LLC2 is not set
383+# CONFIG_IPX is not set
384+# CONFIG_ATALK is not set
385+# CONFIG_X25 is not set
386+# CONFIG_LAPB is not set
387+# CONFIG_ECONET is not set
388+# CONFIG_WAN_ROUTER is not set
389+
390+#
391+# QoS and/or fair queueing
392+#
393+# CONFIG_NET_SCHED is not set
394+
395+#
396+# Network testing
397+#
398+# CONFIG_NET_PKTGEN is not set
399+# CONFIG_HAMRADIO is not set
400+# CONFIG_IRDA is not set
401+# CONFIG_BT is not set
402+CONFIG_IEEE80211=m
403+# CONFIG_IEEE80211_DEBUG is not set
404+CONFIG_IEEE80211_CRYPT_WEP=m
405+CONFIG_IEEE80211_CRYPT_CCMP=m
406+# CONFIG_IEEE80211_CRYPT_TKIP is not set
407+# CONFIG_IEEE80211_SOFTMAC is not set
408+CONFIG_WIRELESS_EXT=y
409+
410+#
411+# Device Drivers
412+#
413+
414+#
415+# Generic Driver Options
416+#
417+CONFIG_STANDALONE=y
418+CONFIG_PREVENT_FIRMWARE_BUILD=y
419+CONFIG_FW_LOADER=y
420+# CONFIG_DEBUG_DRIVER is not set
421+# CONFIG_DEBUG_DEVRES is not set
422+# CONFIG_SYS_HYPERVISOR is not set
423+
424+#
425+# Connector - unified userspace <-> kernelspace linker
426+#
427+# CONFIG_CONNECTOR is not set
428+
429+#
430+# Memory Technology Devices (MTD)
431+#
432+CONFIG_MTD=m
433+# CONFIG_MTD_DEBUG is not set
434+# CONFIG_MTD_CONCAT is not set
435+CONFIG_MTD_PARTITIONS=y
436+# CONFIG_MTD_REDBOOT_PARTS is not set
437+# CONFIG_MTD_AFS_PARTS is not set
438+
439+#
440+# User Modules And Translation Layers
441+#
442+CONFIG_MTD_CHAR=m
443+CONFIG_MTD_BLKDEVS=m
444+CONFIG_MTD_BLOCK=m
445+# CONFIG_MTD_BLOCK_RO is not set
446+# CONFIG_FTL is not set
447+# CONFIG_NFTL is not set
448+# CONFIG_INFTL is not set
449+# CONFIG_RFD_FTL is not set
450+# CONFIG_SSFDC is not set
451+
452+#
453+# RAM/ROM/Flash chip drivers
454+#
455+# CONFIG_MTD_CFI is not set
456+# CONFIG_MTD_JEDECPROBE is not set
457+CONFIG_MTD_MAP_BANK_WIDTH_1=y
458+CONFIG_MTD_MAP_BANK_WIDTH_2=y
459+CONFIG_MTD_MAP_BANK_WIDTH_4=y
460+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
461+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
462+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
463+CONFIG_MTD_CFI_I1=y
464+CONFIG_MTD_CFI_I2=y
465+# CONFIG_MTD_CFI_I4 is not set
466+# CONFIG_MTD_CFI_I8 is not set
467+# CONFIG_MTD_RAM is not set
468+# CONFIG_MTD_ROM is not set
469+# CONFIG_MTD_ABSENT is not set
470+# CONFIG_MTD_OBSOLETE_CHIPS is not set
471+
472+#
473+# Mapping drivers for chip access
474+#
475+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
476+# CONFIG_MTD_SHARP_SL is not set
477+# CONFIG_MTD_PLATRAM is not set
478+
479+#
480+# Self-contained MTD device drivers
481+#
482+# CONFIG_MTD_PMC551 is not set
483+# CONFIG_MTD_SLRAM is not set
484+# CONFIG_MTD_PHRAM is not set
485+# CONFIG_MTD_MTDRAM is not set
486+# CONFIG_MTD_BLOCK2MTD is not set
487+
488+#
489+# Disk-On-Chip Device Drivers
490+#
491+# CONFIG_MTD_DOC2000 is not set
492+# CONFIG_MTD_DOC2001 is not set
493+# CONFIG_MTD_DOC2001PLUS is not set
494+
495+#
496+# NAND Flash Device Drivers
497+#
498+CONFIG_MTD_NAND=m
499+# CONFIG_MTD_NAND_VERIFY_WRITE is not set
500+# CONFIG_MTD_NAND_ECC_SMC is not set
501+# CONFIG_MTD_NAND_H1900 is not set
502+CONFIG_MTD_NAND_IDS=m
503+# CONFIG_MTD_NAND_DISKONCHIP is not set
504+# CONFIG_MTD_NAND_SHARPSL is not set
505+# CONFIG_MTD_NAND_CAFE is not set
506+CONFIG_MTD_NAND_CM_X270=m
507+# CONFIG_MTD_NAND_NANDSIM is not set
508+
509+#
510+# OneNAND Flash Device Drivers
511+#
512+# CONFIG_MTD_ONENAND is not set
513+
514+#
515+# Parallel port support
516+#
517+# CONFIG_PARPORT is not set
518+
519+#
520+# Plug and Play support
521+#
522+# CONFIG_PNPACPI is not set
523+
524+#
525+# Block devices
526+#
527+# CONFIG_BLK_CPQ_DA is not set
528+# CONFIG_BLK_CPQ_CISS_DA is not set
529+# CONFIG_BLK_DEV_DAC960 is not set
530+# CONFIG_BLK_DEV_UMEM is not set
531+# CONFIG_BLK_DEV_COW_COMMON is not set
532+CONFIG_BLK_DEV_LOOP=y
533+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
534+# CONFIG_BLK_DEV_NBD is not set
535+# CONFIG_BLK_DEV_SX8 is not set
536+# CONFIG_BLK_DEV_UB is not set
537+CONFIG_BLK_DEV_RAM=y
538+CONFIG_BLK_DEV_RAM_COUNT=16
539+CONFIG_BLK_DEV_RAM_SIZE=12000
540+CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
541+# CONFIG_CDROM_PKTCDVD is not set
542+# CONFIG_ATA_OVER_ETH is not set
543+
544+#
545+# ATA/ATAPI/MFM/RLL support
546+#
547+CONFIG_IDE=m
548+CONFIG_IDE_MAX_HWIFS=4
549+CONFIG_BLK_DEV_IDE=m
550+
551+#
552+# Please see Documentation/ide.txt for help/info on IDE drives
553+#
554+# CONFIG_BLK_DEV_IDE_SATA is not set
555+CONFIG_BLK_DEV_IDEDISK=m
556+# CONFIG_IDEDISK_MULTI_MODE is not set
557+CONFIG_BLK_DEV_IDECS=m
558+# CONFIG_BLK_DEV_DELKIN is not set
559+CONFIG_BLK_DEV_IDECD=m
560+# CONFIG_BLK_DEV_IDETAPE is not set
561+# CONFIG_BLK_DEV_IDEFLOPPY is not set
562+# CONFIG_BLK_DEV_IDESCSI is not set
563+# CONFIG_IDE_TASK_IOCTL is not set
564+
565+#
566+# IDE chipset support/bugfixes
567+#
568+# CONFIG_IDE_GENERIC is not set
569+# CONFIG_BLK_DEV_IDEPCI is not set
570+# CONFIG_IDE_ARM is not set
571+CONFIG_BLK_DEV_IDE_CM_X270=m
572+# CONFIG_BLK_DEV_IDEDMA is not set
573+# CONFIG_BLK_DEV_HD is not set
574+
575+#
576+# SCSI device support
577+#
578+# CONFIG_RAID_ATTRS is not set
579+CONFIG_SCSI=y
580+# CONFIG_SCSI_TGT is not set
581+# CONFIG_SCSI_NETLINK is not set
582+# CONFIG_SCSI_PROC_FS is not set
583+
584+#
585+# SCSI support type (disk, tape, CD-ROM)
586+#
587+CONFIG_BLK_DEV_SD=y
588+# CONFIG_CHR_DEV_ST is not set
589+# CONFIG_CHR_DEV_OSST is not set
590+# CONFIG_BLK_DEV_SR is not set
591+# CONFIG_CHR_DEV_SG is not set
592+# CONFIG_CHR_DEV_SCH is not set
593+
594+#
595+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
596+#
597+# CONFIG_SCSI_MULTI_LUN is not set
598+# CONFIG_SCSI_CONSTANTS is not set
599+# CONFIG_SCSI_LOGGING is not set
600+# CONFIG_SCSI_SCAN_ASYNC is not set
601+
602+#
603+# SCSI Transports
604+#
605+# CONFIG_SCSI_SPI_ATTRS is not set
606+# CONFIG_SCSI_FC_ATTRS is not set
607+# CONFIG_SCSI_ISCSI_ATTRS is not set
608+# CONFIG_SCSI_SAS_ATTRS is not set
609+# CONFIG_SCSI_SAS_LIBSAS is not set
610+
611+#
612+# SCSI low-level drivers
613+#
614+# CONFIG_ISCSI_TCP is not set
615+# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
616+# CONFIG_SCSI_3W_9XXX is not set
617+# CONFIG_SCSI_ACARD is not set
618+# CONFIG_SCSI_AACRAID is not set
619+# CONFIG_SCSI_AIC7XXX is not set
620+# CONFIG_SCSI_AIC7XXX_OLD is not set
621+# CONFIG_SCSI_AIC79XX is not set
622+# CONFIG_SCSI_AIC94XX is not set
623+# CONFIG_SCSI_DPT_I2O is not set
624+# CONFIG_SCSI_ARCMSR is not set
625+# CONFIG_MEGARAID_NEWGEN is not set
626+# CONFIG_MEGARAID_LEGACY is not set
627+# CONFIG_MEGARAID_SAS is not set
628+# CONFIG_SCSI_HPTIOP is not set
629+# CONFIG_SCSI_DMX3191D is not set
630+# CONFIG_SCSI_FUTURE_DOMAIN is not set
631+# CONFIG_SCSI_IPS is not set
632+# CONFIG_SCSI_INITIO is not set
633+# CONFIG_SCSI_INIA100 is not set
634+# CONFIG_SCSI_STEX is not set
635+# CONFIG_SCSI_SYM53C8XX_2 is not set
636+# CONFIG_SCSI_QLOGIC_1280 is not set
637+# CONFIG_SCSI_QLA_FC is not set
638+# CONFIG_SCSI_QLA_ISCSI is not set
639+# CONFIG_SCSI_LPFC is not set
640+# CONFIG_SCSI_DC395x is not set
641+# CONFIG_SCSI_DC390T is not set
642+# CONFIG_SCSI_NSP32 is not set
643+# CONFIG_SCSI_DEBUG is not set
644+# CONFIG_SCSI_SRP is not set
645+
646+#
647+# PCMCIA SCSI adapter support
648+#
649+# CONFIG_PCMCIA_AHA152X is not set
650+# CONFIG_PCMCIA_FDOMAIN is not set
651+# CONFIG_PCMCIA_NINJA_SCSI is not set
652+# CONFIG_PCMCIA_QLOGIC is not set
653+# CONFIG_PCMCIA_SYM53C500 is not set
654+
655+#
656+# Serial ATA (prod) and Parallel ATA (experimental) drivers
657+#
658+# CONFIG_ATA is not set
659+
660+#
661+# Multi-device support (RAID and LVM)
662+#
663+# CONFIG_MD is not set
664+
665+#
666+# Fusion MPT device support
667+#
668+# CONFIG_FUSION is not set
669+# CONFIG_FUSION_SPI is not set
670+# CONFIG_FUSION_FC is not set
671+# CONFIG_FUSION_SAS is not set
672+
673+#
674+# IEEE 1394 (FireWire) support
675+#
676+# CONFIG_IEEE1394 is not set
677+
678+#
679+# I2O device support
680+#
681+# CONFIG_I2O is not set
682+
683+#
684+# Network device support
685+#
686+CONFIG_NETDEVICES=y
687+# CONFIG_DUMMY is not set
688+# CONFIG_BONDING is not set
689+# CONFIG_EQUALIZER is not set
690+# CONFIG_TUN is not set
691+
692+#
693+# ARCnet devices
694+#
695+# CONFIG_ARCNET is not set
696+
697+#
698+# PHY device support
699+#
700+# CONFIG_PHYLIB is not set
701+
702+#
703+# Ethernet (10 or 100Mbit)
704+#
705+CONFIG_NET_ETHERNET=y
706+CONFIG_MII=y
707+# CONFIG_HAPPYMEAL is not set
708+# CONFIG_SUNGEM is not set
709+# CONFIG_CASSINI is not set
710+# CONFIG_NET_VENDOR_3COM is not set
711+# CONFIG_SMC91X is not set
712+CONFIG_DM9000=y
713+CONFIG_DM9000_NOEPROM=y
714+# CONFIG_SMC911X is not set
715+
716+#
717+# Tulip family network device support
718+#
719+# CONFIG_NET_TULIP is not set
720+# CONFIG_HP100 is not set
721+CONFIG_NET_PCI=y
722+# CONFIG_PCNET32 is not set
723+# CONFIG_AMD8111_ETH is not set
724+# CONFIG_ADAPTEC_STARFIRE is not set
725+# CONFIG_B44 is not set
726+# CONFIG_FORCEDETH is not set
727+# CONFIG_DGRS is not set
728+# CONFIG_EEPRO100 is not set
729+# CONFIG_E100 is not set
730+# CONFIG_FEALNX is not set
731+# CONFIG_NATSEMI is not set
732+# CONFIG_NE2K_PCI is not set
733+# CONFIG_8139CP is not set
734+CONFIG_8139TOO=m
735+# CONFIG_8139TOO_PIO is not set
736+# CONFIG_8139TOO_TUNE_TWISTER is not set
737+# CONFIG_8139TOO_8129 is not set
738+# CONFIG_8139_OLD_RX_RESET is not set
739+# CONFIG_SIS900 is not set
740+# CONFIG_EPIC100 is not set
741+# CONFIG_SUNDANCE is not set
742+# CONFIG_TLAN is not set
743+# CONFIG_VIA_RHINE is not set
744+# CONFIG_SC92031 is not set
745+
746+#
747+# Ethernet (1000 Mbit)
748+#
749+# CONFIG_ACENIC is not set
750+# CONFIG_DL2K is not set
751+# CONFIG_E1000 is not set
752+# CONFIG_NS83820 is not set
753+# CONFIG_HAMACHI is not set
754+# CONFIG_YELLOWFIN is not set
755+# CONFIG_R8169 is not set
756+# CONFIG_SIS190 is not set
757+# CONFIG_SKGE is not set
758+# CONFIG_SKY2 is not set
759+# CONFIG_SK98LIN is not set
760+# CONFIG_VIA_VELOCITY is not set
761+# CONFIG_TIGON3 is not set
762+# CONFIG_BNX2 is not set
763+# CONFIG_QLA3XXX is not set
764+# CONFIG_ATL1 is not set
765+
766+#
767+# Ethernet (10000 Mbit)
768+#
769+# CONFIG_CHELSIO_T1 is not set
770+# CONFIG_CHELSIO_T3 is not set
771+# CONFIG_IXGB is not set
772+# CONFIG_S2IO is not set
773+# CONFIG_MYRI10GE is not set
774+# CONFIG_NETXEN_NIC is not set
775+
776+#
777+# Token Ring devices
778+#
779+# CONFIG_TR is not set
780+
781+#
782+# Wireless LAN (non-hamradio)
783+#
784+CONFIG_NET_RADIO=y
785+# CONFIG_NET_WIRELESS_RTNETLINK is not set
786+
787+#
788+# Obsolete Wireless cards support (pre-802.11)
789+#
790+# CONFIG_STRIP is not set
791+# CONFIG_PCMCIA_WAVELAN is not set
792+# CONFIG_PCMCIA_NETWAVE is not set
793+
794+#
795+# Wireless 802.11 Frequency Hopping cards support
796+#
797+# CONFIG_PCMCIA_RAYCS is not set
798+
799+#
800+# Wireless 802.11b ISA/PCI cards support
801+#
802+# CONFIG_IPW2100 is not set
803+# CONFIG_IPW2200 is not set
804+# CONFIG_HERMES is not set
805+# CONFIG_ATMEL is not set
806+
807+#
808+# Wireless 802.11b Pcmcia/Cardbus cards support
809+#
810+# CONFIG_AIRO_CS is not set
811+# CONFIG_PCMCIA_WL3501 is not set
812+
813+#
814+# Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support
815+#
816+# CONFIG_PRISM54 is not set
817+# CONFIG_USB_ZD1201 is not set
818+# CONFIG_HOSTAP is not set
819+CONFIG_NET_WIRELESS=y
820+
821+#
822+# PCMCIA network device support
823+#
824+CONFIG_NET_PCMCIA=y
825+# CONFIG_PCMCIA_3C589 is not set
826+# CONFIG_PCMCIA_3C574 is not set
827+# CONFIG_PCMCIA_FMVJ18X is not set
828+CONFIG_PCMCIA_PCNET=m
829+# CONFIG_PCMCIA_NMCLAN is not set
830+# CONFIG_PCMCIA_SMC91C92 is not set
831+# CONFIG_PCMCIA_XIRC2PS is not set
832+# CONFIG_PCMCIA_AXNET is not set
833+
834+#
835+# Wan interfaces
836+#
837+# CONFIG_WAN is not set
838+# CONFIG_FDDI is not set
839+# CONFIG_HIPPI is not set
840+# CONFIG_PPP is not set
841+# CONFIG_SLIP is not set
842+# CONFIG_NET_FC is not set
843+# CONFIG_SHAPER is not set
844+# CONFIG_NETCONSOLE is not set
845+# CONFIG_NETPOLL is not set
846+# CONFIG_NET_POLL_CONTROLLER is not set
847+
848+#
849+# ISDN subsystem
850+#
851+# CONFIG_ISDN is not set
852+
853+#
854+# Input device support
855+#
856+CONFIG_INPUT=y
857+# CONFIG_INPUT_FF_MEMLESS is not set
858+
859+#
860+# Userland interfaces
861+#
862+# CONFIG_INPUT_MOUSEDEV is not set
863+# CONFIG_INPUT_JOYDEV is not set
864+# CONFIG_INPUT_TSDEV is not set
865+CONFIG_INPUT_EVDEV=y
866+# CONFIG_INPUT_EVBUG is not set
867+
868+#
869+# Input Device Drivers
870+#
871+# CONFIG_INPUT_KEYBOARD is not set
872+# CONFIG_INPUT_MOUSE is not set
873+# CONFIG_INPUT_JOYSTICK is not set
874+CONFIG_INPUT_TOUCHSCREEN=y
875+# CONFIG_TOUCHSCREEN_GUNZE is not set
876+# CONFIG_TOUCHSCREEN_ELO is not set
877+# CONFIG_TOUCHSCREEN_MTOUCH is not set
878+# CONFIG_TOUCHSCREEN_MK712 is not set
879+# CONFIG_TOUCHSCREEN_PENMOUNT is not set
880+# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
881+# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
882+CONFIG_TOUCHSCREEN_UCB1400=m
883+# CONFIG_INPUT_MISC is not set
884+
885+#
886+# Hardware I/O ports
887+#
888+# CONFIG_SERIO is not set
889+# CONFIG_GAMEPORT is not set
890+
891+#
892+# Character devices
893+#
894+CONFIG_VT=y
895+CONFIG_VT_CONSOLE=y
896+CONFIG_HW_CONSOLE=y
897+# CONFIG_VT_HW_CONSOLE_BINDING is not set
898+# CONFIG_SERIAL_NONSTANDARD is not set
899+
900+#
901+# Serial drivers
902+#
903+# CONFIG_SERIAL_8250 is not set
904+
905+#
906+# Non-8250 serial port support
907+#
908+CONFIG_SERIAL_PXA=y
909+CONFIG_SERIAL_PXA_CONSOLE=y
910+CONFIG_SERIAL_CORE=y
911+CONFIG_SERIAL_CORE_CONSOLE=y
912+# CONFIG_SERIAL_JSM is not set
913+CONFIG_UNIX98_PTYS=y
914+CONFIG_LEGACY_PTYS=y
915+CONFIG_LEGACY_PTY_COUNT=256
916+
917+#
918+# IPMI
919+#
920+# CONFIG_IPMI_HANDLER is not set
921+
922+#
923+# Watchdog Cards
924+#
925+# CONFIG_WATCHDOG is not set
926+CONFIG_HW_RANDOM=m
927+# CONFIG_NVRAM is not set
928+# CONFIG_DTLK is not set
929+# CONFIG_R3964 is not set
930+# CONFIG_APPLICOM is not set
931+# CONFIG_DRM is not set
932+
933+#
934+# PCMCIA character devices
935+#
936+# CONFIG_SYNCLINK_CS is not set
937+# CONFIG_CARDMAN_4000 is not set
938+# CONFIG_CARDMAN_4040 is not set
939+# CONFIG_RAW_DRIVER is not set
940+
941+#
942+# TPM devices
943+#
944+# CONFIG_TCG_TPM is not set
945+
946+#
947+# I2C support
948+#
949+# CONFIG_I2C is not set
950+
951+#
952+# SPI support
953+#
954+# CONFIG_SPI is not set
955+# CONFIG_SPI_MASTER is not set
956+
957+#
958+# Dallas's 1-wire bus
959+#
960+# CONFIG_W1 is not set
961+
962+#
963+# Hardware Monitoring support
964+#
965+# CONFIG_HWMON is not set
966+# CONFIG_HWMON_VID is not set
967+
968+#
969+# Misc devices
970+#
971+# CONFIG_SGI_IOC4 is not set
972+# CONFIG_TIFM_CORE is not set
973+
974+#
975+# Multifunction device drivers
976+#
977+# CONFIG_MFD_SM501 is not set
978+
979+#
980+# LED devices
981+#
982+CONFIG_NEW_LEDS=y
983+CONFIG_LEDS_CLASS=y
984+
985+#
986+# LED drivers
987+#
988+CONFIG_LEDS_CM_X270=y
989+
990+#
991+# LED Triggers
992+#
993+CONFIG_LEDS_TRIGGERS=y
994+# CONFIG_LEDS_TRIGGER_TIMER is not set
995+# CONFIG_LEDS_TRIGGER_IDE_DISK is not set
996+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
997+
998+#
999+# Multimedia devices
1000+#
1001+# CONFIG_VIDEO_DEV is not set
1002+
1003+#
1004+# Digital Video Broadcasting Devices
1005+#
1006+# CONFIG_DVB is not set
1007+# CONFIG_USB_DABUSB is not set
1008+
1009+#
1010+# Graphics support
1011+#
1012+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
1013+CONFIG_FB=y
1014+# CONFIG_FIRMWARE_EDID is not set
1015+# CONFIG_FB_DDC is not set
1016+CONFIG_FB_CFB_FILLRECT=y
1017+CONFIG_FB_CFB_COPYAREA=y
1018+CONFIG_FB_CFB_IMAGEBLIT=y
1019+# CONFIG_FB_SVGALIB is not set
1020+# CONFIG_FB_MACMODES is not set
1021+# CONFIG_FB_BACKLIGHT is not set
1022+# CONFIG_FB_MODE_HELPERS is not set
1023+# CONFIG_FB_TILEBLITTING is not set
1024+
1025+#
1026+# Frambuffer hardware drivers
1027+#
1028+# CONFIG_FB_CIRRUS is not set
1029+# CONFIG_FB_PM2 is not set
1030+# CONFIG_FB_CYBER2000 is not set
1031+# CONFIG_FB_ASILIANT is not set
1032+# CONFIG_FB_IMSTT is not set
1033+# CONFIG_FB_S1D13XXX is not set
1034+# CONFIG_FB_NVIDIA is not set
1035+# CONFIG_FB_RIVA is not set
1036+# CONFIG_FB_MATROX is not set
1037+# CONFIG_FB_RADEON is not set
1038+# CONFIG_FB_ATY128 is not set
1039+# CONFIG_FB_ATY is not set
1040+# CONFIG_FB_S3 is not set
1041+# CONFIG_FB_SAVAGE is not set
1042+# CONFIG_FB_SIS is not set
1043+# CONFIG_FB_NEOMAGIC is not set
1044+# CONFIG_FB_KYRO is not set
1045+# CONFIG_FB_3DFX is not set
1046+# CONFIG_FB_VOODOO1 is not set
1047+# CONFIG_FB_TRIDENT is not set
1048+CONFIG_FB_PXA=y
1049+# CONFIG_FB_PXA_PARAMETERS is not set
1050+CONFIG_FB_MBX=m
1051+# CONFIG_FB_VIRTUAL is not set
1052+
1053+#
1054+# Console display driver support
1055+#
1056+# CONFIG_VGA_CONSOLE is not set
1057+CONFIG_DUMMY_CONSOLE=y
1058+CONFIG_FRAMEBUFFER_CONSOLE=y
1059+# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
1060+# CONFIG_FONTS is not set
1061+CONFIG_FONT_8x8=y
1062+CONFIG_FONT_8x16=y
1063+
1064+#
1065+# Logo configuration
1066+#
1067+CONFIG_LOGO=y
1068+CONFIG_LOGO_LINUX_MONO=y
1069+CONFIG_LOGO_LINUX_VGA16=y
1070+CONFIG_LOGO_LINUX_CLUT224=y
1071+
1072+#
1073+# Sound
1074+#
1075+CONFIG_SOUND=m
1076+
1077+#
1078+# Advanced Linux Sound Architecture
1079+#
1080+CONFIG_SND=m
1081+CONFIG_SND_TIMER=m
1082+CONFIG_SND_PCM=m
1083+# CONFIG_SND_SEQUENCER is not set
1084+CONFIG_SND_OSSEMUL=y
1085+CONFIG_SND_MIXER_OSS=m
1086+CONFIG_SND_PCM_OSS=m
1087+CONFIG_SND_PCM_OSS_PLUGINS=y
1088+# CONFIG_SND_DYNAMIC_MINORS is not set
1089+CONFIG_SND_SUPPORT_OLD_API=y
1090+CONFIG_SND_VERBOSE_PROCFS=y
1091+# CONFIG_SND_VERBOSE_PRINTK is not set
1092+# CONFIG_SND_DEBUG is not set
1093+
1094+#
1095+# Generic devices
1096+#
1097+CONFIG_SND_AC97_CODEC=m
1098+# CONFIG_SND_DUMMY is not set
1099+# CONFIG_SND_MTPAV is not set
1100+# CONFIG_SND_SERIAL_U16550 is not set
1101+# CONFIG_SND_MPU401 is not set
1102+
1103+#
1104+# PCI devices
1105+#
1106+# CONFIG_SND_AD1889 is not set
1107+# CONFIG_SND_ALS300 is not set
1108+# CONFIG_SND_ALI5451 is not set
1109+# CONFIG_SND_ATIIXP is not set
1110+# CONFIG_SND_ATIIXP_MODEM is not set
1111+# CONFIG_SND_AU8810 is not set
1112+# CONFIG_SND_AU8820 is not set
1113+# CONFIG_SND_AU8830 is not set
1114+# CONFIG_SND_AZT3328 is not set
1115+# CONFIG_SND_BT87X is not set
1116+# CONFIG_SND_CA0106 is not set
1117+# CONFIG_SND_CMIPCI is not set
1118+# CONFIG_SND_CS4281 is not set
1119+# CONFIG_SND_CS46XX is not set
1120+# CONFIG_SND_DARLA20 is not set
1121+# CONFIG_SND_GINA20 is not set
1122+# CONFIG_SND_LAYLA20 is not set
1123+# CONFIG_SND_DARLA24 is not set
1124+# CONFIG_SND_GINA24 is not set
1125+# CONFIG_SND_LAYLA24 is not set
1126+# CONFIG_SND_MONA is not set
1127+# CONFIG_SND_MIA is not set
1128+# CONFIG_SND_ECHO3G is not set
1129+# CONFIG_SND_INDIGO is not set
1130+# CONFIG_SND_INDIGOIO is not set
1131+# CONFIG_SND_INDIGODJ is not set
1132+# CONFIG_SND_EMU10K1 is not set
1133+# CONFIG_SND_EMU10K1X is not set
1134+# CONFIG_SND_ENS1370 is not set
1135+# CONFIG_SND_ENS1371 is not set
1136+# CONFIG_SND_ES1938 is not set
1137+# CONFIG_SND_ES1968 is not set
1138+# CONFIG_SND_FM801 is not set
1139+# CONFIG_SND_HDA_INTEL is not set
1140+# CONFIG_SND_HDSP is not set
1141+# CONFIG_SND_HDSPM is not set
1142+# CONFIG_SND_ICE1712 is not set
1143+# CONFIG_SND_ICE1724 is not set
1144+# CONFIG_SND_INTEL8X0 is not set
1145+# CONFIG_SND_INTEL8X0M is not set
1146+# CONFIG_SND_KORG1212 is not set
1147+# CONFIG_SND_MAESTRO3 is not set
1148+# CONFIG_SND_MIXART is not set
1149+# CONFIG_SND_NM256 is not set
1150+# CONFIG_SND_PCXHR is not set
1151+# CONFIG_SND_RIPTIDE is not set
1152+# CONFIG_SND_RME32 is not set
1153+# CONFIG_SND_RME96 is not set
1154+# CONFIG_SND_RME9652 is not set
1155+# CONFIG_SND_SONICVIBES is not set
1156+# CONFIG_SND_TRIDENT is not set
1157+# CONFIG_SND_VIA82XX is not set
1158+# CONFIG_SND_VIA82XX_MODEM is not set
1159+# CONFIG_SND_VX222 is not set
1160+# CONFIG_SND_YMFPCI is not set
1161+# CONFIG_SND_AC97_POWER_SAVE is not set
1162+
1163+#
1164+# ALSA ARM devices
1165+#
1166+CONFIG_SND_PXA2XX_PCM=m
1167+CONFIG_SND_PXA2XX_AC97=m
1168+
1169+#
1170+# USB devices
1171+#
1172+# CONFIG_SND_USB_AUDIO is not set
1173+
1174+#
1175+# PCMCIA devices
1176+#
1177+# CONFIG_SND_VXPOCKET is not set
1178+# CONFIG_SND_PDAUDIOCF is not set
1179+
1180+#
1181+# SoC audio support
1182+#
1183+# CONFIG_SND_SOC is not set
1184+
1185+#
1186+# Open Sound System
1187+#
1188+# CONFIG_SOUND_PRIME is not set
1189+CONFIG_AC97_BUS=m
1190+
1191+#
1192+# HID Devices
1193+#
1194+CONFIG_HID=y
1195+# CONFIG_HID_DEBUG is not set
1196+
1197+#
1198+# USB support
1199+#
1200+CONFIG_USB_ARCH_HAS_HCD=y
1201+CONFIG_USB_ARCH_HAS_OHCI=y
1202+CONFIG_USB_ARCH_HAS_EHCI=y
1203+CONFIG_USB=y
1204+# CONFIG_USB_DEBUG is not set
1205+
1206+#
1207+# Miscellaneous USB options
1208+#
1209+CONFIG_USB_DEVICEFS=y
1210+# CONFIG_USB_DYNAMIC_MINORS is not set
1211+# CONFIG_USB_SUSPEND is not set
1212+# CONFIG_USB_OTG is not set
1213+
1214+#
1215+# USB Host Controller Drivers
1216+#
1217+# CONFIG_USB_EHCI_HCD is not set
1218+# CONFIG_USB_ISP116X_HCD is not set
1219+CONFIG_USB_OHCI_HCD=y
1220+# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
1221+# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
1222+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1223+# CONFIG_USB_UHCI_HCD is not set
1224+# CONFIG_USB_SL811_HCD is not set
1225+
1226+#
1227+# USB Device Class drivers
1228+#
1229+# CONFIG_USB_ACM is not set
1230+# CONFIG_USB_PRINTER is not set
1231+
1232+#
1233+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
1234+#
1235+
1236+#
1237+# may also be needed; see USB_STORAGE Help for more information
1238+#
1239+CONFIG_USB_STORAGE=y
1240+# CONFIG_USB_STORAGE_DEBUG is not set
1241+# CONFIG_USB_STORAGE_DATAFAB is not set
1242+# CONFIG_USB_STORAGE_FREECOM is not set
1243+# CONFIG_USB_STORAGE_DPCM is not set
1244+# CONFIG_USB_STORAGE_USBAT is not set
1245+# CONFIG_USB_STORAGE_SDDR09 is not set
1246+# CONFIG_USB_STORAGE_SDDR55 is not set
1247+# CONFIG_USB_STORAGE_JUMPSHOT is not set
1248+# CONFIG_USB_STORAGE_ALAUDA is not set
1249+# CONFIG_USB_STORAGE_KARMA is not set
1250+# CONFIG_USB_LIBUSUAL is not set
1251+
1252+#
1253+# USB Input Devices
1254+#
1255+CONFIG_USB_HID=y
1256+# CONFIG_USB_HIDINPUT_POWERBOOK is not set
1257+# CONFIG_HID_FF is not set
1258+# CONFIG_USB_HIDDEV is not set
1259+# CONFIG_USB_AIPTEK is not set
1260+# CONFIG_USB_WACOM is not set
1261+# CONFIG_USB_ACECAD is not set
1262+# CONFIG_USB_KBTAB is not set
1263+# CONFIG_USB_POWERMATE is not set
1264+# CONFIG_USB_TOUCHSCREEN is not set
1265+# CONFIG_USB_YEALINK is not set
1266+# CONFIG_USB_XPAD is not set
1267+# CONFIG_USB_ATI_REMOTE is not set
1268+# CONFIG_USB_ATI_REMOTE2 is not set
1269+# CONFIG_USB_KEYSPAN_REMOTE is not set
1270+# CONFIG_USB_APPLETOUCH is not set
1271+# CONFIG_USB_GTCO is not set
1272+
1273+#
1274+# USB Imaging devices
1275+#
1276+# CONFIG_USB_MDC800 is not set
1277+# CONFIG_USB_MICROTEK is not set
1278+
1279+#
1280+# USB Network Adapters
1281+#
1282+# CONFIG_USB_CATC is not set
1283+# CONFIG_USB_KAWETH is not set
1284+# CONFIG_USB_PEGASUS is not set
1285+# CONFIG_USB_RTL8150 is not set
1286+# CONFIG_USB_USBNET_MII is not set
1287+# CONFIG_USB_USBNET is not set
1288+CONFIG_USB_MON=y
1289+
1290+#
1291+# USB port drivers
1292+#
1293+
1294+#
1295+# USB Serial Converter support
1296+#
1297+# CONFIG_USB_SERIAL is not set
1298+
1299+#
1300+# USB Miscellaneous drivers
1301+#
1302+# CONFIG_USB_EMI62 is not set
1303+# CONFIG_USB_EMI26 is not set
1304+# CONFIG_USB_ADUTUX is not set
1305+# CONFIG_USB_AUERSWALD is not set
1306+# CONFIG_USB_RIO500 is not set
1307+# CONFIG_USB_LEGOTOWER is not set
1308+# CONFIG_USB_LCD is not set
1309+# CONFIG_USB_BERRY_CHARGE is not set
1310+# CONFIG_USB_LED is not set
1311+# CONFIG_USB_CYPRESS_CY7C63 is not set
1312+# CONFIG_USB_CYTHERM is not set
1313+# CONFIG_USB_PHIDGET is not set
1314+# CONFIG_USB_IDMOUSE is not set
1315+# CONFIG_USB_FTDI_ELAN is not set
1316+# CONFIG_USB_APPLEDISPLAY is not set
1317+# CONFIG_USB_LD is not set
1318+# CONFIG_USB_TRANCEVIBRATOR is not set
1319+# CONFIG_USB_IOWARRIOR is not set
1320+# CONFIG_USB_TEST is not set
1321+
1322+#
1323+# USB DSL modem support
1324+#
1325+
1326+#
1327+# USB Gadget Support
1328+#
1329+# CONFIG_USB_GADGET is not set
1330+
1331+#
1332+# MMC/SD Card support
1333+#
1334+CONFIG_MMC=m
1335+# CONFIG_MMC_DEBUG is not set
1336+CONFIG_MMC_BLOCK=m
1337+CONFIG_MMC_PXA=m
1338+# CONFIG_MMC_SDHCI is not set
1339+# CONFIG_MMC_TIFM_SD is not set
1340+
1341+#
1342+# Real Time Clock
1343+#
1344+CONFIG_RTC_LIB=y
1345+CONFIG_RTC_CLASS=y
1346+CONFIG_RTC_HCTOSYS=y
1347+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
1348+# CONFIG_RTC_DEBUG is not set
1349+
1350+#
1351+# RTC interfaces
1352+#
1353+CONFIG_RTC_INTF_SYSFS=y
1354+CONFIG_RTC_INTF_PROC=y
1355+CONFIG_RTC_INTF_DEV=y
1356+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
1357+
1358+#
1359+# RTC drivers
1360+#
1361+# CONFIG_RTC_DRV_CMOS is not set
1362+# CONFIG_RTC_DRV_DS1553 is not set
1363+# CONFIG_RTC_DRV_DS1742 is not set
1364+# CONFIG_RTC_DRV_M48T86 is not set
1365+CONFIG_RTC_DRV_SA1100=y
1366+# CONFIG_RTC_DRV_TEST is not set
1367+CONFIG_RTC_DRV_V3020=y
1368+
1369+#
1370+# File systems
1371+#
1372+CONFIG_EXT2_FS=y
1373+# CONFIG_EXT2_FS_XATTR is not set
1374+# CONFIG_EXT2_FS_XIP is not set
1375+CONFIG_EXT3_FS=y
1376+CONFIG_EXT3_FS_XATTR=y
1377+# CONFIG_EXT3_FS_POSIX_ACL is not set
1378+# CONFIG_EXT3_FS_SECURITY is not set
1379+# CONFIG_EXT4DEV_FS is not set
1380+CONFIG_JBD=y
1381+# CONFIG_JBD_DEBUG is not set
1382+CONFIG_FS_MBCACHE=y
1383+# CONFIG_REISERFS_FS is not set
1384+# CONFIG_JFS_FS is not set
1385+# CONFIG_FS_POSIX_ACL is not set
1386+# CONFIG_XFS_FS is not set
1387+# CONFIG_GFS2_FS is not set
1388+# CONFIG_OCFS2_FS is not set
1389+# CONFIG_MINIX_FS is not set
1390+# CONFIG_ROMFS_FS is not set
1391+CONFIG_INOTIFY=y
1392+CONFIG_INOTIFY_USER=y
1393+# CONFIG_QUOTA is not set
1394+CONFIG_DNOTIFY=y
1395+# CONFIG_AUTOFS_FS is not set
1396+# CONFIG_AUTOFS4_FS is not set
1397+# CONFIG_FUSE_FS is not set
1398+
1399+#
1400+# CD-ROM/DVD Filesystems
1401+#
1402+# CONFIG_ISO9660_FS is not set
1403+# CONFIG_UDF_FS is not set
1404+
1405+#
1406+# DOS/FAT/NT Filesystems
1407+#
1408+CONFIG_FAT_FS=y
1409+CONFIG_MSDOS_FS=y
1410+CONFIG_VFAT_FS=y
1411+CONFIG_FAT_DEFAULT_CODEPAGE=437
1412+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1413+# CONFIG_NTFS_FS is not set
1414+
1415+#
1416+# Pseudo filesystems
1417+#
1418+CONFIG_PROC_FS=y
1419+CONFIG_PROC_SYSCTL=y
1420+CONFIG_SYSFS=y
1421+CONFIG_TMPFS=y
1422+# CONFIG_TMPFS_POSIX_ACL is not set
1423+# CONFIG_HUGETLB_PAGE is not set
1424+CONFIG_RAMFS=y
1425+# CONFIG_CONFIGFS_FS is not set
1426+
1427+#
1428+# Miscellaneous filesystems
1429+#
1430+# CONFIG_ADFS_FS is not set
1431+# CONFIG_AFFS_FS is not set
1432+# CONFIG_HFS_FS is not set
1433+# CONFIG_HFSPLUS_FS is not set
1434+# CONFIG_BEFS_FS is not set
1435+# CONFIG_BFS_FS is not set
1436+# CONFIG_EFS_FS is not set
1437+# CONFIG_JFFS2_FS is not set
1438+# CONFIG_CRAMFS is not set
1439+# CONFIG_VXFS_FS is not set
1440+# CONFIG_HPFS_FS is not set
1441+# CONFIG_QNX4FS_FS is not set
1442+# CONFIG_SYSV_FS is not set
1443+# CONFIG_UFS_FS is not set
1444+
1445+#
1446+# Network File Systems
1447+#
1448+CONFIG_NFS_FS=y
1449+CONFIG_NFS_V3=y
1450+# CONFIG_NFS_V3_ACL is not set
1451+# CONFIG_NFS_V4 is not set
1452+# CONFIG_NFS_DIRECTIO is not set
1453+# CONFIG_NFSD is not set
1454+CONFIG_ROOT_NFS=y
1455+CONFIG_LOCKD=y
1456+CONFIG_LOCKD_V4=y
1457+CONFIG_NFS_COMMON=y
1458+CONFIG_SUNRPC=y
1459+# CONFIG_RPCSEC_GSS_KRB5 is not set
1460+# CONFIG_RPCSEC_GSS_SPKM3 is not set
1461+CONFIG_SMB_FS=y
1462+# CONFIG_SMB_NLS_DEFAULT is not set
1463+# CONFIG_CIFS is not set
1464+# CONFIG_NCP_FS is not set
1465+# CONFIG_CODA_FS is not set
1466+# CONFIG_AFS_FS is not set
1467+# CONFIG_9P_FS is not set
1468+
1469+#
1470+# Partition Types
1471+#
1472+# CONFIG_PARTITION_ADVANCED is not set
1473+CONFIG_MSDOS_PARTITION=y
1474+
1475+#
1476+# Native Language Support
1477+#
1478+CONFIG_NLS=y
1479+CONFIG_NLS_DEFAULT="iso8859-1"
1480+CONFIG_NLS_CODEPAGE_437=y
1481+# CONFIG_NLS_CODEPAGE_737 is not set
1482+# CONFIG_NLS_CODEPAGE_775 is not set
1483+# CONFIG_NLS_CODEPAGE_850 is not set
1484+# CONFIG_NLS_CODEPAGE_852 is not set
1485+# CONFIG_NLS_CODEPAGE_855 is not set
1486+# CONFIG_NLS_CODEPAGE_857 is not set
1487+# CONFIG_NLS_CODEPAGE_860 is not set
1488+# CONFIG_NLS_CODEPAGE_861 is not set
1489+# CONFIG_NLS_CODEPAGE_862 is not set
1490+# CONFIG_NLS_CODEPAGE_863 is not set
1491+# CONFIG_NLS_CODEPAGE_864 is not set
1492+# CONFIG_NLS_CODEPAGE_865 is not set
1493+# CONFIG_NLS_CODEPAGE_866 is not set
1494+# CONFIG_NLS_CODEPAGE_869 is not set
1495+# CONFIG_NLS_CODEPAGE_936 is not set
1496+# CONFIG_NLS_CODEPAGE_950 is not set
1497+# CONFIG_NLS_CODEPAGE_932 is not set
1498+# CONFIG_NLS_CODEPAGE_949 is not set
1499+# CONFIG_NLS_CODEPAGE_874 is not set
1500+# CONFIG_NLS_ISO8859_8 is not set
1501+# CONFIG_NLS_CODEPAGE_1250 is not set
1502+# CONFIG_NLS_CODEPAGE_1251 is not set
1503+# CONFIG_NLS_ASCII is not set
1504+CONFIG_NLS_ISO8859_1=y
1505+# CONFIG_NLS_ISO8859_2 is not set
1506+# CONFIG_NLS_ISO8859_3 is not set
1507+# CONFIG_NLS_ISO8859_4 is not set
1508+# CONFIG_NLS_ISO8859_5 is not set
1509+# CONFIG_NLS_ISO8859_6 is not set
1510+# CONFIG_NLS_ISO8859_7 is not set
1511+# CONFIG_NLS_ISO8859_9 is not set
1512+# CONFIG_NLS_ISO8859_13 is not set
1513+# CONFIG_NLS_ISO8859_14 is not set
1514+# CONFIG_NLS_ISO8859_15 is not set
1515+# CONFIG_NLS_KOI8_R is not set
1516+# CONFIG_NLS_KOI8_U is not set
1517+# CONFIG_NLS_UTF8 is not set
1518+
1519+#
1520+# Distributed Lock Manager
1521+#
1522+# CONFIG_DLM is not set
1523+
1524+#
1525+# Profiling support
1526+#
1527+# CONFIG_PROFILING is not set
1528+
1529+#
1530+# Kernel hacking
1531+#
1532+# CONFIG_PRINTK_TIME is not set
1533+CONFIG_ENABLE_MUST_CHECK=y
1534+CONFIG_MAGIC_SYSRQ=y
1535+# CONFIG_UNUSED_SYMBOLS is not set
1536+# CONFIG_DEBUG_FS is not set
1537+# CONFIG_HEADERS_CHECK is not set
1538+CONFIG_DEBUG_KERNEL=y
1539+# CONFIG_DEBUG_SHIRQ is not set
1540+CONFIG_LOG_BUF_SHIFT=17
1541+# CONFIG_DETECT_SOFTLOCKUP is not set
1542+# CONFIG_SCHEDSTATS is not set
1543+# CONFIG_TIMER_STATS is not set
1544+# CONFIG_DEBUG_SLAB is not set
1545+# CONFIG_DEBUG_RT_MUTEXES is not set
1546+# CONFIG_RT_MUTEX_TESTER is not set
1547+# CONFIG_DEBUG_SPINLOCK is not set
1548+# CONFIG_DEBUG_MUTEXES is not set
1549+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1550+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1551+# CONFIG_DEBUG_KOBJECT is not set
1552+# CONFIG_DEBUG_BUGVERBOSE is not set
1553+CONFIG_DEBUG_INFO=y
1554+# CONFIG_DEBUG_VM is not set
1555+# CONFIG_DEBUG_LIST is not set
1556+CONFIG_FRAME_POINTER=y
1557+CONFIG_FORCED_INLINING=y
1558+# CONFIG_RCU_TORTURE_TEST is not set
1559+# CONFIG_FAULT_INJECTION is not set
1560+CONFIG_DEBUG_USER=y
1561+CONFIG_DEBUG_ERRORS=y
1562+CONFIG_DEBUG_LL=y
1563+# CONFIG_DEBUG_ICEDCC is not set
1564+
1565+#
1566+# Security options
1567+#
1568+# CONFIG_KEYS is not set
1569+# CONFIG_SECURITY is not set
1570+
1571+#
1572+# Cryptographic options
1573+#
1574+CONFIG_CRYPTO=y
1575+CONFIG_CRYPTO_ALGAPI=m
1576+CONFIG_CRYPTO_BLKCIPHER=m
1577+CONFIG_CRYPTO_MANAGER=m
1578+# CONFIG_CRYPTO_HMAC is not set
1579+# CONFIG_CRYPTO_XCBC is not set
1580+# CONFIG_CRYPTO_NULL is not set
1581+# CONFIG_CRYPTO_MD4 is not set
1582+# CONFIG_CRYPTO_MD5 is not set
1583+# CONFIG_CRYPTO_SHA1 is not set
1584+# CONFIG_CRYPTO_SHA256 is not set
1585+# CONFIG_CRYPTO_SHA512 is not set
1586+# CONFIG_CRYPTO_WP512 is not set
1587+# CONFIG_CRYPTO_TGR192 is not set
1588+# CONFIG_CRYPTO_GF128MUL is not set
1589+CONFIG_CRYPTO_ECB=m
1590+CONFIG_CRYPTO_CBC=m
1591+CONFIG_CRYPTO_PCBC=m
1592+# CONFIG_CRYPTO_LRW is not set
1593+# CONFIG_CRYPTO_DES is not set
1594+# CONFIG_CRYPTO_FCRYPT is not set
1595+# CONFIG_CRYPTO_BLOWFISH is not set
1596+# CONFIG_CRYPTO_TWOFISH is not set
1597+# CONFIG_CRYPTO_SERPENT is not set
1598+CONFIG_CRYPTO_AES=m
1599+# CONFIG_CRYPTO_CAST5 is not set
1600+# CONFIG_CRYPTO_CAST6 is not set
1601+# CONFIG_CRYPTO_TEA is not set
1602+CONFIG_CRYPTO_ARC4=m
1603+# CONFIG_CRYPTO_KHAZAD is not set
1604+# CONFIG_CRYPTO_ANUBIS is not set
1605+# CONFIG_CRYPTO_DEFLATE is not set
1606+# CONFIG_CRYPTO_MICHAEL_MIC is not set
1607+# CONFIG_CRYPTO_CRC32C is not set
1608+# CONFIG_CRYPTO_CAMELLIA is not set
1609+# CONFIG_CRYPTO_TEST is not set
1610+
1611+#
1612+# Hardware crypto devices
1613+#
1614+
1615+#
1616+# Library routines
1617+#
1618+CONFIG_BITREVERSE=y
1619+# CONFIG_CRC_CCITT is not set
1620+# CONFIG_CRC16 is not set
1621+CONFIG_CRC32=y
1622+# CONFIG_LIBCRC32C is not set
1623+CONFIG_PLIST=y
1624+CONFIG_HAS_IOMEM=y
1625+CONFIG_HAS_IOPORT=y
1626diff --git a/arch/arm/mach-pxa/Kconfig b/arch/arm/mach-pxa/Kconfig
1627index 5c0a100..e1cd439 100644
1628--- a/arch/arm/mach-pxa/Kconfig
1629+++ b/arch/arm/mach-pxa/Kconfig
1630@@ -37,6 +37,11 @@ config MACH_TRIZEPS4
1631 bool "Keith und Koep Trizeps4 DIMM-Module"
1632 select PXA27x
1633
1634+config MACH_ARMCORE
1635+ bool "CompuLab CM-X270 modules"
1636+ select PXA27x
1637+ select IWMMXT
1638+
1639 endchoice
1640
1641 if PXA_SHARPSL
1642diff --git a/arch/arm/mach-pxa/Makefile b/arch/arm/mach-pxa/Makefile
1643index 9093eb1..2a110f8 100644
1644--- a/arch/arm/mach-pxa/Makefile
1645+++ b/arch/arm/mach-pxa/Makefile
1646@@ -18,6 +18,7 @@ obj-$(CONFIG_PXA_SHARP_Cxx00) += spitz.o corgi_ssp.o corgi_lcd.o sharpsl_pm.o sp
1647 obj-$(CONFIG_MACH_AKITA) += akita-ioexp.o
1648 obj-$(CONFIG_MACH_POODLE) += poodle.o corgi_ssp.o
1649 obj-$(CONFIG_MACH_TOSA) += tosa.o
1650+obj-$(CONFIG_MACH_ARMCORE) += cm-x270.o
1651
1652 # Support for blinky lights
1653 led-y := leds.o
1654@@ -25,6 +26,8 @@ led-$(CONFIG_ARCH_LUBBOCK) += leds-lubbock.o
1655 led-$(CONFIG_MACH_MAINSTONE) += leds-mainstone.o
1656 led-$(CONFIG_ARCH_PXA_IDP) += leds-idp.o
1657 led-$(CONFIG_MACH_TRIZEPS4) += leds-trizeps4.o
1658+# FIXME: use driver/leds instead
1659+led-$(CONFIG_MACH_ARMCORE) += leds-cm-x270.o
1660
1661 obj-$(CONFIG_LEDS) += $(led-y)
1662
1663@@ -35,3 +38,7 @@ obj-$(CONFIG_PXA_SSP) += ssp.o
1664 ifeq ($(CONFIG_PXA27x),y)
1665 obj-$(CONFIG_PM) += standby.o
1666 endif
1667+
1668+ifeq ($(CONFIG_PCI),y)
1669+obj-$(CONFIG_MACH_ARMCORE) += cm-x270-pci.o
1670+endif
1671diff --git a/arch/arm/mach-pxa/cm-x270.c b/arch/arm/mach-pxa/cm-x270.c
1672new file mode 100644
1673index 0000000..88b080d
1674--- /dev/null
1675+++ b/arch/arm/mach-pxa/cm-x270.c
1676@@ -0,0 +1,821 @@
1677+/*
1678+ * linux/arch/arm/mach-pxa/cm-x270.c
1679+ *
1680+ * Copyright (C) 2007 CompuLab, Ltd.
1681+ * Mike Rapoport <mike@compulab.co.il>
1682+ *
1683+ * This program is free software; you can redistribute it and/or modify
1684+ * it under the terms of the GNU General Public License version 2 as
1685+ * published by the Free Software Foundation.
1686+ */
1687+
1688+#include <linux/pm.h>
1689+#include <linux/fb.h>
1690+#include <linux/platform_device.h>
1691+#include <linux/sysdev.h>
1692+#include <linux/dm9000.h>
1693+#include <linux/rtc-v3020.h>
1694+#include <linux/serial_8250.h>
1695+#include <video/mbxfb.h>
1696+
1697+#include <asm/types.h>
1698+#include <asm/setup.h>
1699+#include <asm/memory.h>
1700+#include <asm/mach-types.h>
1701+#include <asm/hardware.h>
1702+#include <asm/irq.h>
1703+#include <asm/io.h>
1704+#include <asm/delay.h>
1705+
1706+#include <asm/mach/arch.h>
1707+#include <asm/mach/map.h>
1708+#include <asm/mach/irq.h>
1709+
1710+#include <asm/arch/pxa-regs.h>
1711+#include <asm/arch/pxafb.h>
1712+#include <asm/arch/ohci.h>
1713+#include <asm/arch/mmc.h>
1714+#include <asm/arch/bitfield.h>
1715+#include <asm/arch/cm-x270.h>
1716+
1717+#include <asm/hardware/it8152.h>
1718+
1719+#include "generic.h"
1720+
1721+#define RTC_PHYS_BASE (PXA_CS1_PHYS + (5 << 22))
1722+#define DM9000_PHYS_BASE (PXA_CS1_PHYS + (6 << 22))
1723+
1724+static struct resource cmx270_dm9k_resource[] = {
1725+ [0] = {
1726+ .start = DM9000_PHYS_BASE,
1727+ .end = DM9000_PHYS_BASE + 4,
1728+ .flags = IORESOURCE_MEM,
1729+ },
1730+ [1] = {
1731+ .start = DM9000_PHYS_BASE + 8,
1732+ .end = DM9000_PHYS_BASE + 8 + 500,
1733+ .flags = IORESOURCE_MEM,
1734+ },
1735+ [2] = {
1736+ .start = CMX270_ETHIRQ,
1737+ .end = CMX270_ETHIRQ,
1738+ .flags = IORESOURCE_IRQ,
1739+ }
1740+};
1741+
1742+/* for the moment we limit ourselves to 32bit IO until some
1743+ * better IO routines can be written and tested
1744+ */
1745+static struct dm9000_plat_data cmx270_dm9k_platdata = {
1746+ .flags = DM9000_PLATF_32BITONLY,
1747+};
1748+
1749+/* Ethernet device */
1750+static struct platform_device cmx270_device_dm9k = {
1751+ .name = "dm9000",
1752+ .id = 0,
1753+ .num_resources = ARRAY_SIZE(cmx270_dm9k_resource),
1754+ .resource = cmx270_dm9k_resource,
1755+ .dev = {
1756+ .platform_data = &cmx270_dm9k_platdata,
1757+ }
1758+};
1759+
1760+/* audio device */
1761+static struct platform_device cmx270_audio_device = {
1762+ .name = "pxa2xx-ac97",
1763+ .id = -1,
1764+};
1765+
1766+/* touchscreen controller */
1767+static struct platform_device cmx270_ts_device = {
1768+ .name = "ucb1x00-ts",
1769+ .id = -1,
1770+};
1771+
1772+/* RTC */
1773+static struct resource cmx270_v3020_resource[] = {
1774+ [0] = {
1775+ .start = RTC_PHYS_BASE,
1776+ .end = RTC_PHYS_BASE + 4,
1777+ .flags = IORESOURCE_MEM,
1778+ },
1779+};
1780+
1781+struct v3020_platform_data cmx270_v3020_pdata = {
1782+ .leftshift = 16,
1783+};
1784+
1785+static struct platform_device cmx270_rtc_device = {
1786+ .name = "v3020",
1787+ .num_resources = ARRAY_SIZE(cmx270_v3020_resource),
1788+ .resource = cmx270_v3020_resource,
1789+ .id = -1,
1790+ .dev = {
1791+ .platform_data = &cmx270_v3020_pdata,
1792+ }
1793+};
1794+
1795+/*
1796+ * CM-X270 LEDs
1797+ */
1798+static struct platform_device cmx270led_device = {
1799+ .name = "cm-x270-led",
1800+ .id = -1,
1801+};
1802+
1803+/* 2700G graphics */
1804+static u64 fb_dma_mask = ~(u64)0;
1805+
1806+static struct resource cmx270_2700G_resource[] = {
1807+ /* frame buffer memory including ODFB and External SDRAM */
1808+ [0] = {
1809+ .start = MARATHON_PHYS,
1810+ .end = MARATHON_PHYS + 0x02000000,
1811+ .flags = IORESOURCE_MEM,
1812+ },
1813+ /* Marathon registers */
1814+ [1] = {
1815+ .start = MARATHON_PHYS + 0x03fe0000,
1816+ .end = MARATHON_PHYS + 0x03ffffff,
1817+ .flags = IORESOURCE_MEM,
1818+ },
1819+};
1820+
1821+static unsigned long save_lcd_regs[10];
1822+
1823+static int cmx270_marathon_probe(struct fb_info *fb)
1824+{
1825+ /* save PXA-270 pin settings before enabling 2700G */
1826+ save_lcd_regs[0] = GPDR1;
1827+ save_lcd_regs[1] = GPDR2;
1828+ save_lcd_regs[2] = GAFR1_U;
1829+ save_lcd_regs[3] = GAFR2_L;
1830+ save_lcd_regs[4] = GAFR2_U;
1831+
1832+ /* Disable PXA-270 on-chip controller driving pins */
1833+ GPDR1 &= ~(0xfc000000);
1834+ GPDR2 &= ~(0x00c03fff);
1835+ GAFR1_U &= ~(0xfff00000);
1836+ GAFR2_L &= ~(0x0fffffff);
1837+ GAFR2_U &= ~(0x0000f000);
1838+ return 0;
1839+}
1840+
1841+static int cmx270_marathon_remove(struct fb_info *fb)
1842+{
1843+ GPDR1 = save_lcd_regs[0];
1844+ GPDR2 = save_lcd_regs[1];
1845+ GAFR1_U = save_lcd_regs[2];
1846+ GAFR2_L = save_lcd_regs[3];
1847+ GAFR2_U = save_lcd_regs[4];
1848+ return 0;
1849+}
1850+
1851+static struct mbxfb_platform_data cmx270_2700G_data = {
1852+ .xres = {
1853+ .min = 240,
1854+ .max = 1200,
1855+ .defval = 640,
1856+ },
1857+ .yres = {
1858+ .min = 240,
1859+ .max = 1200,
1860+ .defval = 480,
1861+ },
1862+ .bpp = {
1863+ .min = 16,
1864+ .max = 32,
1865+ .defval = 16,
1866+ },
1867+ .memsize = 8*1024*1024,
1868+ .probe = cmx270_marathon_probe,
1869+ .remove = cmx270_marathon_remove,
1870+};
1871+
1872+static struct platform_device cmx270_2700G = {
1873+ .name = "mbx-fb",
1874+ .dev = {
1875+ .platform_data = &cmx270_2700G_data,
1876+ .dma_mask = &fb_dma_mask,
1877+ .coherent_dma_mask = 0xffffffff,
1878+ },
1879+ .num_resources = ARRAY_SIZE(cmx270_2700G_resource),
1880+ .resource = cmx270_2700G_resource,
1881+ .id = -1,
1882+};
1883+
1884+/* platform devices */
1885+static struct platform_device *platform_devices[] __initdata = {
1886+ &cmx270_device_dm9k,
1887+ &cmx270_audio_device,
1888+ &cmx270_rtc_device,
1889+ &cmx270_2700G,
1890+ &cmx270led_device,
1891+};
1892+
1893+#ifdef CONFIG_PCI
1894+/*
1895+ * Install handler for IT8152 IRQ. Yes, yes... we are way down the IRQ
1896+ * cascade which is not good for IRQ latency, but the hardware has been
1897+ * designed that way...
1898+ */
1899+static inline void cmx270_irq(int irq, struct pt_regs *regs)
1900+{
1901+ struct irq_desc *desc;
1902+ desc = irq_desc + irq;
1903+ desc_handle_irq(irq, desc);
1904+}
1905+
1906+static void cmx270_irq_demux(unsigned int irq, struct irqdesc *desc,
1907+ struct pt_regs *regs)
1908+{
1909+ unsigned long pdcnimr, ldcnimr;
1910+ int pdcnirr, ldcnir;
1911+
1912+ /* clear our parent irq */
1913+ GEDR(GPIO_IT8152_IRQ) = GPIO_bit(GPIO_IT8152_IRQ);
1914+
1915+ /* read pending IRQs in the chip registers and clear them */
1916+ pdcnirr = IT8152_INTC_PDCNIRR;
1917+ ldcnir = IT8152_INTC_LDCNIRR;
1918+ IT8152_INTC_PDCNIRR = ~pdcnirr;
1919+ IT8152_INTC_LDCNIRR = ~ldcnir;
1920+
1921+ /* mask ITE irqs */
1922+ pdcnimr = IT8152_INTC_PDCNIMR;
1923+ ldcnimr = IT8152_INTC_LDCNIMR;
1924+ IT8152_INTC_PDCNIMR = 0xffff;
1925+ IT8152_INTC_LDCNIMR = 0xffff;
1926+
1927+ pdcnirr &= (PCISERR_BIT | H2PTADR_BIT | H2PMAR_BIT |
1928+ PCI_INTD_BIT | PCI_INTC_BIT | PCI_INTB_BIT | PCI_INTA_BIT |
1929+ USB_INT_BIT | CDMA_INT_BIT);
1930+
1931+ ldcnir &= ITESER_BIT;
1932+
1933+ IT8152_INTC_PDCNIRR = ~pdcnirr;
1934+ IT8152_INTC_LDCNIRR = ~ldcnir;
1935+
1936+ /* are there interrupts pending ? */
1937+ if( (pdcnirr | ldcnir) ) {
1938+ if (pdcnirr) {
1939+ if( pdcnirr & PCISERR_BIT )
1940+ cmx270_irq(PCISERR, regs);
1941+ if( pdcnirr & H2PTADR_BIT )
1942+ cmx270_irq(H2PTADR, regs);
1943+ if( pdcnirr & H2PMAR_BIT )
1944+ cmx270_irq(H2PMAR, regs);
1945+ if( pdcnirr & PCI_INTA_BIT )
1946+ cmx270_irq(PCI_INTA, regs);
1947+ if( pdcnirr & PCI_INTB_BIT )
1948+ cmx270_irq(PCI_INTB, regs);
1949+ if( pdcnirr & PCI_INTC_BIT )
1950+ cmx270_irq(PCI_INTC, regs);
1951+ if( pdcnirr & PCI_INTD_BIT )
1952+ cmx270_irq(PCI_INTD, regs);
1953+ if( pdcnirr & USB_INT_BIT )
1954+ cmx270_irq(USB_INT, regs);
1955+ if( pdcnirr & CDMA_INT_BIT )
1956+ cmx270_irq(CDMA_INT, regs);
1957+ }
1958+ if(ldcnir) {
1959+ if( ldcnir & ITESER_BIT )
1960+ cmx270_irq(IRQ_ITESER, regs);
1961+ }
1962+ }
1963+
1964+ /* re-enable ITE interrupts */
1965+ IT8152_INTC_PDCNIMR = pdcnimr;
1966+ IT8152_INTC_LDCNIMR = ldcnimr;
1967+}
1968+#else
1969+unsigned long it8152_base_address = CMX270_IT8152_VIRT;
1970+#endif
1971+
1972+/* #define CMX270_FLASH_VIRT (CMX270_IDE104_VIRT + PXA_CS_SIZE - (8<<20)) */
1973+/* Map PCI companion and IDE/General Purpose CS statically */
1974+static struct map_desc cmx270_io_desc[] __initdata = {
1975+ [0] = { /* IDE/general purpose space */
1976+ .virtual = CMX270_IDE104_VIRT,
1977+ .pfn = __phys_to_pfn(CMX270_IDE104_PHYS),
1978+ .length = PXA_CS_SIZE - (8<<20),
1979+ .type = MT_DEVICE
1980+ },
1981+ [1] = { /* PCI bridge */
1982+ .virtual = CMX270_IT8152_VIRT,
1983+ .pfn = __phys_to_pfn(CMX270_IT8152_PHYS),
1984+ .length = PXA_CS_SIZE,
1985+ .type = MT_DEVICE
1986+ },
1987+};
1988+
1989+/*
1990+ Display definitions
1991+ keep these for backwards compatibility, although symbolic names (as
1992+ e.g. in lpd270.c) looks better
1993+ */
1994+#define MTYPE_STN320x240 0
1995+#define MTYPE_TFT640x480 1
1996+#define MTYPE_CRT640x480 2
1997+#define MTYPE_CRT800x600 3
1998+#define MTYPE_TFT320x240 6
1999+#define MTYPE_STN640x480 7
2000+
2001+static struct pxafb_mode_info generic_stn_320x240_mode = {
2002+ .pixclock = 76923,
2003+ .bpp = 8,
2004+ .xres = 320,
2005+ .yres = 240,
2006+ .hsync_len = 3,
2007+ .vsync_len = 2,
2008+ .left_margin = 3,
2009+ .upper_margin = 0,
2010+ .right_margin = 3,
2011+ .lower_margin = 0,
2012+ .sync = (FB_SYNC_HOR_HIGH_ACT |
2013+ FB_SYNC_VERT_HIGH_ACT),
2014+ .cmap_greyscale = 0,
2015+};
2016+
2017+static struct pxafb_mach_info generic_stn_320x240 = {
2018+ .modes = &generic_stn_320x240_mode,
2019+ .num_modes = 1,
2020+ .lccr0 = 0,
2021+ .lccr3 = (LCCR3_PixClkDiv(0x03) |
2022+ LCCR3_Acb(0xff) |
2023+ LCCR3_PCP),
2024+ .cmap_inverse = 0,
2025+ .cmap_static = 0,
2026+};
2027+
2028+static struct pxafb_mode_info generic_tft_640x480_mode = {
2029+ .pixclock = 38461,
2030+ .bpp = 8,
2031+ .xres = 640,
2032+ .yres = 480,
2033+ .hsync_len = 60,
2034+ .vsync_len = 2,
2035+ .left_margin = 70,
2036+ .upper_margin = 10,
2037+ .right_margin = 70,
2038+ .lower_margin = 5,
2039+ .sync = 0,
2040+ .cmap_greyscale = 0,
2041+};
2042+
2043+static struct pxafb_mach_info generic_tft_640x480 = {
2044+ .modes = &generic_tft_640x480_mode,
2045+ .num_modes = 1,
2046+ .lccr0 = (LCCR0_PAS),
2047+ .lccr3 = (LCCR3_PixClkDiv(0x01) |
2048+ LCCR3_Acb(0xff) |
2049+ LCCR3_PCP),
2050+ .cmap_inverse = 0,
2051+ .cmap_static = 0,
2052+};
2053+
2054+static struct pxafb_mode_info generic_crt_640x480_mode = {
2055+ .pixclock = 38461,
2056+ .bpp = 8,
2057+ .xres = 640,
2058+ .yres = 480,
2059+ .hsync_len = 63,
2060+ .vsync_len = 2,
2061+ .left_margin = 81,
2062+ .upper_margin = 33,
2063+ .right_margin = 16,
2064+ .lower_margin = 10,
2065+ .sync = (FB_SYNC_HOR_HIGH_ACT |
2066+ FB_SYNC_VERT_HIGH_ACT),
2067+ .cmap_greyscale = 0,
2068+};
2069+
2070+static struct pxafb_mach_info generic_crt_640x480 = {
2071+ .modes = &generic_crt_640x480_mode,
2072+ .num_modes = 1,
2073+ .lccr0 = (LCCR0_PAS),
2074+ .lccr3 = (LCCR3_PixClkDiv(0x01) |
2075+ LCCR3_Acb(0xff)),
2076+ .cmap_inverse = 0,
2077+ .cmap_static = 0,
2078+};
2079+
2080+static struct pxafb_mode_info generic_crt_800x600_mode = {
2081+ .pixclock = 28846,
2082+ .bpp = 8,
2083+ .xres = 800,
2084+ .yres = 600,
2085+ .hsync_len = 63,
2086+ .vsync_len = 2,
2087+ .left_margin = 26,
2088+ .upper_margin = 21,
2089+ .right_margin = 26,
2090+ .lower_margin = 11,
2091+ .sync = (FB_SYNC_HOR_HIGH_ACT |
2092+ FB_SYNC_VERT_HIGH_ACT),
2093+ .cmap_greyscale = 0,
2094+};
2095+
2096+static struct pxafb_mach_info generic_crt_800x600 = {
2097+ .modes = &generic_crt_800x600_mode,
2098+ .num_modes = 1,
2099+ .lccr0 = (LCCR0_PAS),
2100+ .lccr3 = (LCCR3_PixClkDiv(0x02) |
2101+ LCCR3_Acb(0xff)),
2102+ .cmap_inverse = 0,
2103+ .cmap_static = 0,
2104+};
2105+
2106+static struct pxafb_mode_info generic_tft_320x240_mode = {
2107+ .pixclock = 134615,
2108+ .bpp = 16,
2109+ .xres = 320,
2110+ .yres = 240,
2111+ .hsync_len = 63,
2112+ .vsync_len = 7,
2113+ .left_margin = 75,
2114+ .upper_margin = 0,
2115+ .right_margin = 15,
2116+ .lower_margin = 15,
2117+ .sync = 0,
2118+ .cmap_greyscale = 0,
2119+};
2120+
2121+static struct pxafb_mach_info generic_tft_320x240 = {
2122+ .modes = &generic_tft_320x240_mode,
2123+ .num_modes = 1,
2124+ .lccr0 = (LCCR0_PAS),
2125+ .lccr3 = (LCCR3_PixClkDiv(0x06) |
2126+ LCCR3_Acb(0xff) |
2127+ LCCR3_PCP),
2128+ .cmap_inverse = 0,
2129+ .cmap_static = 0,
2130+};
2131+
2132+static struct pxafb_mode_info generic_stn_640x480_mode = {
2133+ .pixclock = 57692,
2134+ .bpp = 8,
2135+ .xres = 640,
2136+ .yres = 480,
2137+ .hsync_len = 4,
2138+ .vsync_len = 2,
2139+ .left_margin = 10,
2140+ .upper_margin = 5,
2141+ .right_margin = 10,
2142+ .lower_margin = 5,
2143+ .sync = (FB_SYNC_HOR_HIGH_ACT |
2144+ FB_SYNC_VERT_HIGH_ACT),
2145+ .cmap_greyscale = 0,
2146+};
2147+
2148+static struct pxafb_mach_info generic_stn_640x480 = {
2149+ .modes = &generic_stn_640x480_mode,
2150+ .num_modes = 1,
2151+ .lccr0 = 0,
2152+ .lccr3 = (LCCR3_PixClkDiv(0x02) |
2153+ LCCR3_Acb(0xff)),
2154+ .cmap_inverse = 0,
2155+ .cmap_static = 0,
2156+};
2157+
2158+static struct pxafb_mach_info *cmx270_display = &generic_crt_640x480;
2159+
2160+static int __init cmx270_set_display(char *str)
2161+{
2162+ int disp_type = simple_strtol(str, NULL, 0);
2163+ switch (disp_type) {
2164+ case MTYPE_STN320x240:
2165+ cmx270_display = &generic_stn_320x240;
2166+ break;
2167+ case MTYPE_TFT640x480:
2168+ cmx270_display = &generic_tft_640x480;
2169+ break;
2170+ case MTYPE_CRT640x480:
2171+ cmx270_display = &generic_crt_640x480;
2172+ break;
2173+ case MTYPE_CRT800x600:
2174+ cmx270_display = &generic_crt_800x600;
2175+ break;
2176+ case MTYPE_TFT320x240:
2177+ cmx270_display = &generic_tft_320x240;
2178+ break;
2179+ case MTYPE_STN640x480:
2180+ cmx270_display = &generic_stn_640x480;
2181+ break;
2182+ default: /* fallback to CRT 640x480 */
2183+ cmx270_display = &generic_crt_640x480;
2184+ break;
2185+ }
2186+ return 1;
2187+}
2188+
2189+__setup("monitor=", cmx270_set_display);
2190+
2191+/* PXA27x OHCI controller setup */
2192+static int cmx270_ohci_init(struct device *dev)
2193+{
2194+ /* Set the Power Control Polarity Low */
2195+ UHCHR = (UHCHR | UHCHR_PCPL) &
2196+ ~(UHCHR_SSEP1 | UHCHR_SSEP2 | UHCHR_SSE);
2197+
2198+ return 0;
2199+}
2200+
2201+static struct pxaohci_platform_data cmx270_ohci_platform_data = {
2202+ .port_mode = PMM_PERPORT_MODE,
2203+ .init = cmx270_ohci_init,
2204+};
2205+
2206+
2207+static int cmx270_mci_init(struct device *dev, irq_handler_t cmx270_detect_int, void *data)
2208+{
2209+ int err;
2210+
2211+ /*
2212+ * setup GPIO for PXA27x MMC controller
2213+ */
2214+ pxa_gpio_mode(GPIO32_MMCCLK_MD);
2215+ pxa_gpio_mode(GPIO112_MMCCMD_MD);
2216+ pxa_gpio_mode(GPIO92_MMCDAT0_MD);
2217+ pxa_gpio_mode(GPIO109_MMCDAT1_MD);
2218+ pxa_gpio_mode(GPIO110_MMCDAT2_MD);
2219+ pxa_gpio_mode(GPIO111_MMCDAT3_MD);
2220+
2221+ /* SB-X270 uses GPIO105 as SD power enable */
2222+ pxa_gpio_mode(105 | GPIO_OUT);
2223+
2224+ /* card detect IRQ on GPIO 83 */
2225+ pxa_gpio_mode(IRQ_TO_GPIO(CMX270_MMC_IRQ));
2226+ set_irq_type(CMX270_MMC_IRQ, IRQT_FALLING);
2227+
2228+ err = request_irq(CMX270_MMC_IRQ, cmx270_detect_int, SA_INTERRUPT,
2229+ "MMC card detect", data);
2230+ if (err) {
2231+ printk(KERN_ERR "cmx270_mci_init: MMC/SD: can't request MMC card detect IRQ\n");
2232+ return -1;
2233+ }
2234+
2235+ return 0;
2236+}
2237+
2238+static void cmx270_mci_setpower(struct device *dev, unsigned int vdd)
2239+{
2240+ struct pxamci_platform_data* p_d = dev->platform_data;
2241+
2242+ if (( 1 << vdd) & p_d->ocr_mask) {
2243+ printk(KERN_DEBUG "%s: on\n", __FUNCTION__);
2244+ GPCR(105) = GPIO_bit(105);
2245+ } else {
2246+ GPSR(105) = GPIO_bit(105);
2247+ printk(KERN_DEBUG "%s: off\n", __FUNCTION__);
2248+ }
2249+}
2250+
2251+static void cmx270_mci_exit(struct device *dev, void *data)
2252+{
2253+ free_irq(CMX270_MMC_IRQ, data);
2254+}
2255+
2256+static struct pxamci_platform_data cmx270_mci_platform_data = {
2257+ .ocr_mask = MMC_VDD_32_33|MMC_VDD_33_34,
2258+ .init = cmx270_mci_init,
2259+ .setpower = cmx270_mci_setpower,
2260+ .exit = cmx270_mci_exit,
2261+};
2262+
2263+#ifdef CONFIG_PM
2264+/* extern struct subsystem power_subsys; */
2265+static unsigned long sleep_save_ite[10];
2266+static unsigned long sleep_save_msc[10];
2267+
2268+static int cmx270_suspend(struct sys_device *dev, pm_message_t state)
2269+{
2270+#ifdef CONFIG_PCI
2271+ /* save ITE state */
2272+ sleep_save_ite[0] = IT8152_INTC_PDCNIMR;
2273+ sleep_save_ite[1] = IT8152_INTC_LPCNIMR;
2274+ sleep_save_ite[2] = IT8152_INTC_LPNIAR;
2275+
2276+ /* Clear ITE IRQ's */
2277+ IT8152_INTC_PDCNIRR = 0;
2278+ IT8152_INTC_LPCNIRR = 0;
2279+#endif
2280+
2281+ /* save MSC registers */
2282+ sleep_save_msc[0] = MSC0;
2283+ sleep_save_msc[1] = MSC1;
2284+ sleep_save_msc[2] = MSC2;
2285+
2286+ /* setup power saving mode registers */
2287+ PCFR = 0x0;
2288+ PSLR = 0xff400000;
2289+ PMCR = 0x00000005;
2290+ PWER = 0x80000000;
2291+ PFER = 0x00000000;
2292+ PRER = 0x00000000;
2293+ PGSR0 = 0xC0018800;
2294+ PGSR1 = 0x004F0002;
2295+ PGSR2 = 0x6021C000;
2296+ PGSR3 = 0x00020000;
2297+
2298+ return 0;
2299+}
2300+
2301+static int cmx270_resume(struct sys_device *dev)
2302+{
2303+#ifdef CONFIG_PCI
2304+ /* restore IT8152 state */
2305+ IT8152_INTC_PDCNIMR = sleep_save_ite[0];
2306+ IT8152_INTC_LPCNIMR = sleep_save_ite[1];
2307+ IT8152_INTC_LPNIAR = sleep_save_ite[2];
2308+#endif
2309+
2310+ /* restore MSC registers */
2311+ MSC0 = sleep_save_msc[0];
2312+ MSC1 = sleep_save_msc[1];
2313+ MSC2 = sleep_save_msc[2];
2314+
2315+ return 0;
2316+}
2317+
2318+static struct sysdev_class cmx270_pm_sysclass = {
2319+ set_kset_name("pm"),
2320+ .resume = cmx270_resume,
2321+ .suspend = cmx270_suspend,
2322+};
2323+
2324+static struct sys_device cmx270_pm_device = {
2325+ .cls = &cmx270_pm_sysclass,
2326+};
2327+
2328+static int __init cmx270_pm_init(void)
2329+{
2330+ int error;
2331+ error = sysdev_class_register(&cmx270_pm_sysclass);
2332+ if (error == 0)
2333+ error = sysdev_register(&cmx270_pm_device);
2334+ return error;
2335+}
2336+#else
2337+static int __init cmx270_pm_init(void) { return 0; }
2338+#endif
2339+
2340+static void __init cmx270_init(void)
2341+{
2342+ cmx270_pm_init();
2343+
2344+ set_pxa_fb_info(cmx270_display);
2345+
2346+ /* register CM-X270 platform devices */
2347+ platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices));
2348+
2349+ /* set MCI and OHCI platform parameters */
2350+ pxa_set_mci_info(&cmx270_mci_platform_data);
2351+ pxa_set_ohci_info(&cmx270_ohci_platform_data);
2352+
2353+ /* This enables the STUART */
2354+ pxa_gpio_mode(GPIO46_STRXD_MD);
2355+ pxa_gpio_mode(GPIO47_STTXD_MD);
2356+
2357+ /* This enables the BTUART */
2358+ pxa_gpio_mode(GPIO42_BTRXD_MD);
2359+ pxa_gpio_mode(GPIO43_BTTXD_MD);
2360+ pxa_gpio_mode(GPIO44_BTCTS_MD);
2361+ pxa_gpio_mode(GPIO45_BTRTS_MD);
2362+}
2363+
2364+#ifdef CONFIG_PCI
2365+static void cmx270_mask_irq(unsigned int irq)
2366+{
2367+ switch(irq) {
2368+ case IT8152_IRQ(0):
2369+ IT8152_INTC_PDCNIMR |= PCISERR_BIT;
2370+ break;
2371+ case IT8152_IRQ(1):
2372+ IT8152_INTC_PDCNIMR |= H2PTADR_BIT;
2373+ break;
2374+ case IT8152_IRQ(2):
2375+ IT8152_INTC_PDCNIMR |= H2PMAR_BIT;
2376+ break;
2377+ case IT8152_IRQ(3):
2378+ IT8152_INTC_PDCNIMR |= PCI_INTA_BIT;
2379+ break;
2380+ case IT8152_IRQ(4):
2381+ IT8152_INTC_PDCNIMR |= PCI_INTB_BIT;
2382+ break;
2383+ case IT8152_IRQ(5):
2384+ IT8152_INTC_PDCNIMR |= PCI_INTC_BIT;
2385+ break;
2386+ case IT8152_IRQ(6):
2387+ IT8152_INTC_PDCNIMR |= PCI_INTD_BIT;
2388+ break;
2389+ case IT8152_IRQ(7):
2390+ IT8152_INTC_PDCNIMR |= USB_INT_BIT;
2391+ break;
2392+ case IT8152_IRQ(9):
2393+ IT8152_INTC_PDCNIMR |= CDMA_INT_BIT;
2394+ break;
2395+ case IT8152_IRQ(10):
2396+ IT8152_INTC_LDCNIMR |= ITESER_BIT;
2397+ break;
2398+ }
2399+}
2400+
2401+static void cmx270_unmask_irq(unsigned int irq)
2402+{
2403+ switch(irq) {
2404+ case IT8152_IRQ(0):
2405+ IT8152_INTC_PDCNIMR &= (~PCISERR_BIT);
2406+ break;
2407+ case IT8152_IRQ(1):
2408+ IT8152_INTC_PDCNIMR &= (~H2PTADR_BIT);
2409+ break;
2410+ case IT8152_IRQ(2):
2411+ IT8152_INTC_PDCNIMR &= (~H2PMAR_BIT);
2412+ break;
2413+ case IT8152_IRQ(3):
2414+ IT8152_INTC_PDCNIMR &= (~PCI_INTA_BIT);
2415+ break;
2416+ case IT8152_IRQ(4):
2417+ IT8152_INTC_PDCNIMR &= (~PCI_INTB_BIT);
2418+ break;
2419+ case IT8152_IRQ(5):
2420+ IT8152_INTC_PDCNIMR &= (~PCI_INTC_BIT);
2421+ break;
2422+ case IT8152_IRQ(6):
2423+ IT8152_INTC_PDCNIMR &= (~PCI_INTD_BIT);
2424+ break;
2425+ case IT8152_IRQ(7):
2426+ IT8152_INTC_PDCNIMR &= (~USB_INT_BIT);
2427+ break;
2428+ case IT8152_IRQ(9):
2429+ IT8152_INTC_PDCNIMR &= (~CDMA_INT_BIT);
2430+ break;
2431+ case IT8152_IRQ(10):
2432+ IT8152_INTC_LDCNIMR &= (~ITESER_BIT);
2433+ break;
2434+ }
2435+}
2436+
2437+static struct irq_chip cmx270_irq_chip = {
2438+ .ack = cmx270_mask_irq,
2439+ .mask = cmx270_mask_irq,
2440+ .unmask = cmx270_unmask_irq,
2441+};
2442+#endif
2443+
2444+static void __init cmx270_init_irq(void)
2445+{
2446+ int irq;
2447+
2448+ pxa_init_irq();
2449+
2450+ IT8152_INTC_PDCNIMR = 0xffff;
2451+
2452+#ifdef CONFIG_PCI
2453+ /* Disable and clear IRQ's for ITE8152 */
2454+ IT8152_INTC_PDCNIMR = 0xffff;
2455+ IT8152_INTC_PDCNIRR = 0;
2456+ IT8152_INTC_LPCNIMR = 0xffff;
2457+ IT8152_INTC_LPCNIRR = 0;
2458+ IT8152_INTC_LDCNIMR = 0xffff;
2459+ IT8152_INTC_LDCNIRR = 0;
2460+
2461+ for(irq = IT8152_IRQ(0); irq <= IT8152_IRQ_MAX; irq++) {
2462+ set_irq_chip(irq, &cmx270_irq_chip);
2463+ set_irq_handler(irq, handle_level_irq);
2464+ set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
2465+ }
2466+
2467+ /* INTC signal from IT8152 is connected to GPIO0 */
2468+ pxa_gpio_mode(IRQ_GPIO_IT8152_IRQ);
2469+ set_irq_chained_handler(IRQ_GPIO_IT8152_IRQ, cmx270_irq_demux);
2470+ set_irq_type(IRQ_GPIO_IT8152_IRQ, IRQT_RISING);
2471+#endif
2472+
2473+ /* Setup interrupt for dm9000 */
2474+ pxa_gpio_mode(IRQ_TO_GPIO(CMX270_ETHIRQ));
2475+ set_irq_type(CMX270_ETHIRQ, IRQT_RISING);
2476+
2477+ /* Setup interrupt for 2700G */
2478+ pxa_gpio_mode(IRQ_TO_GPIO(CMX270_GFXIRQ));
2479+ set_irq_type(CMX270_GFXIRQ, IRQT_FALLING);
2480+}
2481+
2482+static void __init cmx270_map_io(void)
2483+{
2484+ pxa_map_io();
2485+ iotable_init(cmx270_io_desc, ARRAY_SIZE(cmx270_io_desc));
2486+}
2487+
2488+
2489+MACHINE_START(ARMCORE, "Compulab CM-x270")
2490+ .boot_params = 0xa0000100,
2491+ .phys_io = 0x40000000,
2492+ .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
2493+ .map_io = cmx270_map_io,
2494+ .init_irq = cmx270_init_irq,
2495+ .timer = &pxa_timer,
2496+ .init_machine = cmx270_init,
2497+MACHINE_END
2498diff --git a/drivers/leds/Kconfig b/drivers/leds/Kconfig
2499index 87d2046..1023411 100644
2500--- a/drivers/leds/Kconfig
2501+++ b/drivers/leds/Kconfig
2502@@ -89,6 +89,12 @@ config LEDS_H1940
2503 help
2504 This option enables support for the LEDs on the h1940.
2505
2506+config LEDS_CM_X270
2507+ tristate "LED Support for the CM-X270 LEDs"
2508+ depends on LEDS_CLASS && MACH_ARMCORE
2509+ help
2510+ This option enables support for the CM-X270 LEDs.
2511+
2512 config LEDS_COBALT
2513 tristate "LED Support for Cobalt Server front LED"
2514 depends on LEDS_CLASS && MIPS_COBALT
2515diff --git a/drivers/leds/Makefile b/drivers/leds/Makefile
2516index aa2c18e..808900c 100644
2517--- a/drivers/leds/Makefile
2518+++ b/drivers/leds/Makefile
2519@@ -16,6 +16,7 @@ obj-$(CONFIG_LEDS_NET48XX) += leds-net48xx.o
2520 obj-$(CONFIG_LEDS_WRAP) += leds-wrap.o
2521 obj-$(CONFIG_LEDS_H1940) += leds-h1940.o
2522 obj-$(CONFIG_LEDS_COBALT) += leds-cobalt.o
2523+obj-$(CONFIG_LEDS_CM_X270) += leds-cm-x270.o
2524
2525 # LED Triggers
2526 obj-$(CONFIG_LEDS_TRIGGER_TIMER) += ledtrig-timer.o
2527diff --git a/drivers/leds/leds-cm-x270.c b/drivers/leds/leds-cm-x270.c
2528new file mode 100644
2529index 0000000..63b7e9e
2530--- /dev/null
2531+++ b/drivers/leds/leds-cm-x270.c
2532@@ -0,0 +1,126 @@
2533+/*
2534+ * drivers/leds/leds-cm-x270.c
2535+ *
2536+ * Copyright 2007 CompuLab Ltd.
2537+ * Author: Mike Rapoport <mike@compulab.co.il>
2538+ *
2539+ * Based on leds-corgi.c
2540+ * Author: Richard Purdie <rpurdie@openedhand.com>
2541+ *
2542+ * This program is free software; you can redistribute it and/or modify
2543+ * it under the terms of the GNU General Public License version 2 as
2544+ * published by the Free Software Foundation.
2545+ *
2546+ */
2547+
2548+#include <linux/kernel.h>
2549+#include <linux/init.h>
2550+#include <linux/platform_device.h>
2551+#include <linux/leds.h>
2552+
2553+#include <asm/arch/hardware.h>
2554+#include <asm/arch/pxa-regs.h>
2555+
2556+#define GPIO_RED_LED (93)
2557+#define GPIO_GREEN_LED (94)
2558+
2559+#define CMX270_RED_ON() GPCR(GPIO_RED_LED) = GPIO_bit(GPIO_RED_LED)
2560+#define CMX270_RED_OFF() GPSR(GPIO_RED_LED) = GPIO_bit(GPIO_RED_LED)
2561+#define CMX270_GREEN_ON() GPCR(GPIO_GREEN_LED) = GPIO_bit(GPIO_GREEN_LED)
2562+#define CMX270_GREEN_OFF() GPSR(GPIO_GREEN_LED) = GPIO_bit(GPIO_GREEN_LED)
2563+
2564+
2565+static void cmx270_red_set(struct led_classdev *led_cdev, enum led_brightness value)
2566+{
2567+ if (value)
2568+ CMX270_RED_ON();
2569+ else
2570+ CMX270_RED_OFF();
2571+}
2572+
2573+static void cmx270_green_set(struct led_classdev *led_cdev, enum led_brightness value)
2574+{
2575+ if (value)
2576+ CMX270_GREEN_ON();
2577+ else
2578+ CMX270_GREEN_OFF();
2579+}
2580+
2581+static struct led_classdev cmx270_red_led = {
2582+ .name = "cm-x270:red",
2583+ .default_trigger = "nand-disk",
2584+ .brightness_set = cmx270_red_set,
2585+};
2586+
2587+static struct led_classdev cmx270_green_led = {
2588+ .name = "cm-x270:green",
2589+ .default_trigger = "heartbeat",
2590+ .brightness_set = cmx270_green_set,
2591+};
2592+
2593+#ifdef CONFIG_PM
2594+static int cmx270led_suspend(struct platform_device *dev, pm_message_t state)
2595+{
2596+ led_classdev_suspend(&cmx270_red_led);
2597+ led_classdev_suspend(&cmx270_green_led);
2598+ return 0;
2599+}
2600+
2601+static int cmx270led_resume(struct platform_device *dev)
2602+{
2603+ led_classdev_resume(&cmx270_red_led);
2604+ led_classdev_resume(&cmx270_green_led);
2605+ return 0;
2606+}
2607+#endif
2608+
2609+static int cmx270led_probe(struct platform_device *pdev)
2610+{
2611+ int ret;
2612+
2613+ ret = led_classdev_register(&pdev->dev, &cmx270_red_led);
2614+ if (ret < 0)
2615+ return ret;
2616+
2617+ ret = led_classdev_register(&pdev->dev, &cmx270_green_led);
2618+ if (ret < 0)
2619+ led_classdev_unregister(&cmx270_red_led);
2620+
2621+ return ret;
2622+}
2623+
2624+static int cmx270led_remove(struct platform_device *pdev)
2625+{
2626+ led_classdev_unregister(&cmx270_red_led);
2627+ led_classdev_unregister(&cmx270_green_led);
2628+ return 0;
2629+}
2630+
2631+static struct platform_driver cmx270led_driver = {
2632+ .probe = cmx270led_probe,
2633+ .remove = cmx270led_remove,
2634+#ifdef CONFIG_PM
2635+ .suspend = cmx270led_suspend,
2636+ .resume = cmx270led_resume,
2637+#endif
2638+ .driver = {
2639+ .name = "cm-x270-led",
2640+ },
2641+};
2642+
2643+static int __init cmx270led_init(void)
2644+{
2645+ return platform_driver_register(&cmx270led_driver);
2646+}
2647+
2648+static void __exit cmx270led_exit(void)
2649+{
2650+ platform_driver_unregister(&cmx270led_driver);
2651+}
2652+
2653+module_init(cmx270led_init);
2654+module_exit(cmx270led_exit);
2655+
2656+MODULE_AUTHOR("Richard Purdie <rpurdie@openedhand.com>");
2657+MODULE_DESCRIPTION("Corgi LED driver");
2658+MODULE_LICENSE("GPL");
2659diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
2660index b49375a..7ee6561 100644
2661--- a/drivers/net/Kconfig
2662+++ b/drivers/net/Kconfig
2663@@ -875,6 +875,14 @@ config DM9000
2664 <file:Documentation/networking/net-modules.txt>. The module will be
2665 called dm9000.
2666
2667+config DM9000_NOEPROM
2668+ bool "DM9000 without EEPROM attached"
2669+ depends on DM9000
2670+ ---help---
2671+ Select this option if you have DM9000 chipset without EEPROM
2672+ containing the MAC address. In this case MAC address should
2673+ be set either by the bootloader or using ifconfig
2674+
2675 config SMC911X
2676 tristate "SMSC LAN911[5678] support"
2677 select CRC32
2678diff --git a/drivers/net/dm9000.c b/drivers/net/dm9000.c
2679index 264fa0e..4e2954b 100644
2680--- a/drivers/net/dm9000.c
2681+++ b/drivers/net/dm9000.c
2682@@ -562,6 +562,7 @@ dm9000_probe(struct platform_device *pdev)
2683 db->mii.mdio_read = dm9000_phy_read;
2684 db->mii.mdio_write = dm9000_phy_write;
2685
2686+#ifndef CONFIG_DM9000_NOEPROM
2687 /* Read SROM content */
2688 for (i = 0; i < 64; i++)
2689 ((u16 *) db->srom)[i] = read_srom_word(db, i);
2690@@ -569,6 +570,11 @@ dm9000_probe(struct platform_device *pdev)
2691 /* Set Node Address */
2692 for (i = 0; i < 6; i++)
2693 ndev->dev_addr[i] = db->srom[i];
2694+#else
2695+ /* The Node Address was set by bootloader */
2696+ for (i=0; i<6; i++)
2697+ ndev->dev_addr[i] = ior(db, 0x10+i);
2698+#endif
2699
2700 if (!is_valid_ether_addr(ndev->dev_addr)) {
2701 /* try reading from mac */
2702diff --git a/include/asm-arm/arch-pxa/cm-x270.h b/include/asm-arm/arch-pxa/cm-x270.h
2703new file mode 100644
2704index 0000000..24613a5
2705--- /dev/null
2706+++ b/include/asm-arm/arch-pxa/cm-x270.h
2707@@ -0,0 +1,71 @@
2708+/*
2709+ * linux/include/asm/arch-pxa/armcore.h
2710+ *
2711+ * Compulab Ltd., 2003
2712+ *
2713+ * ARMCore registers
2714+ */
2715+
2716+
2717+#define CMX270_CS1_PHYS (PXA_CS1_PHYS)
2718+#define MARATHON_PHYS (PXA_CS2_PHYS)
2719+#define CMX270_IDE104_PHYS (PXA_CS3_PHYS)
2720+#define CMX270_IT8152_PHYS (PXA_CS4_PHYS)
2721+
2722+#define PXA_CS_SIZE (64*1024*1024)
2723+
2724+/* Virtual map */
2725+
2726+#define CMX270_VIRT_BASE (0xe8000000)
2727+
2728+#define CMX270_IT8152_VIRT (CMX270_VIRT_BASE)
2729+#define CMX270_IDE104_VIRT (CMX270_IT8152_VIRT + PXA_CS_SIZE)
2730+
2731+
2732+/* GPIO related definitions */
2733+#define GPIO_IT8152_IRQ (22)
2734+#define GPIO_RED_LED (93)
2735+#define GPIO_GREEN_LED (94)
2736+
2737+
2738+#define IRQ_GPIO_IT8152_IRQ IRQ_GPIO(GPIO_IT8152_IRQ)
2739+#define PME_IRQ IRQ_GPIO(0)
2740+#define CMX270_IDE_IRQ IRQ_GPIO(100)
2741+#define CMX270_GPIRQ1 IRQ_GPIO(101)
2742+#define CMX270_TOUCHIRQ IRQ_GPIO(96)
2743+#define CMX270_ETHIRQ IRQ_GPIO(10)
2744+#define CMX270_GFXIRQ IRQ_GPIO(95)
2745+#define CMX270_NANDIRQ IRQ_GPIO(89)
2746+#define CMX270_MMC_IRQ IRQ_GPIO(83)
2747+
2748+/* LED macros */
2749+#define CMX270_RED_ON() GPCR(GPIO_RED_LED) = GPIO_bit(GPIO_RED_LED)
2750+#define CMX270_RED_OFF() GPSR(GPIO_RED_LED) = GPIO_bit(GPIO_RED_LED)
2751+#define CMX270_GREEN_ON() GPCR(GPIO_GREEN_LED) = GPIO_bit(GPIO_GREEN_LED)
2752+#define CMX270_GREEN_OFF() GPSR(GPIO_GREEN_LED) = GPIO_bit(GPIO_GREEN_LED)
2753+
2754+/* PCMCIA related definitions */
2755+#define PCC_DETECT(x) (GPLR(84 - (x)) & GPIO_bit(84 - (x)))
2756+#define PCC_READY(x) (GPLR(82 - (x)) & GPIO_bit(81 - (x)))
2757+
2758+#define PCMCIA_S0_CD_VALID IRQ_GPIO(84)
2759+#define PCMCIA_S0_CD_VALID_EDGE GPIO_BOTH_EDGES
2760+
2761+#define PCMCIA_S1_CD_VALID IRQ_GPIO(83)
2762+#define PCMCIA_S1_CD_VALID_EDGE GPIO_BOTH_EDGES
2763+
2764+#define PCMCIA_S0_RDYINT IRQ_GPIO(82)
2765+#define PCMCIA_S1_RDYINT IRQ_GPIO(81)
2766+
2767+#define PCMCIA_RESET_GPIO 53
2768+
2769+
2770+
2771+
2772+
2773+
2774+
2775+
2776+
2777+
2778+
2779diff --git a/include/asm-arm/arch-pxa/hardware.h b/include/asm-arm/arch-pxa/hardware.h
2780index e2bdc2f..989303a 100644
2781--- a/include/asm-arm/arch-pxa/hardware.h
2782+++ b/include/asm-arm/arch-pxa/hardware.h
2783@@ -90,4 +90,15 @@ extern unsigned int get_lcdclk_frequency_10khz(void);
2784
2785 #endif
2786
2787+#if defined(CONFIG_MACH_ARMCORE) && defined(CONFIG_PCI)
2788+#define HAVE_ARCH_PCI_SET_DMA_MASK
2789+#ifndef __ASSEMBLY__
2790+extern unsigned long armcore_pcibios_min_io;
2791+extern unsigned long armcore_pcibios_min_mem;
2792+#endif
2793+#define PCIBIOS_MIN_IO (armcore_pcibios_min_io)
2794+#define PCIBIOS_MIN_MEM (armcore_pcibios_min_mem)
2795+#define pcibios_assign_all_busses() 1
2796+#endif
2797+
2798 #endif /* _ASM_ARCH_HARDWARE_H */
2799diff --git a/include/asm-arm/arch-pxa/irqs.h b/include/asm-arm/arch-pxa/irqs.h
2800index 67ed436..f9c075f 100644
2801--- a/include/asm-arm/arch-pxa/irqs.h
2802+++ b/include/asm-arm/arch-pxa/irqs.h
2803@@ -222,3 +222,23 @@
2804 #define IRQ_LOCOMO_GPIO_BASE (IRQ_BOARD_START + 1)
2805 #define IRQ_LOCOMO_LT_BASE (IRQ_BOARD_START + 2)
2806 #define IRQ_LOCOMO_SPI_BASE (IRQ_BOARD_START + 3)
2807+
2808+/* ITE8152 irqs on CM-x2xx */
2809+#ifdef CONFIG_MACH_ARMCORE
2810+#define IT8152_IRQ(x) (IRQ_BOARD_START + (x))
2811+#define PCISERR IT8152_IRQ(0)
2812+#define H2PTADR IT8152_IRQ(1)
2813+#define H2PMAR IT8152_IRQ(2)
2814+#define PCI_INTA IT8152_IRQ(3)
2815+#define PCI_INTB IT8152_IRQ(4)
2816+#define PCI_INTC IT8152_IRQ(5)
2817+#define PCI_INTD IT8152_IRQ(6)
2818+#define USB_INT IT8152_IRQ(7)
2819+#define AUDIO_INT IT8152_IRQ(8)
2820+#define CDMA_INT IT8152_IRQ(9)
2821+#define IRQ_ITESER IT8152_IRQ(10)
2822+#define IT8152_IRQ_MAX IT8152_IRQ(10)
2823+
2824+#undef NR_IRQS
2825+#define NR_IRQS IT8152_IRQ_MAX+1
2826+#endif
2827diff --git a/include/asm-arm/memory.h b/include/asm-arm/memory.h
2828index d9bfb39..83db3cb 100644
2829--- a/include/asm-arm/memory.h
2830+++ b/include/asm-arm/memory.h
2831@@ -141,6 +141,16 @@
2832 * allocations. This must be the smallest DMA mask in the system,
2833 * so a successful GFP_DMA allocation will always satisfy this.
2834 */
2835+
2836+#ifdef CONFIG_PCI_HOST_ITE8152
2837+void it8152_adjust_zones(int node, unsigned long *size, unsigned long *holes);
2838+
2839+#define arch_adjust_zones(node, size, holes) \
2840+ it8152_adjust_zones(node, size, holes)
2841+
2842+#define ISA_DMA_THRESHOLD (PHYS_OFFSET + SZ_64M - 1)
2843+#endif
2844+
2845 #ifndef ISA_DMA_THRESHOLD
2846 #define ISA_DMA_THRESHOLD (0xffffffffULL)
2847 #endif
2848--
28491.5.1.6
2850
diff --git a/meta/packages/linux/linux-2.6.22/cm-x270/0002-cm-x270-match-type.patch b/meta/packages/linux/linux-2.6.22/cm-x270/0002-cm-x270-match-type.patch
new file mode 100644
index 0000000000..68da30191c
--- /dev/null
+++ b/meta/packages/linux/linux-2.6.22/cm-x270/0002-cm-x270-match-type.patch
@@ -0,0 +1,25 @@
1From e566813cedb9f91724597df45c11075023a7b589 Mon Sep 17 00:00:00 2001
2From: Cliff Brake <cbrake@happy.dev.bec-systems.com>
3Date: Fri, 20 Jul 2007 18:58:27 -0400
4Subject: [PATCH] cm-x270-match-type
5
6---
7 arch/arm/boot/compressed/head-xscale.S | 5 +++++
8 1 files changed, 5 insertions(+), 0 deletions(-)
9
10diff --git a/arch/arm/boot/compressed/head-xscale.S b/arch/arm/boot/compressed/head-xscale.S
11index 73c5d9e..dc89459 100644
12--- a/arch/arm/boot/compressed/head-xscale.S
13+++ b/arch/arm/boot/compressed/head-xscale.S
14@@ -53,3 +53,8 @@ __XScale_start:
15 str r1, [r0, #0x18]
16 #endif
17
18+#if defined(CONFIG_MACH_ARMCORE)
19+ mov r7, #(MACH_TYPE_ARMCORE & 0xFF00)
20+ add r7, r7, #(MACH_TYPE_ARMCORE & 0xFF)
21+#endif
22+
23--
241.5.1.6
25
diff --git a/meta/packages/linux/linux-2.6.22/cm-x270/0003-cm-x270-ide.patch b/meta/packages/linux/linux-2.6.22/cm-x270/0003-cm-x270-ide.patch
new file mode 100644
index 0000000000..0ff115efc8
--- /dev/null
+++ b/meta/packages/linux/linux-2.6.22/cm-x270/0003-cm-x270-ide.patch
@@ -0,0 +1,186 @@
1From f260d5fa4c99cd7df949e6408af59807f8ccf224 Mon Sep 17 00:00:00 2001
2From: Cliff Brake <cbrake@happy.dev.bec-systems.com>
3Date: Fri, 20 Jul 2007 18:59:39 -0400
4Subject: [PATCH] cm-x270-ide
5
6---
7 drivers/ide/Kconfig | 8 +++
8 drivers/ide/arm/Makefile | 1 +
9 drivers/ide/arm/cm-x270-ide.c | 135 +++++++++++++++++++++++++++++++++++++++++
10 3 files changed, 144 insertions(+), 0 deletions(-)
11 create mode 100644 drivers/ide/arm/cm-x270-ide.c
12
13diff --git a/drivers/ide/Kconfig b/drivers/ide/Kconfig
14index b1a9b81..7de4155 100644
15--- a/drivers/ide/Kconfig
16+++ b/drivers/ide/Kconfig
17@@ -864,6 +864,14 @@ config BLK_DEV_IDE_BAST
18 Say Y here if you want to support the onboard IDE channels on the
19 Simtec BAST or the Thorcom VR1000
20
21+config BLK_DEV_IDE_CM_X270
22+ tristate "CompuLab CM-X270 IDE support"
23+ depends on ARM && (MACH_ARMCORE)
24+ help
25+ Say Y here if you want to support the onboard IDE channels on the
26+ CompuLab CM-X270 module
27+
28+
29 config BLK_DEV_GAYLE
30 bool "Amiga Gayle IDE interface support"
31 depends on AMIGA
32diff --git a/drivers/ide/arm/Makefile b/drivers/ide/arm/Makefile
33index 6a78f07..e5cadb7 100644
34--- a/drivers/ide/arm/Makefile
35+++ b/drivers/ide/arm/Makefile
36@@ -2,5 +2,6 @@
37 obj-$(CONFIG_BLK_DEV_IDE_ICSIDE) += icside.o
38 obj-$(CONFIG_BLK_DEV_IDE_RAPIDE) += rapide.o
39 obj-$(CONFIG_BLK_DEV_IDE_BAST) += bast-ide.o
40+obj-$(CONFIG_BLK_DEV_IDE_CM_X270) += cm-x270-ide.o
41
42 EXTRA_CFLAGS := -Idrivers/ide
43diff --git a/drivers/ide/arm/cm-x270-ide.c b/drivers/ide/arm/cm-x270-ide.c
44new file mode 100644
45index 0000000..a8b15aa
46--- /dev/null
47+++ b/drivers/ide/arm/cm-x270-ide.c
48@@ -0,0 +1,135 @@
49+/* linux/drivers/ide/arm/cm-x270-ide.c
50+ *
51+ * Copyright (c) 2006 CompuLab, Ltd
52+ * Mike Rapoport <mike@compulab.co.il>
53+ *
54+ * Based on linux/drivers/ide/arm/bast-ide.c
55+ * Copyright (c) 2003-2004 Simtec Electronics
56+ * Ben Dooks <ben@simtec.co.uk>
57+ *
58+ * This program is free software; you can redistribute it and/or modify
59+ * it under the terms of the GNU General Public License version 2 as
60+ * published by the Free Software Foundation.
61+ *
62+ */
63+
64+#include <linux/module.h>
65+#include <linux/errno.h>
66+#include <linux/ide.h>
67+#include <linux/init.h>
68+#include <linux/irq.h>
69+
70+#include <asm/mach-types.h>
71+
72+#include <asm/io.h>
73+#include <asm/arch/pxa-regs.h>
74+#include <asm/arch/cm-x270.h>
75+
76+#define CMX270_SB270_IDECS0_VIRT (CMX270_IDE104_VIRT + (1<<24) + (1<<25))
77+#define CMX270_SB270_IDECS1_VIRT (CMX270_IDE104_VIRT + (1<<25))
78+#define CMX270_ATX_IDECS0_VIRT (CMX270_IDE104_VIRT + (1<<25))
79+#define CMX270_ATX_IDECS1_VIRT (CMX270_IDE104_VIRT + (1<<25) + (1<<22))
80+
81+/* list of registered interfaces */
82+static ide_hwif_t *ifs[1];
83+
84+static int __init
85+cmx270_ide_register(unsigned int base, unsigned int aux, int irq,
86+ ide_hwif_t **hwif)
87+{
88+ hw_regs_t hw;
89+
90+ memset(&hw, 0, sizeof(hw));
91+
92+ if(!base || !aux) return -EINVAL;
93+
94+ printk(KERN_DEBUG "%s: base = %08x, aux = %08x\n", __FUNCTION__,
95+ base, aux);
96+
97+ /* Different mappings for local bus IDE and PCMCIA IDE */
98+ if(base == CMX270_SB270_IDECS0_VIRT) {
99+ hw.io_ports[IDE_DATA_OFFSET] = base + 0;
100+ hw.io_ports[IDE_ERROR_OFFSET] = base + (0x1<<3);
101+ hw.io_ports[IDE_NSECTOR_OFFSET]= base + (0x2<<3);
102+ hw.io_ports[IDE_SECTOR_OFFSET]= base + (0x3<<3);
103+ hw.io_ports[IDE_LCYL_OFFSET]= base + (0x4<<3);
104+ hw.io_ports[IDE_HCYL_OFFSET]= base + (0x5<<3);
105+ hw.io_ports[IDE_SELECT_OFFSET]= base + (0x6<<3);
106+ hw.io_ports[IDE_STATUS_OFFSET]= base + (0x7<<3);
107+ hw.io_ports[IDE_CONTROL_OFFSET] = aux+(0x6<<3);
108+ }
109+ else if (base == CMX270_ATX_IDECS0_VIRT) { /* atx base */
110+ hw.io_ports[IDE_DATA_OFFSET] = base + 0;
111+ hw.io_ports[IDE_ERROR_OFFSET] = base + 8;
112+ hw.io_ports[IDE_NSECTOR_OFFSET]= base + 2;
113+ hw.io_ports[IDE_SECTOR_OFFSET]= base + 10;
114+ hw.io_ports[IDE_LCYL_OFFSET]= base + 4;
115+ hw.io_ports[IDE_HCYL_OFFSET]= base + 12;
116+ hw.io_ports[IDE_SELECT_OFFSET]= base + 6; //6;
117+ hw.io_ports[IDE_STATUS_OFFSET]= base + 14;
118+ hw.io_ports[IDE_CONTROL_OFFSET] = (aux+0x6);
119+ } else {
120+ printk(KERN_DEBUG "%s: registering wrong IDE i/f\n", __FUNCTION__);
121+ hw.io_ports[IDE_DATA_OFFSET] = base + 8;
122+ hw.io_ports[IDE_ERROR_OFFSET] = base + 13;
123+ hw.io_ports[IDE_NSECTOR_OFFSET] = base + 2;
124+ hw.io_ports[IDE_SECTOR_OFFSET] = base + 3;
125+ hw.io_ports[IDE_LCYL_OFFSET] = base + 4;
126+ hw.io_ports[IDE_HCYL_OFFSET] = base + 5;
127+ hw.io_ports[IDE_SELECT_OFFSET] = base + 6;
128+ hw.io_ports[IDE_STATUS_OFFSET] = base + 7;
129+ hw.io_ports[IDE_CONTROL_OFFSET] = aux;
130+ }
131+
132+ hw.irq = irq;
133+
134+ return ide_register_hw(&hw, hwif);
135+}
136+
137+static int __init cmx270_ide_init(void)
138+{
139+ int retval = 0;
140+
141+ if (!(machine_is_armcore()))
142+ goto out;
143+
144+ printk("CM-X270: initializing IDE interface\n");
145+
146+ MSC1 = 0x7ffc7ff4;
147+
148+ /* Interrupts on rising edge: lines are inverted before they get to
149+ the PXA */
150+ pxa_gpio_mode(IRQ_TO_GPIO(CMX270_IDE_IRQ));
151+
152+ /* try SB-X270 */
153+ set_irq_type(CMX270_IDE_IRQ, IRQ_TYPE_EDGE_RISING);
154+ retval = cmx270_ide_register(CMX270_SB270_IDECS0_VIRT,
155+ CMX270_SB270_IDECS1_VIRT,
156+ CMX270_IDE_IRQ, &ifs[0]);
157+ if (retval >= 0) {
158+ printk(KERN_DEBUG "%s: found IDE interface on SB-X270\n",
159+ __FUNCTION__);
160+ goto out;
161+ }
162+
163+ /* SB-X270 detection failed, try ATX */
164+ set_irq_type(CMX270_IDE_IRQ, IRQ_TYPE_EDGE_FALLING);
165+ retval = cmx270_ide_register(CMX270_ATX_IDECS0_VIRT,
166+ CMX270_ATX_IDECS1_VIRT,
167+ CMX270_IDE_IRQ, &ifs[0]);
168+
169+ if ( retval >= 0 ) {
170+ printk(KERN_DEBUG "%s: found IDE interface on ATX\n",
171+ __FUNCTION__);
172+ goto out;
173+ }
174+
175+ out:
176+ return retval;
177+}
178+
179+module_init(cmx270_ide_init);
180+
181+MODULE_AUTHOR("CompuLab");
182+MODULE_LICENSE("GPL");
183+MODULE_DESCRIPTION("CompuLab CM-X270 IDE driver");
184--
1851.5.1.6
186
diff --git a/meta/packages/linux/linux-2.6.22/cm-x270/0004-cm-x270-it8152.patch b/meta/packages/linux/linux-2.6.22/cm-x270/0004-cm-x270-it8152.patch
new file mode 100644
index 0000000000..274eaf24d8
--- /dev/null
+++ b/meta/packages/linux/linux-2.6.22/cm-x270/0004-cm-x270-it8152.patch
@@ -0,0 +1,496 @@
1From 1306abec905df1ff5cf2b1d91ac0d94d18d96c5b Mon Sep 17 00:00:00 2001
2From: Cliff Brake <cbrake@happy.dev.bec-systems.com>
3Date: Fri, 20 Jul 2007 19:00:07 -0400
4Subject: [PATCH] cm-x270-it8152
5
6---
7 arch/arm/common/Makefile | 1 +
8 arch/arm/common/it8152.c | 272 +++++++++++++++++++++++++++++++++++++
9 arch/arm/kernel/bios32.c | 28 ++++-
10 include/asm-arm/hardware/it8152.h | 104 ++++++++++++++
11 include/asm-arm/pci.h | 7 +
12 include/linux/pci_ids.h | 1 +
13 6 files changed, 410 insertions(+), 3 deletions(-)
14 create mode 100644 arch/arm/common/it8152.c
15 create mode 100644 include/asm-arm/hardware/it8152.h
16
17diff --git a/arch/arm/common/Makefile b/arch/arm/common/Makefile
18index e1289a2..3d0b9fa 100644
19--- a/arch/arm/common/Makefile
20+++ b/arch/arm/common/Makefile
21@@ -17,3 +17,4 @@ obj-$(CONFIG_SHARPSL_PM) += sharpsl_pm.o
22 obj-$(CONFIG_SHARP_SCOOP) += scoop.o
23 obj-$(CONFIG_ARCH_IXP2000) += uengine.o
24 obj-$(CONFIG_ARCH_IXP23XX) += uengine.o
25+obj-$(CONFIG_PCI_HOST_ITE8152) += it8152.o
26diff --git a/arch/arm/common/it8152.c b/arch/arm/common/it8152.c
27new file mode 100644
28index 0000000..8563610
29--- /dev/null
30+++ b/arch/arm/common/it8152.c
31@@ -0,0 +1,272 @@
32+/*
33+ * arch/arm/common/it8152.c: PCI functions for IT8152
34+ *
35+ * Compulab Ltd, 2002-2006
36+ *
37+ * The DMA bouncing is taken from arch/arm/mach-ixp4xx/common-pci.c
38+ * (see this file for respective copyrights)
39+ *
40+ * This program is free software; you can redistribute it and/or modify
41+ * it under the terms of the GNU General Public License version 2 as
42+ * published by the Free Software Foundation.
43+ */
44+
45+#include <linux/sched.h>
46+#include <linux/kernel.h>
47+#include <linux/pci.h>
48+#include <linux/ptrace.h>
49+#include <linux/interrupt.h>
50+#include <linux/mm.h>
51+#include <linux/slab.h>
52+#include <linux/init.h>
53+#include <linux/ioport.h>
54+#include <asm/mach/map.h>
55+
56+
57+#include <asm/io.h>
58+#include <asm/irq.h>
59+#include <asm/system.h>
60+#include <asm/mach/pci.h>
61+#include <asm/hardware/it8152.h>
62+
63+#define MAX_SLOTS 21
64+
65+static unsigned long
66+it8152_pci_dev_base_address(struct pci_bus *bus, unsigned int devfn)
67+{
68+ unsigned long addr = 0;
69+
70+ if (bus->number == 0) {
71+ if (devfn < PCI_DEVFN(MAX_SLOTS, 0))
72+ addr = (devfn << 8);
73+ } else
74+ addr = (bus->number << 16) | (devfn << 8);
75+
76+ return addr;
77+}
78+
79+static int
80+it8152_pci_read_config(struct pci_bus *bus, unsigned int devfn, int where,
81+ int size, u32 *value)
82+{
83+ unsigned long addr = it8152_pci_dev_base_address(bus, devfn);
84+ u32 v;
85+ int shift;
86+
87+#ifdef CONFIG_MACH_ARMCORE
88+ if(devfn!=0) IT8152_GPIO_GPLR=0x00;
89+#endif
90+ shift = (where & 3);
91+
92+ IT8152_PCI_CFG_ADDR = (addr + where);
93+ v = (IT8152_PCI_CFG_DATA >> (8 * (shift)));
94+
95+ *value = v;
96+
97+#ifdef CONFIG_MACH_ARMCORE
98+ if(devfn!=0) IT8152_GPIO_GPLR=0x20;
99+#endif
100+
101+ return PCIBIOS_SUCCESSFUL;
102+}
103+
104+
105+static int
106+it8152_pci_write_config(struct pci_bus *bus, unsigned int devfn, int where,
107+ int size, u32 value)
108+{
109+ unsigned long addr = it8152_pci_dev_base_address(bus, devfn);
110+ u32 v, vtemp, mask=0;
111+ int shift;
112+
113+#ifdef CONFIG_MACH_ARMCORE
114+ if(devfn!=0) IT8152_GPIO_GPLR=0x00;
115+#endif
116+
117+ if(size==1) mask=0xff;
118+ if(size==2) mask=0xffff;
119+
120+ shift = (where & 3);
121+
122+ IT8152_PCI_CFG_ADDR = addr + where;
123+ vtemp = IT8152_PCI_CFG_DATA;
124+
125+ if(mask) vtemp &= ~(mask << (8 * shift));
126+ else vtemp = 0;
127+
128+ v = (value << (8 * shift));
129+ IT8152_PCI_CFG_ADDR = addr + where;
130+ IT8152_PCI_CFG_DATA = (v | vtemp);
131+
132+#ifdef CONFIG_MACH_ARMCORE
133+ if(devfn!=0) IT8152_GPIO_GPLR=0x20;
134+#endif
135+
136+ return PCIBIOS_SUCCESSFUL;
137+}
138+
139+static struct pci_ops it8152_ops = {
140+ .read = it8152_pci_read_config,
141+ .write = it8152_pci_write_config,
142+};
143+
144+static struct resource it8152_io = {
145+ .name = "IT8152 PCI I/O region",
146+ .flags = IORESOURCE_IO,
147+};
148+
149+static struct resource it8152_mem1 = {
150+ .name = "First IT8152 PCI memory region",
151+ .start = 0x10000000,
152+ .end = 0x13e00000,
153+ .flags = IORESOURCE_MEM,
154+};
155+
156+/*
157+ * The following functions are needed for DMA bouncing.
158+ * ITE8152 chip can addrees up to 64MByte, so all the devices
159+ * connected to ITE8152 (PCI and USB) should have limited DMA window
160+ */
161+
162+/*
163+ * Setup DMA mask to 64MB on devices connected to ITE8152. Ignore all
164+ * other devices.
165+ */
166+static int it8152_pci_platform_notify(struct device *dev)
167+{
168+ if ( dev->bus == &pci_bus_type ) {
169+ if ( dev->dma_mask )
170+ *dev->dma_mask = (SZ_64M - 1) | PHYS_OFFSET;
171+ dev->coherent_dma_mask = (SZ_64M - 1) | PHYS_OFFSET;
172+ dmabounce_register_dev(dev, 2048, 4096);
173+ }
174+ return 0;
175+}
176+
177+static int it8152_pci_platform_notify_remove(struct device *dev)
178+{
179+ if ( dev->bus == &pci_bus_type ) {
180+ dmabounce_unregister_dev(dev);
181+ }
182+ return 0;
183+}
184+
185+int dma_needs_bounce(struct device *dev, dma_addr_t dma_addr, size_t size)
186+{
187+ dev_dbg(dev, "%s: dma_addr %08x, size %08x\n",
188+ __FUNCTION__, dma_addr, size);
189+ return (dev->bus == &pci_bus_type ) &&
190+ ((dma_addr + size - PHYS_OFFSET) >= SZ_64M);
191+}
192+
193+/*
194+ * Only first 64MB of memory can be accessed via PCI.
195+ * We use GFP_DMA to allocate safe buffers to do map/unmap.
196+ * This is really ugly and we need a better way of specifying
197+ * DMA-capable regions of memory.
198+ */
199+void __init it8152_adjust_zones(int node, unsigned long *zone_size,
200+ unsigned long *zhole_size)
201+{
202+ unsigned int sz = SZ_64M >> PAGE_SHIFT;
203+
204+ /*
205+ * Only adjust if > 64M on current system
206+ */
207+ if (node || (zone_size[0] <= sz))
208+ return;
209+
210+ zone_size[1] = zone_size[0] - sz;
211+ zone_size[0] = sz;
212+ zhole_size[1] = zhole_size[0];
213+ zhole_size[0] = 0;
214+}
215+
216+/*
217+ * We override these so we properly do dmabounce otherwise drivers
218+ * are able to set the dma_mask to 0xffffffff and we can no longer
219+ * trap bounces. :(
220+ *
221+ * We just return true on everyhing except for < 64MB in which case
222+ * we will fail miseralby and die since we can't handle that case.
223+ */
224+int
225+pci_set_dma_mask(struct pci_dev *dev, u64 mask)
226+{
227+ printk(KERN_INFO "===> %s: %s %x\n", __FUNCTION__, dev->dev.bus_id, mask);
228+ if (mask >= PHYS_OFFSET + SZ_64M - 1 )
229+ return 0;
230+
231+ return -EIO;
232+}
233+
234+int
235+pci_set_consistent_dma_mask(struct pci_dev *dev, u64 mask)
236+{
237+ printk(KERN_INFO "===> %s: %s %x\n", __FUNCTION__, dev->dev.bus_id, mask);
238+ if (mask >= PHYS_OFFSET + SZ_64M - 1 )
239+ return 0;
240+
241+ return -EIO;
242+}
243+
244+EXPORT_SYMBOL(pci_set_dma_mask);
245+EXPORT_SYMBOL(pci_set_consistent_dma_mask);
246+
247+
248+int __init it8152_pci_setup(int nr, struct pci_sys_data *sys)
249+{
250+ it8152_io.start = IT8152_IO_BASE + 0x12000;
251+ it8152_io.end = IT8152_IO_BASE + 0x100000;
252+
253+ if (request_resource(&ioport_resource, &it8152_io)) {
254+ printk(KERN_ERR "PCI: unable to allocate IO region\n");
255+ return -EBUSY;
256+ }
257+ if (request_resource(&iomem_resource, &it8152_mem1)) {
258+ printk(KERN_ERR "PCI: unable to allocate memory region\n");
259+ return -EBUSY;
260+ }
261+
262+ sys->resource[0] = &it8152_io;
263+ sys->resource[1] = &it8152_mem1;
264+
265+ if (platform_notify || platform_notify_remove) {
266+ printk(KERN_ERR "PCI: Can't use platform_notify\n");
267+ return -EBUSY;
268+ }
269+
270+ platform_notify = it8152_pci_platform_notify;
271+ platform_notify_remove = it8152_pci_platform_notify_remove;
272+
273+ return 1;
274+}
275+
276+/*
277+ * If we set up a device for bus mastering, we need to check the latency
278+ * timer as we don't have even crappy BIOSes to set it properly.
279+ * The implementation is from arch/i386/pci/i386.c
280+ */
281+unsigned int pcibios_max_latency = 255;
282+
283+void pcibios_set_master(struct pci_dev *dev)
284+{
285+ u8 lat;
286+
287+ pci_read_config_byte(dev, PCI_LATENCY_TIMER, &lat);
288+ if (lat < 16)
289+ lat = (64 <= pcibios_max_latency) ? 64 : pcibios_max_latency;
290+ else if (lat > pcibios_max_latency)
291+ lat = pcibios_max_latency;
292+ else
293+ return;
294+ printk(KERN_DEBUG "PCI: Setting latency timer of device %s to %d\n", pci_name(dev), lat);
295+ pci_write_config_byte(dev, PCI_LATENCY_TIMER, lat);
296+}
297+
298+
299+struct pci_bus * __init it8152_pci_scan_bus(int nr, struct pci_sys_data *sys)
300+{
301+ return pci_scan_bus(nr, &it8152_ops, sys);
302+}
303+
304diff --git a/arch/arm/kernel/bios32.c b/arch/arm/kernel/bios32.c
305index 240c448..d8d2352 100644
306--- a/arch/arm/kernel/bios32.c
307+++ b/arch/arm/kernel/bios32.c
308@@ -279,6 +279,25 @@ static void __devinit pci_fixup_cy82c693(struct pci_dev *dev)
309 }
310 DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_CONTAQ, PCI_DEVICE_ID_CONTAQ_82C693, pci_fixup_cy82c693);
311
312+static void __init pci_fixup_it8152(struct pci_dev *dev)
313+{
314+ int i;
315+ /* fixup for ITE 8152 devices */
316+ /* FIXME: add defines for class 0x68000 and 0x80103 */
317+ if ((dev->class >> 8) == PCI_CLASS_BRIDGE_HOST ||
318+ dev->class == 0x68000 ||
319+ dev->class == 0x80103) {
320+ for (i = 0; i < PCI_NUM_RESOURCES; i++) {
321+ dev->resource[i].start = 0;
322+ dev->resource[i].end = 0;
323+ dev->resource[i].flags = 0;
324+ }
325+ }
326+}
327+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ITE, PCI_DEVICE_ID_ITE_8152, pci_fixup_it8152);
328+
329+
330+
331 void __devinit pcibios_update_irq(struct pci_dev *dev, int irq)
332 {
333 if (debug_pci)
334@@ -292,9 +311,12 @@ void __devinit pcibios_update_irq(struct pci_dev *dev, int irq)
335 */
336 static inline int pdev_bad_for_parity(struct pci_dev *dev)
337 {
338- return (dev->vendor == PCI_VENDOR_ID_INTERG &&
339- (dev->device == PCI_DEVICE_ID_INTERG_2000 ||
340- dev->device == PCI_DEVICE_ID_INTERG_2010));
341+ return ((dev->vendor == PCI_VENDOR_ID_INTERG &&
342+ (dev->device == PCI_DEVICE_ID_INTERG_2000 ||
343+ dev->device == PCI_DEVICE_ID_INTERG_2010)) ||
344+ (dev->vendor == PCI_VENDOR_ID_ITE &&
345+ dev->device == PCI_DEVICE_ID_ITE_8152));
346+
347 }
348
349 /*
350diff --git a/include/asm-arm/hardware/it8152.h b/include/asm-arm/hardware/it8152.h
351new file mode 100644
352index 0000000..d28210d
353--- /dev/null
354+++ b/include/asm-arm/hardware/it8152.h
355@@ -0,0 +1,104 @@
356+/*
357+ * arch/arm/mach-pxa/it8152.h
358+ *
359+ * Compulab Ltd., 2006
360+ *
361+ * ITE 8152 companion chip definitions
362+ */
363+
364+
365+/* #define CMX270_IT8152_VIRT (CMX270_VIRT_BASE) */
366+
367+
368+extern unsigned long it8152_base_address;
369+
370+#define IT8152_IO_BASE (it8152_base_address + 0x03e00000)
371+#define IT8152_CFGREG_BASE (it8152_base_address + 0x03f00000)
372+
373+/* #define IRQ_GPIO_IT8152_IRQ IRQ_GPIO(GPIO_IT8152_IRQ) */
374+
375+#define IT8152_SHORT_IO(x) (*((volatile unsigned short *)(IT8152_CFGREG_BASE+(x))))
376+#define IT8152_LONG_IO(x) (*((volatile unsigned long *)(IT8152_CFGREG_BASE+(x))))
377+
378+
379+#define IT8152_PCI_MEMBASE (*((volatile unsigned long *)(it8152_base_address)))
380+/* #define IT8152_PCI_IOBASE (*((volatile unsigned long *)(it8152_base_address + 0x3e00000))) */
381+
382+#define IT8152_PCI_IACK (*((volatile unsigned long *)(it8152_base_address + 0x3f00808)))
383+#define IT8152_PCI_CFG_ADDR (*((volatile unsigned long *)(it8152_base_address + 0x3f00800)))
384+#define IT8152_PCI_CFG_DATA (*((volatile unsigned long *)(it8152_base_address + 0x3f00804)))
385+
386+#define IT_BUSNUM_SHF 16
387+#define IT_DEVNUM_SHF 11
388+#define IT_FUNCNUM_SHF 8
389+#define IT_REGNUM_SHF 2
390+
391+/* Power management & PLL registers */
392+#define IT8152_PMPLL_DSR IT8152_LONG_IO(0x00)
393+#define IT8152_PMPLL_DSSR IT8152_LONG_IO(0x04)
394+#define IT8152_PMPLL_PLLCR IT8152_LONG_IO(0x20)
395+#define IT8152_PMPLL_MFSR IT8152_LONG_IO(0x24)
396+
397+/* Memory controller */
398+#define IT8152_MC_REG_OFFSET 0x100
399+
400+#define IT8152_MC_SDCR IT8152_LONG_IO(IT8152_MC_REG_OFFSET + 0x00)
401+#define IT8152_MC_PCICR IT8152_LONG_IO(IT8152_MC_REG_OFFSET + 0x04)
402+
403+/* Interrupt related definitions */
404+#define IT8152_INTC_REG_OFFSET 0x300
405+
406+#define IT8152_INTC_LDCNIRR IT8152_LONG_IO(IT8152_INTC_REG_OFFSET + 0x00)
407+#define IT8152_INTC_LDPNIRR IT8152_LONG_IO(IT8152_INTC_REG_OFFSET + 0x04)
408+#define IT8152_INTC_LDCNIMR IT8152_LONG_IO(IT8152_INTC_REG_OFFSET + 0x08)
409+#define IT8152_INTC_LDPNIMR IT8152_LONG_IO(IT8152_INTC_REG_OFFSET + 0x0C)
410+#define IT8152_INTC_LDNITR IT8152_LONG_IO(IT8152_INTC_REG_OFFSET + 0x10)
411+#define IT8152_INTC_LDNIAR IT8152_LONG_IO(IT8152_INTC_REG_OFFSET + 0x14)
412+#define IT8152_INTC_LPCNIRR IT8152_LONG_IO(IT8152_INTC_REG_OFFSET + 0x20)
413+#define IT8152_INTC_LPPNIRR IT8152_LONG_IO(IT8152_INTC_REG_OFFSET + 0x24)
414+#define IT8152_INTC_LPCNIMR IT8152_LONG_IO(IT8152_INTC_REG_OFFSET + 0x28)
415+#define IT8152_INTC_LPPNIMR IT8152_LONG_IO(IT8152_INTC_REG_OFFSET + 0x2C)
416+#define IT8152_INTC_LPNITR IT8152_LONG_IO(IT8152_INTC_REG_OFFSET + 0x30)
417+#define IT8152_INTC_LPNIAR IT8152_LONG_IO(IT8152_INTC_REG_OFFSET + 0x34)
418+#define IT8152_INTC_PDCNIRR IT8152_LONG_IO(IT8152_INTC_REG_OFFSET + 0x40)
419+#define IT8152_INTC_PDPNIRR IT8152_LONG_IO(IT8152_INTC_REG_OFFSET + 0x44)
420+#define IT8152_INTC_PDCNIMR IT8152_LONG_IO(IT8152_INTC_REG_OFFSET + 0x48)
421+#define IT8152_INTC_PDPNIMR IT8152_LONG_IO(IT8152_INTC_REG_OFFSET + 0x4C)
422+#define IT8152_INTC_PDNITR IT8152_LONG_IO(IT8152_INTC_REG_OFFSET + 0x50)
423+#define IT8152_INTC_PDNIAR IT8152_LONG_IO(IT8152_INTC_REG_OFFSET + 0x54)
424+#define IT8152_INTC_INTC_TYPER IT8152_LONG_IO(IT8152_INTC_REG_OFFSET + 0xFC)
425+
426+#define IT8152_UART_BASE IT8152_LONG_IO(0x200)
427+
428+#define IT8152_GPIO_REG_OFFSET 0x500
429+
430+#define IT8152_GPIO_GPLR IT8152_LONG_IO(IT8152_GPIO_REG_OFFSET)
431+#define IT8152_GPIO_GPCR12 IT8152_LONG_IO(IT8152_GPIO_REG_OFFSET + 0x04)
432+#define IT8152_GPIO_GPCR34 IT8152_LONG_IO(IT8152_GPIO_REG_OFFSET + 0x08)
433+
434+
435+/* Interrupt bit definitions */
436+#define PCISERR_BIT (1<<14)
437+#define H2PTADR_BIT (1<<13)
438+#define H2PMAR_BIT (1<<12)
439+#define PCI_INTD_BIT (1<<11)
440+#define PCI_INTC_BIT (1<<10)
441+#define PCI_INTB_BIT (1<<9)
442+#define PCI_INTA_BIT (1<<8)
443+#define CDMA_INT_BIT (1<<2)
444+#define USB_INT_BIT (1<<1)
445+#define AUDIO_INT_BIT (1<<0)
446+
447+/* IT8152 UART */
448+#define ITESER_BIT (1<<5)
449+
450+
451+
452+
453+
454+
455+
456+
457+
458+
459+
460diff --git a/include/asm-arm/pci.h b/include/asm-arm/pci.h
461index f21abd4..2cf30bf 100644
462--- a/include/asm-arm/pci.h
463+++ b/include/asm-arm/pci.h
464@@ -8,10 +8,17 @@
465
466 #define pcibios_scan_all_fns(a, b) 0
467
468+#ifdef CONFIG_PCI_HOST_ITE8152
469+/* ITE bridge requires setting latency timer to avoid early bus access
470+ termination by PIC bus mater devices
471+*/
472+extern void pcibios_set_master(struct pci_dev *dev);
473+#else
474 static inline void pcibios_set_master(struct pci_dev *dev)
475 {
476 /* No special bus mastering setup handling */
477 }
478+#endif
479
480 static inline void pcibios_penalize_isa_irq(int irq, int active)
481 {
482diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
483index 5b1c999..b4c81d5 100644
484--- a/include/linux/pci_ids.h
485+++ b/include/linux/pci_ids.h
486@@ -1650,6 +1650,7 @@
487 #define PCI_DEVICE_ID_ITE_8211 0x8211
488 #define PCI_DEVICE_ID_ITE_8212 0x8212
489 #define PCI_DEVICE_ID_ITE_8213 0x8213
490+#define PCI_DEVICE_ID_ITE_8152 0x8152
491 #define PCI_DEVICE_ID_ITE_8872 0x8872
492 #define PCI_DEVICE_ID_ITE_IT8330G_0 0xe886
493
494--
4951.5.1.6
496
diff --git a/meta/packages/linux/linux-2.6.22/cm-x270/0005-cm-x270-pcmcia.patch b/meta/packages/linux/linux-2.6.22/cm-x270/0005-cm-x270-pcmcia.patch
new file mode 100644
index 0000000000..7dceff5c9d
--- /dev/null
+++ b/meta/packages/linux/linux-2.6.22/cm-x270/0005-cm-x270-pcmcia.patch
@@ -0,0 +1,228 @@
1From 338653da8f8afcdf8afc7e8a5a0104d5083597cc Mon Sep 17 00:00:00 2001
2From: Cliff Brake <cbrake@happy.dev.bec-systems.com>
3Date: Fri, 20 Jul 2007 19:01:27 -0400
4Subject: [PATCH] cm-x270-pcmcia
5
6---
7 drivers/pcmcia/Makefile | 1 +
8 drivers/pcmcia/pxa2xx_cm_x270.c | 198 +++++++++++++++++++++++++++++++++++++++
9 2 files changed, 199 insertions(+), 0 deletions(-)
10 create mode 100644 drivers/pcmcia/pxa2xx_cm_x270.c
11
12diff --git a/drivers/pcmcia/Makefile b/drivers/pcmcia/Makefile
13index 4276965..353d5b7 100644
14--- a/drivers/pcmcia/Makefile
15+++ b/drivers/pcmcia/Makefile
16@@ -69,4 +69,5 @@ sa1100_cs-$(CONFIG_SA1100_SIMPAD) += sa1100_simpad.o
17 pxa2xx_cs-$(CONFIG_ARCH_LUBBOCK) += pxa2xx_lubbock.o sa1111_generic.o
18 pxa2xx_cs-$(CONFIG_MACH_MAINSTONE) += pxa2xx_mainstone.o
19 pxa2xx_cs-$(CONFIG_PXA_SHARPSL) += pxa2xx_sharpsl.o
20+pxa2xx_cs-$(CONFIG_MACH_ARMCORE) += pxa2xx_cm_x270.o
21
22diff --git a/drivers/pcmcia/pxa2xx_cm_x270.c b/drivers/pcmcia/pxa2xx_cm_x270.c
23new file mode 100644
24index 0000000..25e369f
25--- /dev/null
26+++ b/drivers/pcmcia/pxa2xx_cm_x270.c
27@@ -0,0 +1,198 @@
28+/*
29+ * linux/drivers/pcmcia/pxa/pxa_armcore.c
30+ *
31+ * This program is free software; you can redistribute it and/or modify
32+ * it under the terms of the GNU General Public License version 2 as
33+ * published by the Free Software Foundation.
34+ *
35+ * Compulab Ltd., 2003
36+ *
37+ */
38+
39+#include <linux/kernel.h>
40+#include <linux/sched.h>
41+#include <linux/platform_device.h>
42+#include <linux/irq.h>
43+
44+#include <pcmcia/ss.h>
45+#include <asm/delay.h>
46+#include <asm/hardware.h>
47+
48+#include <asm/arch/pxa-regs.h>
49+#include <asm/arch/cm-x270.h>
50+
51+#include "soc_common.h"
52+
53+
54+static struct pcmcia_irqs irqs[] = {
55+ { 0, PCMCIA_S0_CD_VALID, "PCMCIA0 CD" },
56+ { 1, PCMCIA_S1_CD_VALID, "PCMCIA1 CD" },
57+};
58+
59+
60+static int
61+cmx270_pcmcia_hw_init(struct soc_pcmcia_socket *skt)
62+{
63+ int return_val=0;
64+
65+ GPSR(GPIO48_nPOE) = GPIO_bit(GPIO48_nPOE) |
66+ GPIO_bit(GPIO49_nPWE) |
67+ GPIO_bit(GPIO50_nPIOR) |
68+ GPIO_bit(GPIO51_nPIOW) |
69+ GPIO_bit(GPIO85_nPCE_1) |
70+ GPIO_bit(GPIO54_nPCE_2);
71+
72+ pxa_gpio_mode(GPIO48_nPOE_MD);
73+ pxa_gpio_mode(GPIO49_nPWE_MD);
74+ pxa_gpio_mode(GPIO50_nPIOR_MD);
75+ pxa_gpio_mode(GPIO51_nPIOW_MD);
76+ pxa_gpio_mode(GPIO85_nPCE_1_MD);
77+ pxa_gpio_mode(GPIO54_nPCE_2_MD);
78+ //pxa_gpio_mode(GPIO79_pSKTSEL_MD); /* REVISIT: s/b dependent on num sockets (on ATX base not routed)*/
79+ pxa_gpio_mode(GPIO55_nPREG_MD);
80+ pxa_gpio_mode(GPIO56_nPWAIT_MD);
81+ pxa_gpio_mode(GPIO57_nIOIS16_MD);
82+
83+ // Reset signal
84+ GPDR(GPIO53_nPCE_2) |= GPIO_bit(GPIO53_nPCE_2);
85+ GPCR(GPIO53_nPCE_2) = GPIO_bit(GPIO53_nPCE_2);
86+
87+ GPDR(IRQ_TO_GPIO(PCMCIA_S0_CD_VALID)) &= ~GPIO_bit(IRQ_TO_GPIO(PCMCIA_S0_CD_VALID));
88+ GPDR(IRQ_TO_GPIO(PCMCIA_S1_CD_VALID)) &= ~GPIO_bit(IRQ_TO_GPIO(PCMCIA_S1_CD_VALID));
89+
90+ set_irq_type(PCMCIA_S0_CD_VALID, IRQ_TYPE_EDGE_BOTH);
91+ set_irq_type(PCMCIA_S1_CD_VALID, IRQ_TYPE_EDGE_BOTH);
92+
93+ //irq's for slots:
94+ GPDR(IRQ_TO_GPIO(PCMCIA_S0_RDYINT)) &= ~GPIO_bit(IRQ_TO_GPIO(PCMCIA_S0_RDYINT));
95+ GPDR(IRQ_TO_GPIO(PCMCIA_S1_RDYINT)) &= ~GPIO_bit(IRQ_TO_GPIO(PCMCIA_S1_RDYINT));
96+
97+ set_irq_type(PCMCIA_S0_RDYINT, IRQ_TYPE_EDGE_FALLING);
98+ set_irq_type(PCMCIA_S1_RDYINT, IRQ_TYPE_EDGE_FALLING);
99+
100+ skt->irq = (skt->nr == 0) ? PCMCIA_S0_RDYINT : PCMCIA_S1_RDYINT;
101+ return_val = soc_pcmcia_request_irqs(skt, irqs, ARRAY_SIZE(irqs));
102+
103+ return return_val;
104+}
105+
106+
107+static void cmx270_pcmcia_shutdown(struct soc_pcmcia_socket *skt)
108+{
109+ soc_pcmcia_free_irqs(skt, irqs, ARRAY_SIZE(irqs));
110+
111+ set_irq_type(IRQ_TO_GPIO(PCMCIA_S0_CD_VALID), IRQ_TYPE_NONE);
112+ set_irq_type(IRQ_TO_GPIO(PCMCIA_S1_CD_VALID), IRQ_TYPE_NONE);
113+
114+ set_irq_type(IRQ_TO_GPIO(PCMCIA_S0_RDYINT), IRQ_TYPE_NONE);
115+ set_irq_type(IRQ_TO_GPIO(PCMCIA_S1_RDYINT), IRQ_TYPE_NONE);
116+}
117+
118+
119+static void cmx270_pcmcia_socket_state(struct soc_pcmcia_socket *skt,
120+ struct pcmcia_state *state)
121+{
122+
123+ state->detect = (PCC_DETECT(skt->nr) == 0) ? 1 : 0;
124+ state->ready = (PCC_READY(skt->nr) == 0) ? 0 : 1;
125+ state->bvd1 = 1;
126+ state->bvd2 = 1;
127+ state->vs_3v = 0;
128+ state->vs_Xv = 0;
129+ state->wrprot = 0; /* not available */
130+
131+}
132+
133+
134+static int
135+cmx270_pcmcia_configure_socket(struct soc_pcmcia_socket *skt,
136+ const socket_state_t *state)
137+{
138+
139+ GPSR(GPIO49_nPWE) = GPIO_bit(GPIO49_nPWE);
140+ pxa_gpio_mode(GPIO49_nPWE | GPIO_OUT);
141+ //pxa_gpio_mode(GPIO79_pSKTSEL_MD | GPIO_OUT); /* For 2-socket mode */
142+
143+ switch(skt->nr){
144+ case 0:
145+ if(state->flags & SS_RESET) {
146+ //GPCR(GPIO79_pSKTSEL) = GPIO_bit(GPIO79_pSKTSEL); /* For 2-socket mode */
147+ //udelay(1);
148+ GPCR(GPIO49_nPWE) = GPIO_bit(GPIO49_nPWE);
149+ GPSR(GPIO53_nPCE_2) = GPIO_bit(GPIO53_nPCE_2);
150+ udelay(10);
151+ GPCR(GPIO53_nPCE_2) = GPIO_bit(GPIO53_nPCE_2);
152+ GPSR(GPIO49_nPWE) = GPIO_bit(GPIO49_nPWE);
153+ }
154+ break;
155+ case 1:
156+ if(state->flags & SS_RESET) {
157+ //GPCR(GPIO79_pSKTSEL) = GPIO_bit(GPIO79_pSKTSEL); /* For 2-socket mode */
158+ //udelay(1);
159+ GPCR(GPIO49_nPWE) = GPIO_bit(GPIO49_nPWE);
160+ GPSR(GPIO53_nPCE_2) = GPIO_bit(GPIO53_nPCE_2);
161+ udelay(10);
162+ GPCR(GPIO53_nPCE_2) = GPIO_bit(GPIO53_nPCE_2);
163+ GPSR(GPIO49_nPWE) = GPIO_bit(GPIO49_nPWE);
164+ }
165+ break;
166+ }
167+
168+ pxa_gpio_mode(GPIO49_nPWE_MD);
169+ //pxa_gpio_mode(GPIO79_pSKTSEL_MD); /* For 2-socket mode */
170+
171+
172+ return 0;
173+}
174+
175+static void cmx270_pcmcia_socket_init(struct soc_pcmcia_socket *skt)
176+{
177+}
178+
179+static void cmx270_pcmcia_socket_suspend(struct soc_pcmcia_socket *skt)
180+{
181+}
182+
183+
184+static struct pcmcia_low_level cmx270_pcmcia_ops = {
185+ .owner = THIS_MODULE,
186+ .hw_init = cmx270_pcmcia_hw_init,
187+ .hw_shutdown = cmx270_pcmcia_shutdown,
188+ .socket_state = cmx270_pcmcia_socket_state,
189+ .configure_socket = cmx270_pcmcia_configure_socket,
190+ .socket_init = cmx270_pcmcia_socket_init,
191+ .socket_suspend = cmx270_pcmcia_socket_suspend,
192+ .nr = 2,
193+};
194+
195+static struct platform_device *cmx270_pcmcia_device;
196+
197+static int __init cmx270_pcmcia_init(void)
198+{
199+ int ret;
200+
201+ cmx270_pcmcia_device = platform_device_alloc("pxa2xx-pcmcia", -1);
202+
203+ if (!cmx270_pcmcia_device)
204+ return -ENOMEM;
205+
206+ cmx270_pcmcia_device->dev.platform_data = &cmx270_pcmcia_ops;
207+
208+ printk ("Registering cm-x270 PCMCIA interface.\n");
209+ ret = platform_device_add(cmx270_pcmcia_device);
210+
211+ if (ret)
212+ platform_device_put(cmx270_pcmcia_device);
213+
214+ return ret;
215+}
216+
217+static void __exit cmx270_pcmcia_exit(void)
218+{
219+ platform_device_unregister(cmx270_pcmcia_device);
220+}
221+
222+module_init(cmx270_pcmcia_init);
223+module_exit(cmx270_pcmcia_exit);
224+
225+MODULE_LICENSE("GPL");
226--
2271.5.1.6
228
diff --git a/meta/packages/linux/linux-2.6.22/cm-x270/0006-ramdisk_load.patch b/meta/packages/linux/linux-2.6.22/cm-x270/0006-ramdisk_load.patch
new file mode 100644
index 0000000000..aa25dd9bfc
--- /dev/null
+++ b/meta/packages/linux/linux-2.6.22/cm-x270/0006-ramdisk_load.patch
@@ -0,0 +1,80 @@
1From ca4508b1266109208f62e986b51397ce2788e255 Mon Sep 17 00:00:00 2001
2From: Cliff Brake <cbrake@happy.dev.bec-systems.com>
3Date: Fri, 20 Jul 2007 19:01:50 -0400
4Subject: [PATCH] ramdisk_load
5
6---
7 arch/arm/mach-pxa/cm-x270.c | 6 ++++++
8 include/asm-arm/arch-pxa/cm-x270.h | 2 ++
9 init/initramfs.c | 16 ++++++++++++++++
10 3 files changed, 24 insertions(+), 0 deletions(-)
11
12diff --git a/arch/arm/mach-pxa/cm-x270.c b/arch/arm/mach-pxa/cm-x270.c
13index 88b080d..c6ec489 100644
14--- a/arch/arm/mach-pxa/cm-x270.c
15+++ b/arch/arm/mach-pxa/cm-x270.c
16@@ -308,6 +308,12 @@ static struct map_desc cmx270_io_desc[] __initdata = {
17 .length = PXA_CS_SIZE,
18 .type = MT_DEVICE
19 },
20+ [2] = { /* NOR flash */
21+ .virtual = CMX270_FLASH_VIRT,
22+ .pfn = __phys_to_pfn(PXA_CS0_PHYS),
23+ .length = (8<<20), /* up to 8 MByte flash */
24+ .type = MT_DEVICE
25+ },
26 };
27
28 /*
29diff --git a/include/asm-arm/arch-pxa/cm-x270.h b/include/asm-arm/arch-pxa/cm-x270.h
30index 24613a5..aad152e 100644
31--- a/include/asm-arm/arch-pxa/cm-x270.h
32+++ b/include/asm-arm/arch-pxa/cm-x270.h
33@@ -20,7 +20,9 @@
34
35 #define CMX270_IT8152_VIRT (CMX270_VIRT_BASE)
36 #define CMX270_IDE104_VIRT (CMX270_IT8152_VIRT + PXA_CS_SIZE)
37+#define CMX270_FLASH_VIRT (CMX270_IDE104_VIRT + PXA_CS_SIZE)
38
39+#define CMX270_FLASH_RAMDISK_VIRT (CMX270_FLASH_VIRT + 0x1c0000)
40
41 /* GPIO related definitions */
42 #define GPIO_IT8152_IRQ (22)
43diff --git a/init/initramfs.c b/init/initramfs.c
44index 00eff7a..0ecd40b 100644
45--- a/init/initramfs.c
46+++ b/init/initramfs.c
47@@ -7,6 +7,9 @@
48 #include <linux/string.h>
49 #include <linux/syscalls.h>
50
51+// HACK for compulab cm-x270
52+#include <asm/arch/cm-x270.h>
53+
54 static __initdata char *message;
55 static void __init error(char *x)
56 {
57@@ -550,7 +553,20 @@ static int __init populate_rootfs(void)
58 #ifdef CONFIG_BLK_DEV_INITRD
59 if (initrd_start) {
60 #ifdef CONFIG_BLK_DEV_RAM
61+
62+ /* hack to make initramfs work because the
63+ * compulab BL does not zero out the
64+ * initrd memory. This only seems to affect loading
65+ * initramfs (cpio.gz) archives. Does not seem to
66+ * affect ramdisks.
67+ */
68+ int initrd_size = *(int *)(CMX270_FLASH_RAMDISK_VIRT);
69 int fd;
70+
71+ initrd_end = initrd_start + initrd_size;
72+ //printk("CLIFF: initrd_start = 0x%x\n", initrd_start);
73+ //printk("CLIFF: initrd_end = 0x%x\n", initrd_end);
74+
75 printk(KERN_INFO "checking if image is initramfs...");
76 err = unpack_to_rootfs((char *)initrd_start,
77 initrd_end - initrd_start, 1);
78--
791.5.1.6
80
diff --git a/meta/packages/linux/linux-2.6.22/cm-x270/0007-mmcsd_large_cards-r0.patch b/meta/packages/linux/linux-2.6.22/cm-x270/0007-mmcsd_large_cards-r0.patch
new file mode 100644
index 0000000000..90e66b5308
--- /dev/null
+++ b/meta/packages/linux/linux-2.6.22/cm-x270/0007-mmcsd_large_cards-r0.patch
@@ -0,0 +1,36 @@
1From 26638b93f7479dc597a58e2e2b2832c6ff4c8f7b Mon Sep 17 00:00:00 2001
2From: Cliff Brake <cbrake@happy.dev.bec-systems.com>
3Date: Fri, 20 Jul 2007 19:02:55 -0400
4Subject: [PATCH] mmcsd_large_cards-r0
5
6---
7 drivers/mmc/card/block.c | 6 ++++++
8 1 files changed, 6 insertions(+), 0 deletions(-)
9
10diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c
11index 540ff4b..1f8d67d 100644
12--- a/drivers/mmc/card/block.c
13+++ b/drivers/mmc/card/block.c
14@@ -403,6 +403,7 @@ static struct mmc_blk_data *mmc_blk_alloc(struct mmc_card *card)
15 {
16 struct mmc_blk_data *md;
17 int devidx, ret;
18+ unsigned long cap;
19
20 devidx = find_first_zero_bit(dev_use, MMC_NUM_MINORS);
21 if (devidx >= MMC_NUM_MINORS)
22@@ -467,6 +468,11 @@ static struct mmc_blk_data *mmc_blk_alloc(struct mmc_card *card)
23
24 sprintf(md->disk->disk_name, "mmcblk%d", devidx);
25
26+ if (card->csd.read_blkbits > 9)
27+ md->block_bits = 9;
28+ else
29+ md->block_bits = card->csd.read_blkbits;
30+
31 blk_queue_hardsect_size(md->queue.queue, 1 << md->block_bits);
32
33 if (!mmc_card_sd(card) && mmc_card_blockaddr(card)) {
34--
351.5.1.6
36
diff --git a/meta/packages/linux/linux-2.6.22/cm-x270/0008-cm-x270-nand-simplify-name.patch b/meta/packages/linux/linux-2.6.22/cm-x270/0008-cm-x270-nand-simplify-name.patch
new file mode 100644
index 0000000000..c07f049e56
--- /dev/null
+++ b/meta/packages/linux/linux-2.6.22/cm-x270/0008-cm-x270-nand-simplify-name.patch
@@ -0,0 +1,25 @@
1From e1a243564a40d7542a62d4684f2e6ce0b95fa267 Mon Sep 17 00:00:00 2001
2From: Cliff Brake <cbrake@happy.dev.bec-systems.com>
3Date: Fri, 20 Jul 2007 19:04:12 -0400
4Subject: [PATCH] cm-x270-nand-simplify-name
5
6---
7 drivers/mtd/nand/cmx270_nand.c | 2 ++
8 1 files changed, 2 insertions(+), 0 deletions(-)
9
10diff --git a/drivers/mtd/nand/cmx270_nand.c b/drivers/mtd/nand/cmx270_nand.c
11index cb663ef..3654ce4 100644
12--- a/drivers/mtd/nand/cmx270_nand.c
13+++ b/drivers/mtd/nand/cmx270_nand.c
14@@ -191,6 +191,8 @@ static int cmx270_init(void)
15 cmx270_nand_mtd->owner = THIS_MODULE;
16 cmx270_nand_mtd->priv = this;
17
18+ cmx270_nand_mtd->name = "cm-x270-nand";
19+
20 /* insert callbacks */
21 this->IO_ADDR_R = cmx270_nand_io;
22 this->IO_ADDR_W = cmx270_nand_io;
23--
241.5.1.6
25
diff --git a/meta/packages/linux/linux-2.6.22/cm-x270/0009-cursor-fix.patch b/meta/packages/linux/linux-2.6.22/cm-x270/0009-cursor-fix.patch
new file mode 100644
index 0000000000..08b0db36b0
--- /dev/null
+++ b/meta/packages/linux/linux-2.6.22/cm-x270/0009-cursor-fix.patch
@@ -0,0 +1,43 @@
1From 94a59c25e4e0aec3c4d12e0c63e144e6af447368 Mon Sep 17 00:00:00 2001
2From: Cliff Brake <cbrake@happy.dev.bec-systems.com>
3Date: Fri, 20 Jul 2007 19:04:42 -0400
4Subject: [PATCH] cursor-fix
5
6---
7 drivers/char/vt.c | 4 ++--
8 drivers/char/vt_ioctl.c | 4 ++--
9 2 files changed, 4 insertions(+), 4 deletions(-)
10
11diff --git a/drivers/char/vt.c b/drivers/char/vt.c
12index 6650ae1..649474e 100644
13--- a/drivers/char/vt.c
14+++ b/drivers/char/vt.c
15@@ -3491,8 +3491,8 @@ void do_blank_screen(int entering_gfx)
16 }
17 return;
18 }
19- if (blank_state != blank_normal_wait)
20- return;
21+ //if (blank_state != blank_normal_wait)
22+ // return;
23 blank_state = blank_off;
24
25 /* entering graphics mode? */
26diff --git a/drivers/char/vt_ioctl.c b/drivers/char/vt_ioctl.c
27index c6f6f42..94121ff 100644
28--- a/drivers/char/vt_ioctl.c
29+++ b/drivers/char/vt_ioctl.c
30@@ -489,8 +489,8 @@ int vt_ioctl(struct tty_struct *tty, struct file * file,
31 if (vc->vc_mode == (unsigned char) arg)
32 return 0;
33 vc->vc_mode = (unsigned char) arg;
34- if (console != fg_console)
35- return 0;
36+ //if (console != fg_console)
37+ // return 0;
38 /*
39 * explicitly blank/unblank the screen if switching modes
40 */
41--
421.5.1.6
43
diff --git a/meta/packages/linux/linux-2.6.22/cm-x270/defconfig b/meta/packages/linux/linux-2.6.22/cm-x270/defconfig
new file mode 100644
index 0000000000..63bc69533f
--- /dev/null
+++ b/meta/packages/linux/linux-2.6.22/cm-x270/defconfig
@@ -0,0 +1,1234 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.22
4# Tue Aug 7 15:22:23 2007
5#
6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y
9CONFIG_GENERIC_TIME=y
10# CONFIG_GENERIC_CLOCKEVENTS is not set
11CONFIG_MMU=y
12# CONFIG_NO_IOPORT is not set
13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y
16CONFIG_TRACE_IRQFLAGS_SUPPORT=y
17CONFIG_HARDIRQS_SW_RESEND=y
18CONFIG_GENERIC_IRQ_PROBE=y
19CONFIG_RWSEM_GENERIC_SPINLOCK=y
20# CONFIG_ARCH_HAS_ILOG2_U32 is not set
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_GENERIC_HWEIGHT=y
23CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ZONE_DMA=y
25CONFIG_ARCH_MTD_XIP=y
26CONFIG_VECTORS_BASE=0xffff0000
27CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
28
29#
30# Code maturity level options
31#
32CONFIG_EXPERIMENTAL=y
33CONFIG_BROKEN_ON_SMP=y
34CONFIG_LOCK_KERNEL=y
35CONFIG_INIT_ENV_ARG_LIMIT=32
36
37#
38# General setup
39#
40CONFIG_LOCALVERSION="-cm-x270"
41# CONFIG_LOCALVERSION_AUTO is not set
42CONFIG_SWAP=y
43CONFIG_SYSVIPC=y
44# CONFIG_IPC_NS is not set
45CONFIG_SYSVIPC_SYSCTL=y
46# CONFIG_POSIX_MQUEUE is not set
47# CONFIG_BSD_PROCESS_ACCT is not set
48# CONFIG_TASKSTATS is not set
49# CONFIG_UTS_NS is not set
50# CONFIG_AUDIT is not set
51CONFIG_IKCONFIG=y
52CONFIG_IKCONFIG_PROC=y
53CONFIG_LOG_BUF_SHIFT=14
54CONFIG_SYSFS_DEPRECATED=y
55# CONFIG_RELAY is not set
56CONFIG_BLK_DEV_INITRD=y
57CONFIG_INITRAMFS_SOURCE=""
58CONFIG_CC_OPTIMIZE_FOR_SIZE=y
59CONFIG_SYSCTL=y
60CONFIG_EMBEDDED=y
61CONFIG_UID16=y
62CONFIG_SYSCTL_SYSCALL=y
63CONFIG_KALLSYMS=y
64# CONFIG_KALLSYMS_EXTRA_PASS is not set
65CONFIG_HOTPLUG=y
66CONFIG_PRINTK=y
67CONFIG_BUG=y
68CONFIG_ELF_CORE=y
69CONFIG_BASE_FULL=y
70CONFIG_FUTEX=y
71CONFIG_ANON_INODES=y
72CONFIG_EPOLL=y
73CONFIG_SIGNALFD=y
74CONFIG_TIMERFD=y
75CONFIG_EVENTFD=y
76CONFIG_SHMEM=y
77CONFIG_VM_EVENT_COUNTERS=y
78CONFIG_SLAB=y
79# CONFIG_SLUB is not set
80# CONFIG_SLOB is not set
81CONFIG_RT_MUTEXES=y
82# CONFIG_TINY_SHMEM is not set
83CONFIG_BASE_SMALL=0
84
85#
86# Loadable module support
87#
88CONFIG_MODULES=y
89CONFIG_MODULE_UNLOAD=y
90# CONFIG_MODULE_FORCE_UNLOAD is not set
91# CONFIG_MODVERSIONS is not set
92# CONFIG_MODULE_SRCVERSION_ALL is not set
93CONFIG_KMOD=y
94
95#
96# Block layer
97#
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
103#
104# IO Schedulers
105#
106CONFIG_IOSCHED_NOOP=y
107CONFIG_IOSCHED_AS=y
108CONFIG_IOSCHED_DEADLINE=y
109CONFIG_IOSCHED_CFQ=y
110# CONFIG_DEFAULT_AS is not set
111# CONFIG_DEFAULT_DEADLINE is not set
112CONFIG_DEFAULT_CFQ=y
113# CONFIG_DEFAULT_NOOP is not set
114CONFIG_DEFAULT_IOSCHED="cfq"
115
116#
117# System Type
118#
119# CONFIG_ARCH_AAEC2000 is not set
120# CONFIG_ARCH_INTEGRATOR is not set
121# CONFIG_ARCH_REALVIEW is not set
122# CONFIG_ARCH_VERSATILE is not set
123# CONFIG_ARCH_AT91 is not set
124# CONFIG_ARCH_CLPS7500 is not set
125# CONFIG_ARCH_CLPS711X is not set
126# CONFIG_ARCH_CO285 is not set
127# CONFIG_ARCH_EBSA110 is not set
128# CONFIG_ARCH_EP93XX is not set
129# CONFIG_ARCH_FOOTBRIDGE is not set
130# CONFIG_ARCH_NETX is not set
131# CONFIG_ARCH_H720X is not set
132# CONFIG_ARCH_IMX is not set
133# CONFIG_ARCH_IOP13XX is not set
134# CONFIG_ARCH_IOP32X is not set
135# CONFIG_ARCH_IOP33X is not set
136# CONFIG_ARCH_IXP23XX is not set
137# CONFIG_ARCH_IXP2000 is not set
138# CONFIG_ARCH_IXP4XX is not set
139# CONFIG_ARCH_L7200 is not set
140# CONFIG_ARCH_KS8695 is not set
141# CONFIG_ARCH_NS9XXX is not set
142# CONFIG_ARCH_PNX4008 is not set
143CONFIG_ARCH_PXA=y
144# CONFIG_ARCH_RPC is not set
145# CONFIG_ARCH_SA1100 is not set
146# CONFIG_ARCH_S3C2410 is not set
147# CONFIG_ARCH_SHARK is not set
148# CONFIG_ARCH_LH7A40X is not set
149# CONFIG_ARCH_DAVINCI is not set
150# CONFIG_ARCH_OMAP is not set
151
152#
153# Intel PXA2xx Implementations
154#
155# CONFIG_ARCH_LUBBOCK is not set
156# CONFIG_MACH_LOGICPD_PXA270 is not set
157# CONFIG_MACH_MAINSTONE is not set
158# CONFIG_ARCH_PXA_IDP is not set
159# CONFIG_PXA_SHARPSL is not set
160# CONFIG_MACH_TRIZEPS4 is not set
161CONFIG_MACH_ARMCORE=y
162CONFIG_PXA27x=y
163
164#
165# Processor Type
166#
167CONFIG_CPU_32=y
168CONFIG_CPU_XSCALE=y
169CONFIG_CPU_32v5=y
170CONFIG_CPU_ABRT_EV5T=y
171CONFIG_CPU_CACHE_VIVT=y
172CONFIG_CPU_TLB_V4WBI=y
173CONFIG_CPU_CP15=y
174CONFIG_CPU_CP15_MMU=y
175
176#
177# Processor Features
178#
179CONFIG_ARM_THUMB=y
180# CONFIG_CPU_DCACHE_DISABLE is not set
181# CONFIG_OUTER_CACHE is not set
182CONFIG_IWMMXT=y
183CONFIG_XSCALE_PMU=y
184
185#
186# Bus support
187#
188# CONFIG_PCI is not set
189# CONFIG_ARCH_SUPPORTS_MSI is not set
190
191#
192# PCCARD (PCMCIA/CardBus) support
193#
194# CONFIG_PCCARD is not set
195
196#
197# Kernel Features
198#
199# CONFIG_TICK_ONESHOT is not set
200CONFIG_PREEMPT=y
201CONFIG_NO_IDLE_HZ=y
202CONFIG_HZ=100
203CONFIG_AEABI=y
204CONFIG_OABI_COMPAT=y
205# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
206CONFIG_SELECT_MEMORY_MODEL=y
207CONFIG_FLATMEM_MANUAL=y
208# CONFIG_DISCONTIGMEM_MANUAL is not set
209# CONFIG_SPARSEMEM_MANUAL is not set
210CONFIG_FLATMEM=y
211CONFIG_FLAT_NODE_MEM_MAP=y
212# CONFIG_SPARSEMEM_STATIC is not set
213CONFIG_SPLIT_PTLOCK_CPUS=4096
214# CONFIG_RESOURCES_64BIT is not set
215CONFIG_ZONE_DMA_FLAG=1
216CONFIG_ALIGNMENT_TRAP=y
217
218#
219# Boot options
220#
221CONFIG_ZBOOT_ROM_TEXT=0x0
222CONFIG_ZBOOT_ROM_BSS=0x0
223CONFIG_CMDLINE="console=ttyS1,38400 monitor=8 bpp=16 mem=64M mtdparts=physmap-flash.0:256k(boot)ro,0x180000(kernel),-(root);cm-x270-nand:64m(app),-(data) rdinit=/sbin/init root=mtd3 rootfstype=jffs2"
224# CONFIG_XIP_KERNEL is not set
225# CONFIG_KEXEC is not set
226
227#
228# Floating point emulation
229#
230
231#
232# At least one emulation must be selected
233#
234# CONFIG_FPE_NWFPE is not set
235# CONFIG_FPE_FASTFPE is not set
236
237#
238# Userspace binary formats
239#
240CONFIG_BINFMT_ELF=y
241# CONFIG_BINFMT_AOUT is not set
242# CONFIG_BINFMT_MISC is not set
243
244#
245# Power management options
246#
247# CONFIG_PM is not set
248
249#
250# Networking
251#
252CONFIG_NET=y
253
254#
255# Networking options
256#
257CONFIG_PACKET=y
258# CONFIG_PACKET_MMAP is not set
259CONFIG_UNIX=y
260CONFIG_XFRM=y
261# CONFIG_XFRM_USER is not set
262# CONFIG_XFRM_SUB_POLICY is not set
263# CONFIG_XFRM_MIGRATE is not set
264# CONFIG_NET_KEY is not set
265CONFIG_INET=y
266# CONFIG_IP_MULTICAST is not set
267# CONFIG_IP_ADVANCED_ROUTER is not set
268CONFIG_IP_FIB_HASH=y
269CONFIG_IP_PNP=y
270CONFIG_IP_PNP_DHCP=y
271CONFIG_IP_PNP_BOOTP=y
272# CONFIG_IP_PNP_RARP is not set
273# CONFIG_NET_IPIP is not set
274# CONFIG_NET_IPGRE is not set
275# CONFIG_ARPD is not set
276# CONFIG_SYN_COOKIES is not set
277# CONFIG_INET_AH is not set
278# CONFIG_INET_ESP is not set
279# CONFIG_INET_IPCOMP is not set
280# CONFIG_INET_XFRM_TUNNEL is not set
281# CONFIG_INET_TUNNEL is not set
282CONFIG_INET_XFRM_MODE_TRANSPORT=y
283CONFIG_INET_XFRM_MODE_TUNNEL=y
284CONFIG_INET_XFRM_MODE_BEET=y
285CONFIG_INET_DIAG=y
286CONFIG_INET_TCP_DIAG=y
287# CONFIG_TCP_CONG_ADVANCED is not set
288CONFIG_TCP_CONG_CUBIC=y
289CONFIG_DEFAULT_TCP_CONG="cubic"
290# CONFIG_TCP_MD5SIG is not set
291# CONFIG_IPV6 is not set
292# CONFIG_INET6_XFRM_TUNNEL is not set
293# CONFIG_INET6_TUNNEL is not set
294# CONFIG_NETWORK_SECMARK is not set
295# CONFIG_NETFILTER is not set
296# CONFIG_IP_DCCP is not set
297# CONFIG_IP_SCTP is not set
298# CONFIG_TIPC is not set
299# CONFIG_ATM is not set
300# CONFIG_BRIDGE is not set
301# CONFIG_VLAN_8021Q is not set
302# CONFIG_DECNET is not set
303# CONFIG_LLC2 is not set
304# CONFIG_IPX is not set
305# CONFIG_ATALK is not set
306# CONFIG_X25 is not set
307# CONFIG_LAPB is not set
308# CONFIG_ECONET is not set
309# CONFIG_WAN_ROUTER is not set
310
311#
312# QoS and/or fair queueing
313#
314# CONFIG_NET_SCHED is not set
315
316#
317# Network testing
318#
319# CONFIG_NET_PKTGEN is not set
320# CONFIG_HAMRADIO is not set
321# CONFIG_IRDA is not set
322# CONFIG_BT is not set
323# CONFIG_AF_RXRPC is not set
324
325#
326# Wireless
327#
328# CONFIG_CFG80211 is not set
329# CONFIG_WIRELESS_EXT is not set
330# CONFIG_MAC80211 is not set
331# CONFIG_IEEE80211 is not set
332# CONFIG_RFKILL is not set
333
334#
335# Device Drivers
336#
337
338#
339# Generic Driver Options
340#
341CONFIG_STANDALONE=y
342CONFIG_PREVENT_FIRMWARE_BUILD=y
343CONFIG_FW_LOADER=y
344# CONFIG_SYS_HYPERVISOR is not set
345
346#
347# Connector - unified userspace <-> kernelspace linker
348#
349# CONFIG_CONNECTOR is not set
350CONFIG_MTD=y
351# CONFIG_MTD_DEBUG is not set
352# CONFIG_MTD_CONCAT is not set
353CONFIG_MTD_PARTITIONS=y
354# CONFIG_MTD_REDBOOT_PARTS is not set
355CONFIG_MTD_CMDLINE_PARTS=y
356# CONFIG_MTD_AFS_PARTS is not set
357
358#
359# User Modules And Translation Layers
360#
361CONFIG_MTD_CHAR=y
362CONFIG_MTD_BLKDEVS=y
363CONFIG_MTD_BLOCK=y
364# CONFIG_FTL is not set
365# CONFIG_NFTL is not set
366# CONFIG_INFTL is not set
367# CONFIG_RFD_FTL is not set
368# CONFIG_SSFDC is not set
369
370#
371# RAM/ROM/Flash chip drivers
372#
373CONFIG_MTD_CFI=y
374# CONFIG_MTD_JEDECPROBE is not set
375CONFIG_MTD_GEN_PROBE=y
376# CONFIG_MTD_CFI_ADV_OPTIONS is not set
377CONFIG_MTD_MAP_BANK_WIDTH_1=y
378CONFIG_MTD_MAP_BANK_WIDTH_2=y
379CONFIG_MTD_MAP_BANK_WIDTH_4=y
380# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
381# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
382# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
383CONFIG_MTD_CFI_I1=y
384CONFIG_MTD_CFI_I2=y
385# CONFIG_MTD_CFI_I4 is not set
386# CONFIG_MTD_CFI_I8 is not set
387# CONFIG_MTD_CFI_INTELEXT is not set
388CONFIG_MTD_CFI_AMDSTD=y
389# CONFIG_MTD_CFI_STAA is not set
390CONFIG_MTD_CFI_UTIL=y
391# CONFIG_MTD_RAM is not set
392# CONFIG_MTD_ROM is not set
393# CONFIG_MTD_ABSENT is not set
394# CONFIG_MTD_XIP is not set
395
396#
397# Mapping drivers for chip access
398#
399# CONFIG_MTD_COMPLEX_MAPPINGS is not set
400CONFIG_MTD_PHYSMAP=y
401CONFIG_MTD_PHYSMAP_START=0x0
402CONFIG_MTD_PHYSMAP_LEN=0x400000
403CONFIG_MTD_PHYSMAP_BANKWIDTH=2
404# CONFIG_MTD_ARM_INTEGRATOR is not set
405# CONFIG_MTD_SHARP_SL is not set
406# CONFIG_MTD_PLATRAM is not set
407
408#
409# Self-contained MTD device drivers
410#
411# CONFIG_MTD_SLRAM is not set
412# CONFIG_MTD_PHRAM is not set
413# CONFIG_MTD_MTDRAM is not set
414# CONFIG_MTD_BLOCK2MTD is not set
415
416#
417# Disk-On-Chip Device Drivers
418#
419# CONFIG_MTD_DOC2000 is not set
420# CONFIG_MTD_DOC2001 is not set
421# CONFIG_MTD_DOC2001PLUS is not set
422CONFIG_MTD_NAND=y
423# CONFIG_MTD_NAND_VERIFY_WRITE is not set
424# CONFIG_MTD_NAND_ECC_SMC is not set
425# CONFIG_MTD_NAND_MUSEUM_IDS is not set
426# CONFIG_MTD_NAND_H1900 is not set
427CONFIG_MTD_NAND_IDS=y
428# CONFIG_MTD_NAND_DISKONCHIP is not set
429# CONFIG_MTD_NAND_SHARPSL is not set
430CONFIG_MTD_NAND_CM_X270=y
431# CONFIG_MTD_NAND_NANDSIM is not set
432# CONFIG_MTD_NAND_PLATFORM is not set
433# CONFIG_MTD_ONENAND is not set
434
435#
436# UBI - Unsorted block images
437#
438# CONFIG_MTD_UBI is not set
439
440#
441# Parallel port support
442#
443# CONFIG_PARPORT is not set
444
445#
446# Plug and Play support
447#
448# CONFIG_PNPACPI is not set
449
450#
451# Block devices
452#
453# CONFIG_BLK_DEV_COW_COMMON is not set
454CONFIG_BLK_DEV_LOOP=y
455# CONFIG_BLK_DEV_CRYPTOLOOP is not set
456# CONFIG_BLK_DEV_NBD is not set
457# CONFIG_BLK_DEV_UB is not set
458CONFIG_BLK_DEV_RAM=y
459CONFIG_BLK_DEV_RAM_COUNT=16
460CONFIG_BLK_DEV_RAM_SIZE=4096
461CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
462# CONFIG_CDROM_PKTCDVD is not set
463# CONFIG_ATA_OVER_ETH is not set
464# CONFIG_IDE is not set
465
466#
467# SCSI device support
468#
469# CONFIG_RAID_ATTRS is not set
470CONFIG_SCSI=y
471# CONFIG_SCSI_TGT is not set
472# CONFIG_SCSI_NETLINK is not set
473CONFIG_SCSI_PROC_FS=y
474
475#
476# SCSI support type (disk, tape, CD-ROM)
477#
478CONFIG_BLK_DEV_SD=y
479# CONFIG_CHR_DEV_ST is not set
480# CONFIG_CHR_DEV_OSST is not set
481# CONFIG_BLK_DEV_SR is not set
482# CONFIG_CHR_DEV_SG is not set
483# CONFIG_CHR_DEV_SCH is not set
484
485#
486# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
487#
488# CONFIG_SCSI_MULTI_LUN is not set
489# CONFIG_SCSI_CONSTANTS is not set
490# CONFIG_SCSI_LOGGING is not set
491# CONFIG_SCSI_SCAN_ASYNC is not set
492CONFIG_SCSI_WAIT_SCAN=m
493
494#
495# SCSI Transports
496#
497# CONFIG_SCSI_SPI_ATTRS is not set
498# CONFIG_SCSI_FC_ATTRS is not set
499# CONFIG_SCSI_ISCSI_ATTRS is not set
500# CONFIG_SCSI_SAS_ATTRS is not set
501# CONFIG_SCSI_SAS_LIBSAS is not set
502
503#
504# SCSI low-level drivers
505#
506# CONFIG_ISCSI_TCP is not set
507# CONFIG_SCSI_DEBUG is not set
508# CONFIG_ATA is not set
509
510#
511# Multi-device support (RAID and LVM)
512#
513# CONFIG_MD is not set
514
515#
516# Network device support
517#
518CONFIG_NETDEVICES=y
519# CONFIG_DUMMY is not set
520# CONFIG_BONDING is not set
521# CONFIG_EQUALIZER is not set
522# CONFIG_TUN is not set
523# CONFIG_PHYLIB is not set
524
525#
526# Ethernet (10 or 100Mbit)
527#
528CONFIG_NET_ETHERNET=y
529CONFIG_MII=y
530# CONFIG_SMC91X is not set
531CONFIG_DM9000=y
532CONFIG_DM9000_NOEPROM=y
533# CONFIG_SMC911X is not set
534# CONFIG_NETDEV_1000 is not set
535# CONFIG_NETDEV_10000 is not set
536
537#
538# Wireless LAN
539#
540# CONFIG_WLAN_PRE80211 is not set
541# CONFIG_WLAN_80211 is not set
542
543#
544# USB Network Adapters
545#
546CONFIG_USB_CATC=m
547CONFIG_USB_KAWETH=m
548CONFIG_USB_PEGASUS=m
549CONFIG_USB_RTL8150=m
550CONFIG_USB_USBNET_MII=m
551CONFIG_USB_USBNET=m
552CONFIG_USB_NET_AX8817X=m
553CONFIG_USB_NET_CDCETHER=m
554# CONFIG_USB_NET_DM9601 is not set
555CONFIG_USB_NET_GL620A=m
556CONFIG_USB_NET_NET1080=m
557CONFIG_USB_NET_PLUSB=m
558CONFIG_USB_NET_MCS7830=m
559# CONFIG_USB_NET_RNDIS_HOST is not set
560# CONFIG_USB_NET_CDC_SUBSET is not set
561# CONFIG_USB_NET_ZAURUS is not set
562# CONFIG_WAN is not set
563# CONFIG_PPP is not set
564# CONFIG_SLIP is not set
565# CONFIG_SHAPER is not set
566# CONFIG_NETCONSOLE is not set
567# CONFIG_NETPOLL is not set
568# CONFIG_NET_POLL_CONTROLLER is not set
569
570#
571# ISDN subsystem
572#
573# CONFIG_ISDN is not set
574
575#
576# Input device support
577#
578CONFIG_INPUT=y
579# CONFIG_INPUT_FF_MEMLESS is not set
580# CONFIG_INPUT_POLLDEV is not set
581
582#
583# Userland interfaces
584#
585CONFIG_INPUT_MOUSEDEV=y
586CONFIG_INPUT_MOUSEDEV_PSAUX=y
587CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
588CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
589# CONFIG_INPUT_JOYDEV is not set
590# CONFIG_INPUT_TSDEV is not set
591CONFIG_INPUT_EVDEV=m
592# CONFIG_INPUT_EVBUG is not set
593
594#
595# Input Device Drivers
596#
597CONFIG_INPUT_KEYBOARD=y
598CONFIG_KEYBOARD_ATKBD=y
599# CONFIG_KEYBOARD_SUNKBD is not set
600# CONFIG_KEYBOARD_LKKBD is not set
601# CONFIG_KEYBOARD_XTKBD is not set
602# CONFIG_KEYBOARD_NEWTON is not set
603# CONFIG_KEYBOARD_STOWAWAY is not set
604# CONFIG_KEYBOARD_PXA27x is not set
605# CONFIG_KEYBOARD_GPIO is not set
606CONFIG_INPUT_MOUSE=y
607CONFIG_MOUSE_PS2=y
608# CONFIG_MOUSE_PS2_ALPS is not set
609# CONFIG_MOUSE_PS2_LOGIPS2PP is not set
610# CONFIG_MOUSE_PS2_SYNAPTICS is not set
611# CONFIG_MOUSE_PS2_LIFEBOOK is not set
612# CONFIG_MOUSE_PS2_TRACKPOINT is not set
613# CONFIG_MOUSE_PS2_TOUCHKIT is not set
614# CONFIG_MOUSE_SERIAL is not set
615# CONFIG_MOUSE_APPLETOUCH is not set
616# CONFIG_MOUSE_VSXXXAA is not set
617# CONFIG_INPUT_JOYSTICK is not set
618# CONFIG_INPUT_TABLET is not set
619CONFIG_INPUT_TOUCHSCREEN=y
620# CONFIG_TOUCHSCREEN_GUNZE is not set
621# CONFIG_TOUCHSCREEN_ELO is not set
622# CONFIG_TOUCHSCREEN_MTOUCH is not set
623# CONFIG_TOUCHSCREEN_MK712 is not set
624# CONFIG_TOUCHSCREEN_PENMOUNT is not set
625# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
626# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
627CONFIG_TOUCHSCREEN_UCB1400=m
628# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
629# CONFIG_INPUT_MISC is not set
630
631#
632# Hardware I/O ports
633#
634CONFIG_SERIO=y
635CONFIG_SERIO_SERPORT=y
636CONFIG_SERIO_LIBPS2=y
637# CONFIG_SERIO_RAW is not set
638# CONFIG_GAMEPORT is not set
639
640#
641# Character devices
642#
643CONFIG_VT=y
644CONFIG_VT_CONSOLE=y
645CONFIG_HW_CONSOLE=y
646# CONFIG_VT_HW_CONSOLE_BINDING is not set
647# CONFIG_SERIAL_NONSTANDARD is not set
648
649#
650# Serial drivers
651#
652# CONFIG_SERIAL_8250 is not set
653
654#
655# Non-8250 serial port support
656#
657CONFIG_SERIAL_PXA=y
658CONFIG_SERIAL_PXA_CONSOLE=y
659CONFIG_SERIAL_CORE=y
660CONFIG_SERIAL_CORE_CONSOLE=y
661CONFIG_UNIX98_PTYS=y
662# CONFIG_LEGACY_PTYS is not set
663
664#
665# IPMI
666#
667# CONFIG_IPMI_HANDLER is not set
668# CONFIG_WATCHDOG is not set
669CONFIG_HW_RANDOM=y
670# CONFIG_NVRAM is not set
671# CONFIG_R3964 is not set
672# CONFIG_RAW_DRIVER is not set
673
674#
675# TPM devices
676#
677# CONFIG_TCG_TPM is not set
678CONFIG_I2C=m
679CONFIG_I2C_BOARDINFO=y
680CONFIG_I2C_CHARDEV=m
681
682#
683# I2C Algorithms
684#
685# CONFIG_I2C_ALGOBIT is not set
686# CONFIG_I2C_ALGOPCF is not set
687# CONFIG_I2C_ALGOPCA is not set
688
689#
690# I2C Hardware Bus support
691#
692# CONFIG_I2C_GPIO is not set
693CONFIG_I2C_PXA=m
694# CONFIG_I2C_PXA_SLAVE is not set
695# CONFIG_I2C_OCORES is not set
696# CONFIG_I2C_PARPORT_LIGHT is not set
697# CONFIG_I2C_SIMTEC is not set
698# CONFIG_I2C_STUB is not set
699# CONFIG_I2C_TINY_USB is not set
700
701#
702# Miscellaneous I2C Chip support
703#
704# CONFIG_SENSORS_DS1337 is not set
705# CONFIG_SENSORS_DS1374 is not set
706# CONFIG_SENSORS_EEPROM is not set
707# CONFIG_SENSORS_PCF8574 is not set
708# CONFIG_SENSORS_PCA9539 is not set
709# CONFIG_SENSORS_PCF8591 is not set
710# CONFIG_SENSORS_MAX6875 is not set
711# CONFIG_I2C_DEBUG_CORE is not set
712# CONFIG_I2C_DEBUG_ALGO is not set
713# CONFIG_I2C_DEBUG_BUS is not set
714# CONFIG_I2C_DEBUG_CHIP is not set
715
716#
717# SPI support
718#
719# CONFIG_SPI is not set
720# CONFIG_SPI_MASTER is not set
721
722#
723# Dallas's 1-wire bus
724#
725# CONFIG_W1 is not set
726CONFIG_HWMON=y
727# CONFIG_HWMON_VID is not set
728# CONFIG_SENSORS_ABITUGURU is not set
729# CONFIG_SENSORS_AD7418 is not set
730# CONFIG_SENSORS_ADM1021 is not set
731# CONFIG_SENSORS_ADM1025 is not set
732# CONFIG_SENSORS_ADM1026 is not set
733# CONFIG_SENSORS_ADM1029 is not set
734# CONFIG_SENSORS_ADM1031 is not set
735# CONFIG_SENSORS_ADM9240 is not set
736# CONFIG_SENSORS_ASB100 is not set
737# CONFIG_SENSORS_ATXP1 is not set
738# CONFIG_SENSORS_DS1621 is not set
739# CONFIG_SENSORS_F71805F is not set
740# CONFIG_SENSORS_FSCHER is not set
741# CONFIG_SENSORS_FSCPOS is not set
742# CONFIG_SENSORS_GL518SM is not set
743# CONFIG_SENSORS_GL520SM is not set
744# CONFIG_SENSORS_IT87 is not set
745# CONFIG_SENSORS_LM63 is not set
746# CONFIG_SENSORS_LM75 is not set
747# CONFIG_SENSORS_LM77 is not set
748# CONFIG_SENSORS_LM78 is not set
749# CONFIG_SENSORS_LM80 is not set
750# CONFIG_SENSORS_LM83 is not set
751# CONFIG_SENSORS_LM85 is not set
752# CONFIG_SENSORS_LM87 is not set
753# CONFIG_SENSORS_LM90 is not set
754# CONFIG_SENSORS_LM92 is not set
755# CONFIG_SENSORS_MAX1619 is not set
756# CONFIG_SENSORS_MAX6650 is not set
757# CONFIG_SENSORS_PC87360 is not set
758# CONFIG_SENSORS_PC87427 is not set
759# CONFIG_SENSORS_SMSC47M1 is not set
760# CONFIG_SENSORS_SMSC47M192 is not set
761# CONFIG_SENSORS_SMSC47B397 is not set
762# CONFIG_SENSORS_VT1211 is not set
763# CONFIG_SENSORS_W83781D is not set
764# CONFIG_SENSORS_W83791D is not set
765# CONFIG_SENSORS_W83792D is not set
766# CONFIG_SENSORS_W83793 is not set
767# CONFIG_SENSORS_W83L785TS is not set
768# CONFIG_SENSORS_W83627HF is not set
769# CONFIG_SENSORS_W83627EHF is not set
770# CONFIG_HWMON_DEBUG_CHIP is not set
771
772#
773# Misc devices
774#
775
776#
777# Multifunction device drivers
778#
779# CONFIG_MFD_SM501 is not set
780
781#
782# LED devices
783#
784CONFIG_NEW_LEDS=y
785CONFIG_LEDS_CLASS=y
786
787#
788# LED drivers
789#
790CONFIG_LEDS_CM_X270=y
791
792#
793# LED Triggers
794#
795# CONFIG_LEDS_TRIGGERS is not set
796
797#
798# Multimedia devices
799#
800# CONFIG_VIDEO_DEV is not set
801# CONFIG_DVB_CORE is not set
802# CONFIG_DAB is not set
803
804#
805# Graphics support
806#
807# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
808
809#
810# Display device support
811#
812# CONFIG_DISPLAY_SUPPORT is not set
813# CONFIG_VGASTATE is not set
814CONFIG_FB=y
815# CONFIG_FIRMWARE_EDID is not set
816# CONFIG_FB_DDC is not set
817CONFIG_FB_CFB_FILLRECT=y
818CONFIG_FB_CFB_COPYAREA=y
819CONFIG_FB_CFB_IMAGEBLIT=y
820# CONFIG_FB_SYS_FILLRECT is not set
821# CONFIG_FB_SYS_COPYAREA is not set
822# CONFIG_FB_SYS_IMAGEBLIT is not set
823# CONFIG_FB_SYS_FOPS is not set
824CONFIG_FB_DEFERRED_IO=y
825# CONFIG_FB_SVGALIB is not set
826# CONFIG_FB_MACMODES is not set
827# CONFIG_FB_BACKLIGHT is not set
828# CONFIG_FB_MODE_HELPERS is not set
829# CONFIG_FB_TILEBLITTING is not set
830
831#
832# Frame buffer hardware drivers
833#
834# CONFIG_FB_S1D13XXX is not set
835CONFIG_FB_PXA=y
836CONFIG_FB_PXA_PARAMETERS=y
837# CONFIG_FB_MBX is not set
838# CONFIG_FB_VIRTUAL is not set
839
840#
841# Console display driver support
842#
843# CONFIG_VGA_CONSOLE is not set
844CONFIG_DUMMY_CONSOLE=y
845CONFIG_FRAMEBUFFER_CONSOLE=y
846# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
847# CONFIG_FONTS is not set
848CONFIG_FONT_8x8=y
849CONFIG_FONT_8x16=y
850# CONFIG_LOGO is not set
851
852#
853# Sound
854#
855CONFIG_SOUND=m
856
857#
858# Advanced Linux Sound Architecture
859#
860CONFIG_SND=m
861CONFIG_SND_TIMER=m
862CONFIG_SND_PCM=m
863# CONFIG_SND_SEQUENCER is not set
864# CONFIG_SND_MIXER_OSS is not set
865# CONFIG_SND_PCM_OSS is not set
866# CONFIG_SND_DYNAMIC_MINORS is not set
867CONFIG_SND_SUPPORT_OLD_API=y
868CONFIG_SND_VERBOSE_PROCFS=y
869# CONFIG_SND_VERBOSE_PRINTK is not set
870# CONFIG_SND_DEBUG is not set
871
872#
873# Generic devices
874#
875CONFIG_SND_AC97_CODEC=m
876# CONFIG_SND_DUMMY is not set
877# CONFIG_SND_MTPAV is not set
878# CONFIG_SND_SERIAL_U16550 is not set
879# CONFIG_SND_MPU401 is not set
880
881#
882# ALSA ARM devices
883#
884CONFIG_SND_PXA2XX_PCM=m
885CONFIG_SND_PXA2XX_AC97=m
886
887#
888# USB devices
889#
890# CONFIG_SND_USB_AUDIO is not set
891# CONFIG_SND_USB_CAIAQ is not set
892
893#
894# System on Chip audio support
895#
896# CONFIG_SND_SOC is not set
897
898#
899# Open Sound System
900#
901# CONFIG_SOUND_PRIME is not set
902CONFIG_AC97_BUS=m
903
904#
905# HID Devices
906#
907CONFIG_HID=y
908# CONFIG_HID_DEBUG is not set
909
910#
911# USB Input Devices
912#
913CONFIG_USB_HID=y
914# CONFIG_USB_HIDINPUT_POWERBOOK is not set
915# CONFIG_HID_FF is not set
916# CONFIG_USB_HIDDEV is not set
917
918#
919# USB support
920#
921CONFIG_USB_ARCH_HAS_HCD=y
922CONFIG_USB_ARCH_HAS_OHCI=y
923# CONFIG_USB_ARCH_HAS_EHCI is not set
924CONFIG_USB=y
925# CONFIG_USB_DEBUG is not set
926
927#
928# Miscellaneous USB options
929#
930CONFIG_USB_DEVICEFS=y
931# CONFIG_USB_DEVICE_CLASS is not set
932# CONFIG_USB_DYNAMIC_MINORS is not set
933# CONFIG_USB_OTG is not set
934
935#
936# USB Host Controller Drivers
937#
938# CONFIG_USB_ISP116X_HCD is not set
939CONFIG_USB_OHCI_HCD=y
940# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
941# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
942CONFIG_USB_OHCI_LITTLE_ENDIAN=y
943# CONFIG_USB_SL811_HCD is not set
944
945#
946# USB Device Class drivers
947#
948# CONFIG_USB_ACM is not set
949# CONFIG_USB_PRINTER is not set
950
951#
952# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
953#
954
955#
956# may also be needed; see USB_STORAGE Help for more information
957#
958CONFIG_USB_STORAGE=y
959# CONFIG_USB_STORAGE_DEBUG is not set
960# CONFIG_USB_STORAGE_DATAFAB is not set
961# CONFIG_USB_STORAGE_FREECOM is not set
962# CONFIG_USB_STORAGE_DPCM is not set
963# CONFIG_USB_STORAGE_USBAT is not set
964# CONFIG_USB_STORAGE_SDDR09 is not set
965# CONFIG_USB_STORAGE_SDDR55 is not set
966# CONFIG_USB_STORAGE_JUMPSHOT is not set
967# CONFIG_USB_STORAGE_ALAUDA is not set
968# CONFIG_USB_STORAGE_ONETOUCH is not set
969# CONFIG_USB_STORAGE_KARMA is not set
970# CONFIG_USB_LIBUSUAL is not set
971
972#
973# USB Imaging devices
974#
975# CONFIG_USB_MDC800 is not set
976# CONFIG_USB_MICROTEK is not set
977CONFIG_USB_MON=y
978
979#
980# USB port drivers
981#
982
983#
984# USB Serial Converter support
985#
986# CONFIG_USB_SERIAL is not set
987
988#
989# USB Miscellaneous drivers
990#
991# CONFIG_USB_EMI62 is not set
992# CONFIG_USB_EMI26 is not set
993# CONFIG_USB_ADUTUX is not set
994# CONFIG_USB_AUERSWALD is not set
995# CONFIG_USB_RIO500 is not set
996# CONFIG_USB_LEGOTOWER is not set
997# CONFIG_USB_LCD is not set
998# CONFIG_USB_BERRY_CHARGE is not set
999# CONFIG_USB_LED is not set
1000# CONFIG_USB_CYPRESS_CY7C63 is not set
1001# CONFIG_USB_CYTHERM is not set
1002# CONFIG_USB_PHIDGET is not set
1003# CONFIG_USB_IDMOUSE is not set
1004# CONFIG_USB_FTDI_ELAN is not set
1005# CONFIG_USB_APPLEDISPLAY is not set
1006# CONFIG_USB_LD is not set
1007# CONFIG_USB_TRANCEVIBRATOR is not set
1008# CONFIG_USB_IOWARRIOR is not set
1009# CONFIG_USB_TEST is not set
1010
1011#
1012# USB DSL modem support
1013#
1014
1015#
1016# USB Gadget Support
1017#
1018# CONFIG_USB_GADGET is not set
1019CONFIG_MMC=m
1020# CONFIG_MMC_DEBUG is not set
1021# CONFIG_MMC_UNSAFE_RESUME is not set
1022
1023#
1024# MMC/SD Card Drivers
1025#
1026CONFIG_MMC_BLOCK=m
1027
1028#
1029# MMC/SD Host Controller Drivers
1030#
1031CONFIG_MMC_PXA=m
1032
1033#
1034# Real Time Clock
1035#
1036CONFIG_RTC_LIB=y
1037# CONFIG_RTC_CLASS is not set
1038
1039#
1040# File systems
1041#
1042CONFIG_EXT2_FS=y
1043# CONFIG_EXT2_FS_XATTR is not set
1044# CONFIG_EXT2_FS_XIP is not set
1045CONFIG_EXT3_FS=y
1046CONFIG_EXT3_FS_XATTR=y
1047# CONFIG_EXT3_FS_POSIX_ACL is not set
1048# CONFIG_EXT3_FS_SECURITY is not set
1049# CONFIG_EXT4DEV_FS is not set
1050CONFIG_JBD=y
1051# CONFIG_JBD_DEBUG is not set
1052CONFIG_FS_MBCACHE=y
1053# CONFIG_REISERFS_FS is not set
1054# CONFIG_JFS_FS is not set
1055# CONFIG_FS_POSIX_ACL is not set
1056# CONFIG_XFS_FS is not set
1057# CONFIG_GFS2_FS is not set
1058# CONFIG_OCFS2_FS is not set
1059# CONFIG_MINIX_FS is not set
1060# CONFIG_ROMFS_FS is not set
1061CONFIG_INOTIFY=y
1062CONFIG_INOTIFY_USER=y
1063# CONFIG_QUOTA is not set
1064CONFIG_DNOTIFY=y
1065# CONFIG_AUTOFS_FS is not set
1066# CONFIG_AUTOFS4_FS is not set
1067# CONFIG_FUSE_FS is not set
1068
1069#
1070# CD-ROM/DVD Filesystems
1071#
1072# CONFIG_ISO9660_FS is not set
1073# CONFIG_UDF_FS is not set
1074
1075#
1076# DOS/FAT/NT Filesystems
1077#
1078CONFIG_FAT_FS=y
1079CONFIG_MSDOS_FS=y
1080CONFIG_VFAT_FS=y
1081CONFIG_FAT_DEFAULT_CODEPAGE=437
1082CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1083# CONFIG_NTFS_FS is not set
1084
1085#
1086# Pseudo filesystems
1087#
1088CONFIG_PROC_FS=y
1089CONFIG_PROC_SYSCTL=y
1090CONFIG_SYSFS=y
1091CONFIG_TMPFS=y
1092# CONFIG_TMPFS_POSIX_ACL is not set
1093# CONFIG_HUGETLB_PAGE is not set
1094CONFIG_RAMFS=y
1095# CONFIG_CONFIGFS_FS is not set
1096
1097#
1098# Miscellaneous filesystems
1099#
1100# CONFIG_ADFS_FS is not set
1101# CONFIG_AFFS_FS is not set
1102# CONFIG_HFS_FS is not set
1103# CONFIG_HFSPLUS_FS is not set
1104# CONFIG_BEFS_FS is not set
1105# CONFIG_BFS_FS is not set
1106# CONFIG_EFS_FS is not set
1107CONFIG_JFFS2_FS=y
1108CONFIG_JFFS2_FS_DEBUG=0
1109CONFIG_JFFS2_FS_WRITEBUFFER=y
1110CONFIG_JFFS2_SUMMARY=y
1111# CONFIG_JFFS2_FS_XATTR is not set
1112# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
1113CONFIG_JFFS2_ZLIB=y
1114CONFIG_JFFS2_RTIME=y
1115# CONFIG_JFFS2_RUBIN is not set
1116# CONFIG_CRAMFS is not set
1117# CONFIG_VXFS_FS is not set
1118# CONFIG_HPFS_FS is not set
1119# CONFIG_QNX4FS_FS is not set
1120# CONFIG_SYSV_FS is not set
1121# CONFIG_UFS_FS is not set
1122
1123#
1124# Network File Systems
1125#
1126# CONFIG_NFS_FS is not set
1127# CONFIG_NFSD is not set
1128# CONFIG_SMB_FS is not set
1129# CONFIG_CIFS is not set
1130# CONFIG_NCP_FS is not set
1131# CONFIG_CODA_FS is not set
1132# CONFIG_AFS_FS is not set
1133# CONFIG_9P_FS is not set
1134
1135#
1136# Partition Types
1137#
1138# CONFIG_PARTITION_ADVANCED is not set
1139CONFIG_MSDOS_PARTITION=y
1140
1141#
1142# Native Language Support
1143#
1144CONFIG_NLS=y
1145CONFIG_NLS_DEFAULT="iso8859-1"
1146CONFIG_NLS_CODEPAGE_437=y
1147# CONFIG_NLS_CODEPAGE_737 is not set
1148# CONFIG_NLS_CODEPAGE_775 is not set
1149# CONFIG_NLS_CODEPAGE_850 is not set
1150# CONFIG_NLS_CODEPAGE_852 is not set
1151# CONFIG_NLS_CODEPAGE_855 is not set
1152# CONFIG_NLS_CODEPAGE_857 is not set
1153# CONFIG_NLS_CODEPAGE_860 is not set
1154# CONFIG_NLS_CODEPAGE_861 is not set
1155# CONFIG_NLS_CODEPAGE_862 is not set
1156# CONFIG_NLS_CODEPAGE_863 is not set
1157# CONFIG_NLS_CODEPAGE_864 is not set
1158# CONFIG_NLS_CODEPAGE_865 is not set
1159# CONFIG_NLS_CODEPAGE_866 is not set
1160# CONFIG_NLS_CODEPAGE_869 is not set
1161# CONFIG_NLS_CODEPAGE_936 is not set
1162# CONFIG_NLS_CODEPAGE_950 is not set
1163# CONFIG_NLS_CODEPAGE_932 is not set
1164# CONFIG_NLS_CODEPAGE_949 is not set
1165# CONFIG_NLS_CODEPAGE_874 is not set
1166# CONFIG_NLS_ISO8859_8 is not set
1167# CONFIG_NLS_CODEPAGE_1250 is not set
1168# CONFIG_NLS_CODEPAGE_1251 is not set
1169# CONFIG_NLS_ASCII is not set
1170CONFIG_NLS_ISO8859_1=y
1171# CONFIG_NLS_ISO8859_2 is not set
1172# CONFIG_NLS_ISO8859_3 is not set
1173# CONFIG_NLS_ISO8859_4 is not set
1174# CONFIG_NLS_ISO8859_5 is not set
1175# CONFIG_NLS_ISO8859_6 is not set
1176# CONFIG_NLS_ISO8859_7 is not set
1177# CONFIG_NLS_ISO8859_9 is not set
1178# CONFIG_NLS_ISO8859_13 is not set
1179# CONFIG_NLS_ISO8859_14 is not set
1180# CONFIG_NLS_ISO8859_15 is not set
1181# CONFIG_NLS_KOI8_R is not set
1182# CONFIG_NLS_KOI8_U is not set
1183# CONFIG_NLS_UTF8 is not set
1184
1185#
1186# Distributed Lock Manager
1187#
1188# CONFIG_DLM is not set
1189
1190#
1191# Profiling support
1192#
1193# CONFIG_PROFILING is not set
1194
1195#
1196# Kernel hacking
1197#
1198# CONFIG_PRINTK_TIME is not set
1199CONFIG_ENABLE_MUST_CHECK=y
1200# CONFIG_MAGIC_SYSRQ is not set
1201# CONFIG_UNUSED_SYMBOLS is not set
1202# CONFIG_DEBUG_FS is not set
1203# CONFIG_HEADERS_CHECK is not set
1204# CONFIG_DEBUG_KERNEL is not set
1205# CONFIG_DEBUG_BUGVERBOSE is not set
1206CONFIG_FRAME_POINTER=y
1207# CONFIG_DEBUG_USER is not set
1208
1209#
1210# Security options
1211#
1212# CONFIG_KEYS is not set
1213# CONFIG_SECURITY is not set
1214
1215#
1216# Cryptographic options
1217#
1218# CONFIG_CRYPTO is not set
1219
1220#
1221# Library routines
1222#
1223CONFIG_BITREVERSE=y
1224# CONFIG_CRC_CCITT is not set
1225# CONFIG_CRC16 is not set
1226# CONFIG_CRC_ITU_T is not set
1227CONFIG_CRC32=y
1228# CONFIG_LIBCRC32C is not set
1229CONFIG_ZLIB_INFLATE=y
1230CONFIG_ZLIB_DEFLATE=y
1231CONFIG_PLIST=y
1232CONFIG_HAS_IOMEM=y
1233CONFIG_HAS_IOPORT=y
1234CONFIG_HAS_DMA=y
diff --git a/meta/packages/linux/linux.inc b/meta/packages/linux/linux.inc
new file mode 100644
index 0000000000..41b0c13179
--- /dev/null
+++ b/meta/packages/linux/linux.inc
@@ -0,0 +1,137 @@
1DESCRIPTION = "Linux Kernel"
2SECTION = "kernel"
3LICENSE = "GPL"
4
5inherit kernel
6
7# These devices need mkimage to generate a kernel image
8DEPENDS_append_kb9202 = " u-boot-mkimage-openmoko-native "
9DEPENDS_append_at32stk1000 = " u-boot-mkimage-openmoko-native "
10DEPENDS_append_atngw100 = " u-boot-mkimage-openmoko-native "
11DEPENDS_append_at91sam9263ek = " u-boot-mkimage-openmoko-native "
12DEPENDS_append_at91sam9261ek = " u-boot-mkimage-openmoko-native "
13DEPENDS_append_at91sam9260ek = " u-boot-mkimage-openmoko-native "
14DEPENDS_append_sarge-at91 = " u-boot-mkimage-openmoko-native "
15DEPENDS_append_gumstix-connex = " u-boot-mkimage-openmoko-native "
16DEPENDS_append_gumstix-verdex = " u-boot-mkimage-openmoko-native "
17DEPENDS_append_fic-gta01 = " u-boot-mkimage-openmoko-native "
18DEPENDS_append_fic-gta02 = " u-boot-mkimage-openmoko-native "
19
20
21# Specify the commandline for your device
22
23#boot from mmc
24CMDLINE_at91sam9263ek = "mem=64M console=ttyS0,115200 root=/dev/mmcblk0p1 rootfstype=ext2 rootdelay=5"
25#boot from nfs
26#CMDLINE_at91sam9263ek = "mem=64M console=ttyS0,115200 root=301 root=/dev/nfs nfsroot=172.20.3.1:/data/at91 ip=172.20.0.5:::255.255.0.0"
27
28do_configure_prepend() {
29 echo "" > ${S}/.config
30
31 #
32 # logo support, if you supply logo_linux_clut224.ppm in SRC_URI, then it's going to be used
33 #
34 if [ -e ${WORKDIR}/logo_linux_clut224.ppm ]; then
35 install -m 0644 ${WORKDIR}/logo_linux_clut224.ppm drivers/video/logo/logo_linux_clut224.ppm
36 echo "CONFIG_LOGO=y" >> ${S}/.config
37 echo "CONFIG_LOGO_LINUX_CLUT224=y" >> ${S}/.config
38 fi
39
40 #
41 # oabi / eabi support
42 #
43 if [ "${TARGET_OS}" = "linux-gnueabi" -o "${TARGET_OS}" = "linux-uclibcgnueabi" ]; then
44 echo "CONFIG_AEABI=y" >> ${S}/.config
45 echo "CONFIG_OABI_COMPAT=y" >> ${S}/.config
46 else
47 echo "# CONFIG_AEABI is not set" >> ${S}/.config
48 echo "# CONFIG_OABI_COMPAT is not set" >> ${S}/.config
49 fi
50
51 echo "CONFIG_CMDLINE=\"${CMDLINE}\"" >> ${S}/.config
52
53 sed -e '/CONFIG_AEABI/d' \
54 -e '/CONFIG_OABI_COMPAT=/d' \
55 -e '/CONFIG_CMDLINE=/d' \
56 -e '/CONFIG_LOGO=/d' \
57 -e '/CONFIG_LOGO_LINUX_CLUT224=/d' \
58 < '${WORKDIR}/defconfig' >>'${S}/.config'
59
60 #
61 # root-over-nfs-over-usb-eth support. Limited, but should cover some cases.
62 # Enable this by setting a proper CMDLINE_NFSROOT_USB.
63 #
64 if [ ! -z "${CMDLINE_NFSROOT_USB}" ]; then
65 oenote "Configuring the kernel for root-over-nfs-over-usb-eth with CMDLINE ${CMDLINE_NFSROOT_USB}"
66 sed -e '/CONFIG_INET/d' \
67 -e '/CONFIG_IP_PNP=/d' \
68 -e '/CONFIG_USB_GADGET=/d' \
69 -e '/CONFIG_USB_GADGET_SELECTED=/d' \
70 -e '/CONFIG_USB_ETH=/d' \
71 -e '/CONFIG_NFS_FS=/d' \
72 -e '/CONFIG_ROOT_NFS=/d' \
73 -e '/CONFIG_CMDLINE=/d' \
74 -i ${S}/.config
75 echo "CONFIG_INET=y" >> ${S}/.config
76 echo "CONFIG_IP_PNP=y" >> ${S}/.config
77 echo "CONFIG_USB_GADGET=y" >> ${S}/.config
78 echo "CONFIG_USB_GADGET_SELECTED=y" >> ${S}/.config
79 echo "CONFIG_USB_ETH=y" >> ${S}/.config
80 echo "CONFIG_NFS_FS=y" >> ${S}/.config
81 echo "CONFIG_ROOT_NFS=y" >> ${S}/.config
82 echo "CONFIG_CMDLINE=\"${CMDLINE_NFSROOT_USB}\"" >> ${S}/.config
83 fi
84 yes '' | oe_runmake oldconfig
85}
86
87# Support checking the kernel size since some kernels need to reside in partitions
88# with a fixed length or there is a limit in transferring the kernel to memory
89do_sizecheck() {
90 if [ ! -z "${KERNEL_IMAGE_MAXSIZE}" ]; then
91 size=`ls -l arch/${ARCH}/boot/${KERNEL_IMAGETYPE} | awk '{ print $5}'`
92 if [ $size -ge ${KERNEL_IMAGE_MAXSIZE} ]; then
93 rm arch/${ARCH}/boot/${KERNEL_IMAGETYPE}
94 die "This kernel (size=$size) is too big for your device. Please reduce the size of the kernel by making more of it modular."
95 fi
96 fi
97}
98
99do_install_prepend() {
100 if test -e arch/${ARCH}/boot/Image ; then
101 ln -f arch/${ARCH}/boot/Image arch/${ARCH}/boot/uImage
102 fi
103
104 if test -e arch/${ARCH}/boot/images/uImage ; then
105 ln -f arch/${ARCH}/boot/images/uImage arch/${ARCH}/boot/uImage
106 fi
107}
108
109UBOOT_ENTRYPOINT ?= "20008000"
110
111KERNEL_IMAGE_BASE_NAME = ${KERNEL_IMAGETYPE}-${PV}-${PR}-${MACHINE}-${DATETIME}
112
113do_deploy() {
114 install -d ${DEPLOY_DIR_IMAGE}
115 install -m 0644 arch/${ARCH}/boot/${KERNEL_IMAGETYPE} ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGE_BASE_NAME}.bin
116 tar -cvzf ${DEPLOY_DIR_IMAGE}/modules-${KERNEL_RELEASE}-${PR}-${MACHINE}.tgz -C ${D} lib
117
118 if test "x${KERNEL_IMAGETYPE}" = "xuImage" ; then
119 if test -e arch/${ARCH}/boot/compressed/vmlinux ; then
120 ${OBJCOPY} -O binary -R .note -R .comment -S arch/${ARCH}/boot/compressed/vmlinux linux.bin
121 uboot-mkimage -A ${ARCH} -O linux -T kernel -C none -a ${UBOOT_ENTRYPOINT} -e ${UBOOT_ENTRYPOINT} -n "${DISTRO_NAME}/${PV}/${MACHINE}" -d linux.bin ${DEPLOY_DIR_IMAGE}/uImage-${PV}-${PR}-${MACHINE}-${DATETIME}.bin
122 rm -f linux.bin
123 else
124 ${OBJCOPY} -O binary -R .note -R .comment -S vmlinux linux.bin
125 rm -f linux.bin.gz
126 gzip -9 linux.bin
127 uboot-mkimage -A ${ARCH} -O linux -T kernel -C gzip -a ${UBOOT_ENTRYPOINT} -e ${UBOOT_ENTRYPOINT} -n "${DISTRO_NAME}/${PV}/${MACHINE}" -d linux.bin.gz ${DEPLOY_DIR_IMAGE}/uImage-${PV}-${PR}-${MACHINE}-${DATETIME}.bin
128 rm -f linux.bin.gz
129 fi
130 fi
131}
132
133do_deploy[dirs] = "${S}"
134
135addtask sizecheck before do_install after do_compile
136addtask deploy before do_package after do_install
137
diff --git a/meta/packages/linux/linux_2.6.22.bb b/meta/packages/linux/linux_2.6.22.bb
new file mode 100644
index 0000000000..b33274d8bf
--- /dev/null
+++ b/meta/packages/linux/linux_2.6.22.bb
@@ -0,0 +1,56 @@
1require linux.inc
2
3# Mark archs/machines that this kernel supports
4DEFAULT_PREFERENCE = "-1"
5DEFAULT_PREFERENCE_avr32 = "1"
6DEFAULT_PREFERENCE_cm-x270 = "1"
7
8PR = "r3"
9
10SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-2.6.22.tar.bz2 \
11 file://defconfig \
12 "
13
14SRC_URI_append_avr32 = "http://avr32linux.org/twiki/pub/Main/LinuxPatches/linux-2.6.22.atmel.3.patch.bz2;patch=1"
15
16SRC_URI_append_cm-x270 = "\
17 file://0001-cm-x270-base2.patch;patch=1 \
18 file://0002-cm-x270-match-type.patch;patch=1 \
19 file://0003-cm-x270-ide.patch;patch=1 \
20 file://0004-cm-x270-it8152.patch;patch=1 \
21 file://0005-cm-x270-pcmcia.patch;patch=1 \
22 file://0006-ramdisk_load.patch;patch=1 \
23 file://0007-mmcsd_large_cards-r0.patch;patch=1 \
24 file://0008-cm-x270-nand-simplify-name.patch;patch=1"
25
26CMDLINE_cm-x270 = "console=${CMX270_CONSOLE_SERIAL_PORT},38400 monitor=8 bpp=16 mem=64M mtdparts=physmap-flash.0:256k(boot)ro,0x180000(kernel),-(root);cm-x270-nand:64m(app),-(data) rdinit=/sbin/init root=mtd3 rootfstype=jffs2"
27
28FILES_kernel-image_cm-x270 = ""
29
30python do_compulab_image() {
31 import os
32 import os.path
33 import struct
34
35 machine = bb.data.getVar('MACHINE', d, 1)
36 if machine == "cm-x270":
37 deploy_dir = bb.data.getVar('DEPLOY_DIR_IMAGE', d, 1)
38 kernel_file = os.path.join(deploy_dir, bb.data.expand('${KERNEL_IMAGE_BASE_NAME}', d) + '.bin')
39 img_file = os.path.join(deploy_dir, bb.data.expand('${KERNEL_IMAGE_BASE_NAME}', d) + '.cmx270')
40
41 fo = open(img_file, 'wb')
42
43 image_data = open(kernel_file, 'rb').read()
44
45 # first write size into first 4 bytes
46 size_s = struct.pack('i', len(image_data))
47
48 # truncate size if we are running on a 64-bit host
49 size_s = size_s[:4]
50
51 fo.write(size_s)
52 fo.write(image_data)
53 fo.close()
54}
55
56addtask compulab_image after do_deploy before do_package