QEMU-Devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PULL 00/67] target-arm queue
@ 2026-05-07 15:50 Peter Maydell
  2026-05-07 15:50 ` [PULL 01/67] qom/object: Add object_resolve_and_typecheck() Peter Maydell
                   ` (67 more replies)
  0 siblings, 68 replies; 69+ messages in thread
From: Peter Maydell @ 2026-05-07 15:50 UTC (permalink / raw)
  To: qemu-devel

Hi; here's another arm pullreq. This is big but it's almost
entirely the GICv5 emulation. I did throw in a couple of other
tiny bugfix patches.

thanks
-- PMM

The following changes since commit ee7eb612be8f8886d48c1d0c1f1c65e495138f83:

  Merge tag 'single-binary-20260506' of https://github.com/philmd/qemu into staging (2026-05-06 10:45:02 -0400)

are available in the Git repository at:

  https://gitlab.com/pm215/qemu.git tags/pull-target-arm-20260507

for you to fetch changes up to 18b664c90085b0d2be9c2ad8c747e00a7a733402:

  hw/misc/bcm2835_rng: Specify valid memory access sizes (2026-05-07 15:14:58 +0100)

----------------------------------------------------------------
target-arm queue:
 * Initial experimental GICv5 interrupt controller emulation
 * target/arm: Report IL=0 for Thumb 16-bit BKPT insn
 * hw/misc/bcm2835_rng: Specify valid memory access sizes

