[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