From 7524400242be26610df143b5d1d781f875239c45 Mon Sep 17 00:00:00 2001 From: Philipp Hug Date: Sat, 7 Jul 2018 21:34:31 +0200 Subject: uart/sifive: make divisor configurable MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The SiFive UART on the HiFive Unleashed uses the tlclk as input clock which runs at coreclk / 2. The input frequency is configured in the board code depending on the current stage. (bootblock + romstage run at 33.33Mhz, ramstage at 1Ghz) Change-Id: Iaf66723dba3d308f809fde5b05dfc3e43f43bd42 Signed-off-by: Philipp Hug Reviewed-on: https://review.coreboot.org/27440 Tested-by: build bot (Jenkins) Reviewed-by: Jonathan Neuschäfer --- src/soc/sifive/fu540/Kconfig | 2 +- src/soc/sifive/fu540/uart.c | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) (limited to 'src/soc') diff --git a/src/soc/sifive/fu540/Kconfig b/src/soc/sifive/fu540/Kconfig index c438a10162..457d16bb4e 100644 --- a/src/soc/sifive/fu540/Kconfig +++ b/src/soc/sifive/fu540/Kconfig @@ -20,7 +20,7 @@ config SOC_SIFIVE_FU540 select ARCH_RAMSTAGE_RISCV select BOOTBLOCK_CONSOLE select DRIVERS_UART_SIFIVE - + select UART_OVERRIDE_REFCLK if SOC_SIFIVE_FU540 config RISCV_ARCH diff --git a/src/soc/sifive/fu540/uart.c b/src/soc/sifive/fu540/uart.c index 940dc97856..c53f42d9d8 100644 --- a/src/soc/sifive/fu540/uart.c +++ b/src/soc/sifive/fu540/uart.c @@ -23,3 +23,11 @@ uintptr_t uart_platform_base(int idx) else return 0; } + +unsigned int uart_platform_refclk(void) +{ + /* + * The SiFive UART uses tlclk, which is coreclk/2 as input + */ + return 33330000 / 2; +} -- cgit v1.2.3