[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 02/38] target/ppc: restore powerpc_excp_booke doorbell interrupts
From: |
Daniel Henrique Barboza |
Subject: |
[PULL 02/38] target/ppc: restore powerpc_excp_booke doorbell interrupts |
Date: |
Mon, 17 Oct 2022 16:19:33 -0300 |
From: Nicholas Piggin <npiggin@gmail.com>
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>
Message-Id: <20220924114436.1422786-1-npiggin@gmail.com>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
---
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 "
--
2.37.3
- [PULL 00/38] ppc queue, Daniel Henrique Barboza, 2022/10/17
- [PULL 02/38] target/ppc: restore powerpc_excp_booke doorbell interrupts,
Daniel Henrique Barboza <=
- [PULL 04/38] ppc4xx: Introduce Ppc4xxSdramBank struct, Daniel Henrique Barboza, 2022/10/17
- [PULL 05/38] ppc4xx_sdram: Get rid of the init RAM hack, Daniel Henrique Barboza, 2022/10/17
- [PULL 01/38] MAINTAINERS: step back from PPC, Daniel Henrique Barboza, 2022/10/17
- [PULL 07/38] ppc440_bamboo: Add missing 4 MiB valid memory size, Daniel Henrique Barboza, 2022/10/17
- [PULL 03/38] ppc440_bamboo: Remove unnecessary memsets, Daniel Henrique Barboza, 2022/10/17
- [PULL 08/38] ppc4xx_sdram: Move size check to ppc4xx_sdram_init(), Daniel Henrique Barboza, 2022/10/17
- [PULL 06/38] ppc4xx: Use Ppc4xxSdramBank in ppc4xx_sdram_banks(), Daniel Henrique Barboza, 2022/10/17
- [PULL 10/38] ppc4xx_sdram: Drop extra zeros for readability, Daniel Henrique Barboza, 2022/10/17
- [PULL 12/38] ppc440_sdram: Implement enable bit in the DDR2 SDRAM controller, Daniel Henrique Barboza, 2022/10/17
- [PULL 11/38] ppc440_sdram: Split off map/unmap of sdram banks for later reuse, Daniel Henrique Barboza, 2022/10/17