----------------------------------------------------------------
Peter Maydell (67):
      qom/object: Add object_resolve_and_typecheck()
      hw/core: Permit devices to define an array of link properties
      hw/intc: Skeleton of GICv5 IRS classes
      hw/arm/Kconfig: select ARM_GICV5 for ARM_VIRT board
      hw/intc/arm_gicv5: Implement skeleton code for IRS register frames
      hw/intc/arm_gicv5: Add migration blocker
      hw/intc/arm_gicv5: Create and validate QOM properties
      hw/intc/arm_gicv5: Create inbound GPIO lines for SPIs
      hw/intc/arm_gicv5: Define macros for config frame registers
      hw/intc/arm_gicv5: Implement IRS ID regs
      hw/intc/arm_gicv5: Add link property for MemoryRegion for DMA
      hw/intc/arm_gicv5: Implement gicv5_class_name()
      hw/intc/arm_gicv5: Add defines for GICv5 architected PPIs
      target/arm: GICv5 cpuif: Initial skeleton and GSB barrier insns
      target/arm: Set up pointer to GICv5 in each CPU
      hw/intc/arm_gicv5: Implement IRS_IST_{BASER, STATUSR, CFGR}
      hw/intc/arm_gicv5: Cache LPI IST config in a struct
      hw/intc/arm_gicv5: Implement gicv5_set_priority()
      target/arm: GICv5 cpuif: Implement the GIC CDPRI instruction
      hw/intc/arm_gicv5: Implement IRS_MAP_L2_ISTR
      hw/intc/arm_gicv5: Implement remaining set-config functions
      target/arm: GICv5 cpuif: Implement GIC CD* insns for setting config
      hw/intc/arm_gicv5: Create backing state for SPIs
      hw/intc/arm_gicv5: Make gicv5_set_* update SPI state
      hw/intc/arm_gicv5: Implement gicv5_request_config()
      target/arm: GICv5 cpuif: Implement GIC CDRCFG and ICC_ICSR_EL1
      hw/intc/arm_gicv5: Implement IRS_SPI_{SELR, STATUSR, CFGR, DOMAINR}
      hw/intc/arm_gicv5: Update SPI state for CLEAR/SET events
      hw/intc/arm_gicv5: Implement IRS_CR0 and IRS_CR1
      hw/intc/arm_gicv5: Implement IRS_SYNCR and IRS_SYNC_STATUSR
      hw/intc/arm_gicv5: Implement IRS_PE_{CR0, SELR, STATUSR}
      hw/intc/arm_gicv5: Implement CoreSight ID registers
      hw/intc/arm_gicv5: Cache pending LPIs in a hash table
      target/arm: GICv5 cpuif: Implement ICC_IAFFIDR_EL1
      target/arm: GICv5 cpuif: Implement ICC_IDR0_EL1
      target/arm: GICv5 cpuif: Implement GICv5 PPI active set/clear registers
      target/arm: GICv5 cpuif: Implement PPI handling mode register
      target/arm: GICv5 cpuif: Implement PPI pending status registers
      target/arm: GICv5 cpuif: Implement PPI enable register
      target/arm: GICv5 cpuif: Implement PPI priority registers
      target/arm: GICv5 cpuif: Implement ICC_APR_EL1 and ICC_HAPR_EL1
      target/arm: GICv5 cpuif: Calculate the highest priority PPI
      hw/intc/arm_gicv5: Calculate HPPI in the IRS
      target/arm: GICv5 cpuif: Implement ICC_CR0_EL1
      target/arm: GICv5 cpuif: Implement ICC_PCR_EL1
      target/arm: GICv5 cpuif: Implement ICC_HPPIR_EL1
      hw/intc/arm_gicv5: Implement Activate command
      target/arm: GICv5 cpuif: Implement GICR CDIA command
      target/arm: GICv5 cpuif: Implement GIC CDEOI
      hw/intc/arm_gicv5: Implement Deactivate command
      target/arm: GICv5 cpuif: Implement GIC CDDI
      target/arm: GICv5 cpuif: Signal IRQ or FIQ
      target/arm: Connect internal interrupt sources up as GICv5 PPIs
      target/arm: Add has_gcie property to enable FEAT_GCIE
      hw/intc/arm_gicv3_cpuif: Don't allow GICv3 if CPU has GICv5 cpuif
      hw/arm/virt: Remember CPU phandles rather than looking them up by name
      hw/arm/virt: Move MSI controller creation out of create_gic()
      hw/arm/virt: Pull "wire CPU interrupts" out of create_gic()
      hw/arm/virt: Split GICv2 and GICv3/4 creation
      hw/arm/virt: Create and connect GICv5
      hw/arm/virt: Advertise GICv5 in the DTB
      hw/arm/virt: Handle GICv5 in interrupt bindings for PPIs
      hw/arm/virt: Use correct interrupt type for GICv5 SPIs in the DTB
      hw/arm/virt: Enable GICv5 CPU interface when using GICv5
      hw/arm/virt: Allow user to select GICv5
      target/arm: Report IL=0 for Thumb 16-bit BKPT insn
      hw/misc/bcm2835_rng: Specify valid memory access sizes

 docs/system/arm/virt.rst           |   19 +
 hw/arm/Kconfig                     |    1 +
 hw/arm/virt.c                      |  527 +++++++---
 hw/core/qdev-properties.c          |   78 ++
 hw/intc/Kconfig                    |    5 +
 hw/intc/arm_gicv3.c                |    2 +-
 hw/intc/arm_gicv3_cpuif.c          |   14 +-
 hw/intc/arm_gicv5.c                | 1962 ++++++++++++++++++++++++++++++++++++
 hw/intc/arm_gicv5_common.c         |  215 ++++
 hw/intc/gicv3_internal.h           |    2 +-
 hw/intc/meson.build                |    4 +
 hw/intc/trace-events               |   23 +
 hw/misc/bcm2835_rng.c              |    4 +
 include/hw/arm/fdt.h               |   10 +
 include/hw/arm/virt.h              |   15 +
 include/hw/core/qdev-properties.h  |   41 +
 include/hw/intc/arm_gicv5.h        |   51 +
 include/hw/intc/arm_gicv5_common.h |  247 +++++
 include/hw/intc/arm_gicv5_stream.h |  228 +++++
 include/hw/intc/arm_gicv5_types.h  |  110 ++
 include/qom/object.h               |   17 +
 meson.build                        |    1 +
 qom/object.c                       |   41 +-
 target/arm/cpregs-pmu.c            |    9 +-
 target/arm/cpu-features.h          |    6 +
 target/arm/cpu.c                   |   62 ++
 target/arm/cpu.h                   |   28 +
 target/arm/helper.c                |   21 +
 target/arm/internals.h             |    9 +
 target/arm/tcg-stubs.c             |    4 +
 target/arm/tcg/gicv5-cpuif.c       |  952 +++++++++++++++++
 target/arm/tcg/meson.build         |    1 +
 target/arm/tcg/trace-events        |   11 +
 target/arm/tcg/trace.h             |    1 +
 target/arm/tcg/translate.c         |    2 +-
 35 files changed, 4564 insertions(+), 159 deletions(-)
 create mode 100644 hw/intc/arm_gicv5.c
 create mode 100644 hw/intc/arm_gicv5_common.c
 create mode 100644 include/hw/intc/arm_gicv5.h
 create mode 100644 include/hw/intc/arm_gicv5_common.h
 create mode 100644 include/hw/intc/arm_gicv5_stream.h
 create mode 100644 include/hw/intc/arm_gicv5_types.h
 create mode 100644 target/arm/tcg/gicv5-cpuif.c
 create mode 100644 target/arm/tcg/trace-events
 create mode 100644 target/arm/tcg/trace.h


