[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-arm] [PATCH v2 09/13] armv7m: VECTCLRACTIVE and VECTRESET are UNPR
From: |
Peter Maydell |
Subject: |
[Qemu-arm] [PATCH v2 09/13] armv7m: VECTCLRACTIVE and VECTRESET are UNPREDICTABLE |
Date: |
Thu, 16 Feb 2017 16:35:59 +0000 |
From: Michael Davidsaver <address@hidden>
The VECTCLRACTIVE and VECTRESET bits in the AIRCR are both
documented as UNPREDICTABLE if you write a 1 to them when
the processor is not halted in Debug state (ie stopped
and under the control of an external JTAG debugger).
Since we don't implement Debug state or emulated JTAG
these bits are always UNPREDICTABLE for us. Instead of
logging them as unimplemented we can simply log writes
as guest errors and ignore them.
Signed-off-by: Michael Davidsaver <address@hidden>
[PMM: change extracted from another patch; commit message
constructed from scratch]
Signed-off-by: Peter Maydell <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Alex Bennée <address@hidden>
---
hw/intc/armv7m_nvic.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/hw/intc/armv7m_nvic.c b/hw/intc/armv7m_nvic.c
index 010bf92..ca4fb49 100644
--- a/hw/intc/armv7m_nvic.c
+++ b/hw/intc/armv7m_nvic.c
@@ -716,10 +716,14 @@ static void nvic_writel(NVICState *s, uint32_t offset,
uint32_t value)
qemu_irq_pulse(s->sysresetreq);
}
if (value & 2) {
- qemu_log_mask(LOG_UNIMP, "VECTCLRACTIVE unimplemented\n");
+ qemu_log_mask(LOG_GUEST_ERROR,
+ "Setting VECTCLRACTIVE when not in DEBUG mode "
+ "is UNPREDICTABLE\n");
}
if (value & 1) {
- qemu_log_mask(LOG_UNIMP, "AIRCR system reset unimplemented\n");
+ qemu_log_mask(LOG_GUEST_ERROR,
+ "Setting VECTRESET when not in DEBUG mode "
+ "is UNPREDICTABLE\n");
}
s->prigroup = extract32(value, 8, 3);
nvic_irq_update(s);
--
2.7.4
- [Qemu-arm] [PATCH v2 02/13] armv7m: Implement reading and writing of PRIGROUP, (continued)
- [Qemu-arm] [PATCH v2 02/13] armv7m: Implement reading and writing of PRIGROUP, Peter Maydell, 2017/02/16
- [Qemu-arm] [PATCH v2 13/13] armv7m: Allow SHCSR writes to change pending and active bits, Peter Maydell, 2017/02/16
- [Qemu-arm] [PATCH v2 12/13] armv7m: Raise correct kind of UsageFault for attempts to execute ARM code, Peter Maydell, 2017/02/16
- [Qemu-arm] [PATCH v2 11/13] armv7m: Check exception return consistency, Peter Maydell, 2017/02/16
- [Qemu-arm] [PATCH v2 10/13] armv7m: Extract "exception taken" code into functions, Peter Maydell, 2017/02/16
- [Qemu-arm] [PATCH v2 08/13] armv7m: Simpler and faster exception start, Peter Maydell, 2017/02/16
- [Qemu-arm] [PATCH v2 09/13] armv7m: VECTCLRACTIVE and VECTRESET are UNPREDICTABLE,
Peter Maydell <=
- [Qemu-arm] [PATCH v2 05/13] arm: gic: Remove references to NVIC, Peter Maydell, 2017/02/16
- [Qemu-arm] [PATCH v2 07/13] armv7m: Remove unused armv7m_nvic_acknowledge_irq() return value, Peter Maydell, 2017/02/16
- [Qemu-arm] [PATCH v2 04/13] armv7m: Fix condition check for taking exceptions, Peter Maydell, 2017/02/16
- [Qemu-arm] [PATCH v2 01/13] armv7m: Rename nvic_state to NVICState, Peter Maydell, 2017/02/16
- [Qemu-arm] [PATCH v2 06/13] armv7m: Escalate exceptions to HardFault if necessary, Peter Maydell, 2017/02/16
- [Qemu-arm] [PATCH v2 03/13] armv7m: Rewrite NVIC to not use any GIC code, Peter Maydell, 2017/02/16
- Re: [Qemu-arm] [PATCH v2 00/13] Rewrite NVIC to not depend on the GIC, Peter Maydell, 2017/02/16