Commit Graph

1470 Commits

Author SHA1 Message Date
Volker Ruppert
9e3dd83e85 - reduce some more dependencies and related Makefile.in updates 2009-02-23 11:06:53 +00:00
Volker Ruppert
71db42376f - some fixes in debug output 2009-02-23 08:31:41 +00:00
Stanislav Shwartsman
30c63c773c apic.h is not needed for ioapic.cc 2009-02-22 17:37:09 +00:00
Volker Ruppert
790eec83ca - converted I/O APIC to a device plugin
- updated dependencies
2009-02-22 10:44:50 +00:00
Volker Ruppert
66e2688645 - optional plugin control: added workaround for the compilation with plugins
disabled (bx_load_plugin() function not available in this case and we don't
  want to make plugin.cc device-dependant)
2009-02-21 16:08:02 +00:00
Volker Ruppert
cb430a4371 - added option to control the presence of optional plugins without a separate
option. By default all existing plugins are enabled.
2009-02-21 11:43:18 +00:00
Stanislav Shwartsman
2304f2abf1 reduce dependencies from CPU/APIC.H 2009-02-20 22:00:42 +00:00
Stanislav Shwartsman
31a367283a small optimizations for apic code 2009-02-19 23:19:11 +00:00
Stanislav Shwartsman
1b72e66bb3 support for apic global disable
separate between I/O apic and local apic
2009-02-18 22:25:04 +00:00
Volker Ruppert
717c528cd6 - fix for USB drive on Win98SE 2009-02-17 16:43:51 +00:00
Volker Ruppert
bf92a5ea04 - removed duplicate code from reset_hc(), since the init of connected devices
is already done in reset()
- init_device(): check for device connected to port before creating a new one
  (OHCI and UHCI)
- update irq level after clearing status and masking interrupt (same behaviour
  as the Qemu implementation)
2009-02-15 14:06:55 +00:00
Volker Ruppert
e11f9b6ce6 - small fixes to make the USB mouse work in Win98 and Linux
- now the USB UHCI controller can be assigned to a PCI slot (by default it's a
  part of the PIIX3 chipset)
2009-02-15 08:16:16 +00:00
Volker Ruppert
f10e0a08af - applied latest version of the USB OHCI support by Ben Lunt (WIN98SE can use
the USB mouse now)
- minor fixes in the USB common and devices code
2009-02-14 10:06:20 +00:00
Volker Ruppert
d0c3b1cb1c - initialize guest IP address with 255.255.255.255 (expected by Windows guests) 2009-02-09 17:04:30 +00:00
Volker Ruppert
e5eac65b59 - removed wrong character from FSF address (converted invisible and useless
2-byte character)
- updated FSF address in some files
- added license to some files
2009-02-08 09:05:52 +00:00
Stanislav Shwartsman
dd03e043a3 Updated FSF address 2009-02-07 21:05:31 +00:00
Volker Ruppert
cb9990af95 - set hostname to NULL to avoid crash 2009-02-07 10:11:19 +00:00
Volker Ruppert
141d69eadf - applied current version of the USB OHCI support by Ben Lunt (communication
between guest OS and USB device still not working correctly)
2009-02-05 16:53:44 +00:00
Stanislav Shwartsman
7d5e058dfe write to apic must be 16-byte aligned 2009-02-03 20:42:15 +00:00
Volker Ruppert
8b608fe045 - confirm requested hostname 2009-02-03 20:04:20 +00:00
Stanislav Shwartsman
30fec77004 faster i/o apic write access 2009-02-03 19:12:00 +00:00
Volker Ruppert
1a5e565c0b - always set port speed depending on connected device (device speed is always
set in constructor, but for usb_msd devices the connected status set by a
  successful init)
