- i440fxsupport is now enabled by default if compiled in

- missing reset of PCI slot options added
- parsing of i440fxsupport config line rewritten
- vga_update_interval default value changed to 40000 and docs updated
- some more documentation updated including default values for some bochsrc options
This commit is contained in:
Volker Ruppert 2005-11-13 14:26:02 +00:00
parent 8be27bf03d
commit aa04797148
4 changed files with 63 additions and 69 deletions

View File

@ -475,10 +475,10 @@ parport1: enabled=1, file="parport.out"
#=======================================================================
# 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.
# virtual seconds. The default is 40000, about 25Hz. 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

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////
// $Id: config.cc,v 1.58 2005-11-12 10:38:51 vruppert Exp $
// $Id: config.cc,v 1.59 2005-11-13 14:26:02 vruppert Exp $
/////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2002 MandrakeSoft S.A.
@ -1095,7 +1095,7 @@ void bx_init_options ()
bx_options.Oi440FXSupport = new bx_param_bool_c (BXP_I440FX_SUPPORT,
"Enable i440FX PCI Support",
"Controls whether to emulate the i440FX PCI chipset",
0);
BX_SUPPORT_PCI);
*pci_conf_ptr++ = bx_options.Oi440FXSupport;
// pci slots
for (i=0; i<BX_N_PCI_SLOTS; i++) {
@ -1137,7 +1137,7 @@ void bx_init_options ()
"VGA Update Interval",
"Number of microseconds between VGA updates",
1, BX_MAX_BIT32U,
25000);
40000);
bx_options.Ovga_update_interval->set_handler (bx_param_handler);
bx_options.Ovga_update_interval->set_runtime_param (1);
bx_options.Ovga_update_interval->set_ask_format ("Type a new value for VGA update interval: [%d] ");
@ -1834,10 +1834,6 @@ void bx_reset_options ()
bx_options.pnic.Oethdev->reset();
bx_options.pnic.Oscript->reset();
// pcidev
bx_options.pcidev.Ovendor->reset();
bx_options.pcidev.Odevice->reset();
// SB16
bx_options.sb16.Oenabled->reset();
bx_options.sb16.Omidifile->reset();
@ -1871,8 +1867,18 @@ void bx_reset_options ()
bx_options.clock.Otime0->reset();
bx_options.clock.Osync->reset();
// other
// PCI
bx_options.Oi440FXSupport->reset();
for (i=0; i<BX_N_PCI_SLOTS; i++) {
bx_options.pcislot[i].Oused->reset();
bx_options.pcislot[i].Odevname->reset();
}
// pcidev
bx_options.pcidev.Ovendor->reset();
bx_options.pcidev.Odevice->reset();
// other
bx_options.cmosimage.Oenabled->reset();
bx_options.cmosimage.Opath->reset();
bx_options.cmosimage.Ortc_init->reset();
@ -2917,38 +2923,22 @@ parse_line_formatted(char *context, int num_params, char *params[])
}
}
} else if (!strcmp(params[0], "i440fxsupport")) {
if (num_params < 2) {
PARSE_ERR(("%s: i440FXSupport directive malformed.", context));
}
if (strncmp(params[1], "enabled=", 8)) {
PARSE_ERR(("%s: i440FXSupport directive malformed.", context));
}
if (params[1][8] == '0')
bx_options.Oi440FXSupport->set (0);
else if (params[1][8] == '1')
bx_options.Oi440FXSupport->set (1);
else {
PARSE_ERR(("%s: i440FXSupport directive malformed.", context));
}
if (num_params > 2) {
for (i=2; i<num_params; i++) {
if ((!strncmp(params[i], "slot", 4)) && (params[i][5] == '=')) {
slot = atol(&params[i][4]) - 1;
if ((slot >= 0) && (slot < 5)) {
bx_options.pcislot[slot].Odevname->set (strdup(&params[i][6]));
bx_options.pcislot[slot].Oused->set (strlen(params[i]) > 6);
}
else {
BX_ERROR(("%s: unknown pci slot number ignored.", context));
}
}
else {
BX_ERROR(("%s: unknown parameter for pci slot ignored.", context));
}
for (i=1; i<num_params; i++) {
if (!strncmp(params[i], "enabled=", 8)) {
bx_options.Oi440FXSupport->set (atol(&params[i][8]));
} else if ((!strncmp(params[i], "slot", 4)) && (params[i][5] == '=')) {
slot = atol(&params[i][4]) - 1;
if ((slot >= 0) && (slot < 5)) {
bx_options.pcislot[slot].Odevname->set (strdup(&params[i][6]));
bx_options.pcislot[slot].Oused->set (strlen(params[i]) > 6);
} else {
BX_ERROR(("%s: unknown pci slot number ignored.", context));
}
} else {
PARSE_ERR(("%s: i440fxsupport: unknown parameter '%s'.", context, params[i]));
}
}
else if (!strcmp(params[0], "pcidev")) {
} else if (!strcmp(params[0], "pcidev")) {
if (num_params != 3) {
PARSE_ERR(("%s: pcidev directive malformed.", context));
}

View File

@ -1,7 +1,7 @@
<!--
================================================================
doc/docbook/user/user.dbk
$Id: user.dbk,v 1.187 2005-11-12 10:38:51 vruppert Exp $
$Id: user.dbk,v 1.188 2005-11-13 14:26:02 vruppert Exp $
This is the top level file for the Bochs Users Manual.
================================================================
@ -373,8 +373,8 @@ currently work with.
<row>
<entry>Enhanced BIOS</entry>
<entry>Yes</entry>
<entry>Implements ElTorito, EDD v3.0, basic PCIBIOS features and the
PCI interrupt routing table.
<entry>Implements ElTorito, EDD v3.0, basic APM features, basic PCIBIOS features
and the PCI interrupt routing table.
</entry>
</row>
<row>
@ -488,11 +488,10 @@ currently work with.
</row>
<row>
<entry>PCI</entry>
<entry>incomplete</entry>
<entry>Yes</entry>
<entry>Emulates most of the i440FX PCI chipset. The Host-to-PCI bridge
(PMC/DBX), the PCI-to-ISA bridge and the PCI IDE controller (PIIX3) are
available. For PCI cards there are 5 PCI slots supported. PCI IDE currently
does not support Busmaster-DMA.
available. For PCI cards there are 5 PCI slots supported.
</entry>
</row>
<row>
@ -1291,7 +1290,7 @@ you are a Bochs expert.
If you choose the ZIP package you need a tool like WinZip to unpack the archive.
Note that you have to create a registry key for Bochs if you want to use the
environment variable $BXSHARE in your config file. The name of the key is
<varname>HKEY_LOCAL_MACHINE\Software\Bochs 2.2.pre3</varname> (the Bochs version may differ).
<varname>HKEY_LOCAL_MACHINE\Software\Bochs 2.2.1</varname> (the Bochs version may differ).
Edit the default value of this key and enter the path to your Bochs installation.
For more information on environment variables see the section <link
linkend="bochsrc">bochsrc</link>.
@ -2306,8 +2305,9 @@ turn it off.
<row>
<entry>--enable-usb</entry>
<entry>no</entry>
<entry>Enable limited i440FX PCI USB support. This is not complete.
Don't use this option yet.</entry>
<entry>
Enable limited i440FX PCI USB support. This is not yet complete.
</entry>
</row>
<row>
<entry>--enable-4meg-pages</entry>
@ -3680,11 +3680,11 @@ are in the usual "property=value" format.
<para>
Examples:
<screen>
vga_update_interval: 40000 # default
vga_update_interval: 250000
</screen>
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 <link linkend="bochsopt-ips">ips option</link>
seconds. Keep in mind that you must tweak the <link linkend="bochsopt-ips">ips option</link>
to be as close to the number of emulated instructions-per-second your workstation
can do, for this to be accurate.
</para>
@ -3694,7 +3694,7 @@ can do, for this to be accurate.
<para>
Example:
<screen>
keyboard_serial_delay: 200
keyboard_serial_delay: 250 # default
</screen>
Approximate time in microseconds that it takes one character to be
transfered from the keyboard to controller over the serial path.
@ -3705,7 +3705,7 @@ transfered from the keyboard to controller over the serial path.
<para>
Example:
<screen>
keyboard_paste_delay: 100000
keyboard_paste_delay: 100000 # default
</screen>
Approximate time in microseconds between attempts to paste
characters to the keyboard controller. This leaves time for the
@ -3720,7 +3720,8 @@ consistently in Windows.
<para>
Examples:
<screen>
ips: 1000000
ips: 2000000 # default
ips: 10000000
</screen>
Emulated Instructions Per Second. This is the number of IPS that Bochs is
capable of running on your machine. You can recompile Bochs with
@ -3840,7 +3841,7 @@ turns on this feature and 0 turns it off.
<para>
Examples:
<screen>
i440fxsupport: enabled=1
i440fxsupport: enabled=1 # default if compiled with PCI support
i440fxsupport: enabled=1, slot1=pcivga, slot2=ne2k
</screen>
This option controls the presence of the i440FX PCI chipset. You can also
@ -3882,8 +3883,8 @@ Example:
<screen>
usb1: enabled=1, port1=mouse, port2=keypad
</screen>
This option controls the presence of the USB root hub which is a part of the i440FX PCI
chipset.
This option controls the presence of the USB root hub which is a part of the
i440FX PCI chipset.
</para>
<para>
With the port<replaceable>X</replaceable> option you can connect devices
@ -3929,7 +3930,8 @@ ne2k: ioaddr=0x240, irq=9, mac=fe:fd:00:00:00:01, ethmod=tap, ethdev=tap0
ne2k: ioaddr=0x240, irq=9, mac=fe:fd:00:00:00:01, ethmod=tuntap, ethdev=/dev/net/tun0, script=./tunconfig
ioaddr, irq: You probably won't need to change ioaddr and irq, unless there
are IRQ conflicts.
are IRQ conflicts. These parameters are ignored if the NE2000 is assigned to
a PCI slot.
mac: The MAC address MUST NOT match the address of any machine on the net.
Also, the first byte must be an even number (bit 0 set means a multicast

View File

@ -1,5 +1,5 @@
.\Document Author: Timothy R. Butler - tbutler@uninetsolutions.com
.TH bochsrc 5 "23 Oct 2005" "bochsrc" "The Bochs Project"
.TH bochsrc 5 "13 Nov 2005" "bochsrc" "The Bochs Project"
.\"SKIP_SECTION"
.SH NAME
bochsrc \- Configuration file for Bochs.
@ -485,14 +485,12 @@ one line in the actual bochsrc file.
.TP
.I "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.
Video memory is scanned for updates and screen updated
every so many virtual seconds. The default value is
40000, about 25Hz. 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.
Example:
vga_update_interval: 250000
@ -647,6 +645,7 @@ Defines the characteristics of an attached ne2000 isa card :
ioaddr, irq:
You probably won't need to change ioaddr and irq, unless there are IRQ conflicts.
These parameters are ignored if the NE2000 is assigned to a PCI slot.
mac:
The MAC address MUST NOT match the address of any machine on the net.
@ -668,9 +667,11 @@ If you don't want to make connections to any physical networks,
you can use the following 'ethmod's to simulate a virtual network.
- null : All packets are discarded, but logged to a few files
- arpback: ARP is simulated (disabled by default)
- vnet : ARP, ICMP-echo(ping) and DHCP are simulated
- vnet : ARP, ICMP-echo(ping), DHCP and TFTP are simulated
The virtual host uses 192.168.10.1
DHCP assignes 192.168.10.2 to the guest
The TFTP server use ethdev for the root directory and doesn't
overwrite files
ethdev:
The ethdev value is the name of the network interface on your host
@ -693,6 +694,7 @@ Examples:
ne2k: ioaddr=0x240, irq=9, mac=b0:c4:20:00:00:01, ethmod=win32, ethdev=MYCARD
ne2k: ioaddr=0x240, irq=9, mac=fe:fd:00:00:00:01, ethmod=tap, ethdev=tap0
ne2k: ioaddr=0x240, irq=9, mac=fe:fd:00:00:00:01, ethmod=tuntap, ethdev=/dev/net/tun0, script=./tunconfig
ne2k: ioaddr=0x240, irq=9, mac=b0:c4:20:00:00:01, ethmod=vnet, ethdev="c:/temp"
.TP
.I "keyboard_mapping:"