[U-Boot] [PATCH 1/4] Add deep sleep framework support for Freescale QorIQ platforms
York Sun
yorksun at freescale.com
Thu Oct 23 05:06:11 CEST 2014
Yuantian,
Tom didn't suggest a specific hook. If you can use existing one, you don't have to create a new one. It's preferred if you can find a good place in existing xxx_f functions.
York
-------- Original Message --------
From: Tang Yuantian-B29983
Sent: Wed, 22/10/2014 19:53
To: Tom Rini
CC: albert.u.boot at aribaud.net; Jin Zhengxiong-R64188 ; u-boot at lists.denx.de; Sun York-R58495
Subject: RE: [U-Boot] [PATCH 1/4] Add deep sleep framework support for Freescale QorIQ platforms
> -----Original Message-----
> From: Tom Rini [mailto:tom.rini at gmail.com] On Behalf Of Tom Rini
> Sent: Wednesday, October 22, 2014 9:54 PM
> To: Tang Yuantian-B29983
> Cc: albert.u.boot at aribaud.net; Jin Zhengxiong-R64188; u-boot at lists.denx.de;
> Sun York-R58495
> Subject: Re: [U-Boot] [PATCH 1/4] Add deep sleep framework support for
> Freescale QorIQ platforms
>
> On Sun, Sep 28, 2014 at 04:59:45PM +0800, Yuantian.Tang at freescale.com
> wrote:
> > From: Tang Yuantian <Yuantian.Tang at freescale.com>
> >
> > When Freescale QorIQ SoCs wake up from deep sleep, control is passed
> > to the primary core that starts executing uboot. After re-initialized
> > some IP blocks, like DDRC, kernel will take responsibility to continue
> > to restore environment it leaves before.
> >
> > This patch adds the deep sleep framework support for all Freescale
> > QorIQ platforms that use generic_board configuation.
> >
> > Signed-off-by: Tang Yuantian <Yuantian.Tang at freescale.com>
> > ---
> > common/board_f.c | 10 +++++++++
> > drivers/ddr/fsl/arm_ddr_gen3.c | 48
> +++++++++++++++++++++++++++++++++++++-----
> > include/fsl_ddr_sdram.h | 2 ++
> > include/fsl_sleep.h | 32 ++++++++++++++++++++++++++++
> > 4 files changed, 87 insertions(+), 5 deletions(-) create mode 100644
> > include/fsl_sleep.h
> >
> > diff --git a/common/board_f.c b/common/board_f.c index
> > e6aa298..b736d29 100644
> > --- a/common/board_f.c
> > +++ b/common/board_f.c
> > @@ -56,6 +56,9 @@
> > #endif
> > #include <dm/root.h>
> > #include <linux/compiler.h>
> > +#ifdef CONFIG_FSL_DEEP_SLEEP
> > +#include <fsl_sleep.h>
> > +#endif
> >
> > /*
> > * Pointer to initial global data area @@ -921,6 +924,9 @@ static
> > init_fnc_t init_sequence_f[] = { #if defined(CONFIG_MIPS) ||
> > defined(CONFIG_PPC)
> > init_func_ram,
> > #endif
> > +#ifdef CONFIG_FSL_DEEP_SLEEP
> > + fsl_dp_resume,
> > +#endif
>
> Is there not an existing hook you can use here instead? Is misc_init_f too early?
Misc_init_f is too early, we need to put it between DDR initialization and relocation.
> If we're going to add a new hook in here, it needs to be somewhat generically
> named, with the requirements of the system spelled out.
It is Freescale specific. Wouldn't be a misleading for other platforms that don't jump to kernel here?
> Some TI parts have a
> (setting aside marketing-speak) similar function and I believe the U-Boot patches
> for that use an existing hook to notice what happened and do what's needed.
Which function did you refer to? I can check if it can be used.
Thanks,
Yuantian
> Thanks!
>
> --
> Tom
More information about the U-Boot
mailing list