Martin Roth | 6add44b | 2017-02-09 17:51:20 -0800 | [diff] [blame] | 1 | /* |
| 2 | * This file is part of the coreboot project. |
| 3 | * |
| 4 | * This program is free software; you can redistribute it and/or modify |
| 5 | * it under the terms of the GNU General Public License as published by |
| 6 | * the Free Software Foundation; version 2 of the License. |
| 7 | * |
| 8 | * This program is distributed in the hope that it will be useful, |
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 11 | * GNU General Public License for more details. |
| 12 | */ |
| 13 | |
Aaron Durbin | 0fd068b | 2016-03-02 14:55:32 -0600 | [diff] [blame] | 14 | .section ".reset", "ax", %progbits |
Eric Biederman | fcd5ace | 2004-10-14 19:29:29 +0000 | [diff] [blame] | 15 | .code16 |
Aaron Durbin | 4330a9c | 2016-03-02 15:13:12 -0600 | [diff] [blame] | 16 | .globl _start |
| 17 | _start: |
Eric Biederman | fcd5ace | 2004-10-14 19:29:29 +0000 | [diff] [blame] | 18 | .byte 0xe9 |
Aaron Durbin | f8468d4 | 2016-03-02 14:47:37 -0600 | [diff] [blame] | 19 | .int _start16bit - ( . + 2 ) |
Eric Biederman | fcd5ace | 2004-10-14 19:29:29 +0000 | [diff] [blame] | 20 | /* Note: The above jump is hand coded to work around bugs in binutils. |
| 21 | * 5 byte are used for a 3 byte instruction. This works because x86 |
| 22 | * is little endian and allows us to use supported 32bit relocations |
| 23 | * instead of the weird 16 bit relocations that binutils does not |
Martin Roth | 6a3d0bf | 2017-04-04 14:20:33 -0600 | [diff] [blame] | 24 | * handle consistently between versions because they are used so rarely. |
Eric Biederman | fcd5ace | 2004-10-14 19:29:29 +0000 | [diff] [blame] | 25 | */ |
Eric Biederman | fcd5ace | 2004-10-14 19:29:29 +0000 | [diff] [blame] | 26 | .previous |