From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:43710) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TTyOo-0000mt-1e for qemu-devel@nongnu.org; Thu, 01 Nov 2012 13:17:47 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TTyOm-0006D5-M2 for qemu-devel@nongnu.org; Thu, 01 Nov 2012 13:17:45 -0400 Received: from mout.web.de ([212.227.17.12]:52418) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TTyOm-0006Cy-C2 for qemu-devel@nongnu.org; Thu, 01 Nov 2012 13:17:44 -0400 Message-ID: <5092AEB6.3020000@web.de> Date: Thu, 01 Nov 2012 18:17:42 +0100 From: Jan Kiszka MIME-Version: 1.0 References: <5092A406.6030402@web.de> In-Reply-To: Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="------------enig93DF6743ED39F632FF2181FB" Subject: Re: [Qemu-devel] [PATCH] pc_sysfw: Always use alias for ISA BIOS region List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Jordan Justen Cc: qemu-devel This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enig93DF6743ED39F632FF2181FB Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On 2012-11-01 18:15, Jordan Justen wrote: > Would the old behavior need to be preserved for pc-1.1 & pc-1.2? Why? This is just restoring the older, correct behavior. Jan >=20 > -Jordan >=20 > On Thu, Nov 1, 2012 at 9:32 AM, Jan Kiszka wrote: >> From: Jan Kiszka >> >> This is no technical reason (anymore) for copying the ISA BIOS from th= e >> original region. Instead, refactor pc_isa_bios_init to serve both pfla= sh >> and old-style BIOS setup. >> >> Signed-off-by: Jan Kiszka >> --- >> hw/pc_sysfw.c | 42 +++++++++--------------------------------- >> 1 files changed, 9 insertions(+), 33 deletions(-) >> >> diff --git a/hw/pc_sysfw.c b/hw/pc_sysfw.c >> index 9d7c5f4..07627df 100644 >> --- a/hw/pc_sysfw.c >> +++ b/hw/pc_sysfw.c >> @@ -41,36 +41,24 @@ typedef struct PcSysFwDevice { >> } PcSysFwDevice; >> >> static void pc_isa_bios_init(MemoryRegion *rom_memory, >> - MemoryRegion *flash_mem, >> - int ram_size) >> + MemoryRegion *bios) >> { >> + uint64_t bios_size =3D memory_region_size(bios); >> int isa_bios_size; >> MemoryRegion *isa_bios; >> - uint64_t flash_size; >> - void *flash_ptr, *isa_bios_ptr; >> - >> - flash_size =3D memory_region_size(flash_mem); >> >> /* map the last 128KB of the BIOS in ISA space */ >> - isa_bios_size =3D flash_size; >> + isa_bios_size =3D bios_size; >> if (isa_bios_size > (128 * 1024)) { >> isa_bios_size =3D 128 * 1024; >> } >> isa_bios =3D g_malloc(sizeof(*isa_bios)); >> - memory_region_init_ram(isa_bios, "isa-bios", isa_bios_size); >> - vmstate_register_ram_global(isa_bios); >> + memory_region_init_alias(isa_bios, "isa-bios", bios, >> + bios_size - isa_bios_size, isa_bios_size= ); >> memory_region_add_subregion_overlap(rom_memory, >> 0x100000 - isa_bios_size, >> isa_bios, >> 1); >> - >> - /* copy ISA rom image from top of flash memory */ >> - flash_ptr =3D memory_region_get_ram_ptr(flash_mem); >> - isa_bios_ptr =3D memory_region_get_ram_ptr(isa_bios); >> - memcpy(isa_bios_ptr, >> - ((uint8_t*)flash_ptr) + (flash_size - isa_bios_size), >> - isa_bios_size); >> - >> memory_region_set_readonly(isa_bios, true); >> } >> >> @@ -129,14 +117,14 @@ static void pc_system_flash_init(MemoryRegion *r= om_memory, >> 1, 0x0000, 0x0000, 0x0000, 0= x0000, 0); >> flash_mem =3D pflash_cfi01_get_memory(system_flash); >> >> - pc_isa_bios_init(rom_memory, flash_mem, size); >> + pc_isa_bios_init(rom_memory, flash_mem); >> } >> >> static void old_pc_system_rom_init(MemoryRegion *rom_memory) >> { >> char *filename; >> - MemoryRegion *bios, *isa_bios; >> - int bios_size, isa_bios_size; >> + MemoryRegion *bios; >> + int bios_size; >> int ret; >> >> /* BIOS load */ >> @@ -167,19 +155,7 @@ static void old_pc_system_rom_init(MemoryRegion *= rom_memory) >> g_free(filename); >> } >> >> - /* map the last 128KB of the BIOS in ISA space */ >> - isa_bios_size =3D bios_size; >> - if (isa_bios_size > (128 * 1024)) { >> - isa_bios_size =3D 128 * 1024; >> - } >> - isa_bios =3D g_malloc(sizeof(*isa_bios)); >> - memory_region_init_alias(isa_bios, "isa-bios", bios, >> - bios_size - isa_bios_size, isa_bios_size= ); >> - memory_region_add_subregion_overlap(rom_memory, >> - 0x100000 - isa_bios_size, >> - isa_bios, >> - 1); >> - memory_region_set_readonly(isa_bios, true); >> + pc_isa_bios_init(rom_memory, bios); >> >> /* map all the bios at the top of memory */ >> memory_region_add_subregion(rom_memory, >> -- >> 1.7.3.4 --------------enig93DF6743ED39F632FF2181FB Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.16 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://www.enigmail.net/ iEYEARECAAYFAlCSrrYACgkQitSsb3rl5xSb0wCgneb18c/shPhvkg5Dcj/IRO++ 9ZAAoNZnWKLQkxudq083NkD23Q1J0kLP =7xqH -----END PGP SIGNATURE----- --------------enig93DF6743ED39F632FF2181FB--