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

York Sun yorksun at freescale.com
Thu Sep 26 21:57:54 CEST 2013


On 09/26/2013 12:55 PM, Scott Wood wrote:
> On Thu, 2013-09-26 at 12:48 -0700, York Sun wrote:
>> On 09/26/2013 12:46 PM, Sharma Bhupesh-B45370 wrote:
>>>
>>>> -----Original Message-----
>>>> From: u-boot-bounces at lists.denx.de [mailto:u-boot-bounces at lists.denx.de]
>>>> On Behalf Of Scott Wood
>>>> Sent: Friday, September 27, 2013 12:53 AM
>>>> To: FengHua
>>>> Cc: trini; sun york-R58495; u-boot
>>>> Subject: Re: [U-Boot] When to create a SoC directory for ARM
>>>>
>>>> On Thu, 2013-09-26 at 13:23 +0800, 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.
>>>>
>>>> Is the XXX arch-XXX supposed to be an SoC family or a CPU
>>>> family/architectutre?
>>>>
>>>
>>> Usually in 'arch/arm/include/asm' we have both:
>>> - arch-armv7 (Arch specific. Houses stuff common to ARMv7 CPU, e.g. Global timer, SP805 WDT..)
>>> - arch-mx6 (SoC family specific. Houses stuff like SoC specific IOMUX pads..)
> 
> Which one does "#inculde <asm/arch/foo.h>" refer to?
> 

arm/arch is a symbolic link created at compiling time. It points to
arm/arch-$(soc), if $(soc) is not defined, then it points to
asm/arch-$(arch). That's my understanding.

York




More information about the U-Boot mailing list