From fe08d39d1b5fa908c89030a02482d7310bd58b35 Mon Sep 17 00:00:00 2001
From: Simon Glass <sjg@chromium.org>
Date: Fri, 6 Dec 2019 21:42:20 -0700
Subject: [PATCH] x86: fsp: Add a new arch_fsp_init_r() hook

With FSP2 we need to run silicon init early after relocation. Add a new
hook for this.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
---
 common/board_r.c |  3 +++
 include/init.h   | 11 +++++++++++
 2 files changed, 14 insertions(+)

diff --git a/common/board_r.c b/common/board_r.c
index 9a25f6ec28..e711de64b5 100644
--- a/common/board_r.c
+++ b/common/board_r.c
@@ -715,6 +715,9 @@ static init_fnc_t init_sequence_r[] = {
 	efi_memory_init,
 #endif
 	initr_binman,
+#ifdef CONFIG_FSP_VERSION2
+	arch_fsp_init_r,
+#endif
 	initr_dm_devices,
 	stdio_init_tables,
 	initr_serial,
diff --git a/include/init.h b/include/init.h
index 8b65b2afe4..970a39a6a0 100644
--- a/include/init.h
+++ b/include/init.h
@@ -67,6 +67,17 @@ int mach_cpu_init(void);
  */
 int arch_fsp_init(void);
 
+/**
+ * arch_fsp_init() - perform post-relocation firmware support package init
+ *
+ * Where U-Boot relies on binary blobs to handle part of the system init, this
+ * function can be used to set up the blobs. This is used on some Intel
+ * platforms.
+ *
+ * Return: 0
+ */
+int arch_fsp_init_r(void);
+
 int dram_init(void);
 
 /**
-- 
2.39.5