]> xenbits.xensource.com Git - seabios.git/commitdiff
bochsdisplay: add edid support.
authorGerd Hoffmann <kraxel@redhat.com>
Tue, 19 Mar 2019 10:48:04 +0000 (11:48 +0100)
committerGerd Hoffmann <kraxel@redhat.com>
Wed, 15 May 2019 08:11:48 +0000 (10:11 +0200)
Read EDID blob from mmio bar, store in VBE_edid.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
vgasrc/bochsdisplay.c

index 6a75f3787efcfd6aa0124517307efa535435473c..38891b5f6734736a02db445a3ee2a3e15cb07ff3 100644 (file)
@@ -4,6 +4,7 @@
 #include "bochsvga.h" // VBE_BOCHS_*
 #include "hw/pci.h" // pci_config_readl
 #include "hw/pci_regs.h" // PCI_BASE_ADDRESS_0
+#include "vgabios.h" // SET_VGA
 #include "vgautil.h" // VBE_total_memory
 
 #define FRAMEBUFFER_WIDTH      1024
@@ -40,7 +41,12 @@ bochs_display_setup(void)
     if (id != VBE_DISPI_ID5)
         return -1;
 
-     dprintf(1, "bochs-display: using %dx%d, %d bpp (%d stride)\n"
+    int i;
+    u8 *edid = (void*)(io_addr);
+    for (i = 0; i < sizeof(VBE_edid); i++)
+        SET_VGA(VBE_edid[i], readb(edid + i));
+
+    dprintf(1, "bochs-display: using %dx%d, %d bpp (%d stride)\n"
             , FRAMEBUFFER_WIDTH, FRAMEBUFFER_HEIGHT
             , FRAMEBUFFER_BPP * 8, FRAMEBUFFER_STRIDE);