diff options
author | Peter Maydell <peter.maydell@linaro.org> | 2017-01-20 11:15:10 +0000 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2017-01-20 11:15:10 +0000 |
commit | 86830554dbf5620dab50ba2aa91f86c247e99958 (patch) | |
tree | b673573c64a2cf98430857a7af47844e040004cd /disas.c | |
parent | c5fc89b36c0a167548ae7af40dc085707a7756d2 (diff) | |
download | qemu-86830554dbf5620dab50ba2aa91f86c247e99958.zip qemu-86830554dbf5620dab50ba2aa91f86c247e99958.tar.gz qemu-86830554dbf5620dab50ba2aa91f86c247e99958.tar.bz2 |
hw/intc/arm_gicv3: Implement EL2 traps for CPU i/f regs
Implement the architecturally required traps from NS EL1
to EL2 for the CPU interface registers. These fall into
several different groups:
* group-0-only registers all trap if ICH_HRC_EL2.TALL0 is set
(exactly the registers covered by gicv3_fiq_access())
* group-1-only registers all trap if ICH_HRC_EL2.TALL1 is set
(exactly the registers covered by gicv3_irq_access())
* DIR traps if ICH_HCR_EL2.TC or ICH_HCR_EL2.TDIR are set
* PMR, RPR, CTLR trap if ICH_HCR_EL2.TC is set
* SGI0R, SGI1R, ASGI1R trap if ICH_HCR_EL2.TC is set or
if HCR_EL2.IMO or HCR_EL2.FMO are set
We split DIR and the SGI registers out into their own access
functions, leaving the existing gicv3_irqfiq_access() just
handling PMR, RPR and CTLR.
This commit doesn't implement support for trapping on
HSTR_EL2.T12 for the 32-bit registers, as we don't implement
any of those per-coprocessor trap bits currently and
probably will want to do those in some more centralized way.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Message-id: 1483977924-14522-14-git-send-email-peter.maydell@linaro.org
Diffstat (limited to 'disas.c')
0 files changed, 0 insertions, 0 deletions