summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSrikanth Srinivasan <srikanth.srinivasan@freescale.com>2010-03-30 14:03:30 -0500
committerScott Sweeny <scott.sweeny@timesys.com>2010-09-29 17:32:30 -0400
commit04cbb96db06c5a1fba1a80d00f322b25ab656ede (patch)
treecb7d8c66909e156c550e62e0d75ba2253c970e6a
parent7ce9279b6b3d9edf67e44f4de1d04bf26ed409e1 (diff)
P1022DS: Enable ddr_sdram_cfg[hse] for the platform
This patch enables DDR_SDRAM_CFG[HSE] for P1022DS. This is needed mainly for higher frequencies but can be left on for < 800MHz DDR frequency. Disabled DDR_SDRAM_CFG[2T_EN] for 800MHz operation. Also added debug prints for additional ddr registers. Tested with the Hynix HMT125U7BFR8C-H9 and ELPIDA EBJ21EE8BAFA-DJ-E, passed at 667MT/s or 800MT/s. Tested-by: Jiang Yutang <B14898@freescale.com> Signed-off-by: Srikanth Srinivasan <srikanth.srinivasan@freescale.com>
-rw-r--r--board/freescale/p1022ds/ddr.c4
-rw-r--r--cpu/mpc8xxx/ddr/ctrl_regs.c3
2 files changed, 5 insertions, 2 deletions
diff --git a/board/freescale/p1022ds/ddr.c b/board/freescale/p1022ds/ddr.c
index 09421ff6d1..9b543eea49 100644
--- a/board/freescale/p1022ds/ddr.c
+++ b/board/freescale/p1022ds/ddr.c
@@ -66,7 +66,7 @@ const board_specific_parameters_t board_specific_parameters[][20] = {
{334, 400, 2, 5, 31, 3, 0},
{401, 549, 2, 5, 31, 3, 0},
{550, 680, 2, 5, 31, 5, 0},
- {681, 850, 2, 5, 31, 5, 1},
+ {681, 850, 2, 5, 31, 5, 0},
{ 0, 333, 1, 5, 31, 3, 0},
{334, 400, 1, 5, 31, 3, 0},
{401, 549, 1, 5, 31, 3, 0},
@@ -112,7 +112,7 @@ void fsl_ddr_board_options(memctl_options_t *popts,
* Factors to consider for half-strength driver enable:
* - number of DIMMs installed
*/
- popts->half_strength_driver_enable = 0;
+ popts->half_strength_driver_enable = 1;
/*
* For wake up arp feature, we need enable auto self refresh
diff --git a/cpu/mpc8xxx/ddr/ctrl_regs.c b/cpu/mpc8xxx/ddr/ctrl_regs.c
index 2505041450..0bfc3bff6d 100644
--- a/cpu/mpc8xxx/ddr/ctrl_regs.c
+++ b/cpu/mpc8xxx/ddr/ctrl_regs.c
@@ -906,6 +906,7 @@ static void set_ddr_sdram_clk_cntl(fsl_ddr_cfg_regs_t *ddr,
clk_adjust = popts->clk_adjust;
ddr->ddr_sdram_clk_cntl = (clk_adjust & 0xF) << 23;
+ debug("FSLDDR: sdram_clk_cntl = 0x%08x\n", ddr->ddr_sdram_clk_cntl);
}
/* DDR Initialization Address (DDR_INIT_ADDR) */
@@ -998,6 +999,7 @@ static void set_ddr_zq_cntl(fsl_ddr_cfg_regs_t *ddr, unsigned int zq_en)
| ((zqoper & 0xF) << 16)
| ((zqcs & 0xF) << 8)
);
+ debug("FSLDDR: ddr_zq_cntl = 0x%08x\n", ddr->ddr_zq_cntl);
}
/* DDR Write Leveling Control (DDR_WRLVL_CNTL) */
@@ -1057,6 +1059,7 @@ static void set_ddr_wrlvl_cntl(fsl_ddr_cfg_regs_t *ddr,
| ((wrlvl_wlr & 0x7) << 8)
| ((wrlvl_start & 0x1F) << 0)
);
+ debug("FSLDDR: wrlvl_cntl = 0x%08x\n", ddr->ddr_wrlvl_cntl);
}
/* DDR Self Refresh Counter (DDR_SR_CNTR) */