- Add new cvs code to cvs
[coreboot.git] / src / cpu / x86 / 16bit / reset16.inc
1         .section ".reset"
2         .code16
3 .globl  reset_vector
4 reset_vector:
5 #if _ROMBASE >= 0xffff0000
6         /* jmp _start */
7         .byte  0xe9
8         .int   _start - ( . + 2 )
9         /* Note: The above jump is hand coded to work around bugs in binutils.
10          * 5 byte are used for a 3 byte instruction.  This works because x86
11          * is little endian and allows us to use supported 32bit relocations
12          * instead of the weird 16 bit relocations that binutils does not
13          * handle consistenly between versions because they are used so rarely.
14          */
15 #else
16 # error _ROMBASE is an unsupported value
17 #endif
18         . = 0x8;
19         .code32
20         jmp     protected_start
21         .previous