[U-Boot] Refactoring of U-Boot directory structure
Masahiro Yamada
yamada.m at jp.panasonic.com
Thu Jun 12 06:10:51 CEST 2014
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
More information about the U-Boot
mailing list