在Linux中,Open Firmware设备树和压缩设备树有什么区别?

8
在Linux中,开放式固件设备树(Open Firmware Device Tree)和扁平设备树(Flattened Device Tree)有什么区别? 如何确定Linux内核正在使用哪个设备树 OF DT 或 FDT。
2个回答

19

这里

开放固件是由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_前缀开头。

如果您需要更多细节,请参阅以下文章:


0

从上面发布的相同链接

我看到了

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。

希望这更加清晰和正确。

谢谢。


你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心中找到有关如何编写良好答案的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接