[U-Boot] [PATCH v3 10/12] libfdt: Add overlay application function
Frank Rowand
frowand.list at gmail.com
Thu Jun 30 04:34:54 CEST 2016
On 06/27/16 20:12, David Gibson wrote:
> On Mon, Jun 27, 2016 at 01:40:00PM +0200, Maxime Ripard wrote:
>> Hi David,
>>
>> On Mon, Jun 27, 2016 at 03:26:07PM +1000, David Gibson wrote:
>>>> +static uint32_t overlay_get_target_phandle(const void *fdto, int fragment)
>>>> +{
>>>> + const uint32_t *val;
>>>> + int len;
>>>> +
>>>> + val = fdt_getprop(fdto, fragment, "target", &len);
>>>> + if (!val || (*val == 0xffffffff) || (len != sizeof(*val)))
>>>> + return 0;
>>>
>>> This doesn't distinguish between a missing property (which may
>>> indicate a valid overlay using a target-path or some other method)
>>> and a badly formatted 'target' property, which is definitely an error
>>> in the overlay.
>>>
>>> I think those should be treated differently.
>>
>> AFAIK, phandles can have any 32 bits values but 0xffffffff. In order
>> to cover the two cases, we would need to have some error code, but
>> that doesn't really work with returning a uint32_t.
>
> Actually phandles can have any value except 0xffffffff *or* 0. So you
> can use 0 for "couldn't find" and -1 for "badly formatted".
< snip >
Hi David,
I would like to capture this for the specification.
It seems like I could say that a value of 0 in the FDT is not allowed.
Then thinking of what Pantelis is doing with overlays, it seems like a
value of 0xffffffff is allowed in the FDT, but it means not a valid
phandle, so do not try to de-reference it.
Does that sound good?
-Frank
More information about the U-Boot
mailing list