coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
romstage.c
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 
3 #include <baseboard/variants.h>
5 #include <fsp/soc_binding.h>
6 #include <fw_config.h>
7 #include <gpio.h>
8 #include <memory_info.h>
9 #include <soc/gpio.h>
10 #include <soc/meminit.h>
11 #include <soc/romstage.h>
12 #include <variant/gpio.h>
13 
14 void mainboard_memory_init_params(FSPM_UPD *mupd)
15 {
16  const struct mb_cfg *board_cfg = variant_memory_params();
17  const struct mem_spd spd_info = {
18  .topo = MEM_TOPO_MEMORY_DOWN,
19  .cbfs_index = variant_memory_sku(),
20  };
21  bool half_populated = gpio_get(GPIO_MEM_CH_SEL);
22 
23  memcfg_init(mupd, board_cfg, &spd_info, half_populated);
24  memcfg_variant_init(mupd);
25 }
26 
27 void __weak memcfg_variant_init(FSPM_UPD *mupd)
28 {
29 }
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
@ MEM_TOPO_MEMORY_DOWN
Definition: meminit.h:25
int gpio_get(gpio_t gpio)
Definition: gpio.c:166
void mainboard_memory_init_params(FSPM_UPD *mupd)
Definition: romstage.c:22
const struct mb_cfg *__weak variant_memory_params(void)
Definition: memory.c:67
int __weak variant_memory_sku(void)
Definition: memory.c:74
#define GPIO_MEM_CH_SEL
Definition: gpio.h:30
void __weak memcfg_variant_init(FSPM_UPD *mupd)
Definition: romstage.c:27
static const struct mb_cfg board_cfg
Definition: romstage.c:8
const struct smm_save_state_ops *legacy_ops __weak
Definition: save_state.c:8
Definition: meminit.h:71
Definition: spd.h:11