[PATCH 12/14] x86: Convert arch_fsp_init() to use events
Simon Glass
sjg at chromium.org
Tue Aug 22 05:16:59 CEST 2023
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 <sjg at 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
More information about the U-Boot
mailing list