From a160092a610f4345cea5b606a8daf27d1feba185 Mon Sep 17 00:00:00 2001 From: Simon Glass Date: Mon, 16 Jan 2017 07:03:59 -0700 Subject: x86: Support global_data on x86_64 At present this is just an ordinary variable. We may consider making it a fixed register in the future. Signed-off-by: Simon Glass Reviewed-by: Bin Meng --- arch/x86/cpu/x86_64/cpu.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'arch/x86/cpu/x86_64/cpu.c') diff --git a/arch/x86/cpu/x86_64/cpu.c b/arch/x86/cpu/x86_64/cpu.c index b12eab1..3627229 100644 --- a/arch/x86/cpu/x86_64/cpu.c +++ b/arch/x86/cpu/x86_64/cpu.c @@ -6,6 +6,33 @@ */ #include +#include + +DECLARE_GLOBAL_DATA_PTR; + +/* Global declaration of gd */ +struct global_data *global_data_ptr; + +void arch_setup_gd(gd_t *new_gd) +{ + global_data_ptr = new_gd; + + /* + * TODO(sjg@chromium.org): For some reason U-Boot does not boot + * without this line. It fails to start up U-Boot proper and instead + * restarts SPL. Need to figure out why: + * + * U-Boot SPL 2017.01 + * + * U-Boot SPL 2017.01 + * CPU: Intel(R) Core(TM) i5-3427U CPU @ 1.80GHz + * Trying to boot from SPIJumping to 64-bit U-Boot: Note many + * features are missing + * + * U-Boot SPL 2017.01 + */ + printch(' '); +} int cpu_has_64bit(void) { -- cgit v1.1