From 4e257d9ee09627d76e00504786362a8ac15d9b12 Mon Sep 17 00:00:00 2001 From: Nathan Froyd Date: Thu, 4 Jun 2009 18:45:03 -0700 Subject: [PATCH] target-ppc: permit linux-user to read PVR Access to the PVR SPR is normally forbidden from userspace apps. The Linux kernel, however, fixes up reads in the appropriate trap handler. To permit applications that read PVR to run on QEMU, then, we need to implement the same handling of PVR reads. Signed-off-by: Nathan Froyd Signed-off-by: malc --- target-ppc/translate_init.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/target-ppc/translate_init.c b/target-ppc/translate_init.c index 8708364..04225e5 100644 --- a/target-ppc/translate_init.c +++ b/target-ppc/translate_init.c @@ -8903,7 +8903,13 @@ static void init_ppc_proc (CPUPPCState *env, const ppc_def_t *def) /* Register SPR common to all PowerPC implementations */ gen_spr_generic(env); spr_register(env, SPR_PVR, "PVR", - SPR_NOACCESS, SPR_NOACCESS, + /* Linux permits userspace to read PVR */ +#if defined(CONFIG_LINUX_USER) + &spr_read_generic, +#else + SPR_NOACCESS, +#endif + SPR_NOACCESS, &spr_read_generic, SPR_NOACCESS, def->pvr); /* Register SVR if it's defined to anything else than POWERPC_SVR_NONE */ -- 2.7.4