blob: a9993205c28b6900aa1251e2724c24726846971d [file] [log] [blame]
Martin Roth6add44b2017-02-09 17:51:20 -08001/*
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 Durbin0fd068b2016-03-02 14:55:32 -060014 .section ".reset", "ax", %progbits
Eric Biedermanfcd5ace2004-10-14 19:29:29 +000015 .code16
Aaron Durbin4330a9c2016-03-02 15:13:12 -060016.globl _start
17_start:
Eric Biedermanfcd5ace2004-10-14 19:29:29 +000018 .byte 0xe9
Aaron Durbinf8468d42016-03-02 14:47:37 -060019 .int _start16bit - ( . + 2 )
Eric Biedermanfcd5ace2004-10-14 19:29:29 +000020 /* 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 Roth6a3d0bf2017-04-04 14:20:33 -060024 * handle consistently between versions because they are used so rarely.
Eric Biedermanfcd5ace2004-10-14 19:29:29 +000025 */
Eric Biedermanfcd5ace2004-10-14 19:29:29 +000026 .previous