comparison cos/bochsrc.txt @ 9:92ace1ca50a8

64 bits kernel without interrupts but with printf in C
author windel
date Sun, 13 Nov 2011 12:47:47 +0100
parents
children fcdae30b2782
comparison
equal deleted inserted replaced
8:edd70006d3e4 9:92ace1ca50a8
1 # You may now use double quotes around pathnames, in case
2 # your pathname includes spaces.
3
4 #=======================================================================
5 # CONFIG_INTERFACE
6 #
7 # The configuration interface is a series of menus or dialog boxes that
8 # allows you to change all the settings that control Bochs's behavior.
9 # Depending on the platform there are up to 3 choices of configuration
10 # interface: a text mode version called "textconfig" and two graphical versions
11 # called "win32config" and "wx". The text mode version uses stdin/stdout and
12 # is always compiled in, unless Bochs is compiled for wx only. The choice
13 # "win32config" is only available on win32 and it is the default there.
14 # The choice "wx" is only available when you use "--with-wx" on the configure
15 # command. If you do not write a config_interface line, Bochs will
16 # choose a default for you.
17 #
18 # NOTE: if you use the "wx" configuration interface, you must also use
19 # the "wx" display library.
20 #=======================================================================
21 #config_interface: textconfig
22 #config_interface: win32config
23 #config_interface: wx
24
25 #=======================================================================
26 # DISPLAY_LIBRARY
27 #
28 # The display library is the code that displays the Bochs VGA screen. Bochs
29 # has a selection of about 10 different display library implementations for
30 # different platforms. If you run configure with multiple --with-* options,
31 # the display_library command lets you choose which one you want to run with.
32 # If you do not write a display_library line, Bochs will choose a default for
33 # you.
34 #
35 # The choices are:
36 # x use X windows interface, cross platform
37 # win32 use native win32 libraries
38 # carbon use Carbon library (for MacOS X)
39 # beos use native BeOS libraries
40 # macintosh use MacOS pre-10
41 # amigaos use native AmigaOS libraries
42 # sdl use SDL library, cross platform
43 # svga use SVGALIB library for Linux, allows graphics without X11
44 # term text only, uses curses/ncurses library, cross platform
45 # rfb provides an interface to AT&T's VNC viewer, cross platform
46 # wx use wxWidgets library, cross platform
47 # nogui no display at all
48 #
49 # NOTE: if you use the "wx" configuration interface, you must also use
50 # the "wx" display library.
51 #
52 # Specific options:
53 # Some display libraries now support specific option to control their
54 # behaviour. See the examples below for currently supported options.
55 #=======================================================================
56 #display_library: amigaos
57 #display_library: beos
58 #display_library: carbon
59 #display_library: macintosh
60 #display_library: nogui
61 #display_library: rfb, options="timeout=60" # time to wait for client
62 #display_library: sdl, options="fullscreen" # startup in fullscreen mode
63 #display_library: term
64 #display_library: win32, options="legacyF12" # use F12 to toggle mouse
65 #display_library: win32, options="gui_debug" # use Win32 debugger gui
66 #display_library: wx
67 #display_library: x, options="hideIPS" # disable IPS output in status bar
68 #display_library: x, options="gui_debug" # use GTK debugger gui
69
70 #=======================================================================
71 # ROMIMAGE:
72 # The ROM BIOS controls what the PC does when it first powers on.
73 # Normally, you can use a precompiled BIOS in the source or binary
74 # distribution called BIOS-bochs-latest. The ROM BIOS is usually loaded
75 # starting at address 0xf0000, and it is exactly 64k long. Another option
76 # is 128k BIOS which is loaded at address 0xe0000.
77 # You can also use the environment variable $BXSHARE to specify the
78 # location of the BIOS.
79 # The usage of external large BIOS images (up to 512k) at memory top is
80 # now supported, but we still recommend to use the BIOS distributed with
81 # Bochs. The start address optional, since it can be calculated from image size.
82 #=======================================================================
83 romimage: file=$BXSHARE/BIOS-bochs-latest
84 #romimage: file=bios/seabios-0.5.1.bin
85 #romimage: file=mybios.bin, address=0xfff80000 # 512k at memory top
86
87 #=======================================================================
88 # CPU:
89 # This defines cpu-related parameters inside Bochs:
90 #
91 # COUNT:
92 # Set the number of processors:cores per processor:threads per core
93 # when Bochs is compiled for SMP emulation.
94 # Bochs currently supports up to 8 threads running simultaniosly.
95 # If Bochs is compiled without SMP support, it won't accept values
96 # different from 1.
97 #
98 # QUANTUM:
99 # Maximum amount of instructions allowed to execute by processor before
100 # returning control to another cpu. This option exists only in Bochs
101 # binary compiled with SMP support.
102 #
103 # RESET_ON_TRIPLE_FAULT:
104 # Reset the CPU when triple fault occur (highly recommended) rather than
105 # PANIC. Remember that if you trying to continue after triple fault the
106 # simulation will be completely bogus !
107 #
108 # MSRS:
109 # Define path to user CPU Model Specific Registers (MSRs) specification.
110 # See example in msrs.def.
111 #
112 # IGNORE_BAD_MSRS:
113 # Ignore MSR references that Bochs does not understand; print a warning
114 # message instead of generating #GP exception. This option is enabled
115 # by default but will not be avaiable if configurable MSRs are enabled.
116 #
117 # IPS:
118 # Emulated Instructions Per Second. This is the number of IPS that bochs
119 # is capable of running on your machine. You can recompile Bochs with
120 # --enable-show-ips option enabled, to find your host's capability.
121 # Measured IPS value will then be logged into your log file or shown
122 # in the status bar (if supported by the gui).
123 #
124 # IPS is used to calibrate many time-dependent events within the bochs
125 # simulation. For example, changing IPS affects the frequency of VGA
126 # updates, the duration of time before a key starts to autorepeat, and
127 # the measurement of BogoMips and other benchmarks.
128 #
129 # Examples:
130 #
131 # Bochs Machine/Compiler Mips
132 # ____________________________________________________________________
133 # 2.3.7 3.2Ghz Intel Core 2 Q9770 with WinXP/g++ 3.4 50 to 55 Mips
134 # 2.3.7 2.6Ghz Intel Core 2 Duo with WinXP/g++ 3.4 38 to 43 Mips
135 # 2.2.6 2.6Ghz Intel Core 2 Duo with WinXP/g++ 3.4 21 to 25 Mips
136 # 2.2.6 2.1Ghz Athlon XP with Linux 2.6/g++ 3.4 12 to 15 Mips
137 # 2.0.1 1.6Ghz Intel P4 with Win2000/g++ 3.3 5 to 7 Mips
138 #=======================================================================
139 cpu: count=1, ips=500000, reset_on_triple_fault=1, ignore_bad_msrs=1, msrs="msrs.def"
140
141 #=======================================================================
142 # CPUID:
143 #
144 # This defines features and functionality supported by Bochs emulated CPU:
145 #
146 # MMX:
147 # Select MMX instruction set support.
148 # This option exists only if Bochs compiled with BX_CPU_LEVEL >= 5.
149 #
150 # SEP:
151 # Select SYSENTER/SYSEXIT instruction set support.
152 # This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
153 #
154 # SSE:
155 # Select SSE instruction set support.
156 # Any of NONE/SSE/SSE2/SSE3/SSSE3/SSE4_1/SSE4_2 could be selected.
157 # This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
158 #
159 # XAPIC:
160 # Select XAPIC extensions support.
161 # This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
162 #
163 # AES:
164 # Select AES instruction set support.
165 # This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
166 #
167 # MOVBE:
168 # Select MOVBE Intel(R) Atom instruction support.
169 # This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
170 #
171 # XSAVE:
172 # Select XSAVE extensions support.
173 # This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
174 #
175 # 1G_PAGES:
176 # Enable 1G page size support in long mode.
177 # This option exists only if Bochs compiled with x86-64 support.
178 #
179 # MWAIT_IS_NOP:
180 # When this option is enabled MWAIT will not put the CPU into a sleep state.
181 # This option exists only if Bochs compiled with --enable-monitor-mwait.
182 #
183 # VENDOR_STRING:
184 # Set the CPUID vendor string returned by CPUID(0x0). This should be a
185 # twelve-character ASCII string.
186 #
187 # BRAND_STRING:
188 # Set the CPUID vendor string returned by CPUID(0x80000002 .. 0x80000004).
189 # This should be at most a forty-eight-character ASCII string.
190 #
191 # CPUID_LIMIT_WINNT:
192 # Determine whether to limit maximum CPUID function to 3. This mode is
193 # required to workaround WinNT installation and boot issues.
194 #=======================================================================
195 cpuid: mmx=1, sep=1, sse=sse4_2, xapic=1, aes=1, movbe=1, xsave=1, cpuid_limit_winnt=0
196
197 #=======================================================================
198 # MEMORY
199 # Set the amount of physical memory you want to emulate.
200 #
201 # GUEST:
202 # Set amount of guest physical memory to emulate. The default is 32MB,
203 # the maximum amount limited only by physical address space limitations.
204 #
205 # HOST:
206 # Set amount of host memory you want to allocate for guest RAM emulation.
207 # It is possible to allocate less memory than you want to emulate in guest
208 # system. This will fake guest to see the non-existing memory. Once guest
209 # system touches new memory block it will be dynamically taken from the
210 # memory pool. You will be warned (by FATAL PANIC) in case guest already
211 # used all allocated host memory and wants more.
212 #
213 #=======================================================================
214 memory: guest=128, host=256
215 megs: 48
216
217 #=======================================================================
218 # OPTROMIMAGE[1-4]:
219 # You may now load up to 4 optional ROM images. Be sure to use a
220 # read-only area, typically between C8000 and EFFFF. These optional
221 # ROM images should not overwrite the rombios (located at
222 # F0000-FFFFF) and the videobios (located at C0000-C7FFF).
223 # Those ROM images will be initialized by the bios if they contain
224 # the right signature (0x55AA) and a valid checksum.
225 # It can also be a convenient way to upload some arbitrary code/data
226 # in the simulation, that can be retrieved by the boot loader
227 #=======================================================================
228 #optromimage1: file=optionalrom.bin, address=0xd0000
229 #optromimage2: file=optionalrom.bin, address=0xd1000
230 #optromimage3: file=optionalrom.bin, address=0xd2000
231 #optromimage4: file=optionalrom.bin, address=0xd3000
232
233 #optramimage1: file=/path/file1.img, address=0x0010000
234 #optramimage2: file=/path/file2.img, address=0x0020000
235 #optramimage3: file=/path/file3.img, address=0x0030000
236 #optramimage4: file=/path/file4.img, address=0x0040000
237
238 #=======================================================================
239 # VGAROMIMAGE
240 # You now need to load a VGA ROM BIOS into C0000.
241 #=======================================================================
242 #vgaromimage: file=bios/VGABIOS-elpin-2.40
243 vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest
244 #vgaromimage: file=bios/VGABIOS-lgpl-latest-cirrus
245
246 #=======================================================================
247 # VGA:
248 # Here you can specify the display extension to be used. With the value
249 # 'none' you can use standard VGA with no extension. Other supported
250 # values are 'vbe' for Bochs VBE and 'cirrus' for Cirrus SVGA support.
251 #=======================================================================
252 #vga: extension=cirrus
253 vga: extension=vbe
254
255 #=======================================================================
256 # FLOPPYA:
257 # Point this to pathname of floppy image file or device
258 # This should be of a bootable floppy(image/device) if you're
259 # booting from 'a' (or 'floppy').
260 #
261 # You can set the initial status of the media to 'ejected' or 'inserted'.
262 # floppya: 2_88=path, status=ejected (2.88M 3.5" media)
263 # floppya: 1_44=path, status=inserted (1.44M 3.5" media)
264 # floppya: 1_2=path, status=ejected (1.2M 5.25" media)
265 # floppya: 720k=path, status=inserted (720K 3.5" media)
266 # floppya: 360k=path, status=inserted (360K 5.25" media)
267 # floppya: 320k=path, status=inserted (320K 5.25" media)
268 # floppya: 180k=path, status=inserted (180K 5.25" media)
269 # floppya: 160k=path, status=inserted (160K 5.25" media)
270 # floppya: image=path, status=inserted (guess media type from image size)
271 # floppya: type=1_44 (1.44M 3.5" floppy drive, no media)
272 #
273 # The path should be the name of a disk image file. On Unix, you can use a raw
274 # device name such as /dev/fd0 on Linux. On win32 platforms, use drive letters
275 # such as a: or b: as the path. The parameter 'image' works with image files
276 # only. In that case the size must match one of the supported types.
277 # The parameter 'type' can be used to enable the floppy drive without media
278 # and status specified. Usually the drive type is set up based on the media type.
279 #=======================================================================
280 #floppya: 1_44=/dev/fd0, status=inserted
281 floppya: image=bootdisk.img, status=inserted
282 #floppya: 1_44=/dev/fd0H1440, status=inserted
283 #floppya: 1_2=../1_2, status=inserted
284 #floppya: 1_44=a:, status=inserted
285 #floppya: 1_44=a.img, status=inserted
286 #floppya: 1_44=/dev/rfd0a, status=inserted
287
288 #=======================================================================
289 # FLOPPYB:
290 # See FLOPPYA above for syntax
291 #=======================================================================
292 #floppyb: 1_44=b:, status=inserted
293 #floppyb: 1_44=b.img, status=inserted
294
295 #=======================================================================
296 # ATA0, ATA1, ATA2, ATA3
297 # ATA controller for hard disks and cdroms
298 #
299 # ata[0-3]: enabled=[0|1], ioaddr1=addr, ioaddr2=addr, irq=number
300 #
301 # These options enables up to 4 ata channels. For each channel
302 # the two base io addresses and the irq must be specified.
303 #
304 # ata0 and ata1 are enabled by default with the values shown below
305 #
306 # Examples:
307 # ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
308 # ata1: enabled=1, ioaddr1=0x170, ioaddr2=0x370, irq=15
309 # ata2: enabled=1, ioaddr1=0x1e8, ioaddr2=0x3e0, irq=11
310 # ata3: enabled=1, ioaddr1=0x168, ioaddr2=0x360, irq=9
311 #=======================================================================
312 ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
313 ata1: enabled=1, ioaddr1=0x170, ioaddr2=0x370, irq=15
314 ata2: enabled=0, ioaddr1=0x1e8, ioaddr2=0x3e0, irq=11
315 ata3: enabled=0, ioaddr1=0x168, ioaddr2=0x360, irq=9
316
317 #=======================================================================
318 # ATA[0-3]-MASTER, ATA[0-3]-SLAVE
319 #
320 # This defines the type and characteristics of all attached ata devices:
321 # type= type of attached device [disk|cdrom]
322 # mode= only valid for disks [flat|concat|external|dll|sparse|vmware3]
323 # mode= only valid for disks [undoable|growing|volatile]
324 # path= path of the image
325 # cylinders= only valid for disks
326 # heads= only valid for disks
327 # spt= only valid for disks
328 # status= only valid for cdroms [inserted|ejected]
329 # biosdetect= type of biosdetection [none|auto], only for disks on ata0 [cmos]
330 # translation=type of translation of the bios, only for disks [none|lba|large|rechs|auto]
331 # model= string returned by identify device command
332 # journal= optional filename of the redolog for undoable and volatile disks
333 #
334 # Point this at a hard disk image file, cdrom iso file, or physical cdrom
335 # device. To create a hard disk image, try running bximage. It will help you
336 # choose the size and then suggest a line that works with it.
337 #
338 # In UNIX it may be possible to use a raw device as a Bochs hard disk,
339 # but WE DON'T RECOMMEND IT. In Windows there is no easy way.
340 #
341 # In windows, the drive letter + colon notation should be used for cdroms.
342 # Depending on versions of windows and drivers, you may only be able to
343 # access the "first" cdrom in the system. On MacOSX, use path="drive"
344 # to access the physical drive.
345 #
346 # The path is mandatory for hard disks. Disk geometry autodetection works with
347 # images created by bximage if CHS is set to 0/0/0 (cylinders are calculated
348 # using heads=16 and spt=63). For other hard disk images and modes the
349 # cylinders, heads, and spt are mandatory. In all cases the disk size reported
350 # from the image must be exactly C*H*S*512.
351 #
352 # Default values are:
353 # mode=flat, biosdetect=auto, translation=auto, model="Generic 1234"
354 #
355 # The biosdetect option has currently no effect on the bios
356 #
357 # Examples:
358 # ata0-master: type=disk, mode=flat, path=10M.sample, cylinders=306, heads=4, spt=17
359 # ata0-slave: type=disk, mode=flat, path=20M.sample, cylinders=615, heads=4, spt=17
360 # ata1-master: type=disk, mode=flat, path=30M.sample, cylinders=615, heads=6, spt=17
361 # ata1-slave: type=disk, mode=flat, path=46M.sample, cylinders=940, heads=6, spt=17
362 # ata2-master: type=disk, mode=flat, path=62M.sample, cylinders=940, heads=8, spt=17
363 # ata2-slave: type=disk, mode=flat, path=112M.sample, cylinders=900, heads=15, spt=17
364 # ata3-master: type=disk, mode=flat, path=483M.sample, cylinders=1024, heads=15, spt=63
365 # ata3-slave: type=cdrom, path=iso.sample, status=inserted
366 #=======================================================================
367 #ata0-master: type=disk, mode=flat, path="30M.sample"
368 #ata0-master: type=disk, mode=flat, path="30M.sample", cylinders=615, heads=6, spt=17
369 #ata0-master: type=disk, mode=flat, path="c.img", cylinders=0 # autodetect
370 #ata0-slave: type=cdrom, path=D:, status=inserted
371 #ata0-slave: type=cdrom, path=/dev/cdrom, status=inserted
372 #ata0-slave: type=cdrom, path="drive", status=inserted
373 #ata0-slave: type=cdrom, path=/dev/rcd0d, status=inserted
374
375 #=======================================================================
376 # BOOT:
377 # This defines the boot sequence. Now you can specify up to 3 boot drives,
378 # which can be 'floppy', 'disk', 'cdrom' or 'network' (boot ROM).
379 # Legacy 'a' and 'c' are also supported.
380 # Examples:
381 # boot: floppy
382 # boot: cdrom, disk
383 # boot: network, disk
384 # boot: cdrom, floppy, disk
385 #=======================================================================
386 boot: floppy
387 #boot: disk
388
389 #=======================================================================
390 # CLOCK:
391 # This defines the parameters of the clock inside Bochs:
392 #
393 # SYNC:
394 # This defines the method how to synchronize the Bochs internal time
395 # with realtime. With the value 'none' the Bochs time relies on the IPS
396 # value and no host time synchronization is used. The 'slowdown' method
397 # sacrifices performance to preserve reproducibility while allowing host
398 # time correlation. The 'realtime' method sacrifices reproducibility to
399 # preserve performance and host-time correlation.
400 # It is possible to enable both synchronization methods.
401 #
402 # TIME0:
403 # Specifies the start (boot) time of the virtual machine. Use a time
404 # value as returned by the time(2) system call. If no time0 value is
405 # set or if time0 equal to 1 (special case) or if time0 equal 'local',
406 # the simulation will be started at the current local host time.
407 # If time0 equal to 2 (special case) or if time0 equal 'utc',
408 # the simulation will be started at the current utc time.
409 #
410 # Syntax:
411 # clock: sync=[none|slowdown|realtime|both], time0=[timeValue|local|utc]
412 #
413 # Example:
414 # clock: sync=none, time0=local # Now (localtime)
415 # clock: sync=slowdown, time0=315529200 # Tue Jan 1 00:00:00 1980
416 # clock: sync=none, time0=631148400 # Mon Jan 1 00:00:00 1990
417 # clock: sync=realtime, time0=938581955 # Wed Sep 29 07:12:35 1999
418 # clock: sync=realtime, time0=946681200 # Sat Jan 1 00:00:00 2000
419 # clock: sync=none, time0=1 # Now (localtime)
420 # clock: sync=none, time0=utc # Now (utc/gmt)
421 #
422 # Default value are sync=none, time0=local
423 #=======================================================================
424 #clock: sync=none, time0=local
425
426
427 #=======================================================================
428 # FLOPPY_BOOTSIG_CHECK: disabled=[0|1]
429 # Enables or disables the 0xaa55 signature check on boot floppies
430 # Defaults to disabled=0
431 # Examples:
432 # floppy_bootsig_check: disabled=0
433 # floppy_bootsig_check: disabled=1
434 #=======================================================================
435 floppy_bootsig_check: disabled=0
436
437 #=======================================================================
438 # LOG:
439 # Give the path of the log file you'd like Bochs debug and misc. verbiage
440 # to be written to. If you don't use this option or set the filename to
441 # '-' the output is written to the console. If you really don't want it,
442 # make it "/dev/null" (Unix) or "nul" (win32). :^(
443 #
444 # Examples:
445 # log: ./bochs.out
446 # log: /dev/tty
447 #=======================================================================
448 #log: /dev/null
449 #log: bochsout.txt
450
451 #=======================================================================
452 # LOGPREFIX:
453 # This handles the format of the string prepended to each log line.
454 # You may use those special tokens :
455 # %t : 11 decimal digits timer tick
456 # %i : 8 hexadecimal digits of cpu current eip (ignored in SMP configuration)
457 # %e : 1 character event type ('i'nfo, 'd'ebug, 'p'anic, 'e'rror)
458 # %d : 5 characters string of the device, between brackets
459 #
460 # Default : %t%e%d
461 # Examples:
462 # logprefix: %t-%e-@%i-%d
463 # logprefix: %i%e%d
464 #=======================================================================
465 #logprefix: %t%e%d
466
467 #=======================================================================
468 # LOG CONTROLS
469 #
470 # Bochs now has four severity levels for event logging.
471 # panic: cannot proceed. If you choose to continue after a panic,
472 # don't be surprised if you get strange behavior or crashes.
473 # error: something went wrong, but it is probably safe to continue the
474 # simulation.
475 # info: interesting or useful messages.
476 # debug: messages useful only when debugging the code. This may
477 # spit out thousands per second.
478 #
479 # For events of each level, you can choose to crash, report, or ignore.
480 # TODO: allow choice based on the facility: e.g. crash on panics from
481 # everything except the cdrom, and only report those.
482 #
483 # If you are experiencing many panics, it can be helpful to change
484 # the panic action to report instead of fatal. However, be aware
485 # that anything executed after a panic is uncharted territory and can
486 # cause bochs to become unstable. The panic is a "graceful exit," so
487 # if you disable it you may get a spectacular disaster instead.
488 #=======================================================================
489 panic: action=ask
490 error: action=report
491 info: action=report
492 debug: action=ignore
493 #pass: action=fatal
494
495 #=======================================================================
496 # DEBUGGER_LOG:
497 # Give the path of the log file you'd like Bochs to log debugger output.
498 # If you really don't want it, make it /dev/null or '-'. :^(
499 #
500 # Examples:
501 # debugger_log: ./debugger.out
502 #=======================================================================
503 #debugger_log: /dev/null
504 #debugger_log: debugger.out
505 debugger_log: -
506
507 #=======================================================================
508 # COM1, COM2, COM3, COM4:
509 # This defines a serial port (UART type 16550A). In the 'term' you can specify
510 # a device to use as com1. This can be a real serial line, or a pty. To use
511 # a pty (under X/Unix), create two windows (xterms, usually). One of them will
512 # run bochs, and the other will act as com1. Find out the tty the com1
513 # window using the `tty' command, and use that as the `dev' parameter.
514 # Then do `sleep 1000000' in the com1 window to keep the shell from
515 # messing with things, and run bochs in the other window. Serial I/O to
516 # com1 (port 0x3f8) will all go to the other window.
517 # In socket* and pipe* (win32 only) modes Bochs becomes either socket/named pipe
518 # client or server. In client mode it connects to an already running server (if
519 # connection fails Bochs treats com port as not connected). In server mode it
520 # opens socket/named pipe and waits until a client application connects to it
521 # before starting simulation. This mode is useful for remote debugging (e.g.
522 # with gdb's "target remote host:port" command or windbg's command line option
523 # -k com:pipe,port=\\.\pipe\pipename). Note: 'socket' is a shorthand for
524 # 'socket-client' and 'pipe' for 'pipe-client'. Socket modes use simple TCP
525 # communication, pipe modes use duplex byte mode pipes.
526 # Other serial modes are 'null' (no input/output), 'file' (output to a file
527 # specified as the 'dev' parameter), 'raw' (use the real serial port - under
528 # construction for win32), 'mouse' (standard serial mouse - requires
529 # mouse option setting 'type=serial', 'type=serial_wheel' or 'type=serial_msys').
530 #
531 # Examples:
532 # com1: enabled=1, mode=null
533 # com1: enabled=1, mode=mouse
534 # com2: enabled=1, mode=file, dev=serial.out
535 # com3: enabled=1, mode=raw, dev=com1
536 # com3: enabled=1, mode=socket-client, dev=localhost:8888
537 # com3: enabled=1, mode=socket-server, dev=localhost:8888
538 # com4: enabled=1, mode=pipe-client, dev=\\.\pipe\mypipe
539 # com4: enabled=1, mode=pipe-server, dev=\\.\pipe\mypipe
540 #=======================================================================
541 #com1: enabled=1, mode=term, dev=/dev/ttyp9
542
543
544 #=======================================================================
545 # PARPORT1, PARPORT2:
546 # This defines a parallel (printer) port. When turned on and an output file is
547 # defined the emulated printer port sends characters printed by the guest OS
548 # into the output file. On some platforms a device filename can be used to
549 # send the data to the real parallel port (e.g. "/dev/lp0" on Linux, "lpt1" on
550 # win32 platforms).
551 #
552 # Examples:
553 # parport1: enabled=1, file="parport.out"
554 # parport2: enabled=1, file="/dev/lp0"
555 # parport1: enabled=0
556 #=======================================================================
557 #parport1: enabled=1, file="parport.out"
558
559 #=======================================================================
560 # SB16:
561 # This defines the SB16 sound emulation. It can have several of the
562 # following properties.
563 # All properties are in the format sb16: property=value
564 # midi: The filename is where the midi data is sent. This can be a
565 # device or just a file if you want to record the midi data.
566 # midimode:
567 # 0=no data
568 # 1=output to device (system dependent. midi denotes the device driver)
569 # 2=SMF file output, including headers
570 # 3=output the midi data stream to the file (no midi headers and no
571 # delta times, just command and data bytes)
572 # wave: This is the device/file where wave output is stored
573 # wavemode:
574 # 0=no data
575 # 1=output to device (system dependent. wave denotes the device driver)
576 # 2=VOC file output, incl. headers
577 # 3=output the raw wave stream to the file
578 # log: The file to write the sb16 emulator messages to.
579 # loglevel:
580 # 0=no log
581 # 1=resource changes, midi program and bank changes
582 # 2=severe errors
583 # 3=all errors
584 # 4=all errors plus all port accesses
585 # 5=all errors and port accesses plus a lot of extra info
586 # dmatimer:
587 # microseconds per second for a DMA cycle. Make it smaller to fix
588 # non-continuous sound. 750000 is usually a good value. This needs a
589 # reasonably correct setting for the IPS parameter of the CPU option.
590 #
591 # Examples for output devices:
592 # sb16: midimode=1, midi="", wavemode=1, wave="" # win32
593 # sb16: midimode=1, midi=alsa:128:0, wavemode=1, wave=alsa # Linux with ALSA
594 #=======================================================================
595 #sb16: midimode=1, midi=/dev/midi00, wavemode=1, wave=/dev/dsp, loglevel=2, log=sb16.log, dmatimer=600000
596
597 #=======================================================================
598 # VGA_UPDATE_INTERVAL:
599 # Video memory is scanned for updates and screen updated every so many
600 # virtual seconds. The default is 50000, about 20Hz. Keep in mind that
601 # you must tweak the 'cpu: ips=N' directive to be as close to the number
602 # of emulated instructions-per-second your workstation can do, for this
603 # to be accurate.
604 #
605 # Examples:
606 # vga_update_interval: 250000
607 #=======================================================================
608 vga_update_interval: 300000
609
610 # using for Winstone '98 tests
611 #vga_update_interval: 100000
612
613 #=======================================================================
614 # KEYBOARD_SERIAL_DELAY:
615 # Approximate time in microseconds that it takes one character to
616 # be transfered from the keyboard to controller over the serial path.
617 # Examples:
618 # keyboard_serial_delay: 200
619 #=======================================================================
620 keyboard_serial_delay: 250
621
622 #=======================================================================
623 # KEYBOARD_PASTE_DELAY:
624 # Approximate time in microseconds between attempts to paste
625 # characters to the keyboard controller. This leaves time for the
626 # guest os to deal with the flow of characters. The ideal setting
627 # depends on how your operating system processes characters. The
628 # default of 100000 usec (.1 seconds) was chosen because it works
629 # consistently in Windows.
630 #
631 # If your OS is losing characters during a paste, increase the paste
632 # delay until it stops losing characters.
633 #
634 # Examples:
635 # keyboard_paste_delay: 100000
636 #=======================================================================
637 keyboard_paste_delay: 100000
638
639 #=======================================================================
640 # MOUSE:
641 # The Bochs gui creates mouse "events" unless the 'enabled' option is
642 # set to 0. The hardware emulation itself is not disabled by this.
643 # Unless you have a particular reason for enabling the mouse by default,
644 # it is recommended that you leave it off. You can also toggle the mouse
645 # usage at runtime (control key + middle mouse button on X11, SDL,
646 # wxWidgets and Win32).
647 # With the mouse type option you can select the type of mouse to emulate.
648 # The default value is 'ps2'. The other choices are 'imps2' (wheel mouse
649 # on PS/2), 'serial', 'serial_wheel' and 'serial_msys' (one com port requires
650 # setting 'mode=mouse'). To connect a mouse to an USB port, see the 'usb_uhci'
651 # or 'usb_ohci' option (requires PCI and USB support).
652 #
653 # Examples:
654 # mouse: enabled=1
655 # mouse: enabled=1, type=imps2
656 # mouse: enabled=1, type=serial
657 # mouse: enabled=0
658 #=======================================================================
659 mouse: enabled=0
660
661 #=======================================================================
662 # private_colormap: Request that the GUI create and use it's own
663 # non-shared colormap. This colormap will be used
664 # when in the bochs window. If not enabled, a
665 # shared colormap scheme may be used. Not implemented
666 # on all GUI's.
667 #
668 # Examples:
669 # private_colormap: enabled=1
670 # private_colormap: enabled=0
671 #=======================================================================
672 private_colormap: enabled=0
673
674 #=======================================================================
675 # fullscreen: ONLY IMPLEMENTED ON AMIGA
676 # Request that Bochs occupy the entire screen instead of a
677 # window.
678 #
679 # Examples:
680 # fullscreen: enabled=0
681 # fullscreen: enabled=1
682 #=======================================================================
683 #fullscreen: enabled=0
684 #screenmode: name="sample"
685
686 #=======================================================================
687 # ne2k: NE2000 compatible ethernet adapter
688 #
689 # Examples:
690 # ne2k: ioaddr=IOADDR, irq=IRQ, mac=MACADDR, ethmod=MODULE, ethdev=DEVICE, script=SCRIPT
691 #
692 # ioaddr, irq: You probably won't need to change ioaddr and irq, unless there
693 # are IRQ conflicts. These arguments are ignored when assign the ne2k to a
694 # PCI slot.
695 #
696 # mac: The MAC address MUST NOT match the address of any machine on the net.
697 # Also, the first byte must be an even number (bit 0 set means a multicast
698 # address), and you cannot use ff:ff:ff:ff:ff:ff because that's the broadcast
699 # address. For the ethertap module, you must use fe:fd:00:00:00:01. There may
700 # be other restrictions too. To be safe, just use the b0:c4... address.
701 #
702 # ethdev: The ethdev value is the name of the network interface on your host
703 # platform. On UNIX machines, you can get the name by running ifconfig. On
704 # Windows machines, you must run niclist to get the name of the ethdev.
705 # Niclist source code is in misc/niclist.c and it is included in Windows
706 # binary releases.
707 #
708 # script: The script value is optional, and is the name of a script that
709 # is executed after bochs initialize the network interface. You can use
710 # this script to configure this network interface, or enable masquerading.
711 # This is mainly useful for the tun/tap devices that only exist during
712 # Bochs execution. The network interface name is supplied to the script
713 # as first parameter
714 #
715 # If you don't want to make connections to any physical networks,
716 # you can use the following 'ethmod's to simulate a virtual network.
717 # null: All packets are discarded, but logged to a few files.
718 # arpback: ARP is simulated. Disabled by default.
719 # vde: Virtual Distributed Ethernet
720 # vnet: ARP, ICMP-echo(ping), DHCP and read/write TFTP are simulated.
721 # The virtual host uses 192.168.10.1.
722 # DHCP assigns 192.168.10.2 to the guest.
723 # TFTP uses the ethdev value for the root directory and doesn't
724 # overwrite files.
725 #
726 #=======================================================================
727 # ne2k: ioaddr=0x300, irq=9, mac=fe:fd:00:00:00:01, ethmod=fbsd, ethdev=en0 #macosx
728 # ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:00, ethmod=fbsd, ethdev=xl0
729 # ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:00, ethmod=linux, ethdev=eth0
730 # ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:01, ethmod=win32, ethdev=MYCARD
731 # ne2k: ioaddr=0x300, irq=9, mac=fe:fd:00:00:00:01, ethmod=tap, ethdev=tap0
732 # ne2k: ioaddr=0x300, irq=9, mac=fe:fd:00:00:00:01, ethmod=tuntap, ethdev=/dev/net/tun0, script=./tunconfig
733 # ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:01, ethmod=null, ethdev=eth0
734 # ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:01, ethmod=vde, ethdev="/tmp/vde.ctl"
735 # ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:01, ethmod=vnet, ethdev="c:/temp"
736
737 #=======================================================================
738 # pnic: Bochs/Etherboot pseudo-NIC
739 #
740 # Example:
741 # pnic: enabled=1, mac=MACADDR, ethmod=MODULE, ethdev=DEVICE, script=SCRIPT
742 #
743 # The pseudo-NIC accepts the same syntax (for mac, ethmod, ethdev, script) and
744 # supports the same networking modules as the NE2000 adapter. In addition to
745 # this, it must be assigned to a PCI slot.
746 #=======================================================================
747 #pnic: enabled=1, mac=b0:c4:20:00:00:00, ethmod=vnet
748
749 #=======================================================================
750 # KEYBOARD_MAPPING:
751 # This enables a remap of a physical localized keyboard to a
752 # virtualized us keyboard, as the PC architecture expects.
753 # If enabled, the keymap file must be specified.
754 #
755 # Examples:
756 # keyboard_mapping: enabled=1, map=gui/keymaps/x11-pc-de.map
757 #=======================================================================
758 keyboard_mapping: enabled=0, map=
759
760 #=======================================================================
761 # KEYBOARD_TYPE:
762 # Type of keyboard return by a "identify keyboard" command to the
763 # keyboard controler. It must be one of "xt", "at" or "mf".
764 # Defaults to "mf". It should be ok for almost everybody. A known
765 # exception is french macs, that do have a "at"-like keyboard.
766 #
767 # Examples:
768 # keyboard_type: mf
769 #=======================================================================
770 #keyboard_type: mf
771
772 #=======================================================================
773 # USER_SHORTCUT:
774 # This defines the keyboard shortcut to be sent when you press the "user"
775 # button in the headerbar. The shortcut string is a combination of maximum
776 # 3 key names (listed below) separated with a '-' character.
777 # Valid key names:
778 # "alt", "bksl", "bksp", "ctrl", "del", "down", "end", "enter", "esc",
779 # "f1", ... "f12", "home", "ins", "left", "menu", "minus", "pgdwn", "pgup",
780 # "plus", "right", "shift", "space", "tab", "up", "win", "print" and "power".
781 #
782 # Example:
783 # user_shortcut: keys=ctrl-alt-del
784 #=======================================================================
785 #user_shortcut: keys=ctrl-alt-del
786
787 #=======================================================================
788 # I440FXSUPPORT:
789 # This option controls the presence of the i440FX PCI chipset. You can
790 # also specify the devices connected to PCI slots. Up to 5 slots are
791 # available now. These devices are currently supported: ne2k, pcivga,
792 # pcidev, pcipnic and usb_ohci. If Bochs is compiled with Cirrus SVGA
793 # support you'll have the additional choice 'cirrus'.
794 #
795 # Example:
796 # i440fxsupport: enabled=1, slot1=pcivga, slot2=ne2k
797 #=======================================================================
798 i440fxsupport: enabled=1
799
800 #=======================================================================
801 # USB_UHCI:
802 # This option controls the presence of the USB root hub which is a part
803 # of the i440FX PCI chipset. With the portX option you can connect devices
804 # to the hub (currently supported: 'mouse', 'tablet', 'keypad', 'disk', 'cdrom'
805 # 'hub' and 'printer').
806 #
807 # If you connect the mouse or tablet to one of the ports, Bochs forwards the
808 # mouse movement data to the USB device instead of the selected mouse type.
809 # When connecting the keypad to one of the ports, Bochs forwards the input of
810 # the numeric keypad to the USB device instead of the PS/2 keyboard.
811 #
812 # To connect a flat image as an USB hardisk you can use the 'disk' device with
813 # the path to the image separated with a colon (see below). To emulate an USB
814 # cdrom you can use the 'cdrom' device name and the path to an ISO image or raw
815 # device name also separated with a colon.
816 #
817 # The device name 'hub' connects an external hub with max. 8 ports (default: 4)
818 # to the root hub. To specify the number of ports you have to add the value
819 # separated with a colon. Connecting devices to the external hub ports is only
820 # available in the runtime configuration.
821 #
822 # The device 'printer' emulates the HP Deskjet 920C printer. The PCL data is
823 # sent to a file specified in bochsrc.txt. The current code appends the PCL
824 # code to the file if the file already existed. It would probably be nice to
825 # overwrite the file instead, asking user first.
826 #=======================================================================
827 #usb_uhci: enabled=1
828 #usb_uhci: enabled=1, port1=mouse, port2=disk:usbdisk.img
829 #usb_uhci: enabled=1, port1=hub:7, port2=cdrom:image.iso
830
831 #=======================================================================
832 # USB_OHCI:
833 # This option controls the presence of the USB OHCI host controller with a
834 # 2-port hub. The portX option accepts the same device types with the same
835 # syntax as the UHCI controller (see above). The OHCI HC must be assigned to
836 # a PCI slot.
837 #=======================================================================
838 #usb_ohci: enabled=1
839 #usb_ohci: enabled=1, port1=printer:usbprinter.bin
840
841 #=======================================================================
842 # CMOSIMAGE:
843 # This defines image file that can be loaded into the CMOS RAM at startup.
844 # The rtc_init parameter controls whether initialize the RTC with values stored
845 # in the image. By default the time0 argument given to the clock option is used.
846 # With 'rtc_init=image' the image is the source for the initial time.
847 #
848 # Example:
849 # cmosimage: file=cmos.img, rtc_init=image
850 #=======================================================================
851 #cmosimage: file=cmos.img, rtc_init=time0
852
853 #=======================================================================
854 # MAGIC_BREAK:
855 # This enables the "magic breakpoint" feature when using the debugger.
856 # The useless cpu instruction XCHG BX, BX causes Bochs to enter the
857 # debugger mode. This might be useful for software development.
858 #
859 # Example:
860 # magic_break: enabled=1
861 #=======================================================================
862 #magic_break: enabled=1
863
864 #=======================================================================
865 # PORT_E9_HACK:
866 # The 0xE9 port doesn't exists in normal ISA architecture. However, we
867 # define a convention here, to display on the console of the system running
868 # Bochs anything that is written to it. The idea is to provide debug output
869 # very early when writing BIOS or OS code for example, without having to
870 # bother with setting up a serial port or etc. Reading from port 0xE9 will
871 # will return 0xe9 to let you know if the feature is available.
872 # Leave this 0 unless you have a reason to use it.
873 #
874 # Example:
875 # port_e9_hack: enabled=1
876 #=======================================================================
877 #port_e9_hack: enabled=1
878
879 #=======================================================================
880 # DEBUG_SYMBOLS:
881 # This loads symbols from the specified file for use in Bochs' internal
882 # debugger. Symbols are loaded into global context. This is equivalent to
883 # issuing ldsym debugger command at start up.
884 #
885 # Example:
886 # debug_symbols: file="kernel.sym"
887 # debug_symbols: file="kernel.sym", offset=0x80000000
888 #=======================================================================
889 #debug_symbols: file="kernel.sym"
890
891 #=======================================================================
892 # other stuff
893 #=======================================================================
894 #load32bitOSImage: os=nullkernel, path=../kernel.img, iolog=../vga_io.log
895 #load32bitOSImage: os=linux, path=../linux.img, iolog=../vga_io.log, initrd=../initrd.img
896 #text_snapshot_check: enabled=1
897 #print_timestamps: enabled=1
898
899 #-------------------------
900 # PCI host device mapping
901 #-------------------------
902 #pcidev: vendor=0x1234, device=0x5678
903
904 #=======================================================================
905 # GDBSTUB:
906 # Enable GDB stub. See user documentation for details.
907 # Default value is enabled=0.
908 #=======================================================================
909 #gdbstub: enabled=0, port=1234, text_base=0, data_base=0, bss_base=0
910
911 #=======================================================================
912 # PLUGIN_CTRL:
913 # Controls the presence of optional plugins without a separate option.
914 # By default all existing plugins are enabled. These plugins are currently
915 # supported: 'acpi', 'biosdev', 'extfpuirq', 'gameport', 'iodebug',
916 # 'pci_ide', 'speaker' and 'unmapped'.
917 #=======================================================================
918 #plugin_ctrl: biosdev=0, speaker=0
919
920 #=======================================================================
921 # USER_PLUGIN:
922 # Load user-defined plugin. This option is available only if Bochs is
923 # compiled with plugin support. Maximum 8 different plugins are supported.
924 # See the example in the Bochs sources how to write a plugin device.
925 #=======================================================================
926 #user_plugin: name=testdev
927
928 #=======================================================================
929 # for Macintosh, use the style of pathnames in the following
930 # examples.
931 #
932 # vgaromimage: :bios:VGABIOS-elpin-2.40
933 # romimage: file=:bios:BIOS-bochs-latest, address=0xf0000
934 # floppya: 1_44=[fd:], status=inserted
935 #=======================================================================
936
937 #=======================================================================
938 # MEGS
939 # Set the number of Megabytes of physical memory you want to emulate.
940 # The default is 32MB, most OS's won't need more than that.
941 # The maximum amount of memory supported is 2048Mb.
942 # The 'MEGS' option is deprecated. Use 'MEMORY' option instead.
943 #=======================================================================
944 #megs: 256
945 #megs: 128
946 #megs: 64
947 #megs: 32
948 #megs: 16
949 #megs: 8