From bae775a4f43449e79622ed144118554ff780744a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ky=C3=B6sti=20M=C3=A4lkki?= Date: Thu, 18 Dec 2014 10:36:33 +0200 Subject: arch/x86: Declare GDT symbols and move_gdt() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We relocate GDT to CBMEM, this can be done late in ramstage. Note: We currently do this for BSP CPU only. Change-Id: I626faaf22f846433f25ca2253d6a2a5230f50b6b Signed-off-by: Kyösti Mälkki Reviewed-on: http://review.coreboot.org/7858 Reviewed-by: Stefan Reinauer Tested-by: build bot (Jenkins) Reviewed-by: Edward O'Callaghan --- src/cpu/x86/lapic/lapic_cpu_init.c | 7 +------ src/cpu/x86/mp_init.c | 5 +---- 2 files changed, 2 insertions(+), 10 deletions(-) (limited to 'src/cpu/x86') diff --git a/src/cpu/x86/lapic/lapic_cpu_init.c b/src/cpu/x86/lapic/lapic_cpu_init.c index 61b6bd72f7..472d6edf60 100644 --- a/src/cpu/x86/lapic/lapic_cpu_init.c +++ b/src/cpu/x86/lapic/lapic_cpu_init.c @@ -21,6 +21,7 @@ */ #include +#include #include #include #include @@ -53,11 +54,6 @@ char *lowmem_backup_ptr; int lowmem_backup_size; #endif -extern char _secondary_start[]; -extern char _secondary_gdt_addr[]; -extern char gdt[]; -extern char gdt_end[]; - static inline void setup_secondary_gdt(void) { u16 *gdt_limit; @@ -72,7 +68,6 @@ static inline void setup_secondary_gdt(void) static void copy_secondary_start_to_lowest_1M(void) { - extern char _secondary_start_end[]; unsigned long code_size; /* Fill in secondary_start's local gdt. */ diff --git a/src/cpu/x86/mp_init.c b/src/cpu/x86/mp_init.c index a97a4c532b..3e293f60c4 100644 --- a/src/cpu/x86/mp_init.c +++ b/src/cpu/x86/mp_init.c @@ -26,6 +26,7 @@ #include #include #include +#include #include #include #include @@ -67,10 +68,6 @@ struct saved_msr { /* The sipi vector rmodule is included in the ramstage using 'objdump -B'. */ extern char _binary_sipi_vector_start[]; -/* These symbols are defined in c_start.S. */ -extern char gdt[]; -extern char gdt_end[]; -extern char idtarg[]; /* The SIPI vector is loaded at the SMM_DEFAULT_BASE. The reason is at the * memory range is already reserved so the OS cannot use it. That region is -- cgit v1.2.3