aboutsummaryrefslogtreecommitdiff
path: root/src/cpu/x86/reset16.S
diff options
context:
space:
mode:
authorKyösti Mälkki <kyosti.malkki@gmail.com>2020-11-22 00:47:04 +0200
committerKyösti Mälkki <kyosti.malkki@gmail.com>2021-01-28 08:52:35 +0000
commit404c0c455c4f9ae3b1c40f8fbe8328349b6b547d (patch)
tree4ea2c45ea0163369482d48d26ac73acd0081e9cd /src/cpu/x86/reset16.S
parent0308313e07caf60ac77c416a448026c09351fe5d (diff)
cpu/x86: Link reset16.inc
Change-Id: If2caab67286cf77e37928e03be4f581070e771d8 Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/47968 Reviewed-by: Arthur Heymans <arthur@aheymans.xyz> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src/cpu/x86/reset16.S')
-rw-r--r--src/cpu/x86/reset16.S14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/cpu/x86/reset16.S b/src/cpu/x86/reset16.S
new file mode 100644
index 0000000000..38580146b4
--- /dev/null
+++ b/src/cpu/x86/reset16.S
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+ .section ".reset", "ax", %progbits
+ .code16
+.globl _start
+_start:
+ .byte 0xe9
+ .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
+ * instead of the weird 16 bit relocations that binutils does not
+ * handle consistently between versions because they are used so rarely.
+ */