
On 03/17/2014 02:52 AM, Masahiro Yamada wrote:
In Kconfig, we use "*_defconfig" files for board configuration.
In Linux Kernel, they are located under arch/${ARCH}/configs/ directory. It works in Linux Kernel because ARCH is always given from the command line for cross compile.
But in U-Boot, ARCH is not given from the command line. Which means we cannot know ARCH before the board configuration. That is why "*_defconfig" files over all architectures should be moved into one directory ./configs/. (The problem is configs/ directory contains more than 1200 files!)
Besides, we must configure boards for SPL and TPL too if they are supported. For those boards, defconfig files with the same name are placed in spl/configs/, tpl/configs/ directories.
diff --git a/configs/beaver_defconfig b/configs/beaver_defconfig new file mode 100644 index 0000000..fbf00f3 --- /dev/null +++ b/configs/beaver_defconfig @@ -0,0 +1,10 @@ +CONFIG_SPL=y +CONFIG_ARM=y +CONFIG_SYS_CPU="armv7" +CONFIG_SOC_DIR=y +CONFIG_SYS_SOC="tegra30" +CONFIG_SYS_BOARD="beaver" +CONFIG_VENDOR_DIR=y +CONFIG_SYS_VENDOR="nvidia" +CONFIG_SYS_CONFIG_NAME="beaver" +CONFIG_BOARD_MAINTAINER="Tom Warren twarren@nvidia.com:Stephen Warren swarren@nvidia.com"
This is odd; defconfig in the Linux kernel is for defining values for user-editable configuration options. However, at least CONFIG_BOARD_MAINTAINERS is a property of the board port, not something the a user should be editing. Other values in this file feel very odd too. For example, I would expect selecting SYS_SOC=tegra30 it automatically select SYS_VENDOR, SYS_CPU, ARM, SPL, ...