/* SPDX-License-Identifier: GPL-2.0-only */ /* This file is part of the coreboot project. */ #include #include #include #include #include #include #include void mainboard_memory_init_params(FSPM_UPD *memupd) { meminit_lpddr4_by_sku(&memupd->FspmConfig, variant_lpddr4_config(), variant_memory_sku()); } static void save_dimm_info_by_sku_config(void) { save_lpddr4_dimm_info(variant_lpddr4_config(), variant_memory_sku()); } void mainboard_save_dimm_info(void) { char part_num_store[DIMM_INFO_PART_NUMBER_SIZE]; const char *part_num = NULL; if (CONFIG(DRAM_PART_NUM_NOT_ALWAYS_IN_CBI)) { /* Fall back on part numbers encoded in lp4cfg array. */ if ((int)board_id() < CONFIG_DRAM_PART_IN_CBI_BOARD_ID_MIN) { save_dimm_info_by_sku_config(); return; } } if (google_chromeec_cbi_get_dram_part_num(&part_num_store[0], ARRAY_SIZE(part_num_store)) < 0) printk(BIOS_ERR, "ERROR: Couldn't obtain DRAM part number from CBI\n"); else part_num = &part_num_store[0]; save_lpddr4_dimm_info_part_num(part_num); }