0

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

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

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

你知道它有什么不同吗?怎么用?

非常感谢!

4

1 回答 1

2

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

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

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

\S2

被翻译成

RootChar 'S2__'

也就是说,\_SBand\_SB_是同名的等价符号。

于 2019-08-12T13:56:15.043 回答