我们可以在dts文件中声明平台设备信息,而不是对每个数据进行硬编码
进入操作系统。以“ ARM ”架构为例。它支持DTS,我们将
从arch/arm/boot/dts/xx.dts获取dts。将此xx.dts转换为xx.dtb并加载
内核镜像。我最近遇到过ACPI,当时我遇到了x86架构,
从文档中,我了解到的ACPI类似于设备树。我们可以声明
ACPI表中的平台设备信息信息,我怀疑这些ACPI到底在哪里
表存在。我如何将该信息加载到Linux。与ACPI相比,使用ACPI有什么优势?
dts。如果我错了,请纠正我。
提前致谢

最佳答案

不完全正确:

  • ACPI最初是固件(以前为BIOS)和OS之间的接口(interface),用于诸如电源管理之类的事情,还用于诸如平台设备探测
  • 之类的事情
  • DT总是(甚至比ACPI早存在)关于声明性平台设备描述(探测和配置),因此OS可以正确初始化所有驱动程序,配置操作点等。

  • ACPI的范围始终非常有限,并且取决于固件,而DT则独立存在(仅要求引导加载程序将正确的dtb传递给内核)。

    ACPI是BIOS和电路板供应商解决DT早已解决的一小部分问题的不专业的尝试。对于那些戴着绞刑架的人来说,一个主要的赞成论点可能是ACPI/BIOS在固件blob中隐藏了许多低级配置内容(直到运行时设备编程,例如用于电源管理),从而阻止了OS内核完全控制在机器上。 (最终导致诸如损坏的BIOS损坏的计算机等)。
    我们(内核开发人员)经常不得不处理糟糕的BIOS。

    我的强烈建议:尽可能获得ACPI。

    07-24 20:04