diff --git a/src/cpu/x86/16bit/entry16.inc b/src/cpu/x86/16bit/entry16.inc index abaf6718ea..be5b73019e 100644 --- a/src/cpu/x86/16bit/entry16.inc +++ b/src/cpu/x86/16bit/entry16.inc @@ -29,10 +29,10 @@ #include .code16 -.globl _start -.type _start, @function +.globl _start16bit +.type _start16bit, @function -_start: +_start16bit: cli /* Save the BIST result */ movl %eax, %ebp @@ -80,12 +80,12 @@ _start: * The criteria for relocation have been relaxed to their * utmost, so that we can use the same code for both * our initial entry point and startup of the second cpu. - * The code assumes when executing at _start that: - * (((cs & 0xfff) == 0) and (ip == _start & 0xffff)) + * The code assumes when executing at _start16bit that: + * (((cs & 0xfff) == 0) and (ip == _start16bit & 0xffff)) * or * ((cs == anything) and (ip == 0)). * - * The restrictions in reset16.inc mean that _start initially + * The restrictions in reset16.inc mean that _start16bit initially * must be loaded at or above 0xffff0000 or below 0x100000. * * The linker scripts computes gdtptr16_offset by simply returning @@ -136,6 +136,6 @@ nullidt: .long 0 .word 0 -.globl _estart -_estart: +.globl _estart16bit +_estart16bit: .code32 diff --git a/src/cpu/x86/16bit/reset16.inc b/src/cpu/x86/16bit/reset16.inc index ebc3d4cee2..d99f0b1e0c 100644 --- a/src/cpu/x86/16bit/reset16.inc +++ b/src/cpu/x86/16bit/reset16.inc @@ -3,7 +3,7 @@ .globl reset_vector reset_vector: .byte 0xe9 - .int _start - ( . + 2 ) + .int _start16bit - ( . + 2 ) /* Note: The above jump is hand coded to work around bugs in binutils. * 5 byte are used for a 3 byte instruction. This works because x86 * is little endian and allows us to use supported 32bit relocations diff --git a/src/cpu/x86/16bit/reset16.ld b/src/cpu/x86/16bit/reset16.ld index 1730992434..d96755ec62 100644 --- a/src/cpu/x86/16bit/reset16.ld +++ b/src/cpu/x86/16bit/reset16.ld @@ -5,7 +5,7 @@ SECTIONS { /* Trigger an error if I have an unuseable start address */ - _bogus = ASSERT(_start >= 0xffff0000, "_start too low. Please report."); + _bogus = ASSERT(_start16bit >= 0xffff0000, "_start16bit too low. Please report."); _ROMTOP = 0xfffffff0; . = _ROMTOP; .reset . : {