summaryrefslogtreecommitdiffstats
path: root/arch/x86
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2015-04-28 20:25:15 -0600
committerSimon Glass <sjg@chromium.org>2015-04-29 21:02:34 -0600
commit52845296be8190c3f581090d6336fa033f2bd2d8 (patch)
treefe344edf3466a1a6a2664d7ae99f968fa923c41d /arch/x86
parent837a136fc7cfb712858502a03c8d0ae91bea6e0d (diff)
downloadtalos-obmc-uboot-52845296be8190c3f581090d6336fa033f2bd2d8.tar.gz
talos-obmc-uboot-52845296be8190c3f581090d6336fa033f2bd2d8.zip
x86: Store the GDT pointer in global_data
When we start up additional CPUs we want them to use the same Global Descriptor Table. Store the address of this in global_data so we can reference it later. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Diffstat (limited to 'arch/x86')
-rw-r--r--arch/x86/cpu/cpu.c1
-rw-r--r--arch/x86/include/asm/global_data.h1
2 files changed, 2 insertions, 0 deletions
diff --git a/arch/x86/cpu/cpu.c b/arch/x86/cpu/cpu.c
index 02e66d80db..78eb3feb3b 100644
--- a/arch/x86/cpu/cpu.c
+++ b/arch/x86/cpu/cpu.c
@@ -133,6 +133,7 @@ static void load_gdt(const u64 *boot_gdt, u16 num_entries)
void setup_gdt(gd_t *id, u64 *gdt_addr)
{
+ id->arch.gdt = gdt_addr;
/* CS: code, read/execute, 4 GB, base 0 */
gdt_addr[X86_GDT_ENTRY_32BIT_CS] = GDT_ENTRY(0xc09b, 0, 0xfffff);
diff --git a/arch/x86/include/asm/global_data.h b/arch/x86/include/asm/global_data.h
index 5ee06eb70d..4d9eac676e 100644
--- a/arch/x86/include/asm/global_data.h
+++ b/arch/x86/include/asm/global_data.h
@@ -68,6 +68,7 @@ struct arch_global_data {
/* MRC training data to save for the next boot */
char *mrc_output;
unsigned int mrc_output_len;
+ void *gdt; /* Global descriptor table */
};
#endif
OpenPOWER on IntegriCloud