diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2016-03-21 13:52:36 +0100 |
---|---|---|
committer | David Gibson <david@gibson.dropbear.id.au> | 2016-03-24 11:17:34 +1100 |
commit | 6a9c4ef452c98060e919aa49db49c09ed8c37745 (patch) | |
tree | 5daedb19a576cc1a4ec29c5a30bd203f28a2360e /target-ppc | |
parent | 21a558bed91f363ea8fc3f9a95b222a0949c70e7 (diff) | |
download | qemu-6a9c4ef452c98060e919aa49db49c09ed8c37745.zip qemu-6a9c4ef452c98060e919aa49db49c09ed8c37745.tar.gz qemu-6a9c4ef452c98060e919aa49db49c09ed8c37745.tar.bz2 |
ppc: Initialize AMOR in PAPR mode
Make sure we give the guest full authorization
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Diffstat (limited to 'target-ppc')
-rw-r--r-- | target-ppc/translate_init.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/target-ppc/translate_init.c b/target-ppc/translate_init.c index 3a13ad7..5125743 100644 --- a/target-ppc/translate_init.c +++ b/target-ppc/translate_init.c @@ -8398,6 +8398,7 @@ POWERPC_FAMILY(POWER8)(ObjectClass *oc, void *data) void cpu_ppc_set_papr(PowerPCCPU *cpu) { CPUPPCState *env = &cpu->env; + ppc_spr_t *amor = &env->spr_cb[SPR_AMOR]; /* PAPR always has exception vectors in RAM not ROM. To ensure this, * MSR[IP] should never be set. @@ -8406,6 +8407,9 @@ void cpu_ppc_set_papr(PowerPCCPU *cpu) */ env->msr_mask &= ~((1ull << MSR_EP) | MSR_HVB); + /* Set a full AMOR so guest can use the AMR as it sees fit */ + env->spr[SPR_AMOR] = amor->default_value = 0xffffffffffffffffull; + /* Tell KVM that we're in PAPR mode */ if (kvm_enabled()) { kvmppc_set_papr(cpu); |