]> www.infradead.org Git - qemu-nvme.git/commit
hw/intc/arm_gicv3: Set GICR_TYPER.Last correctly when nb_redist_regions > 1
authorPeter Maydell <peter.maydell@linaro.org>
Thu, 30 Sep 2021 15:08:41 +0000 (16:08 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Mon, 15 Nov 2021 16:12:59 +0000 (16:12 +0000)
commit046164155abe7594ad1d8729dbe150e95badeaed
treea8ce4072f992439e3919bc16c2ca1f29b0a7a7df
parent01b5ab8cc08ab0afb6574f46a4d966725a00a1de
hw/intc/arm_gicv3: Set GICR_TYPER.Last correctly when nb_redist_regions > 1

The 'Last' bit in the GICR_TYPER GICv3 redistributor register is
supposed to be set to 1 if this is the last redistributor in a series
of contiguous redistributor pages.  Currently we set Last only for
the redistributor for CPU (num_cpu - 1).  This only works if there is
a single redistributor region; if there are multiple redistributor
regions then we need to set the Last bit for the last redistributor
in each region.

This doesn't cause any problems currently because only the KVM GICv3
supports multiple redistributor regions, and it ignores the value in
GICv3State::gicr_typer.  But we need to fix this before we can enable
support for multiple regions in the emulated GICv3.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
hw/intc/arm_gicv3_common.c