* ourselves */
s->vram_gmfn = vga_acc ? s->lfb_addr : VRAM_RESERVED_ADDRESS;
xen_vga_populate_vram(s->vram_gmfn, s->vram_size);
+ } else {
+ xen_vga_vram_map(s->vram_gmfn, s->vram_size);
}
- xen_vga_vram_map(s->vram_gmfn, s->vram_size);
if (version_id < 3 || (!vga_acc && !t))
qemu_get_buffer(f, s->vram_ptr, s->vram_size);
/* Old guest, VRAM is not mapped, we have to restore it ourselves */
if (!s->vram_gmfn) {
xen_vga_populate_vram(VRAM_RESERVED_ADDRESS, s->vram_size);
- xen_vga_vram_map(VRAM_RESERVED_ADDRESS, s->vram_size);
s->vram_gmfn = VRAM_RESERVED_ADDRESS;
qemu_get_buffer(f, s->vram_ptr, s->vram_size);
}
exit(1);
}
free(pfn_list);
+
+ xen_vga_vram_map(vram_addr, vga_ram_size);
+
+ /* Win2K seems to assume that the pattern buffer is at 0xff
+ initially ! */
+ memset(xen_vga_state->vram_ptr, 0xff, vga_ram_size);
}
/* Mapping the video memory from GPFN space */
xen_pfn_t *pfn_list;
int i;
void *vram;
- DisplayState *ds;
fprintf(logfile, "mapping video RAM from %llx\n",
(unsigned long long)vram_addr);
if (!restore) {
xen_vga_populate_vram(VRAM_RESERVED_ADDRESS, s->vram_size);
- xen_vga_vram_map(VRAM_RESERVED_ADDRESS, s->vram_size);
s->vram_gmfn = VRAM_RESERVED_ADDRESS;
}