From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NCqLY-0002S9-Ch for qemu-devel@nongnu.org; Tue, 24 Nov 2009 03:02:00 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1NCqLU-0002Q7-L0 for qemu-devel@nongnu.org; Tue, 24 Nov 2009 03:02:00 -0500 Received: from [199.232.76.173] (port=40726 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NCqLU-0002Py-G7 for qemu-devel@nongnu.org; Tue, 24 Nov 2009 03:01:56 -0500 Received: from mx20.gnu.org ([199.232.41.8]:59388) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1NCqLT-0003is-SN for qemu-devel@nongnu.org; Tue, 24 Nov 2009 03:01:56 -0500 Received: from cantor.suse.de ([195.135.220.2] helo=mx1.suse.de) by mx20.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1NCqLT-0004y7-0z for qemu-devel@nongnu.org; Tue, 24 Nov 2009 03:01:55 -0500 From: Alexander Graf Date: Tue, 24 Nov 2009 09:01:51 +0100 Message-Id: <1259049712-8165-1-git-send-email-agraf@suse.de> Subject: [Qemu-devel] [PATCH] PPC: Sync CPU state for KVM List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Some recent change made PPC guests always start at address 0x0 because env isn't synced to kvm_state on first bootup. I'm not sure if this is the correct bugfix, but at least it makes PPC boot again with KVM enabled. Signed-off-by: Alexander Graf --- hw/ppc_newworld.c | 4 ++++ hw/ppc_oldworld.c | 4 ++++ 2 files changed, 8 insertions(+), 0 deletions(-) diff --git a/hw/ppc_newworld.c b/hw/ppc_newworld.c index da868d3..2f2f091 100644 --- a/hw/ppc_newworld.c +++ b/hw/ppc_newworld.c @@ -38,6 +38,7 @@ #include "ide.h" #include "loader.h" #include "elf.h" +#include "kvm.h" #define MAX_IDE_BUS 2 #define VGA_BIOS_SIZE 65536 @@ -134,6 +135,9 @@ static void ppc_core99_init (ram_addr_t ram_size, envs[i] = env; } + /* Make sure all register sets take effect */ + cpu_synchronize_state(env); + /* allocate RAM */ ram_offset = qemu_ram_alloc(ram_size); cpu_register_physical_memory(0, ram_size, ram_offset); diff --git a/hw/ppc_oldworld.c b/hw/ppc_oldworld.c index 9b49a3d..4d89805 100644 --- a/hw/ppc_oldworld.c +++ b/hw/ppc_oldworld.c @@ -38,6 +38,7 @@ #include "ide.h" #include "loader.h" #include "elf.h" +#include "kvm.h" #define MAX_IDE_BUS 2 #define VGA_BIOS_SIZE 65536 @@ -162,6 +163,9 @@ static void ppc_heathrow_init (ram_addr_t ram_size, envs[i] = env; } + /* Make sure all register sets take effect */ + cpu_synchronize_state(env); + /* allocate RAM */ if (ram_size > (2047 << 20)) { fprintf(stderr, -- 1.6.0.2