[yocto] undocumented/inconsistent use of KERNEL_DEVICETREE variable

Robert P. J. Day rpjday at crashcourse.ca
Thu Oct 24 08:46:06 PDT 2013


On Thu, 24 Oct 2013, Chris Larson wrote:

>
> On Thu, Oct 24, 2013 at 8:27 AM, Robert P. J. Day <rpjday at crashcourse.ca>
> wrote:
>         simple observation -- the KERNEL_DEVICETREE variable is not
>       mentioned in the ref manual variable glossary.
>
>         more weirdly, though, i've always been used to seeing it used
>       this
>       way, like in the meta-yocto-bsp layer (that is, referring to the
>       .dts
>       *source* files):
>
>       beagleboard.conf:KERNEL_DEVICETREE =
>       "${S}/arch/arm/boot/dts/omap3-beagle.dts
>       ${S}/arch/arm/boot/dts/omap3-beagle-xm.dts"
>       mpc8315e-rdb.conf:KERNEL_DEVICETREE =
>       "${S}/arch/powerpc/boot/dts/mpc8315erdb.dts"
>
>         but i just noticed this in the meta-fsl-asm layer:
>
>       meta-fsl-arm/conf/machine/imx23evk.conf:KERNEL_DEVICETREE =
>       "imx23-evk.dtb"
>       meta-fsl-arm/conf/machine/imx6dlsabresd.conf:KERNEL_DEVICETREE =
>       "imx6dl-sabresd.dtb"
>       meta-fsl-arm/conf/machine/imx6dlsabreauto.conf:KERNEL_DEVICETREE
>       = "imx6dl-sabreauto.dtb"
>       meta-fsl-arm/conf/machine/imx6qsabresd.conf:KERNEL_DEVICETREE =
>       "imx6q-sabresd.dtb"
>
>       where the variable contains references to the .dtb *blob* files.
>
>         is there a standard? recommended? either way fine?
>
>
> The behavior changed a couple months back.
> See 03b3e4b62f22a8ef435252c0401c5369defabe71 in poky, aka “linux-dtb: Use
> kernel build system to generate the dtb files”. The new style is the dtb
> filename, the others likely need updating, unless those bsp layers override
> the default linux-dtb behavior, afaik.

  ok, then -- as you suggest -- those entries in meta-yocto-bsp should
probably be updated unless there's something non-standard happening
there.

  amusingly, even though the meta-fsl-arm layer uses .dtb references,
it also supplies "image_types_fsl.bbclass", which contains the
processing loop:

  # Copy device tree file
  if test -n "${KERNEL_DEVICETREE}"; then
          for DTS_FILE in ${KERNEL_DEVICETREE}; do
                  DTS_BASE_NAME=`basename ${DTS_FILE} | awk -F "." '{print $1}'`
                  if [ -e "${KERNEL_IMAGETYPE}-${DTS_BASE_NAME}.dtb" ]; then
                  ... snip ...

which is kind of misleading since the loop assigns to the variable
DTS_FILE what are clearly .dtb filenames. minor, yes, but the kind of
thing that has the potential for confusion when reading code.

</pedantry>

rday

-- 

========================================================================
Robert P. J. Day                                 Ottawa, Ontario, CANADA
                        http://crashcourse.ca

Twitter:                                       http://twitter.com/rpjday
LinkedIn:                               http://ca.linkedin.com/in/rpjday
========================================================================


More information about the yocto mailing list