Commit Graph

16 Commits

Author SHA1 Message Date
Volker Ruppert
7412ebc07b Added new macros BX_DEBUG_PCI_READ and BX_DEBUG_PCI_WRITE to unify the debug
output of PCI config space handlers.
Banshee: some PCI register fixes.
2018-05-01 15:54:37 +00:00
Volker Ruppert
a086cdf08f Some work on the Voodoo Banshee emulation.
- Added default value for the video clock frequency to make sure that the
  vertical timer works.
- Changing vidDesktopStartAddr register when the video processor is on now
  forces a screen update.
2018-04-01 16:05:40 +00:00
Volker Ruppert
e639d9dd29 Report AGP model in PCI status, new PCI capabilities and strapInfo register.
AGP specific features are not present yet.
2018-03-09 18:33:44 +00:00
Volker Ruppert
8952c144bd Some work on the i440BX chipset and related changes.
- Fixed PCI BAR initialization (now using memset()).
  - Fixed reset failure (set all PAM memory types to ROM).
  - Added stub for the AGP aperture (register BAR #0, handle APSIZE and read
    GART entry in read/write handlers).
  - Added some more PCI register defaults and write masks.
  - Fixed a warning in the ES1370 code.
  - Voodoo Banshee: set up PCI subsystem ID depending on bus and model.
  - Volatile BIOS write support must also be present in ISA BIOS memory.
2018-03-04 04:53:16 +00:00
Volker Ruppert
73bc76072e Added support for assigning a device (banshee or voodoo3) on Bochs PCI slot #5
to AGP if chipset i440BX is selected. AGP-specific features are not implemented
yet.
2018-02-25 20:59:30 +00:00
Volker Ruppert
04981c35d3 Added the subsystem ID of a Voodoo3 PCI model to make it work with an external
VGABIOS image in Win95/98 guest without hacking. Mention the Voodoo3 model in
the docs.
2018-02-16 13:11:30 +00:00
Volker Ruppert
05da2a4dff Added basic support for the Voodoo3 model (Banshee plus secondary TMU).
Using a temporary subsystem ID, since I haven't found a VGABIOS ROM image for
the PCI version and Bochs doesn't support AGP yet. After modifying Voodoo3.inf
the driver could be installed successfully in Win95/98 and the Voodoo3 works as
expected (same issues as the Banshee model).
Removed BX_ERROR message about setting undocumented srcXY register bits. They
seem to have no effect on the emulation and could be ignored.
2018-02-13 19:36:20 +00:00
Volker Ruppert
e14f70088c Fixed possible infinite loop: width for redraw_area() cannot be 0. 2018-02-12 21:07:04 +00:00
Volker Ruppert
bb472a78f9 Some work on the Voodoo Banshee emulation and related changes.
- Screen-to-screen blt: added support for expanding monochrome source data.
- Fixed calculation of the pitch for packed source data.
- Fixed repeated execution of some commands in non-immediate mode.
- PCI devices: fixed and improved BX_INFO / BX_DEBUG messages.
2018-02-11 22:40:30 +00:00
Volker Ruppert
50c1370216 Some work on the PCI devices code.
- Added INT pin init to method init_pci_conf().
- Moved readonly register handling to the common PCI write handler.
- Moved IRQ line reporting to the common PCI write handler.
2018-02-04 18:17:28 +00:00
Volker Ruppert
87145baf61 Rewrite of the PCI base address (BAR) handling to reduce code duplication.
- Added new structure bx_pci_bar_t that contains all parameters related to the
  PCI BARs (type, size, address and r/w handlers).
- Added new methods init_bar_io() and init_bar_mem() to set up the new structure
  in the pci device init code.
- Added new method pci_write_handler_common() to handle writes to the normal
  BARs and the ROM BAR. Writes to other registers are forwarded to the device
  specific PCI write handlers. Removed BAR and ROM BAR handling from the
  specific code.
- Added new method pci_bar_change_notify() to execute specific code after BAR
  update (vga, ne2k).
- Moved normal BAR handling to method after_restore_pci_state().
- Store pointer to PCI device name in bx_pci_device_c and use it for i/o setup.
2018-02-04 09:41:50 +00:00
Volker Ruppert
5154285270 Some work on the Voodoo Banshee emulation.
- Added support for stippled lines.
- Fixed return values of the I2C interface with no VMI/decoder connected.
- Added some comments about current status of the Banshee code.
2018-01-19 20:58:06 +00:00
Volker Ruppert
1f2d9ca668 Added DDC stub for the Cirrus and Voodoo Banshee display adapters (when ready,
this code should return the VESA EDID for the Bochs plug&play monitor).
2018-01-11 19:02:08 +00:00
Volker Ruppert
5903673b3d Two small changes in the Voodoo Banshee emulation.
- More accurate calculation of the stretch factor.
- Added support for writing the subsystem IDs in PCI space and set up default
  value in reset().
2018-01-08 20:52:23 +00:00
Volker Ruppert
23df53aae5 Voodoo Banshee: added basic screen-to-screen stretching support (using nearest
source pixel).
2018-01-06 17:27:55 +00:00
Volker Ruppert
7f321d0c20 Moved Voodoo Banshee specific code to separate file banshee.cc.
TODO: code cleanup, update workspace files.
2018-01-05 17:43:51 +00:00