11 #include <soc/ramstage.h>
17 const CHANNEL_INFO *channel_info;
23 const FSP_SMBIOS_MEMORY_INFO *memory_info_hob;
28 if (memory_info_hob ==
NULL)
43 memset(mem_info, 0,
sizeof(*mem_info));
48 for (channel = 0; channel < memory_info_hob->ChannelCount; channel++) {
49 if (index >= dimm_max)
51 channel_info = &memory_info_hob->ChannelInfo[channel];
53 if (index >= dimm_max)
64 memory_info_hob->MemoryType;
66 memory_info_hob->MemoryFrequencyInMHz;
68 channel_info->ChannelId;
77 switch (memory_info_hob->DataWidth) {
116 int channel,
int dimm,
void * memset(void *dstpp, int c, size_t len)
void * cbmem_add(u32 id, u64 size)
#define printk(level,...)
void soc_save_dimm_info(void)
void mainboard_add_dimm_info(struct memory_info *mem_info, int channel, int dimm, int index)
static const FSP_SMBIOS_MEMORY_INFO * soc_get_fsp_smbios_memory_info_hob(void)
#define BIOS_DEBUG
BIOS_DEBUG - Verbose output.
struct dimm_info_st dimm_info
void soc_display_fsp_smbios_memory_info_hob(const FSP_SMBIOS_MEMORY_INFO *memory_info_hob)
char * strncpy(char *to, const char *from, int count)
If this table is filled and put in CBMEM, then these info in CBMEM will be used to generate smbios ty...
uint8_t module_part_number[DIMM_INFO_PART_NUMBER_SIZE]
struct dimm_info dimm[DIMM_INFO_TOTAL]