summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/drivers/intel/fsp2_0/hand_off_block.c14
-rw-r--r--src/drivers/intel/fsp2_0/include/fsp/util.h5
2 files changed, 19 insertions, 0 deletions
diff --git a/src/drivers/intel/fsp2_0/hand_off_block.c b/src/drivers/intel/fsp2_0/hand_off_block.c
index f6af894877..08b2555855 100644
--- a/src/drivers/intel/fsp2_0/hand_off_block.c
+++ b/src/drivers/intel/fsp2_0/hand_off_block.c
@@ -250,6 +250,20 @@ const void *fsp_find_extension_hob_by_guid(const uint8_t *guid, size_t *size)
return NULL;
}
+const void *fsp_find_resource_hob_by_guid(const uint8_t *guid)
+{
+ const struct hob_header *hob_iterator;
+ const struct hob_resource *res_hob;
+
+ if (fsp_hob_iterator_init(&hob_iterator) != CB_SUCCESS)
+ return NULL;
+
+ if (fsp_hob_iterator_get_next_guid_resource(&hob_iterator, guid, &res_hob) == CB_SUCCESS)
+ return res_hob;
+
+ return NULL;
+}
+
static void display_fsp_version_info_hob(const void *hob)
{
#if CONFIG(DISPLAY_FSP_VERSION_INFO) || CONFIG(DISPLAY_FSP_VERSION_INFO_2)
diff --git a/src/drivers/intel/fsp2_0/include/fsp/util.h b/src/drivers/intel/fsp2_0/include/fsp/util.h
index 5ff5814642..f9b31e96bf 100644
--- a/src/drivers/intel/fsp2_0/include/fsp/util.h
+++ b/src/drivers/intel/fsp2_0/include/fsp/util.h
@@ -145,6 +145,11 @@ void fsp_verify_upd_header_signature(uint64_t upd_signature, uint64_t expected_s
void lb_string_platform_blob_version(struct lb_header *header);
void report_fspt_output(void);
void soc_validate_fspm_header(const struct fsp_header *hdr);
+/*
+ * This function finds the FSP resource HOB for the given GUID.
+ * Returns the pointer to the HOB if found, otherwise NULL
+ */
+const void *fsp_find_resource_hob_by_guid(const uint8_t *guid);
/* Fill in header and validate a loaded FSP component. */
enum cb_err fsp_validate_component(struct fsp_header *hdr, void *fsp_blob, size_t size);