|
From: | Anthony Liguori |
Subject: | Re: [Qemu-devel] [PATCH 5/5] vga optimization. |
Date: | Tue, 11 Nov 2008 08:44:32 -0600 |
User-agent: | Thunderbird 2.0.0.17 (X11/20080925) |
Glauber Costa wrote:
+static void map_linear_vram(CirrusVGAState *s) +{ + int phys_offset = s->vga_io_memory; + + if (!s->map_addr && s->lfb_addr && s->lfb_end) { + s->map_addr = s->lfb_addr; + s->map_end = s->lfb_end; + cpu_register_physical_memory(s->map_addr, s->map_end - s->map_addr, s->vram_offset); + vga_dirty_log_start((VGAState *)s);
So you register this region and enable dirty tracking.
+ } + + if(!(s->cirrus_srcptr != s->cirrus_srcptr_end) + && !((s->sr[0x07] & 0x01) == 0) + && !((s->gr[0x0B] & 0x14) == 0x14) + && !(s->gr[0x0B] & 0x02)) { + phys_offset = s->vram_offset | IO_MEM_RAM; + } + cpu_register_physical_memory(isa_mem_base + 0xa0000, 0x20000, phys_offset);
But also potentially change 0xa0000..0xc0000 to RAM, but you don't enable dirty tracking on this region. I think you either have to leave this region as MMIO or enable dirty tracking on it too.
Regards, Anthony Liguori
[Prev in Thread] | Current Thread | [Next in Thread] |