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

Date: Wed, 25 Sep 2013 20:10:13 -0500 From: Scott Wood scottwood@freescale.com Subject: Re: [U-Boot] When to create a SoC directory for ARM To: sun york-R58495 R58495@freescale.com Cc: Rini trini@ti.com, Wood Scott-B07421 B07421@freescale.com, "u-boot@lists.denx.de" u-boot@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.
-David

On Sep 25, 2013, at 10:23 PM, FengHua wrote:
Date: Wed, 25 Sep 2013 20:10:13 -0500 From: Scott Wood scottwood@freescale.com Subject: Re: [U-Boot] When to create a SoC directory for ARM To: sun york-R58495 R58495@freescale.com Cc: Rini trini@ti.com, Wood Scott-B07421 B07421@freescale.com, "u-boot@lists.denx.de" u-boot@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 <asm/arch-armv8/mmu.h>
York

-----原始邮件----- 发件人: "sun york-R58495" R58495@freescale.com 发送时间: 2013年9月26日 星期四 收件人: FengHua fenghua@phytium.com.cn 抄送: "albert.u.boot" albert.u.boot@aribaud.net, trini trini@ti.com, "Wood Scott-B07421" B07421@freescale.com, u-boot u-boot@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@freescale.com Subject: Re: [U-Boot] When to create a SoC directory for ARM To: sun york-R58495 R58495@freescale.com Cc: Rini trini@ti.com, Wood Scott-B07421 B07421@freescale.com, "u-boot@lists.denx.de" u-boot@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 <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

On 09/26/2013 03:49 AM, FengHua wrote:
-----原始邮件----- 发件人: "sun york-R58495" R58495@freescale.com 发送时间: 2013年9月26日 星期四 收件人: FengHua fenghua@phytium.com.cn 抄送: "albert.u.boot" albert.u.boot@aribaud.net, trini trini@ti.com, "Wood Scott-B07421" B07421@freescale.com, u-boot u-boot@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@freescale.com Subject: Re: [U-Boot] When to create a SoC directory for ARM To: sun york-R58495 R58495@freescale.com Cc: Rini trini@ti.com, Wood Scott-B07421 B07421@freescale.com, "u-boot@lists.denx.de" u-boot@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 <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.
I think it is OK right now. It can be a subset or superset, as far as there is no conflict. We will see when we have more SoCs.
York

On 09/26/2013 03:49 AM, FengHua wrote:
-----原始邮件----- 发件人: "sun york-R58495" R58495@freescale.com 发送时间: 2013年9月26日 星期四 收件人: FengHua fenghua@phytium.com.cn 抄送: "albert.u.boot" albert.u.boot@aribaud.net, trini trini@ti.com, "Wood Scott-B07421" B07421@freescale.com, u-boot u-boot@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@freescale.com Subject: Re: [U-Boot] When to create a SoC directory for ARM To: sun york-R58495 R58495@freescale.com Cc: Rini trini@ti.com, Wood Scott-B07421 B07421@freescale.com, "u-boot@lists.denx.de" u-boot@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 <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.
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

On Thu, 2013-09-26 at 13:23 +0800, FengHua wrote:
Date: Wed, 25 Sep 2013 20:10:13 -0500 From: Scott Wood scottwood@freescale.com Subject: Re: [U-Boot] When to create a SoC directory for ARM To: sun york-R58495 R58495@freescale.com Cc: Rini trini@ti.com, Wood Scott-B07421 B07421@freescale.com, "u-boot@lists.denx.de" u-boot@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.
Is the XXX arch-XXX supposed to be an SoC family or a CPU family/architectutre?
-Scott

-----Original Message----- From: u-boot-bounces@lists.denx.de [mailto:u-boot-bounces@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@freescale.com Subject: Re: [U-Boot] When to create a SoC directory for ARM To: sun york-R58495 R58495@freescale.com Cc: Rini trini@ti.com, Wood Scott-B07421 B07421@freescale.com, "u-boot@lists.denx.de" u-boot@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.
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..)
We should have something similar for LayerScape.
Regards, Bhupesh

