Mercurial > lcfOS
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 |