This patchset is a compilation of minor fixes and cleanups to the
GICv5 code that I found in the course of implementing virtualization
support:
* Various in-memory data structures are defined to be aligned to
their size, even if the guest provides a base address that is less
aligned
* We had some extra blank lines that didn't match the style in the
rest of the file
* We were unnecessarily extracting a bit from a raw register value
when we already had it cached as a boolean in a struct
* We weren't tidying up our allocated memory on finalize
* We can re-use arm_cpu_set_irq() rather than implementing the
set/clear IRQ/FIQ/NMI locally. (This doesn't matter much for these,
but VIRQ/VFIQ/VINMI have more complex logic in arm_cpu_set_irq()
that we don't want to have to duplicate.)
* Now we have a 'max-v9' we can clean up how we deal with the GICv5
needing a v9 CPU
* having the cpuif identify itself by IAFFID and the IRS do an
IAFFID->cpu index lookup is unnecessarily clunky
Changes v1->v2:
* fixed the lack of ~ in masking calcs in patches 1 and 2
* patches 7-10 are new
Only patch 3 here has been reviewed.
thanks
-- PMM
Peter Maydell (9):
hw/intc/arm_gicv5: Ignore low bits in IRS_IST_BASER.ADDR
hw/intc/arm_gicv5: Ignore low bits in L1_ISTE.L2_ADDR
hw/intc/arm_gicv5: Regularize spacing in config_readl() switch
hw/intc/arm_gicv5: Use cached IRS_IST_BASER.VALID state
hw/intc/arm_gicv5: Free memory in finalize
target/arm: GICv5 cpuif: Use arm_cpu_set_irq() to set IRQ/FIQ status
target/arm: Only allow GICv5 on CPUs without AArch32 at EL1..3
hw/intc/arm_gicv5: Pass CPU index to CPU interface
hw/intc/arm_gicv5: Pass cpuidx rather than iaffid in gicv5_get_hppi()
hw/intc/arm_gicv5.c | 72 +++++++++++++++++++++---------
hw/intc/arm_gicv5_common.c | 5 ++-
include/hw/intc/arm_gicv5.h | 1 +
include/hw/intc/arm_gicv5_stream.h | 10 +++--
target/arm/cpu-features.h | 8 ++++
target/arm/cpu.c | 61 ++++++++++---------------
target/arm/cpu.h | 10 +++--
target/arm/internals.h | 14 ++++++
target/arm/tcg/gicv5-cpuif.c | 41 +++--------------
9 files changed, 120 insertions(+), 102 deletions(-)
--
2.43.0