On 09/26/2013 12:46 PM, Sharma Bhupesh-B45370 wrote:
-----Original Message----- From: u-boot-bounces@lists.denx.de [mailto:u-boot-bounces@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@freescale.com Subject: Re: [U-Boot] When to create a SoC directory for ARM To: sun york-R58495 R58495@freescale.com Cc: Rini trini@ti.com, Wood Scott-B07421 B07421@freescale.com, "u-boot@lists.denx.de" u-boot@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.
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..)
We should have something similar for LayerScape.
If you look closely, you will find arch-armv7 and its sub-arch including am33xx, at91, exynos, etc.
York

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@lists.denx.de [mailto:u-boot-bounces@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@freescale.com Subject: Re: [U-Boot] When to create a SoC directory for ARM To: sun york-R58495 R58495@freescale.com Cc: Rini trini@ti.com, Wood Scott-B07421 B07421@freescale.com, "u-boot@lists.denx.de" u-boot@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.
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?
-Scott

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@lists.denx.de [mailto:u-boot-bounces@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@freescale.com Subject: Re: [U-Boot] When to create a SoC directory for ARM To: sun york-R58495 R58495@freescale.com Cc: Rini trini@ti.com, Wood Scott-B07421 B07421@freescale.com, "u-boot@lists.denx.de" u-boot@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.
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

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@lists.denx.de [mailto:u-boot-bounces@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?
-Scott

On 09/26/2013 01: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@lists.denx.de [mailto:u-boot-bounces@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?
It can't. That's why I am struggling. My temporary workaround is to include those headers in sub-arch headers.
York

On Thu, 2013-09-26 at 13:46 -0700, York Sun wrote:
On 09/26/2013 01: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@lists.denx.de [mailto:u-boot-bounces@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?
It can't. That's why I am struggling. My temporary workaround is to include those headers in sub-arch headers.
My question is, more specifically, what is happening today on armv7 relative to this problem?
-Scott

-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
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@lists.denx.de [mailto:u-boot-bounces@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 ? Or do we have a volunteer for a big re-jiggering of includes? Adding a <plat/> like the kernel has would be helpful in some cases, like this.
- -- Tom

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@lists.denx.de > [mailto:u-boot-bounces@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.
-Scott

-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
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@lists.denx.de >> [mailto:u-boot-bounces@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..
- -- Tom

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@lists.denx.de >>> [mailto:u-boot-bounces@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>.
York

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@lists.denx.de >>>> [mailto:u-boot-bounces@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.
-Scott

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@lists.denx.de >>>>> [mailto:u-boot-bounces@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

-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 09/26/2013 05:32 PM, York Sun wrote:
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@lists.denx.de >>>>>> [mailto:u-boot-bounces@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.
No, we have to move it from asm/arch-armv8/gpio.h to asm/arch-soc/gpio.h for that family.
- -- Tom

-----Original Message----- From: sun york-R58495 Sent: Friday, September 27, 2013 1:19 AM To: Sharma Bhupesh-B45370; Wood Scott-B07421; 'FengHua' Cc: 'trini'; sun york-R58495; 'u-boot' Subject: Re: [U-Boot] When to create a SoC directory for ARM
On 09/26/2013 12:46 PM, Sharma Bhupesh-B45370 wrote:
-----Original Message----- From: u-boot-bounces@lists.denx.de [mailto:u-boot-bounces@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@freescale.com Subject: Re: [U-Boot] When to create a SoC directory for ARM To: sun york-R58495 R58495@freescale.com Cc: Rini trini@ti.com, Wood Scott-B07421 B07421@freescale.com, "u-boot@lists.denx.de" u-boot@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.
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..)
We should have something similar for LayerScape.
If you look closely, you will find arch-armv7 and its sub-arch including am33xx, at91, exynos, etc.
I cannot find any sub-arch inside 'arch/arm/include/asm/arch-armv7' (I am referring to reference [1]) I think you are talking about 'arch/arm/cpu/arch-armv7'. That's not what I was referring to my original mail.
I believe David was mentioning the same in his mail (mmu.h inside 'arch/arm/include/asm/arch-armv8') .
References: [1] http://git.denx.de/?p=u-boot.git;a=tree;f=arch/arm/include/asm/arch-armv7;h=...
Regards, Bhupesh
participants (6)
-
FengHua
-
Scott Wood
-
Sharma Bhupesh-B45370
-
sun york-R58495
-
Tom Rini
-
York Sun