On Wed, Oct 16, 2013 at 04:39:03PM -0700, David Daney wrote:Still, what prevents you from unflattening it and just using theOn 10/16/2013 04:27 PM, Michael Bohan wrote:Ever since the following commit, libfdt has been available for>from device drivers.
usage in the kernel:
commit ab25383983fb8d7786696f5371e75e79c3e9a405
Author: David Daney <david.daney@xxxxxxxxxx>
Date: Thu Jul 5 18:12:38 2012 +0200
of/lib: Allow scripts/dtc/libfdt to be used from kernel code
Export these functions to modules so that they may be used---
+EXPORT_SYMBOL_GPL(fdt_next_tag);
The code was all written by David Gibson, and is dual GPL/BSD
licensed. So I am not sure you should be using the GPL flavor of
the export directive.
Yeah, I wasn't quite sure about this myself. I can remove the GPL
if it's incorrect.
But more than this. I don't understand why a driver would be
parsing the FDT in the first place. If there is a device tree, why
hasn't it been unflattened, and thus used via the normal device tree
functions.
My motivation is actually to use the fdt format as a firmware.
I have a requirement to express driver metadata that's loadable
from the filesystem. This data is not reasonable to place in the
system Device Tree, since it's application specific and does not
actually describe hardware. The fact that the format chosen is
'flattened device tree' is merely just a coincidence.
When considering formats, dts / fdt is convenient since:
-The dts syntax meets requirements by being human-readable.
-There exists a device-tree compiler already
-Linux knows how to deal with fdt, so the driver implementation
becomes more simple.
Thanks,
Mike