Creating your own board support
===============================

Creating your own board support in Buildroot allows users of a
particular hardware platform to easily build a system that is known to
work.

To do so, you need to create a normal Buildroot configuration that
builds a basic system for the hardware: toolchain, kernel, bootloader,
filesystem and a simple Busybox-only userspace. No specific package
should be selected: the configuration should be as minimal as
possible, and should only build a working basic Busybox system for the
target platform. You can of course use more complicated configurations
for your internal projects, but the Buildroot project will only
integrate basic board configurations. This is because package
selections are highly application-specific.

Once you have a known working configuration, run +make
savedefconfig+. This will generate a minimal +defconfig+ file at the
root of the Buildroot source tree. Move this file into the +configs/+
directory, and rename it +MYBOARD_defconfig+.

It is recommended to use as much as possible upstream versions of the
Linux kernel and bootloaders, and to use as much as possible default
kernel and bootloader configurations. If they are incorrect for your
platform, we encourage you to send fixes to the corresponding upstream
projects.

However, in the mean time, you may want to store kernel or bootloader
configuration or patches specific to your target platform. To do so,
create a directory +board/MANUFACTURER+ and a subdirectory
+board/MANUFACTURER/BOARDNAME+ (after replacing, of course,
MANUFACTURER and BOARDNAME with the appropriate values, in lower case
letters). You can then store your patches and configurations in these
directories, and reference them from the main Buildroot configuration.
