diff options
author | Alexander Graf <agraf@suse.de> | 2009-12-02 23:20:29 +0100 |
---|---|---|
committer | Aurelien Jarno <aurelien@aurel32.net> | 2009-12-03 20:20:43 +0100 |
commit | dc702288a3604ce8f788a5b9c7a19fad6d1aa50b (patch) | |
tree | 838bbe42af7ccdde77dbdf97db123ee49db969fc /hw | |
parent | ba5e50908c66751b2c387ece023b796be2563c47 (diff) | |
download | qemu-dc702288a3604ce8f788a5b9c7a19fad6d1aa50b.zip qemu-dc702288a3604ce8f788a5b9c7a19fad6d1aa50b.tar.gz qemu-dc702288a3604ce8f788a5b9c7a19fad6d1aa50b.tar.bz2 |
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>
Diffstat (limited to 'hw')
-rw-r--r-- | hw/ppc_newworld.c | 4 | ||||
-rw-r--r-- | 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 7579ddd..b29a7bc 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 32fd03a..c90b151 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, |