Aaron Durbin (adurbin@chromium.org) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/13880
-gerrit
commit 57e02e15c6b02687e18b6f6ab04d833ae64e2166 Author: Aaron Durbin adurbin@chromium.org Date: Wed Mar 2 14:47:37 2016 -0600
cpu/x86/16bit: rename _start -> _start16bit
In order to avoid collisions with other _start symbols while grepping and future ones be explicit about which _start this one is: the 16-bit one only used by the reset vector in the bootblock.
Change-Id: I6d7580596c0e6602a87fb158633ce9d45910cec2 Signed-off-by: Aaron Durbin adurbin@chromium.org --- src/cpu/x86/16bit/entry16.inc | 16 ++++++++-------- src/cpu/x86/16bit/reset16.inc | 2 +- src/cpu/x86/16bit/reset16.ld | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/src/cpu/x86/16bit/entry16.inc b/src/cpu/x86/16bit/entry16.inc index abaf671..be5b730 100644 --- a/src/cpu/x86/16bit/entry16.inc +++ b/src/cpu/x86/16bit/entry16.inc @@ -29,10 +29,10 @@
#include <arch/rom_segs.h> .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 ebc3d4c..d99f0b1 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 1730992..d96755e 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 . : {