u-boot:设备树解析二-设备树接口

         gd->fdt_blob已经设置成了dtb的地址了, fdt提供的接口都是以gd->fdt_blob(dtb的地址)为参数的,常用接口如下:(用节点在dtb中的偏移地址来表示一个节点).

lib/fdtdec.c中
    
    1.fdt_path_offset
    int fdt_path_offset(const void *fdt, const char *path)
    eg:node = fdt_path_offset(gd->fdt_blob, “/aliases”);
    功能:获得dtb下某个节点的路径path的偏移。这个偏移就代表了这个节点。
    
    2.fdt_getprop
    const void *fdt_getprop(const void *fdt, int nodeoffset, const char *name, int *lenp)
    eg: mac = fdt_getprop(gd->fdt_blob, node, “mac-address”, &len);
    功能:获得节点node的某个字符串属性值。
    
    3.fdtdec_get_int_array、fdtdec_get_byte_array
    int fdtdec_get_int_array(const void *blob, int node, const char *prop_name, u32 *array, int count)
    eg: ret = fdtdec_get_int_array(blob, node, “interrupts”, cell, ARRAY_SIZE(cell));
    功能:获得节点node的某个整形数组属性值。
    
    4. fdtdec_get_addr
    fdt_addr_t fdtdec_get_addr(const void *blob, int node, const char *prop_name)
    eg:fdtdec_get_addr(blob, node, “reg”);
    功能:获得节点node的地址属性值。
    
    5. fdtdec_get_config_int、fdtdec_get_config_bool、fdtdec_get_config_string
    功能:获得config节点下的整形属性、bool属性、字符串等等。
    
    6. fdtdec_get_chosen_node
    int fdtdec_get_chosen_node(const void *blob, const char *name)
    功能:获得chosen下的name节点的偏移
    
    7. fdtdec_get_chosen_prop
    const char *fdtdec_get_chosen_prop(const void *blob, const char *name)
    功能:获得chosen下name属性的值

lib/fdtdec_common.c中
    
    8. fdtdec_get_int
    int fdtdec_get_int(const void *blob, int node, const char *prop_name, int default_val)
    eg: bus->udelay = fdtdec_get_int(blob, node, “i2c-gpio,delay-us”, DEFAULT_UDELAY);
    功能:获得节点node的某个整形属性值。
    
    9.fdtdec_get_uint
    功能:获得节点node的某个无符号整形属性值。


原文链接:https://blog.youkuaiyun.com/qq_37307259/article/details/116902916

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值