e61d00351f
in BRANCH-smp-bochs revisions. - The general task was to make multiple CPU's which communicate through their APICs. So instead of BX_CPU and BX_MEM, we now have BX_CPU(x) and BX_MEM(y). For an SMP simulation you have several processors in a shared memory space, so there might be processors BX_CPU(0..3) but only one memory space BX_MEM(0). For cosimulation, you could have BX_CPU(0) with BX_MEM(0), then BX_CPU(1) with BX_MEM(1). WARNING: Cosimulation is almost certainly broken by the SMP changes. - to simulate multiple CPUs, you have to give each CPU time to execute in turn. This is currently implemented using debugger guards. The cpu loop steps one CPU for a few instructions, then steps the next CPU for a few instructions, etc. - there is some limited support in the debugger for two CPUs, for example printing information from each CPU when single stepping.
265 lines
11 KiB
Plaintext
265 lines
11 KiB
Plaintext
# You many now use double quotes around pathnames, in case
|
|
# your pathname includes spaces.
|
|
|
|
#=======================================================================
|
|
# ROMIMAGE:
|
|
# You now need to load a ROM BIOS into F0000-FFFFF. I've wiped
|
|
# out most of the BIOS hooks, and replace them with real BIOS
|
|
# support. Normally, you can use a precompiled BIOS in the bios/
|
|
# directory, named BIOS-bochs-yymmdd. Use the latest one in there.
|
|
#=======================================================================
|
|
#romimage: bios/BIOS-bochs-970717a
|
|
romimage: file=bios/BIOS-bochs-2001_0517, address=0xf0000
|
|
#romimage: file=bios/BIOS-bochs-2-processors, address=0xf0000
|
|
#romimage: file=bios/BIOS-bochs-4-processors, address=0xf0000
|
|
#romimage: file=bios/rombios.bin, address=0xf0000
|
|
|
|
#=======================================================================
|
|
# MEGS
|
|
# set this to the default number of Megabytes of memory you want
|
|
# to emulate. You may also pass the '-megs xyz' option to bochs
|
|
#=======================================================================
|
|
#megs: 256
|
|
#megs: 128
|
|
#megs: 64
|
|
megs: 32
|
|
#megs: 16
|
|
#megs: 8
|
|
|
|
#=======================================================================
|
|
# VGAROMIMAGE
|
|
# You now need to load a VGA ROM BIOS into C0000.
|
|
#=======================================================================
|
|
vgaromimage: bios/VGABIOS-elpin-2.40
|
|
|
|
#=======================================================================
|
|
# FLOPPYA:
|
|
# Point this to pathname of floppy image file or device
|
|
# This should be of a bootable floppy(image/device) if you're booting from 'a'.
|
|
# You can set the initial status of the media to 'ejected' or 'inserted'.
|
|
# floppya: 2_88=path, status=ejected (2.88M 3.5" floppy)
|
|
# floppya: 1_44=path, status=inserted (1.44M 3.5" floppy)
|
|
# floppya: 1_2=path, status=ejected (1.2M 5.25" floppy)
|
|
# floppya: 720k=path, status=inserted (720K 3.5" floppy)
|
|
#=======================================================================
|
|
#floppya: file=../144
|
|
#floppya: file=/dev/fd0
|
|
#floppya: 1_44=/dev/fd0H1440
|
|
#floppya: 1_2=../1_2
|
|
|
|
#=======================================================================
|
|
# FLOPPYB:
|
|
# See FLOPPYA above
|
|
#=======================================================================
|
|
|
|
|
|
|
|
|
|
#=======================================================================
|
|
# DISKC: file=, cyl=, heads=, spt=
|
|
# Point this at a 10M, 20M, or 30M hard disk image file.
|
|
# Read INSTALL to create one.
|
|
# Examples:
|
|
# diskc: file=10M.sample, cyl=306, heads=4, spt=17
|
|
# diskc: file=20M.sample, cyl=615, heads=4, spt=17
|
|
# diskc: file=30M.sample, cyl=615, heads=6, spt=17
|
|
# diskc: file=46M.sample, cyl=940, heads=6, spt=17
|
|
# diskc: file=62M.sample, cyl=940, heads=8, spt=17
|
|
# diskc: file=112M.sample, cyl=900, heads=15, spt=17
|
|
# diskc: file=483M.sample, cyl=1024, heads=15, spt=63
|
|
#=======================================================================
|
|
diskc: file="../10M.vga", cyl=306, heads=4, spt=17
|
|
|
|
#=======================================================================
|
|
* CDROM
|
|
# cdromd: dev=/dev/cdrom, status=inserted
|
|
# cdromd: dev=/dev/cdrom, status=ejected
|
|
#=======================================================================
|
|
#cdromd: dev=/dev/cdrom, status=ejected
|
|
cdromd: dev=/dev/cdrom, status=inserted
|
|
|
|
#=======================================================================
|
|
# NEWHARDDRIVESUPPORT: enabled=[0|1]
|
|
# As of cvs version on 5/17/2001, newharddrivesupport is on by default.
|
|
#=======================================================================
|
|
#newharddrivesupport: enabled=1
|
|
|
|
#=======================================================================
|
|
# BOOT:
|
|
# This defines your boot drive. You can either boot from 'a' or 'c'.
|
|
# Examples:
|
|
# boot: c
|
|
# boot: a
|
|
#=======================================================================
|
|
#boot: a
|
|
boot: c
|
|
|
|
#=======================================================================
|
|
# LOG:
|
|
# Give the path of the log file you'd like Bochs debug and misc. verbage
|
|
# to be written to. If you really don't want it, make it /dev/null. :^(
|
|
#
|
|
# Examples:
|
|
# log: ./bochs.out
|
|
# log: /dev/tty
|
|
#=======================================================================
|
|
#log: /dev/null
|
|
log: bochsout.txt
|
|
|
|
#=======================================================================
|
|
# LOG CONTROLS
|
|
#
|
|
# Bochs now has four severity levels for event logging.
|
|
# panic: cannot proceed. If you choose to continue after a panic,
|
|
# don't be surprised if you get strange behavior or crashes.
|
|
# error: something went wrong, but it is probably safe to continue the
|
|
# simulation.
|
|
# info: interesting or useful messages.
|
|
# debug: messages useful only when debugging the code. This may
|
|
# spit out thousands per second.
|
|
#
|
|
# For events of each level, you can choose to crash, report, or ignore.
|
|
# TODO: allow choice based on the facility: e.g. report debug messages
|
|
# from the cdrom but ignore debug messages from everything else.
|
|
#=======================================================================
|
|
panic: action=fatal
|
|
error: action=report
|
|
info: action=report
|
|
debug: action=ignore
|
|
|
|
#=======================================================================
|
|
# SB16:
|
|
# This defines the SB16 sound emulation. It can have several of the
|
|
# following properties.
|
|
# All properties are in the format sb16: property=value
|
|
# midi: The filename is where the midi data is sent. This can be a
|
|
# device or just a file if you want to record the midi data.
|
|
# midimode:
|
|
# 0=no data
|
|
# 1=output to device (system dependent. midi denotes the device driver)
|
|
# 2=SMF file output, including headers
|
|
# 3=output the midi data stream to the file (no midi headers and no
|
|
# delta times, just command and data bytes)
|
|
# wave: This is the device/file where wave output is stored
|
|
# wavemode:
|
|
# 0=no data
|
|
# 1=output to device (system dependent. wave denotes the device driver)
|
|
# 2=VOC file output, incl. headers
|
|
# 3=output the raw wave stream to the file
|
|
# log: The file to write the sb16 emulator messages to.
|
|
# loglevel:
|
|
# 0=no log
|
|
# 1=only midi program and bank changes
|
|
# 2=severe errors
|
|
# 3=all errors
|
|
# 4=all errors plus all port accesses
|
|
# 5=all errors and port accesses plus a lot of extra info
|
|
# dmatimer:
|
|
# microseconds per second for a DMA cycle. Make it smaller to fix
|
|
# non-continous sound. 750000 is usually a good value. This needs a
|
|
# reasonably correct setting for IPS.
|
|
#
|
|
# For an example look at the next line:
|
|
#=======================================================================
|
|
|
|
#sb16: midimode=1, midi=/dev/midi00, wavemode=1, wave=/dev/dsp, loglevel=2, log=sb16.log, dmatimer=600000
|
|
|
|
#=======================================================================
|
|
# VGA_UPDATE_INTERVAL:
|
|
# Video memory is scanned for updates and screen updated every so many
|
|
# virtual seconds. The default is 300000, about 3Hz. This is generally
|
|
# plenty. Keep in mind that you must tweak the 'ips:' directive
|
|
# to be as close to the number of emulated instructions-per-second
|
|
# your workstation can do, for this to be accurate.
|
|
#
|
|
# Examples:
|
|
# vga_update_interval: 250000
|
|
#=======================================================================
|
|
vga_update_interval: 300000
|
|
|
|
# using for Winstone '98 tests
|
|
#vga_update_interval: 100000
|
|
|
|
#=======================================================================
|
|
# KEYBOARD_SERIAL_DELAY:
|
|
# Approximate time in microseconds that it takes one character to
|
|
# be transfered from the keyboard to controller over the serial path.
|
|
# Examples:
|
|
# keyboard_serial_delay: 200
|
|
#=======================================================================
|
|
keyboard_serial_delay: 200
|
|
|
|
#=======================================================================
|
|
# FLOPPY_COMMAND_DELAY:
|
|
# Time in microseconds to wait before completing some floppy commands
|
|
# such as read/write/seek/etc, which normally have a delay associated.
|
|
# I had this hardwired to 50,000 before.
|
|
#
|
|
# Examples:
|
|
# floppy_command_delay: 50000
|
|
#=======================================================================
|
|
floppy_command_delay: 500
|
|
|
|
#=======================================================================
|
|
# IPS:
|
|
# Emulated Instructions Per Second. This is the number of IPS that bochs
|
|
# is capable of running on your machine. Read the note in config.h
|
|
# on how to find this. Make sure to recompile after.
|
|
#
|
|
# Examples:
|
|
#
|
|
# machine Mips
|
|
# ________________________________________________________________
|
|
# 400Mhz Pentium II with Linux 2.0.36/egcs-1.0.3 1 to 1.8Mips
|
|
# 166Mhz 64bit Sparc with Solaris 2.x approx 0.75 Mips
|
|
# 200Mhz Pentium with Linux 2.x approx 0.5 Mips
|
|
#=======================================================================
|
|
ips: 1000000
|
|
|
|
#=======================================================================
|
|
# mouse: Not used in any of the GUI specific modules, but the option
|
|
# bx_options.mouse_enabled is set to this value. The idea,
|
|
# is that the GUI code should not generate mouse events when
|
|
# not enabled. The hardware emualation itself is not disabled
|
|
# by this. This is to facilitate deterministic runs of bochs.
|
|
#
|
|
# Examples:
|
|
# mouse: enabled=1
|
|
# mouse: enabled=0
|
|
#=======================================================================
|
|
mouse: enabled=0
|
|
|
|
#=======================================================================
|
|
# private_colormap: Request that the GUI create and use it's own
|
|
# non-shared colormap. This colormap will be used
|
|
# when in the bochs window. If not enabled, a
|
|
# shared colormap scheme may be used. Not implemented
|
|
# on all GUI's.
|
|
#
|
|
# Examples:
|
|
# private_colormap: enabled=1
|
|
# private_colormap: enabled=0
|
|
#=======================================================================
|
|
private_colormap: enabled=0
|
|
|
|
#=======================================================================
|
|
# other stuff
|
|
#=======================================================================
|
|
# magic_break
|
|
# ne2k: ioaddr=0x240, irq=9, mac=b0:c4:20:00:00:00
|
|
#load32bitOSImage: os=nullkernel, path=../kernel.img, iolog=../vga_io.log
|
|
#load32bitOSImage: os=linux, path=../linux.img, iolog=../vga_io.log, initrd=../initrd.img
|
|
i440fxsupport: enabled=0
|
|
#time0: 938581955
|
|
|
|
|
|
#=======================================================================
|
|
# for Macintosh, use the style of pathnames in the following
|
|
# examples.
|
|
#
|
|
# vgaromimage: :bios:VGABIOS-elpin-2.20
|
|
# romimage: file=:bios:BIOS-bochs-981222a, address=0xf0000
|
|
# floppya: 1_44=[fd:], status=inserted
|
|
#=======================================================================
|
|
|