From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:54413) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Rl60Y-0001gf-Kg for qemu-devel@nongnu.org; Wed, 11 Jan 2012 16:46:59 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Rl60W-0005YP-2x for qemu-devel@nongnu.org; Wed, 11 Jan 2012 16:46:58 -0500 Message-ID: <4F0E034A.7000109@codemonkey.ws> Date: Wed, 11 Jan 2012 15:46:50 -0600 From: Anthony Liguori MIME-Version: 1.0 References: <1325783595-22962-1-git-send-email-afaerber@suse.de> <4F0E026B.6010400@suse.de> In-Reply-To: <4F0E026B.6010400@suse.de> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Subject: Re: [Qemu-devel] [PATCH] prep: Fix offset of BIOS MemoryRegion List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: =?UTF-8?B?QW5kcmVhcyBGw6RyYmVy?= Cc: Avi Kivity , qemu-ppc@nongnu.org, qemu-devel@nongnu.org, Alexander Graf On 01/11/2012 03:43 PM, Andreas Färber wrote: > Am 05.01.2012 18:13, schrieb Andreas Färber: >> Since 0c90c52fab5ea92d7f12b29bfe26a7cd75d9efcb (ppc_prep: convert to memory >> API) OHW was "Trying to execute code outside RAM or ROM at 0xfff00700". >> >> The BIOS MemoryRegion is created with a fixed size of 1 MiB. >> Ensure that the full size can be accessed since the exception >> vectors are located at 0xfff00000 and the BIOS may want to use them. >> >> It thereby no longer depends on the actual BIOS binary size. >> >> Signed-off-by: Andreas Färber >> Cc: Avi Kivity >> Cc: Alexander Graf > > Ping! Is everyone okay with this? Should I send a PULL? I would expect this to come through Alex's tree. Regards, Anthony Liguori > > Andreas > >> --- >> hw/ppc_prep.c | 4 ++-- >> 1 files changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/hw/ppc_prep.c b/hw/ppc_prep.c >> index 47dab3f..dec059a 100644 >> --- a/hw/ppc_prep.c >> +++ b/hw/ppc_prep.c >> @@ -560,6 +560,8 @@ static void ppc_prep_init (ram_addr_t ram_size, >> >> /* allocate and load BIOS */ >> memory_region_init_ram(bios, "ppc_prep.bios", BIOS_SIZE); >> + memory_region_set_readonly(bios, true); >> + memory_region_add_subregion(sysmem, (uint32_t)(-BIOS_SIZE), bios); >> vmstate_register_ram_global(bios); >> if (bios_name == NULL) >> bios_name = BIOS_FILENAME; >> @@ -573,8 +575,6 @@ static void ppc_prep_init (ram_addr_t ram_size, >> target_phys_addr_t bios_addr; >> bios_size = (bios_size + 0xfff)& ~0xfff; >> bios_addr = (uint32_t)(-bios_size); >> - memory_region_set_readonly(bios, true); >> - memory_region_add_subregion(sysmem, bios_addr, bios); >> bios_size = load_image_targphys(filename, bios_addr, bios_size); >> } >> if (bios_size< 0 || bios_size> BIOS_SIZE) { >