diff -uNr a/hw/xen_platform.c b/hw/xen_platform.c --- a/hw/xen_platform.c 2008-07-24 10:55:59.960084000 +0100 +++ b/hw/xen_platform.c 2008-07-24 11:19:50.310084450 +0100 @@ -59,7 +59,10 @@ case 0: /* Platform flags */ { hvmmem_type_t mem_type = (val & PFFLAG_ROM_LOCK) ? HVMMEM_ram_ro : HVMMEM_ram_rw; - if (xc_hvm_set_mem_type(xc_handle, domid, mem_type, 0xc0, 0x40)) + /* The numbers passed below are pfns and page counts representing the memory ranges: + 0xc0000 - 0xdffff - VGABIOS and option ROMS (extboot, ethboot, etc) + 0xf0000 - 0xfffff - the main ROMBIOS */ + if (xc_hvm_set_mem_type(xc_handle, domid, mem_type, 0xc0, 0x20) || xc_hvm_set_mem_type(xc_handle, domid, mem_type, 0xf0, 0x10)) fprintf(logfile,"xen_platform: unable to change ro/rw " "state of ROM memory area!\n"); else