summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacky Bai <ping.bai@nxp.com>2020-04-13 17:44:50 +0800
committerJacky Bai <ping.bai@nxp.com>2020-05-09 16:03:54 +0800
commit728166d337af749524dfd74f9f4ef7b9673a2d0d (patch)
treec7ac1a71b34db4b2e9670ca850f92e9d61878c65
parent3432f444e283ccd83c7a28aa58ff1c5c67d5167f (diff)
MLK-23821-01 plat: imx8m: Correct the rank number get from mstr
the bitfield of active_ranks in MSTR is defined as below. Correct the rank num get in dram_info. 0x01: one rank; 0x11: two rank; Signed-off-by: Jacky Bai <ping.bai@nxp.com> Reviewed-by: Anson Huang <anson.huang@nxp.com> (cherry picked from commit bc9bc03f38fecbf5a2e4d938ed6f45fb3ec0b574)
-rw-r--r--plat/imx/imx8m/ddr/dram.c3
-rw-r--r--plat/imx/imx8m/include/dram.h2
2 files changed, 4 insertions, 1 deletions
diff --git a/plat/imx/imx8m/ddr/dram.c b/plat/imx/imx8m/ddr/dram.c
index f785d2a0..49385909 100644
--- a/plat/imx/imx8m/ddr/dram.c
+++ b/plat/imx/imx8m/ddr/dram.c
@@ -154,7 +154,8 @@ void dram_info_init(unsigned long dram_timing_base)
ddrc_mstr = mmio_read_32(DDRC_MSTR(0));
dram_info.dram_type = ddrc_mstr & DDR_TYPE_MASK;
- dram_info.num_rank = (ddrc_mstr >> 24) & ACTIVE_RANK_MASK;
+ dram_info.num_rank = ((ddrc_mstr >> 24) & ACTIVE_RANK_MASK) == 0x3 ?
+ DDRC_ACTIVE_TWO_RANK : DDRC_ACTIVE_ONE_RANK;
/* Get current fsp info */
current_fsp = mmio_read_32(DDRC_DFIMISC(0)) & 0xf;
diff --git a/plat/imx/imx8m/include/dram.h b/plat/imx/imx8m/include/dram.h
index c384cb1d..d221d27e 100644
--- a/plat/imx/imx8m/include/dram.h
+++ b/plat/imx/imx8m/include/dram.h
@@ -19,6 +19,8 @@
#define DDRC_DDR3L BIT(0)
#define DDR_TYPE_MASK U(0x3f)
#define ACTIVE_RANK_MASK U(0x3)
+#define DDRC_ACTIVE_ONE_RANK U(0x1)
+#define DDRC_ACTIVE_TWO_RANK U(0x2)
/* reg & config param */
struct dram_cfg_param {