* [U-Boot] Refactoring of U-Boot directory structure
@ 2014-06-12 4:10 Masahiro Yamada
2014-06-12 4:41 ` Wolfgang Denk
` (2 more replies)
0 siblings, 3 replies; 9+ messages in thread
From: Masahiro Yamada @ 2014-06-12 4:10 UTC (permalink / raw)
To: u-boot
Hi.
In U-Boot, the directory structure under arch/ is like this
arch/${ARCH}/cpu/${CPU}/${SOC}
Exception:
- ${CPU} is missing for some architectures such as blackfin, sandbox, etc.
- There are many boards without ${SOC}
My question is, ${SOC} should always depend on ${CPU} ?
I think it is reasonable to migrate to the structure like this:
arch/${ARCH}/cpu/${CPU}
/mach-${foo}
/mach-${bar}
I think arch/${ARCH}/cpu/${CPU}/${SOC} structure
have given us a lot of pain.
The problems I want to solve are:
[1] Do not split the similar SoC family to various directories
at91 SoC directory exists under arm920t, arm926ejs, armv7 directory.
./arch/arm/cpu/arm920t/at91
./arch/arm/cpu/arm926ejs/at91
./arch/arm/cpu/armv7/at91
It looks reasonable to collect at91 sources into a single place,
arch/arm/mach-at91
[2] Collect C/ASM sources and headers into a single place
Now SoC-specific sources are under
./arch/${ARCH}/cpu/${CPU}/${SOC}/
But headers are
./arch/${ARCH}/include/asm/arch-${SOC}/
In the new structure,
./arch/arm/mach-${SOC}/ : C/ASM files
./arch/arm/mach-${SOC}/include/ : Header files
[3] Do not create a symbolic link to header dicrectory
mkconfig creates a symbolic link to
arch/asm/include/asm/arch-${SOC}
I dislike creating a symbolic link by configuration
and remove it by mrproper.
Linux Kernel did that long time ago, but they did away with it.
[4] Stop Tegra
Tegra uses different CPU for SPL and Normal U-boot.
That's why Tegra directories are sprinkled under arch/arm/:
arch/arm/cpu/arm720t/tegra-common/
arch/arm/cpu/arm720t/tegra20/
arch/arm/cpu/arm720t/tegra30/
arch/arm/cpu/arm720t/tegra114/
arch/arm/cpu/arm720t/tegra124/
arch/arm/cpu/armv7/tegra-common/
arch/arm/cpu/armv7/tegra20/
arch/arm/cpu/armv7/tegra30/
arch/arm/cpu/armv7/tegra114/
arch/arm/cpu/armv7/tegra124/
arch/arm/include/asm/arch-tegra/
arch/asm/include/asm/arch-tegra20/
arch/asm/include/asm/arch-tegra30/
arch/asm/include/asm/arch-tegra114/
arch/asm/include/asm/arch-tegra124/
They can be refactored
arch/arm/mach-tegra/ : tegra common part
arch/arm/mach-tegra/tegra20/ : tegra20-specific
arch/arm/mach-tegra/tegra30/ : tegra30-specific
arch/arm/mach-tegra/tegra114/ : tegra114-specific
arch/arm/mach-tegra/tegra124/ : tegra124-specific
or maybe
arch/arm/plat-tegra/ : tegra common part
arch/arm/mach-tegra20/ : tegra20-specific
arch/arm/mach-tegra30/ : tegra30-specific
arch/arm/mach-tegra114/ : tegra114-specific
arch/arm/mach-tegra124/ : tegra124-specific
Your comments are welcome!
Best Regards
Masahiro Yamada
^ permalink raw reply [flat|nested] 9+ messages in thread
* [U-Boot] Refactoring of U-Boot directory structure
2014-06-12 4:10 [U-Boot] Refactoring of U-Boot directory structure Masahiro Yamada
@ 2014-06-12 4:41 ` Wolfgang Denk
2014-06-12 6:32 ` Masahiro Yamada
2014-06-12 15:16 ` Stephen Warren
2014-07-28 3:26 ` Simon Glass
2 siblings, 1 reply; 9+ messages in thread
From: Wolfgang Denk @ 2014-06-12 4:41 UTC (permalink / raw)
To: u-boot
Dear Masahiro,
In message <20140612131050.963A.AA925319@jp.panasonic.com> you wrote:
>
> [1] Do not split the similar SoC family to various directories
>
> at91 SoC directory exists under arm920t, arm926ejs, armv7 directory.
To me this actually makes sense, as they are using different CPU cores
(ARMv4t vs. ARMv5te vs. ARMv7).
> ./arch/arm/cpu/arm920t/at91
> ./arch/arm/cpu/arm926ejs/at91
> ./arch/arm/cpu/armv7/at91
>
> It looks reasonable to collect at91 sources into a single place,
> arch/arm/mach-at91
Did you look at the code? Files like lowlevel_init.S, reset.c or
timer.c look pretty much specific to the respective architecture.
What would be the benefit of mixing all this different stuff in a
single directory?
> That's why Tegra directories are sprinkled under arch/arm/:
>
> arch/arm/cpu/arm720t/tegra-common/
> arch/arm/cpu/arm720t/tegra20/
> arch/arm/cpu/arm720t/tegra30/
> arch/arm/cpu/arm720t/tegra114/
> arch/arm/cpu/arm720t/tegra124/
> arch/arm/cpu/armv7/tegra-common/
> arch/arm/cpu/armv7/tegra20/
> arch/arm/cpu/armv7/tegra30/
> arch/arm/cpu/armv7/tegra114/
> arch/arm/cpu/armv7/tegra124/
> arch/arm/include/asm/arch-tegra/
> arch/asm/include/asm/arch-tegra20/
> arch/asm/include/asm/arch-tegra30/
> arch/asm/include/asm/arch-tegra114/
> arch/asm/include/asm/arch-tegra124/
>
>
> They can be refactored
>
> arch/arm/mach-tegra/ : tegra common part
> arch/arm/mach-tegra/tegra20/ : tegra20-specific
> arch/arm/mach-tegra/tegra30/ : tegra30-specific
> arch/arm/mach-tegra/tegra114/ : tegra114-specific
> arch/arm/mach-tegra/tegra124/ : tegra124-specific
Again, we have different CPU cores here, and thus pretty much
different code - what would be the benefit of mixing unrelated code
in a single directory?
Best regards,
Wolfgang Denk
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Boykottiert Microsoft - Kauft Eure Fenster bei OBI!
^ permalink raw reply [flat|nested] 9+ messages in thread
* [U-Boot] Refactoring of U-Boot directory structure
2014-06-12 4:41 ` Wolfgang Denk
@ 2014-06-12 6:32 ` Masahiro Yamada
2014-06-12 7:46 ` Andreas Bießmann
0 siblings, 1 reply; 9+ messages in thread
From: Masahiro Yamada @ 2014-06-12 6:32 UTC (permalink / raw)
To: u-boot
Hi Wolfgang,
On Thu, 12 Jun 2014 06:41:45 +0200
Wolfgang Denk <wd@denx.de> wrote:
> Dear Masahiro,
>
> In message <20140612131050.963A.AA925319@jp.panasonic.com> you wrote:
> >
> > [1] Do not split the similar SoC family to various directories
> >
> > at91 SoC directory exists under arm920t, arm926ejs, armv7 directory.
>
> To me this actually makes sense, as they are using different CPU cores
> (ARMv4t vs. ARMv5te vs. ARMv7).
>
> > ./arch/arm/cpu/arm920t/at91
> > ./arch/arm/cpu/arm926ejs/at91
> > ./arch/arm/cpu/armv7/at91
> >
> > It looks reasonable to collect at91 sources into a single place,
> > arch/arm/mach-at91
>
> Did you look at the code? Files like lowlevel_init.S, reset.c or
> timer.c look pretty much specific to the respective architecture.
> What would be the benefit of mixing all this different stuff in a
> single directory?
No.
I am discussing from the generic view.
In the current structure, there is no place which at91-common
part should go to.
Splitting code into various directories loses the motivation of
consolidating the common part even if it exists.
(Again, just in case, this is generalities.
I am not familiar with the at91-specific implementation.)
> > That's why Tegra directories are sprinkled under arch/arm/:
> >
> > arch/arm/cpu/arm720t/tegra-common/
> > arch/arm/cpu/arm720t/tegra20/
> > arch/arm/cpu/arm720t/tegra30/
> > arch/arm/cpu/arm720t/tegra114/
> > arch/arm/cpu/arm720t/tegra124/
> > arch/arm/cpu/armv7/tegra-common/
> > arch/arm/cpu/armv7/tegra20/
> > arch/arm/cpu/armv7/tegra30/
> > arch/arm/cpu/armv7/tegra114/
> > arch/arm/cpu/armv7/tegra124/
> > arch/arm/include/asm/arch-tegra/
> > arch/asm/include/asm/arch-tegra20/
> > arch/asm/include/asm/arch-tegra30/
> > arch/asm/include/asm/arch-tegra114/
> > arch/asm/include/asm/arch-tegra124/
> >
> >
> > They can be refactored
> >
> > arch/arm/mach-tegra/ : tegra common part
> > arch/arm/mach-tegra/tegra20/ : tegra20-specific
> > arch/arm/mach-tegra/tegra30/ : tegra30-specific
> > arch/arm/mach-tegra/tegra114/ : tegra114-specific
> > arch/arm/mach-tegra/tegra124/ : tegra124-specific
>
> Again, we have different CPU cores here, and thus pretty much
> different code - what would be the benefit of mixing unrelated code
> in a single directory?
>
At lease, they are developed by the same LSI vendor.
And the code is maintained by the same person:
Besides,
arch/arm/cpu/armv7/tegra30/
arch/arm/cpu/armv7/tegra114/
arch/arm/cpu/armv7/tegra124/
are empty.
These directories exist just to meet the requirement of
arch/${ARCH}/cpu/${CPU}/${SOC} structure.
Without those dummy directories, build fails.
Best Regards
Masahiro Yamada
^ permalink raw reply [flat|nested] 9+ messages in thread
* [U-Boot] Refactoring of U-Boot directory structure
2014-06-12 6:32 ` Masahiro Yamada
@ 2014-06-12 7:46 ` Andreas Bießmann
0 siblings, 0 replies; 9+ messages in thread
From: Andreas Bießmann @ 2014-06-12 7:46 UTC (permalink / raw)
To: u-boot
Hi all,
On 06/12/2014 08:32 AM, Masahiro Yamada wrote:
> On Thu, 12 Jun 2014 06:41:45 +0200
> Wolfgang Denk <wd@denx.de> wrote:
>> In message <20140612131050.963A.AA925319@jp.panasonic.com> you wrote:
>>>
>>> [1] Do not split the similar SoC family to various directories
>>>
>>> at91 SoC directory exists under arm920t, arm926ejs, armv7 directory.
>>
>> To me this actually makes sense, as they are using different CPU cores
>> (ARMv4t vs. ARMv5te vs. ARMv7).
>>
>>> ./arch/arm/cpu/arm920t/at91
>>> ./arch/arm/cpu/arm926ejs/at91
>>> ./arch/arm/cpu/armv7/at91
>>>
>>> It looks reasonable to collect at91 sources into a single place,
>>> arch/arm/mach-at91
I thought about that before when introducing at91-common.
>> Did you look at the code? Files like lowlevel_init.S, reset.c or
>> timer.c look pretty much specific to the respective architecture.
>> What would be the benefit of mixing all this different stuff in a
>> single directory?
>
> No.
> I am discussing from the generic view.
>
> In the current structure, there is no place which at91-common
> part should go to.
>
> Splitting code into various directories loses the motivation of
> consolidating the common part even if it exists.
That's true. Currently there are some old files which are almost the
same in arch/arm/cpu/*/at91
Especially the arm920t and arm926ejs files are mostly the same. For
example the clock.c:
---8<---
abiessmann at punisher % diff -Nrupa arch/arm/cpu/arm920t/at91/clock.c
arch/arm/cpu/arm926ejs/at91/clock.c | diffstat
clock.c | 38 +++++++++++++++++++++++++++++++++++---
1 file changed, 35 insertions(+), 3 deletions(-)
abiessmann at punisher % cat arch/arm/cpu/arm920t/at91/clock.c | wc -l
157
abiessmann@punisher % cat arch/arm/cpu/arm926ejs/at91/clock.c | wc -l
189
--->8---
The differences are just features of the newer IP revision in SoC, so
that could be consolidated into one file.
lowlevel_init.S is another thing. There should be something done before.
We have started to do clock and RAM initialization in C-code for armv7
targets (sama5) and some arm926ejs targets (g45). This could also be
done for the ancient (but still available) devices like sam926x, maybe
also for the really prehistoric rm9200.
So I think it is doable to consolidate the directory structure. It would
even be really useful for the generic code.
But we need to plan this step before thoroughly. Especially required
adoptions like rework of lowlevel_init.S should be done before.
Best regards
Andreas Bie?mann
^ permalink raw reply [flat|nested] 9+ messages in thread
* [U-Boot] Refactoring of U-Boot directory structure
2014-06-12 4:10 [U-Boot] Refactoring of U-Boot directory structure Masahiro Yamada
2014-06-12 4:41 ` Wolfgang Denk
@ 2014-06-12 15:16 ` Stephen Warren
2014-06-13 7:18 ` Masahiro Yamada
2014-07-28 3:26 ` Simon Glass
2 siblings, 1 reply; 9+ messages in thread
From: Stephen Warren @ 2014-06-12 15:16 UTC (permalink / raw)
To: u-boot
On 06/11/2014 10:10 PM, Masahiro Yamada wrote:
...
> Tegra uses different CPU for SPL and Normal U-boot.
> That's why Tegra directories are sprinkled under arch/arm/:
>
> arch/arm/cpu/arm720t/tegra-common/
> arch/arm/cpu/arm720t/tegra20/
> arch/arm/cpu/arm720t/tegra30/
> arch/arm/cpu/arm720t/tegra114/
> arch/arm/cpu/arm720t/tegra124/
> arch/arm/cpu/armv7/tegra-common/
> arch/arm/cpu/armv7/tegra20/
> arch/arm/cpu/armv7/tegra30/
> arch/arm/cpu/armv7/tegra114/
> arch/arm/cpu/armv7/tegra124/
> arch/arm/include/asm/arch-tegra/
> arch/asm/include/asm/arch-tegra20/
> arch/asm/include/asm/arch-tegra30/
> arch/asm/include/asm/arch-tegra114/
> arch/asm/include/asm/arch-tegra124/
This is a deliberate split so that we can control the code/data size of
the arm720t (SPL) parts of the code.
> They can be refactored
>
> arch/arm/mach-tegra/ : tegra common part
> arch/arm/mach-tegra/tegra20/ : tegra20-specific
> arch/arm/mach-tegra/tegra30/ : tegra30-specific
> arch/arm/mach-tegra/tegra114/ : tegra114-specific
> arch/arm/mach-tegra/tegra124/ : tegra124-specific
>
> or maybe
>
> arch/arm/plat-tegra/ : tegra common part
> arch/arm/mach-tegra20/ : tegra20-specific
> arch/arm/mach-tegra30/ : tegra30-specific
> arch/arm/mach-tegra114/ : tegra114-specific
> arch/arm/mach-tegra124/ : tegra124-specific
If we refactor into that structure, the SPL/non-SPL separation will be
much less clear.
^ permalink raw reply [flat|nested] 9+ messages in thread
* [U-Boot] Refactoring of U-Boot directory structure
2014-06-12 15:16 ` Stephen Warren
@ 2014-06-13 7:18 ` Masahiro Yamada
2014-07-28 3:31 ` Simon Glass
0 siblings, 1 reply; 9+ messages in thread
From: Masahiro Yamada @ 2014-06-13 7:18 UTC (permalink / raw)
To: u-boot
Hi Stephen,
On Thu, 12 Jun 2014 09:16:14 -0600
Stephen Warren <swarren@wwwdotorg.org> wrote:
> On 06/11/2014 10:10 PM, Masahiro Yamada wrote:
> ...
> > Tegra uses different CPU for SPL and Normal U-boot.
> > That's why Tegra directories are sprinkled under arch/arm/:
> >
> > arch/arm/cpu/arm720t/tegra-common/
> > arch/arm/cpu/arm720t/tegra20/
> > arch/arm/cpu/arm720t/tegra30/
> > arch/arm/cpu/arm720t/tegra114/
> > arch/arm/cpu/arm720t/tegra124/
> > arch/arm/cpu/armv7/tegra-common/
> > arch/arm/cpu/armv7/tegra20/
> > arch/arm/cpu/armv7/tegra30/
> > arch/arm/cpu/armv7/tegra114/
> > arch/arm/cpu/armv7/tegra124/
> > arch/arm/include/asm/arch-tegra/
> > arch/asm/include/asm/arch-tegra20/
> > arch/asm/include/asm/arch-tegra30/
> > arch/asm/include/asm/arch-tegra114/
> > arch/asm/include/asm/arch-tegra124/
>
> This is a deliberate split so that we can control the code/data size of
> the arm720t (SPL) parts of the code.
>
> > They can be refactored
> >
> > arch/arm/mach-tegra/ : tegra common part
> > arch/arm/mach-tegra/tegra20/ : tegra20-specific
> > arch/arm/mach-tegra/tegra30/ : tegra30-specific
> > arch/arm/mach-tegra/tegra114/ : tegra114-specific
> > arch/arm/mach-tegra/tegra124/ : tegra124-specific
> >
> > or maybe
> >
> > arch/arm/plat-tegra/ : tegra common part
> > arch/arm/mach-tegra20/ : tegra20-specific
> > arch/arm/mach-tegra30/ : tegra30-specific
> > arch/arm/mach-tegra114/ : tegra114-specific
> > arch/arm/mach-tegra124/ : tegra124-specific
>
> If we refactor into that structure, the SPL/non-SPL separation will be
> much less clear.
In that case, you can create a subdirectory under mach-tegra/
to separate SPL code from the others.
Best Regards
Masahiro Yamada
^ permalink raw reply [flat|nested] 9+ messages in thread
* [U-Boot] Refactoring of U-Boot directory structure
2014-06-12 4:10 [U-Boot] Refactoring of U-Boot directory structure Masahiro Yamada
2014-06-12 4:41 ` Wolfgang Denk
2014-06-12 15:16 ` Stephen Warren
@ 2014-07-28 3:26 ` Simon Glass
2 siblings, 0 replies; 9+ messages in thread
From: Simon Glass @ 2014-07-28 3:26 UTC (permalink / raw)
To: u-boot
Hi Masahiro,
On 12 June 2014 05:10, Masahiro Yamada <yamada.m@jp.panasonic.com> wrote:
> Hi.
>
> In U-Boot, the directory structure under arch/ is like this
> arch/${ARCH}/cpu/${CPU}/${SOC}
>
> Exception:
> - ${CPU} is missing for some architectures such as blackfin, sandbox, etc.
> - There are many boards without ${SOC}
>
>
> My question is, ${SOC} should always depend on ${CPU} ?
>
> I think it is reasonable to migrate to the structure like this:
>
> arch/${ARCH}/cpu/${CPU}
> /mach-${foo}
> /mach-${bar}
>
> I think arch/${ARCH}/cpu/${CPU}/${SOC} structure
> have given us a lot of pain.
>
>
> The problems I want to solve are:
>
>
> [1] Do not split the similar SoC family to various directories
>
> at91 SoC directory exists under arm920t, arm926ejs, armv7 directory.
>
> ./arch/arm/cpu/arm920t/at91
> ./arch/arm/cpu/arm926ejs/at91
> ./arch/arm/cpu/armv7/at91
>
> It looks reasonable to collect at91 sources into a single place,
> arch/arm/mach-at91
This does make it clear that the chips are in a single family. We can
have different files for the chip-specific stuff such as low-level
code. But this approach makes it easier to use common code I think.
>
>
> [2] Collect C/ASM sources and headers into a single place
>
> Now SoC-specific sources are under
> ./arch/${ARCH}/cpu/${CPU}/${SOC}/
>
> But headers are
> ./arch/${ARCH}/include/asm/arch-${SOC}/
>
> In the new structure,
> ./arch/arm/mach-${SOC}/ : C/ASM files
> ./arch/arm/mach-${SOC}/include/ : Header files
This seems better to me.
>
>
> [3] Do not create a symbolic link to header dicrectory
>
> mkconfig creates a symbolic link to
> arch/asm/include/asm/arch-${SOC}
>
> I dislike creating a symbolic link by configuration
> and remove it by mrproper.
>
> Linux Kernel did that long time ago, but they did away with it.
OK
Regards,
Simon
^ permalink raw reply [flat|nested] 9+ messages in thread
* [U-Boot] Refactoring of U-Boot directory structure
2014-06-13 7:18 ` Masahiro Yamada
@ 2014-07-28 3:31 ` Simon Glass
2014-07-28 17:24 ` Stephen Warren
0 siblings, 1 reply; 9+ messages in thread
From: Simon Glass @ 2014-07-28 3:31 UTC (permalink / raw)
To: u-boot
Hi Stephen,
On 13 June 2014 08:18, Masahiro Yamada <yamada.m@jp.panasonic.com> wrote:
> Hi Stephen,
>
>
> On Thu, 12 Jun 2014 09:16:14 -0600
> Stephen Warren <swarren@wwwdotorg.org> wrote:
>
>> On 06/11/2014 10:10 PM, Masahiro Yamada wrote:
>> ...
>> > Tegra uses different CPU for SPL and Normal U-boot.
>> > That's why Tegra directories are sprinkled under arch/arm/:
>> >
>> > arch/arm/cpu/arm720t/tegra-common/
>> > arch/arm/cpu/arm720t/tegra20/
>> > arch/arm/cpu/arm720t/tegra30/
>> > arch/arm/cpu/arm720t/tegra114/
>> > arch/arm/cpu/arm720t/tegra124/
>> > arch/arm/cpu/armv7/tegra-common/
>> > arch/arm/cpu/armv7/tegra20/
>> > arch/arm/cpu/armv7/tegra30/
>> > arch/arm/cpu/armv7/tegra114/
>> > arch/arm/cpu/armv7/tegra124/
>> > arch/arm/include/asm/arch-tegra/
>> > arch/asm/include/asm/arch-tegra20/
>> > arch/asm/include/asm/arch-tegra30/
>> > arch/asm/include/asm/arch-tegra114/
>> > arch/asm/include/asm/arch-tegra124/
>>
>> This is a deliberate split so that we can control the code/data size of
>> the arm720t (SPL) parts of the code.
>>
>> > They can be refactored
>> >
>> > arch/arm/mach-tegra/ : tegra common part
>> > arch/arm/mach-tegra/tegra20/ : tegra20-specific
>> > arch/arm/mach-tegra/tegra30/ : tegra30-specific
>> > arch/arm/mach-tegra/tegra114/ : tegra114-specific
>> > arch/arm/mach-tegra/tegra124/ : tegra124-specific
>> >
>> > or maybe
>> >
>> > arch/arm/plat-tegra/ : tegra common part
>> > arch/arm/mach-tegra20/ : tegra20-specific
>> > arch/arm/mach-tegra30/ : tegra30-specific
>> > arch/arm/mach-tegra114/ : tegra114-specific
>> > arch/arm/mach-tegra124/ : tegra124-specific
>>
>> If we refactor into that structure, the SPL/non-SPL separation will be
>> much less clear.
>
> In that case, you can create a subdirectory under mach-tegra/
> to separate SPL code from the others.
Does Masahiro's proposed approach work for you? The second one seems
good to me - I quite like the plat-tegra idea for completely common
code, and the flatter directory structure.
Also if Tegra starts supporting an ARMv7/8 CPU for start-up, then a
spl/ subdirectory would be needed anyway, to separate out the code.
Regards,
Simon
^ permalink raw reply [flat|nested] 9+ messages in thread
* [U-Boot] Refactoring of U-Boot directory structure
2014-07-28 3:31 ` Simon Glass
@ 2014-07-28 17:24 ` Stephen Warren
0 siblings, 0 replies; 9+ messages in thread
From: Stephen Warren @ 2014-07-28 17:24 UTC (permalink / raw)
To: u-boot
On 07/27/2014 09:31 PM, Simon Glass wrote:
> Hi Stephen,
>
> On 13 June 2014 08:18, Masahiro Yamada <yamada.m@jp.panasonic.com> wrote:
>> Hi Stephen,
>>
>>
>> On Thu, 12 Jun 2014 09:16:14 -0600
>> Stephen Warren <swarren@wwwdotorg.org> wrote:
>>
>>> On 06/11/2014 10:10 PM, Masahiro Yamada wrote:
>>> ...
>>>> Tegra uses different CPU for SPL and Normal U-boot.
>>>> That's why Tegra directories are sprinkled under arch/arm/:
>>>>
>>>> arch/arm/cpu/arm720t/tegra-common/
>>>> arch/arm/cpu/arm720t/tegra20/
>>>> arch/arm/cpu/arm720t/tegra30/
>>>> arch/arm/cpu/arm720t/tegra114/
>>>> arch/arm/cpu/arm720t/tegra124/
>>>> arch/arm/cpu/armv7/tegra-common/
>>>> arch/arm/cpu/armv7/tegra20/
>>>> arch/arm/cpu/armv7/tegra30/
>>>> arch/arm/cpu/armv7/tegra114/
>>>> arch/arm/cpu/armv7/tegra124/
>>>> arch/arm/include/asm/arch-tegra/
>>>> arch/asm/include/asm/arch-tegra20/
>>>> arch/asm/include/asm/arch-tegra30/
>>>> arch/asm/include/asm/arch-tegra114/
>>>> arch/asm/include/asm/arch-tegra124/
>>>
>>> This is a deliberate split so that we can control the code/data size of
>>> the arm720t (SPL) parts of the code.
>>>
>>>> They can be refactored
>>>>
>>>> arch/arm/mach-tegra/ : tegra common part
>>>> arch/arm/mach-tegra/tegra20/ : tegra20-specific
>>>> arch/arm/mach-tegra/tegra30/ : tegra30-specific
>>>> arch/arm/mach-tegra/tegra114/ : tegra114-specific
>>>> arch/arm/mach-tegra/tegra124/ : tegra124-specific
>>>>
>>>> or maybe
>>>>
>>>> arch/arm/plat-tegra/ : tegra common part
>>>> arch/arm/mach-tegra20/ : tegra20-specific
>>>> arch/arm/mach-tegra30/ : tegra30-specific
>>>> arch/arm/mach-tegra114/ : tegra114-specific
>>>> arch/arm/mach-tegra124/ : tegra124-specific
>>>
>>> If we refactor into that structure, the SPL/non-SPL separation will be
>>> much less clear.
>>
>> In that case, you can create a subdirectory under mach-tegra/
>> to separate SPL code from the others.
>
> Does Masahiro's proposed approach work for you? The second one seems
> good to me - I quite like the plat-tegra idea for completely common
> code, and the flatter directory structure.
>
> Also if Tegra starts supporting an ARMv7/8 CPU for start-up, then a
> spl/ subdirectory would be needed anyway, to separate out the code.
I guess I'd be fine with something like:
arch/arm/mach-tegra/*.c
arch/arm/mach-tegra/spl/*.c
and if needed an SoC-specific directory under each:
arch/arm/mach-tegra/*.c
arch/arm/mach-tegra/tegra20/*.c
arch/arm/mach-tegra/tegra30/*.c
...
arch/arm/mach-tegra/spl/*.c
arch/arm/mach-tegra/spl/tegra20/*.c
arch/arm/mach-tegra/spl/tegra30/*.c
...
I don't think a completely flat directory structure would work, since
there are probably some alternative implementations of files/functions
for different SoCs and/or SPL-vs-non-SPL.
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2014-07-28 17:24 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-06-12 4:10 [U-Boot] Refactoring of U-Boot directory structure Masahiro Yamada
2014-06-12 4:41 ` Wolfgang Denk
2014-06-12 6:32 ` Masahiro Yamada
2014-06-12 7:46 ` Andreas Bießmann
2014-06-12 15:16 ` Stephen Warren
2014-06-13 7:18 ` Masahiro Yamada
2014-07-28 3:31 ` Simon Glass
2014-07-28 17:24 ` Stephen Warren
2014-07-28 3:26 ` Simon Glass
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.