hw/arm/aspeed: Allow machine to set UART default
commit5d63d0c76c403d7fafc9e83e419b2059278ed396
authorPeter Delevoryas <pdel@fb.com>
Mon, 20 Sep 2021 06:50:59 +0000 (20 08:50 +0200)
committerCédric Le Goater <clg@kaod.org>
Mon, 20 Sep 2021 06:50:59 +0000 (20 08:50 +0200)
treeacdfcc47066848a498f47f96e7d749cfba72ac30
parent9dca45568331eb80111360619a491a3192cdc63d
hw/arm/aspeed: Allow machine to set UART default

When you run QEMU with an Aspeed machine and a single serial device
using stdio like this:

    qemu -machine ast2600-evb -drive ... -serial stdio

The guest OS can read and write to the UART5 registers at 0x1E784000 and
it will receive from stdin and write to stdout. The Aspeed SoC's have a
lot more UART's though (AST2500 has 5, AST2600 has 13) and depending on
the board design, may be using any of them as the serial console. (See
"stdout-path" in a DTS to check which one is chosen).

Most boards, including all of those currently defined in
hw/arm/aspeed.c, just use UART5, but some use UART1. This change adds
some flexibility for different boards without requiring users to change
their command-line invocation of QEMU.

I tested this doesn't break existing code by booting an AST2500 OpenBMC
image and an AST2600 OpenBMC image, each using UART5 as the console.

Then I tested switching the default to UART1 and booting an AST2600
OpenBMC image that uses UART1, and that worked too.

Signed-off-by: Peter Delevoryas <pdel@fb.com>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Message-Id: <20210901153615.2746885-2-pdel@fb.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
hw/arm/aspeed.c
hw/arm/aspeed_ast2600.c
hw/arm/aspeed_soc.c
include/hw/arm/aspeed.h
include/hw/arm/aspeed_soc.h