soc/mediatek: Obtain LPDDR type from trained memory info
Add lpddr_type to ddr_base_info struct to obtain LPDDR type from trained memory info. BUG=b:357743097 TEST=build pass Change-Id: I73c9014784cc4872826d721f3fab9ed1c5255f31 Signed-off-by: Crystal Guo <crystal.guo@mediatek.corp-partner.google.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/85033 Reviewed-by: Yidi Lin <yidilin@google.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Yu-Ping Wu <yupingso@google.com>
This commit is contained in:
parent
b8724cd9a5
commit
a356d234f8
3 changed files with 9 additions and 2 deletions
|
|
@ -92,7 +92,8 @@ enum SDRAM_VOLTAGE_TYPE {
|
|||
struct ddr_base_info {
|
||||
u32 config_dvfs; /* SDRAM_DVFS_FLAG */
|
||||
struct sdram_info sdram;
|
||||
u32 voltage_type; /* SDRAM_VOLTAGE_TYPE */
|
||||
u16 lpddr_type;
|
||||
u16 voltage_type; /* SDRAM_VOLTAGE_TYPE */
|
||||
u32 support_ranks;
|
||||
u64 rank_size[RANK_MAX];
|
||||
struct emi_mdl emi_config;
|
||||
|
|
|
|||
|
|
@ -16,5 +16,6 @@ bool is_dvfs_enabled(void);
|
|||
u32 get_ddr_geometry(void);
|
||||
u32 get_ddr_type(void);
|
||||
void init_dram_by_params(struct dramc_param *dparam);
|
||||
enum mem_chip_type map_to_lpddr_dram_type(uint16_t lpddr_type);
|
||||
|
||||
#endif /* SOC_MEDIATEK_COMMON_EMI_H */
|
||||
|
|
|
|||
|
|
@ -106,6 +106,11 @@ size_t mtk_dram_size(void)
|
|||
return size;
|
||||
}
|
||||
|
||||
__weak enum mem_chip_type map_to_lpddr_dram_type(uint16_t lpddr_type)
|
||||
{
|
||||
return MEM_CHIP_LPDDR4X;
|
||||
}
|
||||
|
||||
static void fill_dram_info(struct mem_chip_info *mc, const struct ddr_base_info *ddr)
|
||||
{
|
||||
unsigned int c, r;
|
||||
|
|
@ -118,7 +123,7 @@ static void fill_dram_info(struct mem_chip_info *mc, const struct ddr_base_info
|
|||
for (r = 0; r < ddr->mrr_info.rank_nums; r++) {
|
||||
entry->channel = c;
|
||||
entry->rank = r;
|
||||
entry->type = MEM_CHIP_LPDDR4X;
|
||||
entry->type = map_to_lpddr_dram_type(ddr->lpddr_type);
|
||||
entry->channel_io_width = DQ_DATA_WIDTH_LP4;
|
||||
entry->density_mbits = ddr->mrr_info.mr8_density[r] / CHANNEL_MAX /
|
||||
(MiB / 8);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue