[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 4/5] Add eaddr translator for fsl_booke mmu
From: |
Liu Yu |
Subject: |
[Qemu-devel] [PATCH 4/5] Add eaddr translator for fsl_booke mmu |
Date: |
Sat, 25 Jul 2009 16:40:16 +0800 |
Signed-off-by: Liu Yu <address@hidden>
---
target-ppc/helper.c | 17 +++++++++++++++--
1 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/target-ppc/helper.c b/target-ppc/helper.c
index b7162df..f4af124 100644
--- a/target-ppc/helper.c
+++ b/target-ppc/helper.c
@@ -22,6 +22,7 @@
#include <string.h>
#include <inttypes.h>
#include <signal.h>
+#include <linux/kvm.h>
#include "cpu.h"
#include "exec-all.h"
@@ -1325,8 +1326,20 @@ static always_inline int check_physical (CPUState *env,
mmu_ctx_t *ctx,
cpu_abort(env, "MPC8xx MMU model is not implemented\n");
break;
case POWERPC_MMU_BOOKE_FSL:
- /* XXX: TODO */
- cpu_abort(env, "BookE FSL MMU model not implemented\n");
+ if (kvm_enabled()) {
+ struct kvm_translation tr;
+
+ /* For now we only debug guest kernel */
+ tr.linear_address = eaddr;
+ ret = kvm_vcpu_ioctl(env, KVM_TRANSLATE, &tr);
+ if (ret < 0)
+ return ret;
+
+ ctx->raddr = tr.physical_address;
+ } else {
+ /* XXX: TODO */
+ cpu_abort(env, "BookE FSL MMU model not implemented\n");
+ }
break;
default:
cpu_abort(env, "Unknown or invalid MMU model\n");
--
1.5.4
[Qemu-devel] Re: [PATCH 0/5], Jan Kiszka, 2009/07/25
[Qemu-devel] Re: [PATCH 0/5], Nathan Froyd, 2009/07/27