cpu: x86 port to 64bit
Change-Id: Ib1c6732d3a338f6d898fadc19e5af59032343451 Signed-off-by: Stefan Reinauer <stefan.reinauer@coreboot.org> Signed-off-by: Scott Duplichan <scott@notabs.org> Reviewed-on: http://review.coreboot.org/10580 Tested-by: build bot (Jenkins) Reviewed-by: Marc Jones <marc.jones@se-eng.com>
This commit is contained in:
parent
defee17c67
commit
e021dea777
|
@ -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:
|
||||
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue