soc/intel/xeon_sp/cpx: Add get_ewl_hob() utility function

Change-Id: I8f949e9c881099c3723fca056e2c4732ca8b64cf
Signed-off-by: Johnny Lin <johnny_lin@wiwynn.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/69144
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Marc Jones <marc@marcjonesconsulting.com>
diff --git a/src/soc/intel/xeon_sp/cpx/Makefile.inc b/src/soc/intel/xeon_sp/cpx/Makefile.inc
index 0cd267b..7e18b92 100644
--- a/src/soc/intel/xeon_sp/cpx/Makefile.inc
+++ b/src/soc/intel/xeon_sp/cpx/Makefile.inc
@@ -5,7 +5,7 @@
 subdirs-y += ../../../../cpu/intel/turbo
 subdirs-y += ../../../../cpu/intel/microcode
 
-romstage-y += romstage.c ddr.c
+romstage-y += romstage.c ddr.c soc_util.c
 romstage-$(CONFIG_DISPLAY_UPD_DATA) += upd_display.c
 romstage-$(CONFIG_DISPLAY_HOBS) += hob_display.c
 
diff --git a/src/soc/intel/xeon_sp/cpx/include/soc/soc_util.h b/src/soc/intel/xeon_sp/cpx/include/soc/soc_util.h
index 5ce3928..c4e2a7d 100644
--- a/src/soc/intel/xeon_sp/cpx/include/soc/soc_util.h
+++ b/src/soc/intel/xeon_sp/cpx/include/soc/soc_util.h
@@ -5,11 +5,13 @@
 
 #include <hob_iiouds.h>
 #include <hob_memmap.h>
+#include <hob_enhancedwarningloglib.h>
 
 const struct SystemMemoryMapHob *get_system_memory_map(void);
 
 uint32_t get_socket_stack_busno(uint32_t socket, uint32_t stack);
 
 int soc_get_stack_for_port(int port);
+const EWL_PRIVATE_DATA *get_ewl_hob(void);
 
 #endif /* _SOC_UTIL_H_ */
diff --git a/src/soc/intel/xeon_sp/cpx/soc_util.c b/src/soc/intel/xeon_sp/cpx/soc_util.c
index cd1e06d..2a8b6c9 100644
--- a/src/soc/intel/xeon_sp/cpx/soc_util.c
+++ b/src/soc/intel/xeon_sp/cpx/soc_util.c
@@ -9,6 +9,20 @@
 #include <soc/soc_util.h>
 #include <soc/util.h>
 
+const EWL_PRIVATE_DATA *get_ewl_hob(void)
+{
+	size_t hob_size;
+	static const EWL_PRIVATE_DATA *hob;
+	const uint8_t ewl_id_hob_guid[16] = FSP_HOB_EWLID_GUID;
+
+	if (hob != NULL)
+		return hob;
+
+	hob = fsp_find_extension_hob_by_guid(ewl_id_hob_guid, &hob_size);
+	assert(hob != NULL && hob_size != 0);
+	return hob;
+}
+
 const struct SystemMemoryMapHob *get_system_memory_map(void)
 {
 	size_t hob_size;