qemu/include/hw/arm
Peter Maydell e7100972f2 hw/arm/virt: allow creation of a second NonSecure UART
For some use-cases, it is helpful to have more than one UART
available to the guest.  If the second UART slot is not already used
for a TrustZone Secure-World-only UART, create it as a NonSecure UART
only when the user provides a serial backend (e.g.  via a second
-serial command line option).

This avoids problems where existing guest software only expects a
single UART, and gets confused by the second UART in the DTB.  The
major example of this is older EDK2 firmware, which will send the
GRUB bootloader output to UART1 and the guest serial output to UART0.
Users who want to use both UARTs with a guest setup including EDK2
are advised to update to EDK2 release edk2-stable202311 or newer.
(The prebuilt EDK2 blobs QEMU upstream provides are new enough.)
The relevant EDK2 changes are the ones described here:
https://bugzilla.tianocore.org/show_bug.cgi?id=4577

Inspired-by: Axel Heider <axel.heider@hensoldt.net>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Tested-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-id: 20240610162343.2131524-4-peter.maydell@linaro.org
2024-06-21 14:01:59 +01:00
..
allwinner-a10.h hw/ide/ahci: Move SysBus definitions to 'ahci-sysbus.h' 2024-02-15 16:58:46 +01:00
allwinner-h3.h hw/arm/allwinner-h3: Remove 'hw/arm/boot.h' from header 2023-10-27 12:42:13 +01:00
allwinner-r40.h hw/ide/ahci: Move SysBus definitions to 'ahci-sysbus.h' 2024-02-15 16:58:46 +01:00
armsse-version.h hw/arm/armsse: Introduce SSE subsystem version property 2021-03-08 17:20:01 +00:00
armsse.h hw/arm: Set number of MPU regions correctly for an505, an521, an524 2023-08-31 11:07:02 +01:00
armv7m.h hw/arm/armv7m: alias the NVIC "num-prio-bits" property 2024-01-09 14:42:40 +00:00
aspeed_soc.h aspeed/soc: fix incorrect dram size for AST2700 2024-06-16 21:08:54 +02:00
aspeed.h hw/arm/aspeed: Allow machine to set UART default 2021-09-20 08:50:59 +02:00
bcm2835_peripherals.h hw/arm: Connect BSC to BCM2835 board as I2C0, I2C1 and I2C2 2024-03-05 13:22:55 +00:00
bcm2836.h hw/arm/bcm2853_peripherals: Split out common part of peripherals 2024-02-27 13:01:42 +00:00
bcm2838_peripherals.h hw/arm/bcm2838_peripherals: Add clock_isp stub 2024-02-27 13:01:42 +00:00
bcm2838.h hw/arm/bcm2838: Add GIC-400 to BCM2838 SoC 2024-02-27 13:01:42 +00:00
boot.h hw/arm/boot: Make write_bootloader() public as arm_write_bootloader() 2023-05-02 15:47:40 +01:00
bsa.h include/hw/arm: move BSA definitions to bsa.h 2023-10-19 14:32:13 +01:00
digic.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
exynos4210.h hw/arm/exynos4210: Get arm_boot_info declaration from 'hw/arm/boot.h' 2023-10-19 13:01:52 +01:00
fdt.h hw/arm/sysbus-fdt: enable vfio-calxeda-xgmac dynamic instantiation 2015-06-19 14:17:44 +01:00
fsl-imx6.h hw/arm: add PCIe to Freescale i.MX6 2024-01-26 12:23:04 +00:00
fsl-imx6ul.h fsl-imx6ul: Add various missing unimplemented devices 2024-01-26 11:30:49 +00:00
fsl-imx7.h hw/arm/fsl-imx7: Remove 'hw/arm/boot.h' from header 2023-10-27 12:42:13 +01:00
fsl-imx25.h hw/arm/fsl-imx25: Remove 'hw/arm/boot.h' from header 2023-10-27 12:42:13 +01:00
fsl-imx31.h hw/arm/fsl-imx31: Remove 'hw/arm/boot.h' from header 2023-10-27 12:42:13 +01:00
linux-boot-if.h Use DECLARE_*CHECKER* macros 2020-09-09 09:27:09 -04:00
msf2-soc.h hw/arm/msf2: Simplify setting MachineClass::valid_cpu_types[] 2024-02-02 13:51:58 +00:00
npcm7xx.h hw/arm: Add GMAC devices to NPCM7XX SoC 2024-02-02 13:51:59 +00:00
nrf51_soc.h hw/arm/nrf51: Wire up sysclk 2021-09-01 11:08:20 +01:00
nrf51.h hw/arm/nrf51: Add NRF51_PERIPHERAL_SIZE definition 2020-05-11 11:05:11 +01:00
omap.h hw/arm/omap.h: correct typos 2024-02-21 08:16:43 +03:00
primecell.h hw: move headers to include/ 2013-04-08 18:13:10 +02:00
pxa.h hw/pcmcia/pxa2xx: Inline pxa2xx_pcmcia_init() 2023-10-27 12:48:57 +01:00
raspberrypi-fw-defs.h hw/misc/bcm2835_property: Add missed BCM2835 properties 2024-02-27 15:24:20 +00:00
raspi_platform.h hw/arm: Add memory region for BCM2837 RPiVid ASB 2024-02-27 13:01:42 +00:00
sharpsl.h hw/gpio/zaurus.c: Use LOG_GUEST_ERROR for bad guest register accesses 2020-07-03 16:59:45 +01:00
smmu-common.h hw/arm/smmuv3: add support for stage 1 access fault 2024-02-15 13:38:11 +00:00
smmuv3.h hw/arm/smmuv3: Add knob to choose translation stage and enable stage-2 2023-05-30 15:50:16 +01:00
soc_dma.h Include exec/memory.h slightly less 2019-08-16 13:31:52 +02:00
stm32f100_soc.h hw/arm/stm32f100: Report error when incorrect CPU is used 2023-11-20 15:30:59 +00:00
stm32f205_soc.h hw/arm/stm32f205: Report error when incorrect CPU is used 2023-11-20 15:30:59 +00:00
stm32f405_soc.h hw/arm/stm32f405: Report error when incorrect CPU is used 2023-11-20 15:30:59 +00:00
stm32l4x5_soc.h hw/arm: Add the USART to the stm32l4x5 SoC 2024-04-25 10:21:59 +01:00
virt.h hw/arm/virt: allow creation of a second NonSecure UART 2024-06-21 14:01:59 +01:00
xen_arch_hvm.h hw/arm: introduce xenpvh machine 2023-06-15 16:46:47 -07:00
xlnx-versal.h hw/arm/xlnx-versal: Include missing 'cpu.h' header 2024-01-26 11:30:48 +00:00
xlnx-zynqmp.h hw/ide/ahci: Move SysBus definitions to 'ahci-sysbus.h' 2024-02-15 16:58:46 +01:00