1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-30 21:18:11 +00:00
serenity/Kernel/Graphics
Peter Ross 9d94c85b6a Kernel: Use IO init method for Bochs emulated VGA adapter
In short: QEMU supports both Memory-Mapped-IO and classic IO methods
for controlling the emulated VGA device. Bochs and VirtualBox only
support the classic IO method. An excellent write up on the history of
these interfaces can be found here:
https://www.kraxel.org/blog/2018/10/qemu-vga-emulation-and-bochs-display

The IO method was how things were done originally in SerenityOS. Commit
6a728e2d76 introduced the MMIO method for
all devices, breaking Bochs and VirtualBox compatibility. Later in
commit 6a9dc5562d the classic IO method
was restored for VirtualBox graphics adapters.

QEMU and Bochs use the same PCI VID/DID (0x1234/0x1111) for the emulated
VGA adapter. To distinguish betwen QEMU and Bochs we use the PCI
revision ID field (0=Bochs, 2=QEMU).
2022-02-24 09:08:04 +02:00
..
Bochs Kernel: Use IO init method for Bochs emulated VGA adapter 2022-02-24 09:08:04 +02:00
Console Kernel/Graphics: Don't assert when disabling TextModeConsole 2022-02-09 21:05:48 +00:00
Intel Kernel: Disable BootFramebufferConsole when drivers create a new one 2022-02-04 21:34:12 +01:00
VirtIOGPU Kernel: Fix deadlock when setting VirtIOGPU resolution 2022-02-13 10:17:40 +01:00
Definitions.h Kernel: Add ioctl to get the EDID from a framebuffer 2022-01-23 22:45:21 +00:00
FramebufferDevice.cpp Kernel: Don't enable write-combine for the Bochs framebuffer device 2022-02-18 10:30:42 +01:00
FramebufferDevice.h Kernel: Don't enable write-combine for the Bochs framebuffer device 2022-02-18 10:30:42 +01:00
GenericFramebufferDevice.cpp Kernel: Protect FramebufferDevice with spinlock instead of mutex 2022-02-03 16:11:26 +01:00
GenericFramebufferDevice.h Kernel: Protect FramebufferDevice with spinlock instead of mutex 2022-02-03 16:11:26 +01:00
GenericGraphicsAdapter.h Kernel: Add ioctl to get the EDID from a framebuffer 2022-01-23 22:45:21 +00:00
GraphicsManagement.cpp Kernel: Instantiate a TextModeConsole early on if there's no framebuffer 2022-02-09 21:05:48 +00:00
GraphicsManagement.h Kernel: Disable BootFramebufferConsole when drivers create a new one 2022-02-04 21:34:12 +01:00
VGACompatibleAdapter.cpp Kernel/Graphics: Untie Text mode console from VGACompatibleAdapter class 2022-02-09 21:05:48 +00:00
VGACompatibleAdapter.h Kernel: Add ioctl to get the EDID from a framebuffer 2022-01-23 22:45:21 +00:00