diff options
author | Anthony Liguori <aliguori@us.ibm.com> | 2009-12-18 08:08:07 +1000 |
---|---|---|
committer | Anthony Liguori <aliguori@us.ibm.com> | 2009-12-18 11:26:31 -0600 |
commit | f0138a63a41fe26bcef61d031ae53d872d12a992 (patch) | |
tree | d4b795d9339137211b020c22a7ac6a4b6070b9c8 /hw/vmware_vga.c | |
parent | f351d050dccfc469fecd353d095526d52e4632c6 (diff) |
Make sure to enable dirty tracking of VBE vram mapping
Apparently, VBE maps the VGA vram to a fixed physical location. KVM requires
that all mappings of the VGA vram have dirty tracking enabled on them. Any
access to the VGA vram through the VBE mapping currently fails to result in
dirty page tracking updates causing a black screen.
This is the true root cause of VMware VGA not working correctly under KVM and
likely also an issue with some of the std-vga black screen issues too.
Cirrus does not enable VBE so it would not be a problem when using Cirrus.
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Rebased-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'hw/vmware_vga.c')
-rw-r--r-- | hw/vmware_vga.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/hw/vmware_vga.c b/hw/vmware_vga.c index 28bbc3fb99..07befc85de 100644 --- a/hw/vmware_vga.c +++ b/hw/vmware_vga.c @@ -1129,12 +1129,8 @@ static void vmsvga_init(struct vmsvga_state_s *s, int vga_ram_size) vmsvga_screen_dump, vmsvga_text_update, s); -#ifdef CONFIG_BOCHS_VBE - /* XXX: use optimized standard vga accesses */ - cpu_register_physical_memory(VBE_DISPI_LFB_PHYSICAL_ADDRESS, - vga_ram_size, s->vga.vram_offset); -#endif - rom_add_vga(VGABIOS_FILENAME); + vga_init_vbe(&s->vga); + rom_add_vga(VGABIOS_FILENAME); } static void pci_vmsvga_map_ioport(PCIDevice *pci_dev, int region_num, |