Device Tree Blob (DTB) licence
From: Rob Herring <hidden>
Date: 2015-05-05 16:41:38
Also in:
linux-devicetree, lkml
On Tue, May 5, 2015 at 5:05 AM, Yann Droneaud [off-list ref] wrote:
Hi, I believe Device Tree Blob (.dtb file) built from kernel's Device Tree Sources (.dts, which #include .dtsi, which #include .h) using Device Tree Compiler (dtc) are covered by GNU General Public Licence v2 (GPLv2), but cannot find any reference.
By default yes, but we've been steering people to dual license them GPL/BSD.
As most .dtsi in arch/arm/boot/dts/ are covered by GPLv2, and, as most .h in include/dt-bindings/ are also covered by GPLv2, the source code is likely covered by GPLv2. Then this source code is translated in a different language (flattened device tree), so the resulting translation is also likely covered by GPLv2. So, when I'm proposed to download a .dtb file from a random vendor, can I require to get the associated source code ?
I believe so yes. However, you already have the "source" for the most part. Just run "dtc -I dtb -O dts <dtb file>". You loose the preprocessing and include structure though (not necessarily a bad thing IMO). Then the question is what is the license on that generated dts!
Anyway, for a .dtb file generated from kernel sources, it's rather painful to look after all .dts, .dtsi, .h, to find what kind of licences are applicables, as some are covered by BSD, dual licensed (any combination of X11, MIT, BSD, GPLv2).
I imagine the includes cause some licensing discrepancies if you dug into it. Rob