hw/intc/arm_gicv3: Implement EL2 traps for CPU i/f regs
commit86830554dbf5620dab50ba2aa91f86c247e99958
authorPeter Maydell <peter.maydell@linaro.org>
Fri, 20 Jan 2017 11:15:10 +0000 (20 11:15 +0000)
committerPeter Maydell <peter.maydell@linaro.org>
Fri, 20 Jan 2017 11:15:10 +0000 (20 11:15 +0000)
treeb673573c64a2cf98430857a7af47844e040004cd
parentc5fc89b36c0a167548ae7af40dc085707a7756d2
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
hw/intc/arm_gicv3_cpuif.c