uart8250: Fix and unify baudrate divisor calculation
Divisor is a function of requested baudrate, platform-specific
reference clock and amount of oversampling done on the UART reference.
Calculate this parameter with divisor rounded to nearest integer.
When building without option_table or when there is no entry for
baud_rate, CONFIG_TTYS0_BAUD is used for default baudrate.
For OxPCIe use of 4 MHz for reference was arbitrary giving correct
divisor for 115200 but somewhat inaccurate for lower baudrates.
Actual hardware is 62500000 with 16 times oversampling.
FIXME: Field for baudrate in lb_tables is still incorrect.
Change-Id: I68539738469af780fadd3392263dd9b3d5964d2d
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-on: http://review.coreboot.org/5229
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
diff --git a/src/drivers/uart/Makefile.inc b/src/drivers/uart/Makefile.inc
new file mode 100644
index 0000000..c797d4b
--- /dev/null
+++ b/src/drivers/uart/Makefile.inc
@@ -0,0 +1,6 @@
+ifeq ($(CONFIG_CONSOLE_SERIAL),y)
+romstage-y += util.c
+ramstage-y += util.c
+bootblock-y += util.c
+smm-y += util.c
+endif