[U-Boot] When to create a SoC directory for ARM

FengHua fenghua at phytium.com.cn
Thu Sep 26 12:49:45 CEST 2013




> -----原始邮件-----
> 发件人: "sun york-R58495" <R58495 at freescale.com>
> 发送时间: 2013年9月26日 星期四
> 收件人: FengHua <fenghua at phytium.com.cn>
> 抄送: "albert.u.boot" <albert.u.boot at aribaud.net>, trini <trini at ti.com>, "Wood
>  Scott-B07421" <B07421 at freescale.com>, u-boot <u-boot at lists.denx.de>
> 主题: Re: [U-Boot] When to create a SoC directory for ARM
> 
> 
> On Sep 25, 2013, at 10:23 PM, FengHua wrote:
> 
> > > Date: Wed, 25 Sep 2013 20:10:13 -0500
> > > From: Scott Wood <scottwood at freescale.com>
> > > Subject: Re: [U-Boot] When to create a SoC directory for ARM
> > > To: sun york-R58495 <R58495 at freescale.com>
> > > Cc: Rini <trini at ti.com>, Wood Scott-B07421 <B07421 at freescale.com>,
> > > 	"u-boot at lists.denx.de" <u-boot at lists.denx.de>, Tom
> > > Message-ID: <1380157813.24959.237.camel at snotra.buserror.net>
> > > Content-Type: text/plain; charset="UTF-8"
> > 
> > > On Wed, 2013-09-25 at 20:04 -0500, sun york-R58495 wrote:
> > > > On Sep 25, 2013, at 4:52 PM, Scott Wood wrote:
> > > > 
> > > > > On Wed, 2013-09-25 at 16:30 -0700, York Sun wrote:
> > > > >> Dear Wolfgang,
> > > > >> 
> > > > >> I failed to find the guideline, here is my question. Pardon me if this
> > > > >> is a dump question as I am still new to ARM.
> > > > >> 
> > > > >> As David Feng post his patch set to add ARMv8 support, I am trying to
> > > > >> enable it for Freescale implementation. Let's name it as LS2 for this
> > > > >> discussion. I am thinking to reuse as much as possible for existing
> > > > >> codes, which include copying some header files from powerpc partially. I
> > > > >> noticed the SoC field in boards.cfg file and I am wondering how to use
> > > > >> it effectively. I want to put LS2 specific headers to
> > > > >> arch/arm/include/asm/arch-ls2. Do I need to copy all files from
> > > > >> arch/arm/include/asm/arch-armv8/? There aren't many but I see mmu.h is
> > > > >> included in start.S. I have been searching case like this in ARMv7 but
> > > > >> didn't see shared header file (maybe I missed it). Please advise.
> > > > > 
> > > > > LS2 is (or perhaps more accurately, contains) an implementation of
> > > > > ARMv8, so you should be using arch-armv8 rather than copying it.
> > > > 
> > > > True. But I guess LS2 won't be the only "LS" Freescale is going to
> > > > make. Where is the best place to put the header file for chassis
> > > > related registers, like CCSR we have for mpc8xxx.
> > 
> > > Anything that isn't deeply tied to the ARM architecture should probably
> > > just go in include/.
> > > >  I am thinking the
> > > > best place is arch/arm/include/asm/ls2 (or a better name). Like other
> > > > ARMv7 variants, I am thinking to put ls2 under arch/arm/cpu/armv8/ as
> > > > well, to host LS-specific code.
> > 
> > > Likewise, if it's specifically tied to armv8 it should go in
> > > arch/arm/include/asm/arch-armv8, but I'm not sure what would be tied to
> > > both armv8 and ls2.  Most likely anything LS-specific that needs to go
> > > under arch/arm/ should go somewhere like arch/arm/include/asm/ls/
> > > (similar to arch/arm/include/asm/imx-common).
> > 
> > > -Scott
> > 
> > all SOC specific include file should be in arch/arm/include/asm/arch-SOC/ or
> > some common directory(like include/asm/imx-common). Currently, u-boot only link SOC specific(arch-SOC) include directory.
> > You could touch a mmu.h file in arch/arm/include/asm/arch-ls2/ and include
> > arch/arm/include/asm/arch-armv8/mmu.h.
> > or move arch-armv8/mmu.h to arch/arm/include/asm/ to make it as a generic file.
> > Maybe we should distinguish architecture specific include directory and SOC
> >  specific include directory.
> 
> 
> I was thinking to change the include in start.S to
> 
> #include <asm/arch-armv8/mmu.h>
> 

The current arch-armv8/mum.h is based on armv8 architecture.
Maybe just maybe some armv8 processor will not implement some features of it
for example 64K page size, then it do not works.
So, maybe it's better to touch a mmu.h file in include/asm/arch_SOC and 
include arch-armv8/mmu.h or make different implementation.

Regards,
David









More information about the U-Boot mailing list