[U-Boot] Refactoring of U-Boot directory structure

Stephen Warren swarren at wwwdotorg.org
Mon Jul 28 19:24:04 CEST 2014


On 07/27/2014 09:31 PM, Simon Glass wrote:
> Hi Stephen,
>
> On 13 June 2014 08:18, Masahiro Yamada <yamada.m at jp.panasonic.com> wrote:
>> Hi Stephen,
>>
>>
>> On Thu, 12 Jun 2014 09:16:14 -0600
>> Stephen Warren <swarren at 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.


More information about the U-Boot mailing list