2009-02-03 18:21:21 +00:00
Volker Ruppert
4820227ce7 - moved VBE state to a separate structure
- handle VBE error messages with BX_ERROR instead of BX_INFO
- several code cleanups in the object delaration and the init code
2009-01-31 18:13:17 +00:00
Volker Ruppert
4d661c8326 - VBE video memory increased to 16 MB (new version of the LGPL'd VGABIOS under
construction)
2009-01-25 09:09:49 +00:00
Volker Ruppert
809449c797 - stored LFB address in base address #0 (TODO: implement changeable LFB address;
VGABIOS should read LFB base from PCI)
2009-01-22 22:29:23 +00:00
Volker Ruppert
324fccd33c - moved include statement to reduce dependencies
- updated FSF address
2009-01-21 22:16:09 +00:00
Volker Ruppert
fcedb1f823 - workaround for unusable VGA window size
* use default value for screen width if update() is called before VGABIOS init
  * set minimum value for vga_update_interval to 40000 (default value: 50000)
  * no longer accept ips values smaller than BX_MIN_IPS and default value
    changed to 4000000
2009-01-20 12:37:41 +00:00
Volker Ruppert
cfa759cd57 - fixed parameter name for save/restore of connected devices
- moved configuration subtree 'usb' back to the 'ports' list to make it
  accessible again by the config interface
- delete s.scsi_dev only if not NULL
2009-01-19 21:39:03 +00:00
Volker Ruppert
b5aabf8848 - applied patch for initial USB OHCI support written by Ben Lunt (Win98 detects
the controller, connecting devices is not implemented yet)
2009-01-19 17:18:57 +00:00
Volker Ruppert
891cc05477 - prepared siminterface and bochsrc options for USB OHCI support
* 'usb_uhci' bochsrc option replaces 'usb1'
  * minor changes in the USB code
  * removed old VBE i/o port registration (they were incompatible with USB)
  * updated FSF address
- fixed saving user plugin options
2009-01-19 13:13:32 +00:00
Volker Ruppert
0b782cd749 - prepared USB OHCI support in build system and common devices code (OHCI patch
by Ben Lunt will be tested and merged soon)
- renamed specific pciusb stuff to 'usb_uhci' (files, objects)
- minor USB-related changes
- TODO: changes in siminterface and bochsrc options
2009-01-19 09:48:12 +00:00
Volker Ruppert
5ca97fb7e0 - moved common USB device code and USB definitons to separate files
- updated dependencies
- updated FSF address
2009-01-18 13:11:27 +00:00
Volker Ruppert
34d767f938 - moved mouse buffer size definition to iodev.h
- reduce dependencies (TODO: update Makefile.in)
- removed unused defines from iodev.h
- updated FSF address
2009-01-16 11:53:38 +00:00
Volker Ruppert
3c82e7983c - compilation fix for plugins on win32
- updated FSF address
2009-01-16 10:53:58 +00:00
Volker Ruppert
ae54b59cd0 - preparing "plugin-disable" feature for optional plugins not controlled by a
bochsrc option (e.g. biosdev, speaker, gameport)
  * the "unmapped device" is now an optional plugin, the builtin default handlers
    no longer cause panics
  * speaker stub calls the related gui methods for beep on/off
  * load all optional plugins before starting init of core plugins
2009-01-15 17:34:20 +00:00
Volker Ruppert
0ec93b8586 - moved common mouse handling code to devices.cc
- moved mouse capture control code back to config.cc
- related changes in the USB keyboard and mouse interface
2009-01-13 19:01:19 +00:00
Stanislav Shwartsman
bfcd242a2f Fixed compilation 2009-01-13 18:56:35 +00:00
Volker Ruppert
1e578b3b28 - converted device PIT 82C54 to a plugin (internal / virtual timers remain in
Bochs core)
- removed obsolete and unused PIT methods
- updated FSF address
2009-01-11 18:46:01 +00:00
Volker Ruppert
501952efdd - removed unused logfunctions member 'type' and related method 'settype()'
- updated FSF address in copyright
2009-01-10 11:30:20 +00:00
Volker Ruppert
8aa8b1a3db - rewrite for user plugin support with user-defined options
* initialize plugin system before parsing bochsrc and command line
  * pass previous value to bx_param_string_c handler
  * load / unload plugin in bx_param_string_handler()
  * handle user plugins after optional ones in plugin device init, reset and
    save/restore functions
  * added new siminterface method unregister_user_option()
  * removed first version of config option handling for user plugins
  * added new parameter subtree for user-defined options
  * added new bx_list_c method remove()
  * removed unused bx_devmodel_c method init_mem()
