From d0dcf877e4dc85f951e6c8c53702292fff060bc6 Mon Sep 17 00:00:00 2001 From: Patrick Rudolph Date: Wed, 28 Mar 2018 12:28:02 +0200 Subject: soc/cavium: Clean uart code * Only init UART_FOR_CONSOLE * Allow UART init with zero baudrate. * Init UART0..3 on Cavium's cn8100_sff_evb to fix kernel panic. Tested on CN8100_SFF_EVB. Change-Id: I1043b30318ec6210e2dd6b7ac313a41171d37f55 Signed-off-by: Patrick Rudolph Reviewed-on: https://review.coreboot.org/25448 Tested-by: build bot (Jenkins) Reviewed-by: David Hendricks --- src/soc/cavium/cn81xx/uart.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/soc/cavium/cn81xx/uart.c') diff --git a/src/soc/cavium/cn81xx/uart.c b/src/soc/cavium/cn81xx/uart.c index 9fb83871ad..7a9ea3a158 100644 --- a/src/soc/cavium/cn81xx/uart.c +++ b/src/soc/cavium/cn81xx/uart.c @@ -232,6 +232,14 @@ int uart_setup(const size_t bus, int baudrate) ctl.s.csclk_en = 1; write64(&uart->uctl_ctl, ctl.u); + /** + * Exit here if the UART is not going to be used in coreboot. + * The previous initialization steps are sufficient to make the Linux + * kernel not panic. + */ + if (!baudrate) + return 0; + /** * 7. Initialize the integer and fractional baud rate divider registers * UARTIBRD and UARTFBRD as follows: -- cgit v1.2.3