[Buildroot] Storing board configuration ?

Thomas Petazzoni thomas.petazzoni at free-electrons.com
Sun Jun 20 12:35:35 UTC 2010


Hello,

The work on cleaning up the target/ directory has been making some
progress lately: bootloaders-cleanup has been merged, linux-cleanup has
been through a first review phase and Dmytro Milinevskyy has
contributed the cleanup of the filesystem skeleton.

The last big part is the "board support", i.e what allows to configure
Buildroot to build a system for a particular hardware board, without
the user having to worry about kernel/bootloader/toolchain details.

Instead of having configuration details defined in makefiles in
target/device, I'd like to use defconfigs instead.

However, defconfigs are not perfect : they are large and they get
out-dated pretty quickly because they must store the value of *every*
existing option.

For that reason, I'm wondering whether we should limit the defconfigs
to the important options for a particular board and remove all other
option values. This would leave ~30 lines to a human-written defconfig
instead of ~1000 lines of automatically-generated defconfigs.

A "mini-defconfig" could look like :

======================================================================
# General
BR2_HAVE_DOT_CONFIG=y
BR2_arm=y
BR2_arm926t=y
BR2_ARM_EABI=y
BR2_PROJECT="at91sam9263ek"
BR2_HOSTNAME="AT91SAM9263EK"

# Root filesystem
BR2_TARGET_ROOTFS_JFFS2=y
BR2_TARGET_ROOTFS_JFFS2_NANDFLASH_2K_128K=y
BR2_TARGET_ROOTFS_JFFS2_PAGESIZE=0x800
BR2_TARGET_ROOTFS_JFFS2_EBSIZE=0x20000
BR2_TARGET_ROOTFS_JFFS2_NOCLEANMARKER=y
BR2_TARGET_ROOTFS_JFFS2_PAD=y
BR2_TARGET_ROOTFS_JFFS2_PADSIZE=0x02000000
BR2_TARGET_ROOTFS_JFFS2_LE=y

# Boot
BR2_TARGET_UBOOT=y
BR2_TARGET_UBOOT_BOARDNAME="at91sam9263ek"
BR2_TARGET_UBOOT_2009_01=y
BR2_TARGET_AT91BOOTSTRAP=y
BR2_TARGET_AT91BOOTSTRAP_BOARD="at91sam9263ek"
BR2_TARGET_AT91BOOT_DATAFLASHCARD=y
BR2_AT91BOOTSTRAP_JUMP_TO_DEFAULT=y
BR2_AT91BOOTSTRAP_JUMP_ADDR="0x23F00000"

# Kernel
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_2_6_34=y
BR2_LINUX_KERNEL_USE_DEFCONFIG=y
BR2_LINUX_KERNEL_DEFCONFIG="at91sam9263ek"
======================================================================

But if we do that, we would have to modify the main Makefile so that
when an user does "make foobar_defconfig", configs/foobar_defconfig is
used and for all options non-specified in the defconfig, the default
options would be choosen. So something like :

%_defconfig: $(TOPDIR)/configs/%_defconfig
        cp $^ .config
        @yes "" | $(MAKE) oldconfig

What do you think about this ?

Regards,

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com


More information about the buildroot mailing list