首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >dts与ACPI的区别

dts与ACPI的区别
EN

Stack Overflow用户
提问于 2015-08-31 20:10:23
回答 4查看 5.3K关注 0票数 14

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

EN

回答 4

Stack Overflow用户

发布于 2019-11-07 03:32:33

是用肺呼吸还是用鳍呼吸?这取决于你住在哪里。

架构的粗略分类是

代码语言:javascript
复制
x86 - Server/PC - ACPI table 
ARM - embedded systems - Device Tree

在服务器/PC主板上,ACPI表是驻留在闪存芯片上的UEFI固件的一部分。操作系统稍后会安装在其他地方(硬盘驱动器或更多)。操作系统解析ACPI表,但是操作系统开发人员无法控制固件中已经写入的内容;或者他们甚至不知道电路板的内部设计。主板供应商(固件提供商)需要支持要安装的任何操作系统,而不仅仅是Linux,因此他们必须遵循标准(UEFI),而不是专注于Linux的东西,例如设备树。

在嵌入式系统中,操作系统和其他所有东西都是由供应商编写一次,而不是由用户再次编写。操作系统是固件的一部分。因此,无需担心操作系统支持列表,只需在主板和操作系统映像之间建立一对一的关系即可。U-Boot、kernel、initramfs、设备树blob驻留在相同的闪存(即NAND)上。因此,开发人员可以访问和控制要部署为设备树的内容(但必须与实际硬件匹配)。

硬件设计人员应该能够提供ACPI表和设备树。根据接收器的不同,一个将是首选。

参考文献:

票数 5
EN

Stack Overflow用户

发布于 2019-05-21 17:40:26

不完全正确:

  • ACPI一开始是作为固件(以前称为基本输入输出系统)和操作系统之间的接口,用于电源管理,但也包括平台设备探测
  • DT(甚至在ACPI出现之前很久)一直是关于声明性平台设备描述(探测和配置)的,因此操作系统可以正确地初始化所有驱动程序、配置操作点等。

ACPI在范围上总是非常有限,并且依赖于固件,而DT则是独立的(只需要引导加载程序将正确的dtb传递给内核)。

ACPI是bios和电路板供应商为解决DT很久以前已经解决的一小部分问题而进行的不专业的、黑客般的尝试。对于那些戴着绞刑架的人来说,一个主要的支持论点可能是ACPI/BIOS隐藏了许多低级配置内容(直到运行时设备编程,例如。用于电源管理),从而防止OS内核完全控制机器。

票数 4
EN

Stack Overflow用户

发布于 2017-10-30 23:43:24

IMHO

ACPI和DT用于类似的目的,但它们有其独特的功能。目前,定义ACPI配置的工作都是在DT中进行的。

ACPI和DT用于解决不同的问题:

  1. ACPI的目的是提高power efficiency.
  2. DT's的目的是删除内核之外的平台文件。

设备树主要是在linux内核启动之前传递给它的。ACPI通常是在linux内核启动时加载的(有关更多信息,请查看文档/acpi/Enumereration.txt)

对于任何其他的事情,只需评论。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32310935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档