x86: Enable debug UART for Minnowmax
Enable the debug UART and emit a single 'a' early in the init sequence to
show that it is working.
Unfortunately the debug UART implementation needs a stack to work. I cannot
seem to remove this limitation as the absolute 'jmp %eax' instruction goes
off into the weeds.
So this means that the character output cannot be any earlier than
car_init_ret, where memory is available for a stack.
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
diff --git a/arch/x86/cpu/start.S b/arch/x86/cpu/start.S
index e5c1733..313fa3f 100644
--- a/arch/x86/cpu/start.S
+++ b/arch/x86/cpu/start.S
@@ -128,6 +128,15 @@
andl $0xfffffff0, %esp
post_code(POST_START_STACK)
+ /*
+ * Debug UART is available here although it may not be plumbed out
+ * to pins depending on the board. To use it:
+ *
+ * call debug_uart_init
+ * mov $'a', %eax
+ * call printch
+ */
+
/* Zero the global data since it won't happen later */
xorl %eax, %eax
movl $GENERATED_GBL_DATA_SIZE, %ecx
diff --git a/configs/minnowmax_defconfig b/configs/minnowmax_defconfig
index e98f5eb..a67597d 100644
--- a/configs/minnowmax_defconfig
+++ b/configs/minnowmax_defconfig
@@ -24,3 +24,7 @@
CONFIG_DM_RTC=y
CONFIG_USE_PRIVATE_LIBGCC=y
CONFIG_SYS_VSNPRINTF=y
+CONFIG_DEBUG_UART=y
+CONFIG_DEBUG_UART_NS16550=y
+CONFIG_DEBUG_UART_BASE=0x3f8
+CONFIG_DEBUG_UART_CLOCK=1843200