boot: Support IO UARTs for earlycon and console
authorSimon Glass <sjg@chromium.org>
Sat, 15 Mar 2025 14:26:00 +0000 (14:26 +0000)
committerTom Rini <trini@konsulko.com>
Thu, 3 Apr 2025 17:43:22 +0000 (11:43 -0600)
Update the string to take account of UARTs which are connected on I/O
ports, as on x86.

Fix a typo in an error message in the same command, while we are here.

Signed-off-by: Simon Glass <sjg@chromium.org>
boot/bootflow.c

index 58a1afa..4054a96 100644 (file)
@@ -942,8 +942,9 @@ int bootflow_cmdline_auto(struct bootflow *bflow, const char *arg)
        *buf = '\0';
        if (!strcmp("earlycon", arg) && info.type == SERIAL_CHIP_16550_COMPATIBLE) {
                snprintf(buf, sizeof(buf),
-                        "uart8250,mmio32,%#lx,%dn8", info.addr,
-                        info.baudrate);
+                        "uart8250,%s,%#lx,%dn8",
+                        info.addr_space == SERIAL_ADDRESS_SPACE_IO ? "io" :
+                        "mmio", info.addr, info.baudrate);
        } else if (!strcmp("earlycon", arg) && info.type == SERIAL_CHIP_PL01X) {
                snprintf(buf, sizeof(buf),
                         "pl011,mmio32,%#lx,%dn8", info.addr,
@@ -954,7 +955,7 @@ int bootflow_cmdline_auto(struct bootflow *bflow, const char *arg)
        }
 
        if (!*buf) {
-               printf("Unknown param '%s\n", arg);
+               printf("Unknown param '%s'\n", arg);
                return -ENOENT;
        }