On 09/02/2015 09:42 AM, Joakim Tjernlund wrote: > On Wed, 2015-09-02 at 09:34 -0500, York Sun wrote: >> >> On 09/02/2015 09:31 AM, Joakim Tjernlund wrote: >>> On Wed, 2015-09-02 at 08:35 -0500, York Sun wrote: >>>> >>>> On 09/02/2015 06:41 AM, Joakim Tjernlund wrote: >>>>> T1040 RM specifies CLK_ADJUST as 5 bits starting at bit pos 9 >>>>> in DDR_DDR_SDRAM_CLK_CNTL, update code to match. >>>>> >>>>> Signed-off-by: Joakim Tjernlund <joakim.tjernl...@transmode.se> >>>>> --- >>>>> drivers/ddr/fsl/ctrl_regs.c | 2 +- >>>>> 1 file changed, 1 insertion(+), 1 deletion(-) >>>>> >>>>> diff --git a/drivers/ddr/fsl/ctrl_regs.c b/drivers/ddr/fsl/ctrl_regs.c >>>>> index 3919257..57077e1 100644 >>>>> --- a/drivers/ddr/fsl/ctrl_regs.c >>>>> +++ b/drivers/ddr/fsl/ctrl_regs.c >>>>> @@ -1756,7 +1756,7 @@ static void >>>>> set_ddr_sdram_clk_cntl(fsl_ddr_cfg_regs_t *ddr, >>>>> clk_adjust = popts->clk_adjust; >>>>> ddr->ddr_sdram_clk_cntl = (0 >>>>> | ((ss_en & 0x1) << 31) >>>>> - | ((clk_adjust & 0xF) << 23) >>>>> + | ((clk_adjust & 0x1F) << 22) >>>>> ); >>>>> debug("FSLDDR: clk_cntl = 0x%08x\n", ddr->ddr_sdram_clk_cntl); >>>>> } >>>>> >>>> >>>> NACK. This is logically correct but it needs to consider all DDR >>>> controllers. >>>> Older controllers don't have the same bits for this field. So far we don't >>>> have >>>> to use this this fine granularity on clock adjustment. >>> >>> I have no idea what older controllers do with these bits so I leave it to >>> you to find out. >>> >>> Anyhow, current code is broken as the programmed value is doubled(we see >>> this on our board >>> which cannot boot linux without this fix) >> >> Jocke, >> >> Can you refer to Freescale board? You may be using correct clk_adjust value >> on > Custom board based on T1042RDB > >> your board. But when you use this driver, you may have to adjust the value by >> shifting 1 bit. You will lose some values but we haven't found it difficult. >> This value is important but can also tolerate a wide range. > > Sure, but how should anyone know that beforehand? The clk_adjust was > calculated using > Freescales CW tool and added to table with the write lvl data. > > Are the values for the T104x boards already compensated like you suggest? > Then they will (possibly) break when this bug is fixed.
Jocke, I understand the frustration for having tools disconnected. The CW tool gives:file you a suggestion but you have to put it in u-boot differently. Freescale boards including T104x have correct values, for example board/freescale/t104xrdb/ddr.h. I don't consider it a bug for backward compatibility. York _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot