blob: 8dba3c836f208bb46efb7938fc39a4fa6d6ac39b [file] [log] [blame]
Eric Biedermanfcd5ace2004-10-14 19:29:29 +00001 .section ".reset"
2 .code16
3.globl reset_vector
4reset_vector:
Stefan Reinauerdeda9972012-04-03 16:09:46 -07005 wbinvd
Eric Biedermanfcd5ace2004-10-14 19:29:29 +00006 .byte 0xe9
7 .int _start - ( . + 2 )
8 /* Note: The above jump is hand coded to work around bugs in binutils.
9 * 5 byte are used for a 3 byte instruction. This works because x86
10 * is little endian and allows us to use supported 32bit relocations
11 * instead of the weird 16 bit relocations that binutils does not
12 * handle consistenly between versions because they are used so rarely.
13 */
Eric Biedermanfcd5ace2004-10-14 19:29:29 +000014 . = 0x8;
15 .code32
16 jmp protected_start
17 .previous