qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] target/ppc: restore powerpc_excp_booke doorbell interrupts


From: Cédric Le Goater
Subject: Re: [PATCH] target/ppc: restore powerpc_excp_booke doorbell interrupts
Date: Sat, 24 Sep 2022 15:09:16 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.2.1

On 9/24/22 13:44, Nicholas Piggin wrote:
This partially reverts commit 9dc20cc37db9 ("target/ppc: Simplify
powerpc_excp_booke"), which removed DOORI and DOORCI interrupts.
Without this patch, a -cpu e5500 -smp 2 machine booting Linux
crashes with:

   qemu: fatal: Invalid PowerPC exception 36. Aborting

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>

Reviewed-by: Cédric Le Goater <clg@kaod.org>

Thanks,

C.

---
  target/ppc/excp_helper.c | 6 ++++++
  1 file changed, 6 insertions(+)

diff --git a/target/ppc/excp_helper.c b/target/ppc/excp_helper.c
index 214acf5ac4..43f2480e94 100644
--- a/target/ppc/excp_helper.c
+++ b/target/ppc/excp_helper.c
@@ -1247,6 +1247,12 @@ static void powerpc_excp_booke(PowerPCCPU *cpu, int excp)
      case POWERPC_EXCP_SPEU:   /* SPE/embedded floating-point unavailable/VPU  
*/
          env->spr[SPR_BOOKE_ESR] = ESR_SPV;
          break;
+    case POWERPC_EXCP_DOORI:     /* Embedded doorbell interrupt              */
+        break;
+    case POWERPC_EXCP_DOORCI:    /* Embedded doorbell critical interrupt     */
+        srr0 = SPR_BOOKE_CSRR0;
+        srr1 = SPR_BOOKE_CSRR1;
+        break;
      case POWERPC_EXCP_RESET:     /* System reset exception                   
*/
          if (FIELD_EX64(env->msr, MSR, POW)) {
              cpu_abort(cs, "Trying to deliver power-saving system reset "




reply via email to

[Prev in Thread] Current Thread [Next in Thread]