From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stephen Warren Date: Mon, 28 Jul 2014 11:24:04 -0600 Subject: [U-Boot] Refactoring of U-Boot directory structure In-Reply-To: References: <20140612131050.963A.AA925319@jp.panasonic.com> <5399C43E.2040401@wwwdotorg.org> <20140613161828.C3A9.AA925319@jp.panasonic.com> Message-ID: <53D68734.7010306@wwwdotorg.org> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 07/27/2014 09:31 PM, Simon Glass wrote: > Hi Stephen, > > On 13 June 2014 08:18, Masahiro Yamada wrote: >> Hi Stephen, >> >> >> On Thu, 12 Jun 2014 09:16:14 -0600 >> Stephen Warren 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.