On Thu, May 31, 2018 at 08:33:50AM +0200, Gerd Hoffmann wrote:
Use coreboot text mode emulation to also support the qemu bochs-display device. This is a new display device supporting simple linear framebuffers, using the bochs register interface. No support for legacy vga (text modes, planar modes, cga modes, 8bpp palette modes all dropped). The bochs interface is compatible with the qemu stdvga.
Thanks.
Is "display bochs" the official name for this device? I find the name a little confusing because it is both similar to regular "bochs" and similar to the "dispi" interface in the regular bochs driver. If the name isn't fixed, how about "bochs-lite" or "qemu-fb".
[...]
--- a/vgasrc/cbvga.c +++ b/vgasrc/cbvga.c @@ -8,6 +8,9 @@ #include "biosvar.h" // GET_BDA #include "output.h" // dprintf #include "stdvga.h" // SEG_CTEXT +#include "bochsvga.h" // VBE_BOCHS_* +#include "hw/pci.h" // pci_config_readl +#include "hw/pci_regs.h" // PCI_BASE_ADDRESS_0 #include "string.h" // memset16_far #include "util.h" // find_cb_table #include "vgabios.h" // SET_VGA @@ -310,3 +313,57 @@ cbvga_setup(void) cbvga_setup_modes(addr, bpp, xlines, ylines, linelength); return 0; }
+/* ------------------------------------------------------------------ */
+#define FRAMEBUFFER_WIDTH 1024 +#define FRAMEBUFFER_HEIGHT 768 +#define FRAMEBUFFER_BPP 4 +#define FRAMEBUFFER_STRIDE (FRAMEBUFFER_BPP * FRAMEBUFFER_WIDTH) +#define FRAMEBUFFER_SIZE (FRAMEBUFFER_STRIDE * FRAMEBUFFER_HEIGHT)
+int +bochs_display_setup(void) +{
- dprintf(1, "bochs-display: setup called\n");
Instead of adding this to cbvga.c could we add it to a new file? (It and cbvga.c could still be linked together into the final vgabios binary.)
-Kevin