Commit Graph

10900 Commits

Author SHA1 Message Date
Stanislav Shwartsman
7cf38247e4 fixed warnings and errors which pop up when compiling Bochs with TRUE bool as boolean type instead of Bit32u 2016-06-01 20:29:44 +00:00
Stanislav Shwartsman
8824539630 fix code duplication in segload instr emulation 2016-06-01 20:11:54 +00:00
Volker Ruppert
fc41b20dfe Applied current state of porting EHCI from Qemu. No functional changes yet. 2016-05-16 17:25:29 +00:00
Stanislav Shwartsman
4dc537259f smaller block size for host allocate memory management (1MB->128KB( 2016-05-15 19:42:42 +00:00
Volker Ruppert
96ed40f0b6 Updated generated file (fixes bochsdbg.exe compilation on MSVC) 2016-05-13 17:35:23 +00:00
Stanislav Shwartsman
09e6ee3143 compile disasm module when x86-64 is not compiled in 2016-05-12 11:16:05 +00:00
Stanislav Shwartsman
12ece81e19 look only on valid tlb entries in check_addr_in_tlb_buffers and tlb invalidation methods 2016-05-06 06:57:00 +00:00
Stanislav Shwartsman
dff5e9587b fixed SMP mode compilation err 2016-05-05 14:15:17 +00:00
Stanislav Shwartsman
009bc7388b implement more correct vmentry to shutdown sanity check 2016-05-03 19:29:22 +00:00
Stanislav Shwartsman
6a35ceb51a fixed err msg description 2016-05-03 19:24:52 +00:00
Stanislav Shwartsman
405d7776e8 fixed typo 2016-05-03 19:20:26 +00:00
Stanislav Shwartsman
3ffe5d3d87 parse params from string using bx_param method - avoid unnecessary switch walking over param types 2016-05-03 19:15:09 +00:00
Stanislav Shwartsman
e1532260e4 fixe compilation on cpu model missing cr4 2016-05-02 17:33:06 +00:00
Stanislav Shwartsman
b5d1b30f3d rename variable to avoid conflict with std::string class 2016-04-30 20:44:10 +00:00
Stanislav Shwartsman
e24c7e403a take a funtion from BX_CPU_C:: into fetchdecode.cc standalone function 2016-04-30 19:13:15 +00:00
Stanislav Shwartsman
712c219688 fixed dbger enabled build 2016-04-29 21:09:18 +00:00
Stanislav Shwartsman
793ceb0d8c fix massive code dupliction between disasm, debugger and cpu by introducing new cpu decoder.h header 2016-04-29 21:01:28 +00:00
Stanislav Shwartsman
cc49b504b3 fix small issue on the way to Bochs decoder separation into stand-alone module 2016-04-26 12:46:44 +00:00
Stanislav Shwartsman
ca5882b310 fixed compilation with cpu-level < 5 2016-04-21 15:39:49 +00:00
Stanislav Shwartsman
87cb831a37 fixed compilation w/o x86-64 enabled 2016-04-20 14:46:02 +00:00
Stanislav Shwartsman
adc143684b implemented Intel architecture extensions published in recently published SDM 058:
! Implemented UMIP: User Mode Instruction Prevention (don't allow execution of SLDT/SIDT/SGDT/STR/SMSW with CPL>0)
! Implemented RDPID instruction

Bugfixes in RDPKRU/WRPKRU instructions implementation (Protection Keys feature)
2016-04-15 11:35:32 +00:00
Volker Ruppert
45232b1860 Added standard bus mouse support and inproved existing InPort mouse support
(Ben Lunt). Added new mouse type choice 'inport' for the existing one and changed
'bus' type to the new standard bus mouse,
2016-03-31 17:24:34 +00:00
Stanislav Shwartsman
e4832af5ab clean pkeys when not enabled to avoid side-effects 2016-03-19 21:15:56 +00:00
Stanislav Shwartsman
5b481fe34d correctly set up pkeys when enabling through cr4 2016-03-19 19:48:38 +00:00
Stanislav Shwartsman
956eb6e990 add missing PKEYS define into config.h.in 2016-03-17 19:29:34 +00:00
Volker Ruppert
dca964c119 Some 8-bit register reference macro changes to produce more effective code
(SF patch #532 by Yeong-uk Jo).
2016-03-17 17:14:43 +00:00
Volker Ruppert
e7587d25a4 Some 8-bit register reference macro changes to produce more effective code
(SF patch #532 by Yeong-uk Jo).
2016-03-17 17:14:27 +00:00
Stanislav Shwartsman
cbe50a9539 enable PKE bit in CR4 2016-03-16 19:44:24 +00:00
Stanislav Shwartsman
8fe26816dc recalculate protection keys if cr0.wp change 2016-03-04 11:59:32 +00:00
Stanislav Shwartsman
bcb36e81fa experimental implementation of protection keys paging extension published in SDM rev054. to enable configure with --enable-protection-keys 2016-03-02 20:44:42 +00:00
Stanislav Shwartsman
9308ad31c6 remove unused param from serveIcacheMiss 2016-02-22 19:57:24 +00:00
Stanislav Shwartsman
591039e588 removed debug print 2016-02-21 20:14:15 +00:00
Stanislav Shwartsman
de85547932 update popcnt functions to faster versions 2016-02-21 18:39:10 +00:00
Volker Ruppert
ce7afe050f Applied current state of porting EHCI from Qemu. No functional changes yet. 2016-02-09 17:11:59 +00:00
Volker Ruppert
60d5aaaacf Added QEMU queue macros (required for EHCI) as a separate file. Removed already
existing defines from the Slirp compatibility header.
2016-01-08 18:58:27 +00:00
Stanislav Shwartsman
18f07937d2 add new cpuid bit announced in sdm rev057 to disasm features list as well 2015-12-29 20:22:33 +00:00
Stanislav Shwartsman
88be61c3d9 add new cpuid bit announced in sdm rev057 2015-12-29 20:21:08 +00:00
Stanislav Shwartsman
9557cafcef revertng commit #12854 because it broke MT simulation with debugger enabled. Until investigted. 2015-12-20 22:44:54 +00:00
Volker Ruppert
f5d094024d Started implementing USB EHCI support. The PCI and MMIO register behaviour is
almost implemented, the port owner handling and the UHCI companion controllers
are present. High speed devices are not yet supported, since the EHCI scheduler
code has not been written yet (e.g. porting from Qemu). Low and full speed
devices should be detected correctly and work after port ownership change to
UHCI. 6 ports are available and the bochsrc syntax is similar to other HCs.
2015-12-06 20:04:00 +00:00
Volker Ruppert
0ba744b9fe Started implementing USB EHCI support. The PCI and MMIO register behaviour is
almost implemented, the port owner handling and the UHCI companion controllers
are present. High speed devices are not yet supported, since the EHCI scheduler
code has not been written yet (e.g. porting from Qemu). Low and full speed
devices should be detected correctly and work after port ownership change to
UHCI. 6 ports are available and the bochsrc syntax is similar to other HCs.
2015-12-06 20:03:42 +00:00
Volker Ruppert
5e635a87bb Fixed IRQ sharing for multi-function PCI devices and removed workaround in the
UHCI core code.
2015-11-28 10:24:22 +00:00
Volker Ruppert
93f9584b1b Load USB core plugin before parsing bochsrc, since USB HC devices depend on
it's symbols. Unload this plugin in the devices init if unused.
TODO: Similar changes may be required for the networking and sound stuff.
2015-11-20 18:07:27 +00:00
Volker Ruppert
e19f28dad7 Call DEV_pci_set_irq() only if the IRQ level really changes. The Bochs IRQ
routing code is possibly buggy, since it can make multiple UHCI devices fail
in a multi-function device (like EHCI).
2015-11-12 21:45:44 +00:00
Volker Ruppert
2f94f55a82 Some work in the UHCI core for the usage as a companion controller of EHCI.
- added method to change port ownership.
- fixed UHCI reset and initialized device pointers.
- added symbol UHCI_FULL_DEBUG to reduce debug output if not set.
- renamed connection handling method.
2015-11-08 18:54:30 +00:00
Volker Ruppert
7d56f7d1d5 Split the USB UHCI code in two parts: uhci_core.cc implements the device
emulation and usb_uhci.cc implements the setup for the PIIX3 chipset and the
runtime device change code. The UHCI core is required for the EHCI emulation,
since there can be multiple "companion" controllers for USB 1.1 device handling.
2015-11-05 21:21:15 +00:00
Volker Ruppert
d455659bd1 Split the USB UHCI code in two parts: uhci_core.cc implements the device
emulation and usb_uhci.cc implements the setup for the PIIX3 chipset and the
runtime device change code. The UHCI core is required for the EHCI emulation,
since there can be multiple "companion" controllers for USB 1.1 device handling.
2015-11-05 21:20:54 +00:00
Volker Ruppert
aefccb14ab Added support for registering master PCI devices with function > 0 (required
for implementing EHCI).
2015-11-04 16:32:16 +00:00
Volker Ruppert
76c065dd89 Fixed usage of MSD device on xHCI hub.
- implemented xHCI TRB command "Reset Device".
- fixed SCSI read/write commands in non-async mode.
2015-11-02 21:36:38 +00:00
Volker Ruppert
56a7b11ab5 Align PCI memory regions at 64k boundary to make Bochs memory handlers work
correctly (registering small MMIO regions of USB controllers could fail otherwise).
2015-11-02 17:00:24 +00:00
Volker Ruppert
8df02880f8 Align PCI memory regions at 64k boundary to make Bochs memory handlers work
correctly (registering small MMIO regions of USB controllers could fail otherwise).
2015-11-02 16:59:50 +00:00
Volker Ruppert
c2b790809d Simplify xHCI code, since the capability registers are readonly.
- Moved initialization from reset_hc() to init().
- Removed save/restore registration.
- Removed extra debug output.
2015-11-01 08:55:03 +00:00
Volker Ruppert
be304bf4af Definition of maximum nuber of USB ports moved from bochs.h to device. 2015-10-31 15:12:36 +00:00
Volker Ruppert
234f10f159 The OHCI async support works fine in all tests, so some BX_INFO messages
can be changed now to BX_DEBUG.
2015-10-26 20:23:33 +00:00
Stanislav Shwartsman
6e5a0c8313 fixed compliation err 2015-10-26 17:49:45 +00:00
Volker Ruppert
7cf7ee8293 Block device detection fixes for Linux.
- now using macro S_ISBLK() to detect block device (cdrom/hdimage).
- re-implemented recently removed check for block device in concat mode.
2015-10-25 17:02:12 +00:00
Volker Ruppert
c3a7db7f82 Added support for full silent install. 2015-10-25 12:21:24 +00:00
Volker Ruppert
7c0d93884e Fixed array size (rfb) and added comment (win32). 2015-10-25 09:22:43 +00:00
Volker Ruppert
cbd147fca3 Fixed and improved text mode CO40.
- vgacore: double font and screen width at half dot clock.
- X gui: improved font bitmap generation to support width > 9.
- win32 gui: adjust values to use existing stretching feature.
- guis rfb, sdl, sdl2, vncsrv and wx: double pixels if font width > 9.
2015-10-24 22:03:51 +00:00
Volker Ruppert
1a3bf9419c SDL/SDL2: increase status item width to show max. 6 characters 2015-10-23 18:39:38 +00:00
Volker Ruppert
fcf9b8285b Added seek emulation for USB disk write commands (async mode required).
Fixed MSD status handling (required for seek emulation).
2015-10-22 18:13:59 +00:00
Volker Ruppert
3c7260a01b Improved panic message for unavailable image mode.
Removed disabled code in the 'sparse' section.
2015-10-18 07:13:56 +00:00
Volker Ruppert
2420ba499e Fixed 'concat' mode lseek() for whence != SEEK_SET. 2015-10-17 14:08:23 +00:00
Volker Ruppert
141aea5f1b Fixed and improved 'concat' disk image mode. 2015-10-17 10:06:36 +00:00
Volker Ruppert
c3397b15d7 Fixed read() and write() methods of most disk images modes to support multiple
sector transfers (buffer pointer update was missing). Multiple sectors transfers
could for the USB disk emulation and for image conversion with bximage.
2015-10-15 17:21:34 +00:00
Volker Ruppert
708e946cb8 As a workaround for possibly buggy hdimage code, read() and write() calls
transfer only one disk sector. Moved disk write code to the seek_complete()
method (seek emulation for write commands is not ready yet).
2015-10-13 19:49:09 +00:00
Volker Ruppert
b22023838c Completed save/restore support for the USB xHCI device.
TODO: reduce size of saved file (find a way to skip unused slots).
2015-10-11 17:07:18 +00:00
Volker Ruppert
3fc71ec131 Now using BXRS_* macros for all USB devices.
TODO: This should be used everywhere in register_state() if possible.
2015-10-11 07:33:22 +00:00
Stanislav Shwartsman
a8a325f2f5 #define to enum or inline function convertion 2015-10-09 19:33:36 +00:00
Stanislav Shwartsman
ea3c1c77eb added vmx consistency checks related to recently implemented support for vm-entering shutdown/wait-for-sipi state 2015-10-09 06:18:14 +00:00
Stanislav Shwartsman
cd2129ec3b avoid calling prefetch() each time when linking traces cross page 2015-10-09 05:33:44 +00:00
Stanislav Shwartsman
9f77a6c3b0 full debugger support together with handler-chaining speedups optimization enabled (experimental)
should speedup emulation with debugger enabled
2015-10-09 05:28:47 +00:00
Volker Ruppert
eed2bb15b8 Simplified register_state() for for small byte arrays in remaining i/o devices. 2015-10-06 18:20:16 +00:00
Volker Ruppert
9bc8651328 Extended functionality of class bx_shadow_data_c to simplify saving small byte
arrays. Changed register_state() code in a few devices to use this feature.
TODO: Use this feature in all devices with small byte arrays.
2015-10-05 18:09:58 +00:00
Volker Ruppert
12915a48f2 Added missing update of 'curr_lba' for the harddisk read seek emulation.
Added comments to the MSD / SCSI members similar to usb_cbi.
Now using BXRS_* macros for save/restore.
2015-10-04 08:54:36 +00:00
Volker Ruppert
b754d72ab2 Some work on the USB disk/cdrom emulation.
- More accurate seek emulation for read commands.
- Moved status indicator code to the SCSI layer.
- Fixed dump size for async packets.
TODO: Seek emulation for disk write commands.
2015-10-03 07:19:48 +00:00
Stanislav Shwartsman
12f6857968 fixed smm restore of segment register's selector 2015-09-30 18:55:21 +00:00
Stanislav Shwartsman
18fced44ae clean wrongly committed line 2015-09-30 18:45:01 +00:00
Stanislav Shwartsman
8d13b61319 implemented TSC Scaling VMX feature according to timestamp-counter for virtualization whitepaper published by Intel 2015-09-30 18:44:01 +00:00
Stanislav Shwartsman
ad52e15860 added few tlb specific cpustat counters 2015-09-28 19:09:32 +00:00
Stanislav Shwartsman
0e37969e32 stop flooding log by messages which not necesary indicate guest code error 2015-09-28 18:45:26 +00:00
Stanislav Shwartsman
dd1ec977c2 enable vmenter to wait-for-sipi state 2015-09-28 18:42:05 +00:00
Stanislav Shwartsman
3a563a6573 use segment rok4g and wok4g in the fast string optimizations for correctness 2015-09-28 18:37:35 +00:00
Volker Ruppert
256fd99d12 USB floppy "format unit" timing implemented similar to read/write timing.
Added latency time for the "implied seek" of read/write/format commands. Both
features can be used when asynchronous packet handling is available. Some
related changes in the non-async read and write code.
2015-09-28 18:15:18 +00:00
Volker Ruppert
71774c57bb Some work on the USB floppy emulation.
- Added support for changing image mode at runtime (flat <-> vvfat).
- Added device buffer to save/restore list.
2015-09-27 15:02:38 +00:00
Volker Ruppert
fa08563adf Fixed configure script for the MSVC target with 64 bit. Now the configure option
'--target=x86_64-windows' can be used to prepare Bochs for WIN64 compiled with
e.g. VS2013.
2015-09-27 11:04:02 +00:00
Volker Ruppert
b22a57d4df Some work on the USB floppy emulation.
- Added missing update of the write protection flag after runtime config.
- Added sense codes for invalid cases of some commands.
- Added buffer pointer save/restore handling and use BXRS macros now.
2015-09-27 08:32:54 +00:00
Volker Ruppert
e8d045ad30 USB floppy sector write timing implemented similar to read timing. It can be
used when asynchronous packet handling is available. Some changes in the
non-async read and write code.
TODO: seek timing (similar to legacy floppy).
2015-09-26 09:19:56 +00:00
Stanislav Shwartsman
8232928096 small code optimization and simplification 2015-09-23 19:25:07 +00:00
Stanislav Shwartsman
c44cb6ed81 more cases applicable for BX_TLB_ENTRY_OF 2015-09-22 20:10:22 +00:00
Stanislav Shwartsman
a66ed15d26 added missing tlb.h 2015-09-21 20:07:06 +00:00
Stanislav Shwartsman
be4b73c6d2 extracted tlb specific code to tlb.h; extracted xsave cpuid leaf function to base cpuid class 2015-09-21 13:16:17 +00:00
Volker Ruppert
2232dd23d6 USB floppy sector read timing implemented based on the drive speed 300 RPM.
It can be used when asynchronous packet handling is available. Some changes in
the non-async read and write code.
TODO: sector write timing, seek timing (similar to legacy floppy).
2015-09-20 10:53:16 +00:00
Volker Ruppert
6cbd6e247a USB floppy command FORMAT UNIT implemented and read commands fixed. Formatting
media in USB floppy works now with XP guest.
2015-09-19 12:45:54 +00:00
Volker Ruppert
12cace4c5a Some work on async packet and seek emulation support.
- deactivate seek timer when operation is cancelled.
- set async packet mode with a separate method at connection time.
- renamed some variables and prepared seek emulation for USB disk writes.
2015-09-16 17:08:50 +00:00
Volker Ruppert
0b432b313f Added seek emulation support for USB harddisk reads and cleaned up the
MSD / SCSI code.
TODO list (async packet and seek support):
- seek emulation for USB harddisk write commands
- seek emulation for floppy
- async packet support for UHCI and xHCI
- improve and clean up OHCI async packet code
2015-09-15 17:55:32 +00:00
Stanislav Shwartsman
c8cf4f956d fix halt cpu indication from debugger 2015-09-14 19:17:20 +00:00
Volker Ruppert
491dc311ca Some work for asynchronus USB packet handling (needed by disk/cdrom seek emulation).
- Common USB code prepared for async USB packet handling (ported from an earlier
  Qemu version).
- Added simple async packet handling to OHCI (partly ported from earlier Qemu).
- Implemented USB cdrom seek emulation for hubs with async packet support. The
  legacy code is still present for hubs without this feature.
- For UHCI and xHCI the callback is set to NULL to force the usage of the
  legacy cdrom read code.
TODO: clean up OHCI code, async support for UHCI and xHCI, seek emulation for
USB harddisk and floppy.
2015-09-13 20:04:41 +00:00
Volker Ruppert
8db5305b18 Updated MSVC workspaces after adding USB floppy support. 2015-09-12 08:06:20 +00:00
Stanislav Shwartsman
da39e57196 comment fixes 2015-09-08 19:14:58 +00:00
Volker Ruppert
6dbd4c37a9 Some USB debug output (packet dump) changes
- rewrite of usb_dump_packet(), execute code only if debug output is enabled.
- OHCI: removed packet dump, it should be done in the devices code if necessary.
2015-09-06 06:54:07 +00:00
Volker Ruppert
a536aa8286 Fixed format capacities list for the "no medium" case. 2015-09-05 11:35:05 +00:00
Volker Ruppert
f54feb5b91 Some variables should not be handled by the xHCI internal save/restore, moving
them out of the hub structure.
Fixed a warning.
2015-09-05 07:23:25 +00:00
Volker Ruppert
b69e40d584 The USB host controllers have no asynchronus packet completion support yet.
TODO: implement this feature (useful for cdrom, disk and floppy devices).
2015-09-05 06:30:28 +00:00
Volker Ruppert
4b83f9e899 If the debug mode is enabled for usb_msd, turn it on for the SCSI device, too,
Don't try to insert cdrom media if device/image path is empty.
2015-09-03 18:54:51 +00:00
Stanislav Shwartsman
f76b972fed bugfix in call gate handling from call far instruction - found with rdos 2015-09-02 19:14:47 +00:00
Volker Ruppert
b5355d3ba7 Added infos and example for the USB floppy to the documentation. 2015-09-01 19:01:37 +00:00
Volker Ruppert
44d0e8f911 Added media change support for the USB floppy. 2015-08-31 20:51:54 +00:00
Volker Ruppert
c136fa1618 Added framework for USB floppy media change support based on the USB cdrom
code (not yet functional).
Minor related changes in the USB cdrom code.
2015-08-30 08:37:27 +00:00
Volker Ruppert
2dbfae1b1c Fixes and improvements for the USB cdrom runtime options.
- Add a special list to the MSD state and add pointers to the runtime-only
  options for the cdrom. The restore handler of this list calls runtime_config()
  to make sure the media path and status are correctly updated.
- Registering a runtime config handler for the USB cdrom is not necessary since
  runtime_config() is always called from the hub it is connected to.
- Restore a string parameter value only if it's different from the initial one.
2015-08-29 14:02:13 +00:00
Volker Ruppert
946a6bf50e Fixed USB device disconnect: clear save/restore list before deleting device
(bug found with valgrind).
2015-08-28 18:52:54 +00:00
Volker Ruppert
7da8cfa4b0 Fixed save/restore support of the USB subsystem when using an external hub
with devices conected at runtime.
- Added restore handler support for the bx_list_c class. If a handler is
  registered, it will be called after restoring all of the list's members.
- USB hub: add special lists to the port state and add pointers to the
  runtime-only options for each port. The restore handler of this list calls
  init_device() to make sure all connected devices can be restored.
- Call restore_logopts() after restoring hardware to make sure all saved
  modules have been created.
- TODO: the USB cdrom also needs a fix for it's runtime-only options.
2015-08-28 17:37:38 +00:00
Volker Ruppert
cc3020ab53 Added support for connecting USB floppy without media present.
Fixed status indicator activity.
TODO: add media change support without disconnect.
2015-08-24 20:26:08 +00:00
Volker Ruppert
38fbdaa7e8 Added runtime config handler for the USB cdrom and modified parameter handling
similar to the ATAPI implementation (including locked tray case).
Fixed status indicator activity and minor other changes.
2015-08-23 16:09:24 +00:00
Volker Ruppert
1df014a8ae Implemented unregister mechanism for runtime config handlers.
TODO: use it for removable devices with removable media (USB floppy / cdrom).
2015-08-23 07:04:56 +00:00
Volker Ruppert
f7726990f2 Fixed MTRR setup for memory size > 4 GB. 2015-08-22 06:19:13 +00:00
Volker Ruppert
22c674ef7a Fixed MTRR setup for memory size > 4 GB. 2015-08-22 06:18:38 +00:00
Volker Ruppert
9596717f3c Fixed MTRR setup for memory size > 4 GB. 2015-08-22 06:17:39 +00:00
Volker Ruppert
1ac159ba52 Modified sleep rate in conversion thread to get more continuous output. 2015-08-18 17:26:25 +00:00
Volker Ruppert
792c5bdec2 Set default device speed for floppy, cdrom and disk to 'full'. 2015-08-16 16:15:46 +00:00
Volker Ruppert
823ba769fb Some work on the USB floppy emulation.
- Removed USB device type handling from constructor and init code, since we
  only the 'floppy' type here.
- Write commands now using the device buffer for one sector.
TODO: support for starting without media and runtime media change.
2015-08-16 06:44:16 +00:00
Volker Ruppert
5bc1717adc Removed the data tranfer limit for read/write commands.
- The read buffer is now limited to 16 sectors and the read commands can fill
  it multiple times until all sectors have been read.
- The write commands are currently not using the device buffer, so no panic
  should happen here.
2015-08-14 17:43:25 +00:00
Volker Ruppert
639f361d02 Fix the fix: force a status bar update after registering an item, too. 2015-08-11 17:48:18 +00:00
Volker Ruppert
16fb8317bd Fixed parameter handler issues found with runtime changes while cdrom tray locked.
- bx_param_num_c: set the value returned from the handler.
- bx_param_string_c: set the new value after processing the handler.
- harddrv param handler: check lock state of cdrom and modify value if true.
2015-08-10 18:44:16 +00:00
Volker Ruppert
8a1e31ef08 Added common USB device option "debug" to turn on BX_DEBUG reporting at
connection time.
Fixed USB floppy capacity entries for 1.44 MB (last LBA, not LBA count).
2015-07-31 19:01:09 +00:00
Volker Ruppert
46d2c0adad Started implementing save/restore support for the USB floppy.
Fixed status indicator handling in case of connect failure.
2015-07-28 18:44:08 +00:00
Stanislav Shwartsman
250cf02981 x86-64: Fixed bug in OR_EqGqM handler used with FS or GS segment 2015-07-26 19:20:21 +00:00
Volker Ruppert
5e714cdd34 Handle illegal and unimplemented cases of the 'verify' command. 2015-07-26 06:48:55 +00:00
Volker Ruppert
fa5353698d CMOS boot setup moved to the floppy init code to make Bochs BIOS boot work in
case no harddrv plugin is loaded (no ata controller enabled). The floppy and
boot parameters are only set up if no CMOS image is enabled.
2015-07-26 06:48:33 +00:00
Volker Ruppert
20aeed208b Fixed some panics when Bochs is used without the harddrv plugin (ata* disabled).
TODO: Fix Bochs BIOS for that case (SeaBIOS is okay).
2015-07-15 10:20:22 +00:00
Volker Ruppert
87d40fe673 Some work on the status LED support for removable devices.
- Force a status bar update after unregistering an item.
- Added status indicators for USB disk and cdrom.
- Handle USB device disconnect in the runtime config handler, too.
2015-07-13 21:57:09 +00:00
Stanislav Shwartsman
f6af0443bb small optimization and elimination of several defines from cpu.h - replace by inline functions and const variables 2015-07-13 20:24:14 +00:00
Volker Ruppert
3986a0b703 Extended status bar LED feature to support dynamic indicators for removable
devices like USB disk, cdrom or floppy. Using this feature for the new USB
floppy. Removed static indicators for port activity from the USB HC code.
TODO: Implement status LEDs for USB disk and cdrom.
2015-07-13 16:56:06 +00:00
Volker Ruppert
6161ffea73 Added initial version of UFI/CBI floppy disk storage device support written
by Ben Lunt. To connect a USB floppy you can use the 'floppy' device with the
path to the image separated with a colon. VVFAT is also supported.
FIXME: The device detection fails on some recent Linux distributions.
FIXME: Only 1.44M media format is currently supported.
TODO: Media change without disconnect is not implemented yet.
2015-07-13 08:37:45 +00:00
Stanislav Shwartsman
ea255b5bf7 fixed VMCS memory type calculation 2015-07-12 20:10:43 +00:00
Stanislav Shwartsman
129db3bfaf fixed typo in the list of the vmcs exits 2015-07-12 15:26:34 +00:00
Volker Ruppert
9b0af67606 Added static variable 'vvfat_count' for generating a unique FAT ID. 2015-07-12 14:46:00 +00:00
Volker Ruppert
16358f9c54 Added missing hdimage->close() in destructor. 2015-07-12 14:45:34 +00:00
Volker Ruppert
98bc3bdf16 Small OHCI fix by Ben Lunt. 2015-07-12 06:53:01 +00:00
Stanislav Shwartsman
9315742f3d cleanups of vmcs mapping related stuff 2015-07-07 21:06:56 +00:00
Stanislav Shwartsman
e9f9f824be return value from clear/set_mapping functions 2015-07-06 20:16:34 +00:00
Stanislav Shwartsman
28c19ecec7 more interfaces to VMCS Mapping class 2015-07-06 20:14:56 +00:00
Stanislav Shwartsman
5fe1423ab6 introducr new class for VMCS mapping so it can be customized per cpuid 2015-07-06 18:46:57 +00:00
Volker Ruppert
3b87e71346 Minor bugfix and small additions by Ben Lunt. 2015-06-29 20:32:56 +00:00
Stanislav Shwartsman
b86f01d410 update TODO 2015-06-29 19:57:04 +00:00
Stanislav Shwartsman
3fef7f32f6 added new bits definitions recently published 2015-06-29 19:53:56 +00:00
Stanislav Shwartsman
bc25883087 add new definitions from most recent AMD Software Developers Manual update. TODO: implement new AMD's MONITORX/MWAITX extensions 2015-06-22 21:46:50 +00:00
Volker Ruppert
dcae254157 The Device Qualifier request must fail on non high-speed devices (patch by Ben Lunt). 2015-06-17 20:15:53 +00:00
Stanislav Shwartsman
91086d0627 remove not relevant comments 2015-06-14 20:36:16 +00:00
Stanislav Shwartsman
3a0dff9b36 fixed Bochs compiled for 386 with FPU enabled 2015-06-10 20:36:46 +00:00
Volker Ruppert
ee6bfaa4c4 Added separate thread for the PCM data conversion. Only in case of dual output
sendwavepacket() directly calls the conversion method and output(). In all other
cases it puts the unmodified data into a buffer and the conversion thread is
doing the main job and puts the data into the output buffer chain.
TODO: resampling could also be done by the new thread.
2015-06-04 08:58:02 +00:00
Volker Ruppert
7be46cda6a Fixed SF bug #1376 (this change was missing in rev. 12473). 2015-05-25 12:33:39 +00:00
Stanislav Shwartsman
c43ea147bf ~1% emulation speedup by skipping pageWriteStamp check for stack writes.
For now the optimization is supported only when no SMP is compiled in because it doesn't handle cross-modifying code.

The current stack page will cache also current pageWriteStamp for that page and could skip pageWriteStamp access if possible.
Any code fetch access missing trace cache will invalidate current stack page.
Code fetch accesses from another SMP threads should do the same to support SMP.

Next step:
 - support SMP
 - support pageWriteStamp access skipping for all other memory writes from all segments
2015-05-23 19:34:59 +00:00
Stanislav Shwartsman
745d843c88 change BX_INFO message to BX_DEBUG because it floods log 2015-05-19 20:21:17 +00:00
Stanislav Shwartsman
280a773323 fix vmexit qualification for some instructions after previous code reorg and inlining of resolve_modrm methods 2015-05-16 21:25:43 +00:00
Stanislav Shwartsman
b468316250 re-style old resolve macros after resolve function inlining 2015-05-16 21:06:59 +00:00
Stanislav Shwartsman
29585cae72 delete resolver.cc 2015-05-16 20:30:26 +00:00
Stanislav Shwartsman
f0d7379908 remove BxResolveModrm member in BxInstruction_c class and inline resolve functions into instruction handlers instead. helps to remove indirect branch mispredictions (suggested by Vtune). measured speedup on Win7-64 boot is 5%, on other guests it might vary between 1% and 5% 2015-05-16 20:29:49 +00:00
Volker Ruppert
377d920956 Created a new class for the audio buffer handling to make multiple buffers
chains possible.
TODO: the lowlevel sound code should bbe rewritten with an additional
conversion thread.
2015-05-15 20:18:47 +00:00
Stanislav Shwartsman
1268d8c14a deprecated configure options cleanup in configure.in 2015-05-14 11:56:23 +00:00
Stanislav Shwartsman
8804fb624b Clear definition of BX_CPP_INLINE in Visual Studio case 2015-05-14 11:49:28 +00:00
Stanislav Shwartsman
cf4b3f2542 optimize code duplication 2015-05-12 21:33:06 +00:00
Stanislav Shwartsman
9f18573740 Rename BX_CPU_CALL_METHODR to BX_CPU_RESOLVE_ADDR and introduce special cases BX_CPU_RESOLVE_ADDR_64 (for 64-bit mode only) and BX_CPU_RESOLVE_ADDR_32 (for 32-bit mode only) 2015-05-11 19:23:09 +00:00
Stanislav Shwartsman
b9b45f0d0d convert some defines to typed consts 2015-05-10 19:54:57 +00:00
Volker Ruppert
b449f2a723 Prepared Bochs logfile output fur the usage in a multi-threaded environment. 2015-05-10 06:55:16 +00:00
Volker Ruppert
f838b04dd1 Attempt to fix the compilation failure on OpenBSD with debugger enabled
(stdin and stdout cannot be modified on this platform).
2015-05-09 17:01:24 +00:00
Volker Ruppert
119971182b Include pthreads library header in soundlow.h (fixes SF bug #1373). 2015-05-09 08:31:49 +00:00
Volker Ruppert
2bfee2aeb2 Added new log function for the ATAPI CDROM and macro BX_DEBUG_ATAPI to avoid
flooding logfile with hard disk messages when only the cdrom ones are wanted.
ATAPI DMA: don't copy more data than actually present in buffer.
2015-05-09 07:44:36 +00:00
Stanislav Shwartsman
0d79c5f986 Implemented Page Modification Logging VMX feature 2015-05-06 19:55:44 +00:00
Volker Ruppert
7e86e7956f Fixed PCI IDE controller DMA start (found with a recent Linux version:
"mode sense" command executed in DMA mode).
Updated output of "mode sense" page 0x2a (still reporting CD-ROM drive).
2015-05-05 20:10:43 +00:00
Stanislav Shwartsman
2185d21eb7 fixed comments for PML acronym 2015-05-05 19:52:05 +00:00
Stanislav Shwartsman
a197977682 fixed typo 2015-05-05 19:37:01 +00:00
Stanislav Shwartsman
c9fba73a69 added defines about new VMX bits and controls related to Page Miss Logging (PML) EPT feature 2015-05-05 19:35:39 +00:00
Stanislav Shwartsman
16ab385e1d added cpuid/creg bits definition announced in recent 054 update of Intel SDM 2015-05-05 19:28:25 +00:00
Volker Ruppert
fd690a3a31 Fixed compilation errors found on Cygwin64
- The 'Bits' type used in the opl files is incompatible with Bit64s. Modified
  typedef to fix this issue.
- On Windows use Sleep() directly, since msleep() doesn't exist in Cygwin.
2015-05-05 18:06:05 +00:00
Stanislav Shwartsman
24538e3162 allow to set IPS (and as side effect any other non-hex number param) in scaled form, for example ips=100M 2015-05-04 20:25:10 +00:00
Stanislav Shwartsman
5edd53186e optimize for target with no x86-64 support 2015-05-04 19:58:01 +00:00
Stanislav Shwartsman
28fc5083af remove the victim cache code to resolve assert in proc_ctrl.cc 2015-05-04 19:47:52 +00:00
Stanislav Shwartsman
4c34b97db1 fixed comment 2015-05-03 19:44:24 +00:00
Volker Ruppert
7aab4c561e Regenerated after release. 2015-05-03 17:04:00 +00:00
Volker Ruppert
3aef6a67af Enabled pthread library for all configurations on non-Windows targets.
Usual updates after release (version strings, release tag).
2015-05-03 17:03:26 +00:00
Volker Ruppert
8dd092050f Updated version number 2015-05-03 06:39:56 +00:00
Volker Ruppert
783c3e89c2 Regenerated for release 2015-05-03 06:37:18 +00:00
Volker Ruppert
9d4ef351e7 Preparing Bochs release 2.6.8 2015-05-03 06:36:30 +00:00
Stanislav Shwartsman
5ef56d6d79 rename fpu function 2015-05-02 20:08:36 +00:00
Stanislav Shwartsman
4c7a05621c reorg of code managing MXCSR to softfloat status conversion 2015-05-02 19:54:48 +00:00
Volker Ruppert
84a704e600 Some documentation fixes and updates. 2015-05-02 15:40:11 +00:00
Volker Ruppert
29d54ac8b8 Fixed some compilation errors / warnings found on Mac OSX (SF bug #1371). 2015-05-02 08:42:44 +00:00
Volker Ruppert
722274fd09 Enabling non-blocking mode can cause socket connection failures (at least when
compiled with VS2013).
TODO: slirp should use separate threads for input and output.
2015-05-01 19:41:08 +00:00
Volker Ruppert
742e919f72 Updated changes 2015-05-01 15:21:24 +00:00
Volker Ruppert
2c836e461e Some small updates in the developer doc. 2015-05-01 14:58:50 +00:00
Volker Ruppert
a76a232115 Fixed crash on exit caused by physical drive without media present. Now setting
fd to -1 if there is no readable media found.
2015-04-28 17:01:41 +00:00
Volker Ruppert
506dd623f6 Using "read toc" to get the media size doesn't work correctly for DVDs on Linux.
Now using BLKGETSIZE64 ioctl seems to fix the reported capacity.
2015-04-26 15:59:08 +00:00
Volker Ruppert
9daf8d6673 Documentation for the "waveout" class methods is now complete. 2015-04-25 12:43:48 +00:00
Volker Ruppert
8db4261869 The win32ParamDialog now can handle bx_param_num_c values with full Bit64s size. 2015-04-23 18:44:51 +00:00
Stanislav Shwartsman
9be2f07d54 fix compilation err when SVM is enabled 2015-04-21 08:20:28 +00:00
Stanislav Shwartsman
e72f66ce49 added BX_CPP_AttrRegparmN to xmm/ymmz/zmm read methods matching cpu.h 2015-04-19 20:47:55 +00:00
Volker Ruppert
3bdb1aa555 Some more work on the documentation for the "waveout" class methods (still
not complete).
2015-04-19 07:25:17 +00:00
Stanislav Shwartsman
239b1ae684 added missed vmexit reason to debug print 2015-04-18 19:25:58 +00:00
Volker Ruppert
f8264a7b38 The RSDT table may be detected incorrectly within the rombios32 string table.
Split copying signature and the check for in to parts to fix this ACPI issue.
2015-04-18 13:19:21 +00:00
Volker Ruppert
f169c68174 The RSDT table may be detected incorrectly within the rombios32 string table.
Split copying signature and the check for in to parts to fix this ACPI issue.
2015-04-18 13:18:01 +00:00