[U-Boot] [PATCH 04/10] fdt: Add fdt_sizecell & fdt_addrcell helpers

Jerry Van Baren gerald.vanbaren at ge.com
Thu Oct 23 14:26:01 CEST 2008


Kumar Gala wrote:
> 
> On Oct 23, 2008, at 6:55 AM, Jerry Van Baren wrote:
> 
>> Kumar Gala wrote:
>>> Add helper functions to return top level #size-cell and #address-cell 
>>> info
>>> Signed-off-by: Kumar Gala <galak at kernel.crashing.org>
>>> ---
>>> include/fdt_support.h |   18 ++++++++++++++++++
>>> 1 files changed, 18 insertions(+), 0 deletions(-)
>>> diff --git a/include/fdt_support.h b/include/fdt_support.h
>>> index ceaadc2..aa9d86b 100644
>>> --- a/include/fdt_support.h
>>> +++ b/include/fdt_support.h
>>> @@ -28,6 +28,24 @@
>>>  #include <fdt.h>
>>> +static inline int fdt_addrcell(void *blob) {
>>> +    const u32 *addrcell = fdt_getprop(blob, 0, "#address-cells", NULL);
>>> +
>>> +    if (addrcell)
>>> +        return *addrcell;
>>> +    else
>>> +        return 1;
>>> +}
>>> +
>>> +static inline int fdt_sizecell(void *blob) {
>>> +    const u32 *sizecell = fdt_getprop(blob, 0, "#size-cells", NULL);
>>> +
>>> +    if (sizecell)
>>> +        return *sizecell;
>>> +    else
>>> +        return 1;
>>> +}
>>> +
>>> int fdt_chosen(void *fdt, int force);
>>> int fdt_initrd(void *fdt, ulong initrd_start, ulong initrd_end, int 
>>> force);
>>> void do_fixup_by_path(void *fdt, const char *path, const char *prop,
>>
>> Hi Kumar,
>>
>> What about collapsing the two above into a common function?
>>
>>     fdt_addrcell(blob);
>> becomes
>>     fdt_get_prop_u32(blob, "/", "#address-cells", 1);
>> and
>>     fdt_sizecell(blob);
>> becomes
>>     fdt_get_prop_u32(blob, "/", "#size-cells", 1);
>>
>> WARNING, UNTESTED CODE:
>> /**
>> * fdt_get_prop_u32: Find a node and return it's property or a default
>> *
>> * @fdt: ptr to device tree
>> * @node: path of node
>> * @prop: property name
>> * @defalt: default value if the property isn't found
>> *
>> * Convenience function to find a node and return it's property or a
>> * default value if it doesn't exist.
>> */
>> u32 fdt_get_prop_u32(void *fdt, const char *node, const char *prop,
>>              const u32 default)
>> {
>>     const u32 *addrcell = fdt_getprop(fdt, node, prop, NULL);
>>
>>     if (addrcell)
>>         return *addrcell;
>>     else
>>         return default;
>> }
> 
> I'd prefer we call it fdt_getprop_u32_default().  If you are good with 
> the name I'll change my patchset.
> 
> - k

That was my second choice.  I figured Dennis Richie would call me up and 
complain the name was too long. ;-)

I'm find with the change.

Acked-by: Gerald Van Baren <vanbaren at cideas.com>

Thanks,
gvb


More information about the U-Boot mailing list