Commit Graph

13367 Commits

Author SHA1 Message Date
Volker Ruppert 8528604888 Cirrus: Corrected redraw fix for backward BitBlt. 2024-01-15 23:28:23 +01:00
Volker Ruppert bcfe5e129f Cirrus: Fixed redraw values for backward BitBlt. 2024-01-15 17:11:25 +01:00
Shwartsman d965a16a7d cosmetic updates for SVM code 2024-01-14 20:30:04 +02:00
Volker Ruppert 77fffc1336 SDL: Cleaned up fullscreen toggle functions.
FIXME: Window height sometimes not restored correctly (observed on Linux / X11).
2024-01-14 17:49:44 +01:00
Volker Ruppert 103b4fa8eb SDL2: Save / restore window position when using fullscreen toggle.
FIXME: Display updates can fail after toggle (observed on Linux / X11).
2024-01-14 17:00:05 +01:00
Shwartsman e4deec2aca cleanups and code updates before thinking of INIT redirection implementation for AMD SVM 2024-01-14 12:55:43 +02:00
Shwartsman 61a35063c5 remove all ifdefs from features.h
I'd like features bitmasks to be independent on Bochs compilation flags
so let all flags to be 'exists' even if corresponding feature is not compiled in.
2024-01-14 12:51:41 +02:00
Volker Ruppert 9fdb898dfe SDL / SDL2: change fullscreen toggle to key combination ALT+ENTER.
TODO: Fix some issues related to this feature.
2024-01-14 11:41:01 +01:00
Volker Ruppert 04ed1e8fd2 Some more VGA timing handling chages.
- Changing status of 'update_mode_vsync' is no longer supported at runtime.
  If disabled, changing the value is only valid between 1 and 75.
