[U-Boot] [RFC PATCH 0/4] Run-time configuration of U-Boot via a flat device tree (fdt)

Jerry Van Baren gvb.uboot at gmail.com
Fri Sep 2 13:42:32 CEST 2011


Hi Simon,

On 09/01/2011 04:49 PM, Simon Glass wrote:
> At present in U-Boot configuration is mostly done using CONFIG options in the
> board file. This patch set aims to make it possible for a single U-Boot
> binary to support multiple boards, with the exact configuration of each board
> controlled by a flat device tree (fdt). This is the approach recently taken
> by the ARM Linux kernel and has been used by PowerPC for some time.

Very exciting.  I've thought about doing this for years, but never had 
the ambition (or time).

[snip]

> and add some defines to your board (only ARM is currently supported):
>
>   #define CONFIG_OF_CONTROL       (to enable run-time config control via fdt)
>   #define CONFIG_OF_EMBED or CONFIG_OF_SEPARATE
>       (either build the fdt blob into U-Boot, or create a separate u-boot.dtb)
>   #define CONFIG_DEFAULT_DEVICE_TREE	"<your name>"
>       (to specify the name of the device tree file is
>        board/<vendor>/<board>/<your name>.dts)
>
> This patch set does not include any drivers which actually use the fdt. I have
> some concerns about spreading fdt code around the U-Boot code base so am
> thinking of having a support file which makes this easier. I can provide a
> UART driver modified to use fdt if there is interest.

Please.  A concrete reference is very useful, especially for discussion.

> It is important to understand that the fdt only selects options available in
> the platform / drivers. It cannot add new drivers (yet). So you must still
> have the CONFIG option to enable the driver. For example, you need to define
> CONFIG_SYS_NS16550 to bring in the NS16550 driver, but can use the fdt to
> specific the UART clock, peripheral address, etc. In very broad terms, the
> CONFIG options in general control *what* driver files are pulled in, and the
> fdt controls *how* those files work.

Sounds reasonable and practical.  One of the things u-boot struggles 
with is staying small (but it is nice to be able to make it all 
inclusive and big if you have the flash).

> While only ARM is supported in this patch series, it should be easy enough to
> add support for other architectures.

Exercise left for the students.  :-)

[snip]

Thanks!
gvb


More information about the U-Boot mailing list