Jeff,

That's correct that the refresh rate refers to the rate that the DDR controller 
will refresh the DDR.  In self-refresh mode the DDR is refreshing itself.

Brad

> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] On Behalf
> Of Jeff Cooper
> Sent: Wednesday, September 24, 2008 9:08 AM
> To: Sun, ChengHao
> Cc: davinci-linux-open-source@linux.davincidsp.com
> Subject: Re: Deep sleep on the DM355
> 
> Sun,
> 
> I actually didn't look at the patch that closely.  Since I was going to
> use it on a DM355 and not on a DM644x that it was originally written
> for, I just replaced the self-refresh code with what is correct for the
> DM355.
> 
> After reviewing it, I'd agree with you that there seems to be a bug, I
> don't think this will enter self refresh mode.  The SDRCR register is
> at  0x2000 000c on both the DM644x and the DM355.  So I don't see how
> this code ever worked.  The code I'm using to enter self-refresh on the
> DM355 looks like:
> 
>     /**
>      * Switch DDR to self-refresh mode.
>      */
>     enter_ddr_self_refresh:
>             ldr     r0, SDRCR_ADDR
>             ldr     r2, [r0]
> 
>             ldr     r1, SDRCR_SR_PD_MASK
>             bic     r2, r2, r1                      @ Clear the SR_PD bit
> 
>             ldr     r1, SDRCR_LPMODEN_MASK
>             orr     r2, r2, r1                      @ Set the LPMODEN bit
> 
>             str     r2, [r0]
> 
>             bx      lr                              @ return
> 
>     SDRCR_ADDR:             .word   DDR2_CTRL_VIRT + 0x0c
>     SDRCR_LPMODEN_MASK:             .word   0x80000000
>     SDRCR_MCLKSTOPEN_MASK:          .word   0x40000000
>     SDRCR_SR_PD_MASK:               .word   0x00800000
> 
> I don't believe that the Refresh Rate is used in self-refresh mode.  I
> think that the DDR chip itself is handling the rate in that case.
> Someone please correct me if I'm wrong.
> 
> thanks,
> Jeff
> 
> Sun, ChengHao wrote:
> > Hi Jeff,
> > I reviewed the code and some confused about some operation,
> > In patches:
> >
> > +       /* Switch SDRAM to selfrefresh */
> > +       ldr     r0, ddr2_ctrl_base
> > +       ldr     r1, self_refresh
> > +       ldr     r2, [r0]
> > +       orr     r2, r2, r1
> > +       str     r2, [r0]
> > ...
> >
> > +ddr2_ctrl_base:
> > +       .word DDR2_CTRL_VIRT
> > +self_refresh:
> > +       .word 0x80000000
> > ...
> > +#define DDR2_CTRL_PHYS  DAVINCI_DDR2_CTRL_BASE /* 0x20000000 */
> > +#define DDR2_CTRL_VIRT 0xfeb00000
> > +#define DDR2_CTRL_SIZE SZ_1M
> > ...
> > +       {
> > +               .virtual        = DDR2_CTRL_VIRT,
> > +               .pfn            = __phys_to_pfn(DDR2_CTRL_PHYS),
> > +               .length         = DDR2_CTRL_SIZE,
> > +               .type           = MT_DEVICE
> > +       },
> > ...
> >
> >
> > Can I say, the code try to write 0x80000000 into 0x20000000 to make DDR
> > into self refresh mode?
> > But refer the tms320dm6446.pdf Table 6-36. DDR2 Memory Controller
> > Registers
> > in http://focus.ti.com/lit/ds/symlink/tms320dm6446.pdf and the Table 23.
> > SDRAM Refresh Control Register (SDRCR) Field Descriptions in
> > TMS320DM644x DMSoC DDR2 Memory Controller User's Guide in
> > http://focus.ti.com.cn/cn/lit/ug/sprue22c/sprue22c.pdf,
> >
> > We should write control word to 0x2000 000C,
> >
> > And one more issue I am not sure: the control word need also include
> > Refresh rate for self refresh mode or not? Means should write 0x8000xxxx
> > to 0x2000000C to make it refresh, right?
> >
> > Best Regards
> > Sun
> >
> >
> > -----Original Message-----
> > From: [EMAIL PROTECTED]
> > [mailto:[EMAIL PROTECTED] On
> > Behalf Of Jeff Cooper
> > Sent: Friday, September 12, 2008 1:27 AM
> > To: Deepak Shankar-TLS,Chennai.
> > Cc: davinci-linux-open-source@linux.davincidsp.com
> > Subject: Re: Deep sleep on the DM355
> >
> > Deepak,
> >
> > I've modified the LSP 1.20 source tree to add in this patch:
> >
> >
> > http://www.mail-archive.com/[EMAIL PROTECTED]
> > om/msg04407.html
> >
> > Since it's for the git tree, it didn't apply, but it gave me enough info
> >
> > to get similar support on the 1.20 source tree.
> >
> > Part of being about to go into deep sleep is to put your DDR into
> > self-refresh mode.  The only place you can do that is while you're
> > running out of TCM.  Part of the patch creates sleep.S which are some
> > ASM routines that get copied into TCM.  When you want to suspend, you
> > jump to the routine in TCM and then it's safe to shut down the DDR.
> >
> > After I've shut down the DDR, then I send a I2C command to an external
> > processor (an MSP430) in my case to tell it I'm ready to sleep and to
> > drop the GIO0 line.  My ASM code looks like:
> >
> >         /* Inform the MSP that we're going into deep sleep */
> >         ldr     r0, MSP_I2C_ADDRESS
> >         adr     r1, MSP_CMD_SLEEP        @ load r1 with the address of
> > MSP_CMD_SLEEP
> >         ldr     r2, MSP_CMD_SLEEP_BYTES
> >         bl      i2c_send_data
> >
> >         /* Enter deep sleep */
> >         ldr     r0, SYS_DEEPSLEEP_ADDR
> >         ldr     r2, [r0]                        @ load the contents of
> > the deepsleep reg
> >
> >         ldr     r1, SYS_DEEPSLEEP_ENABLE_MASK
> >         orr     r2, r2, r1                      @ set the enable bit
> >         str     r2, [r0]
> >
> >         ldr     r1, SYS_DEEPSLEEP_COMPLETE_MASK
> > sleep_complete:
> >         ldr     r2, [r0]                        @ load the deep sleep
> > reg
> >         ands    r2, r2, r1                      @ test if the complete
> > bit is set
> >         beq     sleep_complete                  @ if it's not 1, keep
> > waiting
> >
> >         ldr     r1, SYS_DEEPSLEEP_ENABLE_MASK
> >         bic     r2, r2, r1                      @ clear the enable bit
> >         str     r2, [r0]
> >
> > What do you mean by 'cutdown the core-clock'?  I'm not changing my clock
> >
> > rate at all.  My understanding is that deep sleep mode shuts down all
> > clocks and that that wouldn't have any effect.
> >
> > What section of SPRUFB3 (I assume that's the one you mean, I can't find
> > SPRUB3), are you quoting from?
> >
> > thanks,
> > Jeff
> >
> > Deepak Shankar-TLS,Chennai. wrote:
> >
> >> I'm also working on this but have not succeeded to take the system to
> >> sleep yet.
> >> Could you please tell me if you just set the GIO000 to low to take it
> >>
> > to
> >
> >> sleep?
> >>
> >> However regarding the other peripherals it looks like we have to
> >>
> > disable
> >
> >> the outputs of PSC entirely.
> >> Have you also cutdown the core-clock?
> >>
> >> The SPRUB3 mentions
> >> "To reduce the chip stand by power, it is advised to power down all
> >>
> > the
> >
> >> analog blocks (PLL cores, DDR
> >> PHY DLL, DDR PHY, USB PHY, Video DAC, and CCP PHY). "
> >>
> >>
> >> -----Original Message-----
> >> From:
> >> [EMAIL PROTECTED]
> >>
> >>
> > [mailto:[EMAIL PROTECTED]
> >
> >> p.com] On Behalf Of Jeff Cooper
> >> Sent: Thursday, September 11, 2008 8:39 PM
> >> To: davinci-linux-open-source@linux.davincidsp.com
> >> Subject: Deep sleep on the DM355
> >>
> >> I'm trying to enable deep sleep on a DM355 and I'd like to know if
> >> anyone else has done that?
> >>
> >> I think that I've been able to enter and exit deep sleep mode
> >> successfully as I see the power draw on my system drop from 650 mW
> >>
> > down
> >
> >> to 190 mW when I'm in deep sleep.
> >>
> >> There's very little hard information on how much power the DM355
> >>
> > should
> >
> >> draw in deep sleep mode.  I've found a Power Point presentation on the
> >> net at:
> >>
> >>
> >>
> > http://www.arrownac.com/manufacturers/texas-instruments/npi/products/dm3
> >
> >> 55/davinci-dm355.ppt
> >>
> >>
> >> that states that the power consumption should be less that 5 mW while
> >> it's in deep sleep.
> >>
> >> I've also found a FAQ from TI that states that it should be approx 1
> >>
> > mW:
> >
> >>   http://focus.ti.com.cn/cn/lit/ml/sprv063a/sprv063a.pdf
> >>
> >> Assuming that the DM355 is in deep sleep mode and is really drawing
> >> around 5 mW, when I add in the maximum power draw from the other major
> >> components on my system, I'm still pretty far away from from what I'd
> >> expect the system to be drawing.
> >>
> >> The documentation in the Arm Subsystems User Guide (SPRUFB3) section
> >> 12.5.1 states:
> >>
> >>  The transition of GIO0 from high to low creates a clock pulse
> >> advancing the Deep Sleep state machine. After this transition, all
> >> clocks are stopped and then the internal oscillators are powered down.
> >>
> >> I may be misunderstanding that statement, but I took it to mean that
> >>
> > the
> >
> >> system is in it's lowest power state at that point.  I suspect that
> >>
> > that
> >
> >> may not be entirely true.  I found that the VPSS oscillator, OTG
> >>
> > analog
> >
> >> block and USB PHY are still powered on.  Turning those off saves about
> >> 12 mW.
> >>
> >> I suspect that other areas of the DM355 are still drawing power.  Does
> >> anyone know of other areas of the chip that should be powered off
> >> separately prior to entering deep sleep?
> >>
> >> I've tried turning off the VPSS_Master and VPSS_Slave using the PSC
> >> controller, but that didn't have any noticeable effect.
> >>
> >> Does the PSC have any effect on power consumption when the system is
> >>
> > in
> >
> >> deep sleep mode?
> >>
> >> Does anyone know if the DSP side goes to sleep when you enter deep
> >> sleep?
> >>
> >> I've also noticed that the amount of power that the system consumes
> >>
> > can
> >
> >> very quite a bit between various deep sleeps.  Using a software load
> >> that boots the kernel and puts the system to sleep, I've seen as much
> >>
> > as
> >
> >> 31 mW variance between boots once the system has entered deep sleep.
> >> I've yet to figure that one out.
> >>
> >> Any ideas on things to try or look into would be appreciated.
> >>
> >> thanks,
> >> Jeff
> >>
> >> --
> >>  Jeff Cooper // senior embedded software engineer
> >>
> >>  LOGIC // engineering design services
> >>  411 Washington Ave. N. Suite 400
> >>  Minneapolis, MN 55401
> >>  T // 612.436.5176
> >>  F // 612.672.9489
> >>
> >>  [EMAIL PROTECTED]
> >>  www.logicpd.com
> >>
> >>  / / / / / / / / / / / / / / / / / / / / / / / / / / / /
> >>
> >>  This message (including any attachments) contains confidential
> >> information intended for a specific individual and purpose, and  is
> >> protected by law. If you are not the intended recipient, you  should
> >> delete this message and are hereby notified that any  disclosure,
> >> copying, distribution, or other use of this message,  or the taking of
> >> any action based on it, is strictly prohibited.
> >>
> >>
> >>
> >>
> >> _______________________________________________
> >> Davinci-linux-open-source mailing list
> >> Davinci-linux-open-source@linux.davincidsp.com
> >> http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source
> >>
> >> DISCLAIMER:
> >>
> >>
> > ------------------------------------------------------------------------
> > -----------------------------------------------
> >
> >> The contents of this e-mail and any attachment(s) are confidential and
> >>
> > intended for the named recipient(s) only.
> >
> >> It shall not attach any liability on the originator or HCL or its
> >>
> > affiliates. Any views or opinions presented in
> >
> >> this email are solely those of the author and may not necessarily
> >>
> > reflect the opinions of HCL or its affiliates.
> >
> >> Any form of reproduction, dissemination, copying, disclosure,
> >>
> > modification, distribution and / or publication of
> >
> >> this message without the prior written consent of the author of this
> >>
> > e-mail is strictly prohibited. If you have
> >
> >> received this email in error please delete it and notify the sender
> >>
> > immediately. Before opening any mail and
> >
> >> attachments please check them for viruses and defect.
> >>
> >>
> >>
> > ------------------------------------------------------------------------
> > -----------------------------------------------
> >
> >>
> >>
> >
> >
> >
> 
> 
> _______________________________________________
> Davinci-linux-open-source mailing list
> Davinci-linux-open-source@linux.davincidsp.com
> http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source
_______________________________________________
Davinci-linux-open-source mailing list
Davinci-linux-open-source@linux.davincidsp.com
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to