Просмотр исходного кода

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>
Simon Glass 9 лет назад
Родитель
Сommit
bbbe55f6f2
2 измененных файлов с 13 добавлено и 0 удалено
  1. 9 0
      arch/x86/cpu/start.S
  2. 4 0
      configs/minnowmax_defconfig

+ 9 - 0
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

+ 4 - 0
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