1 /* SPDX-License-Identifier: GPL-2.0-or-later */
3 #include <console/console.h>
6 #include <soc/hob_mem.h>
8 static const uint8_t fsp_hob_resource_owner_graphics_guid
[16] = {
9 0xa7, 0x3a, 0x7c, 0x9c, 0x32, 0x55, 0x17, 0x49,
10 0x82, 0xb9, 0x56, 0xa5, 0xf3, 0xe6, 0x2a, 0x07
13 static const uint8_t fsp_hob_resource_owner_fiamux_guid
[16] = {
14 0x2e, 0x49, 0xad, 0x26, 0x51, 0xf9, 0x43, 0x4e,
15 0xbc, 0x72, 0x22, 0x76, 0x58, 0xb1, 0xf6, 0x23
18 static const uint8_t fsp_hob_fast_boot_checker_guid
[16] = {
19 0x7b, 0xf0, 0x97, 0x78, 0xda, 0x0c, 0xe3, 0x40,
20 0xb4, 0xe4, 0x51, 0x5f, 0x47, 0x3b, 0x04, 0xb6
23 struct guid_name_map
{
28 static const struct guid_name_map guid_names
[] = {
29 { fsp_hob_resource_owner_graphics_guid
,
30 "FSP_HOB_RESOURCE_OWNER_GRAPHICS_GUID" },
31 { fsp_hob_resource_owner_fiamux_guid
,
32 "FSP_HOB_RESOURCE_OWNER_FIAMUX_GUID" },
33 { fsp_hob_fast_boot_checker_guid
,
34 "FSP_HOB_FAST_BOOT_CHECKER_GUID" },
37 const char *soc_get_hob_type_name(
38 const struct hob_header
*hob
)
43 const char *soc_get_guid_name(const uint8_t *guid
)
47 /* Compare the GUID values in this module */
48 for (index
= 0; index
< ARRAY_SIZE(guid_names
); index
++)
49 if (fsp_guid_compare(guid
, guid_names
[index
].guid
))
50 return guid_names
[index
].name
;
55 void soc_display_hob(const struct hob_header
*hob
)
57 hexdump(hob
, hob
->length
);
60 void soc_display_fsp_smbios_memory_info_hob(
61 const FSP_SMBIOS_MEMORY_INFO
*memory_info_hob
)
64 const DIMM_INFO
*dimm_info
;
65 const CHANNEL_INFO
*channel_info
;
67 /* Display the data in the FSP_SMBIOS_MEMORY_INFO HOB */
68 printk(BIOS_DEBUG
, "FSP_SMBIOS_MEMORY_INFO HOB\n");
69 printk(BIOS_DEBUG
, " 0x%02x: Revision\n",
70 memory_info_hob
->Revision
);
71 printk(BIOS_DEBUG
, " 0x%02x: MemoryType\n",
72 memory_info_hob
->MemoryType
);
73 printk(BIOS_DEBUG
, " %d: MemoryFrequencyInMHz\n",
74 memory_info_hob
->MemoryFrequencyInMHz
);
75 printk(BIOS_DEBUG
, " %d: DataWidth in bits\n",
76 memory_info_hob
->DataWidth
);
77 printk(BIOS_DEBUG
, " 0x%02x: ErrorCorrectionType\n",
78 memory_info_hob
->ErrorCorrectionType
);
79 printk(BIOS_DEBUG
, " 0x%02x: ChannelCount\n",
80 memory_info_hob
->ChannelCount
);
81 for (channel
= 0; channel
< memory_info_hob
->ChannelCount
;
83 channel_info
= &memory_info_hob
->ChannelInfo
[channel
];
84 printk(BIOS_DEBUG
, " Channel %d\n", channel
);
85 printk(BIOS_DEBUG
, " 0x%02x: ChannelId\n",
86 channel_info
->ChannelId
);
87 printk(BIOS_DEBUG
, " 0x%02x: DimmCount\n",
88 channel_info
->DimmCount
);
89 for (dimm
= 0; dimm
< channel_info
->DimmCount
;
91 dimm_info
= &channel_info
->DimmInfo
[dimm
];
92 printk(BIOS_DEBUG
, " DIMM %d\n", dimm
);
93 printk(BIOS_DEBUG
, " 0x%02x: DimmId\n",
95 printk(BIOS_DEBUG
, " %d: SizeInMb\n",
97 printk(BIOS_DEBUG
, " 0x%04x: MfgId\n",
99 printk(BIOS_DEBUG
, "%*.*s: ModulePartNum\n",
100 (int)sizeof(dimm_info
->ModulePartNum
),
101 (int)sizeof(dimm_info
->ModulePartNum
),
102 dimm_info
->ModulePartNum
);