coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
meminit.h File Reference
#include <stddef.h>
#include <stdint.h>
#include <fsp/soc_binding.h>
Include dependency graph for meminit.h:

Go to the source code of this file.

Data Structures

struct  lpddr4_chan_swizzle_cfg
 
struct  lpddr4_swizzle_cfg
 
struct  lpddr4_sku
 
struct  lpddr4_cfg
 

Enumerations

enum  {
  LP4_PHYS_CH0A , LP4_PHYS_CH0B , LP4_PHYS_CH1A , LP4_PHYS_CH1B ,
  LP4_NUM_PHYS_CHANNELS
}
 
enum  { LP4_LCH0 , LP4_LCH1 }
 
enum  {
  LP4_DQS0 , LP4_DQS1 , LP4_DQS2 , LP4_DQS3 ,
  LP4_NUM_BYTE_LANES , DQ_BITS_PER_DQS = 8
}
 
enum  { LP4_SPEED_1600 = 1600 , LP4_SPEED_2133 = 2133 , LP4_SPEED_2400 = 2400 }
 
enum  {
  LP4_4Gb_DENSITY = 4 , LP4_6Gb_DENSITY = 6 , LP4_8Gb_DENSITY = 8 , LP4_12Gb_DENSITY = 12 ,
  LP4_16Gb_DENSITY = 16
}
 
enum  { ODT_A_B_HIGH_LOW = 0 << 1 , ODT_A_B_HIGH_HIGH = 1 << 1 , nWR_24 = 1 << 5 }
 

Functions

void meminit_lpddr4 (FSP_M_CONFIG *cfg, int speed)
 
void meminit_lpddr4_enable_channel (FSP_M_CONFIG *cfg, int logical_chan, int rank_density_gb, int dual_rank, const struct lpddr4_swizzle_cfg *scfg)
 
void meminit_lpddr4_by_sku (FSP_M_CONFIG *cfg, const struct lpddr4_cfg *lpcfg, size_t sku_id)
 
void save_lpddr4_dimm_info (const struct lpddr4_cfg *lpcfg, size_t mem_sku)
 
void save_lpddr4_dimm_info_part_num (const char *dram_part_num)
 
size_t memory_in_system_in_mib (void)
 
size_t iohole_in_mib (void)
 

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
LP4_PHYS_CH0A 
LP4_PHYS_CH0B 
LP4_PHYS_CH1A 
LP4_PHYS_CH1B 
LP4_NUM_PHYS_CHANNELS 

Definition at line 17 of file meminit.h.

◆ anonymous enum

anonymous enum
Enumerator
LP4_LCH0 
LP4_LCH1 

Definition at line 26 of file meminit.h.

◆ anonymous enum

anonymous enum
Enumerator
LP4_DQS0 
LP4_DQS1 
LP4_DQS2 
LP4_DQS3 
LP4_NUM_BYTE_LANES 
DQ_BITS_PER_DQS 

Definition at line 36 of file meminit.h.

◆ anonymous enum

anonymous enum
Enumerator
LP4_SPEED_1600 
LP4_SPEED_2133 
LP4_SPEED_2400 

Definition at line 45 of file meminit.h.

◆ anonymous enum

anonymous enum
Enumerator
LP4_4Gb_DENSITY 
LP4_6Gb_DENSITY 
LP4_8Gb_DENSITY 
LP4_12Gb_DENSITY 
LP4_16Gb_DENSITY 

Definition at line 53 of file meminit.h.

◆ anonymous enum

anonymous enum
Enumerator
ODT_A_B_HIGH_LOW 
ODT_A_B_HIGH_HIGH 
nWR_24 

Definition at line 70 of file meminit.h.

Function Documentation

◆ iohole_in_mib()

size_t iohole_in_mib ( void  )

Definition at line 36 of file meminit.c.

References GiB, and MiB.

◆ meminit_lpddr4()

void meminit_lpddr4 ( FSP_M_CONFIG cfg,
int  speed 
)

Definition at line 174 of file meminit.c.

References BIOS_INFO, fsp_memory_profile(), printk, set_lpddr4_defaults(), and validate_speed().

Referenced by meminit_lpddr4_by_sku().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ meminit_lpddr4_by_sku()

void meminit_lpddr4_by_sku ( FSP_M_CONFIG cfg,
const struct lpddr4_cfg lpcfg,
size_t  sku_id 
)

Definition at line 315 of file meminit.c.

References BIOS_ERR, BIOS_INFO, LP4_LCH0, LP4_LCH1, meminit_lpddr4(), meminit_lpddr4_enable_channel(), lpddr4_cfg::num_skus, printk, sku, sku_id(), lpddr4_cfg::skus, and lpddr4_cfg::swizzle_config.

Referenced by mainboard_memory_init_params().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ meminit_lpddr4_enable_channel()

void meminit_lpddr4_enable_channel ( FSP_M_CONFIG cfg,
int  logical_chan,
int  rank_density_gb,
int  dual_rank,
const struct lpddr4_swizzle_cfg scfg 
)

Definition at line 274 of file meminit.c.

References accumulate_channel_memory(), BIOS_ERR, enable_logical_chan0(), enable_logical_chan1(), LP4_12Gb_DENSITY, LP4_16Gb_DENSITY, LP4_4Gb_DENSITY, LP4_6Gb_DENSITY, LP4_8Gb_DENSITY, LP4_LCH0, LP4_LCH1, and printk.

Referenced by meminit_lpddr4_by_sku().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ memory_in_system_in_mib()

size_t memory_in_system_in_mib ( void  )

Definition at line 12 of file meminit.c.

References memory_size_mib.

◆ save_lpddr4_dimm_info()

void save_lpddr4_dimm_info ( const struct lpddr4_cfg lpcfg,
size_t  mem_sku 
)

Definition at line 93 of file meminit_util_apl.c.

References BIOS_ERR, lp4cfg, NULL, lpddr4_cfg::num_skus, lpddr4_sku::part_num, printk, save_lpddr4_dimm_info_part_num(), and lpddr4_cfg::skus.

Referenced by mainboard_save_dimm_info(), and save_dimm_info_by_sku_config().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ save_lpddr4_dimm_info_part_num()

void save_lpddr4_dimm_info_part_num ( const char *  dram_part_num)