aboutsummaryrefslogtreecommitdiff
path: root/arch/x86/cpu/start64.S
diff options
context:
space:
mode:
authorSimon Glass2017-01-16 07:03:48 -0700
committerBin Meng2017-02-06 11:38:46 +0800
commitdca9220c355612beeb5b78ff1c4be54d626fbb5b (patch)
treea08e209898c0fb4ef2a696444e25828273adc3ad /arch/x86/cpu/start64.S
parent987116f7f6432f07bcfbbaf5cff6c62503edad1e (diff)
x86: Add 64-bit start-up code
Add code to start up U-Boot in 64-bit mode. It is fairly simple since we are running from RAM and SPL has done the low-level init. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Diffstat (limited to 'arch/x86/cpu/start64.S')
-rw-r--r--arch/x86/cpu/start64.S28
1 files changed, 28 insertions, 0 deletions
diff --git a/arch/x86/cpu/start64.S b/arch/x86/cpu/start64.S
new file mode 100644
index 00000000000..651f16ac89c
--- /dev/null
+++ b/arch/x86/cpu/start64.S
@@ -0,0 +1,28 @@
+/*
+ * 64-bit x86 Startup Code
+ *
+ * (C) Copyright 216 Google, Inc
+ * Written by Simon Glass <sjg@chromium.org>
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#include <config.h>
+
+.section .text
+.code64
+.globl _start
+.type _start, @function
+_start:
+ /* Set up memory using the existing stack */
+ mov %rsp, %rdi
+ call board_init_f_alloc_reserve
+ mov %rax, %rsp
+
+ call board_init_f_init_reserve
+
+ call board_init_f
+ call board_init_f_r
+
+ /* Should not return here */
+ jmp .