[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-ppc] [PULL 19/73] ppc: fix MSR_ME handling for system reset interr
From: |
David Gibson |
Subject: |
[Qemu-ppc] [PULL 19/73] ppc: fix MSR_ME handling for system reset interrupt |
Date: |
Fri, 28 Oct 2016 12:37:20 +1100 |
From: Nicholas Piggin <address@hidden>
Power ISA specifies ME bit handling for system reset interrupt:
if the interrupt occurred while the thread was in power-saving
mode, set to 1; otherwise not altered
Power ISA 3.0, section 6.5 "Interrupt Definitions", Figure 64.
Signed-off-by: Nicholas Piggin <address@hidden>
Reviewed-by: Greg Kurz <address@hidden>
Reviewed-by: Cédric Le Goater <address@hidden>
Signed-off-by: David Gibson <address@hidden>
---
target-ppc/excp_helper.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/target-ppc/excp_helper.c b/target-ppc/excp_helper.c
index 921c39d..53c4075 100644
--- a/target-ppc/excp_helper.c
+++ b/target-ppc/excp_helper.c
@@ -385,11 +385,11 @@ static inline void powerpc_excp(PowerPCCPU *cpu, int
excp_model, int excp)
srr1 = SPR_BOOKE_CSRR1;
break;
case POWERPC_EXCP_RESET: /* System reset exception */
+ /* A power-saving exception sets ME, otherwise it is unchanged */
if (msr_pow) {
/* indicate that we resumed from power save mode */
msr |= 0x10000;
- } else {
- new_msr &= ~((target_ulong)1 << MSR_ME);
+ new_msr |= ((target_ulong)1 << MSR_ME);
}
new_msr |= (target_ulong)MSR_HVB;
--
2.7.4
- [Qemu-ppc] [PULL 00/73] ppc-for-2.8 queue 20161028, David Gibson, 2016/10/27
- [Qemu-ppc] [PULL 05/73] tests: move QVirtioBus pointer into QVirtioDevice, David Gibson, 2016/10/27
- [Qemu-ppc] [PULL 03/73] tests: fix memory leak in virtio-scsi-test, David Gibson, 2016/10/27
- [Qemu-ppc] [PULL 14/73] target-ppc: implement vnegw/d instructions, David Gibson, 2016/10/27
- [Qemu-ppc] [PULL 04/73] tests: don't check if qtest_spapr_boot() returns NULL, David Gibson, 2016/10/27
- [Qemu-ppc] [PULL 16/73] ppc/xics: add a xics_set_nr_servers common routine, David Gibson, 2016/10/27
- [Qemu-ppc] [PULL 02/73] ppc/xics: Add xics to the monitor "info pic" command, David Gibson, 2016/10/27
- [Qemu-ppc] [PULL 11/73] sparc: Use the new common NVRAM functions for system and free space partition, David Gibson, 2016/10/27
- [Qemu-ppc] [PULL 19/73] ppc: fix MSR_ME handling for system reset interrupt,
David Gibson <=
- [Qemu-ppc] [PULL 09/73] spapr_pci: advertise explicit numa IDs even when there's 1 node, David Gibson, 2016/10/27
- [Qemu-ppc] [PULL 08/73] tests: enable virtio tests on SPAPR, David Gibson, 2016/10/27
- [Qemu-ppc] [PULL 24/73] ppc/pnv: add skeleton PowerNV platform, David Gibson, 2016/10/27
- [Qemu-ppc] [PULL 26/73] ppc/pnv: add a core mask to PnvChip, David Gibson, 2016/10/27
- [Qemu-ppc] [PULL 10/73] nvram: Introduce helper functions for CHRP "system" and "free space" partitions, David Gibson, 2016/10/27
- [Qemu-ppc] [PULL 06/73] tests: rename target_big_endian() as qvirtio_is_big_endian(), David Gibson, 2016/10/27
- [Qemu-ppc] [PULL 15/73] target-ppc: implement xxbr[qdwh] instruction, David Gibson, 2016/10/27
- [Qemu-ppc] [PULL 13/73] nvram: Rename openbios_firmware_abi.h into sun_nvram.h, David Gibson, 2016/10/27
- [Qemu-ppc] [PULL 12/73] nvram: Move the remaining CHRP NVRAM related code to chrp_nvram.[ch], David Gibson, 2016/10/27
- [Qemu-ppc] [PULL 20/73] pseries: Remove unused callbacks from sPAPR VIO bus state, David Gibson, 2016/10/27