From patchwork Wed Apr 21 09:21:56 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [2/2] target-ppc: fix interrupt vectors for MPC603 and e300 From: Thomas Monjalon X-Patchwork-Id: 50646 Message-Id: <1271841716-11582-3-git-send-email-thomas_ml@monjalon.net> To: qemu-devel@nongnu.org Date: Wed, 21 Apr 2010 11:21:56 +0200 From: Thomas Monjalon The vectors are listed - in the chapter 1.3.3.2 (Implementation-Specific Interrupt Model) of the e300 datasheet [e300CORERM] and - in the chapter 3.5.2 (PowerPC 603 Microprocessor Exception Model) of the MPC603 datasheet. As e300 inherits from MPC603, init_excp_e300() calls init_excp_603(). Signed-off-by: Thomas Monjalon --- target-ppc/translate_init.c | 13 +++++++++++-- 1 files changed, 11 insertions(+), 2 deletions(-) diff --git a/target-ppc/translate_init.c b/target-ppc/translate_init.c index 9e42831..f3e266d 100644 --- a/target-ppc/translate_init.c +++ b/target-ppc/translate_init.c @@ -2853,7 +2853,16 @@ static void init_excp_603 (CPUPPCState *env) env->excp_vectors[POWERPC_EXCP_SMI] = 0x00001400; env->hreset_excp_prefix = 0x00000000UL; /* Hardware reset vector */ - env->hreset_vector = 0xFFFFFFFCUL; + env->hreset_vector = 0x00000100UL; +#endif +} + +static void init_excp_e300 (CPUPPCState *env) +{ + init_excp_603(env); +#if !defined(CONFIG_USER_ONLY) + env->excp_vectors[POWERPC_EXCP_CRITICAL] = 0x00000A00; + env->excp_vectors[POWERPC_EXCP_PERFM] = 0x00000F00; #endif } @@ -4175,7 +4184,7 @@ static void init_proc_e300 (CPUPPCState *env) gen_low_BATs(env); gen_high_BATs(env); gen_6xx_7xx_soft_tlb(env, 64, 2); - init_excp_603(env); + init_excp_e300(env); env->dcache_line_size = 32; env->icache_line_size = 32; /* Allocate hardware IRQ controller */