serial: cadence: Add generic earlycon support
Add earlycon support for the cadence serial port. This is based on recent patches: "tty/serial: pl011: add generic earlycon support" (sha1:0d3c673e78
) "tty/serial: add arm/arm64 semihosting earlycon" (sha1:d50d7269eb
) Signed-off-by: Michal Simek <michal.simek@xilinx.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Родитель
a4688bcd34
Коммит
6fa62fc46e
|
@ -921,6 +921,12 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
|
|||
|
||||
earlycon= [KNL] Output early console device and options.
|
||||
|
||||
cdns,<addr>
|
||||
Start an early, polled-mode console on a cadence serial
|
||||
port at the specified address. The cadence serial port
|
||||
must already be setup and configured. Options are not
|
||||
yet supported.
|
||||
|
||||
uart[8250],io,<addr>[,options]
|
||||
uart[8250],mmio,<addr>[,options]
|
||||
uart[8250],mmio32,<addr>[,options]
|
||||
|
|
|
@ -1429,6 +1429,7 @@ config SERIAL_XILINX_PS_UART_CONSOLE
|
|||
bool "Cadence UART console support"
|
||||
depends on SERIAL_XILINX_PS_UART=y
|
||||
select SERIAL_CORE_CONSOLE
|
||||
select SERIAL_EARLYCON
|
||||
help
|
||||
Enable a Cadence UART port to be the system console.
|
||||
|
||||
|
|
|
@ -1051,6 +1051,25 @@ static void cdns_uart_console_putchar(struct uart_port *port, int ch)
|
|||
cdns_uart_writel(ch, CDNS_UART_FIFO_OFFSET);
|
||||
}
|
||||
|
||||
static void cdns_early_write(struct console *con, const char *s, unsigned n)
|
||||
{
|
||||
struct earlycon_device *dev = con->data;
|
||||
|
||||
uart_console_write(&dev->port, s, n, cdns_uart_console_putchar);
|
||||
}
|
||||
|
||||
static int __init cdns_early_console_setup(struct earlycon_device *device,
|
||||
const char *opt)
|
||||
{
|
||||
if (!device->port.membase)
|
||||
return -ENODEV;
|
||||
|
||||
device->con->write = cdns_early_write;
|
||||
|
||||
return 0;
|
||||
}
|
||||
EARLYCON_DECLARE(cdns, cdns_early_console_setup);
|
||||
|
||||
/**
|
||||
* cdns_uart_console_write - perform write operation
|
||||
* @co: Console handle
|
||||
|
|
Загрузка…
Ссылка в новой задаче