mb/intel/adlrvp: Add dq_pins_interleaved into 'struct mb_cfg'
List of changes: 1. Split mem_cfg for DDR4 and LPDDR4 as per board_id 2. Move dq_pins_interleaved into board-specific memory configuration information TEST=Able to build and boot DDR4 and LPDDR4 ADLRVP SKUs. Change-Id: I6ef19209767c810426bba0c8bc48178bf2e2a110 Signed-off-by: Subrata Banik <subrata.banik@intel.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/46873 Reviewed-by: Angel Pons <th3fanbus@gmail.com> Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
parent
68e597d81e
commit
b544fe48af
@ -51,12 +51,10 @@ void mainboard_memory_init_params(FSPM_UPD *mupd)
|
|||||||
switch (board_id) {
|
switch (board_id) {
|
||||||
case ADL_P_DDR4_1:
|
case ADL_P_DDR4_1:
|
||||||
case ADL_P_DDR4_2:
|
case ADL_P_DDR4_2:
|
||||||
mupd->FspmConfig.DqPinsInterleaved = 1;
|
|
||||||
memcfg_init(&mupd->FspmConfig, mem_config, &ddr4_spd_info, half_populated);
|
memcfg_init(&mupd->FspmConfig, mem_config, &ddr4_spd_info, half_populated);
|
||||||
break;
|
break;
|
||||||
case ADL_P_LP4_1:
|
case ADL_P_LP4_1:
|
||||||
case ADL_P_LP4_2:
|
case ADL_P_LP4_2:
|
||||||
mupd->FspmConfig.DqPinsInterleaved = 0;
|
|
||||||
memcfg_init(&mupd->FspmConfig, mem_config, &lpddr4_spd_info, half_populated);
|
memcfg_init(&mupd->FspmConfig, mem_config, &lpddr4_spd_info, half_populated);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -5,7 +5,21 @@
|
|||||||
#include <baseboard/variants.h>
|
#include <baseboard/variants.h>
|
||||||
#include <soc/romstage.h>
|
#include <soc/romstage.h>
|
||||||
|
|
||||||
static const struct mb_cfg mem_config = {
|
static const struct mb_cfg ddr4_mem_config = {
|
||||||
|
/* Baseboard uses only 100ohm Rcomp resistors */
|
||||||
|
.rcomp_resistor = {100, 100, 100},
|
||||||
|
|
||||||
|
/* Baseboard Rcomp target values */
|
||||||
|
.rcomp_targets = {40, 30, 33, 33, 30},
|
||||||
|
|
||||||
|
.dq_pins_interleaved = true,
|
||||||
|
|
||||||
|
.ect = true, /* Early Command Training */
|
||||||
|
|
||||||
|
.UserBd = BOARD_TYPE_MOBILE,
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct mb_cfg lpddr4_mem_config = {
|
||||||
/* DQ byte map */
|
/* DQ byte map */
|
||||||
.dq_map = {
|
.dq_map = {
|
||||||
{ 0, 2, 3, 1, 6, 7, 5, 4, /* Byte 0 */
|
{ 0, 2, 3, 1, 6, 7, 5, 4, /* Byte 0 */
|
||||||
@ -33,13 +47,7 @@ static const struct mb_cfg mem_config = {
|
|||||||
{ 0, 1 }, { 1, 0 }, { 1, 0 }, { 0, 1 }
|
{ 0, 1 }, { 1, 0 }, { 1, 0 }, { 0, 1 }
|
||||||
},
|
},
|
||||||
|
|
||||||
/* Baseboard uses only 100ohm Rcomp resistors */
|
.dq_pins_interleaved = false,
|
||||||
.rcomp_resistor = {100, 100, 100},
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Baseboard Rcomp target values.
|
|
||||||
*/
|
|
||||||
.rcomp_targets = {40, 30, 33, 33, 30},
|
|
||||||
|
|
||||||
.ect = true, /* Early Command Training */
|
.ect = true, /* Early Command Training */
|
||||||
|
|
||||||
@ -48,5 +56,12 @@ static const struct mb_cfg mem_config = {
|
|||||||
|
|
||||||
const struct mb_cfg *variant_memory_params(void)
|
const struct mb_cfg *variant_memory_params(void)
|
||||||
{
|
{
|
||||||
return &mem_config;
|
int board_id = get_board_id();
|
||||||
|
|
||||||
|
if (board_id == ADL_P_LP4_1 || board_id == ADL_P_LP4_2)
|
||||||
|
return &lpddr4_mem_config;
|
||||||
|
else if (board_id == ADL_P_DDR4_1 || board_id == ADL_P_DDR4_2)
|
||||||
|
return &ddr4_mem_config;
|
||||||
|
|
||||||
|
die("unsupported board id : 0x%x\n", board_id);
|
||||||
}
|
}
|
||||||
|
@ -76,6 +76,12 @@ struct mb_cfg {
|
|||||||
/* Rcomp target values. */
|
/* Rcomp target values. */
|
||||||
uint16_t rcomp_targets[5];
|
uint16_t rcomp_targets[5];
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Dqs Pins Interleaved Setting. Enable/Disable Control
|
||||||
|
* TRUE = enable, FALSE = disable
|
||||||
|
*/
|
||||||
|
bool dq_pins_interleaved;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Early Command Training Enable/Disable Control
|
* Early Command Training Enable/Disable Control
|
||||||
* TRUE = enable, FALSE = disable
|
* TRUE = enable, FALSE = disable
|
||||||
|
@ -180,4 +180,5 @@ void memcfg_init(FSP_M_CONFIG *mem_cfg,
|
|||||||
|
|
||||||
mem_cfg->ECT = board_cfg->ect;
|
mem_cfg->ECT = board_cfg->ect;
|
||||||
mem_cfg->UserBd = board_cfg->UserBd;
|
mem_cfg->UserBd = board_cfg->UserBd;
|
||||||
|
mem_cfg->DqPinsInterleaved = board_cfg->dq_pins_interleaved;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user