linux kernel-device tree-pass从父到子的数据

时间:2015-09-25 12:39:31

标签: c linux device-tree

我感兴趣的是将一些数据(在运行时动态创建)从父节点传递到设备树中的子节点。例如,我在设备树中有以下条目:

parent_node {
    a-string-property = "A string";
    a-string-list-property = "first string", "second string";
    a-byte-data-property = [0x01 0x23 0x34 0x56];
    child-node1 {
        first-child-property;
        second-child-property = <1>;
        a-string-property = "Hello, world";
    };
    child-node2 {
      some_data ;
    };
};

据我所知,您无法在运行时创建/更新设备树节点的属性(正确吗?)。

在父节点和子节点之间传递数据是否有任何机制(可能通过struct bus_typestruct devicestruct device_driver)?

此数据传递的最终目的是为设备的内存映射(子节点)的地址转换提供偏移量。

1 个答案:

答案 0 :(得分:0)

  

您无法在运行时创建/更新设备树节点的属性(正确吗?)。

在某些平台上,可以在运行时操作设备树。 请参阅CONFIG_OF_DYNAMIC配置项。

Here是关于动态dt的演示文稿。

平台 sparc powerpc seem to have以下功能用于此目的:

int of_set_property(struct device_node *dp, const char *name, void *val, int len)