From mboxrd@z Thu Jan 1 00:00:00 1970 From: York Sun Date: Thu, 26 Sep 2013 12:18:38 -0700 Subject: [U-Boot] When to create a SoC directory for ARM In-Reply-To: <1a798b7.2bafa.14159e387e2.Coremail.fenghua@phytium.com.cn> References: <1a798b7.2bafa.14159e387e2.Coremail.fenghua@phytium.com.cn> Message-ID: <5244888E.2090201@freescale.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 09/26/2013 03:49 AM, FengHua wrote: > > > >> -----????----- >> ???: "sun york-R58495" >> ????: 2013?9?26? ??? >> ???: FengHua >> ??: "albert.u.boot" , trini , "Wood >> Scott-B07421" , u-boot >> ??: 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 >>>> Subject: Re: [U-Boot] When to create a SoC directory for ARM >>>> To: sun york-R58495 >>>> Cc: Rini , Wood Scott-B07421 , >>>> "u-boot at lists.denx.de" , Tom >>>> Message-ID: <1380157813.24959.237.camel@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 >> > > 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. How does the arch-xxx work in general? I found no example to use header files from both asm/arch-xxx and asm/arch directories. York