summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Graf <agraf@suse.de>2009-12-02 23:20:29 +0100
committerAurelien Jarno <aurelien@aurel32.net>2009-12-03 20:20:43 +0100
commitdc702288a3604ce8f788a5b9c7a19fad6d1aa50b (patch)
tree838bbe42af7ccdde77dbdf97db123ee49db969fc
parentba5e50908c66751b2c387ece023b796be2563c47 (diff)
downloadqemu-dc702288a3604ce8f788a5b9c7a19fad6d1aa50b.tar.gz
targe-ppc: Sync CPU state for KVM
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 <agraf@suse.de> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
-rw-r--r--hw/ppc_newworld.c4
-rw-r--r--hw/ppc_oldworld.c4
2 files changed, 8 insertions, 0 deletions
diff --git a/hw/ppc_newworld.c b/hw/ppc_newworld.c
index 7579ddd340..b29a7bc103 100644
--- a/hw/ppc_newworld.c
+++ b/hw/ppc_newworld.c
@@ -39,6 +39,7 @@
#include "ide.h"
#include "loader.h"
#include "elf.h"
+#include "kvm.h"
#define MAX_IDE_BUS 2
#define VGA_BIOS_SIZE 65536
@@ -135,6 +136,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 32fd03a900..c90b151487 100644
--- a/hw/ppc_oldworld.c
+++ b/hw/ppc_oldworld.c
@@ -39,6 +39,7 @@
#include "ide.h"
#include "loader.h"
#include "elf.h"
+#include "kvm.h"
#define MAX_IDE_BUS 2
#define VGA_BIOS_SIZE 65536
@@ -163,6 +164,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,