Jan Kiszka <jan.kis...@siemens.com> writes: > On 2012-09-11 17:53, Jan Kiszka wrote: >> Our one and only BIOS depends on a writable shadowed BIOS in the ISA >> range. As we have no interface to control the write property, make that >> region writable by default. >> >> Signed-off-by: Jan Kiszka <jan.kis...@siemens.com> >> --- >> >> This unbreaks isapc for TCG, and keep it working for KVM once it starts >> supporting read-only memslots. >> >> hw/pc_sysfw.c | 13 +++++++++---- >> 1 files changed, 9 insertions(+), 4 deletions(-) >> >> diff --git a/hw/pc_sysfw.c b/hw/pc_sysfw.c >> index b45f0ac..027d98a 100644 >> --- a/hw/pc_sysfw.c >> +++ b/hw/pc_sysfw.c >> @@ -136,6 +136,7 @@ static void old_pc_system_rom_init(MemoryRegion >> *rom_memory) >> { >> char *filename; >> MemoryRegion *bios, *isa_bios; >> + void *isa_bios_ptr; >> int bios_size, isa_bios_size; >> int ret; >> >> @@ -167,19 +168,23 @@ static void old_pc_system_rom_init(MemoryRegion >> *rom_memory) >> g_free(filename); >> } >> >> - /* map the last 128KB of the BIOS in ISA space */ >> + /* Shadow the last 128KB of the BIOS in ISA space as RAM - >> + * Seabios depends on this */ >> isa_bios_size = bios_size; >> if (isa_bios_size > (128 * 1024)) { >> isa_bios_size = 128 * 1024; >> } >> isa_bios = g_malloc(sizeof(*isa_bios)); >> - memory_region_init_alias(isa_bios, "isa-bios", bios, >> - bios_size - isa_bios_size, isa_bios_size); >> + memory_region_init_ram(isa_bios, "isa-bios", isa_bios_size); >> + vmstate_register_ram_global(isa_bios); >> memory_region_add_subregion_overlap(rom_memory, >> 0x100000 - isa_bios_size, >> isa_bios, >> 1); >> - memory_region_set_readonly(isa_bios, true); >> + >> + /* copy ISA rom image from top of the ROM */ >> + isa_bios_ptr = memory_region_get_ram_ptr(isa_bios); >> + rom_copy(isa_bios_ptr, (uint32_t)(-isa_bios_size), isa_bios_size); >> >> /* map all the bios at the top of memory */ >> memory_region_add_subregion(rom_memory, >> > > Ping. Or already queued?
I've got it queued now. Thanks. Regards, Anthony Liguori > > Jan > > -- > Siemens AG, Corporate Technology, CT RTC ITP SDP-DE > Corporate Competence Center Embedded Linux