Add dtc (device tree compiler) as host tool
PATCH v3 1/1 Add dtc (device tree compiler) as host tool
The dtc is taken from the Linux kernel sources and simply copied to the host directory.
Having dtc as a separate host tool can be useful for users that have a custom boot scenario where the device tree is not embedded in the kernel.
---
v2: remove old parameters to GENTARGETS call, sorry.
v3: rename Config.in.host and depend on Linux (comments Arnout)
package/Config.in.host | 1 + package/dtc/Config.in.host | 8 ++++++++ package/dtc/dtc.mk | 14 ++++++++++++++ 3 files changed, 23 insertions(+), 0 deletions(-)
package/Config.in.host +1 -0
@@ -1,5 +1,6 @@ menu "Host utilities" +source "package/dtc/Config.in.host" source "package/lpc3250loader/Config.in.host" source "package/openocd/Config.in.host" source "package/sam-ba/Config.in.host"
package/dtc/Config.in.host new file +8 -0
@@ -0,0 +1,8 @@ +config BR2_PACKAGE_HOST_DTC + bool "Device Tree Compiler (dtc)" + depends on BR2_LINUX_KERNEL + help + Device Tree Compiler for flattened-device trees. + +comment "The dtc device tree compiler depends on the Linux kernel sources." + depends on !BR2_LINUX_KERNEL
package/dtc/dtc.mk new file +14 -0
@@ -0,0 +1,14 @@ +############################################################# +# +# dtc +# +############################################################# + +HOST_DTC_SOURCE = +HOST_DTC_DEPENDENCIES = linux + +define HOST_DTC_INSTALL_CMDS + $(INSTALL) -D -m 0755 $(LINUX_DIR)/scripts/dtc/dtc $(HOST_DIR)/usr/bin/dtc +endef + +$(eval $(call GENTARGETS,host))
PATCH v3 1/1 Add dtc (device tree compiler) as host tool
Le Fri, 23 Mar 2012 15:37:34 +0100,
Thomas De Schampheleire <[email protected]> a ?crit :
package/dtc/dtc.mk line 12
Quoted 6 lines
package/dtc/dtc.mk new file +6
-0+HOST_DTC_SOURCE = +HOST_DTC_DEPENDENCIES = linux + +define HOST_DTC_INSTALL_CMDS + $(INSTALL) -D -m 0755 $(LINUX_DIR)/scripts/dtc/dtc $(HOST_DIR)/usr/bin/dtc +endef
The problem is that this DTC binary is only built if CONFIG_DTC is selected in the kernel configuration. So if the selected kernel does not have this option enabled, the installation step of this package is going to fail.
I am not sure what to do here. Just let the user figure this out? Check the kernel .config to see if CONFIG_DTC is enabled, and if it isn't while this package is selected, error out with a nice explanation for the user? Simply ignore the installation if the dtc binary was not built?
Thomas
Signature · 4 lines
Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com
PATCH v3 1/1 Add dtc (device tree compiler) as host tool
Quoted 15 lines · Thomas Petazzoni
Le Fri, 23 Mar 2012 15:37:34 +0100,
Thomas De Schampheleire <[email protected]> a ?crit :package/dtc/dtc.mk line 12
Quoted 6 lines
package/dtc/dtc.mk new file +6
-0+HOST_DTC_SOURCE = +HOST_DTC_DEPENDENCIES = linux + +define HOST_DTC_INSTALL_CMDS + ? ?$(INSTALL) -D -m 0755 $(LINUX_DIR)/scripts/dtc/dtc $(HOST_DIR)/usr/bin/dtc +endefThe problem is that this DTC binary is only built if
CONFIG_DTCis selected in the kernel configuration. So if the selected kernel does not have this option enabled, the installation step of this package is going to fail.
Quoted 5 lines
I am not sure what to do here. Just let the user figure this out? Check the kernel .config to see if
CONFIG_DTCis enabled, and if it isn't while this package is selected, error out with a nice explanation for the user? Simply ignore the installation if the dtc binary was not built?
I hadn't though about this case.
One could question whether it is a valid case that someone selects dtc in buildroot but not in the kernel.
Probably the nicest way is to not use dtc from the linux kernel sources but download the dtc sources explicitly. I thought this was a bit overkill, and I'm not sure if there can be inconsistencies between these sources and the kernel ones.
Best regards,
Thomas
PATCH v3 1/1 Add dtc (device tree compiler) as host tool
Le Fri, 23 Mar 2012 16:01:16 +0100,
Thomas De Schampheleire <[email protected]> a ?crit :
Quoted 8 lines
I hadn't though about this case.
One could question whether it is a valid case that someone selects dtc in buildroot but not in the kernel.Probably the nicest way is to not use dtc from the linux kernel sources but download the dtc sources explicitly. I thought this was a bit overkill, and I'm not sure if there can be inconsistencies between these sources and the kernel ones.
I have no strong opinion here. You can just keep what you've done and:
* Add an explanation in the help text about this fact
* Add something like the following to your installation code:
if ! grep -q ^CONFIG_DTC=y $(LINUX_DIR)/.config ; then
echo "Cannot install the Device Tree Compiler since you have not enabled CONFIG_DTC=y in your kernel configuration. Aborting".
exit 1
fi
Regards,
Thomas
Signature · 4 lines
Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com
PATCH v3 1/1 Add dtc (device tree compiler) as host tool
In reply to Thomas PetazzoniQuoted 15 lines · Thomas Petazzoni
Le Fri, 23 Mar 2012 15:37:34 +0100,
Thomas De Schampheleire <[email protected]> a ?crit :package/dtc/dtc.mk line 12
Quoted 6 lines
package/dtc/dtc.mk new file +6
-0+HOST_DTC_SOURCE = +HOST_DTC_DEPENDENCIES = linux + +define HOST_DTC_INSTALL_CMDS + $(INSTALL) -D -m 0755 $(LINUX_DIR)/scripts/dtc/dtc $(HOST_DIR)/usr/bin/dtc +endefThe problem is that this DTC binary is only built if
CONFIG_DTCis selected in the kernel configuration. So if the selected kernel does not have this option enabled, the installation step of this package is going to fail.
Quoted 5 lines
I am not sure what to do here. Just let the user figure this out? Check the kernel .config to see if
CONFIG_DTCis enabled, and if it isn't while this package is selected, error out with a nice explanation for the user? Simply ignore the installation if the dtc binary was not built?
dtc is always provuded with the kernel so why do you need it?
Best Regards,
J.
PATCH v3 1/1 Add dtc (device tree compiler) as host tool
Le Fri, 23 Mar 2012 16:05:18 +0100,
Jean-Christophe PLAGNIOL-VILLARD <[email protected]> a ?crit :
Quoted 1 line
dtc is always provuded with the kernel so why do you need it?
The sources are always available, but it is *built* only if CONFIG_DTC is selected. So unconditionally installing scripts/dtc/dtc will not work if the kernel was configured !CONFIG_DTC.
Regards,
Thomas
Signature · 4 lines
Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com
PATCH v3 1/1 Add dtc (device tree compiler) as host tool
Quoted 8 lines · Thomas Petazzoni
Le Fri, 23 Mar 2012 16:05:18 +0100,
Jean-Christophe PLAGNIOL-VILLARD <[email protected]> a ?crit :Quoted 1 line
dtc is always provuded with the kernel so why do you need it?
The sources are always available, but it is *built* only if
CONFIG_DTCis selected. So unconditionally installingscripts/dtc/dtcwill not work if the kernel was configured !CONFIG_DTC.
but the source is up-to-date for the kernel you use
we get this discussion on the kernel we do only expect the dtc that is provided byt the kernel that you compile to be used. If you use other verison we do not garanty it will work.
Best Regards,
J.
PATCH v3 1/1 Add dtc (device tree compiler) as host tool
Le Fri, 23 Mar 2012 16:37:27 +0100,
Jean-Christophe PLAGNIOL-VILLARD <[email protected]> a ?crit :
Quoted 5 lines
but the source is up-to-date for the kernel you use
we get this discussion on the kernel we do only expect the dtc that is provided byt the kernel that you compile to be used. If you use other verison we do not garanty it will work.
Ok, that's good to know, thanks!
Thomas
Signature · 4 lines
Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com
PATCH v3 1/1 Add dtc (device tree compiler) as host tool
Quoted 10 lines · Thomas Petazzoni
Le Fri, 23 Mar 2012 16:37:27 +0100,
Jean-Christophe PLAGNIOL-VILLARD <[email protected]> a ?crit :Quoted 5 lines
but the source is up-to-date for the kernel you use
we get this discussion on the kernel we do only expect the dtc that is provided byt the kernel that you compile to be used. If you use other verison we do not garanty it will work.
Ok, that's good to know, thanks!
Why not move this into the linux.mk package?
If the user has selected DTC support, just copy from the built kernel.
PATCH v3 1/1 Add dtc (device tree compiler) as host tool
Quoted 7 lines · Alexandre Pereira da Silva
Quoted 5 lines · Thomas Petazzoni
Le Fri, 23 Mar 2012 16:37:27 +0100,
Jean-Christophe PLAGNIOL-VILLARD <[email protected]> a ?crit :Quoted 2 lines
but the source is up-to-date for the kernel you use
Quoted 8 lines
Quoted 5 lines
Quoted 3 lines
we get this discussion on the kernel we do only expect the dtc that is provided byt the kernel that you compile to be used. If you use other verison we do not garanty it will work.
Ok, that's good to know, thanks!
Why not move this into the linux.mk package?
If the user has selected DTC support, just copy from the built kernel.
This sounds like a fine proposal to me...
Does anyone have objections against it?
Thanks,
Thomas
PATCH v3 1/1 Add dtc (device tree compiler) as host tool
Quoted 5 lines · On Monday 26 March 2012 09:15:49 Thomas De Schampheleire wrote:
Quoted 2 lines
Why not move this into the linux.mk package?
If the user has selected DTC support, just copy from the built kernel.This sounds like a fine proposal to me...
Does anyone have objections against it?
Sounds good to me!
Regards,
Arnout
Signature · 9 lines
Arnout Vandecappelle arnout at mind be Senior Embedded Software Architect +32-16-286540 Essensium/Mind http://www.mind.be G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20120326/bac3832a/attachment.html>