diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2005-09-03 18:56:11 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@evo.osdl.org> | 2005-09-05 03:06:04 -0400 |
commit | 07119621e62de0a2c8db6e4896e762c498bfdd17 (patch) | |
tree | c62dd52e8072235c8148e7f31b16ed30c5e45343 | |
parent | 7901c7998267d9d8c3f1b226a8c8cfd7f8e48a01 (diff) |
[PATCH] mips: add support for Qemu system architecture
Add support for the virtual MIPS system that is emulated by Qemu. See
http://www.linux-mips.org/wiki/Qemu for a detailed current status.
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r-- | arch/mips/Kconfig | 18 | ||||
-rw-r--r-- | arch/mips/Makefile | 6 | ||||
-rw-r--r-- | arch/mips/configs/qemu_defconfig | 655 | ||||
-rw-r--r-- | arch/mips/qemu/Makefile | 5 | ||||
-rw-r--r-- | arch/mips/qemu/q-firmware.c | 7 | ||||
-rw-r--r-- | arch/mips/qemu/q-int.S | 17 | ||||
-rw-r--r-- | arch/mips/qemu/q-irq.c | 37 | ||||
-rw-r--r-- | arch/mips/qemu/q-mem.c | 6 | ||||
-rw-r--r-- | arch/mips/qemu/q-setup.c | 20 | ||||
-rw-r--r-- | include/asm-mips/mach-qemu/cpu-feature-overrides.h | 31 | ||||
-rw-r--r-- | include/asm-mips/mach-qemu/param.h | 13 | ||||
-rw-r--r-- | include/asm-mips/qemu.h | 24 |
12 files changed, 839 insertions, 0 deletions
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig index e82d9240ea8e..8398efdee2fa 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig | |||
@@ -445,6 +445,24 @@ config DDB5477_BUS_FREQUENCY | |||
445 | depends on DDB5477 | 445 | depends on DDB5477 |
446 | default 0 | 446 | default 0 |
447 | 447 | ||
448 | config QEMU | ||
449 | bool "Support for Qemu" | ||
450 | select DMA_COHERENT | ||
451 | select GENERIC_ISA_DMA | ||
452 | select HAVE_STD_PC_SERIAL_PORT | ||
453 | select I8259 | ||
454 | select ISA | ||
455 | select SWAP_IO_SPACE | ||
456 | select SYS_SUPPORTS_32BIT_KERNEL | ||
457 | select SYS_SUPPORTS_BIG_ENDIAN | ||
458 | help | ||
459 | Qemu is a software emulator which among other architectures also | ||
460 | can simulate a MIPS32 4Kc system. This patch adds support for the | ||
461 | system architecture that currently is being simulated by Qemu. It | ||
462 | will eventually be removed again when Qemu has the capability to | ||
463 | simulate actual MIPS hardware platforms. More information on Qemu | ||
464 | can be found at http://www.linux-mips.org/wiki/Qemu. | ||
465 | |||
448 | config SGI_IP22 | 466 | config SGI_IP22 |
449 | bool "Support for SGI IP22 (Indy/Indigo2)" | 467 | bool "Support for SGI IP22 (Indy/Indigo2)" |
450 | select ARC | 468 | select ARC |
diff --git a/arch/mips/Makefile b/arch/mips/Makefile index e7764f3e4887..c8b16e668c17 100644 --- a/arch/mips/Makefile +++ b/arch/mips/Makefile | |||
@@ -423,6 +423,12 @@ core-$(CONFIG_PMC_YOSEMITE) += arch/mips/pmc-sierra/yosemite/ | |||
423 | cflags-$(CONFIG_PMC_YOSEMITE) += -Iinclude/asm-mips/mach-yosemite | 423 | cflags-$(CONFIG_PMC_YOSEMITE) += -Iinclude/asm-mips/mach-yosemite |
424 | load-$(CONFIG_PMC_YOSEMITE) += 0xffffffff80100000 | 424 | load-$(CONFIG_PMC_YOSEMITE) += 0xffffffff80100000 |
425 | 425 | ||
426 | # Qemu simulating MIPS32 4Kc | ||
427 | # | ||
428 | core-$(CONFIG_QEMU) += arch/mips/qemu/ | ||
429 | cflags-$(CONFIG_QEMU) += -Iinclude/asm-mips/mach-qemu | ||
430 | load-$(CONFIG_QEMU) += 0xffffffff80010000 | ||
431 | |||
426 | # | 432 | # |
427 | # Momentum Ocelot-3 | 433 | # Momentum Ocelot-3 |
428 | # | 434 | # |
diff --git a/arch/mips/configs/qemu_defconfig b/arch/mips/configs/qemu_defconfig new file mode 100644 index 000000000000..b6568e421b99 --- /dev/null +++ b/arch/mips/configs/qemu_defconfig | |||
@@ -0,0 +1,655 @@ | |||
1 | # | ||
2 | # Automatically generated make config: don't edit | ||
3 | # Linux kernel version: 2.6.13-rc6 | ||
4 | # Mon Aug 8 11:49:54 2005 | ||
5 | # | ||
6 | CONFIG_MIPS=y | ||
7 | |||
8 | # | ||
9 | # Code maturity level options | ||
10 | # | ||
11 | # CONFIG_EXPERIMENTAL is not set | ||
12 | CONFIG_CLEAN_COMPILE=y | ||
13 | CONFIG_BROKEN_ON_SMP=y | ||
14 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
15 | |||
16 | # | ||
17 | # General setup | ||
18 | # | ||
19 | CONFIG_LOCALVERSION="" | ||
20 | # CONFIG_SWAP is not set | ||
21 | # CONFIG_SYSVIPC is not set | ||
22 | # CONFIG_BSD_PROCESS_ACCT is not set | ||
23 | # CONFIG_SYSCTL is not set | ||
24 | # CONFIG_AUDIT is not set | ||
25 | # CONFIG_HOTPLUG is not set | ||
26 | CONFIG_KOBJECT_UEVENT=y | ||
27 | # CONFIG_IKCONFIG is not set | ||
28 | CONFIG_EMBEDDED=y | ||
29 | CONFIG_KALLSYMS=y | ||
30 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | ||
31 | CONFIG_PRINTK=y | ||
32 | # CONFIG_BUG is not set | ||
33 | # CONFIG_BASE_FULL is not set | ||
34 | # CONFIG_FUTEX is not set | ||
35 | # CONFIG_EPOLL is not set | ||
36 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||
37 | # CONFIG_SHMEM is not set | ||
38 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
39 | CONFIG_CC_ALIGN_LABELS=0 | ||
40 | CONFIG_CC_ALIGN_LOOPS=0 | ||
41 | CONFIG_CC_ALIGN_JUMPS=0 | ||
42 | CONFIG_TINY_SHMEM=y | ||
43 | CONFIG_BASE_SMALL=1 | ||
44 | |||
45 | # | ||
46 | # Loadable module support | ||
47 | # | ||
48 | # CONFIG_MODULES is not set | ||
49 | |||
50 | # | ||
51 | # Machine selection | ||
52 | # | ||
53 | # CONFIG_MIPS_MTX1 is not set | ||
54 | # CONFIG_MIPS_BOSPORUS is not set | ||
55 | # CONFIG_MIPS_PB1000 is not set | ||
56 | # CONFIG_MIPS_PB1100 is not set | ||
57 | # CONFIG_MIPS_PB1500 is not set | ||
58 | # CONFIG_MIPS_PB1550 is not set | ||
59 | # CONFIG_MIPS_PB1200 is not set | ||
60 | # CONFIG_MIPS_DB1000 is not set | ||
61 | # CONFIG_MIPS_DB1100 is not set | ||
62 | # CONFIG_MIPS_DB1500 is not set | ||
63 | # CONFIG_MIPS_DB1550 is not set | ||
64 | # CONFIG_MIPS_DB1200 is not set | ||
65 | # CONFIG_MIPS_MIRAGE is not set | ||
66 | # CONFIG_MIPS_COBALT is not set | ||
67 | # CONFIG_MACH_DECSTATION is not set | ||
68 | # CONFIG_MIPS_EV64120 is not set | ||
69 | # CONFIG_MIPS_EV96100 is not set | ||
70 | # CONFIG_MIPS_IVR is not set | ||
71 | # CONFIG_MIPS_ITE8172 is not set | ||
72 | # CONFIG_MACH_JAZZ is not set | ||
73 | # CONFIG_LASAT is not set | ||
74 | # CONFIG_MIPS_ATLAS is not set | ||
75 | # CONFIG_MIPS_MALTA is not set | ||
76 | # CONFIG_MIPS_SEAD is not set | ||
77 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | ||
78 | # CONFIG_MOMENCO_OCELOT is not set | ||
79 | # CONFIG_MOMENCO_OCELOT_3 is not set | ||
80 | # CONFIG_MOMENCO_OCELOT_C is not set | ||
81 | # CONFIG_MOMENCO_OCELOT_G is not set | ||
82 | # CONFIG_MIPS_XXS1500 is not set | ||
83 | # CONFIG_PNX8550_V2PCI is not set | ||
84 | # CONFIG_PNX8550_JBS is not set | ||
85 | # CONFIG_DDB5074 is not set | ||
86 | # CONFIG_DDB5476 is not set | ||
87 | # CONFIG_DDB5477 is not set | ||
88 | # CONFIG_MACH_VR41XX is not set | ||
89 | # CONFIG_PMC_YOSEMITE is not set | ||
90 | CONFIG_QEMU=y | ||
91 | # CONFIG_SGI_IP22 is not set | ||
92 | # CONFIG_SGI_IP27 is not set | ||
93 | # CONFIG_SGI_IP32 is not set | ||
94 | # CONFIG_SIBYTE_SWARM is not set | ||
95 | # CONFIG_SIBYTE_SENTOSA is not set | ||
96 | # CONFIG_SIBYTE_RHONE is not set | ||
97 | # CONFIG_SIBYTE_CARMEL is not set | ||
98 | # CONFIG_SIBYTE_PTSWARM is not set | ||
99 | # CONFIG_SIBYTE_LITTLESUR is not set | ||
100 | # CONFIG_SIBYTE_CRHINE is not set | ||
101 | # CONFIG_SIBYTE_CRHONE is not set | ||
102 | # CONFIG_SNI_RM200_PCI is not set | ||
103 | # CONFIG_TOSHIBA_JMR3927 is not set | ||
104 | # CONFIG_TOSHIBA_RBTX4927 is not set | ||
105 | # CONFIG_TOSHIBA_RBTX4938 is not set | ||
106 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | ||
107 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
108 | CONFIG_HAVE_DEC_LOCK=y | ||
109 | CONFIG_DMA_COHERENT=y | ||
110 | CONFIG_GENERIC_ISA_DMA=y | ||
111 | CONFIG_I8259=y | ||
112 | CONFIG_CPU_BIG_ENDIAN=y | ||
113 | # CONFIG_CPU_LITTLE_ENDIAN is not set | ||
114 | CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y | ||
115 | CONFIG_SWAP_IO_SPACE=y | ||
116 | CONFIG_MIPS_L1_CACHE_SHIFT=5 | ||
117 | CONFIG_HAVE_STD_PC_SERIAL_PORT=y | ||
118 | |||
119 | # | ||
120 | # CPU selection | ||
121 | # | ||
122 | # CONFIG_CPU_MIPS32_R1 is not set | ||
123 | # CONFIG_CPU_MIPS32_R2 is not set | ||
124 | # CONFIG_CPU_MIPS64_R1 is not set | ||
125 | # CONFIG_CPU_MIPS64_R2 is not set | ||
126 | # CONFIG_CPU_R3000 is not set | ||
127 | # CONFIG_CPU_TX39XX is not set | ||
128 | # CONFIG_CPU_VR41XX is not set | ||
129 | # CONFIG_CPU_R4300 is not set | ||
130 | CONFIG_CPU_R4X00=y | ||
131 | # CONFIG_CPU_TX49XX is not set | ||
132 | # CONFIG_CPU_R5000 is not set | ||
133 | # CONFIG_CPU_R5432 is not set | ||
134 | # CONFIG_CPU_R6000 is not set | ||
135 | # CONFIG_CPU_NEVADA is not set | ||
136 | # CONFIG_CPU_R8000 is not set | ||
137 | # CONFIG_CPU_R10000 is not set | ||
138 | # CONFIG_CPU_RM7000 is not set | ||
139 | # CONFIG_CPU_RM9000 is not set | ||
140 | # CONFIG_CPU_SB1 is not set | ||
141 | CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y | ||
142 | CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y | ||
143 | CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y | ||
144 | |||
145 | # | ||
146 | # Kernel type | ||
147 | # | ||
148 | CONFIG_32BIT=y | ||
149 | # CONFIG_64BIT is not set | ||
150 | CONFIG_PAGE_SIZE_4KB=y | ||
151 | # CONFIG_PAGE_SIZE_8KB is not set | ||
152 | # CONFIG_PAGE_SIZE_16KB is not set | ||
153 | # CONFIG_PAGE_SIZE_64KB is not set | ||
154 | # CONFIG_MIPS_MT is not set | ||
155 | # CONFIG_64BIT_PHYS_ADDR is not set | ||
156 | # CONFIG_CPU_ADVANCED is not set | ||
157 | CONFIG_CPU_HAS_LLSC=y | ||
158 | CONFIG_CPU_HAS_LLDSCD=y | ||
159 | CONFIG_CPU_HAS_SYNC=y | ||
160 | CONFIG_ARCH_FLATMEM_ENABLE=y | ||
161 | CONFIG_FLATMEM=y | ||
162 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
163 | CONFIG_PREEMPT_NONE=y | ||
164 | # CONFIG_PREEMPT_VOLUNTARY is not set | ||
165 | # CONFIG_PREEMPT is not set | ||
166 | |||
167 | # | ||
168 | # Bus options (PCI, PCMCIA, EISA, ISA, TC) | ||
169 | # | ||
170 | CONFIG_ISA=y | ||
171 | CONFIG_MMU=y | ||
172 | |||
173 | # | ||
174 | # PCCARD (PCMCIA/CardBus) support | ||
175 | # | ||
176 | # CONFIG_PCCARD is not set | ||
177 | |||
178 | # | ||
179 | # PCI Hotplug Support | ||
180 | # | ||
181 | |||
182 | # | ||
183 | # Executable file formats | ||
184 | # | ||
185 | CONFIG_BINFMT_ELF=y | ||
186 | # CONFIG_BINFMT_MISC is not set | ||
187 | CONFIG_TRAD_SIGNALS=y | ||
188 | |||
189 | # | ||
190 | # Networking | ||
191 | # | ||
192 | CONFIG_NET=y | ||
193 | |||
194 | # | ||
195 | # Networking options | ||
196 | # | ||
197 | CONFIG_PACKET=y | ||
198 | CONFIG_PACKET_MMAP=y | ||
199 | CONFIG_UNIX=y | ||
200 | # CONFIG_NET_KEY is not set | ||
201 | CONFIG_INET=y | ||
202 | CONFIG_IP_MULTICAST=y | ||
203 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
204 | CONFIG_IP_FIB_HASH=y | ||
205 | CONFIG_IP_PNP=y | ||
206 | CONFIG_IP_PNP_DHCP=y | ||
207 | CONFIG_IP_PNP_BOOTP=y | ||
208 | # CONFIG_IP_PNP_RARP is not set | ||
209 | # CONFIG_NET_IPIP is not set | ||
210 | # CONFIG_NET_IPGRE is not set | ||
211 | # CONFIG_IP_MROUTE is not set | ||
212 | # CONFIG_SYN_COOKIES is not set | ||
213 | # CONFIG_INET_AH is not set | ||
214 | # CONFIG_INET_ESP is not set | ||
215 | # CONFIG_INET_IPCOMP is not set | ||
216 | # CONFIG_INET_TUNNEL is not set | ||
217 | CONFIG_IP_TCPDIAG=y | ||
218 | # CONFIG_IP_TCPDIAG_IPV6 is not set | ||
219 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
220 | CONFIG_TCP_CONG_BIC=y | ||
221 | # CONFIG_IPV6 is not set | ||
222 | # CONFIG_NETFILTER is not set | ||
223 | # CONFIG_BRIDGE is not set | ||
224 | # CONFIG_VLAN_8021Q is not set | ||
225 | # CONFIG_DECNET is not set | ||
226 | # CONFIG_LLC2 is not set | ||
227 | # CONFIG_IPX is not set | ||
228 | # CONFIG_ATALK is not set | ||
229 | # CONFIG_NET_SCHED is not set | ||
230 | # CONFIG_NET_CLS_ROUTE is not set | ||
231 | |||
232 | # | ||
233 | # Network testing | ||
234 | # | ||
235 | # CONFIG_HAMRADIO is not set | ||
236 | # CONFIG_IRDA is not set | ||
237 | # CONFIG_BT is not set | ||
238 | |||
239 | # | ||
240 | # Device Drivers | ||
241 | # | ||
242 | |||
243 | # | ||
244 | # Generic Driver Options | ||
245 | # | ||
246 | CONFIG_STANDALONE=y | ||
247 | # CONFIG_PREVENT_FIRMWARE_BUILD is not set | ||
248 | # CONFIG_FW_LOADER is not set | ||
249 | |||
250 | # | ||
251 | # Memory Technology Devices (MTD) | ||
252 | # | ||
253 | # CONFIG_MTD is not set | ||
254 | |||
255 | # | ||
256 | # Parallel port support | ||
257 | # | ||
258 | # CONFIG_PARPORT is not set | ||
259 | |||
260 | # | ||
261 | # Plug and Play support | ||
262 | # | ||
263 | # CONFIG_PNP is not set | ||
264 | |||
265 | # | ||
266 | # Block devices | ||
267 | # | ||
268 | # CONFIG_BLK_DEV_FD is not set | ||
269 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
270 | # CONFIG_BLK_DEV_LOOP is not set | ||
271 | # CONFIG_BLK_DEV_NBD is not set | ||
272 | # CONFIG_BLK_DEV_RAM is not set | ||
273 | CONFIG_BLK_DEV_RAM_COUNT=16 | ||
274 | CONFIG_INITRAMFS_SOURCE="" | ||
275 | # CONFIG_CDROM_PKTCDVD is not set | ||
276 | |||
277 | # | ||
278 | # IO Schedulers | ||
279 | # | ||
280 | CONFIG_IOSCHED_NOOP=y | ||
281 | # CONFIG_IOSCHED_AS is not set | ||
282 | # CONFIG_IOSCHED_DEADLINE is not set | ||
283 | # CONFIG_IOSCHED_CFQ is not set | ||
284 | # CONFIG_ATA_OVER_ETH is not set | ||
285 | |||
286 | # | ||
287 | # ATA/ATAPI/MFM/RLL support | ||
288 | # | ||
289 | # CONFIG_IDE is not set | ||
290 | |||
291 | # | ||
292 | # SCSI device support | ||
293 | # | ||
294 | # CONFIG_SCSI is not set | ||
295 | |||
296 | # | ||
297 | # Old CD-ROM drivers (not SCSI, not IDE) | ||
298 | # | ||
299 | # CONFIG_CD_NO_IDESCSI is not set | ||
300 | |||
301 | # | ||
302 | # Multi-device support (RAID and LVM) | ||
303 | # | ||
304 | # CONFIG_MD is not set | ||
305 | |||
306 | # | ||
307 | # Fusion MPT device support | ||
308 | # | ||
309 | # CONFIG_FUSION is not set | ||
310 | |||
311 | # | ||
312 | # IEEE 1394 (FireWire) support | ||
313 | # | ||
314 | |||
315 | # | ||
316 | # I2O device support | ||
317 | # | ||
318 | |||
319 | # | ||
320 | # Network device support | ||
321 | # | ||
322 | CONFIG_NETDEVICES=y | ||
323 | # CONFIG_DUMMY is not set | ||
324 | # CONFIG_BONDING is not set | ||
325 | # CONFIG_EQUALIZER is not set | ||
326 | # CONFIG_TUN is not set | ||
327 | |||
328 | # | ||
329 | # ARCnet devices | ||
330 | # | ||
331 | # CONFIG_ARCNET is not set | ||
332 | |||
333 | # | ||
334 | # Ethernet (10 or 100Mbit) | ||
335 | # | ||
336 | CONFIG_NET_ETHERNET=y | ||
337 | CONFIG_MII=y | ||
338 | # CONFIG_NET_VENDOR_3COM is not set | ||
339 | # CONFIG_NET_VENDOR_SMC is not set | ||
340 | # CONFIG_NET_VENDOR_RACAL is not set | ||
341 | # CONFIG_DEPCA is not set | ||
342 | # CONFIG_HP100 is not set | ||
343 | CONFIG_NET_ISA=y | ||
344 | # CONFIG_E2100 is not set | ||
345 | # CONFIG_EWRK3 is not set | ||
346 | # CONFIG_EEXPRESS is not set | ||
347 | # CONFIG_EEXPRESS_PRO is not set | ||
348 | # CONFIG_HPLAN_PLUS is not set | ||
349 | # CONFIG_HPLAN is not set | ||
350 | # CONFIG_LP486E is not set | ||
351 | # CONFIG_ETH16I is not set | ||
352 | CONFIG_NE2000=y | ||
353 | # CONFIG_NET_PCI is not set | ||
354 | # CONFIG_NET_POCKET is not set | ||
355 | |||
356 | # | ||
357 | # Ethernet (1000 Mbit) | ||
358 | # | ||
359 | |||
360 | # | ||
361 | # Ethernet (10000 Mbit) | ||
362 | # | ||
363 | |||
364 | # | ||
365 | # Token Ring devices | ||
366 | # | ||
367 | # CONFIG_TR is not set | ||
368 | |||
369 | # | ||
370 | # Wireless LAN (non-hamradio) | ||
371 | # | ||
372 | # CONFIG_NET_RADIO is not set | ||
373 | |||
374 | # | ||
375 | # Wan interfaces | ||
376 | # | ||
377 | # CONFIG_WAN is not set | ||
378 | # CONFIG_PPP is not set | ||
379 | # CONFIG_SLIP is not set | ||
380 | # CONFIG_NETPOLL is not set | ||
381 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
382 | |||
383 | # | ||
384 | # ISDN subsystem | ||
385 | # | ||
386 | # CONFIG_ISDN is not set | ||
387 | |||
388 | # | ||
389 | # Telephony Support | ||
390 | # | ||
391 | # CONFIG_PHONE is not set | ||
392 | |||
393 | # | ||
394 | # Input device support | ||
395 | # | ||
396 | CONFIG_INPUT=y | ||
397 | |||
398 | # | ||
399 | # Userland interfaces | ||
400 | # | ||
401 | # CONFIG_INPUT_MOUSEDEV is not set | ||
402 | # CONFIG_INPUT_JOYDEV is not set | ||
403 | # CONFIG_INPUT_TSDEV is not set | ||
404 | # CONFIG_INPUT_EVDEV is not set | ||
405 | # CONFIG_INPUT_EVBUG is not set | ||
406 | |||
407 | # | ||
408 | # Input Device Drivers | ||
409 | # | ||
410 | # CONFIG_INPUT_KEYBOARD is not set | ||
411 | # CONFIG_INPUT_MOUSE is not set | ||
412 | # CONFIG_INPUT_JOYSTICK is not set | ||
413 | # CONFIG_INPUT_TOUCHSCREEN is not set | ||
414 | # CONFIG_INPUT_MISC is not set | ||
415 | |||
416 | # | ||
417 | # Hardware I/O ports | ||
418 | # | ||
419 | # CONFIG_SERIO is not set | ||
420 | # CONFIG_GAMEPORT is not set | ||
421 | |||
422 | # | ||
423 | # Character devices | ||
424 | # | ||
425 | CONFIG_VT=y | ||
426 | CONFIG_VT_CONSOLE=y | ||
427 | CONFIG_HW_CONSOLE=y | ||
428 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
429 | |||
430 | # | ||
431 | # Serial drivers | ||
432 | # | ||
433 | CONFIG_SERIAL_8250=y | ||
434 | CONFIG_SERIAL_8250_CONSOLE=y | ||
435 | CONFIG_SERIAL_8250_NR_UARTS=4 | ||
436 | # CONFIG_SERIAL_8250_EXTENDED is not set | ||
437 | |||
438 | # | ||
439 | # Non-8250 serial port support | ||
440 | # | ||
441 | CONFIG_SERIAL_CORE=y | ||
442 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
443 | # CONFIG_UNIX98_PTYS is not set | ||
444 | # CONFIG_LEGACY_PTYS is not set | ||
445 | |||
446 | # | ||
447 | # IPMI | ||
448 | # | ||
449 | # CONFIG_IPMI_HANDLER is not set | ||
450 | |||
451 | # | ||
452 | # Watchdog Cards | ||
453 | # | ||
454 | # CONFIG_WATCHDOG is not set | ||
455 | # CONFIG_RTC is not set | ||
456 | # CONFIG_GEN_RTC is not set | ||
457 | # CONFIG_DTLK is not set | ||
458 | # CONFIG_R3964 is not set | ||
459 | |||
460 | # | ||
461 | # Ftape, the floppy tape device driver | ||
462 | # | ||
463 | # CONFIG_RAW_DRIVER is not set | ||
464 | |||
465 | # | ||
466 | # TPM devices | ||
467 | # | ||
468 | |||
469 | # | ||
470 | # I2C support | ||
471 | # | ||
472 | # CONFIG_I2C is not set | ||
473 | # CONFIG_I2C_SENSOR is not set | ||
474 | |||
475 | # | ||
476 | # Dallas's 1-wire bus | ||
477 | # | ||
478 | # CONFIG_W1 is not set | ||
479 | |||
480 | # | ||
481 | # Hardware Monitoring support | ||
482 | # | ||
483 | # CONFIG_HWMON is not set | ||
484 | |||
485 | # | ||
486 | # Misc devices | ||
487 | # | ||
488 | |||
489 | # | ||
490 | # Multimedia devices | ||
491 | # | ||
492 | # CONFIG_VIDEO_DEV is not set | ||
493 | |||
494 | # | ||
495 | # Digital Video Broadcasting Devices | ||
496 | # | ||
497 | # CONFIG_DVB is not set | ||
498 | |||
499 | # | ||
500 | # Graphics support | ||
501 | # | ||
502 | # CONFIG_FB is not set | ||
503 | |||
504 | # | ||
505 | # Console display driver support | ||
506 | # | ||
507 | CONFIG_VGA_CONSOLE=y | ||
508 | # CONFIG_MDA_CONSOLE is not set | ||
509 | CONFIG_DUMMY_CONSOLE=y | ||
510 | |||
511 | # | ||
512 | # Sound | ||
513 | # | ||
514 | # CONFIG_SOUND is not set | ||
515 | |||
516 | # | ||
517 | # USB support | ||
518 | # | ||
519 | # CONFIG_USB_ARCH_HAS_HCD is not set | ||
520 | # CONFIG_USB_ARCH_HAS_OHCI is not set | ||
521 | |||
522 | # | ||
523 | # USB Gadget Support | ||
524 | # | ||
525 | # CONFIG_USB_GADGET is not set | ||
526 | |||
527 | # | ||
528 | # MMC/SD Card support | ||
529 | # | ||
530 | # CONFIG_MMC is not set | ||
531 | |||
532 | # | ||
533 | # InfiniBand support | ||
534 | # | ||
535 | # CONFIG_INFINIBAND is not set | ||
536 | |||
537 | # | ||
538 | # SN Devices | ||
539 | # | ||
540 | |||
541 | # | ||
542 | # File systems | ||
543 | # | ||
544 | # CONFIG_EXT2_FS is not set | ||
545 | # CONFIG_EXT3_FS is not set | ||
546 | # CONFIG_JBD is not set | ||
547 | # CONFIG_REISERFS_FS is not set | ||
548 | # CONFIG_JFS_FS is not set | ||
549 | # CONFIG_FS_POSIX_ACL is not set | ||
550 | |||
551 | # | ||
552 | # XFS support | ||
553 | # | ||
554 | # CONFIG_XFS_FS is not set | ||
555 | # CONFIG_MINIX_FS is not set | ||
556 | # CONFIG_ROMFS_FS is not set | ||
557 | CONFIG_INOTIFY=y | ||
558 | # CONFIG_QUOTA is not set | ||
559 | # CONFIG_DNOTIFY is not set | ||
560 | # CONFIG_AUTOFS_FS is not set | ||
561 | # CONFIG_AUTOFS4_FS is not set | ||
562 | |||
563 | # | ||
564 | # CD-ROM/DVD Filesystems | ||
565 | # | ||
566 | # CONFIG_ISO9660_FS is not set | ||
567 | # CONFIG_UDF_FS is not set | ||
568 | |||
569 | # | ||
570 | # DOS/FAT/NT Filesystems | ||
571 | # | ||
572 | # CONFIG_MSDOS_FS is not set | ||
573 | # CONFIG_VFAT_FS is not set | ||
574 | # CONFIG_NTFS_FS is not set | ||
575 | |||
576 | # | ||
577 | # Pseudo filesystems | ||
578 | # | ||
579 | # CONFIG_PROC_FS is not set | ||
580 | # CONFIG_SYSFS is not set | ||
581 | # CONFIG_TMPFS is not set | ||
582 | # CONFIG_HUGETLB_PAGE is not set | ||
583 | CONFIG_RAMFS=y | ||
584 | |||
585 | # | ||
586 | # Miscellaneous filesystems | ||
587 | # | ||
588 | # CONFIG_HFSPLUS_FS is not set | ||
589 | # CONFIG_CRAMFS is not set | ||
590 | # CONFIG_VXFS_FS is not set | ||
591 | # CONFIG_HPFS_FS is not set | ||
592 | # CONFIG_QNX4FS_FS is not set | ||
593 | # CONFIG_SYSV_FS is not set | ||
594 | # CONFIG_UFS_FS is not set | ||
595 | |||
596 | # | ||
597 | # Network File Systems | ||
598 | # | ||
599 | CONFIG_NFS_FS=y | ||
600 | CONFIG_NFS_V3=y | ||
601 | # CONFIG_NFS_V3_ACL is not set | ||
602 | # CONFIG_NFSD is not set | ||
603 | CONFIG_ROOT_NFS=y | ||
604 | CONFIG_LOCKD=y | ||
605 | CONFIG_LOCKD_V4=y | ||
606 | CONFIG_NFS_COMMON=y | ||
607 | CONFIG_SUNRPC=y | ||
608 | # CONFIG_SMB_FS is not set | ||
609 | # CONFIG_CIFS is not set | ||
610 | # CONFIG_NCP_FS is not set | ||
611 | # CONFIG_CODA_FS is not set | ||
612 | |||
613 | # | ||
614 | # Partition Types | ||
615 | # | ||
616 | # CONFIG_PARTITION_ADVANCED is not set | ||
617 | CONFIG_MSDOS_PARTITION=y | ||
618 | |||
619 | # | ||
620 | # Native Language Support | ||
621 | # | ||
622 | # CONFIG_NLS is not set | ||
623 | |||
624 | # | ||
625 | # Kernel hacking | ||
626 | # | ||
627 | # CONFIG_PRINTK_TIME is not set | ||
628 | # CONFIG_DEBUG_KERNEL is not set | ||
629 | CONFIG_LOG_BUF_SHIFT=14 | ||
630 | CONFIG_CROSSCOMPILE=y | ||
631 | CONFIG_CMDLINE="console=ttyS0 debug ip=172.20.0.2:172.20.0.1::255.255.0.0" | ||
632 | |||
633 | # | ||
634 | # Security options | ||
635 | # | ||
636 | # CONFIG_KEYS is not set | ||
637 | # CONFIG_SECURITY is not set | ||
638 | |||
639 | # | ||
640 | # Cryptographic options | ||
641 | # | ||
642 | # CONFIG_CRYPTO is not set | ||
643 | |||
644 | # | ||
645 | # Hardware crypto devices | ||
646 | # | ||
647 | |||
648 | # | ||
649 | # Library routines | ||
650 | # | ||
651 | # CONFIG_CRC_CCITT is not set | ||
652 | CONFIG_CRC32=y | ||
653 | # CONFIG_LIBCRC32C is not set | ||
654 | CONFIG_GENERIC_HARDIRQS=y | ||
655 | CONFIG_GENERIC_IRQ_PROBE=y | ||
diff --git a/arch/mips/qemu/Makefile b/arch/mips/qemu/Makefile new file mode 100644 index 000000000000..934944ab9e85 --- /dev/null +++ b/arch/mips/qemu/Makefile | |||
@@ -0,0 +1,5 @@ | |||
1 | # | ||
2 | # Makefile for Qemu specific kernel interface routines under Linux. | ||
3 | # | ||
4 | |||
5 | obj-y = q-firmware.o q-int.o q-irq.o q-mem.o q-setup.o | ||
diff --git a/arch/mips/qemu/q-firmware.c b/arch/mips/qemu/q-firmware.c new file mode 100644 index 000000000000..5980f02b2df9 --- /dev/null +++ b/arch/mips/qemu/q-firmware.c | |||
@@ -0,0 +1,7 @@ | |||
1 | #include <linux/init.h> | ||
2 | #include <asm/bootinfo.h> | ||
3 | |||
4 | void __init prom_init(void) | ||
5 | { | ||
6 | add_memory_region(0x0<<20, 0x10<<20, BOOT_MEM_RAM); | ||
7 | } | ||
diff --git a/arch/mips/qemu/q-int.S b/arch/mips/qemu/q-int.S new file mode 100644 index 000000000000..6e3dfe5eb14b --- /dev/null +++ b/arch/mips/qemu/q-int.S | |||
@@ -0,0 +1,17 @@ | |||
1 | /* | ||
2 | * Qemu interrupt handler code. | ||
3 | * | ||
4 | * Copyright (C) 2005 by Ralf Baechle | ||
5 | */ | ||
6 | #include <asm/asm.h> | ||
7 | #include <asm/regdef.h> | ||
8 | #include <asm/stackframe.h> | ||
9 | |||
10 | .align 5 | ||
11 | NESTED(qemu_handle_int, PT_SIZE, sp) | ||
12 | SAVE_ALL | ||
13 | CLI | ||
14 | move a0, sp | ||
15 | PTR_LA ra, ret_from_irq | ||
16 | j do_qemu_int | ||
17 | END(qemu_handle_int) | ||
diff --git a/arch/mips/qemu/q-irq.c b/arch/mips/qemu/q-irq.c new file mode 100644 index 000000000000..2c4e0704ff10 --- /dev/null +++ b/arch/mips/qemu/q-irq.c | |||
@@ -0,0 +1,37 @@ | |||
1 | #include <linux/init.h> | ||
2 | #include <linux/linkage.h> | ||
3 | |||
4 | #include <asm/i8259.h> | ||
5 | #include <asm/mipsregs.h> | ||
6 | #include <asm/qemu.h> | ||
7 | #include <asm/system.h> | ||
8 | #include <asm/time.h> | ||
9 | |||
10 | extern asmlinkage void qemu_handle_int(void); | ||
11 | |||
12 | asmlinkage void do_qemu_int(struct pt_regs *regs) | ||
13 | { | ||
14 | unsigned int pending = read_c0_status() & read_c0_cause(); | ||
15 | |||
16 | if (pending & 0x8000) { | ||
17 | ll_timer_interrupt(Q_COUNT_COMPARE_IRQ, regs); | ||
18 | return; | ||
19 | } | ||
20 | if (pending & 0x0400) { | ||
21 | int irq = i8259_irq(); | ||
22 | |||
23 | if (likely(irq >= 0)) | ||
24 | do_IRQ(irq, regs); | ||
25 | |||
26 | return; | ||
27 | } | ||
28 | } | ||
29 | |||
30 | void __init arch_init_irq(void) | ||
31 | { | ||
32 | set_except_vector(0, qemu_handle_int); | ||
33 | mips_hpt_frequency = QEMU_C0_COUNTER_CLOCK; /* 100MHz */ | ||
34 | |||
35 | init_i8259_irqs(); | ||
36 | set_c0_status(0x8400); | ||
37 | } | ||
diff --git a/arch/mips/qemu/q-mem.c b/arch/mips/qemu/q-mem.c new file mode 100644 index 000000000000..d174fac43031 --- /dev/null +++ b/arch/mips/qemu/q-mem.c | |||
@@ -0,0 +1,6 @@ | |||
1 | #include <linux/init.h> | ||
2 | |||
3 | unsigned long __init prom_free_prom_memory(void) | ||
4 | { | ||
5 | return 0UL; | ||
6 | } | ||
diff --git a/arch/mips/qemu/q-setup.c b/arch/mips/qemu/q-setup.c new file mode 100644 index 000000000000..1a80eee8cd35 --- /dev/null +++ b/arch/mips/qemu/q-setup.c | |||
@@ -0,0 +1,20 @@ | |||
1 | #include <linux/init.h> | ||
2 | #include <asm/io.h> | ||
3 | #include <asm/time.h> | ||
4 | |||
5 | #define QEMU_PORT_BASE 0xb4000000 | ||
6 | |||
7 | static void __init qemu_timer_setup(struct irqaction *irq) | ||
8 | { | ||
9 | /* set the clock to 100 Hz */ | ||
10 | outb_p(0x34,0x43); /* binary, mode 2, LSB/MSB, ch 0 */ | ||
11 | outb_p(LATCH & 0xff , 0x40); /* LSB */ | ||
12 | outb(LATCH >> 8 , 0x40); /* MSB */ | ||
13 | setup_irq(0, irq); | ||
14 | } | ||
15 | |||
16 | void __init plat_setup(void) | ||
17 | { | ||
18 | set_io_port_base(QEMU_PORT_BASE); | ||
19 | board_timer_setup = qemu_timer_setup; | ||
20 | } | ||
diff --git a/include/asm-mips/mach-qemu/cpu-feature-overrides.h b/include/asm-mips/mach-qemu/cpu-feature-overrides.h new file mode 100644 index 000000000000..f4e370e27168 --- /dev/null +++ b/include/asm-mips/mach-qemu/cpu-feature-overrides.h | |||
@@ -0,0 +1,31 @@ | |||
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) 2003 Ralf Baechle | ||
7 | */ | ||
8 | #ifndef __ASM_MACH_QEMU_CPU_FEATURE_OVERRIDES_H | ||
9 | #define __ASM_MACH_QEMU_CPU_FEATURE_OVERRIDES_H | ||
10 | |||
11 | /* | ||
12 | * QEMU only comes with a hazard-free MIPS32 processor, so things are easy. | ||
13 | */ | ||
14 | #define cpu_has_mips16 0 | ||
15 | #define cpu_has_divec 0 | ||
16 | #define cpu_has_cache_cdex_p 0 | ||
17 | #define cpu_has_prefetch 0 | ||
18 | #define cpu_has_mcheck 0 | ||
19 | #define cpu_has_ejtag 0 | ||
20 | |||
21 | #define cpu_has_llsc 1 | ||
22 | #define cpu_has_vtag_icache 0 | ||
23 | #define cpu_has_dc_aliases (PAGE_SIZE < 0x4000) | ||
24 | #define cpu_has_ic_fills_f_dc 0 | ||
25 | |||
26 | #define cpu_has_dsp 0 | ||
27 | |||
28 | #define cpu_has_nofpuex 0 | ||
29 | #define cpu_has_64bits 0 | ||
30 | |||
31 | #endif /* __ASM_MACH_QEMU_CPU_FEATURE_OVERRIDES_H */ | ||
diff --git a/include/asm-mips/mach-qemu/param.h b/include/asm-mips/mach-qemu/param.h new file mode 100644 index 000000000000..cb30ee490ae6 --- /dev/null +++ b/include/asm-mips/mach-qemu/param.h | |||
@@ -0,0 +1,13 @@ | |||
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) 2005 by Ralf Baechle | ||
7 | */ | ||
8 | #ifndef __ASM_MACH_QEMU_PARAM_H | ||
9 | #define __ASM_MACH_QEMU_PARAM_H | ||
10 | |||
11 | #define HZ 100 /* Internal kernel timer frequency */ | ||
12 | |||
13 | #endif /* __ASM_MACH_QEMU_PARAM_H */ | ||
diff --git a/include/asm-mips/qemu.h b/include/asm-mips/qemu.h new file mode 100644 index 000000000000..905c39585903 --- /dev/null +++ b/include/asm-mips/qemu.h | |||
@@ -0,0 +1,24 @@ | |||
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) 2005 by Ralf Baechle (ralf@linux-mips.org) | ||
7 | */ | ||
8 | #ifndef __ASM_QEMU_H | ||
9 | #define __ASM_QEMU_H | ||
10 | |||
11 | /* | ||
12 | * Interrupt numbers | ||
13 | */ | ||
14 | #define Q_PIC_IRQ_BASE 0 | ||
15 | #define Q_COUNT_COMPARE_IRQ 16 | ||
16 | |||
17 | /* | ||
18 | * Qemu clock rate. Unlike on real MIPS this has no relation to the | ||
19 | * instruction issue rate, so the choosen value is pure fiction, just needs | ||
20 | * to match the value in Qemu itself. | ||
21 | */ | ||
22 | #define QEMU_C0_COUNTER_CLOCK 100000000 | ||
23 | |||
24 | #endif /* __ASM_QEMU_H */ | ||