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

York Sun yorksun at freescale.com
Thu Sep 26 23:32:03 CEST 2013


On 09/26/2013 02:26 PM, Scott Wood wrote:
> On Thu, 2013-09-26 at 14:07 -0700, York Sun wrote:
>> On 09/26/2013 02:03 PM, Tom Rini wrote:
>>> On 09/26/2013 04:59 PM, Scott Wood wrote:
>>>> On Thu, 2013-09-26 at 16:49 -0400, Tom Rini wrote:
>>>>> On 09/26/2013 04:44 PM, Scott Wood wrote:
>>>>>> On Thu, 2013-09-26 at 12:57 -0700, York Sun wrote:
>>>>>>> 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:
>>>>>>>>>>>> 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.
>>>>>>
>>>>>> How is that supposed to work when both arch-$(soc) and
>>>>>> arch-$(arch) are present?  Why are SoC and CPU arch confused in
>>>>>> this way?
>>>>>
>>>>> Primarily because it hasn't been an issue until now really.
>>>>> What's wrong with just saying <asm/arch-armv[78]/foo.h> as needed
>>>>> ?
>>>
>>>> Hmm, the only relevant <asm/arch/mmu.h> are in armv8-specific
>>>> files, so I suppose we could do that.  Why not just rename it
>>>> asm/armv[78], though?  There are only a handful of files in both
>>>> armv7 and armv8, so it shouldn't be too much of a problem.  Then
>>>> there's no question of where the symlink points.
>>>
>>> That should also be fine, after a quick git grep around..
>>>
>> How about arch/arm/include/asm/gpio.h? it includes <asm/arch/gpio.h>.
> 
> gpio.h doesn't belong in the armv8 directory.
> 

No, it doesn't. But oddly we have a lot of them. And since it is
including <asm/arch/gpio.h>, we have to make it happy.

$ find arch/arm/include/ -name gpio.h
arch/arm/include/asm/arch-spear/gpio.h
arch/arm/include/asm/arch-am33xx/gpio.h
arch/arm/include/asm/arch-omap3/gpio.h
arch/arm/include/asm/imx-common/gpio.h
arch/arm/include/asm/arch-mx5/gpio.h
arch/arm/include/asm/arch-tegra20/gpio.h
arch/arm/include/asm/arch-rmobile/gpio.h
arch/arm/include/asm/arch-tegra/gpio.h
arch/arm/include/asm/gpio.h
arch/arm/include/asm/arch-bcm2835/gpio.h
arch/arm/include/asm/arch-mxs/gpio.h
arch/arm/include/asm/arch-s3c24x0/gpio.h
arch/arm/include/asm/arch-davinci/gpio.h
arch/arm/include/asm/arch-nomadik/gpio.h
arch/arm/include/asm/arch-armada100/gpio.h
arch/arm/include/asm/arch-tegra114/gpio.h
arch/arm/include/asm/arch-armv8/gpio.h
arch/arm/include/asm/arch-mx6/gpio.h
arch/arm/include/asm/arch-exynos/gpio.h
arch/arm/include/asm/arch-omap4/gpio.h
arch/arm/include/asm/arch-mx27/gpio.h
arch/arm/include/asm/arch-mx35/gpio.h
arch/arm/include/asm/arch-u8500/gpio.h
arch/arm/include/asm/arch-mx25/gpio.h
arch/arm/include/asm/arch-kirkwood/gpio.h
arch/arm/include/asm/arch-omap5/gpio.h
arch/arm/include/asm/arch-tegra30/gpio.h
arch/arm/include/asm/arch-at91/gpio.h
arch/arm/include/asm/arch-s5pc1xx/gpio.h
arch/arm/include/asm/arch-mx31/gpio.h

York





More information about the U-Boot mailing list