On Thu, 22 May 2014 10:50:48 +0100 Ian Campbell ijc@hellion.org.uk wrote:
On Wed, 2014-05-21 at 14:39 +0300, Riku Voipio wrote:
Hi,
I've collected a list of where people install their dtb files these days;
https://wiki.linaro.org/Platform/DeviceTreeConsolidation
Every distribution has a slightly different variation of install location, which is not good - we can't tell end users that "this is the place you can expect to find your device tree files regardless of what distribution you choose". Some questions I have here before we proceed discussing what would be the standardized location:
- Anything missing of the pros and cons of different locations?
FWIW Debian will now arrange for the correct DTB for the platform to be installed as /boot/dtb-$(uname -r) as well as the /usr/lib location.
WRT the use of `uname -r` and DTB as stable ABI, might it be sensible to declare a search path type arrangement? i.e. try /path/with-uname-r/dtb then /path/dtb ? For example people might consider packaging https://git.kernel.org/cgit/linux/kernel/git/devicetree/devicetree-rebasing.... which doesn't have a uname in it.
- Are you interested in moving to a standardized location if
cross-distro list proposes one?
Installing the dtb for the current platform into some known location easily accessed from bootloaders seems reasonable enough.
I'm more or less ambivalent about installing all of the possible DTB files in a similar location though. I'm not sure what the use case for that is. Wouldn't you also need to standardise on the dtb filename for each platform and effectively make that ABI?
u-boot 2014.04 added an option to the syslinux config support for a fdtdir entry which is a directory where u-boot can find the dtbs it relies on the platforms u-boot having a variable fdtfile to know which file to load for the platform
the syslinux config file is looked for in /boot/extlinux/extlinux.conf and /extlinux/extlinux.conf
contents is
timeout 20 totaltimeout 9000
default=Fedora (3.15.0-0.rc5.git2.9.fc21.armv7hl) 21 (Rawhide) label Fedora (3.15.0-0.rc5.git3.1.fc21.armv7hl) 21 (Rawhide) kernel /vmlinuz-3.15.0-0.rc5.git3.1.fc21.armv7hl fdtdir /dtb-3.15.0-0.rc5.git3.1.fc21.armv7hl/ append console=ttymxc0,115200 root=UUID=7ee85ed8-de4a-4779-8658-2daed0d35e97 ro rhgb quiet LANG=en_US.UTF-8 initrd /initramfs-3.15.0-0.rc5.git3.1.fc21.armv7hl.img
label Fedora (3.15.0-0.rc5.git2.9.fc21.armv7hl) 21 (Rawhide) kernel /vmlinuz-3.15.0-0.rc5.git2.9.fc21.armv7hl fdtdir /dtb-3.15.0-0.rc5.git2.9.fc21.armv7hl/ append console=ttymxc0,115200 root=UUID=7ee85ed8-de4a-4779-8658-2daed0d35e97 ro rhgb quiet LANG=en_US.UTF-8 initrd /initramfs-3.15.0-0.rc5.git2.9.fc21.armv7hl.img
So in theory you can pull a sdcard or hdd from one machine and boot it in another, in practice as so many vendors do not ship u-boot on some kind of local storage you need to put the right u-boot into the disk first.
Dennis