[U-Boot] [PATCH v2] x86: Enable debug UART for Minnowmax
Simon Glass
sjg at chromium.org
Mon Aug 3 02:07:21 CEST 2015
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 at chromium.org>
Reviewed-by: Lukasz Majewski <l.majewski at samsung.com>
---
Changes in v2:
- Put the debug UART setup code in comments since we don't always want it
arch/x86/cpu/start.S | 9 +++++++++
configs/minnowmax_defconfig | 4 ++++
2 files changed, 13 insertions(+)
diff --git a/arch/x86/cpu/start.S b/arch/x86/cpu/start.S
index fdef2bb..ac711ed 100644
--- a/arch/x86/cpu/start.S
+++ b/arch/x86/cpu/start.S
@@ -128,6 +128,15 @@ car_init_ret:
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_FRAMEBUFFER_VESA_MODE_11A=y
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
--
2.5.0.rc2.392.g76e840b
More information about the U-Boot
mailing list