You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
qemu/include/hw/arm
Jamin Lin 10e377246d hw/arm/ast27x0: Share single UART set across PSP, SSP, and TSP
In the original model, each subsystem (PSP, SSP, and TSP) created its own
set of 13 UART devices, resulting in a total of 39 UART instances. However,
on real AST2700 hardware, there is only one set of 13 UARTs shared among
all processors.

This commit reworks the UART handling to correctly model the shared
hardware design. The PSP now creates the full set of 13 UART instances,
while the SSP and TSP link to the corresponding shared UART device
through object properties.

Changes include:
- Add "DEFINE_PROP_LINK("uart", ...)" and "DEFINE_PROP_INT32("uart-dev", ...)"
  to allow each coprocessor to reference a specific shared UART instance.
- Modify SSP to link to PSP’s UART4, and TSP to link to PSP’s UART7.
- Introduce "uart_alias" to remap the UART’s MMIO region into the coprocessor’s
  memory space.
- Redirect the UART interrupt to the coprocessor’s NVIC, replacing the
  default routing to the PSP’s GIC.

With this change, only one set of 13 UART devices is instantiated by the PSP,
while the SSP and TSP reuse them via aliasing and shared interrupt routing,
matching the real AST2700 hardware behavior.

Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Link: https://lore.kernel.org/qemu-devel/20251015062210.3128710-7-jamin_lin@aspeedtech.com
Signed-off-by: Cédric Le Goater <clg@redhat.com>
1 day ago
..
allwinner-a10.h include: Rename sysemu/ -> system/ 10 months ago
allwinner-h3.h include: Rename sysemu/ -> system/ 10 months ago
allwinner-r40.h include: Rename sysemu/ -> system/ 10 months ago
armsse-version.h hw/arm/armsse: Introduce SSE subsystem version property 5 years ago
armsse.h hw/arm: Set number of MPU regions correctly for an505, an521, an524 2 years ago
armv7m.h hw/arm/armv7m: alias the NVIC "num-prio-bits" property 2 years ago
aspeed.h hw/arm/aspeed: Add second SPI chip to Aspeed model 4 months ago
aspeed_coprocessor.h hw/arm/ast27x0: Share single UART set across PSP, SSP, and TSP 1 day ago
aspeed_soc.h hw/arm/aspeed_ast27x0-tsp: Make AST27x0 TSP inherit from AspeedCoprocessor instead of AspeedSoC 1 week ago
bcm2835_peripherals.h hw/arm: Connect OTP device to BCM2835 1 year ago
bcm2836.h hw/arm/bcm2853_peripherals: Split out common part of peripherals 2 years ago
bcm2838.h hw/arm/bcm2838: Add GIC-400 to BCM2838 SoC 2 years ago
bcm2838_peripherals.h hw/arm/bcm2838_peripherals: Add clock_isp stub 2 years ago
boot.h hw/arm: make cpu targeted by arm_load_kernel the primary CPU. 4 months ago
bsa.h target/arm: Implement SEL2 physical and virtual timers 8 months ago
digic.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 5 years ago
exynos4210.h hw/arm/exynos4210: Get arm_boot_info declaration from 'hw/arm/boot.h' 2 years ago
fdt.h
fsl-imx6.h include/system: Move exec/memory.h to system/memory.h 6 months ago
fsl-imx6ul.h include/system: Move exec/memory.h to system/memory.h 6 months ago
fsl-imx7.h hw/pci-host/designware: Expose MSI IRQ 9 months ago
fsl-imx8mp.h hw/arm/fsl-imx8mp: Remove unused define 7 months ago
fsl-imx25.h include/system: Move exec/memory.h to system/memory.h 6 months ago
fsl-imx31.h include/system: Move exec/memory.h to system/memory.h 6 months ago
linux-boot-if.h Use DECLARE_*CHECKER* macros 5 years ago
max78000_soc.h MAX78000: Add AES to SOC 4 months ago
msf2-soc.h hw/arm/msf2: Simplify setting MachineClass::valid_cpu_types[] 2 years ago
npcm7xx.h hw/misc: Move NPCM7XX CLK to NPCM CLK 8 months ago
npcm8xx.h hw/arm: Add GMAC devices to NPCM8XX SoC 5 months ago
nrf51.h
nrf51_soc.h hw/arm/nrf51: Rename ARMv7MState 'cpu' -> 'armv7m' 9 months ago
omap.h hw/arm: Replace TABs for spaces in OMAP board and device code 5 months ago
primecell.h
raspberrypi-fw-defs.h hw/misc: Implement mailbox properties for customer OTP and device specific private keys 1 year ago
raspi_platform.h hw/arm: Add memory region for BCM2837 RPiVid ASB 2 years ago
smmu-common.h hw/arm/virt: Allow user-creatable SMMUv3 dev instantiation 1 month ago
smmuv3.h hw/arm/smmuv3: Add knob to choose translation stage and enable stage-2 2 years ago
soc_dma.h hw/arm: Replace TABs for spaces in OMAP board and device code 5 months ago
stm32f100_soc.h hw/arm/stm32f100: Report error when incorrect CPU is used 2 years ago
stm32f205_soc.h hw/arm/stm32f205_soc: Don't leak TYPE_OR_IRQ objects 2 months ago
stm32f405_soc.h hw/arm/stm32f405: Add RCC device to stm32f405 SoC 1 year ago
stm32l4x5_soc.h include/system: Move exec/memory.h to system/memory.h 6 months ago
virt.h qapi/acpi-hest: add an interface to do generic CPER error injection 3 weeks ago
xlnx-versal-version.h hw/misc/xlnx-versal-crl: add the versal2 version 2 weeks ago
xlnx-versal.h hw/arm/xlnx-versal: add versal2 SoC 2 weeks ago
xlnx-zynqmp.h hw/arm/xlnx-zynqmp: wire a second GIC for the Cortex-R5 2 weeks ago