aboutsummaryrefslogtreecommitdiff
path: root/arch/x86/include/asm/u-boot-x86.h
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2019-04-25 21:58:42 -0600
committerBin Meng <bmeng.cn@gmail.com>2019-05-08 13:02:11 +0800
commitc0069e9a8a033a359a202e6252da228edab9b5af (patch)
tree62821d1267bcf4f496c2935e9670e9e27eddecff /arch/x86/include/asm/u-boot-x86.h
parent7b140238800533b334a160bf94c2901c98bc1550 (diff)
downloadu-boot-c0069e9a8a033a359a202e6252da228edab9b5af.zip
u-boot-c0069e9a8a033a359a202e6252da228edab9b5af.tar.gz
u-boot-c0069e9a8a033a359a202e6252da228edab9b5af.tar.bz2
x86: Add a way to reinit the cpu
We cannot init the CPU fully both than once during a boot. Add a new function which can be called to figure out the CPU identity, but which does not change anything. For x86_64, this is empty for now. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Diffstat (limited to 'arch/x86/include/asm/u-boot-x86.h')
-rw-r--r--arch/x86/include/asm/u-boot-x86.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/arch/x86/include/asm/u-boot-x86.h b/arch/x86/include/asm/u-boot-x86.h
index 670fcdc..c252192 100644
--- a/arch/x86/include/asm/u-boot-x86.h
+++ b/arch/x86/include/asm/u-boot-x86.h
@@ -13,7 +13,27 @@ extern char gdt_rom[];
/* cpu/.../cpu.c */
int arch_cpu_init(void);
+
+/**
+ * x86_cpu_init_f() - Set up basic features of the x86 CPU
+ *
+ * 0 on success, -ve on error
+ */
int x86_cpu_init_f(void);
+
+/**
+ * x86_cpu_reinit_f() - Set up the CPU a second time
+ *
+ * Once cpu_init_f() has been called (e.g. in SPL) we should not call it
+ * again (e.g. in U-Boot proper) since it sets up the state from scratch.
+ * Call this function in later phases of U-Boot instead. It reads the CPU
+ * identify so that CPU functions can be used correctly, but does not change
+ * anything.
+ *
+ * @return 0 (indicating success, to mimic cpu_init_f())
+ */
+int x86_cpu_reinit_f(void);
+
int cpu_init_f(void);
void setup_gdt(struct global_data *id, u64 *gdt_addr);
/*