coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
hob_display.c
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 
3 #include <console/console.h>
4 #include <fsp/util.h>
5 #include <lib.h>
6 #include <soc/hob_mem.h>
7 
9  0xa7, 0x3a, 0x7c, 0x9c, 0x32, 0x55, 0x17, 0x49,
10  0x82, 0xb9, 0x56, 0xa5, 0xf3, 0xe6, 0x2a, 0x07
11 };
12 
14  0x2e, 0x49, 0xad, 0x26, 0x51, 0xf9, 0x43, 0x4e,
15  0xbc, 0x72, 0x22, 0x76, 0x58, 0xb1, 0xf6, 0x23
16 };
17 
19  0x7b, 0xf0, 0x97, 0x78, 0xda, 0x0c, 0xe3, 0x40,
20  0xb4, 0xe4, 0x51, 0x5f, 0x47, 0x3b, 0x04, 0xb6
21 };
22 
23 struct guid_name_map {
24  const void *guid;
25  const char *name;
26 };
27 
28 static const struct guid_name_map guid_names[] = {
30  "FSP_HOB_RESOURCE_OWNER_GRAPHICS_GUID" },
32  "FSP_HOB_RESOURCE_OWNER_FIAMUX_GUID" },
34  "FSP_HOB_FAST_BOOT_CHECKER_GUID" },
35 };
36 
38  const struct hob_header *hob)
39 {
40  return NULL;
41 }
42 
43 const char *soc_get_guid_name(const uint8_t *guid)
44 {
45  size_t index;
46 
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;
51 
52  return NULL;
53 }
54 
55 void soc_display_hob(const struct hob_header *hob)
56 {
57  hexdump(hob, hob->length);
58 }
59 
61  const FSP_SMBIOS_MEMORY_INFO *memory_info_hob)
62 {
63  int channel, dimm;
64  const DIMM_INFO *dimm_info;
65  const CHANNEL_INFO *channel_info;
66 
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;
82  channel++) {
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;
90  dimm++) {
91  dimm_info = &channel_info->DimmInfo[dimm];
92  printk(BIOS_DEBUG, " DIMM %d\n", dimm);
93  printk(BIOS_DEBUG, " 0x%02x: DimmId\n",
94  dimm_info->DimmId);
95  printk(BIOS_DEBUG, " %d: SizeInMb\n",
96  dimm_info->SizeInMb);
97  printk(BIOS_DEBUG, " 0x%04x: MfgId\n",
98  dimm_info->MfgId);
99  printk(BIOS_DEBUG, "%*.*s: ModulePartNum\n",
100  (int)sizeof(dimm_info->ModulePartNum),
101  (int)sizeof(dimm_info->ModulePartNum),
102  dimm_info->ModulePartNum);
103  }
104  }
105 }
const char * name
Definition: mmu.c:92
#define ARRAY_SIZE(a)
Definition: helpers.h:12
#define printk(level,...)
Definition: stdlib.h:16
__weak void soc_display_hob(const struct hob_header *hob)
Definition: hob_display.c:208
__weak const char * soc_get_guid_name(const uint8_t *guid)
Definition: hob_display.c:169
__weak const char * soc_get_hob_type_name(const struct hob_header *hob)
Definition: hob_display.c:150
bool fsp_guid_compare(const uint8_t guid1[16], const uint8_t guid2[16])
void hexdump(const void *memory, size_t length)
Definition: hexdump.c:7
#define BIOS_DEBUG
BIOS_DEBUG - Verbose output.
Definition: loglevel.h:128
struct dimm_info_st dimm_info
static const uint8_t fsp_hob_resource_owner_fiamux_guid[16]
Definition: hob_display.c:13
static const uint8_t fsp_hob_fast_boot_checker_guid[16]
Definition: hob_display.c:18
static const uint8_t fsp_hob_resource_owner_graphics_guid[16]
Definition: hob_display.c:8
static const struct guid_name_map guid_names[]
Definition: hob_display.c:28
void soc_display_fsp_smbios_memory_info_hob(const FSP_SMBIOS_MEMORY_INFO *memory_info_hob)
Definition: hob_display.c:60
#define NULL
Definition: stddef.h:19
unsigned char uint8_t
Definition: stdint.h:8
If this table is filled and put in CBMEM, then these info in CBMEM will be used to generate smbios ty...
Definition: memory_info.h:19
const void * guid
Definition: hob_display.c:66
const char * name
Definition: hob_display.c:67
uint16_t length
Definition: util.h:28