[OE-core] [PATCH] linux-dtb: Add simple DTB symlinks for devicetree
Maupin, Chase
chase.maupin at ti.com
Wed Apr 3 14:20:16 UTC 2013
> -----Original Message-----
> From: Darren Hart [mailto:dvhart at linux.intel.com]
> Sent: Tuesday, April 02, 2013 3:54 PM
> To: Maupin, Chase
> Cc: openembedded-core at lists.openembedded.org; Ashfield, Bruce
> Subject: Re: [OE-core] [PATCH] linux-dtb: Add simple DTB symlinks
> for devicetree
>
>
>
> On 03/29/2013 09:48 AM, Chase Maupin wrote:
> > * This is similar to the symlinks provided for the kernel image
> > in the /boot directory of a file system. The goal is to have
> > simply named symlinks in /boot that mirror the device tree
> > name in the kernel sources. This is so that programs like
> > U-Boot can easily find the default device tree binary in the
> > /boot directory and use that when booting the kernel.
> > * Use update-alternatives to handle proper creation and removal
> > of the symlinks.
>
> Hi Chase,
>
> So I have no experience myself with Device Tree. Adding Bruce A.
> for some
> additional review.
>
> I am going to assume this is the right thing to do for u-boot
> systems.
> Which devices have you verified this as working with?
OMAP5 uEVM and AM335x EVM. For these devices U-Boot does a simple extload from the /boot directory of the dtb. The goal here is to have the dtb name in /boot match the name that would be generated when you build the dtb in the kernel.
For example the omap5-uevm.dts file is compiled as omap5-uevm.dtb. So using a symlink with this standard naming makes it easier for u-boot to detect the device it is running on and look for the standard file name vs devicetree-uImage-omap5-evm.dtb.
Also, for people that want to load the dtb from other locations such as a different partition on the SD card they can still just copy the dtb file from the kernel build and not need to modify u-boot to use the different file name, just the location.
>
> >
> > Signed-off-by: Chase Maupin <Chase.Maupin at ti.com>
> > ---
> > meta/recipes-kernel/linux/linux-dtb.inc | 20
> ++++++++++++++++++++
> > 1 files changed, 20 insertions(+), 0 deletions(-)
> >
> > diff --git a/meta/recipes-kernel/linux/linux-dtb.inc
> b/meta/recipes-kernel/linux/linux-dtb.inc
> > index ec6c375..66cf255 100644
> > --- a/meta/recipes-kernel/linux/linux-dtb.inc
> > +++ b/meta/recipes-kernel/linux/linux-dtb.inc
> > @@ -45,3 +45,23 @@ do_deploy_append() {
> > done
> > fi
> > }
> > +
> > +pkg_postinst_kernel-devicetree () {
>
> Please use tabs for bash functions. Oddly, I see the only tabs in
> this
> file are in the anonymous python blocks. Doh.
>
> > + cd /${KERNEL_IMAGEDEST}
> > + for DTS_FILE in ${KERNEL_DEVICETREE}
> > + do
> > + DTS_BASE_NAME=`basename ${DTS_FILE} | awk -F "."
> '{print $1}'`
> > + DTB_NAME="devicetree-uImage-${DTS_BASE_NAME}.dtb"
>
>
> Is "uImage" always correct here? Or should we be using
> ${KERNEL_IMAGETYPE} here?
>
>
> > + update-alternatives --install
> /${KERNEL_IMAGEDEST}/${DTS_BASE_NAME}.dtb ${DTS_BASE_NAME}.dtb
> ${DTB_NAME} ${KERNEL_PRIORITY} || true
> > + done
> > +}
> > +
> > +pkg_postrm_kernel-devicetree () {
> > + cd /${KERNEL_IMAGEDEST}
> > + for DTS_FILE in ${KERNEL_DEVICETREE}
> > + do
> > + DTS_BASE_NAME=`basename ${DTS_FILE} | awk -F "."
> '{print $1}'`
> > + DTB_NAME="devicetree-uImage-${DTS_BASE_NAME}.dtb"
> > + update-alternatives --remove ${DTS_BASE_NAME}.dtb
> ${DTB_NAME} ${KERNEL_PRIORITY} || true
> > + done
> > +}
> >
>
> Thanks,
>
> --
> Darren Hart
> Intel Open Source Technology Center
> Yocto Project - Technical Lead - Linux Kernel
More information about the Openembedded-core
mailing list