drivers/uart8250mem: Check for zero base address

Before adding a new UART to the coreboot/lb table, verify that it
has a non-zero base address.  This is consistent with all other
functions that use the uart_platform_base() function.

This was tested on google/kahlee by using an invalid UART number
and forcing the base address to 0.  Execution was able to complete
through depthcharge and into the OS.

Change-Id: I6d8183a461f0fedc254bf88de5ec96629a2a80ef
Signed-off-by: Marshall Dawson <marshalldawson3rd@gmail.com>
Reviewed-on: https://review.coreboot.org/21996
Reviewed-by: Lijian Zhao <lijian.zhao@intel.com>
Reviewed-by: Martin Roth <martinroth@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
This commit is contained in:
Marshall Dawson 2017-10-12 11:23:33 -06:00 committed by Martin Roth
parent 30f9b953a8
commit 78130663e5
1 changed files with 2 additions and 0 deletions

View File

@ -154,6 +154,8 @@ void uart_fill_lb(void *data)
struct lb_serial serial; struct lb_serial serial;
serial.type = LB_SERIAL_TYPE_MEMORY_MAPPED; serial.type = LB_SERIAL_TYPE_MEMORY_MAPPED;
serial.baseaddr = uart_platform_base(CONFIG_UART_FOR_CONSOLE); serial.baseaddr = uart_platform_base(CONFIG_UART_FOR_CONSOLE);
if (!serial.baseaddr)
return;
serial.baud = CONFIG_TTYS0_BAUD; serial.baud = CONFIG_TTYS0_BAUD;
if (IS_ENABLED(CONFIG_DRIVERS_UART_8250MEM_32)) if (IS_ENABLED(CONFIG_DRIVERS_UART_8250MEM_32))
serial.regwidth = sizeof(uint32_t); serial.regwidth = sizeof(uint32_t);