diff options
Diffstat (limited to 'drivers/ddr/fsl')
-rw-r--r-- | drivers/ddr/fsl/ctrl_regs.c | 25 | ||||
-rw-r--r-- | drivers/ddr/fsl/fsl_ddr_gen4.c | 6 |
2 files changed, 29 insertions, 2 deletions
diff --git a/drivers/ddr/fsl/ctrl_regs.c b/drivers/ddr/fsl/ctrl_regs.c index c0ee858..6501bb2 100644 --- a/drivers/ddr/fsl/ctrl_regs.c +++ b/drivers/ddr/fsl/ctrl_regs.c @@ -2097,7 +2097,28 @@ static void set_ddr_dq_mapping(fsl_ddr_cfg_regs_t *ddr, ((dimm_params[i].dq_mapping[2] & 0x3F) << 14) | ((dimm_params[i].dq_mapping[3] & 0x3F) << 8) | ((dimm_params[i].dq_mapping[4] & 0x3F) << 2); - + +#ifdef CONFIG_TARGET_QT1040_4GB +/* DQ mapping on the QT1040_4GB (DDR4) board */ + ddr->dq_map_1 = ((dimm_params[i].dq_mapping[ 5] & 0x3F) << 26) | + ((dimm_params[i].dq_mapping[ 6] & 0x3F) << 20) | + ((dimm_params[i].dq_mapping[ 7] & 0x3F) << 14) | + ((dimm_params[i].dq_mapping[ 8] & 0x3F) << 8) | + ((dimm_params[i].dq_mapping[ 9] & 0x3F) << 2); + + ddr->dq_map_2 = ((dimm_params[i].dq_mapping[10] & 0x3F) << 26) | + ((dimm_params[i].dq_mapping[11] & 0x3F) << 20) | + ((dimm_params[i].dq_mapping[12] & 0x3F) << 14) | + ((dimm_params[i].dq_mapping[13] & 0x3F) << 8) | + ((dimm_params[i].dq_mapping[14] & 0x3F) << 2); + + /* dq_map for ECC[4:7] is set to 0 if accumulated ECC is enabled */ + ddr->dq_map_3 = ((dimm_params[i].dq_mapping[15] & 0x3F) << 26) | + ((dimm_params[i].dq_mapping[16] & 0x3F) << 20) | + (acc_ecc_en ? 0 : + (dimm_params[i].dq_mapping[17] & 0x3F) << 14) | + dimm_params[i].dq_mapping_ors; +#else ddr->dq_map_1 = ((dimm_params[i].dq_mapping[5] & 0x3F) << 26) | ((dimm_params[i].dq_mapping[6] & 0x3F) << 20) | ((dimm_params[i].dq_mapping[7] & 0x3F) << 14) | @@ -2116,7 +2137,7 @@ static void set_ddr_dq_mapping(fsl_ddr_cfg_regs_t *ddr, (acc_ecc_en ? 0 : (dimm_params[i].dq_mapping[9] & 0x3F) << 14) | dimm_params[i].dq_mapping_ors; - +#endif debug("FSLDDR: dq_map_0 = 0x%08x\n", ddr->dq_map_0); debug("FSLDDR: dq_map_1 = 0x%08x\n", ddr->dq_map_1); debug("FSLDDR: dq_map_2 = 0x%08x\n", ddr->dq_map_2); diff --git a/drivers/ddr/fsl/fsl_ddr_gen4.c b/drivers/ddr/fsl/fsl_ddr_gen4.c index 3349fc5..3c03a42 100644 --- a/drivers/ddr/fsl/fsl_ddr_gen4.c +++ b/drivers/ddr/fsl/fsl_ddr_gen4.c @@ -18,7 +18,13 @@ #if defined(CONFIG_SYS_FSL_ERRATUM_A008511) | \ defined(CONFIG_SYS_FSL_ERRATUM_A009803) + +#ifdef CONFIG_TARGET_QT1040_4GB +/* Function used by QT1040_4GB (DDR4) board */ +void set_wait_for_bits_clear(void *ptr, u32 value, u32 bits) +#else static void set_wait_for_bits_clear(void *ptr, u32 value, u32 bits) +#endif { int timeout = 1000; |