[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-arm] [PATCH 00/18] Fix exception handling and msr/mrs access
From: |
Peter Maydell |
Subject: |
Re: [Qemu-arm] [PATCH 00/18] Fix exception handling and msr/mrs access |
Date: |
Tue, 17 Nov 2015 17:07:16 +0000 |
On 9 November 2015 at 01:11, Michael Davidsaver <address@hidden> wrote:
> This series grew from a previous incorrect patch attempting to fix
> some incorrect behavior. After spending some time going through the
> arch. ref. manual for v7-M I think I understand better how this should
> work and have made a number of changes which actually improve the situation.
>
> These changes have not yet been cross checked against real hardware, and
> I therefore don't consider them mergeable. It's gotten big enough though
> that I'd like to get some feedback.
Thanks for this -- our M profile code has been in need of some love
for quite a while now.
> This series removes the dependence of the NVIC code on the GIC. The GIC
> doesn't have the concept of PRIGROUP to change the size of the group
> priority field. Also, there are a lot of cases in this code which
> I don't understand and worry about breaking. Now that I have things
> working (I think), I could look at recombining them if this is desired.
I think separating out the NVIC is the right thing. Some of the
programmer-visible register views are superficially similar to the GIC,
but the underlying logic of how exceptions are dealt with is definitely
different, and trying to share code just makes it harder to maintain
both. (In particular for M profile external interrupts are just another
kind of exception and get prioritised along with all the internal
exceptions; for A/R profile the GIC really is an external thing
that prioritises external interrupts only to forward to the CPU.)
> I looked briefly at qtest, but can't quite see how to use it given
> the need to execute code to test most of the exception behavior.
> Is something like this feasible at present?
You're correct that we don't have a very good story for how to test
parts of the system that really need execution of guest code.
I'll reply to the various patches individually with comments.
thanks
-- PMM
- [Qemu-arm] [PATCH 17/18] armv7m: implement CCR, (continued)
- [Qemu-arm] [PATCH 17/18] armv7m: implement CCR, Michael Davidsaver, 2015/11/09
- [Qemu-arm] [PATCH 07/18] armv7m: Update NVIC registers, Michael Davidsaver, 2015/11/09
- [Qemu-arm] [PATCH 04/18] armv7m: Explicit error for bad vector table, Michael Davidsaver, 2015/11/09
- [Qemu-arm] [PATCH 12/18] armv7m: simpler/faster exception start, Michael Davidsaver, 2015/11/09
- [Qemu-arm] [PATCH 13/18] armv7m: implement CFSR and HFSR, Michael Davidsaver, 2015/11/09
- [Qemu-arm] [PATCH 01/18] armv7m: MRS/MSR handle unprivileged access, Michael Davidsaver, 2015/11/09
- [Qemu-arm] [PATCH 18/18] armv7m: prevent unprivileged write to STIR, Michael Davidsaver, 2015/11/09
- [Qemu-arm] [PATCH 16/18] armv7m: check exception return consistency, Michael Davidsaver, 2015/11/09
- Re: [Qemu-arm] [PATCH 00/18] Fix exception handling and msr/mrs access,
Peter Maydell <=