From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:48412) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RJsG7-00075Y-Fe for qemu-devel@nongnu.org; Fri, 28 Oct 2011 15:38:32 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RJsG5-00034S-VS for qemu-devel@nongnu.org; Fri, 28 Oct 2011 15:38:31 -0400 Received: from server514d.exghost.com ([72.32.253.69]:2256 helo=server514.appriver.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RJsG5-00034N-Qj for qemu-devel@nongnu.org; Fri, 28 Oct 2011 15:38:29 -0400 Received: from [72.32.253.65] (HELO FE03.exg4.exghost.com) by server514.appriver.com (CommuniGate Pro SMTP 5.4.1) with ESMTP id 182779492 for qemu-devel@nongnu.org; Fri, 28 Oct 2011 14:38:29 -0500 Message-ID: <4EAB04AF.5060803@virtualcomputer.com> Date: Fri, 28 Oct 2011 15:38:23 -0400 From: John Baboval MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: [Qemu-devel] [PATCH 2/3] Xen conditionals List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Don't perform RTC or APIC setup when running in xen mode. Signed-off-by: John V. Baboval --- hw/pc.c | 56 +++++++++++++++++++++++++++++--------------------------- hw/pc_piix.c | 2 +- 2 files changed, 30 insertions(+), 28 deletions(-) diff --git a/hw/pc.c b/hw/pc.c index eb4c2d8..e571d38 100644 --- a/hw/pc.c +++ b/hw/pc.c @@ -40,6 +40,7 @@ #include "sysbus.h" #include "sysemu.h" #include "blockdev.h" +#include "xen.h" #include "ui/qemu-spice.h" #include "memory.h" #include "exec-memory.h" @@ -340,35 +341,36 @@ void pc_cmos_init(ram_addr_t ram_size, ram_addr_t above_4g_mem_size, static pc_cmos_init_late_arg arg; /* various important CMOS locations needed by PC/Bochs bios */ - - /* memory size */ - val = 640; /* base memory in K */ - rtc_set_memory(s, 0x15, val); - rtc_set_memory(s, 0x16, val >> 8); - - val = (ram_size / 1024) - 1024; - if (val > 65535) - val = 65535; - rtc_set_memory(s, 0x17, val); - rtc_set_memory(s, 0x18, val >> 8); - rtc_set_memory(s, 0x30, val); - rtc_set_memory(s, 0x31, val >> 8); - - if (above_4g_mem_size) { - rtc_set_memory(s, 0x5b, (unsigned int)above_4g_mem_size >> 16); - rtc_set_memory(s, 0x5c, (unsigned int)above_4g_mem_size >> 24); - rtc_set_memory(s, 0x5d, (uint64_t)above_4g_mem_size >> 32); + if (!xen_enabled()) { + /* memory size */ + val = 640; /* base memory in K */ + rtc_set_memory(s, 0x15, val); + rtc_set_memory(s, 0x16, val >> 8); + + val = (ram_size / 1024) - 1024; + if (val > 65535) + val = 65535; + rtc_set_memory(s, 0x17, val); + rtc_set_memory(s, 0x18, val >> 8); + rtc_set_memory(s, 0x30, val); + rtc_set_memory(s, 0x31, val >> 8); + + if (above_4g_mem_size) { + rtc_set_memory(s, 0x5b, (unsigned int)above_4g_mem_size >> 16); + rtc_set_memory(s, 0x5c, (unsigned int)above_4g_mem_size >> 24); + rtc_set_memory(s, 0x5d, (uint64_t)above_4g_mem_size >> 32); + } + + if (ram_size > (16 * 1024 * 1024)) + val = (ram_size / 65536) - ((16 * 1024 * 1024) / 65536); + else + val = 0; + if (val > 65535) + val = 65535; + rtc_set_memory(s, 0x34, val); + rtc_set_memory(s, 0x35, val >> 8); } - if (ram_size > (16 * 1024 * 1024)) - val = (ram_size / 65536) - ((16 * 1024 * 1024) / 65536); - else - val = 0; - if (val > 65535) - val = 65535; - rtc_set_memory(s, 0x34, val); - rtc_set_memory(s, 0x35, val >> 8); - /* set the number of CPU */ rtc_set_memory(s, 0x5f, smp_cpus - 1); diff --git a/hw/pc_piix.c b/hw/pc_piix.c index 8c7f2b7..f91658c 100644 --- a/hw/pc_piix.c +++ b/hw/pc_piix.c @@ -162,7 +162,7 @@ static void pc_init1(MemoryRegion *system_memory, for (i = 0; i < ISA_NUM_IRQS; i++) { gsi_state->i8259_irq[i] = i8259[i]; } - if (pci_enabled) { + if (pci_enabled && !xen_enabled()) { ioapic_init(gsi_state); } -- 1.7.4.1