Browse Source

feat(nxp-ddr): add workaround for errata A050958

Set the receiver gain to max value to recover
cold temp marginality issue for phy-gen2

Signed-off-by: Pankit Garg <pankit.garg@nxp.com>
Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
Change-Id: If639fa3ed404cf6e1b8abcc2b7137db1fdd0b2c2
pull/1985/head
Pankit Garg 3 years ago
committed by Jiafei Pan
parent
commit
291adf521a
  1. 6
      drivers/nxp/ddr/nxp-ddr/ddr.mk
  2. 6
      drivers/nxp/ddr/phy-gen2/phy.c
  3. 3
      plat/nxp/common/soc_errata/errata.c

6
drivers/nxp/ddr/nxp-ddr/ddr.mk

@ -1,5 +1,5 @@
#
# Copyright 2021 NXP
# Copyright 2021-2022 NXP
#
# SPDX-License-Identifier: BSD-3-Clause
#
@ -19,6 +19,10 @@ ifeq (${ERRATA_DDR_A050450}, 1)
$(eval $(call add_define,ERRATA_DDR_A050450))
endif
ifeq (${ERRATA_DDR_A050958}, 1)
$(eval $(call add_define,ERRATA_DDR_A050958))
endif
endif
ifeq ($(PLAT_DDR_PHY), PHY_GEN1)

6
drivers/nxp/ddr/phy-gen2/phy.c

@ -1,5 +1,5 @@
/*
* Copyright 2021 NXP
* Copyright 2021-2022 NXP
* SPDX-License-Identifier: BSD-3-Clause
*
*/
@ -1673,6 +1673,10 @@ static void prog_dq_dqs_rcv_cntrl(uint16_t *phy,
int sel_analog_vref = 1;
uint32_t addr;
#ifdef ERRATA_DDR_A050958
gain_curr_adj_defval = 0x1f;
#endif
dq_dqs_rcv_cntrl = gain_curr_adj_defval << csr_gain_curr_adj_lsb |
major_mode_dbyte << csr_major_mode_dbyte_lsb |
dfe_ctrl_defval << csr_dfe_ctrl_lsb |

3
plat/nxp/common/soc_errata/errata.c

@ -38,4 +38,7 @@ void soc_errata(void)
#if ERRATA_DDR_A050450
INFO("SoC workaround for DDR Errata A050450 was applied\n");
#endif
#if ERRATA_DDR_A050958
INFO("SoC workaround for DDR Errata A050958 was applied\n");
#endif
}

Loading…
Cancel
Save