Convert this to use events instead of calling a function directly in the
init sequence.

Rename it to arch_fsp_init_f() to distinguish it from the one that happens
after relocation.

For FSPv2 nothing needs to be done here, so drop the empty function.

Signed-off-by: Simon Glass <s...@chromium.org>
---

 arch/x86/lib/fsp1/fsp_common.c |  1 +
 arch/x86/lib/fsp2/fsp_common.c |  5 -----
 common/board_f.c               |  4 +---
 common/event.c                 |  1 +
 include/event.h                |  9 +++++++++
 include/init.h                 | 11 -----------
 6 files changed, 12 insertions(+), 19 deletions(-)

diff --git a/arch/x86/lib/fsp1/fsp_common.c b/arch/x86/lib/fsp1/fsp_common.c
index 20926171822d..df18f4767562 100644
--- a/arch/x86/lib/fsp1/fsp_common.c
+++ b/arch/x86/lib/fsp1/fsp_common.c
@@ -101,3 +101,4 @@ int arch_fsp_init(void)
 
        return 0;
 }
+EVENT_SPY_SIMPLE(EVT_FSP_INIT_F, arch_fsp_init);
diff --git a/arch/x86/lib/fsp2/fsp_common.c b/arch/x86/lib/fsp2/fsp_common.c
index 20c3f6406adf..d802a86967d5 100644
--- a/arch/x86/lib/fsp2/fsp_common.c
+++ b/arch/x86/lib/fsp2/fsp_common.c
@@ -8,11 +8,6 @@
 #include <init.h>
 #include <asm/fsp/fsp_support.h>
 
-int arch_fsp_init(void)
-{
-       return 0;
-}
-
 void board_final_cleanup(void)
 {
        u32 status;
diff --git a/common/board_f.c b/common/board_f.c
index a485ba62fa17..46008bac6595 100644
--- a/common/board_f.c
+++ b/common/board_f.c
@@ -855,9 +855,7 @@ static const init_fnc_t init_sequence_f[] = {
 #if defined(CONFIG_CONSOLE_RECORD_INIT_F)
        console_record_init,
 #endif
-#if defined(CONFIG_HAVE_FSP)
-       arch_fsp_init,
-#endif
+       INITCALL_EVENT(EVT_FSP_INIT_F),
        arch_cpu_init,          /* basic arch cpu dependent setup */
        mach_cpu_init,          /* SoC/machine dependent CPU setup */
        initf_dm,
diff --git a/common/event.c b/common/event.c
index 55f6932ef62c..8a6190888845 100644
--- a/common/event.c
+++ b/common/event.c
@@ -35,6 +35,7 @@ const char *const type_name[] = {
 
        /* init hooks */
        "misc_init_f",
+       "fsp_init_r",
 
        /* Fpga load hook */
        "fpga_load",
diff --git a/include/event.h b/include/event.h
index b2cfd65c9f8b..85269aa317aa 100644
--- a/include/event.h
+++ b/include/event.h
@@ -32,6 +32,15 @@ enum event_t {
        /* Init hooks */
        EVT_MISC_INIT_F,
 
+       /*
+        * Emitted before relocation to set up Firmware Support Package
+        *
+        * Where U-Boot relies on binary blobs to handle part of the system
+        * init, this event can be used to set up the blobs. This is used on
+        * some Intel platforms
+        */
+       EVT_FSP_INIT_F,
+
        /* Fpga load hook */
        EVT_FPGA_LOAD,
 
diff --git a/include/init.h b/include/init.h
index 3bf30476a2e0..1bf76e4eff72 100644
--- a/include/init.h
+++ b/include/init.h
@@ -57,17 +57,6 @@ int arch_cpu_init(void);
  */
 int mach_cpu_init(void);
 
-/**
- * arch_fsp_init() - perform 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(void);
-
 /**
  * arch_fsp_init() - perform post-relocation firmware support package init
  *
-- 
2.42.0.rc1.204.g551eb34607-goog

Reply via email to