[coreboot-gerrit] New patch to review for coreboot: soc/intel/apollolake: clarify meaning of LPDDR4 density meaning
Aaron Durbin (adurbin@chromium.org)
gerrit at coreboot.org
Thu Jul 21 17:22:32 CEST 2016
Aaron Durbin (adurbin at chromium.org) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/15773
-gerrit
commit 8b7f407de34eb5735d1c0c0f5a112e37c764d237
Author: Aaron Durbin <adurbin at chromium.org>
Date: Thu Jul 21 10:20:58 2016 -0500
soc/intel/apollolake: clarify meaning of LPDDR4 density meaning
The 'dram density' is a misnomer because the memory initialization
code treats that input parameter as a per rank density. Therefore,
update the variables to further clarify how it's actually being
used.
BUG=chrome-os-partner:55446
Change-Id: Ie4c944f35b531812205ac0bb1c70f39ac401495e
Signed-off-by: Aaron Durbin <adurbin at chromium.org>
---
src/mainboard/google/reef/romstage.c | 20 ++++++++++----------
src/soc/intel/apollolake/include/soc/meminit.h | 6 +++---
src/soc/intel/apollolake/meminit.c | 25 ++++++++++++-------------
3 files changed, 25 insertions(+), 26 deletions(-)
diff --git a/src/mainboard/google/reef/romstage.c b/src/mainboard/google/reef/romstage.c
index 8fbfb2f..7bb73d0 100644
--- a/src/mainboard/google/reef/romstage.c
+++ b/src/mainboard/google/reef/romstage.c
@@ -78,16 +78,16 @@ static const struct lpddr4_sku skus[] = {
*/
[0] = {
.speed = LP4_SPEED_2400,
- .ch0_density = LP4_8Gb_DENSITY,
- .ch1_density = LP4_8Gb_DENSITY,
+ .ch0_rank_density = LP4_8Gb_DENSITY,
+ .ch1_rank_density = LP4_8Gb_DENSITY,
.ch0_dual_rank = 1,
.ch1_dual_rank = 1,
},
/* K4F8E304HB-MGCJ - both logical channels */
[1] = {
.speed = LP4_SPEED_2400,
- .ch0_density = LP4_8Gb_DENSITY,
- .ch1_density = LP4_8Gb_DENSITY,
+ .ch0_rank_density = LP4_8Gb_DENSITY,
+ .ch1_rank_density = LP4_8Gb_DENSITY,
},
/*
* MT53B512M32D2NP-062WT:C - both logical channels. While the parts
@@ -96,22 +96,22 @@ static const struct lpddr4_sku skus[] = {
*/
[2] = {
.speed = LP4_SPEED_2400,
- .ch0_density = LP4_8Gb_DENSITY,
- .ch1_density = LP4_8Gb_DENSITY,
+ .ch0_rank_density = LP4_8Gb_DENSITY,
+ .ch1_rank_density = LP4_8Gb_DENSITY,
.ch0_dual_rank = 1,
.ch1_dual_rank = 1,
/* MT53B256M32D1NP-062 WT:C - both logical channels */
},
[3] = {
.speed = LP4_SPEED_2400,
- .ch0_density = LP4_8Gb_DENSITY,
- .ch1_density = LP4_8Gb_DENSITY,
+ .ch0_rank_density = LP4_8Gb_DENSITY,
+ .ch1_rank_density = LP4_8Gb_DENSITY,
},
/* K4F8E304HB-MGCH - both logical channels */
[PROTO_SKU] = {
.speed = LP4_SPEED_2400,
- .ch0_density = LP4_8Gb_DENSITY,
- .ch1_density = LP4_8Gb_DENSITY,
+ .ch0_rank_density = LP4_8Gb_DENSITY,
+ .ch1_rank_density = LP4_8Gb_DENSITY,
},
};
diff --git a/src/soc/intel/apollolake/include/soc/meminit.h b/src/soc/intel/apollolake/include/soc/meminit.h
index b619b95..a7da1ac 100644
--- a/src/soc/intel/apollolake/include/soc/meminit.h
+++ b/src/soc/intel/apollolake/include/soc/meminit.h
@@ -92,13 +92,13 @@ void meminit_lpddr4(struct FSP_M_CONFIG *cfg, int speed);
* to the memory reference code.
*/
void meminit_lpddr4_enable_channel(struct FSP_M_CONFIG *cfg, int logical_chan,
- int device_density, int dual_rank,
+ int rank_density, int dual_rank,
const struct lpddr4_swizzle_cfg *scfg);
struct lpddr4_sku {
int speed;
- int ch0_density;
- int ch1_density;
+ int ch0_rank_density;
+ int ch1_rank_density;
int ch0_dual_rank;
int ch1_dual_rank;
};
diff --git a/src/soc/intel/apollolake/meminit.c b/src/soc/intel/apollolake/meminit.c
index 41eb601..300b146 100644
--- a/src/soc/intel/apollolake/meminit.c
+++ b/src/soc/intel/apollolake/meminit.c
@@ -105,7 +105,7 @@ void meminit_lpddr4(struct FSP_M_CONFIG *cfg, int speed)
}
static void enable_logical_chan0(struct FSP_M_CONFIG *cfg,
- int device_density, int dual_rank,
+ int rank_density, int dual_rank,
const struct lpddr4_swizzle_cfg *scfg)
{
const struct lpddr4_chan_swizzle_cfg *chan;
@@ -118,8 +118,8 @@ static void enable_logical_chan0(struct FSP_M_CONFIG *cfg,
* Physical channel 0 is comprised of the CH0_DQB signals.
* Physical channel 1 is comprised of the CH0_DQA signals.
*/
- cfg->Ch0_DramDensity = device_density;
- cfg->Ch1_DramDensity = device_density;
+ cfg->Ch0_DramDensity = rank_density;
+ cfg->Ch1_DramDensity = rank_density;
/* Enable ranks on both channels depending on dual rank option. */
rank_mask = dual_rank ? 0x3 : 0x1;
cfg->Ch0_RankEnable = rank_mask;
@@ -150,7 +150,7 @@ static void enable_logical_chan0(struct FSP_M_CONFIG *cfg,
}
static void enable_logical_chan1(struct FSP_M_CONFIG *cfg,
- int device_density, int dual_rank,
+ int rank_density, int dual_rank,
const struct lpddr4_swizzle_cfg *scfg)
{
const struct lpddr4_chan_swizzle_cfg *chan;
@@ -163,8 +163,8 @@ static void enable_logical_chan1(struct FSP_M_CONFIG *cfg,
* Physical channel 2 is comprised of the CH1_DQB signals.
* Physical channel 3 is comprised of the CH1_DQA signals.
*/
- cfg->Ch2_DramDensity = device_density;
- cfg->Ch3_DramDensity = device_density;
+ cfg->Ch2_DramDensity = rank_density;
+ cfg->Ch3_DramDensity = rank_density;
/* Enable ranks on both channels depending on dual rank option. */
rank_mask = dual_rank ? 0x3 : 0x1;
cfg->Ch2_RankEnable = rank_mask;
@@ -195,22 +195,21 @@ static void enable_logical_chan1(struct FSP_M_CONFIG *cfg,
}
void meminit_lpddr4_enable_channel(struct FSP_M_CONFIG *cfg, int logical_chan,
- int device_density, int dual_rank,
+ int rank_density, int dual_rank,
const struct lpddr4_swizzle_cfg *scfg)
{
- if (device_density < LP4_8Gb_DENSITY ||
- device_density > LP4_16Gb_DENSITY) {
- printk(BIOS_ERR, "Invalid LPDDR4 density: %d\n",
- device_density);
+ if (rank_density < LP4_8Gb_DENSITY ||
+ rank_density > LP4_16Gb_DENSITY) {
+ printk(BIOS_ERR, "Invalid LPDDR4 density: %d\n", rank_density);
return;
}
switch (logical_chan) {
case LP4_LCH0:
- enable_logical_chan0(cfg, device_density, dual_rank, scfg);
+ enable_logical_chan0(cfg, rank_density, dual_rank, scfg);
break;
case LP4_LCH1:
- enable_logical_chan1(cfg, device_density, dual_rank, scfg);
+ enable_logical_chan1(cfg, rank_density, dual_rank, scfg);
break;
default:
printk(BIOS_ERR, "Invalid logical channel: %d\n", logical_chan);
More information about the coreboot-gerrit
mailing list