
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.