From 78130663e5cac7939ee04f97ac1c7fcecde23820 Mon Sep 17 00:00:00 2001 From: Marshall Dawson Date: Thu, 12 Oct 2017 11:23:33 -0600 Subject: [PATCH] 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 Reviewed-on: https://review.coreboot.org/21996 Reviewed-by: Lijian Zhao Reviewed-by: Martin Roth Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin --- src/drivers/uart/uart8250mem.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/drivers/uart/uart8250mem.c b/src/drivers/uart/uart8250mem.c index f293230e2e..9eb50cb4b1 100644 --- a/src/drivers/uart/uart8250mem.c +++ b/src/drivers/uart/uart8250mem.c @@ -154,6 +154,8 @@ 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); + if (!serial.baseaddr) + return; serial.baud = CONFIG_TTYS0_BAUD; if (IS_ENABLED(CONFIG_DRIVERS_UART_8250MEM_32)) serial.regwidth = sizeof(uint32_t);