
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