RE: [PATCH] ARM: imx: Add iram allocator functions

From: Nguyen Dinh-R00091
Date: Tue Oct 05 2010 - 12:49:32 EST




> -----Original Message-----
> From: Uwe Kleine-König [mailto:u.kleine-koenig@xxxxxxxxxxxxxx]
> Sent: Tuesday, October 05, 2010 2:56 AM
> To: Nguyen Dinh-R00091
> Cc: linux-kernel@xxxxxxxxxxxxxxx; amit.kucheria@xxxxxxxxxxxxx;
> s.hauer@xxxxxxxxxxxxxx; grant.likely@xxxxxxxxxxxx;
> valentin.longchamp@xxxxxxx; daniel@xxxxxxxx; Zhang Lily-R58066;
> r.schwebel@xxxxxxxxxxxxxx; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx;
> kernel@xxxxxxxxxxxxxx
> Subject: Re: [PATCH] ARM: imx: Add iram allocator functions
>
> On Tue, Oct 05, 2010 at 09:44:23AM +0200, Uwe Kleine-König wrote:
> > On Mon, Oct 04, 2010 at 07:03:27PM -0500, Dinh.Nguyen@xxxxxxxxxxxxx
> wrote:
> > > From: Dinh Nguyen <Dinh.Nguyen@xxxxxxxxxxxxx>
> > >
> > > Add iram allocation functions using GENERIC_ALLOCATOR. The
> > > allocation size is 4KB multiples to guarantee alignment. The
> > > idea for these functions is for i.MX platforms to use them
> > > to dynamically allocate IRAM usage.
> > >
> > > Applies on 2.6.36-rc6
> > >
> > > Signed-off-by: Dinh Nguyen <Dinh.Nguyen@xxxxxxxxxxxxx>
> > > Reviewed-by: Amit Kucheria <amit.kucheria@xxxxxxxxxxxxx>
> > > ---
> > > arch/arm/plat-mxc/Kconfig | 10 ++++
> > > arch/arm/plat-mxc/Makefile | 1 +
> > > arch/arm/plat-mxc/include/mach/iram_alloc.h | 35 +++++++++++++++
> > > arch/arm/plat-mxc/iram.c | 62
> +++++++++++++++++++++++++++
> > > 4 files changed, 108 insertions(+), 0 deletions(-)
> > > create mode 100644 arch/arm/plat-mxc/include/mach/iram_alloc.h
> > > create mode 100644 arch/arm/plat-mxc/iram.c
> > >
> > > diff --git a/arch/arm/plat-mxc/Kconfig b/arch/arm/plat-mxc/Kconfig
> > > index 6785db4..5e4ff93 100644
> > > --- a/arch/arm/plat-mxc/Kconfig
> > > +++ b/arch/arm/plat-mxc/Kconfig
> > > @@ -57,6 +57,16 @@ source "arch/arm/mach-mx5/Kconfig"
> > >
> > > endmenu
> > >
> > > +config IRAM_ALLOC
> > > + bool "Enable IRAM allocator"
> > > + default y
> > The iram allocator isn't useful taken alone, no? So I suggest to make
> > it
> Hmm. It seems I forgot to finish this sentence, sorry.
>
> Unless IRAM_ALLOC is an optional feature for new features to come I'd
> not make it user selectible, but let the new features select IRAM_ALLOC.
> If it's optional I wonder if "default y" should really be done.
>
> Maybe better call the symbol just IRAM?

IRAM should be in almost all SoCs, but it will be dependent on various drivers to make use of the IRAM. I think not making it user selectable and add IRAM_ALLOC to defconfigs where IRAM_ALLOC is needed makes sense. For example, the reason I am adding IRAM_ALLOC is to support MX51 suspend code. The MX51 suspend code needs to be run from IRAM. I think also IRAM_ALLOC is more descriptive symbol.

>
> > > + iram_pool = gen_pool_create(12, -1);
> > if (!iram_pool)
> > ...
> After rereading the commit log I wondered where the 4 KB are enforced.
> Maybe do
>
> s/12/PAGE_SHIFT/
>
> to make it more obvious?

I'm unclear about your comment. Should I add a comment of something like this?
/* 12^2 will create a 4KB granularity. */

>
> Best regards
> Uwe
>
> --
> Pengutronix e.K. | Uwe Kleine-König
> |
> Industrial Linux Solutions | http://www.pengutronix.de/
> |


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/