2009-01-04 21:46:20 +00:00
Volker Ruppert
e12b21e647 - update all dependencies 2009-01-03 09:54:10 +00:00
Volker Ruppert
00d404809b - reduce some more dependencies
- iodev.h already includes bochs.h
2009-01-03 08:55:00 +00:00
Volker Ruppert
b23e7bf6a0 - added basic user plugin support (TODO: add sample code) 2009-01-02 11:51:03 +00:00
Volker Ruppert
815dff019e - converted iodebug device to a plugin 2008-12-30 18:11:13 +00:00
Volker Ruppert
77ee99a7cd - reduce some more dependencies (rarely used options, no Makefile.in update
necessary)
2008-12-30 15:33:38 +00:00
Volker Ruppert
00f312ad6e - update dependencies 2008-12-30 09:37:15 +00:00
Volker Ruppert
618b8fe9b3 - reduce some more dependencies
- compilation fix in usb_msd code
2008-12-30 09:17:09 +00:00
Stanislav Shwartsman
d56c3a18aa reduce include dependencies in iodev.h
Makefile.in in iodev folder have to be regerated !
2008-12-29 20:16:08 +00:00
Stanislav Shwartsman
3fb9d7d712 clean duplicate instrumentation 2008-12-29 18:02:01 +00:00
Volker Ruppert
15ee364a93 - don't skip text update if character height is 1
- removed BX_MAX_TEXT_LINES hack; now check if text screen contents fit in memory
- simplified charmap update handling
2008-12-29 08:16:53 +00:00
Volker Ruppert
f2f5d5c915 - applied 3 patches from the Qemu project
* added support for memory above the PCI hole (Izik Eidus)
  * smp_probe: instead of timimg out, wait until all cpus are up (Avi Kivity)
  * Bochs BIOS changes to support HPET in Qemu (Beth Kon)
