coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
|
#include <assert.h>
#include <console/console.h>
#include <intelblocks/meminit.h>
#include <commonlib/region.h>
#include <spd_bin.h>
#include <spd_cache.h>
#include <string.h>
#include <types.h>
Go to the source code of this file.
Macros | |
#define | CH_DIMM_OFFSET(ch, dimm) ((ch) * CONFIG_DIMMS_PER_CHANNEL + (dimm)) |
Functions | |
_Static_assert (CONFIG_MRC_CHANNEL_WIDTH > 0, "MRC channel width must be >0!") | |
_Static_assert (CONFIG_DATA_BUS_WIDTH > 0, "Data bus width must be >0!") | |
_Static_assert (CONFIG_DIMMS_PER_CHANNEL > 0, "DIMMS per channel must be >0!") | |
static enum channel_population | populated_mask_to_flag (uint32_t pop_mask, size_t max_channels) |
static void | read_spd_md (const struct soc_mem_cfg *soc_mem_cfg, const struct mem_spd *info, bool half_populated, struct mem_channel_data *channel_data, size_t *spd_len) |
static bool | read_spd_dimm (FSPM_UPD *memupd, const struct soc_mem_cfg *soc_mem_cfg, const struct mem_spd *info, bool half_populated, struct mem_channel_data *channel_data, size_t *spd_len) |
void | mem_populate_channel_data (FSPM_UPD *memupd, const struct soc_mem_cfg *soc_mem_cfg, const struct mem_spd *spd_info, bool half_populated, struct mem_channel_data *data) |
_Static_assert | ( | CONFIG_DIMMS_PER_CHANNEL | , |
0 | , | ||
"DIMMS per channel must | be, | ||
0!" | |||
) |
_Static_assert | ( | CONFIG_MRC_CHANNEL_WIDTH | , |
0 | , | ||
"MRC channel width must | be, | ||
0!" | |||
) |
Referenced by mem_init_dq_upds(), mem_init_dqs_upds(), and read_spd_md().
void mem_populate_channel_data | ( | FSPM_UPD * | memupd, |
const struct soc_mem_cfg * | soc_mem_cfg, | ||
const struct mem_spd * | spd_info, | ||
bool | half_populated, | ||
struct mem_channel_data * | data | ||
) |
Definition at line 187 of file meminit.c.
References mem_channel_data::ch_population_flags, die(), MEM_TOPO_DIMM_MODULE, MEM_TOPO_MEMORY_DOWN, memset(), NO_CHANNEL_POPULATED, read_spd_dimm(), read_spd_md(), and mem_channel_data::spd_len.
Referenced by memcfg_init().
|
static |
Definition at line 14 of file meminit.c.
Referenced by read_spd_dimm(), and read_spd_md().
|
static |
Definition at line 98 of file meminit.c.
References spd_block::addr_map, BIOS_ERR, BIOS_INFO, BIOS_WARNING, BIT, CB_ERR, CB_SUCCESS, ch, CH_DIMM_OFFSET, mem_channel_data::ch_population_flags, check_if_dimm_changed(), CONFIG, FSP_BOOT_WITH_FULL_CONFIGURATION, get_spd_smbus(), info, spd_block::len, load_spd_cache(), MEM_TOPO_DIMM_MODULE, NULL, soc_mem_cfg::num_phys_channels, soc_mem_cfg::phys_to_mrc_map, populated_mask_to_flag(), print_spd_info(), printk, mem_channel_data::spd, spd_block::spd_array, spd_cache_is_valid(), spd_data, spd_fill_from_cache(), and update_spd_cache().
Referenced by mem_populate_channel_data().
|
static |
Definition at line 38 of file meminit.c.
References _Static_assert(), BIOS_DEBUG, BIT, ch, mem_channel_data::ch_population_flags, CONFIG, die(), soc_mem_cfg::half_channel, info, soc_mem_cfg::md_phy_masks, MEM_TOPO_MEMORY_DOWN, MEM_TOPO_MIXED, soc_mem_cfg::mixed_topo, soc_mem_cfg::num_phys_channels, soc_mem_cfg::phys_to_mrc_map, populated_mask_to_flag(), print_spd_info(), printk, mem_channel_data::spd, spd_cbfs_map(), and spd_data.
Referenced by mem_populate_channel_data().