driver/uart: Introduce a way for mainboard to override the baudrate
The rationale is to allow the mainboard to override the default baudrate for instance by sampling GPIOs at boot. A new configuration option is available for mainboards to select this behaviour. It will then have to define the function get_uart_baudrate to return the computed baudrate. Change-Id: I970ee788bf90b9e1a8c6ccdc5eee8029d9af0ecc Signed-off-by: Julien Viard de Galbert <jviarddegalbert@online.net> Reviewed-on: https://review.coreboot.org/23713 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Nico Huber <nico.h@gmx.de>
This commit is contained in:
parent
fa650f5e8c
commit
235daa4bf6
16 changed files with 42 additions and 21 deletions
|
|
@ -51,7 +51,7 @@ void uart_fill_lb(void *data)
|
|||
struct lb_serial serial;
|
||||
serial.type = LB_SERIAL_TYPE_MEMORY_MAPPED;
|
||||
serial.baseaddr = uart_platform_base(CONFIG_UART_FOR_CONSOLE);
|
||||
serial.baud = CONFIG_TTYS0_BAUD;
|
||||
serial.baud = get_uart_baudrate();
|
||||
serial.regwidth = 1;
|
||||
serial.input_hertz = uart_platform_refclk();
|
||||
serial.uart_pci_addr = CONFIG_UART_PCI_ADDR;
|
||||
|
|
|
|||
|
|
@ -107,7 +107,7 @@ void uart_init(int idx)
|
|||
{
|
||||
if (!IS_ENABLED(CONFIG_DRIVERS_UART_8250IO_SKIP_INIT)) {
|
||||
unsigned int div;
|
||||
div = uart_baudrate_divisor(CONFIG_TTYS0_BAUD,
|
||||
div = uart_baudrate_divisor(get_uart_baudrate(),
|
||||
uart_platform_refclk(), uart_input_clock_divider());
|
||||
uart8250_init(uart_platform_base(idx), div);
|
||||
}
|
||||
|
|
@ -134,7 +134,7 @@ void uart_fill_lb(void *data)
|
|||
struct lb_serial serial;
|
||||
serial.type = LB_SERIAL_TYPE_IO_MAPPED;
|
||||
serial.baseaddr = uart_platform_base(CONFIG_UART_FOR_CONSOLE);
|
||||
serial.baud = CONFIG_TTYS0_BAUD;
|
||||
serial.baud = get_uart_baudrate();
|
||||
serial.regwidth = 1;
|
||||
serial.input_hertz = uart_platform_refclk();
|
||||
serial.uart_pci_addr = CONFIG_UART_PCI_ADDR;
|
||||
|
|
|
|||
|
|
@ -119,7 +119,7 @@ void uart_init(int idx)
|
|||
return;
|
||||
|
||||
unsigned int div;
|
||||
div = uart_baudrate_divisor(CONFIG_TTYS0_BAUD,
|
||||
div = uart_baudrate_divisor(get_uart_baudrate(),
|
||||
uart_platform_refclk(), uart_input_clock_divider());
|
||||
uart8250_mem_init(base, div);
|
||||
}
|
||||
|
|
@ -156,7 +156,7 @@ void uart_fill_lb(void *data)
|
|||
serial.baseaddr = uart_platform_base(CONFIG_UART_FOR_CONSOLE);
|
||||
if (!serial.baseaddr)
|
||||
return;
|
||||
serial.baud = CONFIG_TTYS0_BAUD;
|
||||
serial.baud = get_uart_baudrate();
|
||||
if (IS_ENABLED(CONFIG_DRIVERS_UART_8250MEM_32))
|
||||
serial.regwidth = sizeof(uint32_t);
|
||||
else
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue