我的问题是关于使用设备树覆盖定义创建平台总线。
目标是使平台总线定义一个覆盖Blob。然后,要在此平台总线下注册的平台设备将在target-path属性中指向该设备。
在该示例中,有三个设备树覆盖源:
如果在静态设备树中定义了foo平台总线并在引导过程中将其加载,则此配置有效。
如果将foo编译为设备树覆盖图blob(如bar1和bar2)并加载到内核中,则它将无法正常工作。
/ proc / device-tree /显示foo在静态设备树中或通过覆盖加载时的foo,bar1和bar2的现有设备。
在这种情况下,工作的定义是将调用内核模块的bar1和bar2探针功能,并加载bar1.ko和bar2.ko。
以下是dtso文件:
/* foo.dtso */
/dts-v1/;
/plugin/;
/{
fragment@0 {
target-path = "/";
__overlay__ {
foo {
#address-cells = <1>;
#size-cells = <1>;
compatible = "simple-bus";
status = "ok";
};
};
};
};
/* bar1.dtso */
/dts-v1/;
/plugin/;
/{
fragment@0 {
target-path = "/foo";
__overlay__ {
bar1 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "bar1,driver";
status = "ok";
};
};
};
};
/* bar2.dtso */
/dts-v1/;
/plugin/;
/{
fragment@0 {
target-path = "/foo";
__overlay__ {
bar2 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "bar2,driver";
status = "ok";
};
};
};
};
问题是,可以使用覆盖功能创建此平台总线吗?
最好的问候, 曼努埃尔。