On Wed, Apr 22, 2015 at 12:09:12PM -0500, Greg Bellows wrote: > Initial patchset adding support for trapping to an EL other than EL1. Support > includes changes to interfaces to allow specification of the target EL. Also > includes the addition of the ARMv8 CPTR system registers used for controlling > the trapping of features.
Hi Greg, I'm not sure I see the value with the target_el member, it felt OK to call the route function from the do_interrupt functions but I may be missing something. I had a comment on the trapping of WFX, I recall not checking for has_work was causing a lot of exception round-trips when running XEN. To the point were things almost stopped working. I didn't check other registers and bit details from the ARM spec but in general the series looks good. Acked-by: Edgar E. Iglesias <edgar.igles...@xilinx.com> Thanks, Edgar > > --- > > v1 -> v2 > - Removed use of MAX through out the patch when setting target_el > - Updated FP trap support to pass a target exception EL rather than just an > enable boolean. > - Added utility functions for determining the target exception EL > - Broke up cptr and cpacr access functions > - Added HCPTR CP register entry and HCPTR/CPTR_EL2 zero entries > - Broke out TCR changes into their own patch and added support for handling > the > lack of TTBR1 > - Simplified wfx checking > - General comment cleanup > > Greg Bellows (9): > target-arm: Add exception target el infrastructure > target-arm: Extend helpers to route exceptions > target-arm: Update interrupt handling to use target EL > target-arm: Add AArch64 CPTR registers > target-arm: Extend FP checks to use an EL > target-arm: Add TTBR regime function and use > target-arm: Add EL3 and EL2 TCR checking > target-arm: Add WFx syndrome function > target-arm: Add WFx instruction trap support > > target-arm/cpu.c | 61 +++++++++++------ > target-arm/cpu.h | 76 ++++++++++++++++----- > target-arm/helper-a64.c | 2 +- > target-arm/helper.c | 160 > +++++++++++++++++++++++++++++---------------- > target-arm/helper.h | 2 +- > target-arm/internals.h | 6 ++ > target-arm/op_helper.c | 98 +++++++++++++++++++++++++-- > target-arm/translate-a64.c | 40 +++++++----- > target-arm/translate.c | 70 ++++++++++++-------- > target-arm/translate.h | 17 ++++- > 10 files changed, 390 insertions(+), 142 deletions(-) > > -- > 1.8.3.2 > >