On 23/10/23 18:15, Peter Maydell wrote:
If there is more than one UART in the DTB, then there is no guarantee
on which order a guest is supposed to initialise them. The standard
solution to this is "serialN" entries in the "/aliases" node of the
dtb which give the nodename of the UARTs.
At the moment we only have two UARTs in the DTB when one is for
the Secure world and one for the Non-Secure world, so this isn't
really a problem. However if we want to add a second NS UART we'll
need the aliases to ensure guests pick the right one.
Signed-off-by: Peter Maydell <peter.mayd...@linaro.org>
---
hw/arm/virt.c | 4 ++++
1 file changed, 4 insertions(+)
@@ -889,7 +891,9 @@ static void create_uart(const VirtMachineState *vms, int
uart,
if (uart == VIRT_UART) {
I'd have put this patch after the rename (#2 <-> #1). Anyhow,
Reviewed-by: Philippe Mathieu-Daudé <phi...@linaro.org>
qemu_fdt_setprop_string(ms->fdt, "/chosen", "stdout-path", nodename);
+ qemu_fdt_setprop_string(ms->fdt, "/aliases", "serial0", nodename);
} else {
+ qemu_fdt_setprop_string(ms->fdt, "/aliases", "serial1", nodename);
/* Mark as not usable by the normal world */
qemu_fdt_setprop_string(ms->fdt, nodename, "status", "disabled");
qemu_fdt_setprop_string(ms->fdt, nodename, "secure-status", "okay");