From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MU5tL-00014s-KG for qemu-devel@nongnu.org; Thu, 23 Jul 2009 17:31:55 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MU5tG-00013Y-SE for qemu-devel@nongnu.org; Thu, 23 Jul 2009 17:31:54 -0400 Received: from [199.232.76.173] (port=39373 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MU5tG-00013V-G9 for qemu-devel@nongnu.org; Thu, 23 Jul 2009 17:31:50 -0400 Received: from cantor.suse.de ([195.135.220.2]:36214 helo=mx1.suse.de) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1MU5tG-0005Yd-3B for qemu-devel@nongnu.org; Thu, 23 Jul 2009 17:31:50 -0400 Received: from relay2.suse.de (mail2.suse.de [195.135.221.8]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.suse.de (Postfix) with ESMTP id 69EDA90975 for ; Thu, 23 Jul 2009 23:31:47 +0200 (CEST) From: Alexander Graf Date: Thu, 23 Jul 2009 23:31:44 +0200 Message-Id: <1248384704-47824-4-git-send-email-agraf@suse.de> In-Reply-To: <1248384704-47824-3-git-send-email-agraf@suse.de> References: <1248384704-47824-1-git-send-email-agraf@suse.de> <1248384704-47824-2-git-send-email-agraf@suse.de> <1248384704-47824-3-git-send-email-agraf@suse.de> Subject: [Qemu-devel] [PATCH 3/3] PPC: Round VGA BIOS size to page boundary List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org When giving KVM a slot of a size not on page boundary, it chokes. So let's just round up the VGA BIOS size so nobody complains anymore and we don't need to implement sub-page slots. Required for booting a PPC guest in KVM. Signed-off-by: Alexander Graf --- hw/ppc_newworld.c | 3 +++ hw/ppc_oldworld.c | 4 ++++ 2 files changed, 7 insertions(+), 0 deletions(-) diff --git a/hw/ppc_newworld.c b/hw/ppc_newworld.c index 4e5043c..b28a23d 100644 --- a/hw/ppc_newworld.c +++ b/hw/ppc_newworld.c @@ -179,6 +179,9 @@ static void ppc_core99_init (ram_addr_t ram_size, vga_bios_ptr[3] = 'V'; cpu_to_be32w((uint32_t *)(vga_bios_ptr + 4), vga_bios_size); vga_bios_size += 8; + + /* Round to page boundary */ + vga_bios_size = (vga_bios_size + TARGET_PAGE_SIZE) & TARGET_PAGE_MASK; } if (linux_boot) { diff --git a/hw/ppc_oldworld.c b/hw/ppc_oldworld.c index b26e407..0daa25b 100644 --- a/hw/ppc_oldworld.c +++ b/hw/ppc_oldworld.c @@ -212,6 +212,9 @@ static void ppc_heathrow_init (ram_addr_t ram_size, vga_bios_ptr[3] = 'V'; cpu_to_be32w((uint32_t *)(vga_bios_ptr + 4), vga_bios_size); vga_bios_size += 8; + + /* Round to page boundary */ + vga_bios_size = (vga_bios_size + TARGET_PAGE_SIZE) & TARGET_PAGE_MASK; } if (linux_boot) { @@ -310,6 +313,7 @@ static void ppc_heathrow_init (ram_addr_t ram_size, pic = heathrow_pic_init(&pic_mem_index, 1, heathrow_irqs); pci_bus = pci_grackle_init(0xfec00000, pic); pci_vga_init(pci_bus, vga_bios_offset, vga_bios_size); +printf("Mapping VGA to 0x%lx - 0x%lx\n", vga_bios_offset, vga_bios_offset + vga_bios_size); escc_mem_index = escc_init(0x80013000, pic[0x0f], pic[0x10], serial_hds[0], serial_hds[1], ESCC_CLOCK, 4); -- 1.6.0.2