hw/intc/arm_gicv3_its: Implement GITS_BASER2 for GICv4
commit50d84584d3c77e3a9104826a53a691318aeaf038
authorPeter Maydell <peter.maydell@linaro.org>
Fri, 8 Apr 2022 14:15:16 +0000 (8 15:15 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Fri, 22 Apr 2022 08:23:12 +0000 (22 09:23 +0100)
tree0ea319b9ab7feafa9f098447ca19052e80665e56
parentc3c9a09073d8549b431e813ba86bd6f01c0401c3
hw/intc/arm_gicv3_its: Implement GITS_BASER2 for GICv4

The GICv4 defines a new in-guest-memory table for the ITS: this is
the vPE table.  Implement the new GITS_BASER2 register which the
guest uses to tell the ITS where the vPE table is located, including
the decode of the register fields into the TableDesc structure which
we do for the GITS_BASER<n> when the guest enables the ITS.

We guard provision of the new register with the its_feature_virtual()
function, which does a check of the GITS_TYPER.Virtual bit which
indicates presence of ITS support for virtual LPIs.  Since this bit
is currently always zero, GICv4-specific features will not be
accessible to the guest yet.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220408141550.1271295-8-peter.maydell@linaro.org
hw/intc/arm_gicv3_its.c
hw/intc/gicv3_internal.h
include/hw/intc/arm_gicv3_its_common.h