[coreboot-gerrit] Patch set updated for coreboot: cpu: x86 port to 64bit

Stefan Reinauer (stefan.reinauer@coreboot.org) gerrit at coreboot.org
Sat Jun 20 02:09:17 CEST 2015


Stefan Reinauer (stefan.reinauer at coreboot.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/10580

-gerrit

commit 9d8b4a0d3bcddbfc00398d1b035d5bd78bdd3a45
Author: Stefan Reinauer <stefan.reinauer at coreboot.org>
Date:   Thu Jun 18 01:15:27 2015 -0700

    cpu: x86 port to 64bit
    
    Change-Id: Ib1c6732d3a338f6d898fadc19e5af59032343451
    Signed-off-by: Stefan Reinauer <stefan.reinauer at coreboot.org>
    Signed-off-by: Scott Duplichan <scott at notabs.org>
---
 src/cpu/x86/32bit/entry32.inc      | 4 ++++
 src/cpu/x86/lapic/lapic_cpu_init.c | 8 ++++++--
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/src/cpu/x86/32bit/entry32.inc b/src/cpu/x86/32bit/entry32.inc
index b016f8e..5c3072e 100644
--- a/src/cpu/x86/32bit/entry32.inc
+++ b/src/cpu/x86/32bit/entry32.inc
@@ -27,6 +27,10 @@ gdtptr:
 	.word	0xffff, 0x0000
 	.byte	0x00, 0x93, 0xcf, 0x00
 
+	/* selgdt 0x18, flat code segment (64-bit) */
+	.word   0xffff, 0x0000
+	.byte   0x00, 0x9b, 0xaf, 0x00
+
 gdt_end:
 
 
diff --git a/src/cpu/x86/lapic/lapic_cpu_init.c b/src/cpu/x86/lapic/lapic_cpu_init.c
index 0e2550f..0e314fd 100644
--- a/src/cpu/x86/lapic/lapic_cpu_init.c
+++ b/src/cpu/x86/lapic/lapic_cpu_init.c
@@ -58,13 +58,17 @@ int  lowmem_backup_size;
 static inline void setup_secondary_gdt(void)
 {
 	u16 *gdt_limit;
+#ifdef __x86_64__
+	u64 *gdt_base;
+#else
 	u32 *gdt_base;
+#endif
 
 	gdt_limit = (void *)&_secondary_gdt_addr;
 	gdt_base = (void *)&gdt_limit[1];
 
-	*gdt_limit = (u32)&gdt_end - (u32)&gdt - 1;
-	*gdt_base = (u32)&gdt;
+	*gdt_limit = (uintptr_t)&gdt_end - (uintptr_t)&gdt - 1;
+	*gdt_base = (uintptr_t)&gdt;
 }
 
 static void copy_secondary_start_to_lowest_1M(void)



More information about the coreboot-gerrit mailing list