[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 9/9] armv7m: VECTCLRACTIVE and VECTRESET are UNP
From: |
Alex Bennée |
Subject: |
Re: [Qemu-devel] [PATCH 9/9] armv7m: VECTCLRACTIVE and VECTRESET are UNPREDICTABLE |
Date: |
Wed, 15 Feb 2017 14:19:34 +0000 |
User-agent: |
mu4e 0.9.19; emacs 25.2.3 |
Peter Maydell <address@hidden> writes:
> 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: 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 7b61fe6..18c0e60 100644
> --- a/hw/intc/armv7m_nvic.c
> +++ b/hw/intc/armv7m_nvic.c
> @@ -698,10 +698,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);
--
Alex Bennée
- [Qemu-devel] [PATCH 0/9] Rewrite NVIC to not depend on the GIC, Peter Maydell, 2017/02/02
- [Qemu-devel] [PATCH 9/9] armv7m: VECTCLRACTIVE and VECTRESET are UNPREDICTABLE, Peter Maydell, 2017/02/02
- [Qemu-devel] [PATCH 7/9] armv7m: Remove unused armv7m_nvic_acknowledge_irq() return value, Peter Maydell, 2017/02/02
- [Qemu-devel] [PATCH 6/9] armv7m: Escalate exceptions to HardFault if necessary, Peter Maydell, 2017/02/02
- [Qemu-devel] [PATCH 4/9] armv7m: Fix condition check for taking exceptions, Peter Maydell, 2017/02/02
- [Qemu-devel] [PATCH 8/9] armv7m: Simpler and faster exception start, Peter Maydell, 2017/02/02
- [Qemu-devel] [PATCH 2/9] armv7m: Implement reading and writing of PRIGROUP, Peter Maydell, 2017/02/02