12 #define HOB_HEADER_LEN 8
16 0x56, 0x4f, 0xff, 0x73, 0x8e, 0xaa, 0x51, 0x44,
17 0xb3, 0x16, 0x36, 0x35, 0x36, 0x67, 0xad, 0x44,
21 0x59, 0x97, 0xa7, 0x69, 0x73, 0x13, 0x67, 0x43,
22 0xa6, 0xc4, 0xc7, 0xf5, 0x9e, 0xfd, 0x98, 0x6e,
26 0x8f, 0x78, 0x66, 0x48, 0xa8, 0x6b, 0xd8, 0x47,
27 0x83, 0x6, 0xac, 0xf7, 0x7f, 0x55, 0x10, 0x46
31 0x02, 0xcf, 0x1a, 0x72, 0x77, 0x4d, 0x2a, 0x4c,
32 0xb3, 0xdc, 0x27, 0x0b, 0x7b, 0xa9, 0xe4, 0xb0
36 0x2e, 0x72, 0x8e, 0x79, 0xb2, 0x15, 0x13, 0x4e,
37 0x8a, 0xe9, 0x6b, 0xa3, 0x0f, 0xf7, 0xf1, 0x67
46 return !
memcmp(guid1, guid2, 16);
56 hob_walker.hob = parent;
57 hob_walker.addr += parent->
length;
58 return hob_walker.hob;
65 const void *hob_descr;
69 hob_walker.hob_hdr = hob;
71 return hob_walker.hob_descr;
78 const void *hob_descr;
82 hob_walker.hob_hdr = hob;
84 return hob_walker.hob_descr;
102 const void *hob_list;
104 if (cbmem_loc ==
NULL)
105 die(
"Error: Could not add cbmem area for hob list.\n");
108 die(
"Error: Could not locate hob list pointer.\n");
160 id[8],
id[9],
id[10],
id[11],
id[12],
id[13],
id[14],
id[15]);
188 die(
"9.1: FSP_RESERVED_MEMORY_RESOURCE_HOB missing!\n");
217 #if CONFIG(DISPLAY_FSP_VERSION_INFO) || CONFIG(DISPLAY_FSP_VERSION_INFO_2)
219 int index, cnt, tcount;
222 #if CONFIG(DISPLAY_FSP_VERSION_INFO)
223 const FIRMWARE_VERSION_INFO *fvi;
224 const FIRMWARE_VERSION_INFO_HOB *fvih =
225 (FIRMWARE_VERSION_INFO_HOB *)hob;
227 fvi = (
void *)&fvih[1];
229 (fvih->Count *
sizeof(FIRMWARE_VERSION_INFO)));
230 tcount = fvih->Count;
231 #elif CONFIG(DISPLAY_FSP_VERSION_INFO_2)
234 hobstart +=
sizeof(EFI_HOB_GUID_TYPE);
236 const SMBIOS_TABLE_TYPE_OEM_INTEL_FVI *stfvi =
237 (SMBIOS_TABLE_TYPE_OEM_INTEL_FVI *)hobstart;
238 const INTEL_FIRMWARE_VERSION_INFO *fvi;
240 str_ptr = ((
char *) &(stfvi->Fvi[0])) +
241 (stfvi->Count *
sizeof(INTEL_FIRMWARE_VERSION_INFO));
242 tcount = stfvi->Count;
243 fvi = &stfvi->Fvi[0];
246 for (index = 0; index < tcount; index++) {
249 #if CONFIG(DISPLAY_FSP_VERSION_INFO)
250 vs = fvi[index].VersionStringIndex;
251 #elif CONFIG(DISPLAY_FSP_VERSION_INFO_2)
252 vs = fvi[index].VersionString;
255 if (fvi[index].Version.MajorVersion == 0xFF &&
256 fvi[index].Version.MinorVersion == 0xFF &&
257 fvi[index].Version.Revision == 0xFF &&
258 fvi[index].Version.BuildNumber == 0xFF &&
260 str_ptr = (
char *)((
uintptr_t)str_ptr + cnt +
274 fvi[index].Version.MajorVersion,
275 fvi[index].Version.MinorVersion,
276 fvi[index].Version.Revision,
277 fvi[index].Version.BuildNumber);
279 str_ptr = (
char *)((
uintptr_t)str_ptr + cnt +
284 str_ptr = (
char *)((
uintptr_t)str_ptr + cnt +
314 if (
CONFIG(PLATFORM_USES_FSP2_3)) {
330 die(
"9.3: FSP_BOOTLOADER_TOLUM_HOB missing!\n");
static uint16_t read16(const void *addr)
static uint32_t read32(const void *addr)
void * cbmem_add(u32 id, u64 size)
void * cbmem_find(u32 id)
#define CBMEM_ID_FSP_RUNTIME
#define printk(level,...)
void __noreturn die(const char *fmt,...)
@ HOB_TYPE_RESOURCE_DESCRIPTOR
@ HOB_TYPE_GUID_EXTENSION
@ HOB_TYPE_END_OF_HOB_LIST
void fsp_find_reserved_memory(struct range_entry *re)
const void * fsp_get_hob_list(void)
const uint8_t fsp_nv_storage_guid_2[16]
void fsp_display_fvi_version_hob(void)
const uint8_t fsp_reserved_memory_guid[16]
const void * fsp_find_extension_hob_by_guid(const uint8_t *guid, size_t *size)
void fsp_print_guid(const void *base)
const void * fsp_find_nv_storage_data(size_t *size)
void * fsp_get_hob_list_ptr(void)
const uint8_t fsp_nv_storage_guid[16]
static const void * hob_header_to_struct(const struct hob_header *hob)
static void save_hob_list(int is_recovery)
const struct hob_resource * fsp_hob_header_to_resource(const struct hob_header *hob)
const uint8_t fsp_bootloader_tolum_guid[16]
int fsp_find_range_hob(struct range_entry *re, const uint8_t guid[16])
static void * fsp_hob_list_ptr
static const struct hob_resource * find_resource_hob_by_guid(const struct hob_header *hob, const uint8_t guid[16])
const struct hob_header * fsp_next_hob(const struct hob_header *parent)
bool fsp_guid_compare(const uint8_t guid1[16], const uint8_t guid2[16])
static const uint8_t uuid_fv_info[16]
void fsp_find_bootloader_tolum(struct range_entry *re)
static const void * hob_header_to_extension_hob(const struct hob_header *hob)
ROMSTAGE_CBMEM_INIT_HOOK(save_hob_list)
static void display_fsp_version_info_hob(const void *hob)
#define BIOS_DEBUG
BIOS_DEBUG - Verbose output.
#define BIOS_SPEW
BIOS_SPEW - Excessively verbose output.
static void range_entry_init(struct range_entry *re, resource_t incl_begin, resource_t excl_end, unsigned long tag)
int memcmp(const void *s1, const void *s2, size_t n)
size_t strlen(const char *src)