mirror of
https://github.com/u-boot/u-boot.git
synced 2025-05-09 03:21:51 +00:00
driver/ddr/fsl: Add workaround for erratum A-009801
The initial training for the DDRC may provide results that are not optimized. The workaround provides better read timing margins. Signed-off-by: Shengzhou Liu <Shengzhou.Liu@nxp.com> Reviewed-by: York Sun <york.sun@nxp.com>
This commit is contained in:
parent
4a68489e12
commit
5fc62fe570
3 changed files with 12 additions and 0 deletions
|
@ -134,6 +134,7 @@
|
||||||
#define CONFIG_SYS_FSL_ERRATUM_A008751
|
#define CONFIG_SYS_FSL_ERRATUM_A008751
|
||||||
#define CONFIG_SYS_FSL_ERRATUM_A009635
|
#define CONFIG_SYS_FSL_ERRATUM_A009635
|
||||||
#define CONFIG_SYS_FSL_ERRATUM_A009663
|
#define CONFIG_SYS_FSL_ERRATUM_A009663
|
||||||
|
#define CONFIG_SYS_FSL_ERRATUM_A009801
|
||||||
#define CONFIG_SYS_FSL_ERRATUM_A009803
|
#define CONFIG_SYS_FSL_ERRATUM_A009803
|
||||||
#define CONFIG_SYS_FSL_ERRATUM_A009942
|
#define CONFIG_SYS_FSL_ERRATUM_A009942
|
||||||
|
|
||||||
|
|
|
@ -251,6 +251,13 @@ void fsl_ddr_set_memctl_regs(const fsl_ddr_cfg_regs_t *regs,
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_SYS_FSL_ERRATUM_A009801
|
||||||
|
temp32 = ddr_in32(&ddr->debug[25]);
|
||||||
|
temp32 &= ~DDR_CAS_TO_PRE_SUB_MASK;
|
||||||
|
temp32 |= 9 << DDR_CAS_TO_PRE_SUB_SHIFT;
|
||||||
|
ddr_out32(&ddr->debug[25], temp32);
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_SYS_FSL_ERRATUM_A009942
|
#ifdef CONFIG_SYS_FSL_ERRATUM_A009942
|
||||||
ddr_freq = get_ddr_freq(ctrl_num) / 1000000;
|
ddr_freq = get_ddr_freq(ctrl_num) / 1000000;
|
||||||
tmp = ddr_in32(&ddr->debug[28]);
|
tmp = ddr_in32(&ddr->debug[28]);
|
||||||
|
|
|
@ -189,6 +189,10 @@ typedef struct ddr4_spd_eeprom_s generic_spd_eeprom_t;
|
||||||
#define DDR_MR5_CA_PARITY_LAT_4_CLK 0x1 /* for DDR4-1600/1866/2133 */
|
#define DDR_MR5_CA_PARITY_LAT_4_CLK 0x1 /* for DDR4-1600/1866/2133 */
|
||||||
#define DDR_MR5_CA_PARITY_LAT_5_CLK 0x2 /* for DDR4-2400 */
|
#define DDR_MR5_CA_PARITY_LAT_5_CLK 0x2 /* for DDR4-2400 */
|
||||||
|
|
||||||
|
/* DEBUG_26 register */
|
||||||
|
#define DDR_CAS_TO_PRE_SUB_MASK 0x0000f000 /* CAS to preamble subtract value */
|
||||||
|
#define DDR_CAS_TO_PRE_SUB_SHIFT 12
|
||||||
|
|
||||||
/* DEBUG_29 register */
|
/* DEBUG_29 register */
|
||||||
#define DDR_TX_BD_DIS (1 << 10) /* Transmit Bit Deskew Disable */
|
#define DDR_TX_BD_DIS (1 << 10) /* Transmit Bit Deskew Disable */
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue