Re: [OE-core] [PATCH v2] linux-dtb: Use kernel build system to generate the dtb files

2013-08-20 Thread Mike Looijmans
I cannot get this to work, do_install fails because it cannot find the 
generated .dtb file.


See further in the message:

On 08/13/2013 03:52 PM, Otavio Salvador wrote:

As the Linux kernel, unconditionally, builds the dtc application and
it is the compatible version with the DeviceTree files shipped within
the kernel it is better to use it and the kernel build system to
generate the dtb files.

Some DeviceTree files rely on CPP and kernel headers to be able to
generate the dtb binary contents and it is harder to replicate it
outside of Linux kernel build system so we /use/ it.

To comply with these assumptions we need to use the dtb file when
calling 'make' instead of pointing to the DeviceTree source file; the
code has been made backward compatible but it is advised to move to
the new definition to avoid warnings as:

,[ Original definition ]
| KERNEL_DEVICETREE = ${S}/arch/arm/boot/dts/imx6q-sabresd.dts
`

Becomes:

,[ New definition ]
| KERNEL_DEVICETREE = imx6q-sabresd.dtb
`


Signed-off-by: Otavio Salvador ota...@ossystems.com.br
---
Changes in v2:
- Drop debug warning left by mistake
- Improve bbwarn message (Bruce Ashfield)
- Improve commit log (Bruce Ascfield)

  meta/recipes-kernel/linux/linux-dtb.inc | 58 +++--
  1 file changed, 26 insertions(+), 32 deletions(-)

diff --git a/meta/recipes-kernel/linux/linux-dtb.inc 
b/meta/recipes-kernel/linux/linux-dtb.inc
index 41dd599..cebc76a 100644
--- a/meta/recipes-kernel/linux/linux-dtb.inc
+++ b/meta/recipes-kernel/linux/linux-dtb.inc
@@ -1,44 +1,38 @@
  # Support for device tree generation
  FILES_kernel-devicetree = /${KERNEL_IMAGEDEST}/devicetree*
-KERNEL_DEVICETREE_FLAGS ?= -R 8 -p 0x3000

  python __anonymous () {
-devicetree = d.getVar(KERNEL_DEVICETREE, True) or ''
-if devicetree:
-depends = d.getVar(DEPENDS, True)
-d.setVar(DEPENDS, %s dtc-native % depends)
-packages = d.getVar(PACKAGES, True)
-d.setVar(PACKAGES, %s kernel-devicetree % packages)
+d.appendVar(PACKAGES,  kernel-devicetree)
  }

  do_install_append() {
if test -n ${KERNEL_DEVICETREE}; then
-   for DTS_FILE in ${KERNEL_DEVICETREE}; do
-   if [ ! -f ${DTS_FILE} ]; then
-   echo Warning: ${DTS_FILE} is not available!
-   continue
+   for DTB in ${KERNEL_DEVICETREE}; do
+   if echo ${DTB} | grep -q '/dts/'; then
+   bbwarn ${DTB} contains the full path to the the dts 
file, but only the dtb name should be used.
+   DTB=`basename ${DTB} | sed 's,\.dts$,.dtb,g'`
fi
-   DTS_BASE_NAME=`basename ${DTS_FILE} | awk -F . 
'{print $1}'`
-   DTB_NAME=`echo ${KERNEL_IMAGE_BASE_NAME} | sed 
s/${MACHINE}/${DTS_BASE_NAME}/g`
-   DTB_SYMLINK_NAME=`echo ${KERNEL_IMAGE_SYMLINK_NAME} | sed 
s/${MACHINE}/${DTS_BASE_NAME}/g`
-   dtc -I dts -O dtb ${KERNEL_DEVICETREE_FLAGS} -o 
${DTS_BASE_NAME} ${DTS_FILE}
-   install -m 0644 ${DTS_BASE_NAME} 
${D}/${KERNEL_IMAGEDEST}/devicetree-${DTB_SYMLINK_NAME}.dtb
+   DTB_BASE_NAME=`basename ${DTB} .dtb`
+   DTB_NAME=`echo ${KERNEL_IMAGE_BASE_NAME} | sed 
s/${MACHINE}/${DTB_BASE_NAME}/g`
+   DTB_SYMLINK_NAME=`echo ${KERNEL_IMAGE_SYMLINK_NAME} | sed 
s/${MACHINE}/${DTB_BASE_NAME}/g`
+   oe_runmake ${DTB}
+   install -m 0644 ${B}/arch/${ARCH}/boot/${DTB} 
${D}/${KERNEL_IMAGEDEST}/devicetree-${DTB_SYMLINK_NAME}.dtb


This fails now, because  ${B}/arch/${ARCH}/boot/${DTB} cannot be found. 
The dtb file is in the dts subdirectory, so should this line read:


+			install -m 0644 ${B}/arch/${ARCH}/boot/dts/${DTB} 
${D}/${KERNEL_IMAGEDEST}/devicetree-${DTB_SYMLINK_NAME}.dtb


I wonder why this works on your system?



done
fi
  }

  do_deploy_append() {
if test -n ${KERNEL_DEVICETREE}; then
-   for DTS_FILE in ${KERNEL_DEVICETREE}; do
-   if [ ! -f ${DTS_FILE} ]; then
-   echo Warning: ${DTS_FILE} is not available!
-   continue
+   for DTB in ${KERNEL_DEVICETREE}; do
+   if echo ${DTB} | grep -q '/dts/'; then
+   bbwarn ${DTB} contains the full path to the the dts 
file, but only the dtb name should be used.
+   DTB=`basename ${DTB} | sed 's,\.dts$,.dtb,g'`
fi
-   DTS_BASE_NAME=`basename ${DTS_FILE} | awk -F . 
'{print $1}'`
-   DTB_NAME=`echo ${KERNEL_IMAGE_BASE_NAME} | sed 
s/${MACHINE}/${DTS_BASE_NAME}/g`
-   DTB_SYMLINK_NAME=`echo ${KERNEL_IMAGE_SYMLINK_NAME} | sed 

Re: [OE-core] [PATCH v2] linux-dtb: Use kernel build system to generate the dtb files

2013-08-20 Thread Otavio Salvador
On Tue, Aug 20, 2013 at 6:55 AM, Mike Looijmans mike.looijm...@topic.nl wrote:
 I cannot get this to work, do_install fails because it cannot find the
 generated .dtb file.

Yes and I sent another patch, few days ago, to address this
regression. I think it is queued for merging.

http://patchwork.openembedded.org/patch/55951/

-- 
Otavio Salvador O.S. Systems
http://www.ossystems.com.brhttp://code.ossystems.com.br
Mobile: +55 (53) 9981-7854Mobile: +1 (347) 903-9750
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH v2] linux-dtb: Use kernel build system to generate the dtb files

2013-08-14 Thread André Draszik
Hi,

Can this please be pushed to dylan as well, please. It's a useful
change, and I then could remove my version of that patch from our
layer :-)


Cheers,
Andre'

On Tue, 2013-08-13 at 10:52 -0300, Otavio Salvador wrote:
 As the Linux kernel, unconditionally, builds the dtc application and
 it is the compatible version with the DeviceTree files shipped within
 the kernel it is better to use it and the kernel build system to
 generate the dtb files.
 
 Some DeviceTree files rely on CPP and kernel headers to be able to
 generate the dtb binary contents and it is harder to replicate it
 outside of Linux kernel build system so we /use/ it.
 
 To comply with these assumptions we need to use the dtb file when
 calling 'make' instead of pointing to the DeviceTree source file; the
 code has been made backward compatible but it is advised to move to
 the new definition to avoid warnings as:
 
 ,[ Original definition ]
 | KERNEL_DEVICETREE = ${S}/arch/arm/boot/dts/imx6q-sabresd.dts
 `
 
 Becomes:
 
 ,[ New definition ]
 | KERNEL_DEVICETREE = imx6q-sabresd.dtb
 `
 
 
 Signed-off-by: Otavio Salvador ota...@ossystems.com.br
 ---
 Changes in v2:
 - Drop debug warning left by mistake
 - Improve bbwarn message (Bruce Ashfield)
 - Improve commit log (Bruce Ascfield)
 
  meta/recipes-kernel/linux/linux-dtb.inc | 58 
 +++--
  1 file changed, 26 insertions(+), 32 deletions(-)
 
 diff --git a/meta/recipes-kernel/linux/linux-dtb.inc 
 b/meta/recipes-kernel/linux/linux-dtb.inc
 index 41dd599..cebc76a 100644
 --- a/meta/recipes-kernel/linux/linux-dtb.inc
 +++ b/meta/recipes-kernel/linux/linux-dtb.inc
 @@ -1,44 +1,38 @@
  # Support for device tree generation
  FILES_kernel-devicetree = /${KERNEL_IMAGEDEST}/devicetree*
 -KERNEL_DEVICETREE_FLAGS ?= -R 8 -p 0x3000
  
  python __anonymous () {
 -devicetree = d.getVar(KERNEL_DEVICETREE, True) or ''
 -if devicetree:
 -depends = d.getVar(DEPENDS, True)
 -d.setVar(DEPENDS, %s dtc-native % depends)
 -packages = d.getVar(PACKAGES, True)
 -d.setVar(PACKAGES, %s kernel-devicetree % packages)
 +d.appendVar(PACKAGES,  kernel-devicetree)
  }
  
  do_install_append() {
   if test -n ${KERNEL_DEVICETREE}; then
 - for DTS_FILE in ${KERNEL_DEVICETREE}; do
 - if [ ! -f ${DTS_FILE} ]; then
 - echo Warning: ${DTS_FILE} is not available!
 - continue
 + for DTB in ${KERNEL_DEVICETREE}; do
 + if echo ${DTB} | grep -q '/dts/'; then
 + bbwarn ${DTB} contains the full path to the 
 the dts file, but only the dtb name should be used.
 + DTB=`basename ${DTB} | sed 's,\.dts$,.dtb,g'`
   fi
 - DTS_BASE_NAME=`basename ${DTS_FILE} | awk -F . 
 '{print $1}'`
 - DTB_NAME=`echo ${KERNEL_IMAGE_BASE_NAME} | sed 
 s/${MACHINE}/${DTS_BASE_NAME}/g`
 - DTB_SYMLINK_NAME=`echo ${KERNEL_IMAGE_SYMLINK_NAME} | 
 sed s/${MACHINE}/${DTS_BASE_NAME}/g`
 - dtc -I dts -O dtb ${KERNEL_DEVICETREE_FLAGS} -o 
 ${DTS_BASE_NAME} ${DTS_FILE}
 - install -m 0644 ${DTS_BASE_NAME} 
 ${D}/${KERNEL_IMAGEDEST}/devicetree-${DTB_SYMLINK_NAME}.dtb
 + DTB_BASE_NAME=`basename ${DTB} .dtb`
 + DTB_NAME=`echo ${KERNEL_IMAGE_BASE_NAME} | sed 
 s/${MACHINE}/${DTB_BASE_NAME}/g`
 + DTB_SYMLINK_NAME=`echo ${KERNEL_IMAGE_SYMLINK_NAME} | 
 sed s/${MACHINE}/${DTB_BASE_NAME}/g`
 + oe_runmake ${DTB}
 + install -m 0644 ${B}/arch/${ARCH}/boot/${DTB} 
 ${D}/${KERNEL_IMAGEDEST}/devicetree-${DTB_SYMLINK_NAME}.dtb
   done
   fi
  }
  
  do_deploy_append() {
   if test -n ${KERNEL_DEVICETREE}; then
 - for DTS_FILE in ${KERNEL_DEVICETREE}; do
 - if [ ! -f ${DTS_FILE} ]; then
 - echo Warning: ${DTS_FILE} is not available!
 - continue
 + for DTB in ${KERNEL_DEVICETREE}; do
 + if echo ${DTB} | grep -q '/dts/'; then
 + bbwarn ${DTB} contains the full path to the 
 the dts file, but only the dtb name should be used.
 + DTB=`basename ${DTB} | sed 's,\.dts$,.dtb,g'`
   fi
 - DTS_BASE_NAME=`basename ${DTS_FILE} | awk -F . 
 '{print $1}'`
 - DTB_NAME=`echo ${KERNEL_IMAGE_BASE_NAME} | sed 
 s/${MACHINE}/${DTS_BASE_NAME}/g`
 - DTB_SYMLINK_NAME=`echo ${KERNEL_IMAGE_SYMLINK_NAME} | 
 sed s/${MACHINE}/${DTS_BASE_NAME}/g`
 + DTB_BASE_NAME=`basename ${DTB} .dtb`
 + DTB_NAME=`echo ${KERNEL_IMAGE_BASE_NAME} | sed 
 s/${MACHINE}/${DTB_BASE_NAME}/g`
 + DTB_SYMLINK_NAME=`echo 

Re: [OE-core] [PATCH v2] linux-dtb: Use kernel build system to generate the dtb files

2013-08-14 Thread Mike Looijmans


On 08/13/2013 03:52 PM, Otavio Salvador wrote:

As the Linux kernel, unconditionally, builds the dtc application and
it is the compatible version with the DeviceTree files shipped within
the kernel it is better to use it and the kernel build system to
generate the dtb files.

Some DeviceTree files rely on CPP and kernel headers to be able to
generate the dtb binary contents and it is harder to replicate it
outside of Linux kernel build system so we /use/ it.

To comply with these assumptions we need to use the dtb file when
calling 'make' instead of pointing to the DeviceTree source file; the
code has been made backward compatible but it is advised to move to
the new definition to avoid warnings as:

,[ Original definition ]
| KERNEL_DEVICETREE = ${S}/arch/arm/boot/dts/imx6q-sabresd.dts
`

Becomes:

,[ New definition ]
| KERNEL_DEVICETREE = imx6q-sabresd.dtb
`


I currently have a bbappend that adds a DTB file from outside the 
kernel (listing driver configuration that is implemented in the FPGA 
part of the SOC). The DTB file /include/s files from the kernel (that 
is, it gets everything from the standard files and adds a single device).


How would I go about adding this after this change?

(as for the change itself, I'm all in favor)

Mike.


Met vriendelijke groet / kind regards,

Mike Looijmans

TOPIC Embedded Systems
Eindhovenseweg 32-C, NL-5683 KH Best
Postbus 440, NL-5680 AK Best
Telefoon: (+31) – (0)499 - 33.69.79
Telefax: (+31) - (0)499 - 33.69.70
E-mail: mike.looijm...@topic.nl
Website: www.topic.nl

Dit e-mail bericht en de eventueel daarbij behorende bijlagen zijn uitsluitend 
bestemd voor de geadresseerde, zoals die blijkt uit het e-mail bericht en/of de 
bijlagen. Er kunnen gegevens met betrekking tot een derde instaan. Indien u als 
niet-geadresseerde dit bericht en de bijlagen ontvangt, terwijl u niet bevoegd 
of gemachtigd bent om dit bericht namens de geadresseerde te ontvangen, wordt u 
verzocht de afzender hierover direct te informeren en het e-mail bericht met de 
bijlagen te vernietigen. Ieder gebruik van de inhoud van het e-mail bericht, 
waaronder de daarbij behorende bijlagen, door een ander dan de geadresseerde is 
onrechtmatig jegens ons dan wel de eventueel in het e-mail bericht of de 
bijlagen voorkomende andere personen. TOPIC Embedded Systems is niet 
aansprakelijk voor enigerlei schade voortvloeiend uit het gebruik en/of 
acceptatie van dit e-mail bericht of de daarbij behorende bijlagen.

The contents of this message, as well as any enclosures, are addressed 
personally to, and thus solely intended for the addressee. They may contain 
information regarding a third party. A recipient who is neither the addressee, 
nor empowered to receive this message on behalf of the addressee, is kindly 
requested to immediately inform the sender of receipt, and to destroy the 
message and the enclosures. Any use of the contents of this message and/or the 
enclosures by any other person than the addressee or person who is empowered to 
receive this message, is illegal towards the sender and/or the aforementioned 
third party. TOPIC Embedded Systems is not  liable for any damage as a result 
of the use and/or acceptance of this message and as well as any enclosures.
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH v2] linux-dtb: Use kernel build system to generate the dtb files

2013-08-14 Thread Otavio Salvador
On Wed, Aug 14, 2013 at 11:17 AM, Mike Looijmans
mike.looijm...@topic.nl wrote:

 On 08/13/2013 03:52 PM, Otavio Salvador wrote:

 As the Linux kernel, unconditionally, builds the dtc application and
 it is the compatible version with the DeviceTree files shipped within
 the kernel it is better to use it and the kernel build system to
 generate the dtb files.

 Some DeviceTree files rely on CPP and kernel headers to be able to
 generate the dtb binary contents and it is harder to replicate it
 outside of Linux kernel build system so we /use/ it.

 To comply with these assumptions we need to use the dtb file when
 calling 'make' instead of pointing to the DeviceTree source file; the
 code has been made backward compatible but it is advised to move to
 the new definition to avoid warnings as:

 ,[ Original definition ]
 | KERNEL_DEVICETREE = ${S}/arch/arm/boot/dts/imx6q-sabresd.dts
 `

 Becomes:

 ,[ New definition ]
 | KERNEL_DEVICETREE = imx6q-sabresd.dtb
 `


 I currently have a bbappend that adds a DTB file from outside the kernel
 (listing driver configuration that is implemented in the FPGA part of the
 SOC). The DTB file /include/s files from the kernel (that is, it gets
 everything from the standard files and adds a single device).

 How would I go about adding this after this change?

Apply a patch?

-- 
Otavio Salvador O.S. Systems
http://www.ossystems.com.brhttp://projetos.ossystems.com.br
Mobile: +55 (53) 9981-7854Mobile: +1 (347) 903-9750
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH v2] linux-dtb: Use kernel build system to generate the dtb files

2013-08-13 Thread Otavio Salvador
As the Linux kernel, unconditionally, builds the dtc application and
it is the compatible version with the DeviceTree files shipped within
the kernel it is better to use it and the kernel build system to
generate the dtb files.

Some DeviceTree files rely on CPP and kernel headers to be able to
generate the dtb binary contents and it is harder to replicate it
outside of Linux kernel build system so we /use/ it.

To comply with these assumptions we need to use the dtb file when
calling 'make' instead of pointing to the DeviceTree source file; the
code has been made backward compatible but it is advised to move to
the new definition to avoid warnings as:

,[ Original definition ]
| KERNEL_DEVICETREE = ${S}/arch/arm/boot/dts/imx6q-sabresd.dts
`

Becomes:

,[ New definition ]
| KERNEL_DEVICETREE = imx6q-sabresd.dtb
`


Signed-off-by: Otavio Salvador ota...@ossystems.com.br
---
Changes in v2:
- Drop debug warning left by mistake
- Improve bbwarn message (Bruce Ashfield)
- Improve commit log (Bruce Ascfield)

 meta/recipes-kernel/linux/linux-dtb.inc | 58 +++--
 1 file changed, 26 insertions(+), 32 deletions(-)

diff --git a/meta/recipes-kernel/linux/linux-dtb.inc 
b/meta/recipes-kernel/linux/linux-dtb.inc
index 41dd599..cebc76a 100644
--- a/meta/recipes-kernel/linux/linux-dtb.inc
+++ b/meta/recipes-kernel/linux/linux-dtb.inc
@@ -1,44 +1,38 @@
 # Support for device tree generation
 FILES_kernel-devicetree = /${KERNEL_IMAGEDEST}/devicetree*
-KERNEL_DEVICETREE_FLAGS ?= -R 8 -p 0x3000
 
 python __anonymous () {
-devicetree = d.getVar(KERNEL_DEVICETREE, True) or ''
-if devicetree:
-depends = d.getVar(DEPENDS, True)
-d.setVar(DEPENDS, %s dtc-native % depends)
-packages = d.getVar(PACKAGES, True)
-d.setVar(PACKAGES, %s kernel-devicetree % packages)
+d.appendVar(PACKAGES,  kernel-devicetree)
 }
 
 do_install_append() {
if test -n ${KERNEL_DEVICETREE}; then
-   for DTS_FILE in ${KERNEL_DEVICETREE}; do
-   if [ ! -f ${DTS_FILE} ]; then
-   echo Warning: ${DTS_FILE} is not available!
-   continue
+   for DTB in ${KERNEL_DEVICETREE}; do
+   if echo ${DTB} | grep -q '/dts/'; then
+   bbwarn ${DTB} contains the full path to the 
the dts file, but only the dtb name should be used.
+   DTB=`basename ${DTB} | sed 's,\.dts$,.dtb,g'`
fi
-   DTS_BASE_NAME=`basename ${DTS_FILE} | awk -F . 
'{print $1}'`
-   DTB_NAME=`echo ${KERNEL_IMAGE_BASE_NAME} | sed 
s/${MACHINE}/${DTS_BASE_NAME}/g`
-   DTB_SYMLINK_NAME=`echo ${KERNEL_IMAGE_SYMLINK_NAME} | 
sed s/${MACHINE}/${DTS_BASE_NAME}/g`
-   dtc -I dts -O dtb ${KERNEL_DEVICETREE_FLAGS} -o 
${DTS_BASE_NAME} ${DTS_FILE}
-   install -m 0644 ${DTS_BASE_NAME} 
${D}/${KERNEL_IMAGEDEST}/devicetree-${DTB_SYMLINK_NAME}.dtb
+   DTB_BASE_NAME=`basename ${DTB} .dtb`
+   DTB_NAME=`echo ${KERNEL_IMAGE_BASE_NAME} | sed 
s/${MACHINE}/${DTB_BASE_NAME}/g`
+   DTB_SYMLINK_NAME=`echo ${KERNEL_IMAGE_SYMLINK_NAME} | 
sed s/${MACHINE}/${DTB_BASE_NAME}/g`
+   oe_runmake ${DTB}
+   install -m 0644 ${B}/arch/${ARCH}/boot/${DTB} 
${D}/${KERNEL_IMAGEDEST}/devicetree-${DTB_SYMLINK_NAME}.dtb
done
fi
 }
 
 do_deploy_append() {
if test -n ${KERNEL_DEVICETREE}; then
-   for DTS_FILE in ${KERNEL_DEVICETREE}; do
-   if [ ! -f ${DTS_FILE} ]; then
-   echo Warning: ${DTS_FILE} is not available!
-   continue
+   for DTB in ${KERNEL_DEVICETREE}; do
+   if echo ${DTB} | grep -q '/dts/'; then
+   bbwarn ${DTB} contains the full path to the 
the dts file, but only the dtb name should be used.
+   DTB=`basename ${DTB} | sed 's,\.dts$,.dtb,g'`
fi
-   DTS_BASE_NAME=`basename ${DTS_FILE} | awk -F . 
'{print $1}'`
-   DTB_NAME=`echo ${KERNEL_IMAGE_BASE_NAME} | sed 
s/${MACHINE}/${DTS_BASE_NAME}/g`
-   DTB_SYMLINK_NAME=`echo ${KERNEL_IMAGE_SYMLINK_NAME} | 
sed s/${MACHINE}/${DTS_BASE_NAME}/g`
+   DTB_BASE_NAME=`basename ${DTB} .dtb`
+   DTB_NAME=`echo ${KERNEL_IMAGE_BASE_NAME} | sed 
s/${MACHINE}/${DTB_BASE_NAME}/g`
+   DTB_SYMLINK_NAME=`echo ${KERNEL_IMAGE_SYMLINK_NAME} | 
sed s/${MACHINE}/${DTB_BASE_NAME}/g`
install -d ${DEPLOYDIR}
-   install -m 0644 ${B}/${DTS_BASE_NAME} 
${DEPLOYDIR}/${DTB_NAME}.dtb
+   install -m 0644 

Re: [OE-core] [PATCH v2] linux-dtb: Use kernel build system to generate the dtb files

2013-08-13 Thread Bruce Ashfield

On 13-08-13 09:52 AM, Otavio Salvador wrote:

As the Linux kernel, unconditionally, builds the dtc application and
it is the compatible version with the DeviceTree files shipped within
the kernel it is better to use it and the kernel build system to
generate the dtb files.

Some DeviceTree files rely on CPP and kernel headers to be able to
generate the dtb binary contents and it is harder to replicate it
outside of Linux kernel build system so we /use/ it.

To comply with these assumptions we need to use the dtb file when
calling 'make' instead of pointing to the DeviceTree source file; the
code has been made backward compatible but it is advised to move to
the new definition to avoid warnings as:

,[ Original definition ]
| KERNEL_DEVICETREE = ${S}/arch/arm/boot/dts/imx6q-sabresd.dts
`

Becomes:

,[ New definition ]
| KERNEL_DEVICETREE = imx6q-sabresd.dtb
`


Signed-off-by: Otavio Salvador ota...@ossystems.com.br


This passed a build test on the yocto reference mpc8315e-rdb, so at
least in a simple case, it worked for me.

Acked-by: Bruce Ashfield bruce.ashfi...@windriver.com


---
Changes in v2:
- Drop debug warning left by mistake
- Improve bbwarn message (Bruce Ashfield)
- Improve commit log (Bruce Ascfield)

  meta/recipes-kernel/linux/linux-dtb.inc | 58 +++--
  1 file changed, 26 insertions(+), 32 deletions(-)

diff --git a/meta/recipes-kernel/linux/linux-dtb.inc 
b/meta/recipes-kernel/linux/linux-dtb.inc
index 41dd599..cebc76a 100644
--- a/meta/recipes-kernel/linux/linux-dtb.inc
+++ b/meta/recipes-kernel/linux/linux-dtb.inc
@@ -1,44 +1,38 @@
  # Support for device tree generation
  FILES_kernel-devicetree = /${KERNEL_IMAGEDEST}/devicetree*
-KERNEL_DEVICETREE_FLAGS ?= -R 8 -p 0x3000

  python __anonymous () {
-devicetree = d.getVar(KERNEL_DEVICETREE, True) or ''
-if devicetree:
-depends = d.getVar(DEPENDS, True)
-d.setVar(DEPENDS, %s dtc-native % depends)
-packages = d.getVar(PACKAGES, True)
-d.setVar(PACKAGES, %s kernel-devicetree % packages)
+d.appendVar(PACKAGES,  kernel-devicetree)
  }

  do_install_append() {
if test -n ${KERNEL_DEVICETREE}; then
-   for DTS_FILE in ${KERNEL_DEVICETREE}; do
-   if [ ! -f ${DTS_FILE} ]; then
-   echo Warning: ${DTS_FILE} is not available!
-   continue
+   for DTB in ${KERNEL_DEVICETREE}; do
+   if echo ${DTB} | grep -q '/dts/'; then
+   bbwarn ${DTB} contains the full path to the the dts 
file, but only the dtb name should be used.
+   DTB=`basename ${DTB} | sed 's,\.dts$,.dtb,g'`
fi
-   DTS_BASE_NAME=`basename ${DTS_FILE} | awk -F . 
'{print $1}'`
-   DTB_NAME=`echo ${KERNEL_IMAGE_BASE_NAME} | sed 
s/${MACHINE}/${DTS_BASE_NAME}/g`
-   DTB_SYMLINK_NAME=`echo ${KERNEL_IMAGE_SYMLINK_NAME} | sed 
s/${MACHINE}/${DTS_BASE_NAME}/g`
-   dtc -I dts -O dtb ${KERNEL_DEVICETREE_FLAGS} -o 
${DTS_BASE_NAME} ${DTS_FILE}
-   install -m 0644 ${DTS_BASE_NAME} 
${D}/${KERNEL_IMAGEDEST}/devicetree-${DTB_SYMLINK_NAME}.dtb
+   DTB_BASE_NAME=`basename ${DTB} .dtb`
+   DTB_NAME=`echo ${KERNEL_IMAGE_BASE_NAME} | sed 
s/${MACHINE}/${DTB_BASE_NAME}/g`
+   DTB_SYMLINK_NAME=`echo ${KERNEL_IMAGE_SYMLINK_NAME} | sed 
s/${MACHINE}/${DTB_BASE_NAME}/g`
+   oe_runmake ${DTB}
+   install -m 0644 ${B}/arch/${ARCH}/boot/${DTB} 
${D}/${KERNEL_IMAGEDEST}/devicetree-${DTB_SYMLINK_NAME}.dtb
done
fi
  }

  do_deploy_append() {
if test -n ${KERNEL_DEVICETREE}; then
-   for DTS_FILE in ${KERNEL_DEVICETREE}; do
-   if [ ! -f ${DTS_FILE} ]; then
-   echo Warning: ${DTS_FILE} is not available!
-   continue
+   for DTB in ${KERNEL_DEVICETREE}; do
+   if echo ${DTB} | grep -q '/dts/'; then
+   bbwarn ${DTB} contains the full path to the the dts 
file, but only the dtb name should be used.
+   DTB=`basename ${DTB} | sed 's,\.dts$,.dtb,g'`
fi
-   DTS_BASE_NAME=`basename ${DTS_FILE} | awk -F . 
'{print $1}'`
-   DTB_NAME=`echo ${KERNEL_IMAGE_BASE_NAME} | sed 
s/${MACHINE}/${DTS_BASE_NAME}/g`
-   DTB_SYMLINK_NAME=`echo ${KERNEL_IMAGE_SYMLINK_NAME} | sed 
s/${MACHINE}/${DTS_BASE_NAME}/g`
+   DTB_BASE_NAME=`basename ${DTB} .dtb`
+   DTB_NAME=`echo ${KERNEL_IMAGE_BASE_NAME} | sed 
s/${MACHINE}/${DTB_BASE_NAME}/g`
+   DTB_SYMLINK_NAME=`echo ${KERNEL_IMAGE_SYMLINK_NAME} | sed