Fwd: Standard location to install device tree files?

Paolo Pisati paolo.pisati at canonical.com
Fri May 23 09:53:35 UTC 2014

On Thu, May 22, 2014 at 06:05:34PM -0700, Steve Langasek wrote:
> Riku brought this up for discussion on #debian-arm the other day, and I
> argued against this proposal as an attempt to standardize something that
> doesn't need to be standardized.  Ubuntu (like Debian) already uses
> flash-kernel to ensure that if a dtb needs to be accessible to the
> bootloader, it's installed to an appropriate place. 

Actually we used flash-kernel because the bootloader was dumb and we had no
other choice:

back then u-boot could only read files from a fat fs, it required the kernel and
initramfs to be "converted" in a specific format, even the boot script had to in
a binary format and, last but not least, since we didn't update the bootloader
during upgrade, when newer kernel started to require a dtb to boot, the only way
to keep those old bootloaders functional was to pass down a dtb attached to the
back of the kernel - that's why used flash-kernel, because the bootloader wasn't
there yet and we had to jump through all those hoops to get a board to boot.

Luckily u-boot matured a lot since then: it can read files from extX
filesystems, it can boot vanilla zimage files and, finally, the bootloader has
enough logic to distinguish between different board revisions and choose which
dtb file we should use with the actual board.

Sum all this together and if we can standardize on a place where those dtbs are
available to u-boot, we achieve two things:

1) create an installation that you can move from one system to another -
(provided the kernel have the necessary soc-dependent code compiled in and the
system have a bootloader embedded (e.g. resident in flash))

2) remove flash-kernel as a dependency from the kernel package

> Putting other dtbs that
> are *not* used by the bootloader on the currently-installed platform into
> /boot is wrong from an FHS standpoint.

As i said above, we are moving from a world where arm linux installation were
targeted for a single system to a world where you can do your installation on a
system and then move the sd card/hard disk to a different one or, see
it this other way, sooner we will be able to create a single ubuntu arm
image (much like we do for x86/amd64) that runs on a wide variery of arm socs
and one of the roadblock is the availabilty of the correct dtb at boot time.

Anyway, the discussion about where to put those files and what the name of this
symlink is going to be is continuing on the cross-distro ml, if you have any
concern i think you should express it there.

More information about the kernel-team mailing list