On Thu, 2015-11-05 at 09:42 -0800, York Sun wrote:
> 
> On 11/05/2015 01:55 AM, Joakim Tjernlund wrote:
> > On Thu, 2015-11-05 at 08:23 +0000, Yuantian Tang wrote:
> > > Hi Jocke,
> > > 
> > > we achieved deep sleep mode that did exactly what you asked for.
> > > If waken up from deep sleep, soc will resume from uboot and 
> > > re-initialized DDR controller with contents
> > > untouched.
> > > Please refer to drivers/ddr/fsl/fsl_ddr_gen4.c and look at DEEP_SLEEP 
> > > related code.
> > 
> > Looking at it now and it looks the same as for ddr3? Some questions though:
> >  289                if (is_warm_boot()) {
> >  289                 /* enter self-refresh */
> >  290                 temp_sdram_cfg = ddr_in32(&ddr->sdram_cfg_2);
> >  291                 temp_sdram_cfg |= SDRAM_CFG2_FRC_SR;
> >  292                 ddr_out32(&ddr->sdram_cfg_2, temp_sdram_cfg);
> > 
> > Why do you need to force SR here? The DDR RAM must already be in SR at this 
> > point?
> > I come from CPU reset state so my DDR controller has HW default values so
> > this does not feel safe.
> 
> This may be redundant. If the code runs to this line, it should come back 
> from a
> deep sleep. The core is in reset state but the DDR controller is not. It 
> should
> be in self-refresh mode. I will leave that to Yuantian to comment.

OK

> 
> > 
> >  293                 /* do board specific memory setup */
> >  294                 board_mem_sleep_setup();
> >  295 
> >  296                 temp_sdram_cfg = (ddr_in32(&ddr->sdram_cfg) | 
> > SDRAM_CFG_BI);
> > SDRAM_CFG_BI skips a lot(all?) init of DDR RAM. What if you want to change 
> > some DDR RAM
> > timing/config due to a bug? Then you would have to force a cold start.
> > 
> > Do you use ECC? Seems to be some issues with ECC if you skip D_INIT
> > 
> 
> To perform a warm start, the data in DDR is preserved. So you don't need to 
> init
> the data again for ECC. To preserve data, you cannot run D_INIT again, which
> will destroy the data for sure.

yes, but what about SDRAM_CFG_BI? Why do you need to set that here?
I much rather just skip D_INIT and reconfigure DDR RAM, just in case one wants
to correct some aspect of DDR config in later releases and feels a lot more 
robust.

Our systems cannot be coldstarted just because you upgrade SW on them.

 Jocke
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to