- Modify vtotal_usec if frequency to high before activating vsync_timer.
2024-01-14 10:13:39 +01:00
Volker Ruppert 2585b6ff68 SDL2: Don't show dialog box if Bochs is killed with SIGTERM. 2024-01-14 07:01:31 +01:00
Stanislav Shwartsman 144367c2d4 Enable ia32_spec_ctrl virtualization for SPR 2024-01-13 22:05:45 +02:00
Stanislav Shwartsman b2cf7860dc VMX: Implemented MSR IA32_SPEC_CTRL Virtualization VMX extension
fixed few typos in error messages
2024-01-13 21:58:23 +02:00
Volker Ruppert 7e7c7c45ef Attempt to fix HPET reset in legacy mode (issue #218). 2024-01-13 20:13:23 +01:00
Stanislav Shwartsman 540c7bbf64 update and cleanup CHANGES 2024-01-13 20:53:54 +02:00
Volker Ruppert 1ebe15e3fc Rewrite of the VGA timing code.
- Added VSYNC timer handler using vertical total usec. The calling time is defined
  as vertical retrace end and it updates the CRTC start address like real VGA does.
  It also calculates the display start time used when reading the input status register.
  The VSYNC timer is disabled in Voodoo / Banshee modes.
- Improved VGA timing calculation (e.g. vertical blanking and retrace start).
2024-01-13 19:33:35 +01:00
Shwartsman 63539d32dc fixed complation for .conf.nothing 2024-01-13 19:38:04 +02:00
Stanislav Shwartsman 0c1027e243 extract paging exception checking logic to separate function and solve a lot of code duplication 2024-01-13 17:47:42 +02:00
Stanislav Shwartsman d037138e4e extract Protection Keys handling code to separate function 2024-01-13 15:57:13 +02:00
Stanislav Shwartsman adb50a9210 implemented "advanced VM-exit information for EPT violations"
comes in complementary with VMX MBE control which was already in the model
2024-01-13 15:22:58 +02:00
Stanislav Shwartsman b84b922da3 remove unused 'shadow stack' bookkeeping from paging attributes 2024-01-13 11:57:30 +02:00
Stanislav Shwartsman 9fc53de186 VMX: PML address saved should be always 4K aligned
Fixes #217
2024-01-13 09:43:28 +02:00
Volker Ruppert dbc1f5d93a Cirrus: Fixed color expand bitblt with dword granularity enabled. 2024-01-13 05:18:07 +01:00
Stanislav Shwartsman 997fd85ec9 Set EFLAGS.RF on triple fault before shutdown or VMEXIT 2024-01-12 21:12:17 +02:00
Stanislav Shwartsman ceaffe85d3 move code from paging.cc to access.cc
intoduce a function to solve code duplication
2024-01-12 21:08:14 +02:00
Stanislav Shwartsman 6977fc05d9 VMX: adjust RFLAGS saved into guest state on VMEXIT according to VMX documentation:
For APIC-access VM exits and for VM exits caused by:
- EPT violations
- EPT misconfigurations
- page-modification log-full events or
- SPP-related events
the value saved depends on whether the VM exit occurred during delivery of an event through the IDT ...

also handle RFlags saved if VMEXIT was caused directly by an event that would normally be delivered through the IDT

should fix #215
2024-01-12 20:01:53 +02:00
Volker Ruppert 5b6872168a Banshee: Attempt to implement 8 and 16 byte writes to CMDFIFO.
- The mem_write_handler() splits 16 bytes writes in two 8 bytes writes.
- In mem_write() the 8 byte writes to CMDFIFO are split in two 32-bit writes.
2024-01-12 18:56:49 +01:00
Volker Ruppert 75fe93bc03 Updated MSVC workspace files. 2024-01-12 17:48:16 +01:00
Volker Ruppert 71d9b7e720 Documentation updates. 2024-01-12 16:12:26 +01:00
Stanislav Shwartsman 081f3aa349 update CHANGES with recent fixes made by Volker 2024-01-12 13:02:36 +02:00
Stanislav Shwartsman ddb9aeff59 fixups in CHANGES file 2024-01-12 12:56:34 +02:00
Shwartsman 6f4f217a08 implemented AMX_FP16 and aMX_COMPLEX, fixes for daz handling in AVX_NE_CONVERT FB16
updated CHANGES
2024-01-12 12:38:31 +02:00
Stanislav Shwartsman 167942816a regen Makefile.in dependencies 2024-01-12 01:10:47 +02:00
Stanislav Shwartsman 0eab037907 dynamically allocate VMCB_CACHE only if SVM is actually enabled by CPU model
also reduces include dependency on svm.h
2024-01-12 00:56:09 +02:00
Stanislav Shwartsman d6769cecfc AMX was added to 'release' conf but not to 'everything' 2024-01-12 00:30:53 +02:00
Stanislav Shwartsman 6b48d6e33f resolution for SF bug #1460 Incorrect "Blocking by NMI" bit when handling NMI VM-exit
as well as
resolution for Test stuck due to incorrect Virtual NMI handling #211
which appear the same problem
2024-01-12 00:19:44 +02:00
Shwartsman 9e36971e0f fixed TILELOADD/TILESTORED and TDPBF16PS 2024-01-11 21:04:14 +02:00
Shwartsman 8dca1e0e07 correct implementation of AMX TDPBxxD instructions 2024-01-11 20:20:33 +02:00
Volker Ruppert b8054277cb Fixed compilation with PCI disabled.
When switching to Voodoo 1/2 update timer only if update_mode_vsync is enabled.
Still TODO: update docs.
2024-01-11 18:30:39 +01:00
Volker Ruppert fc6703a2f7 VGA update timer using vertical frequency now supported by Voodoo devices.
TODO: update docs.
2024-01-11 17:48:11 +01:00
Shwartsman 89d992b5b8 fixed (#214) wrong MSR name typo in MSR error message
in real mode exceptions should not push error code to stack so the same should be for VMEXIT due to HW exception from unrestricted real mode guest (fixes #211)
2024-01-11 08:10:42 +02:00
Shwartsman 77bbdca17a change from USB Debugger branch by Ben, rename variable 2024-01-10 21:25:03 +02:00
Stanislav Shwartsman cc87b23738 regen configure after AMX added 2024-01-10 20:23:55 +02:00
Stanislav Shwartsman 3a02e85599
AMX support (#212) 2024-01-10 20:13:25 +02:00
Volker Ruppert cfa7276cb9 Added support for driving the VGA display update timer with VSYNC.
- Using the special value of 0 enables this feature. In that case the vertical
  frequency is used for the display updates. The update() method is called at
  the "vertical retrace end" time and sets the time of the display start. This
  value is used to set the vertical retrace indicator in VGA register 0x03da.
- This feature is not yet enabled if Voodoo support is present. The Voodoo device
  has it's own vertical timer and needs some more testing and possibly some changes.
2024-01-09 21:48:19 +01:00
Shwartsman c04fb9a6ba Fixed decoding of AVX-VNNI instruction (typo in decoder tables)
mention AVX-VNNI in CHANGES
2024-01-09 09:14:39 +02:00
Shwartsman e5ef6d6a47 According to documentation (8254.pdf), mode 6 is the same as mode 2 and mode 7 is the same as mode 3. 2024-01-08 20:27:59 +02:00
Volker Ruppert f06346afcb Voodoo Banshee: added missing type cast in mem_write(). 2024-01-07 22:05:41 +01:00
Volker Ruppert 9dbca8951e Fixed Banshee read from ROM and mem_write() for any size and endianness. 2024-01-07 19:33:58 +01:00
Volker Ruppert 0d3a63b08d Updated LGPL'd VGABIOS to release 0.8c. 2024-01-07 17:27:30 +01:00
Volker Ruppert a566b1e69d PCI MMIO space is not disabled if the Cirrus card is in VGA mode. 2024-01-07 13:55:43 +01:00