ACPI 定义块:系统总线的 _SB 和 _SB_ 之间的差异



我正在调查edk2(UEFI(。因此,我对DSDT表中定义的设备路径有一些担忧。在此表中,我们使用/_SB作为系统总线的根目录,但它在 Linux 上/_SB_。例如,我通过命令检查

$ cat /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:00/path

有时,我还看到一些 ACPI 表使用/_SB_来引用设备路径。

你知道它有什么不同吗?如何使用它?

非常感谢!

ACPI 规范(我在这里并进一步参考 v6.4(第 19.3.1 章定义了允许在名称中使用的字符。虽然它没有清楚地说明少于 4 个字符的名称发生了什么。这在第5.3章中得到了澄清

按照惯例,当 ASL 编译器填充短于 4 个字符的名称时,它是使用尾随下划线('_')完成的。请参阅 ACPI 源语言 (ASL( 参考一章中 AML NameSeg 的语言定义。

第20.4章也证实了这一点,该章显示了AML中的字节流。在示例中,名称

\S2

被翻译成

根字符"S2__">

也就是说,_SB_SB_是同名的等效符号。

最新更新