aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSongmao Tian <tiansm@lemote.com>2007-06-06 02:52:38 -0400
committerRalf Baechle <ralf@linux-mips.org>2007-07-10 12:33:02 -0400
commit42d226c7248a28ff8c478c06b7e9bd9ef5d73574 (patch)
tree7749c1204cbdb481ddece008dc09234c48b769db
parent2a21c7300b53b744d16903256a172d9cbcfdd03e (diff)
[MIPS] New files for lemote fulong mini-PC support
Signed-off-by: Fuxin Zhang <zhangfx@lemote.com> Signed-off-by: Songmao Tian <tiansm@lemote.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
-rw-r--r--arch/mips/Kconfig23
-rw-r--r--arch/mips/Makefile7
-rw-r--r--arch/mips/configs/fulong_defconfig1767
-rw-r--r--arch/mips/lemote/lm2e/Makefile7
-rw-r--r--arch/mips/lemote/lm2e/bonito-irq.c74
-rw-r--r--arch/mips/lemote/lm2e/dbg_io.c146
-rw-r--r--arch/mips/lemote/lm2e/irq.c145
-rw-r--r--arch/mips/lemote/lm2e/mem.c23
-rw-r--r--arch/mips/lemote/lm2e/pci.c93
-rw-r--r--arch/mips/lemote/lm2e/prom.c104
-rw-r--r--arch/mips/lemote/lm2e/reset.c41
-rw-r--r--arch/mips/lemote/lm2e/setup.c134
-rw-r--r--arch/mips/pci/Makefile1
-rw-r--r--arch/mips/pci/fixup-lm2e.c242
-rw-r--r--arch/mips/pci/ops-bonito64.c88
-rw-r--r--include/asm-mips/bootinfo.h6
-rw-r--r--include/asm-mips/mach-lemote/dma-coherence.h42
-rw-r--r--include/asm-mips/mach-lemote/mc146818rtc.h36
-rw-r--r--include/asm-mips/mips-boards/bonito64.h7
19 files changed, 2930 insertions, 56 deletions
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index c8d954d6f2c4..3994f611ec26 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -15,6 +15,29 @@ choice
15 prompt "System type" 15 prompt "System type"
16 default SGI_IP22 16 default SGI_IP22
17 17
18config LEMOTE_FULONG
19 bool "Lemote Fulong mini-PC"
20 select ARCH_SPARSEMEM_ENABLE
21 select SYS_HAS_CPU_LOONGSON2
22 select DMA_NONCOHERENT
23 select BOOT_ELF32
24 select BOARD_SCACHE
25 select HAVE_STD_PC_SERIAL_PORT
26 select HW_HAS_PCI
27 select I8259
28 select ISA
29 select IRQ_CPU
30 select SYS_SUPPORTS_32BIT_KERNEL
31 select SYS_SUPPORTS_64BIT_KERNEL
32 select SYS_SUPPORTS_LITTLE_ENDIAN
33 select SYS_SUPPORTS_HIGHMEM
34 select SYS_HAS_EARLY_PRINTK
35 select GENERIC_HARDIRQS_NO__DO_IRQ
36 select CPU_HAS_WB
37 help
38 Lemote Fulong mini-PC board based on the Chinese Loongson-2E CPU and
39 an FPGA northbridge
40
18config MACH_ALCHEMY 41config MACH_ALCHEMY
19 bool "Alchemy processor based machines" 42 bool "Alchemy processor based machines"
20 43
diff --git a/arch/mips/Makefile b/arch/mips/Makefile
index 1e4579cc54ef..6642ee5fdc46 100644
--- a/arch/mips/Makefile
+++ b/arch/mips/Makefile
@@ -291,6 +291,13 @@ cflags-$(CONFIG_WR_PPMC) += -Iinclude/asm-mips/mach-wrppmc
291load-$(CONFIG_WR_PPMC) += 0xffffffff80100000 291load-$(CONFIG_WR_PPMC) += 0xffffffff80100000
292 292
293# 293#
294# lemote fulong mini-PC board
295#
296core-$(CONFIG_LEMOTE_FULONG) +=arch/mips/lemote/lm2e/
297load-$(CONFIG_LEMOTE_FULONG) +=0xffffffff80100000
298cflags-$(CONFIG_LEMOTE_FULONG) += -Iinclude/asm-mips/mach-lemote
299
300#
294# For all MIPS, Inc. eval boards 301# For all MIPS, Inc. eval boards
295# 302#
296core-$(CONFIG_MIPS_BOARDS_GEN) += arch/mips/mips-boards/generic/ 303core-$(CONFIG_MIPS_BOARDS_GEN) += arch/mips/mips-boards/generic/
diff --git a/arch/mips/configs/fulong_defconfig b/arch/mips/configs/fulong_defconfig
new file mode 100644
index 000000000000..549f61b5896a
--- /dev/null
+++ b/arch/mips/configs/fulong_defconfig
@@ -0,0 +1,1767 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.22-rc4
4# Mon Jun 11 00:23:51 2007
5#
6CONFIG_MIPS=y
7
8#
9# Machine selection
10#
11CONFIG_LEMOTE_FULONG=y
12# CONFIG_MACH_ALCHEMY is not set
13# CONFIG_BASLER_EXCITE is not set
14# CONFIG_MIPS_COBALT is not set
15# CONFIG_MACH_DECSTATION is not set
16# CONFIG_MACH_JAZZ is not set
17# CONFIG_LASAT is not set
18# CONFIG_MIPS_ATLAS is not set
19# CONFIG_MIPS_MALTA is not set
20# CONFIG_MIPS_SEAD is not set
21# CONFIG_WR_PPMC is not set
22# CONFIG_MIPS_SIM is not set
23# CONFIG_MOMENCO_OCELOT is not set
24# CONFIG_MOMENCO_OCELOT_3 is not set
25# CONFIG_PNX8550_JBS is not set
26# CONFIG_PNX8550_STB810 is not set
27# CONFIG_DDB5477 is not set
28# CONFIG_MACH_VR41XX is not set
29# CONFIG_PMC_YOSEMITE is not set
30# CONFIG_QEMU is not set
31# CONFIG_MARKEINS is not set
32# CONFIG_SGI_IP22 is not set
33# CONFIG_SGI_IP27 is not set
34# CONFIG_SGI_IP32 is not set
35# CONFIG_SIBYTE_BIGSUR is not set
36# CONFIG_SIBYTE_SWARM is not set
37# CONFIG_SIBYTE_SENTOSA is not set
38# CONFIG_SIBYTE_RHONE is not set
39# CONFIG_SIBYTE_CARMEL is not set
40# CONFIG_SIBYTE_PTSWARM is not set
41# CONFIG_SIBYTE_LITTLESUR is not set
42# CONFIG_SIBYTE_CRHINE is not set
43# CONFIG_SIBYTE_CRHONE is not set
44# CONFIG_SNI_RM is not set
45# CONFIG_TOSHIBA_JMR3927 is not set
46# CONFIG_TOSHIBA_RBTX4927 is not set
47# CONFIG_TOSHIBA_RBTX4938 is not set
48CONFIG_RWSEM_GENERIC_SPINLOCK=y
49# CONFIG_ARCH_HAS_ILOG2_U32 is not set
50# CONFIG_ARCH_HAS_ILOG2_U64 is not set
51CONFIG_GENERIC_FIND_NEXT_BIT=y
52CONFIG_GENERIC_HWEIGHT=y
53CONFIG_GENERIC_CALIBRATE_DELAY=y
54CONFIG_GENERIC_TIME=y
55CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
56CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
57CONFIG_DMA_NONCOHERENT=y
58CONFIG_DMA_NEED_PCI_MAP_STATE=y
59CONFIG_EARLY_PRINTK=y
60CONFIG_SYS_HAS_EARLY_PRINTK=y
61CONFIG_I8259=y
62# CONFIG_NO_IOPORT is not set
63# CONFIG_CPU_BIG_ENDIAN is not set
64CONFIG_CPU_LITTLE_ENDIAN=y
65CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
66CONFIG_IRQ_CPU=y
67CONFIG_BOOT_ELF32=y
68CONFIG_MIPS_L1_CACHE_SHIFT=5
69
70#
71# CPU selection
72#
73CONFIG_CPU_LOONGSON2=y
74# CONFIG_CPU_MIPS32_R1 is not set
75# CONFIG_CPU_MIPS32_R2 is not set
76# CONFIG_CPU_MIPS64_R1 is not set
77# CONFIG_CPU_MIPS64_R2 is not set
78# CONFIG_CPU_R3000 is not set
79# CONFIG_CPU_TX39XX is not set
80# CONFIG_CPU_VR41XX is not set
81# CONFIG_CPU_R4300 is not set
82# CONFIG_CPU_R4X00 is not set
83# CONFIG_CPU_TX49XX is not set
84# CONFIG_CPU_R5000 is not set
85# CONFIG_CPU_R5432 is not set
86# CONFIG_CPU_R6000 is not set
87# CONFIG_CPU_NEVADA is not set
88# CONFIG_CPU_R8000 is not set
89# CONFIG_CPU_R10000 is not set
90# CONFIG_CPU_RM7000 is not set
91# CONFIG_CPU_RM9000 is not set
92# CONFIG_CPU_SB1 is not set
93CONFIG_SYS_HAS_CPU_LOONGSON2=y
94CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
95CONFIG_SYS_SUPPORTS_64BIT_KERNEL=y
96CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
97CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y
98
99#
100# Kernel type
101#
102# CONFIG_32BIT is not set
103CONFIG_64BIT=y
104# CONFIG_PAGE_SIZE_4KB is not set
105# CONFIG_PAGE_SIZE_8KB is not set
106CONFIG_PAGE_SIZE_16KB=y
107# CONFIG_PAGE_SIZE_64KB is not set
108CONFIG_BOARD_SCACHE=y
109CONFIG_MIPS_MT_DISABLED=y
110# CONFIG_MIPS_MT_SMP is not set
111# CONFIG_MIPS_MT_SMTC is not set
112# CONFIG_MIPS_VPE_LOADER is not set
113CONFIG_CPU_HAS_WB=y
114CONFIG_CPU_HAS_SYNC=y
115CONFIG_GENERIC_HARDIRQS=y
116CONFIG_GENERIC_IRQ_PROBE=y
117CONFIG_CPU_SUPPORTS_HIGHMEM=y
118CONFIG_SYS_SUPPORTS_HIGHMEM=y
119CONFIG_ARCH_FLATMEM_ENABLE=y
120CONFIG_ARCH_SPARSEMEM_ENABLE=y
121CONFIG_SELECT_MEMORY_MODEL=y
122CONFIG_FLATMEM_MANUAL=y
123# CONFIG_DISCONTIGMEM_MANUAL is not set
124# CONFIG_SPARSEMEM_MANUAL is not set
125CONFIG_FLATMEM=y
126CONFIG_FLAT_NODE_MEM_MAP=y
127CONFIG_SPARSEMEM_STATIC=y
128CONFIG_SPLIT_PTLOCK_CPUS=4
129CONFIG_RESOURCES_64BIT=y
130CONFIG_ZONE_DMA_FLAG=0
131# CONFIG_HZ_48 is not set
132# CONFIG_HZ_100 is not set
133# CONFIG_HZ_128 is not set
134CONFIG_HZ_250=y
135# CONFIG_HZ_256 is not set
136# CONFIG_HZ_1000 is not set
137# CONFIG_HZ_1024 is not set
138CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
139CONFIG_HZ=250
140# CONFIG_PREEMPT_NONE is not set
141CONFIG_PREEMPT_VOLUNTARY=y
142# CONFIG_PREEMPT is not set
143# CONFIG_KEXEC is not set
144CONFIG_LOCKDEP_SUPPORT=y
145CONFIG_STACKTRACE_SUPPORT=y
146CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
147
148#
149# Code maturity level options
150#
151CONFIG_EXPERIMENTAL=y
152CONFIG_BROKEN_ON_SMP=y
153CONFIG_INIT_ENV_ARG_LIMIT=32
154
155#
156# General setup
157#
158CONFIG_LOCALVERSION="lm32"
159# CONFIG_LOCALVERSION_AUTO is not set
160CONFIG_SWAP=y
161CONFIG_SYSVIPC=y
162# CONFIG_IPC_NS is not set
163CONFIG_SYSVIPC_SYSCTL=y
164CONFIG_POSIX_MQUEUE=y
165CONFIG_BSD_PROCESS_ACCT=y
166# CONFIG_BSD_PROCESS_ACCT_V3 is not set
167# CONFIG_TASKSTATS is not set
168# CONFIG_UTS_NS is not set
169# CONFIG_AUDIT is not set
170CONFIG_IKCONFIG=y
171CONFIG_IKCONFIG_PROC=y
172CONFIG_LOG_BUF_SHIFT=14
173CONFIG_SYSFS_DEPRECATED=y
174# CONFIG_RELAY is not set
175# CONFIG_BLK_DEV_INITRD is not set
176# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
177CONFIG_SYSCTL=y
178CONFIG_EMBEDDED=y
179CONFIG_SYSCTL_SYSCALL=y
180CONFIG_KALLSYMS=y
181# CONFIG_KALLSYMS_EXTRA_PASS is not set
182CONFIG_HOTPLUG=y
183CONFIG_PRINTK=y
184CONFIG_BUG=y
185CONFIG_ELF_CORE=y
186CONFIG_BASE_FULL=y
187CONFIG_FUTEX=y
188CONFIG_ANON_INODES=y
189CONFIG_EPOLL=y
190CONFIG_SIGNALFD=y
191CONFIG_TIMERFD=y
192CONFIG_EVENTFD=y
193CONFIG_SHMEM=y
194CONFIG_VM_EVENT_COUNTERS=y
195CONFIG_SLAB=y
196# CONFIG_SLUB is not set
197# CONFIG_SLOB is not set
198CONFIG_RT_MUTEXES=y
199# CONFIG_TINY_SHMEM is not set
200CONFIG_BASE_SMALL=0
201
202#
203# Loadable module support
204#
205CONFIG_MODULES=y
206CONFIG_MODULE_UNLOAD=y
207CONFIG_MODULE_FORCE_UNLOAD=y
208# CONFIG_MODVERSIONS is not set
209# CONFIG_MODULE_SRCVERSION_ALL is not set
210CONFIG_KMOD=y
211
212#
213# Block layer
214#
215CONFIG_BLOCK=y
216# CONFIG_BLK_DEV_IO_TRACE is not set
217
218#
219# IO Schedulers
220#
221CONFIG_IOSCHED_NOOP=y
222CONFIG_IOSCHED_AS=y
223CONFIG_IOSCHED_DEADLINE=y
224CONFIG_IOSCHED_CFQ=y
225# CONFIG_DEFAULT_AS is not set
226# CONFIG_DEFAULT_DEADLINE is not set
227CONFIG_DEFAULT_CFQ=y
228# CONFIG_DEFAULT_NOOP is not set
229CONFIG_DEFAULT_IOSCHED="cfq"
230
231#
232# Bus options (PCI, PCMCIA, EISA, ISA, TC)
233#
234CONFIG_HW_HAS_PCI=y
235CONFIG_PCI=y
236# CONFIG_ARCH_SUPPORTS_MSI is not set
237CONFIG_ISA=y
238CONFIG_MMU=y
239
240#
241# PCCARD (PCMCIA/CardBus) support
242#
243# CONFIG_PCCARD is not set
244# CONFIG_HOTPLUG_PCI is not set
245
246#
247# Executable file formats
248#
249CONFIG_BINFMT_ELF=y
250CONFIG_BINFMT_MISC=y
251# CONFIG_BUILD_ELF64 is not set
252CONFIG_MIPS32_COMPAT=y
253CONFIG_COMPAT=y
254CONFIG_SYSVIPC_COMPAT=y
255CONFIG_MIPS32_O32=y
256CONFIG_MIPS32_N32=y
257CONFIG_BINFMT_ELF32=y
258
259#
260# Power management options
261#
262CONFIG_PM=y
263# CONFIG_PM_LEGACY is not set
264# CONFIG_PM_DEBUG is not set
265# CONFIG_PM_SYSFS_DEPRECATED is not set
266
267#
268# Networking
269#
270CONFIG_NET=y
271
272#
273# Networking options
274#
275CONFIG_PACKET=y
276CONFIG_PACKET_MMAP=y
277CONFIG_UNIX=y
278CONFIG_XFRM=y
279# CONFIG_XFRM_USER is not set
280# CONFIG_XFRM_SUB_POLICY is not set
281# CONFIG_XFRM_MIGRATE is not set
282# CONFIG_NET_KEY is not set
283CONFIG_INET=y
284CONFIG_IP_MULTICAST=y
285# CONFIG_IP_ADVANCED_ROUTER is not set
286CONFIG_IP_FIB_HASH=y
287CONFIG_IP_PNP=y
288# CONFIG_IP_PNP_DHCP is not set
289CONFIG_IP_PNP_BOOTP=y
290# CONFIG_IP_PNP_RARP is not set
291CONFIG_NET_IPIP=m
292CONFIG_NET_IPGRE=m
293CONFIG_NET_IPGRE_BROADCAST=y
294# CONFIG_IP_MROUTE is not set
295# CONFIG_ARPD is not set
296# CONFIG_SYN_COOKIES is not set
297# CONFIG_INET_AH is not set
298# CONFIG_INET_ESP is not set
299# CONFIG_INET_IPCOMP is not set
300# CONFIG_INET_XFRM_TUNNEL is not set
301CONFIG_INET_TUNNEL=m
302# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
303# CONFIG_INET_XFRM_MODE_TUNNEL is not set
304CONFIG_INET_XFRM_MODE_BEET=y
305# CONFIG_INET_DIAG is not set
306# CONFIG_TCP_CONG_ADVANCED is not set
307CONFIG_TCP_CONG_CUBIC=y
308CONFIG_DEFAULT_TCP_CONG="cubic"
309# CONFIG_TCP_MD5SIG is not set
310# CONFIG_IP_VS is not set
311# CONFIG_IPV6 is not set
312# CONFIG_INET6_XFRM_TUNNEL is not set
313# CONFIG_INET6_TUNNEL is not set
314# CONFIG_NETWORK_SECMARK is not set
315CONFIG_NETFILTER=y
316# CONFIG_NETFILTER_DEBUG is not set
317
318#
319# Core Netfilter Configuration
320#
321CONFIG_NETFILTER_NETLINK=m
322CONFIG_NETFILTER_NETLINK_QUEUE=m
323CONFIG_NETFILTER_NETLINK_LOG=m
324# CONFIG_NF_CONNTRACK_ENABLED is not set
325# CONFIG_NF_CONNTRACK is not set
326CONFIG_NETFILTER_XTABLES=m
327CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
328# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
329CONFIG_NETFILTER_XT_TARGET_MARK=m
330CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
331# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
332# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
333CONFIG_NETFILTER_XT_MATCH_COMMENT=m
334CONFIG_NETFILTER_XT_MATCH_DCCP=m
335# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
336CONFIG_NETFILTER_XT_MATCH_ESP=m
337CONFIG_NETFILTER_XT_MATCH_LENGTH=m
338CONFIG_NETFILTER_XT_MATCH_LIMIT=m
339CONFIG_NETFILTER_XT_MATCH_MAC=m
340CONFIG_NETFILTER_XT_MATCH_MARK=m
341# CONFIG_NETFILTER_XT_MATCH_POLICY is not set
342CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
343CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
344CONFIG_NETFILTER_XT_MATCH_QUOTA=m
345CONFIG_NETFILTER_XT_MATCH_REALM=m
346CONFIG_NETFILTER_XT_MATCH_SCTP=m
347CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
348CONFIG_NETFILTER_XT_MATCH_STRING=m
349CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
350# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
351
352#
353# IP: Netfilter Configuration
354#
355CONFIG_IP_NF_QUEUE=m
356CONFIG_IP_NF_IPTABLES=m
357CONFIG_IP_NF_MATCH_IPRANGE=m
358CONFIG_IP_NF_MATCH_TOS=m
359CONFIG_IP_NF_MATCH_RECENT=m
360CONFIG_IP_NF_MATCH_ECN=m
361CONFIG_IP_NF_MATCH_AH=m
362CONFIG_IP_NF_MATCH_TTL=m
363CONFIG_IP_NF_MATCH_OWNER=m
364CONFIG_IP_NF_MATCH_ADDRTYPE=m
365CONFIG_IP_NF_FILTER=m
366CONFIG_IP_NF_TARGET_REJECT=m
367CONFIG_IP_NF_TARGET_LOG=m
368CONFIG_IP_NF_TARGET_ULOG=m
369CONFIG_IP_NF_MANGLE=m
370CONFIG_IP_NF_TARGET_TOS=m
371CONFIG_IP_NF_TARGET_ECN=m
372CONFIG_IP_NF_TARGET_TTL=m
373CONFIG_IP_NF_RAW=m
374CONFIG_IP_NF_ARPTABLES=m
375CONFIG_IP_NF_ARPFILTER=m
376CONFIG_IP_NF_ARP_MANGLE=m
377# CONFIG_IP_DCCP is not set
378# CONFIG_IP_SCTP is not set
379# CONFIG_TIPC is not set
380# CONFIG_ATM is not set
381# CONFIG_BRIDGE is not set
382# CONFIG_VLAN_8021Q is not set
383# CONFIG_DECNET is not set
384# CONFIG_LLC2 is not set
385# CONFIG_IPX is not set
386# CONFIG_ATALK is not set
387# CONFIG_X25 is not set
388# CONFIG_LAPB is not set
389# CONFIG_ECONET is not set
390# CONFIG_WAN_ROUTER is not set
391
392#
393# QoS and/or fair queueing
394#
395# CONFIG_NET_SCHED is not set
396CONFIG_NET_CLS_ROUTE=y
397
398#
399# Network testing
400#
401# CONFIG_NET_PKTGEN is not set
402# CONFIG_HAMRADIO is not set
403# CONFIG_IRDA is not set
404# CONFIG_BT is not set
405# CONFIG_AF_RXRPC is not set
406
407#
408# Wireless
409#
410# CONFIG_CFG80211 is not set
411CONFIG_WIRELESS_EXT=y
412# CONFIG_MAC80211 is not set
413CONFIG_IEEE80211=m
414# CONFIG_IEEE80211_DEBUG is not set
415CONFIG_IEEE80211_CRYPT_WEP=m
416# CONFIG_IEEE80211_CRYPT_CCMP is not set
417# CONFIG_IEEE80211_CRYPT_TKIP is not set
418# CONFIG_IEEE80211_SOFTMAC is not set
419# CONFIG_RFKILL is not set
420
421#
422# Device Drivers
423#
424
425#
426# Generic Driver Options
427#
428CONFIG_STANDALONE=y
429CONFIG_PREVENT_FIRMWARE_BUILD=y
430CONFIG_FW_LOADER=m
431# CONFIG_SYS_HYPERVISOR is not set
432
433#
434# Connector - unified userspace <-> kernelspace linker
435#
436# CONFIG_CONNECTOR is not set
437CONFIG_MTD=m
438# CONFIG_MTD_DEBUG is not set
439# CONFIG_MTD_CONCAT is not set
440# CONFIG_MTD_PARTITIONS is not set
441
442#
443# User Modules And Translation Layers
444#
445CONFIG_MTD_CHAR=m
446CONFIG_MTD_BLKDEVS=m
447CONFIG_MTD_BLOCK=m
448# CONFIG_MTD_BLOCK_RO is not set
449# CONFIG_FTL is not set
450# CONFIG_NFTL is not set
451# CONFIG_INFTL is not set
452# CONFIG_RFD_FTL is not set
453# CONFIG_SSFDC is not set
454
455#
456# RAM/ROM/Flash chip drivers
457#
458CONFIG_MTD_CFI=m
459CONFIG_MTD_JEDECPROBE=m
460CONFIG_MTD_GEN_PROBE=m
461CONFIG_MTD_CFI_ADV_OPTIONS=y
462CONFIG_MTD_CFI_NOSWAP=y
463# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
464# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
465# CONFIG_MTD_CFI_GEOMETRY is not set
466CONFIG_MTD_MAP_BANK_WIDTH_1=y
467CONFIG_MTD_MAP_BANK_WIDTH_2=y
468CONFIG_MTD_MAP_BANK_WIDTH_4=y
469# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
470# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
471# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
472CONFIG_MTD_CFI_I1=y
473CONFIG_MTD_CFI_I2=y
474# CONFIG_MTD_CFI_I4 is not set
475# CONFIG_MTD_CFI_I8 is not set
476# CONFIG_MTD_OTP is not set
477# CONFIG_MTD_CFI_INTELEXT is not set
478CONFIG_MTD_CFI_AMDSTD=m
479CONFIG_MTD_CFI_STAA=m
480CONFIG_MTD_CFI_UTIL=m
481# CONFIG_MTD_RAM is not set
482# CONFIG_MTD_ROM is not set
483# CONFIG_MTD_ABSENT is not set
484
485#
486# Mapping drivers for chip access
487#
488# CONFIG_MTD_COMPLEX_MAPPINGS is not set
489CONFIG_MTD_PHYSMAP=m
490CONFIG_MTD_PHYSMAP_START=0x1fc00000
491CONFIG_MTD_PHYSMAP_LEN=0x80000
492CONFIG_MTD_PHYSMAP_BANKWIDTH=1
493# CONFIG_MTD_PLATRAM is not set
494
495#
496# Self-contained MTD device drivers
497#
498# CONFIG_MTD_PMC551 is not set
499# CONFIG_MTD_SLRAM is not set
500# CONFIG_MTD_PHRAM is not set
501# CONFIG_MTD_MTDRAM is not set
502# CONFIG_MTD_BLOCK2MTD is not set
503
504#
505# Disk-On-Chip Device Drivers
506#
507# CONFIG_MTD_DOC2000 is not set
508# CONFIG_MTD_DOC2001 is not set
509# CONFIG_MTD_DOC2001PLUS is not set
510# CONFIG_MTD_NAND is not set
511# CONFIG_MTD_ONENAND is not set
512
513#
514# UBI - Unsorted block images
515#
516# CONFIG_MTD_UBI is not set
517
518#
519# Parallel port support
520#
521# CONFIG_PARPORT is not set
522
523#
524# Plug and Play support
525#
526# CONFIG_PNP is not set
527# CONFIG_PNPACPI is not set
528
529#
530# Block devices
531#
532# CONFIG_BLK_CPQ_DA is not set
533# CONFIG_BLK_CPQ_CISS_DA is not set
534# CONFIG_BLK_DEV_DAC960 is not set
535# CONFIG_BLK_DEV_UMEM is not set
536# CONFIG_BLK_DEV_COW_COMMON is not set
537CONFIG_BLK_DEV_LOOP=y
538CONFIG_BLK_DEV_CRYPTOLOOP=m
539# CONFIG_BLK_DEV_NBD is not set
540# CONFIG_BLK_DEV_SX8 is not set
541# CONFIG_BLK_DEV_UB is not set
542CONFIG_BLK_DEV_RAM=m
543CONFIG_BLK_DEV_RAM_COUNT=16
544CONFIG_BLK_DEV_RAM_SIZE=4096
545CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
546CONFIG_CDROM_PKTCDVD=m
547CONFIG_CDROM_PKTCDVD_BUFFERS=8
548# CONFIG_CDROM_PKTCDVD_WCACHE is not set
549CONFIG_ATA_OVER_ETH=m
550
551#
552# Misc devices
553#
554# CONFIG_PHANTOM is not set
555# CONFIG_SGI_IOC4 is not set
556# CONFIG_TIFM_CORE is not set
557# CONFIG_BLINK is not set
558CONFIG_IDE=y
559CONFIG_IDE_MAX_HWIFS=4
560CONFIG_BLK_DEV_IDE=y
561
562#
563# Please see Documentation/ide.txt for help/info on IDE drives
564#
565# CONFIG_BLK_DEV_IDE_SATA is not set
566CONFIG_BLK_DEV_IDEDISK=y
567CONFIG_IDEDISK_MULTI_MODE=y
568CONFIG_BLK_DEV_IDECD=y
569# CONFIG_BLK_DEV_IDETAPE is not set
570# CONFIG_BLK_DEV_IDEFLOPPY is not set
571CONFIG_BLK_DEV_IDESCSI=y
572CONFIG_IDE_TASK_IOCTL=y
573CONFIG_IDE_PROC_FS=y
574
575#
576# IDE chipset support/bugfixes
577#
578CONFIG_IDE_GENERIC=y
579CONFIG_BLK_DEV_IDEPCI=y
580CONFIG_IDEPCI_SHARE_IRQ=y
581CONFIG_IDEPCI_PCIBUS_ORDER=y
582# CONFIG_BLK_DEV_OFFBOARD is not set
583CONFIG_BLK_DEV_GENERIC=y
584# CONFIG_BLK_DEV_OPTI621 is not set
585CONFIG_BLK_DEV_IDEDMA_PCI=y
586# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
587# CONFIG_IDEDMA_ONLYDISK is not set
588# CONFIG_BLK_DEV_AEC62XX is not set
589# CONFIG_BLK_DEV_ALI15X3 is not set
590# CONFIG_BLK_DEV_AMD74XX is not set
591# CONFIG_BLK_DEV_CMD64X is not set
592# CONFIG_BLK_DEV_TRIFLEX is not set
593# CONFIG_BLK_DEV_CY82C693 is not set
594# CONFIG_BLK_DEV_CS5520 is not set
595# CONFIG_BLK_DEV_CS5530 is not set
596# CONFIG_BLK_DEV_HPT34X is not set
597# CONFIG_BLK_DEV_HPT366 is not set
598# CONFIG_BLK_DEV_JMICRON is not set
599# CONFIG_BLK_DEV_SC1200 is not set
600# CONFIG_BLK_DEV_PIIX is not set
601# CONFIG_BLK_DEV_IT8213 is not set
602# CONFIG_BLK_DEV_IT821X is not set
603# CONFIG_BLK_DEV_NS87415 is not set
604# CONFIG_BLK_DEV_PDC202XX_OLD is not set
605# CONFIG_BLK_DEV_PDC202XX_NEW is not set
606# CONFIG_BLK_DEV_SVWKS is not set
607# CONFIG_BLK_DEV_SIIMAGE is not set
608# CONFIG_BLK_DEV_SLC90E66 is not set
609# CONFIG_BLK_DEV_TRM290 is not set
610CONFIG_BLK_DEV_VIA82CXXX=y
611# CONFIG_BLK_DEV_TC86C001 is not set
612# CONFIG_IDE_ARM is not set
613# CONFIG_IDE_CHIPSETS is not set
614CONFIG_BLK_DEV_IDEDMA=y
615# CONFIG_IDEDMA_IVB is not set
616# CONFIG_BLK_DEV_HD is not set
617
618#
619# SCSI device support
620#
621# CONFIG_RAID_ATTRS is not set
622CONFIG_SCSI=y
623# CONFIG_SCSI_TGT is not set
624# CONFIG_SCSI_NETLINK is not set
625CONFIG_SCSI_PROC_FS=y
626
627#
628# SCSI support type (disk, tape, CD-ROM)
629#
630CONFIG_BLK_DEV_SD=y
631# CONFIG_CHR_DEV_ST is not set
632# CONFIG_CHR_DEV_OSST is not set
633CONFIG_BLK_DEV_SR=y
634CONFIG_BLK_DEV_SR_VENDOR=y
635CONFIG_CHR_DEV_SG=y
636# CONFIG_CHR_DEV_SCH is not set
637
638#
639# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
640#
641# CONFIG_SCSI_MULTI_LUN is not set
642CONFIG_SCSI_CONSTANTS=y
643# CONFIG_SCSI_LOGGING is not set
644# CONFIG_SCSI_SCAN_ASYNC is not set
645CONFIG_SCSI_WAIT_SCAN=m
646
647#
648# SCSI Transports
649#
650# CONFIG_SCSI_SPI_ATTRS is not set
651# CONFIG_SCSI_FC_ATTRS is not set
652# CONFIG_SCSI_ISCSI_ATTRS is not set
653# CONFIG_SCSI_SAS_ATTRS is not set
654# CONFIG_SCSI_SAS_LIBSAS is not set
655
656#
657# SCSI low-level drivers
658#
659# CONFIG_ISCSI_TCP is not set
660# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
661# CONFIG_SCSI_3W_9XXX is not set
662# CONFIG_SCSI_ACARD is not set
663# CONFIG_SCSI_AACRAID is not set
664# CONFIG_SCSI_AIC7XXX is not set
665# CONFIG_SCSI_AIC7XXX_OLD is not set
666# CONFIG_SCSI_AIC79XX is not set
667# CONFIG_SCSI_AIC94XX is not set
668# CONFIG_SCSI_IN2000 is not set
669# CONFIG_SCSI_ARCMSR is not set
670# CONFIG_MEGARAID_NEWGEN is not set
671# CONFIG_MEGARAID_LEGACY is not set
672# CONFIG_MEGARAID_SAS is not set
673# CONFIG_SCSI_HPTIOP is not set
674# CONFIG_SCSI_DMX3191D is not set
675# CONFIG_SCSI_DTC3280 is not set
676# CONFIG_SCSI_FUTURE_DOMAIN is not set
677# CONFIG_SCSI_GENERIC_NCR5380 is not set
678# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set
679# CONFIG_SCSI_IPS is not set
680# CONFIG_SCSI_INITIO is not set
681# CONFIG_SCSI_INIA100 is not set
682# CONFIG_SCSI_NCR53C406A is not set
683# CONFIG_SCSI_STEX is not set
684# CONFIG_SCSI_SYM53C8XX_2 is not set
685# CONFIG_SCSI_PAS16 is not set
686# CONFIG_SCSI_PSI240I is not set
687# CONFIG_SCSI_QLOGIC_FAS is not set
688# CONFIG_SCSI_QLOGIC_1280 is not set
689# CONFIG_SCSI_QLA_FC is not set
690# CONFIG_SCSI_QLA_ISCSI is not set
691# CONFIG_SCSI_LPFC is not set
692# CONFIG_SCSI_SYM53C416 is not set
693# CONFIG_SCSI_DC395x is not set
694# CONFIG_SCSI_DC390T is not set
695# CONFIG_SCSI_T128 is not set
696# CONFIG_SCSI_DEBUG is not set
697# CONFIG_SCSI_SRP is not set
698# CONFIG_ATA is not set
699
700#
701# Old CD-ROM drivers (not SCSI, not IDE)
702#
703# CONFIG_CD_NO_IDESCSI is not set
704
705#
706# Multi-device support (RAID and LVM)
707#
708# CONFIG_MD is not set
709
710#
711# Fusion MPT device support
712#
713# CONFIG_FUSION is not set
714# CONFIG_FUSION_SPI is not set
715# CONFIG_FUSION_FC is not set
716# CONFIG_FUSION_SAS is not set
717
718#
719# IEEE 1394 (FireWire) support
720#
721# CONFIG_FIREWIRE is not set
722# CONFIG_IEEE1394 is not set
723
724#
725# I2O device support
726#
727# CONFIG_I2O is not set
728
729#
730# Network device support
731#
732CONFIG_NETDEVICES=y
733# CONFIG_DUMMY is not set
734# CONFIG_BONDING is not set
735# CONFIG_EQUALIZER is not set
736# CONFIG_TUN is not set
737# CONFIG_ARCNET is not set
738CONFIG_PHYLIB=m
739
740#
741# MII PHY device drivers
742#
743CONFIG_MARVELL_PHY=m
744CONFIG_DAVICOM_PHY=m
745CONFIG_QSEMI_PHY=m
746CONFIG_LXT_PHY=m
747CONFIG_CICADA_PHY=m
748# CONFIG_VITESSE_PHY is not set
749# CONFIG_SMSC_PHY is not set
750# CONFIG_BROADCOM_PHY is not set
751# CONFIG_FIXED_PHY is not set
752
753#
754# Ethernet (10 or 100Mbit)
755#
756CONFIG_NET_ETHERNET=y
757CONFIG_MII=y
758# CONFIG_HAPPYMEAL is not set
759# CONFIG_SUNGEM is not set
760# CONFIG_CASSINI is not set
761# CONFIG_NET_VENDOR_3COM is not set
762# CONFIG_NET_VENDOR_SMC is not set
763# CONFIG_DM9000 is not set
764# CONFIG_NET_VENDOR_RACAL is not set
765
766#
767# Tulip family network device support
768#
769# CONFIG_NET_TULIP is not set
770# CONFIG_AT1700 is not set
771# CONFIG_DEPCA is not set
772# CONFIG_HP100 is not set
773# CONFIG_NET_ISA is not set
774CONFIG_NET_PCI=y
775# CONFIG_PCNET32 is not set
776# CONFIG_AMD8111_ETH is not set
777# CONFIG_ADAPTEC_STARFIRE is not set
778# CONFIG_AC3200 is not set
779# CONFIG_APRICOT is not set
780# CONFIG_B44 is not set
781# CONFIG_FORCEDETH is not set
782# CONFIG_CS89x0 is not set
783# CONFIG_TC35815 is not set
784# CONFIG_DGRS is not set
785# CONFIG_EEPRO100 is not set
786# CONFIG_E100 is not set
787# CONFIG_FEALNX is not set
788# CONFIG_NATSEMI is not set
789# CONFIG_NE2K_PCI is not set
790# CONFIG_8139CP is not set
791CONFIG_8139TOO=y
792# CONFIG_8139TOO_PIO is not set
793# CONFIG_8139TOO_TUNE_TWISTER is not set
794# CONFIG_8139TOO_8129 is not set
795# CONFIG_8139_OLD_RX_RESET is not set
796# CONFIG_SIS900 is not set
797# CONFIG_EPIC100 is not set
798# CONFIG_SUNDANCE is not set
799# CONFIG_VIA_RHINE is not set
800# CONFIG_SC92031 is not set
801CONFIG_NETDEV_1000=y
802# CONFIG_ACENIC is not set
803# CONFIG_DL2K is not set
804# CONFIG_E1000 is not set
805# CONFIG_NS83820 is not set
806# CONFIG_HAMACHI is not set
807# CONFIG_YELLOWFIN is not set
808# CONFIG_R8169 is not set
809# CONFIG_SIS190 is not set
810# CONFIG_SKGE is not set
811# CONFIG_SKY2 is not set
812# CONFIG_SK98LIN is not set
813# CONFIG_VIA_VELOCITY is not set
814# CONFIG_TIGON3 is not set
815# CONFIG_BNX2 is not set
816# CONFIG_QLA3XXX is not set
817# CONFIG_ATL1 is not set
818CONFIG_NETDEV_10000=y
819# CONFIG_CHELSIO_T1 is not set
820# CONFIG_CHELSIO_T3 is not set
821# CONFIG_IXGB is not set
822# CONFIG_S2IO is not set
823# CONFIG_MYRI10GE is not set
824# CONFIG_NETXEN_NIC is not set
825# CONFIG_MLX4_CORE is not set
826# CONFIG_TR is not set
827
828#
829# Wireless LAN
830#
831# CONFIG_WLAN_PRE80211 is not set
832# CONFIG_WLAN_80211 is not set
833
834#
835# USB Network Adapters
836#
837# CONFIG_USB_CATC is not set
838# CONFIG_USB_KAWETH is not set
839# CONFIG_USB_PEGASUS is not set
840# CONFIG_USB_RTL8150 is not set
841# CONFIG_USB_USBNET_MII is not set
842# CONFIG_USB_USBNET is not set
843# CONFIG_WAN is not set
844# CONFIG_FDDI is not set
845# CONFIG_HIPPI is not set
846CONFIG_PPP=m
847CONFIG_PPP_MULTILINK=y
848CONFIG_PPP_FILTER=y
849CONFIG_PPP_ASYNC=m
850CONFIG_PPP_SYNC_TTY=m
851CONFIG_PPP_DEFLATE=m
852CONFIG_PPP_BSDCOMP=m
853CONFIG_PPP_MPPE=m
854CONFIG_PPPOE=m
855CONFIG_SLIP=m
856CONFIG_SLIP_COMPRESSED=y
857CONFIG_SLHC=m
858CONFIG_SLIP_SMART=y
859CONFIG_SLIP_MODE_SLIP6=y
860CONFIG_NET_FC=y
861# CONFIG_SHAPER is not set
862# CONFIG_NETCONSOLE is not set
863# CONFIG_NETPOLL is not set
864# CONFIG_NET_POLL_CONTROLLER is not set
865
866#
867# ISDN subsystem
868#
869# CONFIG_ISDN is not set
870
871#
872# Telephony Support
873#
874# CONFIG_PHONE is not set
875
876#
877# Input device support
878#
879CONFIG_INPUT=y
880CONFIG_INPUT_FF_MEMLESS=y
881
882#
883# Userland interfaces
884#
885CONFIG_INPUT_MOUSEDEV=y
886CONFIG_INPUT_MOUSEDEV_PSAUX=y
887CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
888CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
889# CONFIG_INPUT_JOYDEV is not set
890# CONFIG_INPUT_TSDEV is not set
891# CONFIG_INPUT_EVDEV is not set
892# CONFIG_INPUT_EVBUG is not set
893
894#
895# Input Device Drivers
896#
897CONFIG_INPUT_KEYBOARD=y
898CONFIG_KEYBOARD_ATKBD=m
899# CONFIG_KEYBOARD_SUNKBD is not set
900# CONFIG_KEYBOARD_LKKBD is not set
901# CONFIG_KEYBOARD_XTKBD is not set
902# CONFIG_KEYBOARD_NEWTON is not set
903# CONFIG_KEYBOARD_STOWAWAY is not set
904CONFIG_INPUT_MOUSE=y
905CONFIG_MOUSE_PS2=y
906CONFIG_MOUSE_PS2_ALPS=y
907CONFIG_MOUSE_PS2_LOGIPS2PP=y
908CONFIG_MOUSE_PS2_SYNAPTICS=y
909CONFIG_MOUSE_PS2_LIFEBOOK=y
910CONFIG_MOUSE_PS2_TRACKPOINT=y
911# CONFIG_MOUSE_PS2_TOUCHKIT is not set
912CONFIG_MOUSE_SERIAL=y
913# CONFIG_MOUSE_APPLETOUCH is not set
914# CONFIG_MOUSE_INPORT is not set
915# CONFIG_MOUSE_LOGIBM is not set
916# CONFIG_MOUSE_PC110PAD is not set
917# CONFIG_MOUSE_VSXXXAA is not set
918# CONFIG_INPUT_JOYSTICK is not set
919# CONFIG_INPUT_TABLET is not set
920# CONFIG_INPUT_TOUCHSCREEN is not set
921# CONFIG_INPUT_MISC is not set
922
923#
924# Hardware I/O ports
925#
926CONFIG_SERIO=y
927CONFIG_SERIO_I8042=y
928CONFIG_SERIO_SERPORT=y
929# CONFIG_SERIO_PCIPS2 is not set
930CONFIG_SERIO_LIBPS2=y
931# CONFIG_SERIO_RAW is not set
932# CONFIG_GAMEPORT is not set
933
934#
935# Character devices
936#
937CONFIG_VT=y
938CONFIG_VT_CONSOLE=y
939CONFIG_HW_CONSOLE=y
940# CONFIG_VT_HW_CONSOLE_BINDING is not set
941# CONFIG_SERIAL_NONSTANDARD is not set
942
943#
944# Serial drivers
945#
946CONFIG_SERIAL_8250=y
947CONFIG_SERIAL_8250_CONSOLE=y
948CONFIG_SERIAL_8250_PCI=y
949CONFIG_SERIAL_8250_NR_UARTS=2
950CONFIG_SERIAL_8250_RUNTIME_UARTS=2
951# CONFIG_SERIAL_8250_EXTENDED is not set
952
953#
954# Non-8250 serial port support
955#
956CONFIG_SERIAL_CORE=y
957CONFIG_SERIAL_CORE_CONSOLE=y
958# CONFIG_SERIAL_JSM is not set
959CONFIG_UNIX98_PTYS=y
960CONFIG_LEGACY_PTYS=y
961CONFIG_LEGACY_PTY_COUNT=256
962
963#
964# IPMI
965#
966# CONFIG_IPMI_HANDLER is not set
967# CONFIG_WATCHDOG is not set
968CONFIG_HW_RANDOM=y
969CONFIG_RTC=y
970# CONFIG_DTLK is not set
971# CONFIG_R3964 is not set
972# CONFIG_APPLICOM is not set
973# CONFIG_DRM is not set
974# CONFIG_RAW_DRIVER is not set
975
976#
977# TPM devices
978#
979# CONFIG_TCG_TPM is not set
980CONFIG_DEVPORT=y
981CONFIG_I2C=m
982CONFIG_I2C_BOARDINFO=y
983CONFIG_I2C_CHARDEV=m
984
985#
986# I2C Algorithms
987#
988# CONFIG_I2C_ALGOBIT is not set
989# CONFIG_I2C_ALGOPCF is not set
990# CONFIG_I2C_ALGOPCA is not set
991
992#
993# I2C Hardware Bus support
994#
995# CONFIG_I2C_ALI1535 is not set
996# CONFIG_I2C_ALI1563 is not set
997# CONFIG_I2C_ALI15X3 is not set
998# CONFIG_I2C_AMD756 is not set
999# CONFIG_I2C_AMD8111 is not set
1000# CONFIG_I2C_ELEKTOR is not set
1001# CONFIG_I2C_I801 is not set
1002# CONFIG_I2C_I810 is not set
1003# CONFIG_I2C_PIIX4 is not set
1004# CONFIG_I2C_NFORCE2 is not set
1005# CONFIG_I2C_OCORES is not set
1006# CONFIG_I2C_PARPORT_LIGHT is not set
1007# CONFIG_I2C_PROSAVAGE is not set
1008# CONFIG_I2C_SAVAGE4 is not set
1009# CONFIG_I2C_SIMTEC is not set
1010# CONFIG_I2C_SIS5595 is not set
1011# CONFIG_I2C_SIS630 is not set
1012# CONFIG_I2C_SIS96X is not set
1013# CONFIG_I2C_STUB is not set
1014# CONFIG_I2C_TINY_USB is not set
1015# CONFIG_I2C_VIA is not set
1016CONFIG_I2C_VIAPRO=m
1017# CONFIG_I2C_VOODOO3 is not set
1018# CONFIG_I2C_PCA_ISA is not set
1019
1020#
1021# Miscellaneous I2C Chip support
1022#
1023# CONFIG_SENSORS_DS1337 is not set
1024# CONFIG_SENSORS_DS1374 is not set
1025# CONFIG_SENSORS_EEPROM is not set
1026# CONFIG_SENSORS_PCF8574 is not set
1027# CONFIG_SENSORS_PCA9539 is not set
1028# CONFIG_SENSORS_PCF8591 is not set
1029# CONFIG_SENSORS_MAX6875 is not set
1030# CONFIG_I2C_DEBUG_CORE is not set
1031# CONFIG_I2C_DEBUG_ALGO is not set
1032# CONFIG_I2C_DEBUG_BUS is not set
1033# CONFIG_I2C_DEBUG_CHIP is not set
1034
1035#
1036# SPI support
1037#
1038# CONFIG_SPI is not set
1039# CONFIG_SPI_MASTER is not set
1040
1041#
1042# Dallas's 1-wire bus
1043#
1044# CONFIG_W1 is not set
1045# CONFIG_HWMON is not set
1046
1047#
1048# Multifunction device drivers
1049#
1050# CONFIG_MFD_SM501 is not set
1051
1052#
1053# Multimedia devices
1054#
1055CONFIG_VIDEO_DEV=m
1056CONFIG_VIDEO_V4L1=y
1057CONFIG_VIDEO_V4L1_COMPAT=y
1058CONFIG_VIDEO_V4L2=y
1059CONFIG_VIDEO_CAPTURE_DRIVERS=y
1060# CONFIG_VIDEO_ADV_DEBUG is not set
1061CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
1062# CONFIG_VIDEO_VIVI is not set
1063# CONFIG_VIDEO_BT848 is not set
1064# CONFIG_VIDEO_PMS is not set
1065# CONFIG_VIDEO_CPIA is not set
1066# CONFIG_VIDEO_CPIA2 is not set
1067# CONFIG_VIDEO_SAA5246A is not set
1068# CONFIG_VIDEO_SAA5249 is not set
1069# CONFIG_TUNER_3036 is not set
1070# CONFIG_VIDEO_STRADIS is not set
1071# CONFIG_VIDEO_SAA7134 is not set
1072# CONFIG_VIDEO_MXB is not set
1073# CONFIG_VIDEO_DPC is not set
1074# CONFIG_VIDEO_HEXIUM_ORION is not set
1075# CONFIG_VIDEO_HEXIUM_GEMINI is not set
1076# CONFIG_VIDEO_CX88 is not set
1077# CONFIG_VIDEO_IVTV is not set
1078# CONFIG_VIDEO_CAFE_CCIC is not set
1079CONFIG_V4L_USB_DRIVERS=y
1080# CONFIG_VIDEO_PVRUSB2 is not set
1081# CONFIG_VIDEO_EM28XX is not set
1082# CONFIG_VIDEO_USBVISION is not set
1083CONFIG_VIDEO_USBVIDEO=m
1084CONFIG_USB_VICAM=m
1085CONFIG_USB_IBMCAM=m
1086CONFIG_USB_KONICAWC=m
1087CONFIG_USB_QUICKCAM_MESSENGER=m
1088CONFIG_USB_ET61X251=m
1089# CONFIG_VIDEO_OVCAMCHIP is not set
1090# CONFIG_USB_W9968CF is not set
1091CONFIG_USB_OV511=m
1092CONFIG_USB_SE401=m
1093CONFIG_USB_SN9C102=m
1094CONFIG_USB_STV680=m
1095CONFIG_USB_ZC0301=m
1096CONFIG_USB_PWC=m
1097# CONFIG_USB_PWC_DEBUG is not set
1098# CONFIG_USB_ZR364XX is not set
1099CONFIG_RADIO_ADAPTERS=y
1100# CONFIG_RADIO_CADET is not set
1101# CONFIG_RADIO_RTRACK is not set
1102# CONFIG_RADIO_RTRACK2 is not set
1103# CONFIG_RADIO_AZTECH is not set
1104# CONFIG_RADIO_GEMTEK is not set
1105# CONFIG_RADIO_GEMTEK_PCI is not set
1106# CONFIG_RADIO_MAXIRADIO is not set
1107# CONFIG_RADIO_MAESTRO is not set
1108# CONFIG_RADIO_SF16FMI is not set
1109# CONFIG_RADIO_SF16FMR2 is not set
1110# CONFIG_RADIO_TERRATEC is not set
1111# CONFIG_RADIO_TRUST is not set
1112# CONFIG_RADIO_TYPHOON is not set
1113# CONFIG_RADIO_ZOLTRIX is not set
1114# CONFIG_USB_DSBR is not set
1115# CONFIG_DVB_CORE is not set
1116CONFIG_DAB=y
1117# CONFIG_USB_DABUSB is not set
1118
1119#
1120# Graphics support
1121#
1122CONFIG_BACKLIGHT_LCD_SUPPORT=y
1123CONFIG_BACKLIGHT_CLASS_DEVICE=y
1124CONFIG_LCD_CLASS_DEVICE=m
1125
1126#
1127# Display device support
1128#
1129# CONFIG_DISPLAY_SUPPORT is not set
1130# CONFIG_VGASTATE is not set
1131CONFIG_FB=y
1132# CONFIG_FIRMWARE_EDID is not set
1133# CONFIG_FB_DDC is not set
1134CONFIG_FB_CFB_FILLRECT=y
1135CONFIG_FB_CFB_COPYAREA=y
1136CONFIG_FB_CFB_IMAGEBLIT=y
1137# CONFIG_FB_SYS_FILLRECT is not set
1138# CONFIG_FB_SYS_COPYAREA is not set
1139# CONFIG_FB_SYS_IMAGEBLIT is not set
1140# CONFIG_FB_SYS_FOPS is not set
1141CONFIG_FB_DEFERRED_IO=y
1142# CONFIG_FB_SVGALIB is not set
1143# CONFIG_FB_MACMODES is not set
1144CONFIG_FB_BACKLIGHT=y
1145CONFIG_FB_MODE_HELPERS=y
1146# CONFIG_FB_TILEBLITTING is not set
1147
1148#
1149# Frame buffer hardware drivers
1150#
1151# CONFIG_FB_CIRRUS is not set
1152# CONFIG_FB_PM2 is not set
1153# CONFIG_FB_CYBER2000 is not set
1154# CONFIG_FB_ASILIANT is not set
1155# CONFIG_FB_IMSTT is not set
1156# CONFIG_FB_S1D13XXX is not set
1157# CONFIG_FB_NVIDIA is not set
1158# CONFIG_FB_RIVA is not set
1159# CONFIG_FB_MATROX is not set
1160CONFIG_FB_RADEON=y
1161# CONFIG_FB_RADEON_I2C is not set
1162CONFIG_FB_RADEON_BACKLIGHT=y
1163# CONFIG_FB_RADEON_DEBUG is not set
1164# CONFIG_FB_ATY128 is not set
1165# CONFIG_FB_ATY is not set
1166# CONFIG_FB_S3 is not set
1167# CONFIG_FB_SAVAGE is not set
1168# CONFIG_FB_SIS is not set
1169# CONFIG_FB_NEOMAGIC is not set
1170# CONFIG_FB_KYRO is not set
1171# CONFIG_FB_3DFX is not set
1172# CONFIG_FB_VOODOO1 is not set
1173# CONFIG_FB_SMIVGX is not set
1174# CONFIG_FB_VT8623 is not set
1175# CONFIG_FB_TRIDENT is not set
1176# CONFIG_FB_ARK is not set
1177# CONFIG_FB_PM3 is not set
1178# CONFIG_FB_VIRTUAL is not set
1179
1180#
1181# Console display driver support
1182#
1183# CONFIG_VGA_CONSOLE is not set
1184# CONFIG_MDA_CONSOLE is not set
1185CONFIG_DUMMY_CONSOLE=y
1186CONFIG_FRAMEBUFFER_CONSOLE=y
1187# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
1188# CONFIG_FONTS is not set
1189CONFIG_FONT_8x8=y
1190CONFIG_FONT_8x16=y
1191# CONFIG_LOGO is not set
1192
1193#
1194# Sound
1195#
1196CONFIG_SOUND=y
1197
1198#
1199# Advanced Linux Sound Architecture
1200#
1201CONFIG_SND=m
1202CONFIG_SND_TIMER=m
1203CONFIG_SND_PCM=m
1204CONFIG_SND_RAWMIDI=m
1205CONFIG_SND_SEQUENCER=m
1206CONFIG_SND_SEQ_DUMMY=m
1207CONFIG_SND_OSSEMUL=y
1208CONFIG_SND_MIXER_OSS=m
1209CONFIG_SND_PCM_OSS=m
1210CONFIG_SND_PCM_OSS_PLUGINS=y
1211CONFIG_SND_SEQUENCER_OSS=y
1212CONFIG_SND_RTCTIMER=m
1213CONFIG_SND_SEQ_RTCTIMER_DEFAULT=y
1214# CONFIG_SND_DYNAMIC_MINORS is not set
1215CONFIG_SND_SUPPORT_OLD_API=y
1216CONFIG_SND_VERBOSE_PROCFS=y
1217# CONFIG_SND_VERBOSE_PRINTK is not set
1218# CONFIG_SND_DEBUG is not set
1219
1220#
1221# Generic devices
1222#
1223CONFIG_SND_MPU401_UART=m
1224CONFIG_SND_AC97_CODEC=m
1225# CONFIG_SND_DUMMY is not set
1226# CONFIG_SND_VIRMIDI is not set
1227# CONFIG_SND_MTPAV is not set
1228# CONFIG_SND_SERIAL_U16550 is not set
1229# CONFIG_SND_MPU401 is not set
1230
1231#
1232# PCI devices
1233#
1234# CONFIG_SND_AD1889 is not set
1235# CONFIG_SND_ALS300 is not set
1236# CONFIG_SND_ALI5451 is not set
1237# CONFIG_SND_ATIIXP is not set
1238# CONFIG_SND_ATIIXP_MODEM is not set
1239# CONFIG_SND_AU8810 is not set
1240# CONFIG_SND_AU8820 is not set
1241# CONFIG_SND_AU8830 is not set
1242# CONFIG_SND_AZT3328 is not set
1243# CONFIG_SND_BT87X is not set
1244# CONFIG_SND_CA0106 is not set
1245# CONFIG_SND_CMIPCI is not set
1246# CONFIG_SND_CS4281 is not set
1247# CONFIG_SND_CS46XX is not set
1248# CONFIG_SND_DARLA20 is not set
1249# CONFIG_SND_GINA20 is not set
1250# CONFIG_SND_LAYLA20 is not set
1251# CONFIG_SND_DARLA24 is not set
1252# CONFIG_SND_GINA24 is not set
1253# CONFIG_SND_LAYLA24 is not set
1254# CONFIG_SND_MONA is not set
1255# CONFIG_SND_MIA is not set
1256# CONFIG_SND_ECHO3G is not set
1257# CONFIG_SND_INDIGO is not set
1258# CONFIG_SND_INDIGOIO is not set
1259# CONFIG_SND_INDIGODJ is not set
1260# CONFIG_SND_EMU10K1 is not set
1261# CONFIG_SND_EMU10K1X is not set
1262# CONFIG_SND_ENS1370 is not set
1263# CONFIG_SND_ENS1371 is not set
1264# CONFIG_SND_ES1938 is not set
1265# CONFIG_SND_ES1968 is not set
1266# CONFIG_SND_FM801 is not set
1267# CONFIG_SND_HDA_INTEL is not set
1268# CONFIG_SND_HDSP is not set
1269# CONFIG_SND_HDSPM is not set
1270# CONFIG_SND_ICE1712 is not set
1271# CONFIG_SND_ICE1724 is not set
1272# CONFIG_SND_INTEL8X0 is not set
1273# CONFIG_SND_INTEL8X0M is not set
1274# CONFIG_SND_KORG1212 is not set
1275# CONFIG_SND_MAESTRO3 is not set
1276# CONFIG_SND_MIXART is not set
1277# CONFIG_SND_NM256 is not set
1278# CONFIG_SND_PCXHR is not set
1279# CONFIG_SND_RIPTIDE is not set
1280# CONFIG_SND_RME32 is not set
1281# CONFIG_SND_RME96 is not set
1282# CONFIG_SND_RME9652 is not set
1283# CONFIG_SND_SONICVIBES is not set
1284# CONFIG_SND_TRIDENT is not set
1285CONFIG_SND_VIA82XX=m
1286# CONFIG_SND_VIA82XX_MODEM is not set
1287# CONFIG_SND_VX222 is not set
1288# CONFIG_SND_YMFPCI is not set
1289# CONFIG_SND_AC97_POWER_SAVE is not set
1290
1291#
1292# ALSA MIPS devices
1293#
1294
1295#
1296# USB devices
1297#
1298# CONFIG_SND_USB_AUDIO is not set
1299# CONFIG_SND_USB_CAIAQ is not set
1300
1301#
1302# System on Chip audio support
1303#
1304# CONFIG_SND_SOC is not set
1305
1306#
1307# Open Sound System
1308#
1309# CONFIG_SOUND_PRIME is not set
1310CONFIG_AC97_BUS=m
1311
1312#
1313# HID Devices
1314#
1315CONFIG_HID=y
1316# CONFIG_HID_DEBUG is not set
1317
1318#
1319# USB Input Devices
1320#
1321CONFIG_USB_HID=m
1322# CONFIG_USB_HIDINPUT_POWERBOOK is not set
1323# CONFIG_HID_FF is not set
1324CONFIG_USB_HIDDEV=y
1325
1326#
1327# USB HID Boot Protocol drivers
1328#
1329# CONFIG_USB_KBD is not set
1330# CONFIG_USB_MOUSE is not set
1331
1332#
1333# USB support
1334#
1335CONFIG_USB_ARCH_HAS_HCD=y
1336CONFIG_USB_ARCH_HAS_OHCI=y
1337CONFIG_USB_ARCH_HAS_EHCI=y
1338CONFIG_USB=y
1339# CONFIG_USB_DEBUG is not set
1340
1341#
1342# Miscellaneous USB options
1343#
1344CONFIG_USB_DEVICEFS=y
1345# CONFIG_USB_DEVICE_CLASS is not set
1346# CONFIG_USB_DYNAMIC_MINORS is not set
1347# CONFIG_USB_SUSPEND is not set
1348# CONFIG_USB_OTG is not set
1349
1350#
1351# USB Host Controller Drivers
1352#
1353CONFIG_USB_EHCI_HCD=y
1354CONFIG_USB_EHCI_SPLIT_ISO=y
1355CONFIG_USB_EHCI_ROOT_HUB_TT=y
1356CONFIG_USB_EHCI_TT_NEWSCHED=y
1357# CONFIG_USB_EHCI_BIG_ENDIAN_MMIO is not set
1358# CONFIG_USB_ISP116X_HCD is not set
1359CONFIG_USB_OHCI_HCD=y
1360# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
1361# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
1362CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1363CONFIG_USB_UHCI_HCD=m
1364# CONFIG_USB_SL811_HCD is not set
1365
1366#
1367# USB Device Class drivers
1368#
1369CONFIG_USB_ACM=y
1370CONFIG_USB_PRINTER=y
1371
1372#
1373# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
1374#
1375
1376#
1377# may also be needed; see USB_STORAGE Help for more information
1378#
1379CONFIG_USB_STORAGE=y
1380# CONFIG_USB_STORAGE_DEBUG is not set
1381# CONFIG_USB_STORAGE_DATAFAB is not set
1382# CONFIG_USB_STORAGE_FREECOM is not set
1383# CONFIG_USB_STORAGE_ISD200 is not set
1384# CONFIG_USB_STORAGE_DPCM is not set
1385# CONFIG_USB_STORAGE_USBAT is not set
1386# CONFIG_USB_STORAGE_SDDR09 is not set
1387# CONFIG_USB_STORAGE_SDDR55 is not set
1388# CONFIG_USB_STORAGE_JUMPSHOT is not set
1389# CONFIG_USB_STORAGE_ALAUDA is not set
1390# CONFIG_USB_STORAGE_KARMA is not set
1391CONFIG_USB_LIBUSUAL=y
1392
1393#
1394# USB Imaging devices
1395#
1396# CONFIG_USB_MDC800 is not set
1397# CONFIG_USB_MICROTEK is not set
1398# CONFIG_USB_MON is not set
1399
1400#
1401# USB port drivers
1402#
1403
1404#
1405# USB Serial Converter support
1406#
1407# CONFIG_USB_SERIAL is not set
1408
1409#
1410# USB Miscellaneous drivers
1411#
1412# CONFIG_USB_EMI62 is not set
1413# CONFIG_USB_EMI26 is not set
1414# CONFIG_USB_ADUTUX is not set
1415# CONFIG_USB_AUERSWALD is not set
1416# CONFIG_USB_RIO500 is not set
1417# CONFIG_USB_LEGOTOWER is not set
1418# CONFIG_USB_LCD is not set
1419# CONFIG_USB_BERRY_CHARGE is not set
1420# CONFIG_USB_LED is not set
1421# CONFIG_USB_CYPRESS_CY7C63 is not set
1422# CONFIG_USB_CYTHERM is not set
1423# CONFIG_USB_PHIDGET is not set
1424# CONFIG_USB_IDMOUSE is not set
1425# CONFIG_USB_FTDI_ELAN is not set
1426# CONFIG_USB_APPLEDISPLAY is not set
1427# CONFIG_USB_SISUSBVGA is not set
1428# CONFIG_USB_LD is not set
1429# CONFIG_USB_TRANCEVIBRATOR is not set
1430# CONFIG_USB_IOWARRIOR is not set
1431# CONFIG_USB_TEST is not set
1432
1433#
1434# USB DSL modem support
1435#
1436
1437#
1438# USB Gadget Support
1439#
1440# CONFIG_USB_GADGET is not set
1441# CONFIG_MMC is not set
1442
1443#
1444# LED devices
1445#
1446# CONFIG_NEW_LEDS is not set
1447
1448#
1449# LED drivers
1450#
1451
1452#
1453# LED Triggers
1454#
1455
1456#
1457# InfiniBand support
1458#
1459# CONFIG_INFINIBAND is not set
1460
1461#
1462# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
1463#
1464
1465#
1466# Real Time Clock
1467#
1468# CONFIG_RTC_CLASS is not set
1469
1470#
1471# DMA Engine support
1472#
1473# CONFIG_DMA_ENGINE is not set
1474
1475#
1476# DMA Clients
1477#
1478
1479#
1480# DMA Devices
1481#
1482
1483#
1484# File systems
1485#
1486CONFIG_EXT2_FS=y
1487# CONFIG_EXT2_FS_XATTR is not set
1488CONFIG_EXT2_FS_XIP=y
1489CONFIG_FS_XIP=y
1490CONFIG_EXT3_FS=y
1491# CONFIG_EXT3_FS_XATTR is not set
1492# CONFIG_EXT4DEV_FS is not set
1493CONFIG_JBD=y
1494# CONFIG_JBD_DEBUG is not set
1495CONFIG_REISERFS_FS=m
1496# CONFIG_REISERFS_CHECK is not set
1497# CONFIG_REISERFS_PROC_INFO is not set
1498# CONFIG_REISERFS_FS_XATTR is not set
1499# CONFIG_JFS_FS is not set
1500CONFIG_FS_POSIX_ACL=y
1501# CONFIG_XFS_FS is not set
1502# CONFIG_GFS2_FS is not set
1503# CONFIG_OCFS2_FS is not set
1504# CONFIG_MINIX_FS is not set
1505# CONFIG_ROMFS_FS is not set
1506CONFIG_INOTIFY=y
1507CONFIG_INOTIFY_USER=y
1508# CONFIG_QUOTA is not set
1509CONFIG_DNOTIFY=y
1510CONFIG_AUTOFS_FS=y
1511CONFIG_AUTOFS4_FS=y
1512CONFIG_FUSE_FS=y
1513
1514#
1515# CD-ROM/DVD Filesystems
1516#
1517CONFIG_ISO9660_FS=m
1518CONFIG_JOLIET=y
1519CONFIG_ZISOFS=y
1520CONFIG_UDF_FS=m
1521CONFIG_UDF_NLS=y
1522
1523#
1524# DOS/FAT/NT Filesystems
1525#
1526CONFIG_FAT_FS=m
1527CONFIG_MSDOS_FS=m
1528CONFIG_VFAT_FS=m
1529CONFIG_FAT_DEFAULT_CODEPAGE=936
1530CONFIG_FAT_DEFAULT_IOCHARSET="utf8"
1531CONFIG_NTFS_FS=m
1532# CONFIG_NTFS_DEBUG is not set
1533CONFIG_NTFS_RW=y
1534
1535#
1536# Pseudo filesystems
1537#
1538CONFIG_PROC_FS=y
1539CONFIG_PROC_KCORE=y
1540CONFIG_PROC_SYSCTL=y
1541CONFIG_SYSFS=y
1542CONFIG_TMPFS=y
1543# CONFIG_TMPFS_POSIX_ACL is not set
1544# CONFIG_HUGETLB_PAGE is not set
1545CONFIG_RAMFS=y
1546# CONFIG_CONFIGFS_FS is not set
1547
1548#
1549# Miscellaneous filesystems
1550#
1551# CONFIG_ADFS_FS is not set
1552# CONFIG_AFFS_FS is not set
1553# CONFIG_HFS_FS is not set
1554# CONFIG_HFSPLUS_FS is not set
1555# CONFIG_BEFS_FS is not set
1556# CONFIG_BFS_FS is not set
1557# CONFIG_EFS_FS is not set
1558# CONFIG_JFFS2_FS is not set
1559# CONFIG_CRAMFS is not set
1560# CONFIG_VXFS_FS is not set
1561# CONFIG_HPFS_FS is not set
1562# CONFIG_QNX4FS_FS is not set
1563# CONFIG_SYSV_FS is not set
1564# CONFIG_UFS_FS is not set
1565
1566#
1567# Network File Systems
1568#
1569CONFIG_NFS_FS=m
1570CONFIG_NFS_V3=y
1571CONFIG_NFS_V3_ACL=y
1572CONFIG_NFS_V4=y
1573CONFIG_NFS_DIRECTIO=y
1574CONFIG_NFSD=m
1575CONFIG_NFSD_V2_ACL=y
1576CONFIG_NFSD_V3=y
1577CONFIG_NFSD_V3_ACL=y
1578CONFIG_NFSD_V4=y
1579CONFIG_NFSD_TCP=y
1580CONFIG_LOCKD=m
1581CONFIG_LOCKD_V4=y
1582CONFIG_EXPORTFS=m
1583CONFIG_NFS_ACL_SUPPORT=m
1584CONFIG_NFS_COMMON=y
1585CONFIG_SUNRPC=m
1586CONFIG_SUNRPC_GSS=m
1587# CONFIG_SUNRPC_BIND34 is not set
1588CONFIG_RPCSEC_GSS_KRB5=m
1589# CONFIG_RPCSEC_GSS_SPKM3 is not set
1590CONFIG_SMB_FS=m
1591CONFIG_SMB_NLS_DEFAULT=y
1592CONFIG_SMB_NLS_REMOTE="cp936"
1593CONFIG_CIFS=m
1594CONFIG_CIFS_STATS=y
1595CONFIG_CIFS_STATS2=y
1596CONFIG_CIFS_WEAK_PW_HASH=y
1597CONFIG_CIFS_XATTR=y
1598CONFIG_CIFS_POSIX=y
1599CONFIG_CIFS_DEBUG2=y
1600CONFIG_CIFS_EXPERIMENTAL=y
1601# CONFIG_NCP_FS is not set
1602# CONFIG_CODA_FS is not set
1603# CONFIG_AFS_FS is not set
1604# CONFIG_9P_FS is not set
1605
1606#
1607# Partition Types
1608#
1609CONFIG_PARTITION_ADVANCED=y
1610# CONFIG_ACORN_PARTITION is not set
1611# CONFIG_OSF_PARTITION is not set
1612# CONFIG_AMIGA_PARTITION is not set
1613# CONFIG_ATARI_PARTITION is not set
1614# CONFIG_MAC_PARTITION is not set
1615CONFIG_MSDOS_PARTITION=y
1616# CONFIG_BSD_DISKLABEL is not set
1617# CONFIG_MINIX_SUBPARTITION is not set
1618# CONFIG_SOLARIS_X86_PARTITION is not set
1619# CONFIG_UNIXWARE_DISKLABEL is not set
1620# CONFIG_LDM_PARTITION is not set
1621# CONFIG_SGI_PARTITION is not set
1622# CONFIG_ULTRIX_PARTITION is not set
1623# CONFIG_SUN_PARTITION is not set
1624# CONFIG_KARMA_PARTITION is not set
1625# CONFIG_EFI_PARTITION is not set
1626# CONFIG_SYSV68_PARTITION is not set
1627
1628#
1629# Native Language Support
1630#
1631CONFIG_NLS=y
1632CONFIG_NLS_DEFAULT="utf8"
1633# CONFIG_NLS_CODEPAGE_437 is not set
1634# CONFIG_NLS_CODEPAGE_737 is not set
1635# CONFIG_NLS_CODEPAGE_775 is not set
1636# CONFIG_NLS_CODEPAGE_850 is not set
1637# CONFIG_NLS_CODEPAGE_852 is not set
1638# CONFIG_NLS_CODEPAGE_855 is not set
1639# CONFIG_NLS_CODEPAGE_857 is not set
1640# CONFIG_NLS_CODEPAGE_860 is not set
1641# CONFIG_NLS_CODEPAGE_861 is not set
1642# CONFIG_NLS_CODEPAGE_862 is not set
1643# CONFIG_NLS_CODEPAGE_863 is not set
1644# CONFIG_NLS_CODEPAGE_864 is not set
1645# CONFIG_NLS_CODEPAGE_865 is not set
1646# CONFIG_NLS_CODEPAGE_866 is not set
1647# CONFIG_NLS_CODEPAGE_869 is not set
1648CONFIG_NLS_CODEPAGE_936=y
1649# CONFIG_NLS_CODEPAGE_950 is not set
1650# CONFIG_NLS_CODEPAGE_932 is not set
1651# CONFIG_NLS_CODEPAGE_949 is not set
1652# CONFIG_NLS_CODEPAGE_874 is not set
1653# CONFIG_NLS_ISO8859_8 is not set
1654# CONFIG_NLS_CODEPAGE_1250 is not set
1655# CONFIG_NLS_CODEPAGE_1251 is not set
1656# CONFIG_NLS_ASCII is not set
1657CONFIG_NLS_ISO8859_1=y
1658# CONFIG_NLS_ISO8859_2 is not set
1659# CONFIG_NLS_ISO8859_3 is not set
1660# CONFIG_NLS_ISO8859_4 is not set
1661# CONFIG_NLS_ISO8859_5 is not set
1662# CONFIG_NLS_ISO8859_6 is not set
1663# CONFIG_NLS_ISO8859_7 is not set
1664# CONFIG_NLS_ISO8859_9 is not set
1665# CONFIG_NLS_ISO8859_13 is not set
1666# CONFIG_NLS_ISO8859_14 is not set
1667# CONFIG_NLS_ISO8859_15 is not set
1668# CONFIG_NLS_KOI8_R is not set
1669# CONFIG_NLS_KOI8_U is not set
1670CONFIG_NLS_UTF8=y
1671
1672#
1673# Distributed Lock Manager
1674#
1675# CONFIG_DLM is not set
1676
1677#
1678# Profiling support
1679#
1680CONFIG_PROFILING=y
1681CONFIG_OPROFILE=m
1682
1683#
1684# Kernel hacking
1685#
1686CONFIG_TRACE_IRQFLAGS_SUPPORT=y
1687# CONFIG_PRINTK_TIME is not set
1688# CONFIG_ENABLE_MUST_CHECK is not set
1689# CONFIG_MAGIC_SYSRQ is not set
1690# CONFIG_UNUSED_SYMBOLS is not set
1691# CONFIG_DEBUG_FS is not set
1692# CONFIG_HEADERS_CHECK is not set
1693# CONFIG_DEBUG_KERNEL is not set
1694CONFIG_CROSSCOMPILE=y
1695CONFIG_CMDLINE=""
1696
1697#
1698# Security options
1699#
1700# CONFIG_KEYS is not set
1701# CONFIG_SECURITY is not set
1702
1703#
1704# Cryptographic options
1705#
1706CONFIG_CRYPTO=y
1707CONFIG_CRYPTO_ALGAPI=y
1708CONFIG_CRYPTO_BLKCIPHER=m
1709CONFIG_CRYPTO_HASH=y
1710CONFIG_CRYPTO_MANAGER=y
1711CONFIG_CRYPTO_HMAC=y
1712# CONFIG_CRYPTO_XCBC is not set
1713# CONFIG_CRYPTO_NULL is not set
1714# CONFIG_CRYPTO_MD4 is not set
1715CONFIG_CRYPTO_MD5=m
1716CONFIG_CRYPTO_SHA1=m
1717# CONFIG_CRYPTO_SHA256 is not set
1718# CONFIG_CRYPTO_SHA512 is not set
1719# CONFIG_CRYPTO_WP512 is not set
1720# CONFIG_CRYPTO_TGR192 is not set
1721# CONFIG_CRYPTO_GF128MUL is not set
1722CONFIG_CRYPTO_ECB=m
1723CONFIG_CRYPTO_CBC=m
1724CONFIG_CRYPTO_PCBC=m
1725# CONFIG_CRYPTO_LRW is not set
1726# CONFIG_CRYPTO_CRYPTD is not set
1727CONFIG_CRYPTO_DES=m
1728# CONFIG_CRYPTO_FCRYPT is not set
1729# CONFIG_CRYPTO_BLOWFISH is not set
1730# CONFIG_CRYPTO_TWOFISH is not set
1731# CONFIG_CRYPTO_SERPENT is not set
1732# CONFIG_CRYPTO_AES is not set
1733# CONFIG_CRYPTO_CAST5 is not set
1734# CONFIG_CRYPTO_CAST6 is not set
1735# CONFIG_CRYPTO_TEA is not set
1736CONFIG_CRYPTO_ARC4=m
1737# CONFIG_CRYPTO_KHAZAD is not set
1738# CONFIG_CRYPTO_ANUBIS is not set
1739CONFIG_CRYPTO_DEFLATE=m
1740# CONFIG_CRYPTO_MICHAEL_MIC is not set
1741# CONFIG_CRYPTO_CRC32C is not set
1742# CONFIG_CRYPTO_CAMELLIA is not set
1743# CONFIG_CRYPTO_TEST is not set
1744
1745#
1746# Hardware crypto devices
1747#
1748
1749#
1750# Library routines
1751#
1752CONFIG_BITREVERSE=y
1753CONFIG_CRC_CCITT=y
1754# CONFIG_CRC16 is not set
1755# CONFIG_CRC_ITU_T is not set
1756CONFIG_CRC32=y
1757# CONFIG_LIBCRC32C is not set
1758CONFIG_ZLIB_INFLATE=m
1759CONFIG_ZLIB_DEFLATE=m
1760CONFIG_TEXTSEARCH=y
1761CONFIG_TEXTSEARCH_KMP=m
1762CONFIG_TEXTSEARCH_BM=m
1763CONFIG_TEXTSEARCH_FSM=m
1764CONFIG_PLIST=y
1765CONFIG_HAS_IOMEM=y
1766CONFIG_HAS_IOPORT=y
1767CONFIG_HAS_DMA=y
diff --git a/arch/mips/lemote/lm2e/Makefile b/arch/mips/lemote/lm2e/Makefile
new file mode 100644
index 000000000000..fb1b48c48cb3
--- /dev/null
+++ b/arch/mips/lemote/lm2e/Makefile
@@ -0,0 +1,7 @@
1#
2# Makefile for Lemote Fulong mini-PC board.
3#
4
5obj-y += setup.o prom.o reset.o irq.o pci.o bonito-irq.o dbg_io.o mem.o
6EXTRA_AFLAGS := $(CFLAGS)
7
diff --git a/arch/mips/lemote/lm2e/bonito-irq.c b/arch/mips/lemote/lm2e/bonito-irq.c
new file mode 100644
index 000000000000..8fc3bce7075b
--- /dev/null
+++ b/arch/mips/lemote/lm2e/bonito-irq.c
@@ -0,0 +1,74 @@
1/*
2 * Copyright 2001 MontaVista Software Inc.
3 * Author: Jun Sun, jsun@mvista.com or jsun@junsun.net
4 * Copyright (C) 2000, 2001 Ralf Baechle (ralf@gnu.org)
5 *
6 * Copyright (C) 2007 Lemote Inc. & Insititute of Computing Technology
7 * Author: Fuxin Zhang, zhangfx@lemote.com
8 *
9 * This program is free software; you can redistribute it and/or modify it
10 * under the terms of the GNU General Public License as published by the
11 * Free Software Foundation; either version 2 of the License, or (at your
12 * option) any later version.
13 *
14 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
15 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
16 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
17 * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
18 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
19 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
20 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
21 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 *
25 * You should have received a copy of the GNU General Public License along
26 * with this program; if not, write to the Free Software Foundation, Inc.,
27 * 675 Mass Ave, Cambridge, MA 02139, USA.
28 *
29 */
30#include <linux/errno.h>
31#include <linux/init.h>
32#include <linux/io.h>
33#include <linux/types.h>
34#include <linux/interrupt.h>
35#include <linux/irq.h>
36
37#include <asm/mips-boards/bonito64.h>
38
39
40static inline void bonito_irq_enable(unsigned int irq)
41{
42 BONITO_INTENSET = (1 << (irq - BONITO_IRQ_BASE));
43 mmiowb();
44}
45
46static inline void bonito_irq_disable(unsigned int irq)
47{
48 BONITO_INTENCLR = (1 << (irq - BONITO_IRQ_BASE));
49 mmiowb();
50}
51
52static struct irq_chip bonito_irq_type = {
53 .name = "bonito_irq",
54 .ack = bonito_irq_disable,
55 .mask = bonito_irq_disable,
56 .mask_ack = bonito_irq_disable,
57 .unmask = bonito_irq_enable,
58};
59
60static struct irqaction dma_timeout_irqaction = {
61 .handler = no_action,
62 .name = "dma_timeout",
63};
64
65void bonito_irq_init(void)
66{
67 u32 i;
68
69 for (i = BONITO_IRQ_BASE; i < BONITO_IRQ_BASE + 32; i++) {
70 set_irq_chip_and_handler(i, &bonito_irq_type, handle_level_irq);
71 }
72
73 setup_irq(BONITO_IRQ_BASE + 10, &dma_timeout_irqaction);
74}
diff --git a/arch/mips/lemote/lm2e/dbg_io.c b/arch/mips/lemote/lm2e/dbg_io.c
new file mode 100644
index 000000000000..6c95da3ca76f
--- /dev/null
+++ b/arch/mips/lemote/lm2e/dbg_io.c
@@ -0,0 +1,146 @@
1/*
2 * Copyright 2001 MontaVista Software Inc.
3 * Author: Jun Sun, jsun@mvista.com or jsun@junsun.net
4 * Copyright (C) 2000, 2001 Ralf Baechle (ralf@gnu.org)
5 *
6 * Copyright (C) 2007 Lemote Inc. & Insititute of Computing Technology
7 * Author: Fuxin Zhang, zhangfx@lemote.com
8 *
9 * This program is free software; you can redistribute it and/or modify it
10 * under the terms of the GNU General Public License as published by the
11 * Free Software Foundation; either version 2 of the License, or (at your
12 * option) any later version.
13 *
14 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
15 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
16 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
17 * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
18 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
19 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
20 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
21 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 *
25 * You should have received a copy of the GNU General Public License along
26 * with this program; if not, write to the Free Software Foundation, Inc.,
27 * 675 Mass Ave, Cambridge, MA 02139, USA.
28 *
29 */
30
31#include <linux/io.h>
32#include <linux/init.h>
33#include <linux/types.h>
34
35#include <asm/serial.h>
36
37#define UART16550_BAUD_2400 2400
38#define UART16550_BAUD_4800 4800
39#define UART16550_BAUD_9600 9600
40#define UART16550_BAUD_19200 19200
41#define UART16550_BAUD_38400 38400
42#define UART16550_BAUD_57600 57600
43#define UART16550_BAUD_115200 115200
44
45#define UART16550_PARITY_NONE 0
46#define UART16550_PARITY_ODD 0x08
47#define UART16550_PARITY_EVEN 0x18
48#define UART16550_PARITY_MARK 0x28
49#define UART16550_PARITY_SPACE 0x38
50
51#define UART16550_DATA_5BIT 0x0
52#define UART16550_DATA_6BIT 0x1
53#define UART16550_DATA_7BIT 0x2
54#define UART16550_DATA_8BIT 0x3
55
56#define UART16550_STOP_1BIT 0x0
57#define UART16550_STOP_2BIT 0x4
58
59/* ----------------------------------------------------- */
60
61/* === CONFIG === */
62#ifdef CONFIG_64BIT
63#define BASE (0xffffffffbfd003f8)
64#else
65#define BASE (0xbfd003f8)
66#endif
67
68#define MAX_BAUD BASE_BAUD
69/* === END OF CONFIG === */
70
71#define REG_OFFSET 1
72
73/* register offset */
74#define OFS_RCV_BUFFER 0
75#define OFS_TRANS_HOLD 0
76#define OFS_SEND_BUFFER 0
77#define OFS_INTR_ENABLE (1*REG_OFFSET)
78#define OFS_INTR_ID (2*REG_OFFSET)
79#define OFS_DATA_FORMAT (3*REG_OFFSET)
80#define OFS_LINE_CONTROL (3*REG_OFFSET)
81#define OFS_MODEM_CONTROL (4*REG_OFFSET)
82#define OFS_RS232_OUTPUT (4*REG_OFFSET)
83#define OFS_LINE_STATUS (5*REG_OFFSET)
84#define OFS_MODEM_STATUS (6*REG_OFFSET)
85#define OFS_RS232_INPUT (6*REG_OFFSET)
86#define OFS_SCRATCH_PAD (7*REG_OFFSET)
87
88#define OFS_DIVISOR_LSB (0*REG_OFFSET)
89#define OFS_DIVISOR_MSB (1*REG_OFFSET)
90
91/* memory-mapped read/write of the port */
92#define UART16550_READ(y) readb((char *)BASE + (y))
93#define UART16550_WRITE(y, z) writeb(z, (char *)BASE + (y))
94
95void debugInit(u32 baud, u8 data, u8 parity, u8 stop)
96{
97 u32 divisor;
98
99 /* disable interrupts */
100 UART16550_WRITE(OFS_INTR_ENABLE, 0);
101
102 /* set up buad rate */
103 /* set DIAB bit */
104 UART16550_WRITE(OFS_LINE_CONTROL, 0x80);
105
106 /* set divisor */
107 divisor = MAX_BAUD / baud;
108 UART16550_WRITE(OFS_DIVISOR_LSB, divisor & 0xff);
109 UART16550_WRITE(OFS_DIVISOR_MSB, (divisor & 0xff00) >> 8);
110
111 /* clear DIAB bit */
112 UART16550_WRITE(OFS_LINE_CONTROL, 0x0);
113
114 /* set data format */
115 UART16550_WRITE(OFS_DATA_FORMAT, data | parity | stop);
116}
117
118static int remoteDebugInitialized;
119
120u8 getDebugChar(void)
121{
122 if (!remoteDebugInitialized) {
123 remoteDebugInitialized = 1;
124 debugInit(UART16550_BAUD_115200,
125 UART16550_DATA_8BIT,
126 UART16550_PARITY_NONE, UART16550_STOP_1BIT);
127 }
128
129 while ((UART16550_READ(OFS_LINE_STATUS) & 0x1) == 0) ;
130 return UART16550_READ(OFS_RCV_BUFFER);
131}
132
133int putDebugChar(u8 byte)
134{
135 if (!remoteDebugInitialized) {
136 remoteDebugInitialized = 1;
137 /*
138 debugInit(UART16550_BAUD_115200,
139 UART16550_DATA_8BIT,
140 UART16550_PARITY_NONE, UART16550_STOP_1BIT); */
141 }
142
143 while ((UART16550_READ(OFS_LINE_STATUS) & 0x20) == 0) ;
144 UART16550_WRITE(OFS_SEND_BUFFER, byte);
145 return 1;
146}
diff --git a/arch/mips/lemote/lm2e/irq.c b/arch/mips/lemote/lm2e/irq.c
new file mode 100644
index 000000000000..05693bceaeaf
--- /dev/null
+++ b/arch/mips/lemote/lm2e/irq.c
@@ -0,0 +1,145 @@
1/*
2 * Copyright (C) 2007 Lemote Inc. & Insititute of Computing Technology
3 * Author: Fuxin Zhang, zhangfx@lemote.com
4 *
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License as published by the
7 * Free Software Foundation; either version 2 of the License, or (at your
8 * option) any later version.
9 *
10 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
11 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
12 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
13 * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
14 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
15 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
16 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
17 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
18 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
19 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
20 *
21 * You should have received a copy of the GNU General Public License along
22 * with this program; if not, write to the Free Software Foundation, Inc.,
23 * 675 Mass Ave, Cambridge, MA 02139, USA.
24 *
25 */
26#include <linux/delay.h>
27#include <linux/io.h>
28#include <linux/irq.h>
29#include <linux/init.h>
30#include <linux/interrupt.h>
31#include <linux/irq.h>
32
33#include <asm/irq_cpu.h>
34#include <asm/i8259.h>
35#include <asm/mipsregs.h>
36#include <asm/mips-boards/bonito64.h>
37
38
39/*
40 * the first level int-handler will jump here if it is a bonito irq
41 */
42static void bonito_irqdispatch(void)
43{
44 u32 int_status;
45 int i;
46
47 /* workaround the IO dma problem: let cpu looping to allow DMA finish */
48 int_status = BONITO_INTISR;
49 if (int_status & (1 << 10)) {
50 while (int_status & (1 << 10)) {
51 udelay(1);
52 int_status = BONITO_INTISR;
53 }
54 }
55
56 /* Get pending sources, masked by current enables */
57 int_status = BONITO_INTISR & BONITO_INTEN;
58
59 if (int_status != 0) {
60 i = __ffs(int_status);
61 int_status &= ~(1 << i);
62 do_IRQ(BONITO_IRQ_BASE + i);
63 }
64}
65
66static void i8259_irqdispatch(void)
67{
68 int irq;
69
70 irq = i8259_irq();
71 if (irq >= 0) {
72 do_IRQ(irq);
73 } else {
74 spurious_interrupt();
75 }
76
77}
78
79asmlinkage void plat_irq_dispatch(void)
80{
81 unsigned int pending = read_c0_cause() & read_c0_status() & ST0_IM;
82
83 if (pending & CAUSEF_IP7) {
84 do_IRQ(MIPS_CPU_IRQ_BASE + 7);
85 } else if (pending & CAUSEF_IP5) {
86 i8259_irqdispatch();
87 } else if (pending & CAUSEF_IP2) {
88 bonito_irqdispatch();
89 } else {
90 spurious_interrupt();
91 }
92}
93
94static struct irqaction cascade_irqaction = {
95 .handler = no_action,
96 .mask = CPU_MASK_NONE,
97 .name = "cascade",
98};
99
100void __init arch_init_irq(void)
101{
102 extern void bonito_irq_init(void);
103
104 /*
105 * Clear all of the interrupts while we change the able around a bit.
106 * int-handler is not on bootstrap
107 */
108 clear_c0_status(ST0_IM | ST0_BEV);
109 local_irq_disable();
110
111 /* most bonito irq should be level triggered */
112 BONITO_INTEDGE = BONITO_ICU_SYSTEMERR | BONITO_ICU_MASTERERR |
113 BONITO_ICU_RETRYERR | BONITO_ICU_MBOXES;
114 BONITO_INTSTEER = 0;
115
116 /*
117 * Mask out all interrupt by writing "1" to all bit position in
118 * the interrupt reset reg.
119 */
120 BONITO_INTENCLR = ~0;
121
122 /* init all controller
123 * 0-15 ------> i8259 interrupt
124 * 16-23 ------> mips cpu interrupt
125 * 32-63 ------> bonito irq
126 */
127
128 /* Sets the first-level interrupt dispatcher. */
129 mips_cpu_irq_init();
130 init_i8259_irqs();
131 bonito_irq_init();
132
133 /*
134 printk("GPIODATA=%x, GPIOIE=%x\n", BONITO_GPIODATA, BONITO_GPIOIE);
135 printk("INTEN=%x, INTSET=%x, INTCLR=%x, INTISR=%x\n",
136 BONITO_INTEN, BONITO_INTENSET,
137 BONITO_INTENCLR, BONITO_INTISR);
138 */
139
140 /* bonito irq at IP2 */
141 setup_irq(MIPS_CPU_IRQ_BASE + 2, &cascade_irqaction);
142 /* 8259 irq at IP5 */
143 setup_irq(MIPS_CPU_IRQ_BASE + 5, &cascade_irqaction);
144
145}
diff --git a/arch/mips/lemote/lm2e/mem.c b/arch/mips/lemote/lm2e/mem.c
new file mode 100644
index 000000000000..16cd21587d34
--- /dev/null
+++ b/arch/mips/lemote/lm2e/mem.c
@@ -0,0 +1,23 @@
1/*
2 * This program is free software; you can redistribute it and/or modify it
3 * under the terms of the GNU General Public License as published by the
4 * Free Software Foundation; either version 2 of the License, or (at your
5 * option) any later version.
6 */
7#include <linux/fs.h>
8#include <linux/fcntl.h>
9#include <linux/mm.h>
10
11/* override of arch/mips/mm/cache.c: __uncached_access */
12int __uncached_access(struct file *file, unsigned long addr)
13{
14 if (file->f_flags & O_SYNC)
15 return 1;
16
17 /*
18 * On the Lemote Loongson 2e system, the peripheral registers
19 * reside between 0x1000:0000 and 0x2000:0000.
20 */
21 return addr >= __pa(high_memory) ||
22 ((addr >= 0x10000000) && (addr < 0x20000000));
23}
diff --git a/arch/mips/lemote/lm2e/pci.c b/arch/mips/lemote/lm2e/pci.c
new file mode 100644
index 000000000000..1ade1cef3899
--- /dev/null
+++ b/arch/mips/lemote/lm2e/pci.c
@@ -0,0 +1,93 @@
1/*
2 * pci.c
3 *
4 * Copyright (C) 2007 Lemote, Inc. & Institute of Computing Technology
5 * Author: Fuxin Zhang, zhangfx@lemote.com
6 *
7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License as published by the
9 * Free Software Foundation; either version 2 of the License, or (at your
10 * option) any later version.
11 *
12 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
13 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
14 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
15 * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
16 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
17 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
18 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
19 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
20 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
21 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
22 *
23 * You should have received a copy of the GNU General Public License along
24 * with this program; if not, write to the Free Software Foundation, Inc.,
25 * 675 Mass Ave, Cambridge, MA 02139, USA.
26 *
27 */
28#include <linux/types.h>
29#include <linux/pci.h>
30#include <linux/kernel.h>
31#include <linux/init.h>
32#include <asm/mips-boards/bonito64.h>
33
34extern struct pci_ops bonito64_pci_ops;
35
36static struct resource loongson2e_pci_mem_resource = {
37 .name = "LOONGSON2E PCI MEM",
38 .start = 0x14000000UL,
39 .end = 0x1fffffffUL,
40 .flags = IORESOURCE_MEM,
41};
42
43static struct resource loongson2e_pci_io_resource = {
44 .name = "LOONGSON2E PCI IO MEM",
45 .start = 0x00004000UL,
46 .end = IO_SPACE_LIMIT,
47 .flags = IORESOURCE_IO,
48};
49
50static struct pci_controller loongson2e_pci_controller = {
51 .pci_ops = &bonito64_pci_ops,
52 .io_resource = &loongson2e_pci_io_resource,
53 .mem_resource = &loongson2e_pci_mem_resource,
54 .mem_offset = 0x00000000UL,
55 .io_offset = 0x00000000UL,
56};
57
58static void __init ict_pcimap(void)
59{
60 /*
61 * local to PCI mapping: [256M,512M] -> [256M,512M]; differ from PMON
62 *
63 * CPU address space [256M,448M] is window for accessing pci space
64 * we set pcimap_lo[0,1,2] to map it to pci space [256M,448M]
65 * pcimap: bit18,pcimap_2; bit[17-12],lo2;bit[11-6],lo1;bit[5-0],lo0
66 */
67 /* 1,00 0110 ,0001 01,00 0000 */
68 BONITO_PCIMAP = 0x46140;
69
70 /* 1, 00 0010, 0000,01, 00 0000 */
71 /* BONITO_PCIMAP = 0x42040; */
72
73 /*
74 * PCI to local mapping: [2G,2G+256M] -> [0,256M]
75 */
76 BONITO_PCIBASE0 = 0x80000000;
77 BONITO_PCIBASE1 = 0x00800000;
78 BONITO_PCIBASE2 = 0x90000000;
79
80}
81
82static int __init pcibios_init(void)
83{
84 extern int pci_probe_only;
85 pci_probe_only = 0;
86
87 ict_pcimap();
88 register_pci_controller(&loongson2e_pci_controller);
89
90 return 0;
91}
92
93arch_initcall(pcibios_init);
diff --git a/arch/mips/lemote/lm2e/prom.c b/arch/mips/lemote/lm2e/prom.c
new file mode 100644
index 000000000000..67312d7acf2a
--- /dev/null
+++ b/arch/mips/lemote/lm2e/prom.c
@@ -0,0 +1,104 @@
1/*
2 * Based on Ocelot Linux port, which is
3 * Copyright 2001 MontaVista Software Inc.
4 * Author: jsun@mvista.com or jsun@junsun.net
5 *
6 * Copyright 2003 ICT CAS
7 * Author: Michael Guo <guoyi@ict.ac.cn>
8 *
9 * Copyright (C) 2007 Lemote Inc. & Insititute of Computing Technology
10 * Author: Fuxin Zhang, zhangfx@lemote.com
11 *
12 * This program is free software; you can redistribute it and/or modify it
13 * under the terms of the GNU General Public License as published by the
14 * Free Software Foundation; either version 2 of the License, or (at your
15 * option) any later version.
16 */
17#include <linux/init.h>
18#include <linux/mm.h>
19#include <linux/sched.h>
20#include <linux/bootmem.h>
21
22#include <asm/addrspace.h>
23#include <asm/bootinfo.h>
24
25extern unsigned long bus_clock;
26extern unsigned long cpu_clock;
27extern unsigned int memsize, highmemsize;
28extern int putDebugChar(unsigned char byte);
29
30static int argc;
31/* pmon passes arguments in 32bit pointers */
32static int *arg;
33static int *env;
34
35const char *get_system_type(void)
36{
37 return "lemote-fulong";
38}
39
40void __init prom_init_cmdline(void)
41{
42 int i;
43 long l;
44
45 /* arg[0] is "g", the rest is boot parameters */
46 arcs_cmdline[0] = '\0';
47 for (i = 1; i < argc; i++) {
48 l = (long)arg[i];
49 if (strlen(arcs_cmdline) + strlen(((char *)l) + 1)
50 >= sizeof(arcs_cmdline))
51 break;
52 strcat(arcs_cmdline, ((char *)l));
53 strcat(arcs_cmdline, " ");
54 }
55}
56
57void __init prom_init(void)
58{
59 long l;
60 argc = fw_arg0;
61 arg = (int *)fw_arg1;
62 env = (int *)fw_arg2;
63
64 mips_machgroup = MACH_GROUP_LEMOTE;
65 mips_machtype = MACH_LEMOTE_FULONG;
66
67 prom_init_cmdline();
68
69 if ((strstr(arcs_cmdline, "console=")) == NULL)
70 strcat(arcs_cmdline, " console=ttyS0,115200");
71 if ((strstr(arcs_cmdline, "root=")) == NULL)
72 strcat(arcs_cmdline, " root=/dev/hda1");
73
74#define parse_even_earlier(res, option, p) \
75do { \
76 if (strncmp(option, (char *)p, strlen(option)) == 0) \
77 res = simple_strtol((char *)p + strlen(option"="), \
78 NULL, 10); \
79} while (0)
80
81 l = (long)*env;
82 while (l != 0) {
83 parse_even_earlier(bus_clock, "busclock", l);
84 parse_even_earlier(cpu_clock, "cpuclock", l);
85 parse_even_earlier(memsize, "memsize", l);
86 parse_even_earlier(highmemsize, "highmemsize", l);
87 env++;
88 l = (long)*env;
89 }
90 if (memsize == 0)
91 memsize = 256;
92
93 pr_info("busclock=%ld, cpuclock=%ld,memsize=%d,highmemsize=%d\n",
94 bus_clock, cpu_clock, memsize, highmemsize);
95}
96
97void __init prom_free_prom_memory(void)
98{
99}
100
101void prom_putchar(char c)
102{
103 putDebugChar(c);
104}
diff --git a/arch/mips/lemote/lm2e/reset.c b/arch/mips/lemote/lm2e/reset.c
new file mode 100644
index 000000000000..099387a3827a
--- /dev/null
+++ b/arch/mips/lemote/lm2e/reset.c
@@ -0,0 +1,41 @@
1/*
2 * This program is free software; you can redistribute it and/or modify it
3 * under the terms of the GNU General Public License as published by the
4 * Free Software Foundation; either version 2 of the License, or (at your
5 * option) any later version.
6 *
7 * Copyright (C) 2007 Lemote, Inc. & Institute of Computing Technology
8 * Author: Fuxin Zhang, zhangfx@lemote.com
9 */
10#include <linux/pm.h>
11
12#include <asm/reboot.h>
13
14static void loongson2e_restart(char *command)
15{
16#ifdef CONFIG_32BIT
17 *(unsigned long *)0xbfe00104 &= ~(1 << 2);
18 *(unsigned long *)0xbfe00104 |= (1 << 2);
19#else
20 *(unsigned long *)0xffffffffbfe00104 &= ~(1 << 2);
21 *(unsigned long *)0xffffffffbfe00104 |= (1 << 2);
22#endif
23 __asm__ __volatile__("jr\t%0"::"r"(0xbfc00000));
24}
25
26static void loongson2e_halt(void)
27{
28 while (1) ;
29}
30
31static void loongson2e_power_off(void)
32{
33 loongson2e_halt();
34}
35
36void mips_reboot_setup(void)
37{
38 _machine_restart = loongson2e_restart;
39 _machine_halt = loongson2e_halt;
40 pm_power_off = loongson2e_power_off;
41}
diff --git a/arch/mips/lemote/lm2e/setup.c b/arch/mips/lemote/lm2e/setup.c
new file mode 100644
index 000000000000..0e4d1fa572b5
--- /dev/null
+++ b/arch/mips/lemote/lm2e/setup.c
@@ -0,0 +1,134 @@
1/*
2 * BRIEF MODULE DESCRIPTION
3 * setup.c - board dependent boot routines
4 *
5 * Copyright (C) 2007 Lemote Inc. & Insititute of Computing Technology
6 * Author: Fuxin Zhang, zhangfx@lemote.com
7 *
8 * This program is free software; you can redistribute it and/or modify it
9 * under the terms of the GNU General Public License as published by the
10 * Free Software Foundation; either version 2 of the License, or (at your
11 * option) any later version.
12 *
13 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
14 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
15 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
16 * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
17 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
18 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
19 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
20 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
21 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
22 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23 *
24 * You should have received a copy of the GNU General Public License along
25 * with this program; if not, write to the Free Software Foundation, Inc.,
26 * 675 Mass Ave, Cambridge, MA 02139, USA.
27 *
28 */
29#include <linux/bootmem.h>
30#include <linux/init.h>
31#include <linux/io.h>
32#include <linux/ioport.h>
33#include <linux/interrupt.h>
34#include <linux/irq.h>
35#include <linux/kernel.h>
36#include <linux/mc146818rtc.h>
37#include <linux/mm.h>
38#include <linux/module.h>
39#include <linux/pci.h>
40#include <linux/tty.h>
41#include <linux/types.h>
42
43#include <asm/bootinfo.h>
44#include <asm/mc146818-time.h>
45#include <asm/time.h>
46#include <asm/wbflush.h>
47
48#ifdef CONFIG_VT
49#include <linux/console.h>
50#include <linux/screen_info.h>
51#endif
52
53extern void mips_reboot_setup(void);
54
55#ifdef CONFIG_64BIT
56#define PTR_PAD(p) ((0xffffffff00000000)|((unsigned long long)(p)))
57#else
58#define PTR_PAD(p) (p)
59#endif
60
61unsigned long cpu_clock;
62unsigned long bus_clock;
63unsigned int memsize;
64unsigned int highmemsize = 0;
65
66void __init plat_timer_setup(struct irqaction *irq)
67{
68 setup_irq(MIPS_CPU_IRQ_BASE + 7, irq);
69}
70
71static void __init loongson2e_time_init(void)
72{
73 /* setup mips r4k timer */
74 mips_hpt_frequency = cpu_clock / 2;
75}
76
77static unsigned long __init mips_rtc_get_time(void)
78{
79 return mc146818_get_cmos_time();
80}
81
82void (*__wbflush)(void);
83EXPORT_SYMBOL(__wbflush);
84
85static void wbflush_loongson2e(void)
86{
87 asm(".set\tpush\n\t"
88 ".set\tnoreorder\n\t"
89 ".set mips3\n\t"
90 "sync\n\t"
91 "nop\n\t"
92 ".set\tpop\n\t"
93 ".set mips0\n\t");
94}
95
96void __init plat_mem_setup(void)
97{
98 set_io_port_base(PTR_PAD(0xbfd00000));
99
100 mips_reboot_setup();
101
102 board_time_init = loongson2e_time_init;
103 rtc_mips_get_time = mips_rtc_get_time;
104
105 __wbflush = wbflush_loongson2e;
106
107 add_memory_region(0x0, (memsize << 20), BOOT_MEM_RAM);
108#ifdef CONFIG_64BIT
109 if (highmemsize > 0) {
110 add_memory_region(0x20000000, highmemsize << 20, BOOT_MEM_RAM);
111 }
112#endif
113
114#ifdef CONFIG_VT
115#if defined(CONFIG_VGA_CONSOLE)
116 conswitchp = &vga_con;
117
118 screen_info = (struct screen_info) {
119 0, 25, /* orig-x, orig-y */
120 0, /* unused */
121 0, /* orig-video-page */
122 0, /* orig-video-mode */
123 80, /* orig-video-cols */
124 0, 0, 0, /* ega_ax, ega_bx, ega_cx */
125 25, /* orig-video-lines */
126 VIDEO_TYPE_VGAC, /* orig-video-isVGA */
127 16 /* orig-video-points */
128 };
129#elif defined(CONFIG_DUMMY_CONSOLE)
130 conswitchp = &dummy_con;
131#endif
132#endif
133
134}
diff --git a/arch/mips/pci/Makefile b/arch/mips/pci/Makefile
index a3e741e190f2..276a10b06bb5 100644
--- a/arch/mips/pci/Makefile
+++ b/arch/mips/pci/Makefile
@@ -28,6 +28,7 @@ obj-$(CONFIG_MIPS_COBALT) += fixup-cobalt.o
28obj-$(CONFIG_SOC_AU1500) += fixup-au1000.o ops-au1000.o 28obj-$(CONFIG_SOC_AU1500) += fixup-au1000.o ops-au1000.o
29obj-$(CONFIG_SOC_AU1550) += fixup-au1000.o ops-au1000.o 29obj-$(CONFIG_SOC_AU1550) += fixup-au1000.o ops-au1000.o
30obj-$(CONFIG_SOC_PNX8550) += fixup-pnx8550.o ops-pnx8550.o 30obj-$(CONFIG_SOC_PNX8550) += fixup-pnx8550.o ops-pnx8550.o
31obj-$(CONFIG_LEMOTE_FULONG) += fixup-lm2e.o ops-bonito64.o
31obj-$(CONFIG_MIPS_MALTA) += fixup-malta.o 32obj-$(CONFIG_MIPS_MALTA) += fixup-malta.o
32obj-$(CONFIG_MOMENCO_OCELOT) += fixup-ocelot.o pci-ocelot.o 33obj-$(CONFIG_MOMENCO_OCELOT) += fixup-ocelot.o pci-ocelot.o
33obj-$(CONFIG_MOMENCO_OCELOT_3) += fixup-ocelot3.o 34obj-$(CONFIG_MOMENCO_OCELOT_3) += fixup-ocelot3.o
diff --git a/arch/mips/pci/fixup-lm2e.c b/arch/mips/pci/fixup-lm2e.c
new file mode 100644
index 000000000000..e18ae4f574c1
--- /dev/null
+++ b/arch/mips/pci/fixup-lm2e.c
@@ -0,0 +1,242 @@
1/*
2 * fixup-lm2e.c
3 *
4 * Copyright (C) 2004 ICT CAS
5 * Author: Li xiaoyu, ICT CAS
6 * lixy@ict.ac.cn
7 *
8 * Copyright (C) 2007 Lemote, Inc. & Institute of Computing Technology
9 * Author: Fuxin Zhang, zhangfx@lemote.com
10 *
11 * This program is free software; you can redistribute it and/or modify it
12 * under the terms of the GNU General Public License as published by the
13 * Free Software Foundation; either version 2 of the License, or (at your
14 * option) any later version.
15 *
16 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
17 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
18 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
19 * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
20 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
21 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
22 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
23 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
25 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 *
27 * You should have received a copy of the GNU General Public License along
28 * with this program; if not, write to the Free Software Foundation, Inc.,
29 * 675 Mass Ave, Cambridge, MA 02139, USA.
30 *
31 */
32#include <linux/init.h>
33#include <linux/pci.h>
34#include <asm/mips-boards/bonito64.h>
35
36/* South bridge slot number is set by the pci probe process */
37static u8 sb_slot = 5;
38
39int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
40{
41 int irq = 0;
42
43 if (slot == sb_slot) {
44 switch (PCI_FUNC(dev->devfn)) {
45 case 2:
46 irq = 10;
47 break;
48 case 3:
49 irq = 11;
50 break;
51 case 5:
52 irq = 9;
53 break;
54 }
55 } else {
56 irq = BONITO_IRQ_BASE + 25 + pin;
57 }
58 return irq;
59
60}
61
62/* Do platform specific device initialization at pci_enable_device() time */
63int pcibios_plat_dev_init(struct pci_dev *dev)
64{
65 return 0;
66}
67
68static void __init loongson2e_nec_fixup(struct pci_dev *pdev)
69{
70 unsigned int val;
71
72 /* Configues port 1, 2, 3, 4 to be validate*/
73 pci_read_config_dword(pdev, 0xe0, &val);
74 pci_write_config_dword(pdev, 0xe0, (val & ~7) | 0x4);
75
76 /* System clock is 48-MHz Oscillator. */
77 pci_write_config_dword(pdev, 0xe4, 1 << 5);
78}
79
80static void __init loongson2e_686b_func0_fixup(struct pci_dev *pdev)
81{
82 unsigned char c;
83
84 sb_slot = PCI_SLOT(pdev->devfn);
85
86 printk(KERN_INFO "via686b fix: ISA bridge\n");
87
88 /* Enable I/O Recovery time */
89 pci_write_config_byte(pdev, 0x40, 0x08);
90
91 /* Enable ISA refresh */
92 pci_write_config_byte(pdev, 0x41, 0x01);
93
94 /* disable ISA line buffer */
95 pci_write_config_byte(pdev, 0x45, 0x00);
96
97 /* Gate INTR, and flush line buffer */
98 pci_write_config_byte(pdev, 0x46, 0xe0);
99
100 /* Disable PCI Delay Transaction, Enable EISA ports 4D0/4D1. */
101 /* pci_write_config_byte(pdev, 0x47, 0x20); */
102
103 /*
104 * enable PCI Delay Transaction, Enable EISA ports 4D0/4D1.
105 * enable time-out timer
106 */
107 pci_write_config_byte(pdev, 0x47, 0xe6);
108
109 /*
110 * enable level trigger on pci irqs: 9,10,11,13
111 * important! without this PCI interrupts won't work
112 */
113 outb(0x2e, 0x4d1);
114
115 /* 512 K PCI Decode */
116 pci_write_config_byte(pdev, 0x48, 0x01);
117
118 /* Wait for PGNT before grant to ISA Master/DMA */
119 pci_write_config_byte(pdev, 0x4a, 0x84);
120
121 /*
122 * Plug'n'Play
123 *
124 * Parallel DRQ 3, Floppy DRQ 2 (default)
125 */
126 pci_write_config_byte(pdev, 0x50, 0x0e);
127
128 /*
129 * IRQ Routing for Floppy and Parallel port
130 *
131 * IRQ 6 for floppy, IRQ 7 for parallel port
132 */
133 pci_write_config_byte(pdev, 0x51, 0x76);
134
135 /* IRQ Routing for serial ports (take IRQ 3 and 4) */
136 pci_write_config_byte(pdev, 0x52, 0x34);
137
138 /* All IRQ's level triggered. */
139 pci_write_config_byte(pdev, 0x54, 0x00);
140
141 /* route PIRQA-D irq */
142 pci_write_config_byte(pdev, 0x55, 0x90); /* bit 7-4, PIRQA */
143 pci_write_config_byte(pdev, 0x56, 0xba); /* bit 7-4, PIRQC; */
144 /* 3-0, PIRQB */
145 pci_write_config_byte(pdev, 0x57, 0xd0); /* bit 7-4, PIRQD */
146
147 /* enable function 5/6, audio/modem */
148 pci_read_config_byte(pdev, 0x85, &c);
149 c &= ~(0x3 << 2);
150 pci_write_config_byte(pdev, 0x85, c);
151
152 printk(KERN_INFO"via686b fix: ISA bridge done\n");
153}
154
155static void __init loongson2e_686b_func1_fixup(struct pci_dev *pdev)
156{
157 printk(KERN_INFO"via686b fix: IDE\n");
158
159 /* Modify IDE controller setup */
160 pci_write_config_byte(pdev, PCI_LATENCY_TIMER, 48);
161 pci_write_config_byte(pdev, PCI_COMMAND,
162 PCI_COMMAND_IO | PCI_COMMAND_MEMORY |
163 PCI_COMMAND_MASTER);
164 pci_write_config_byte(pdev, 0x40, 0x0b);
165 /* legacy mode */
166 pci_write_config_byte(pdev, 0x42, 0x09);
167
168#if 1/* play safe, otherwise we may see notebook's usb keyboard lockup */
169 /* disable read prefetch/write post buffers */
170 pci_write_config_byte(pdev, 0x41, 0x02);
171
172 /* use 3/4 as fifo thresh hold */
173 pci_write_config_byte(pdev, 0x43, 0x0a);
174 pci_write_config_byte(pdev, 0x44, 0x00);
175
176 pci_write_config_byte(pdev, 0x45, 0x00);
177#else
178 pci_write_config_byte(pdev, 0x41, 0xc2);
179 pci_write_config_byte(pdev, 0x43, 0x35);
180 pci_write_config_byte(pdev, 0x44, 0x1c);
181
182 pci_write_config_byte(pdev, 0x45, 0x10);
183#endif
184
185 printk(KERN_INFO"via686b fix: IDE done\n");
186}
187
188static void __init loongson2e_686b_func2_fixup(struct pci_dev *pdev)
189{
190 /* irq routing */
191 pci_write_config_byte(pdev, PCI_INTERRUPT_LINE, 10);
192}
193
194static void __init loongson2e_686b_func3_fixup(struct pci_dev *pdev)
195{
196 /* irq routing */
197 pci_write_config_byte(pdev, PCI_INTERRUPT_LINE, 11);
198}
199
200static void __init loongson2e_686b_func5_fixup(struct pci_dev *pdev)
201{
202 unsigned int val;
203 unsigned char c;
204
205 /* enable IO */
206 pci_write_config_byte(pdev, PCI_COMMAND,
207 PCI_COMMAND_IO | PCI_COMMAND_MEMORY |
208 PCI_COMMAND_MASTER);
209 pci_read_config_dword(pdev, 0x4, &val);
210 pci_write_config_dword(pdev, 0x4, val | 1);
211
212 /* route ac97 IRQ */
213 pci_write_config_byte(pdev, 0x3c, 9);
214
215 pci_read_config_byte(pdev, 0x8, &c);
216
217 /* link control: enable link & SGD PCM output */
218 pci_write_config_byte(pdev, 0x41, 0xcc);
219
220 /* disable game port, FM, midi, sb, enable write to reg2c-2f */
221 pci_write_config_byte(pdev, 0x42, 0x20);
222
223 /* we are using Avance logic codec */
224 pci_write_config_word(pdev, 0x2c, 0x1005);
225 pci_write_config_word(pdev, 0x2e, 0x4710);
226 pci_read_config_dword(pdev, 0x2c, &val);
227
228 pci_write_config_byte(pdev, 0x42, 0x0);
229}
230
231DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C686,
232 loongson2e_686b_func0_fixup);
233DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C586_1,
234 loongson2e_686b_func1_fixup);
235DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C586_2,
236 loongson2e_686b_func2_fixup);
237DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C586_3,
238 loongson2e_686b_func3_fixup);
239DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C686_5,
240 loongson2e_686b_func5_fixup);
241DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_NEC, PCI_DEVICE_ID_NEC_USB,
242 loongson2e_nec_fixup);
diff --git a/arch/mips/pci/ops-bonito64.c b/arch/mips/pci/ops-bonito64.c
index dc35270b65a2..f742c51acf0d 100644
--- a/arch/mips/pci/ops-bonito64.c
+++ b/arch/mips/pci/ops-bonito64.c
@@ -29,83 +29,60 @@
29#define PCI_ACCESS_READ 0 29#define PCI_ACCESS_READ 0
30#define PCI_ACCESS_WRITE 1 30#define PCI_ACCESS_WRITE 1
31 31
32/* 32#ifdef CONFIG_LEMOTE_FULONG
33 * PCI configuration cycle AD bus definition 33#define CFG_SPACE_REG(offset) (void *)CKSEG1ADDR(BONITO_PCICFG_BASE | (offset))
34 */ 34#define ID_SEL_BEGIN 11
35/* Type 0 */ 35#else
36#define PCI_CFG_TYPE0_REG_SHF 0 36#define CFG_SPACE_REG(offset) (void *)CKSEG1ADDR(_pcictrl_bonito_pcicfg + (offset))
37#define PCI_CFG_TYPE0_FUNC_SHF 8 37#define ID_SEL_BEGIN 10
38#endif
39#define MAX_DEV_NUM (31 - ID_SEL_BEGIN)
38 40
39/* Type 1 */
40#define PCI_CFG_TYPE1_REG_SHF 0
41#define PCI_CFG_TYPE1_FUNC_SHF 8
42#define PCI_CFG_TYPE1_DEV_SHF 11
43#define PCI_CFG_TYPE1_BUS_SHF 16
44 41
45static int bonito64_pcibios_config_access(unsigned char access_type, 42static int bonito64_pcibios_config_access(unsigned char access_type,
46 struct pci_bus *bus, 43 struct pci_bus *bus,
47 unsigned int devfn, int where, 44 unsigned int devfn, int where,
48 u32 * data) 45 u32 * data)
49{ 46{
50 unsigned char busnum = bus->number; 47 u32 busnum = bus->number;
48 u32 addr, type;
51 u32 dummy; 49 u32 dummy;
52 u64 pci_addr; 50 void *addrp;
53 51 int device = PCI_SLOT(devfn);
54 /* Algorithmics Bonito64 system controller. */ 52 int function = PCI_FUNC(devfn);
53 int reg = where & ~3;
55 54
56 if ((busnum == 0) && (PCI_SLOT(devfn) > 21)) {
57 /* We number bus 0 devices from 0..21 */
58 return -1;
59 }
60
61 /* Clear cause register bits */
62 BONITO_PCICMD |= (BONITO_PCICMD_MABORT_CLR |
63 BONITO_PCICMD_MTABORT_CLR);
64
65 /*
66 * Setup pattern to be used as PCI "address" for
67 * Type 0 cycle
68 */
69 if (busnum == 0) { 55 if (busnum == 0) {
70 /* IDSEL */ 56 /* Type 0 configuration for onboard PCI bus */
71 pci_addr = (u64) 1 << (PCI_SLOT(devfn) + 10); 57 if (device > MAX_DEV_NUM)
72 } else { 58 return -1;
73 /* Bus number */
74 pci_addr = busnum << PCI_CFG_TYPE1_BUS_SHF;
75
76 /* Device number */
77 pci_addr |=
78 PCI_SLOT(devfn) << PCI_CFG_TYPE1_DEV_SHF;
79 }
80
81 /* Function (same for Type 0/1) */
82 pci_addr |= PCI_FUNC(devfn) << PCI_CFG_TYPE0_FUNC_SHF;
83
84 /* Register number (same for Type 0/1) */
85 pci_addr |= (where & ~0x3) << PCI_CFG_TYPE0_REG_SHF;
86 59
87 if (busnum == 0) { 60 addr = (1 << (device + ID_SEL_BEGIN)) | (function << 8) | reg;
88 /* Type 0 */ 61 type = 0;
89 BONITO_PCIMAP_CFG = pci_addr >> 16;
90 } else { 62 } else {
91 /* Type 1 */ 63 /* Type 1 configuration for offboard PCI bus */
92 BONITO_PCIMAP_CFG = (pci_addr >> 16) | 0x10000; 64 addr = (busnum << 16) | (device << 11) | (function << 8) | reg;
65 type = 0x10000;
93 } 66 }
94 67
95 pci_addr &= 0xffff; 68 /* Clear aborts */
69 BONITO_PCICMD |= BONITO_PCICMD_MABORT_CLR | BONITO_PCICMD_MTABORT_CLR;
70
71 BONITO_PCIMAP_CFG = (addr >> 16) | type;
96 72
97 /* Flush Bonito register block */ 73 /* Flush Bonito register block */
98 dummy = BONITO_PCIMAP_CFG; 74 dummy = BONITO_PCIMAP_CFG;
99 iob(); /* sync */ 75 mmiowb();
100 76
101 /* Perform access */ 77 addrp = CFG_SPACE_REG(addr & 0xffff);
102 if (access_type == PCI_ACCESS_WRITE) { 78 if (access_type == PCI_ACCESS_WRITE) {
103 *(volatile u32 *) (_pcictrl_bonito_pcicfg + (u32)pci_addr) = *(u32 *) data; 79 writel(cpu_to_le32(*data), addrp);
104 80#ifndef CONFIG_LEMOTE_FULONG
105 /* Wait till done */ 81 /* Wait till done */
106 while (BONITO_PCIMSTAT & 0xF); 82 while (BONITO_PCIMSTAT & 0xF);
83#endif
107 } else { 84 } else {
108 *(u32 *) data = *(volatile u32 *) (_pcictrl_bonito_pcicfg + (u32)pci_addr); 85 *data = le32_to_cpu(readl(addrp));
109 } 86 }
110 87
111 /* Detect Master/Target abort */ 88 /* Detect Master/Target abort */
@@ -121,6 +98,7 @@ static int bonito64_pcibios_config_access(unsigned char access_type,
121 } 98 }
122 99
123 return 0; 100 return 0;
101
124} 102}
125 103
126 104
diff --git a/include/asm-mips/bootinfo.h b/include/asm-mips/bootinfo.h
index 8b76e7602425..12f9d7139ebf 100644
--- a/include/asm-mips/bootinfo.h
+++ b/include/asm-mips/bootinfo.h
@@ -207,6 +207,12 @@
207#define MACH_GROUP_NEC_EMMA2RH 25 /* NEC EMMA2RH (was 23) */ 207#define MACH_GROUP_NEC_EMMA2RH 25 /* NEC EMMA2RH (was 23) */
208#define MACH_NEC_MARKEINS 0 /* NEC EMMA2RH Mark-eins */ 208#define MACH_NEC_MARKEINS 0 /* NEC EMMA2RH Mark-eins */
209 209
210/*
211 * Valid machtype for group LEMOTE
212 */
213#define MACH_GROUP_LEMOTE 27
214#define MACH_LEMOTE_FULONG 0
215
210#define CL_SIZE COMMAND_LINE_SIZE 216#define CL_SIZE COMMAND_LINE_SIZE
211 217
212const char *get_system_type(void); 218const char *get_system_type(void);
diff --git a/include/asm-mips/mach-lemote/dma-coherence.h b/include/asm-mips/mach-lemote/dma-coherence.h
new file mode 100644
index 000000000000..7e914777ebc4
--- /dev/null
+++ b/include/asm-mips/mach-lemote/dma-coherence.h
@@ -0,0 +1,42 @@
1/*
2 * This file is subject to the terms and conditions of the GNU General Public
3 * License. See the file "COPYING" in the main directory of this archive
4 * for more details.
5 *
6 * Copyright (C) 2006, 07 Ralf Baechle <ralf@linux-mips.org>
7 * Copyright (C) 2007 Lemote, Inc. & Institute of Computing Technology
8 * Author: Fuxin Zhang, zhangfx@lemote.com
9 *
10 */
11#ifndef __ASM_MACH_LEMOTE_DMA_COHERENCE_H
12#define __ASM_MACH_LEMOTE_DMA_COHERENCE_H
13
14struct device;
15
16static inline dma_addr_t plat_map_dma_mem(struct device *dev, void *addr,
17 size_t size)
18{
19 return virt_to_phys(addr) | 0x80000000;
20}
21
22static inline dma_addr_t plat_map_dma_mem_page(struct device *dev,
23 struct page *page)
24{
25 return page_to_phys(page) | 0x80000000;
26}
27
28static inline unsigned long plat_dma_addr_to_phys(dma_addr_t dma_addr)
29{
30 return dma_addr & 0x7fffffff;
31}
32
33static inline void plat_unmap_dma_mem(dma_addr_t dma_addr)
34{
35}
36
37static inline int plat_device_is_coherent(struct device *dev)
38{
39 return 0;
40}
41
42#endif /* __ASM_MACH_LEMOTE_DMA_COHERENCE_H */
diff --git a/include/asm-mips/mach-lemote/mc146818rtc.h b/include/asm-mips/mach-lemote/mc146818rtc.h
new file mode 100644
index 000000000000..ed5147e11085
--- /dev/null
+++ b/include/asm-mips/mach-lemote/mc146818rtc.h
@@ -0,0 +1,36 @@
1/*
2 * This file is subject to the terms and conditions of the GNU General Public
3 * License. See the file "COPYING" in the main directory of this archive
4 * for more details.
5 *
6 * Copyright (C) 1998, 2001, 03, 07 by Ralf Baechle (ralf@linux-mips.org)
7 *
8 * RTC routines for PC style attached Dallas chip.
9 */
10#ifndef __ASM_MACH_LEMOTE_MC146818RTC_H
11#define __ASM_MACH_LEMOTE_MC146818RTC_H
12
13#include <linux/io.h>
14
15#define RTC_PORT(x) (0x70 + (x))
16#define RTC_IRQ 8
17
18static inline unsigned char CMOS_READ(unsigned long addr)
19{
20 outb_p(addr, RTC_PORT(0));
21 return inb_p(RTC_PORT(1));
22}
23
24static inline void CMOS_WRITE(unsigned char data, unsigned long addr)
25{
26 outb_p(addr, RTC_PORT(0));
27 outb_p(data, RTC_PORT(1));
28}
29
30#define RTC_ALWAYS_BCD 0
31
32#ifndef mc146818_decode_year
33#define mc146818_decode_year(year) ((year) < 70 ? (year) + 2000 : (year) + 1970)
34#endif
35
36#endif /* __ASM_MACH_LEMOTE_MC146818RTC_H */
diff --git a/include/asm-mips/mips-boards/bonito64.h b/include/asm-mips/mips-boards/bonito64.h
index cd7125610100..dc3fc32eedd8 100644
--- a/include/asm-mips/mips-boards/bonito64.h
+++ b/include/asm-mips/mips-boards/bonito64.h
@@ -26,7 +26,12 @@
26/* offsets from base register */ 26/* offsets from base register */
27#define BONITO(x) (x) 27#define BONITO(x) (x)
28 28
29#else /* !__ASSEMBLY__ */ 29#elif defined(CONFIG_LEMOTE_FULONG)
30
31#define BONITO(x) (*(volatile u32 *)((char *)CKSEG1ADDR(BONITO_REG_BASE) + (x)))
32#define BONITO_IRQ_BASE 32
33
34#else
30 35
31/* 36/*
32 * Algorithmics Bonito64 system controller register base. 37 * Algorithmics Bonito64 system controller register base.