- added documentation about CMOS registers set by Qemu
2008-12-25 16:58:44 +00:00
Volker Ruppert
975419440c - simplified CMOS setup in floppy init code 2008-12-21 09:41:30 +00:00
Volker Ruppert
fd79c68d72 - fixed some warnings in iodev 2008-12-21 08:56:26 +00:00
Volker Ruppert
8f7fe8bc7d - use a local copy of the IPS value to avoid reading it frequently in timer handler 2008-12-19 12:52:34 +00:00
Volker Ruppert
ba5155b80b - fixed endianness problem when reading TD 2008-12-14 08:56:05 +00:00
Volker Ruppert
01b0ed241b - fixed endianness problems at PCI DMA block transfers using getHostMemAddr()
and memcpy()
- changes in getHostMemAddr() for the usage outside of the cpu
2008-12-13 11:03:36 +00:00
Volker Ruppert
ed90f8dd93 - fixed a bunch of warnings 2008-12-11 18:01:56 +00:00
Stanislav Shwartsman
fb21bbd51e Handle S3 in PIIX4 ACPI 2008-12-04 18:50:31 +00:00
Volker Ruppert
78197bae62 - fixed endianness bug (read 2 dwords instead of 1 qword) 2008-12-02 21:38:51 +00:00
Volker Ruppert
430166ef7a - TAP networking on Solaris/Sparc repaired (SF patch #2354134 by Pavel Dufek)
- ne2k: changed BX_PANIC to BX_ERROR in write_cr()
2008-11-30 17:22:22 +00:00
Stanislav Shwartsman
8fb3eb911a Clear DEVACTB register on PIIX4 ACPI reset 2008-11-29 19:39:12 +00:00
Volker Ruppert
85b2d3179c - update sector count before calling write completion function (SF patch #2144692) 2008-11-23 19:21:19 +00:00
Stanislav Shwartsman
83918212a6 Implemented HW reset for I/O APIC 2008-11-17 20:06:16 +00:00
Volker Ruppert
8cbd56123b - compilation fixes for MSVC toolkit 2003 2008-11-09 22:04:14 +00:00
Stanislav Shwartsman
0df223d363 Merged patch with blinking HDD led in RED color when HDD write occurs (GREEN when HDD read) 2008-10-06 22:00:11 +00:00
Stanislav Shwartsman
2f7d0b4a70 Fixed compilation in gcc4 2008-10-01 07:54:02 +00:00
Stanislav Shwartsman
fe193f0dcf Merged patch from @SF 2008-10-01 07:47:02 +00:00
Stanislav Shwartsman
6714f3f8c1 Added back mistake removed save-restore stuff 2008-09-18 20:16:27 +00:00
Stanislav Shwartsman
cac25119b7 fix some compilation stuff 2008-09-18 20:10:17 +00:00
Stanislav Shwartsman
dd0b8eceb2 Fixed some compilation issues with
Microsoft 32-Bit C/C++ Optimizing Compiler 9.00
2008-09-18 17:18:36 +00:00
Volker Ruppert
a68542f91c - added keyboard controller commands 0xCA and 0xCB 2008-09-12 14:40:41 +00:00
Stanislav Shwartsman
597fdd3c4f Fixed warning 2008-08-24 17:28:42 +00:00
Alexander Krisak
9e9ed42dbe fixed msvc 6.0 compilation 2008-08-22 07:58:20 +00:00
Volker Ruppert
3198eb03ba - fixed OPL timer handling
- fixed OPL operator number calculation
2008-07-27 15:41:43 +00:00
Volker Ruppert
61f51bc8af - minor ATA/ATAPI model string fixes
* cut model string on boot screen if larger than 36 characters to make one
    "ata" message fit in one line
  * config parameter for model string needs one more byte
  * harddrive: terminate model string with null
2008-07-27 08:06:52 +00:00
Volker Ruppert
7c8c40483e - removed some optional devices from the bx_devices_c object
- biosdev is now an optional plugin
2008-07-26 08:02:27 +00:00
Volker Ruppert
f856b297aa - FM synthesizer now usable with MIDI output (simple piano only)
* fixed OPL frequency to MIDI note translation
  * fixed MIDI output command
  * TODO: assign MIDI instruments depending on OPL parameters
2008-07-20 21:05:21 +00:00
Volker Ruppert
9b92f4984a - ALSA code cleanup: removed unused client and queue
- return error at unimplemented SYSEX command
2008-07-20 08:08:23 +00:00
Volker Ruppert
e3559d9994 - implemented MIDI output to ALSA sequencer (TODO: handle SYSEX messages)
- renamed ALSA pcm-related variables
- documentation updates
2008-07-19 12:01:54 +00:00
Volker Ruppert
3b6d4a12d4 - open midi/wave output files only when output starts (to avoid empty/useless
files if device is not used)
- avoid segfault when midi output init fails
2008-07-14 17:44:55 +00:00
Volker Ruppert
6970eaa5cb - use ALSA PCM output only if the wave device name is set to "alsa".
Otherwise Bochs uses OSS with the given device name.
- added failure handling for startwaveplayback()
- documentation updates
2008-07-13 15:37:19 +00:00
Volker Ruppert
50ea5f5073 - added limited ALSA sound support on Linux (PCM output only)
* ALSA PCM support added in soundlnx.cc (OSS will be used if no ALSA present)
  * minor code cleanups and documentation updates
2008-07-12 15:21:36 +00:00
Volker Ruppert
b3b95e0d84 - ATAPI command 0x1A added (based on the Qemu implementation)
- simplified media presence check for ATAPI 'mode sense' commands (accessing
  parameter tree not required)
2008-07-07 18:36:07 +00:00
Volker Ruppert
46265689aa - PACKET-DMA feature now supported by all ATAPI commands
* don't panic if byte count is zero in PACKET-DMA mode (the specs say that
    byte count is used for PIO modes. The behaviour in DMA mode is not
    mentioned, but seems to be ignored in that case.)
  * pci_ide: initialize sector size with the BM-DMA byte count (disk read
    commands will overwrite this value, some ATAPI commands are using the
    original one.)
  * non-disk-read ATAPI commands simply copy the buffer in DMA mode
2008-07-06 14:15:41 +00:00
Volker Ruppert
78c5e10250 - improved USB disk parameter check 2008-06-29 06:53:20 +00:00
Stanislav Shwartsman
599a9b2e32 Fixed bug found by icc compiler 2008-06-18 16:33:44 +00:00
Stanislav Shwartsman
77ce9d617e Small bug fixed 2008-06-11 21:10:02 +00:00
Stanislav Shwartsman
8ea32b4279 Simplify physical memory access by devices 2008-06-11 20:59:50 +00:00
Stanislav Shwartsman
e69a12c3dd Fixed typo (patchfrom @SF) 2008-06-04 16:28:16 +00:00
Volker Ruppert
19aa190d48 - it's not necessary to set up the physical address in the init code, since the
PARs are cleared by initial hardware reset. The physical address for incoming
  packets must be initialized by the guest's driver.
- added BX_INFO at completion of the physical address setup
2008-05-24 06:53:05 +00:00
Volker Ruppert
966f2c8133 - added new serial modes based on SF patch #1928848 by Eugene Toder
* "pipe-server" (win32 only): It makes bochs a named pipe server so other
     application can communicate with it using pipes API. Useful e.g. for remote
     kernel debugging.
  * "pipe-client" (win32 only)
  * "socket-server": for the use with gdb
2008-05-22 08:13:22 +00:00
Stanislav Shwartsman
0d976801be More Bit32u -> bx_phy_address changes
Hopefully sometimes I will be able to enable 64 bit physical address as well
2008-05-01 20:46:58 +00:00
Stanislav Shwartsman
f5780a5f5c Hide some BX_MEM_C variables
Optimize resolve16 methods - by reducing their amount again - reduce chance for misspredictin
2008-05-01 20:08:37 +00:00
Stanislav Shwartsman
297087fea9 fixed memory handler params - use bx_phy_address data type 2008-04-29 22:14:23 +00:00
Stanislav Shwartsman
fda4d38959 32-bit systems have a problem to allocate large amount of physical memory for Bochs simulation which makes simulation with 4G address space virtually impossible. But in most of the cases when 4G physical address space defined - it is not touched by default on every run so it is possible to allocate only really accessed blocks. This commit made all necessary preparations for it. 2008-04-17 14:39:33 +00:00
Volker Ruppert
a1950bb565 - fixed compilation error: "jump to case label crosses initialization of `Bit32u drvsel'" 2008-03-30 08:32:57 +00:00
Stanislav Shwartsman
75f18c4f99 mostly indent changes 2008-03-29 17:44:13 +00:00
Stanislav Shwartsman
8c24dfc01b MSVC6 compilation changes
More effort to remove can_pop function calls - almost everything is clean
2008-03-26 16:25:05 +00:00
Stanislav Shwartsman
47936944a2 Remove Cirrus Logic PCI special define - it will be enabled by default when PCI is enabled. 2008-03-22 22:26:03 +00:00
Stanislav Shwartsman
a459a64f3e whispace, tab2space, indent, dos2unix and other cleanups 2008-02-15 22:05:43 +00:00