diff options
author | Simon Glass <sjg@chromium.org> | 2015-07-31 09:31:28 -0600 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2015-08-05 08:42:40 -0600 |
commit | 83ec7de3bc17dda42d681d3a015191a23c6f1f73 (patch) | |
tree | cd4b5a8f05e665c77cdc3fa973f384ff57dfe6e1 /arch | |
parent | b0b403d954081520ba82fef24dee6486ffebe017 (diff) | |
download | talos-obmc-uboot-83ec7de3bc17dda42d681d3a015191a23c6f1f73.tar.gz talos-obmc-uboot-83ec7de3bc17dda42d681d3a015191a23c6f1f73.zip |
x86: Tidy up global_data flags
These flags now overlap some global ones. Adjust the x86-specific flags to
avoid this. Since this requires a change to the start.S code, add a way for
tools to find the 32-bit cold reset entry point. Previously this was at a
fixed offset.
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/x86/cpu/start.S | 10 | ||||
-rw-r--r-- | arch/x86/include/asm/global_data.h | 8 |
2 files changed, 11 insertions, 7 deletions
diff --git a/arch/x86/cpu/start.S b/arch/x86/cpu/start.S index 7ef8b880ec..a0dec39abe 100644 --- a/arch/x86/cpu/start.S +++ b/arch/x86/cpu/start.S @@ -41,14 +41,18 @@ _x86boot_start: wbinvd /* Tell 32-bit code it is being entered from an in-RAM copy */ - movw $GD_FLG_WARM_BOOT, %bx + movl $GD_FLG_WARM_BOOT, %ebx jmp 1f + + /* Add a way for tools to discover the _start entry point */ + .align 4 + .long 0x12345678 _start: /* * This is the 32-bit cold-reset entry point, coming from start16. - * Set %bx to 0 to indicate this. + * Set %ebx to GD_FLG_COLD_BOOT to indicate this. */ - movw $GD_FLG_COLD_BOOT, %bx + movl $GD_FLG_COLD_BOOT, %ebx 1: /* Save BIST */ movl %eax, %ebp diff --git a/arch/x86/include/asm/global_data.h b/arch/x86/include/asm/global_data.h index 4d9eac676e..3db9a4cf0b 100644 --- a/arch/x86/include/asm/global_data.h +++ b/arch/x86/include/asm/global_data.h @@ -87,14 +87,14 @@ static inline __attribute__((no_instrument_function)) gd_t *get_fs_gd_ptr(void) #define gd get_fs_gd_ptr() +#define DECLARE_GLOBAL_DATA_PTR + #endif /* * Our private Global Data Flags */ -#define GD_FLG_COLD_BOOT 0x00100 /* Cold Boot */ -#define GD_FLG_WARM_BOOT 0x00200 /* Warm Boot */ - -#define DECLARE_GLOBAL_DATA_PTR +#define GD_FLG_COLD_BOOT 0x10000 /* Cold Boot */ +#define GD_FLG_WARM_BOOT 0x20000 /* Warm Boot */ #endif /* __ASM_GBL_DATA_H */ |