mb/siemens/mc_ehl: Make DRAM population configurable
There can be mainboard variants, which are only equipped with half-populated DRAM. For this reason, the meminit parameter for populatation should be adjustable. The default setting remains at full-populated DRAM. At mainboard variant level a different selection via individual input paths can be made. Change-Id: I390bbfa680b5505bb2230fa0740720bd9dd1fafb Signed-off-by: Mario Scheithauer <mario.scheithauer@siemens.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/76244 Reviewed-by: Eric Lai <eric_lai@quanta.corp-partner.google.com> Reviewed-by: Jan Samek <jan.samek@siemens.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
parent
6aaa4f9198
commit
81fb981e8e
|
@ -10,6 +10,11 @@
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <types.h>
|
#include <types.h>
|
||||||
|
|
||||||
|
bool __weak half_populated(void)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
void mainboard_memory_init_params(FSPM_UPD *memupd)
|
void mainboard_memory_init_params(FSPM_UPD *memupd)
|
||||||
{
|
{
|
||||||
static struct spd_info spd_info;
|
static struct spd_info spd_info;
|
||||||
|
@ -29,7 +34,7 @@ void mainboard_memory_init_params(FSPM_UPD *memupd)
|
||||||
die("SPD in HW-Info not valid!\n");
|
die("SPD in HW-Info not valid!\n");
|
||||||
}
|
}
|
||||||
/* Initialize variant specific configurations */
|
/* Initialize variant specific configurations */
|
||||||
memcfg_init(&memupd->FspmConfig, board_cfg, &spd_info, false);
|
memcfg_init(&memupd->FspmConfig, board_cfg, &spd_info, half_populated());
|
||||||
|
|
||||||
/* Enable Row-Hammer prevention */
|
/* Enable Row-Hammer prevention */
|
||||||
memupd->FspmConfig.RhPrevention = 1;
|
memupd->FspmConfig.RhPrevention = 1;
|
||||||
|
|
|
@ -15,6 +15,9 @@ const struct pad_config *variant_early_gpio_table(size_t *num);
|
||||||
/* This function returns SPD related FSP-M mainboard configs */
|
/* This function returns SPD related FSP-M mainboard configs */
|
||||||
const struct mb_cfg *variant_memcfg_config(void);
|
const struct mb_cfg *variant_memcfg_config(void);
|
||||||
|
|
||||||
|
/* This function can select half-populate DRAM */
|
||||||
|
bool half_populated(void);
|
||||||
|
|
||||||
/* The following function performs board specific things. */
|
/* The following function performs board specific things. */
|
||||||
void variant_mainboard_final(void);
|
void variant_mainboard_final(void);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue