在Linux中,开放式固件设备树(Open Firmware Device Tree)和扁平设备树(Flattened Device Tree)有什么区别?
如何确定Linux内核正在使用哪个设备树 OF DT 或 FDT。
从这里:
开放固件是由Sun在20世纪80年代末设计的固件接口规范,已移植到许多架构中。它指定了运行时OS客户端接口、跨平台设备接口(FCode)、用户界面和描述机器的设备树布局。
FDT是对于ACPI中的DSDT而言的,FDT重用了Open Firmware设备树布局。事实上,Linux PowerPC支持使用相同的代码库来支持Open Firmware和FDT平台。
如您所见,扁平设备树(FDT)是开放固件的一部分。因此,“开放固件设备树”和“扁平设备树”是同一回事。
看看drivers/of/base.c。它是1996年添加的,但现在ARM设备树仍然使用其中的函数。因此,FDT只是OF的一部分。这就是为什么所有设备树函数都以of_
前缀开头。
如果您需要更多细节,请参阅以下文章:
我看到了
Other names for Flattened Device Tree (FDT) are "binary blob" and ".dtb".
dtc (Device Tree Compiler) - converts between the human editable device tree source "dts" format and the compact device tree blob "dtb" representation usable by the kernel or assembler source. dtc is also a dtb decompiler.
设备树是一种人类可读的源代码,格式为 .dts 或 .dtsi。
希望这更加清晰和正确。
谢谢。