lubomyr / bochs

Bochs IA-32 Emulator Project (android port) https://play.google.com/store/apps/details?id=net.sourceforge.bochs
Other
132 stars 32 forks source link

How to setting VBE_DISPI_LFB_ENABLED for VGABios under bochs ? #16

Open hbsyzbh opened 3 years ago

hbsyzbh commented 3 years ago

Hi , 1st thing, I,m Sorry, I do not speaking English.

Is there any way to enable VGABios LFB(linear frame buffer) in/ under bochs ? like config file changes or patches ? Thanks !

ref: https://wiki.osdev.org/Bochs_VBE_Extensions#Using_a_linear_frame_buffer_.28LFB.29 Using a linear frame buffer (LFB) When using a linear framebuffer, the BGA exposes all of the video memory in a single linearly addressable section of memory. The address of the framebuffer is not fixed, and must be read from the first PCI base address register (BAR 0 of device 0x1234:0x1111). To enable the linear framebuffer, use the VBE_DISPI_LFB_ENABLED flag (0x40) when enabling the BGA in conjunction with the VBE_DISPI_ENABLED flag.

Unlike Bochs, QEMU does not necessarily pay attention to the VBE_DISPI_LFB_ENABLED flag with respect to banked memory access, allowing both the linear framebuffer and banked memory to be used at all times. Bochs will not honour requests to change the memory bank when the linear framebuffer is enabled, and it will similarly ignore any writes made to the memory bank.

Note: In older versions of Bochs and QEMU, the framebuffer was fixed at 0xE0000000, and modern versions will use that address when emulating ISA-only systems. It is highly inadvisable to make assumptions about the address of the linear framebuffer. It should always be read from the BGA's PCI BAR0.