Patchwork [U-Boot,05/19] x86: Implement panic output for coreboot

login
register
mail settings
Submitter Simon Glass
Date April 18, 2013, 2:13 a.m.
Message ID <1366251228-19884-6-git-send-email-sjg@chromium.org>
Download mbox | patch
Permalink /patch/237392/
State Accepted, archived
Delegated to: Simon Glass
Headers show

Comments

Simon Glass - April 18, 2013, 2:13 a.m.
panic_puts() can be called in early boot to display a message. It might
help with early debugging.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Wai-Hong Tam <waihong@chromium.org>
---
 arch/x86/cpu/coreboot/coreboot.c  | 10 ++++++++++
 arch/x86/include/asm/u-boot-x86.h |  1 +
 2 files changed, 11 insertions(+)

Patch

diff --git a/arch/x86/cpu/coreboot/coreboot.c b/arch/x86/cpu/coreboot/coreboot.c
index f8e28f0..4a7dae49 100644
--- a/arch/x86/cpu/coreboot/coreboot.c
+++ b/arch/x86/cpu/coreboot/coreboot.c
@@ -26,6 +26,7 @@ 
 #include <asm/u-boot-x86.h>
 #include <flash.h>
 #include <netdev.h>
+#include <ns16550.h>
 #include <asm/msr.h>
 #include <asm/cache.h>
 #include <asm/io.h>
@@ -135,3 +136,12 @@  int board_final_cleanup(void)
 
 	return 0;
 }
+
+void panic_puts(const char *str)
+{
+	NS16550_t port = (NS16550_t)0x3f8;
+
+	NS16550_init(port, 1);
+	while (*str)
+		NS16550_putc(port, *str++);
+}
diff --git a/arch/x86/include/asm/u-boot-x86.h b/arch/x86/include/asm/u-boot-x86.h
index ae0c388..5a59db6 100644
--- a/arch/x86/include/asm/u-boot-x86.h
+++ b/arch/x86/include/asm/u-boot-x86.h
@@ -33,6 +33,7 @@  void init_gd(gd_t *id, u64 *gdt_addr);
 void setup_gdt(gd_t *id, u64 *gdt_addr);
 int init_cache(void);
 int cleanup_before_linux(void);
+void panic_puts(const char *str);
 
 /* cpu/.../timer.c */
 void timer_isr(void *);