Re: [PATCH] of/lib: Export fdt routines to modules

Guenter Roeck
2013-10-17T04:54:36Z

On 10/16/2013 05:27 PM, Michael Bohan wrote:
> On Wed, Oct 16, 2013 at 04:39:03PM -0700, David Daney wrote:
>> On 10/16/2013 04:27 PM, Michael Bohan wrote:
>>> Ever since the following commit, libfdt has been available for
>>> usage in the kernel:
>>>
>>> commit ab25383983fb8d7786696f5371e75e79c3e9a405
>>> Author: David Daney <david.daney@cavium.com>
>>> 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
>> >from device drivers.
>>> ---
>>> +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.
>
Still, what prevents you from unflattening it and just using the
normal device tree functions as David suggested ?

Guenter

> 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
>