[SeaBIOS] [PATCH 3/6] qemu: add bochs-display support

Kevin O'Connor kevin at koconnor.net
Thu May 31 16:44:55 CEST 2018


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



More information about the SeaBIOS mailing list