[Buildroot] [PATCH 1/2] linux: install firmware to staging.

Spenser Gilliland spenser at gillilanding.com
Tue Jul 9 14:03:02 UTC 2013

Dear Thomas,

>> # This option can be selected by other packages that require special
>> # firmwares bundled in some fiorks of the Linux kernell (eg. the BBB
>> # capes firmwares (.dtbo) as distributed in the TI Linux kernel fork).
>> # To install other firmwares, please use the linux-firmware package.
> The thing that worries me here is that this .dtbo thing for capes is
> custom to the BBB kernel, and as far as I know, not in the upstream
> kernel. So it annoys me a bit to have this within the linux/linux.mk
> logic, because if we started to add vendor-specific logic in this
> generic kernel .mk file, where are we going to end?

This should be the only change required to support any in-kernel
firmware.  It's very vendor agnostic and can be useful for more than
just beagle-capes.  This also establishes precedent for how to handle
non-mainlined in-kernel firmware.

> In order to have a better understanding of the problem, could someone
> summarize how things work with those .dtbo? Where are they located
> source wise, how they are built, where they should be installed,
> how/when they are loaded/used in the system, etc.

The .dtbo are device tree overlay files, the device tree sources from
which they are made are located in <kernel>/firmware/capes.  They are
built using the device tree compiler (dtc). They should be installed
in /lib/firmware and are used by the in-kernel capebus manager on boot
to add support for the capes.  The kernel installs these dtbo when the
firmware_install target is built.

In the kernel, the capebus manager uses eeproms to determine which
capes are installed on the target and installs the needed dtbo for the
cape.  This creates the needed platform devices in the kernel.


Spenser Gilliland
Computer Engineer
Doctoral Candidate

More information about the buildroot mailing list