summaryrefslogtreecommitdiff
path: root/arch/x86/cpu/start.S
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2014-11-12 22:42:09 -0700
committerSimon Glass <sjg@chromium.org>2014-11-21 07:34:11 +0100
commitd1cd045982b1e1e4db2c1cc2b2b932f739b78a11 (patch)
tree042be9d3ac848c6799756f5e7fc6c1a6391d1d2a /arch/x86/cpu/start.S
parentfce7b2768364366bd4c4af9188186f6b3f9c2fe8 (diff)
downloadu-boot-imx-d1cd045982b1e1e4db2c1cc2b2b932f739b78a11.zip
u-boot-imx-d1cd045982b1e1e4db2c1cc2b2b932f739b78a11.tar.gz
u-boot-imx-d1cd045982b1e1e4db2c1cc2b2b932f739b78a11.tar.bz2
x86: Emit post codes in startup code for Chromebooks
On x86 it is common to use 'post codes' which are 8-bit hex values emitted from the code and visible to the user. Traditionally two 7-segment displays were made available on the motherboard to show the last post code that was emitted. This allows diagnosis of a boot problem since it is possible to see where the code got to before it died. On modern hardware these codes are not normally visible. On Chromebooks they are displayed by the Embedded Controller (EC), so it is useful to emit them. We must enable this feature for the EC to see the codes, so add an option for this. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Diffstat (limited to 'arch/x86/cpu/start.S')
-rw-r--r--arch/x86/cpu/start.S4
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/x86/cpu/start.S b/arch/x86/cpu/start.S
index b18f320..1b738f9 100644
--- a/arch/x86/cpu/start.S
+++ b/arch/x86/cpu/start.S
@@ -13,6 +13,7 @@
#include <config.h>
#include <version.h>
#include <asm/global_data.h>
+#include <asm/post.h>
#include <asm/processor.h>
#include <asm/processor-flags.h>
#include <generated/generic-asm-offsets.h>
@@ -67,6 +68,7 @@ _start:
jmp early_board_init
.globl early_board_init_ret
early_board_init_ret:
+ post_code(POST_START)
/* Initialise Cache-As-RAM */
jmp car_init
@@ -96,6 +98,7 @@ car_init_ret:
/* Align global data to 16-byte boundary */
andl $0xfffffff0, %esp
+ post_code(POST_START_STACK)
/* Zero the global data since it won't happen later */
xorl %eax, %eax
@@ -131,6 +134,7 @@ car_init_ret:
call setup_gdt
/* Set parameter to board_init_f() to boot flags */
+ post_code(POST_START_DONE)
xorl %eax, %eax
/* Enter, U-boot! */