summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/drivers/intel/fsp2_0/include/fsp/api.h2
-rw-r--r--src/drivers/intel/fsp2_0/memory_init.c9
-rw-r--r--src/drivers/intel/fsp2_0/silicon_init.c9
3 files changed, 20 insertions, 0 deletions
diff --git a/src/drivers/intel/fsp2_0/include/fsp/api.h b/src/drivers/intel/fsp2_0/include/fsp/api.h
index 68b84703ca..c035452e05 100644
--- a/src/drivers/intel/fsp2_0/include/fsp/api.h
+++ b/src/drivers/intel/fsp2_0/include/fsp/api.h
@@ -32,7 +32,9 @@ enum fsp_notify_phase {
};
/* Main FSP stages */
+void preload_fspm(void);
void fsp_memory_init(bool s3wake);
+void preload_fsps(void);
void fsp_silicon_init(void);
/*
diff --git a/src/drivers/intel/fsp2_0/memory_init.c b/src/drivers/intel/fsp2_0/memory_init.c
index 0c9fe97188..c1a7377ed5 100644
--- a/src/drivers/intel/fsp2_0/memory_init.c
+++ b/src/drivers/intel/fsp2_0/memory_init.c
@@ -340,6 +340,15 @@ static void *fspm_allocator(void *arg, size_t size, const union cbfs_mdata *unus
return (void *)fspm_begin;
}
+void preload_fspm(void)
+{
+ if (!CONFIG(CBFS_PRELOAD))
+ return;
+
+ printk(BIOS_DEBUG, "Preloading %s\n", CONFIG_FSP_M_CBFS);
+ cbfs_preload(CONFIG_FSP_M_CBFS);
+}
+
void fsp_memory_init(bool s3wake)
{
struct range_entry prog_ranges[2];
diff --git a/src/drivers/intel/fsp2_0/silicon_init.c b/src/drivers/intel/fsp2_0/silicon_init.c
index b3e60c25c3..83d44b140f 100644
--- a/src/drivers/intel/fsp2_0/silicon_init.c
+++ b/src/drivers/intel/fsp2_0/silicon_init.c
@@ -230,6 +230,15 @@ void fsps_load(void)
load_done = 1;
}
+void preload_fsps(void)
+{
+ if (!CONFIG(CBFS_PRELOAD))
+ return;
+
+ printk(BIOS_DEBUG, "Preloading %s\n", CONFIG_FSP_S_CBFS);
+ cbfs_preload(CONFIG_FSP_S_CBFS);
+}
+
void fsp_silicon_init(void)
{
timestamp_add_now(TS_FSP_SILICON_INIT_LOAD);