From 04cbb96db06c5a1fba1a80d00f322b25ab656ede Mon Sep 17 00:00:00 2001 From: Srikanth Srinivasan Date: Tue, 30 Mar 2010 14:03:30 -0500 Subject: 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 Signed-off-by: Srikanth Srinivasan --- board/freescale/p1022ds/ddr.c | 4 ++-- cpu/mpc8xxx/ddr/ctrl_regs.c | 3 +++ 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) */ -- cgit v1.2.3