Patchwork vga: Mark VBE area as reserved in e820 tables

login
register
mail settings
Submitter Alex Williamson
Date Oct. 14, 2010, 6:36 p.m.
Message ID <20101014183546.23575.34968.stgit@s20.home>
Download mbox | patch
Permalink /patch/67853/
State New
Headers show

Comments

Alex Williamson - Oct. 14, 2010, 6:36 p.m.
Otherwise the guest might try to use the range for device hotplug.

Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
---

 hw/vga.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)
Gerd Hoffmann - Oct. 15, 2010, 8:22 a.m.
On 10/14/10 20:36, Alex Williamson wrote:
> Otherwise the guest might try to use the range for device hotplug.

Aaaaarrgh.

/me tries to kill vga_init_vbe() usage for everything (but isa-vga) for 
*months* now.  I want to zap the magic framebuffer @ 
VBE_DISPI_LFB_PHYSICAL_ADDRESS instead of trying to convince guests to 
not touch it using all kinds of voodoo.

Anthony, what is the status of the vgabios patches?  Can we *please* 
finally merge them?

thanks,
   Gerd

http://cgit.freedesktop.org/spice/qemu/log/?h=vgabios
http://cgit.freedesktop.org/~kraxel/vgabios/log/
Alex Williamson - Oct. 15, 2010, 2:41 p.m.
On Fri, 2010-10-15 at 10:22 +0200, Gerd Hoffmann wrote:
> On 10/14/10 20:36, Alex Williamson wrote:
> > Otherwise the guest might try to use the range for device hotplug.
> 
> Aaaaarrgh.
> 
> /me tries to kill vga_init_vbe() usage for everything (but isa-vga) for 
> *months* now.  I want to zap the magic framebuffer @ 
> VBE_DISPI_LFB_PHYSICAL_ADDRESS instead of trying to convince guests to 
> not touch it using all kinds of voodoo.

Sorry I missed that.  Sure, if we can zap it entirely and move it into
the option ROM, that clearly seems like the way to go.  Thanks,

Alex

Patch

diff --git a/hw/vga.c b/hw/vga.c
index 966185e..90f9dc0 100644
--- a/hw/vga.c
+++ b/hw/vga.c
@@ -2331,6 +2331,14 @@  void vga_init(VGACommonState *s)
 void vga_init_vbe(VGACommonState *s)
 {
 #ifdef CONFIG_BOCHS_VBE
+#if defined (TARGET_I386)
+    if (e820_add_entry(VBE_DISPI_LFB_PHYSICAL_ADDRESS,
+                       VGA_RAM_SIZE, E820_RESERVED) < 0) {
+        fprintf(stderr,
+                "Warning: unable to register VBE range as e820 reserved\n");
+    }
+#endif
+
     /* XXX: use optimized standard vga accesses */
     cpu_register_physical_memory(VBE_DISPI_LFB_PHYSICAL_ADDRESS,
                                  VGA_RAM_SIZE, s->vram_offset);