Page 1 of 1

关于RK3506 SDK根节点 compatible 属性匹配机制疑问

Posted: 2025-10-09 14:59
by kvzero
您好,看DTS的根节点compatible属性时,我有以下的疑问需要请教。

观察到的事实是:
1.在 rk3506g-luckfox-lyra.dts 中,根节点的 compatible 属性为:"rockchip,rk3506g-demo-display-control", "rockchip,rk3506"。
2.在整个SDK搜索了 "rockchip,rk3506g-demo-display-control" 和更通用的"rockchip,rk3506" 字符串,没有找到任何 .c 文件中的 of_device_id 匹配项。所以说在Linux内核层面,根节点的这两个 compatible 字符串,似乎都不直接参与匹配任何一个具体的板级或平台级C驱动文件。
3.SDK中保留着rk3506g-evb1-v10.dts和rk3506g-demo-display-control.dts等原厂设备树,似乎整个Lyra系列的设备树都是以rk3506g-demo-display-control.dts基础模板,同时保留了 "rockchip,rk3506g-demo-display-control"属性。

我的疑问是:
1.贵司选择 "rockchip,rk3506g-demo-display-control" 这个 compatible 属性,究竟起到了什么作用?它是否作为一个“身份ID”,被某些用户空间的库或上层脚本读取,以决定加载不同的配置?或者,这个选择仅仅是因为在移植时沿用了rk3506g-demo-display-control.dts它的 compatible?
2.虚心请教一下为什么贵司移植的时候要选用rk3506g-demo-display-control.dts而不是更通用的评估板的rk3506g-evb1-v10.dts

感谢您的回复

附设备树:

Code: Select all

/dts-v1/;

#include "rk3506-luckfox-lyra.dtsi"

/ {
	model = "Luckfox Lyra";
	compatible = "rockchip,rk3506g-demo-display-control", "rockchip,rk3506";

	chosen {
		bootargs = "earlycon=uart8250,mmio32,0xff0a0000 console=tty1 console=ttyFIQ0 root=ubi0:rootfs ubi.mtd=2 rootfstype=ubifs rootwait snd_aloop.index=7 snd_aloop.use_raw_jiffies=1";
	};
};

Re: 关于RK3506 SDK根节点 compatible 属性匹配机制疑问

Posted: 2025-10-18 8:03
by Crocodile
您好, "rockchip,rk3506g-demo-display-control" 选择仅仅是因为在移植时沿用了rk3506g-demo-display-control.dts 的 compatible,实际内核加载没有驱动会调用到这个,移植细节相关我们不作答复