^ permalink raw reply	[flat|nested] 69+ messages in thread

end of thread, other threads:[~2026-05-11 14:22 UTC | newest]

Thread overview: 69+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-07 15:50 [PULL 00/67] target-arm queue Peter Maydell
2026-05-07 15:50 ` [PULL 01/67] qom/object: Add object_resolve_and_typecheck() Peter Maydell
2026-05-07 15:50 ` [PULL 02/67] hw/core: Permit devices to define an array of link properties Peter Maydell
2026-05-07 15:50 ` [PULL 03/67] hw/intc: Skeleton of GICv5 IRS classes Peter Maydell
2026-05-07 15:50 ` [PULL 04/67] hw/arm/Kconfig: select ARM_GICV5 for ARM_VIRT board Peter Maydell
2026-05-07 15:50 ` [PULL 05/67] hw/intc/arm_gicv5: Implement skeleton code for IRS register frames Peter Maydell
2026-05-07 15:50 ` [PULL 06/67] hw/intc/arm_gicv5: Add migration blocker Peter Maydell
2026-05-07 15:50 ` [PULL 07/67] hw/intc/arm_gicv5: Create and validate QOM properties Peter Maydell
2026-05-07 15:50 ` [PULL 08/67] hw/intc/arm_gicv5: Create inbound GPIO lines for SPIs Peter Maydell
2026-05-07 15:50 ` [PULL 09/67] hw/intc/arm_gicv5: Define macros for config frame registers Peter Maydell
2026-05-07 15:50 ` [PULL 10/67] hw/intc/arm_gicv5: Implement IRS ID regs Peter Maydell
2026-05-07 15:50 ` [PULL 11/67] hw/intc/arm_gicv5: Add link property for MemoryRegion for DMA Peter Maydell
2026-05-07 15:50 ` [PULL 12/67] hw/intc/arm_gicv5: Implement gicv5_class_name() Peter Maydell
2026-05-07 15:51 ` [PULL 13/67] hw/intc/arm_gicv5: Add defines for GICv5 architected PPIs Peter Maydell
2026-05-07 15:51 ` [PULL 14/67] target/arm: GICv5 cpuif: Initial skeleton and GSB barrier insns Peter Maydell
2026-05-07 15:51 ` [PULL 15/67] target/arm: Set up pointer to GICv5 in each CPU Peter Maydell
2026-05-07 15:51 ` [PULL 16/67] hw/intc/arm_gicv5: Implement IRS_IST_{BASER, STATUSR, CFGR} Peter Maydell
2026-05-07 15:51 ` [PULL 17/67] hw/intc/arm_gicv5: Cache LPI IST config in a struct Peter Maydell
2026-05-07 15:51 ` [PULL 18/67] hw/intc/arm_gicv5: Implement gicv5_set_priority() Peter Maydell
2026-05-07 15:51 ` [PULL 19/67] target/arm: GICv5 cpuif: Implement the GIC CDPRI instruction Peter Maydell
2026-05-07 15:51 ` [PULL 20/67] hw/intc/arm_gicv5: Implement IRS_MAP_L2_ISTR Peter Maydell
2026-05-07 15:51 ` [PULL 21/67] hw/intc/arm_gicv5: Implement remaining set-config functions Peter Maydell
2026-05-07 15:51 ` [PULL 22/67] target/arm: GICv5 cpuif: Implement GIC CD* insns for setting config Peter Maydell
2026-05-07 15:51 ` [PULL 23/67] hw/intc/arm_gicv5: Create backing state for SPIs Peter Maydell
2026-05-07 15:51 ` [PULL 24/67] hw/intc/arm_gicv5: Make gicv5_set_* update SPI state Peter Maydell
2026-05-07 15:51 ` [PULL 25/67] hw/intc/arm_gicv5: Implement gicv5_request_config() Peter Maydell
2026-05-07 15:51 ` [PULL 26/67] target/arm: GICv5 cpuif: Implement GIC CDRCFG and ICC_ICSR_EL1 Peter Maydell
2026-05-07 15:51 ` [PULL 27/67] hw/intc/arm_gicv5: Implement IRS_SPI_{SELR, STATUSR, CFGR, DOMAINR} Peter Maydell
2026-05-07 15:51 ` [PULL 28/67] hw/intc/arm_gicv5: Update SPI state for CLEAR/SET events Peter Maydell
2026-05-07 15:51 ` [PULL 29/67] hw/intc/arm_gicv5: Implement IRS_CR0 and IRS_CR1 Peter Maydell
2026-05-07 15:51 ` [PULL 30/67] hw/intc/arm_gicv5: Implement IRS_SYNCR and IRS_SYNC_STATUSR Peter Maydell
2026-05-07 15:51 ` [PULL 31/67] hw/intc/arm_gicv5: Implement IRS_PE_{CR0, SELR, STATUSR} Peter Maydell
2026-05-07 15:51 ` [PULL 32/67] hw/intc/arm_gicv5: Implement CoreSight ID registers Peter Maydell
2026-05-07 15:51 ` [PULL 33/67] hw/intc/arm_gicv5: Cache pending LPIs in a hash table Peter Maydell
2026-05-07 15:51 ` [PULL 34/67] target/arm: GICv5 cpuif: Implement ICC_IAFFIDR_EL1 Peter Maydell
2026-05-07 15:51 ` [PULL 35/67] target/arm: GICv5 cpuif: Implement ICC_IDR0_EL1 Peter Maydell
2026-05-07 15:51 ` [PULL 36/67] target/arm: GICv5 cpuif: Implement GICv5 PPI active set/clear registers Peter Maydell
2026-05-07 15:51 ` [PULL 37/67] target/arm: GICv5 cpuif: Implement PPI handling mode register Peter Maydell
2026-05-07 15:51 ` [PULL 38/67] target/arm: GICv5 cpuif: Implement PPI pending status registers Peter Maydell
2026-05-07 15:51 ` [PULL 39/67] target/arm: GICv5 cpuif: Implement PPI enable register Peter Maydell
2026-05-07 15:51 ` [PULL 40/67] target/arm: GICv5 cpuif: Implement PPI priority registers Peter Maydell
2026-05-07 15:51 ` [PULL 41/67] target/arm: GICv5 cpuif: Implement ICC_APR_EL1 and ICC_HAPR_EL1 Peter Maydell
2026-05-07 15:51 ` [PULL 42/67] target/arm: GICv5 cpuif: Calculate the highest priority PPI Peter Maydell
2026-05-07 15:51 ` [PULL 43/67] hw/intc/arm_gicv5: Calculate HPPI in the IRS Peter Maydell
2026-05-07 15:51 ` [PULL 44/67] target/arm: GICv5 cpuif: Implement ICC_CR0_EL1 Peter Maydell
2026-05-07 15:51 ` [PULL 45/67] target/arm: GICv5 cpuif: Implement ICC_PCR_EL1 Peter Maydell
2026-05-07 15:51 ` [PULL 46/67] target/arm: GICv5 cpuif: Implement ICC_HPPIR_EL1 Peter Maydell
2026-05-07 15:51 ` [PULL 47/67] hw/intc/arm_gicv5: Implement Activate command Peter Maydell
2026-05-07 15:51 ` [PULL 48/67] target/arm: GICv5 cpuif: Implement GICR CDIA command Peter Maydell
2026-05-07 15:51 ` [PULL 49/67] target/arm: GICv5 cpuif: Implement GIC CDEOI Peter Maydell
2026-05-07 15:51 ` [PULL 50/67] hw/intc/arm_gicv5: Implement Deactivate command Peter Maydell
2026-05-07 15:51 ` [PULL 51/67] target/arm: GICv5 cpuif: Implement GIC CDDI Peter Maydell
2026-05-07 15:51 ` [PULL 52/67] target/arm: GICv5 cpuif: Signal IRQ or FIQ Peter Maydell
2026-05-07 15:51 ` [PULL 53/67] target/arm: Connect internal interrupt sources up as GICv5 PPIs Peter Maydell
2026-05-07 15:51 ` [PULL 54/67] target/arm: Add has_gcie property to enable FEAT_GCIE Peter Maydell
2026-05-07 15:51 ` [PULL 55/67] hw/intc/arm_gicv3_cpuif: Don't allow GICv3 if CPU has GICv5 cpuif Peter Maydell
2026-05-07 15:51 ` [PULL 56/67] hw/arm/virt: Remember CPU phandles rather than looking them up by name Peter Maydell
2026-05-07 15:51 ` [PULL 57/67] hw/arm/virt: Move MSI controller creation out of create_gic() Peter Maydell
2026-05-07 15:51 ` [PULL 58/67] hw/arm/virt: Pull "wire CPU interrupts" " Peter Maydell
2026-05-07 15:51 ` [PULL 59/67] hw/arm/virt: Split GICv2 and GICv3/4 creation Peter Maydell
2026-05-07 15:51 ` [PULL 60/67] hw/arm/virt: Create and connect GICv5 Peter Maydell
2026-05-07 15:51 ` [PULL 61/67] hw/arm/virt: Advertise GICv5 in the DTB Peter Maydell
2026-05-07 15:51 ` [PULL 62/67] hw/arm/virt: Handle GICv5 in interrupt bindings for PPIs Peter Maydell
2026-05-07 15:51 ` [PULL 63/67] hw/arm/virt: Use correct interrupt type for GICv5 SPIs in the DTB Peter Maydell
2026-05-07 15:51 ` [PULL 64/67] hw/arm/virt: Enable GICv5 CPU interface when using GICv5 Peter Maydell
2026-05-07 15:51 ` [PULL 65/67] hw/arm/virt: Allow user to select GICv5 Peter Maydell
2026-05-07 15:51 ` [PULL 66/67] target/arm: Report IL=0 for Thumb 16-bit BKPT insn Peter Maydell
2026-05-07 15:51 ` [PULL 67/67] hw/misc/bcm2835_rng: Specify valid memory access sizes Peter Maydell
2026-05-11 14:21 ` [PULL 00/67] target-arm queue Stefan Hajnoczi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox