都用于声明平台设备信息:
dts(设备树)用于arm架构。开发人员可以修改。是独立存在的文件。
acpi表用于x86架构。ACPI 表是位于闪存芯片上的 UEFI 固件的一部分。在 x86 上,内核从固件提供的 ACPI 表中获取所有平台信息(对于 x86,这通常称为 BIOS)。开发人员无法修改,只能由主板供应商修改BIOS固件,如果缺少任何内容,则意味着这个 BIOS 不够好。
不同的目的:
DTS 的目的是将设备驱动代码和设备信息相分离。
ACPI 的目的是提高电源效率。
不同的加载时刻:
ACPI 通常在 linux 内核启动时加载。
DTS通常在启动之前传递给 linux 内核。
Linux内核源码中,某个硬件设备XXX的驱动中,在进行名称XXX匹配时,使用不同的结构体成员调用:
DTS使用.of_match_table。
ACPI使用.acpi_match_table。
Linux内核源码include\linux\device.h中结构体如下:
struct device_driver {
....
const struct of_device_id *of_