内核如何知道要加载哪个设备树?

use*_*569 7 kernel device-tree

设备树在 ARM 设备上运行时用于识别和加载正确的驱动程序及其配置。但是当我在/proc/device-tree手机上查看加载的 DT 时,有很多与实际平台无关的配置。例如,大约 15 种不同的显示配置,该特定设备从未使用过,也永远不会使用。到目前为止,我认为只有相关的 DT 被包含在内核中并加载,但似乎相关/arch源文件夹中的所有 DTS都已加载。内核如何为平台选择合适的?这不是有点多余吗?

小智 1

我认为这不是因为内核加载了所有 DTS。实际上,ARM 固件映像内部可以包含多个 dts,但它仅在启动时加载 dts。您会看到冗余设备 int,/proc/device-tree因为您的设备树定义了它们。即使您的手机没有这些设备,您仍然可以定义该设备,因为这些设备无法工作并且可能会破坏您的内核。