coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
romstage_fsp_params.c
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #include <baseboard/variants.h>
4 #include <soc/meminit.h>
5 #include <soc/romstage.h>
6 #include "board_id.h"
7 
8 void mainboard_memory_init_params(FSPM_UPD *memupd)
9 {
10  static struct spd_info jslrvp_spd_info;
13 
14  /* TODO: Read the resistor strap to get number of memory segments */
15  bool half_populated = false;
16 
17  /* Check board id and fill correct parameters to upd */
18  if (board_id == jsl_ddr4) {
19  /* Initialize spd information for DDR4 board */
20  jslrvp_spd_info.read_type = READ_SMBUS;
21  jslrvp_spd_info.spd_spec.spd_smbus_address[0] = 0xA0;
22  jslrvp_spd_info.spd_spec.spd_smbus_address[1] = 0xA2;
23  jslrvp_spd_info.spd_spec.spd_smbus_address[2] = 0xA4;
24  jslrvp_spd_info.spd_spec.spd_smbus_address[3] = 0xA6;
25 
26  } else if (board_id == jsl_lpddr4) {
27  /* Initialize spd information for LPDDR4 board */
28  jslrvp_spd_info.read_type = READ_SPD_CBFS;
29  jslrvp_spd_info.spd_spec.spd_index = 0x00;
30  }
31 
32  /* Initialize variant specific configurations */
33  memcfg_init(&memupd->FspmConfig, board_cfg, &jslrvp_spd_info, half_populated);
34 }
void memcfg_init(FSPM_UPD *memupd, const struct mb_cfg *mb_cfg, const struct mem_spd *spd_info, bool half_populated)
Definition: meminit.c:238
@ READ_SMBUS
@ READ_SPD_CBFS
uint32_t board_id(void)
board_id() - Get the board version
Definition: ec_boardid.c:6
const struct mb_cfg * variant_memcfg_config(void)
Definition: memory.c:46
void mainboard_memory_init_params(FSPM_UPD *memupd)
@ jsl_ddr4
Definition: variants.h:11
@ jsl_lpddr4
Definition: variants.h:12
static uint8_t get_board_id(void)
Definition: boardid.c:14
static const struct mb_cfg board_cfg
Definition: romstage.c:8
unsigned char uint8_t
Definition: stdint.h:8
Definition: meminit.h:71
Definition: spd.h:11
union spd_info::spd_data_by spd_spec
enum mem_info_read_type read_type