mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-27 17:41:34 +00:00
driver/ddr/fsl: Update MR5 RTT park
For four chip-selects enabled case, RTT is parked on all of them. Signed-off-by: York Sun <yorksun@freescale.com>
This commit is contained in:
parent
0fb7197436
commit
8a51429e00
1 changed files with 14 additions and 3 deletions
|
@ -1117,10 +1117,18 @@ static void set_ddr_sdram_mode_9(fsl_ddr_cfg_regs_t *ddr,
|
||||||
unsigned short esdmode4 = 0; /* Extended SDRAM mode 4 */
|
unsigned short esdmode4 = 0; /* Extended SDRAM mode 4 */
|
||||||
unsigned short esdmode5; /* Extended SDRAM mode 5 */
|
unsigned short esdmode5; /* Extended SDRAM mode 5 */
|
||||||
int rtt_park = 0;
|
int rtt_park = 0;
|
||||||
|
bool four_cs = false;
|
||||||
|
|
||||||
|
#if CONFIG_CHIP_SELECTS_PER_CTRL == 4
|
||||||
|
if ((ddr->cs[0].config & SDRAM_CS_CONFIG_EN) &&
|
||||||
|
(ddr->cs[1].config & SDRAM_CS_CONFIG_EN) &&
|
||||||
|
(ddr->cs[2].config & SDRAM_CS_CONFIG_EN) &&
|
||||||
|
(ddr->cs[3].config & SDRAM_CS_CONFIG_EN))
|
||||||
|
four_cs = true;
|
||||||
|
#endif
|
||||||
if (ddr->cs[0].config & SDRAM_CS_CONFIG_EN) {
|
if (ddr->cs[0].config & SDRAM_CS_CONFIG_EN) {
|
||||||
esdmode5 = 0x00000500; /* Data mask enable, RTT_PARK CS0 */
|
esdmode5 = 0x00000500; /* Data mask enable, RTT_PARK CS0 */
|
||||||
rtt_park = 1;
|
rtt_park = four_cs ? 0 : 1;
|
||||||
} else {
|
} else {
|
||||||
esdmode5 = 0x00000400; /* Data mask enabled */
|
esdmode5 = 0x00000400; /* Data mask enabled */
|
||||||
}
|
}
|
||||||
|
@ -1130,7 +1138,10 @@ static void set_ddr_sdram_mode_9(fsl_ddr_cfg_regs_t *ddr,
|
||||||
| ((esdmode5 & 0xffff) << 0)
|
| ((esdmode5 & 0xffff) << 0)
|
||||||
);
|
);
|
||||||
|
|
||||||
/* only mode_9 use 0x500, others use 0x400 */
|
/* Normally only the first enabled CS use 0x500, others use 0x400
|
||||||
|
* But when four chip-selects are all enabled, all mode registers
|
||||||
|
* need 0x500 to park.
|
||||||
|
*/
|
||||||
|
|
||||||
debug("FSLDDR: ddr_sdram_mode_9) = 0x%08x\n", ddr->ddr_sdram_mode_9);
|
debug("FSLDDR: ddr_sdram_mode_9) = 0x%08x\n", ddr->ddr_sdram_mode_9);
|
||||||
if (unq_mrs_en) { /* unique mode registers are supported */
|
if (unq_mrs_en) { /* unique mode registers are supported */
|
||||||
|
@ -1138,7 +1149,7 @@ static void set_ddr_sdram_mode_9(fsl_ddr_cfg_regs_t *ddr,
|
||||||
if (!rtt_park &&
|
if (!rtt_park &&
|
||||||
(ddr->cs[i].config & SDRAM_CS_CONFIG_EN)) {
|
(ddr->cs[i].config & SDRAM_CS_CONFIG_EN)) {
|
||||||
esdmode5 |= 0x00000500; /* RTT_PARK */
|
esdmode5 |= 0x00000500; /* RTT_PARK */
|
||||||
rtt_park = 1;
|
rtt_park = four_cs ? 0 : 1;
|
||||||
} else {
|
} else {
|
||||||
esdmode5 = 0x00000400;
|
esdmode5 = 0x00000400;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue