ACPI 中文文档ACPI 中文文档
首页
第 1 章
第 2 章
第 3 章
第 4 章
第 5 章
第 6 章
第 7 章
第 8 章
第 9 章
第 10 章
第 11 章
第 12 章
第 13 章
第 14 章
第 15 章
第 16 章
第 17 章
第 18 章
第 19 章
第 20 章
第 21 章
附录 A
首页
第 1 章
第 2 章
第 3 章
第 4 章
第 5 章
第 6 章
第 7 章
第 8 章
第 9 章
第 10 章
第 11 章
第 12 章
第 13 章
第 14 章
第 15 章
第 16 章
第 17 章
第 18 章
第 19 章
第 20 章
第 21 章
附录 A
  • 第 6 章

    • 总览
    • 6.1. 设备标识对象
    • 6.2. 设备配置对象
      • 6.2.1. _CDM(时钟域)
      • 6.2.2. _CRS(当前资源设置)
      • 6.2.3. _DIS(禁用)
      • 6.2.4. _DMA(直接内存访问)
      • 6.2.5. _DSD(设备特定数据)
      • 6.2.6. _FIX(固定寄存器资源提供程序)
      • 6.2.7. _GSB(全局系统中断基址)
      • 6.2.8. _HPP(热插拔参数)
      • 6.2.9. _HPX(热插拔参数扩展)
      • 6.2.10. _MAT(多个 APIC 表条目)
      • 6.2.11. _OSC(操作系统能力)
      • 6.2.12. _PRS(可能的资源设置)
      • 6.2.13. _PRT(PCI 路由表)
      • 6.2.14. _PXM(邻近性)
      • 6.2.15. _SLI(系统局部性信息)
      • 6.2.16. _SRS(设置资源设置)
      • 6.2.17. _CCA(缓存一致性属性)
      • 6.2.18. _HMA(异构内存属性)
    • 6.3. 设备插入、移除和状态对象
    • 6.4. ACPI 的资源数据类型
      • 6.4.1. 资源描述符的 ASL 宏
      • 6.4.2. 小型资源数据类型
      • 6.4.3. 大型资源数据类型
        • 6.4.3.1. 24 位内存范围描述符
        • 6.4.3.2. 厂商定义描述符,类型 1
        • 6.4.3.3. 32 位内存范围描述符
        • 6.4.3.4. 32 位固定内存范围描述符
        • 6.4.3.5. 地址空间资源描述符
        • 6.4.3.6. 扩展中断描述符
        • 6.4.3.7. 通用寄存器描述符
        • 6.4.3.8. 连接描述符
        • 6.4.3.9. 引脚功能描述符
        • 6.4.3.10. 引脚配置描述符
        • 6.4.3.11. 引脚组描述符
        • 6.4.3.12. 引脚组功能描述符
        • 6.4.3.13. 引脚组配置描述符
    • 6.5. 其他对象和控制方法

6.1. 设备标识对象

设备标识对象将每个平台设备与该设备的一个即插即用设备 ID 相关联。所有设备标识对象如下表所列:

表 6.1 设备标识对象

对象说明
_ADR求值后得到设备在其父总线上的地址的对象。
_CID求值后得到设备的即插即用兼容 ID 列表的对象。
_CLS求值后得到一个包含编码设备类别信息的包的对象。
_DDN将一个逻辑软件名称(例如 COM1)与设备相关联的对象。
_HID求值后得到设备的即插即用硬件 ID 的对象。
_HRV求值后得到一个整数硬件修订号的对象。
_MLS以多种语言提供设备的人类可读描述的对象。
_PLD提供物理位置描述信息的对象。
_SUB求值后得到设备的即插即用子系统 ID 的对象。
_SUN求值后得到某个插槽的插槽唯一 ID 编号的对象。
_STR包含设备的 Unicode 标识符的对象。也可用于热区。
_UID指定设备唯一持久 ID 的对象,或生成该 ID 的控制方法。

对于位于不可枚举类型总线上的任何设备(例如 ISA 总线),OSPM 会枚举设备的标识符,因此 ACPI 系统固件必须为每个设备提供一个 _HID 对象(以及一个或多个可选对象,如 _CID、_CLS、_HRV、_SUB),以使 OSPM 能够执行此操作。对于位于可枚举类型总线上的设备,例如 PCI 总线,ACPI 系统必须标识可枚举总线上由特定地址标识的是哪个设备;为此,ACPI 系统固件必须为每个设备提供一个 _ADR 对象。设备对象必须包含 _HID 对象或 _ADR 对象之一,但不能同时包含两者。

如果这些对象中的任何一个被实现为控制方法,则这些方法可能依赖于操作区域。由于这些控制方法可能在操作区域提供者可用之前就被求值,因此控制方法必须被构造为能够在没有操作区域提供者的情况下执行。(_REG 方法将操作区域提供者的存在通知给平台运行时固件。)当控制方法由于缺少操作区域提供者而无法确定硬件当前状态时,建议控制方法返回在控制从平台引导固件移交给 OS 时为真的条件。(控制方法应返回默认的引导值。)

6.1.1. _ADR(地址)

此对象用于向 OSPM 提供设备在其父总线上的地址。在指定任何位于具有标准枚举算法的总线上的设备地址时,必须使用 _ADR 对象(关于这些设备何时会出现在 ACPI 命名空间中的情况,参见配置和“即插即用”)。_ADR 对象仅在增强设备描述符中有效。

参数:

None

返回值:

一个包含设备地址的 Integer

即使设备不存在,也可以使用 _ADR 对象为指定地址提供能力。这使系统能够为父总线上的某个插槽提供能力。

OSPM 从 _ADR 对象的设备包在 ACPI 命名空间中的位置推断父总线和段。有关设备包在 ACPI 命名空间中定位的更多信息,请参见 Device(声明设备包)

_ADR 对象信息必须是静态的,并且可为 ADR 对象地址编码中列出的以下总线类型定义。

表 6.2 ADR 对象地址编码

总线地址编码
EISAEISA 插槽号 0-F
Floppy Bus用于编程软盘控制器以访问指定 INT13 单元号的驱动器选择值。_ADR 对象应按驱动器选择编码从 0-3 排序。
I3C位 [63:52] - 保留 位 [51:48] - 主实例 位 [47:0] - I3C 设备临时 ID,遵循 MIPI Specification for I3C 中定义的编码。如果 I3C 设备支持静态地址而不是临时 ID,则位 [47:7] 为保留(零),位 [6:0] 为 7 位静态地址。
IDE Controller0-主通道,1-从通道
IDE Channel0-主驱动器,1-从驱动器
Intel® High Definition Audio高字 - 包含功能组的编解码器的 SDI(Serial Data In)ID。低字 - 功能组的节点 ID。
PCI高字-设备号,低字-功能号。(例如,设备 3、功能 2 为 0x00030002)。要引用某个设备号上的所有功能,请使用功能号 FFFF)。
PCMCIA插槽号;0-第一个插槽
PC CARD插槽号;0-第一个插槽
Serial ATASATA 端口:高字–根端口号,低字–SATA 端口倍增器下的端口号,如果未连接端口倍增器则为 0xFFFF。(例如,根端口 2 为 0x0002FFFF。如果在根端口 2 上连接了端口倍增器,则连接到该倍增器的端口将编码为 0x00020000、0x00020001 等。)值 0xFFFFFFFF 为保留。
SMBus最低从设备地址
USB Root HUB主控制器只有一个子节点。它的 _ADR 必须为 0。不允许有其他子节点或其他 _ADR 值。
USB Ports端口号(1-n)
SDIO Bus高字 - 插槽号(0-第一个插槽)低字 - 功能号(定义见 SD 规范。)
NVDIMMNVDIMM Region Mapping Structure 中定义的 NFIT 设备句柄

6.1.2. _CID(兼容 ID)

此可选对象用于向 OSPM 提供设备的即插即用兼容设备 ID。当设备没有其他已定义的硬件标准方法来报告其兼容 ID 时,使用 _CID 对象。_CID 对象仅在完整设备描述符中有效。还必须存在 _HID 对象。

参数:

None

返回值:

包含单个 CID 的 Integer 或 String,或 包含 CID 列表的 Package

_CID 对象求值结果为以下之一:

  • 单个兼容设备 ID

  • 设备的兼容设备 ID 包——按优先级顺序排列,最高优先级在前。

每个兼容设备 ID 必须是以下之一:

  • 有效的 HID 值(32 位压缩 EISA 类型 ID,或诸如 “ACPI0004” 之类的字符串)。

  • 使用特定于总线命名法的字符串。例如,_CID 可用于指定 PCI ID。PCI ID 字符串的格式为以下之一:

    "PCI\CC_ccss"
    "PCI\CC_ccsspp"
    "PCI\VEN_vvvv&DEV_dddd&SUBSYS_ssssssss&REV_rr"
    "PCI\VEN_vvvv&DEV_dddd&SUBSYS_ssssssss"
    "PCI\VEN_vvvv&DEV_dddd&REV_rr"
    "PCI\VEN_vvvv&DEV_dddd"
    

其中:

    cc       - 类别代码字节的十六进制表示
    ss       - 子类代码字节的十六进制表示
    pp       - 编程接口字节的十六进制表示
    vvvv     - Vendor ID 的十六进制表示
    dddd     - Device ID 的十六进制表示
    ssssssss - 子系统 ID 的十六进制表示
    rr       - 修订字节的十六进制表示

从 _CID 对象获取的兼容 ID 只有在其为非 NULL 值时才有意义。

ASL 示例 :

Device (XYZ) {
  Name (_HID, EISAID ("PNP0303")) // PC Keyboard Controller
  Name (_CID, EISAID ("PNP030B"))
}

6.1.3. _CLS(类代码)

此对象用于向 OSPM 提供设备的 PCI 定义的基类、子类和编程接口。此对象是可选的。但是,对于与 PCI 定义的设备类兼容、但未实现在 PCI 总线上的硬件(因此由 ACPI 枚举),它可能对加载通用驱动程序很有用。

参数:

None

返回值:

一个 Package,包含以 Integers 列表形式表示的 PCI 定义的类信息:

Package(3) {<base-class code>, <sub-class code>, <Programming Interface code>}

可用类代码和编程接口代码的列表由 PCI SIG 提供。参见“PCI Code and ID Assignment Specification”,可从“Links to ACPI-Related Documents”(http://uefi.org/acpi ) 下的标题“PCI Code and ID Assignment Specification”获取

ASL 示例:

Device(SATA) //AHCI- compatible SATA controller
   {
   Name(_HID, "...")
   Name(_CLS, Package (3)
      {
      0x01, // Base Class (01h == Mass Storage)
      0x06, // Sub-Class (06h == SATA)
      0x01, // Programming Interface (01h == AHCI)
      })
   Name(_CRS, ResourceTemplate()
      {
      ... // AHCI-defined system resources
      })
   }

6.1.4. _DDN(DOS 设备名)

此对象用于将逻辑名称(例如 COM1)与设备相关联。应用程序可使用此名称连接到该设备。

参数:

None

返回值:

包含 DOS 设备名称的 String

6.1.5. _HID(硬件 ID)

此对象用于向 OSPM 提供设备的 PNP ID 或 ACPI ID。

另请参见

PNP ID 和 ACPI ID Registry 位于 http://www.uefi.org/PNP_ACPI_Registry 。

在描述平台时,使用任何 _HID 对象都是可选的。但是,必须使用 _HID 对象来描述任何将由 OSPM 枚举的设备。只有当没有总线枚举器能够检测设备 ID 时,OSPM 才会枚举设备。例如,ISA 总线上的设备由 OSPM 枚举。对由 OSPM 之外的总线枚举器枚举的设备,请使用 _ADR 对象进行描述。_HID 对象仅在完整设备描述符中有效。

参数:

None

返回值:

包含 HID 的 Integer 或 String

_HID 对象求值为一个数值型 32 位压缩 EISA 类型 ID 或字符串。若为字符串,其格式必须是字母数字形式的 PNP 或 ACPI ID,且不能带星号或其他前导字符。

有效的 PNP ID 必须采用“AAA####”的形式,其中 A 为大写字母,# 为十六进制数字。有效的 ACPI ID 必须采用“NNNN####”的形式,其中 N 为大写字母或数字(‘0’-‘9’),# 为十六进制数字。本规范保留字符串“ACPI”仅供本文定义的设备使用。它还保留所有表示 4 位十六进制数字的字符串,专供 PCI 分配的供应商 ID 使用。

ASL 示例:

Name (_HID, EISAID ("PNP0C0C")) // Control-Method Power Button
Name (_HID, EISAID ("INT0800")) // Firmware Hub
Name (_HID, "ACPI0003") // AC adapter device
Name (_HID, "MSFT0003") // Vendor-defined device
Name (_HID, "80860003") // PCI-assigned device identifier

6.1.6. _HRV(硬件版本)

此对象用于向 OSPM 提供设备的硬件版本。_HRV 的使用是可选的。

参数:

无

返回值:

包含硬件版本号的 Integer (DWORD)

ASL 示例:

Name (_HRV, 0x0003) // Revision number 3 of this hardware device

6.1.7. _MLS(多语言字符串)

_MLS 对象为 OSPM 提供设备的人类可读多语言描述。当 OSPM 无法获取有关此设备的任何其他信息时,可将此信息提供给最终用户。尽管 _STR 对象也提供了此功能,但 _MLS 扩展了该功能,并为厂商提供了在多种语言中提供多个字符串的能力。_MLS 对象求值为一个包的包。每个子包由一个语言标识符和对应的特定区域 Unicode 字符串组成。指定语言标识符可使 OSPM 轻松确定是否支持显示该 Unicode 字符串。OSPM 可利用此信息来判断是否显示设备字符串,或判断哪一个字符串适合用户首选区域设置。

假定 OSPM 将始终支持主要英语区域,以容纳非英语字符串中嵌入的英语内容,例如品牌名称。

如果 OSPM 不支持特定的子语言 ID,它可以选择使用主要语言 ID 来显示设备文本。

参数:

无

返回值:

一个可变长度的 Package,其中包含如下所述的语言描述符 Package 列表。

返回值信息:

Package {
   LanguageDescriptor[0] // Package
   LanguageDescriptor[n] // Package
}

每个语言描述符子 Package 包含如下所述的元素:

Package {
   LanguageId // String
   UnicodeDescription // Buffer
}

LanguageId 是一个标识语言的字符串。该字符串遵循 Internet RFC 3066 文档(语言标识标签)中规定的格式。除支持 RFC 3066 中现有字符串外,下表还列出了同样受支持的别名。

表 6.3 额外语言 ID 别名字符串

RFC 字符串支持的别名字符串
zh-Hanszh-chs
zh-Hantzh-cht

UnicodeDescription 是一个包含 Unicode(UTF-16)字符串的 Buffer。该字符串包含与 LanguageID 对应的、特定语言的设备描述。可使用 Unicode() ASL 宏来创建此 Buffer。

示例:

Device (XYZ) {
   Name (_ADR, 0x00020001)
   Name ( \_MLS, Package(){(2){"en", Unicode("ACME super DVD controller")}})
}

6.1.8. _PLD(设备物理位置)

此可选对象是一个方法,用于向 OSPM 传达设备外部连接点物理位置的概述。_PLD 可以作为系统希望描述的任意 ACPI 命名空间对象的子对象。系统软件可使用此信息向用户说明在某项任务中应使用哪个特定连接器或设备输入机构,或者为了正确运行可能需要用户干预。只有在其父设备处于存在状态(即由设备存在机制指示,如 _STA 或其他机制)时,才应对 _PLD 进行求值。

一个外部可见的设备连接点可以位于系统机壳的任何表面。系统机壳的各个表面由下面描述的“Panel”字段标识。_PLD 方法返回数据,用于描述设备连接点所在的位置,以及可在该位置渲染的形状(如下所述)。一个物理设备可能有多个连接点。_PLD 描述单个设备连接点相对于其所在 Panel 左下角“原点”的偏移和旋转。

所有 Panel 引用(Top、Bottom、Right、Left 等)都按用户正面面对系统时的视角来解释。对于手持移动设备,正面面板是承载显示屏的那一面,其原点位于以纵向方向查看显示屏时的左下角。例如,Right Panel 是从正面看时系统的右侧。

Panel 的所有“原点”引用都按用户正面面对相应 Panel 时其左下角来解释。Top Panel 应在系统平放于 Front Panel 时查看,而 Bottom Panel 应在系统放置于 Back Panel 上时查看。其他所有 Panel 应在系统放置于 Bottom Panel 上时查看。更多信息请参见系统面板和面板原点位置。

../_images/Device_Configuration-2.png

图 6.1 系统面板和面板原点位置

数据位还假定:如果系统能够像笔记本电脑一样打开,那么设备可能存在于笔记本主体或上盖上。在后一种情况下,应设置下面描述的“Lid”位,表示设备连接点位于上盖上。如果设备位于上盖上,则该描述说明的是系统在上盖打开时设备连接点的位置。如果设备连接点不在上盖上,则该描述说明的是系统在上盖关闭时设备连接点的位置。

../_images/Device_Configuration-3.png

图 6.2 笔记本电脑面板和面板原点位置

为了渲染系统某个 Panel 的视图,会收集所有定义相同 Panel 和 Lid 值的 _PLD。然后按其 Order 字段的值对这些 _PLD 进行排序,并按顺序从所有 Order = 0 的 _PLD 开始,绘制每个连接点的形状(使用其正确的 Shape、Color、Horizontal Offset、Vertical Offset、Width、Height 和 Orientation)来渲染该面板视图。示例请参见 PLD 后面板渲染。

设备连接点的位置可能会因系统连接到或断开与扩展坞或端口复制器的连接而改变。因此,类型为 0x09 的 Notify 事件将导致 OSPM 重新求值位于该特定已通知设备下的 _PLD 对象。如果平台无法检测连接到或断开与扩展坞或端口复制器的变化,则不应使用 _PLD 对象来描述在此类事件后会改变位置的设备连接点。

参数:

无

返回值:

一个可变长度的 Package,其中包含一个 Buffer 列表

此方法返回一个 Package,其中包含单个或多个 Buffer 条目。必须至少使用下面的位定义返回一个 Buffer 条目。

表 6.4 Buffer 0 返回值

名称定义DWORD位偏移(DWORD)位偏移(缓冲区)长度(位)
修订版本当前修订版本为 0x20007
忽略颜色如果设置了此位,则忽略颜色字段,因为颜色未知。0771
颜色设备连接点颜色的 24 位 RGB 值:位 [15:8]=红色值 位 [23:16]=绿色值 位 [31:24]=蓝色值08824
宽度设备连接点最宽处的宽度,以毫米为单位103216
高度设备连接点最高处的高度,以毫米为单位1164816
用户可见如果用户无需拆解即可看到设备连接点,则设置。20641
扩展坞如果设备连接点位于扩展坞或端口复制器中,则设置。2651
盖板如果该设备连接点位于笔记本系统的盖板上,则设置。2661
面板描述设备连接点位于系统机壳的哪个面板表面上:0 - 顶部 1 - 底部 2 - 左侧 3 - 右侧 4 - 前面 5 - 后面 6 - 未知(将忽略垂直位置和水平位置)2673
设备连接点所在面板上的垂直位置0 - 上部 1 - 中部 2 - 下部2702
设备连接点所在面板上的水平位置。2722
形状描述设备连接点的形状。宽度和高度字段可用于使形状失真,例如,如果宽度和高度不相等,圆形看起来会像椭圆形。如果宽度和高度相等,竖直矩形或水平矩形可能看起来像正方形。参见默认形状定义:0 - 圆形 1 - 椭圆形 2 - 正方形 3 - 竖直矩形 4 - 水平矩形 5 - 竖直梯形 6 - 水平梯形 7 - 未知 - 形状渲染为带虚线的矩形 15:9 - 保留2744
分组方向如果设置,表示垂直分组;否则假定为水平分组。2781
分组令牌标识一个组的唯一数值。2791
分组位置标识该设备连接点在组中的位置(即第 1 个、第 2 个)2878
设备舱如果描述的是设备舱中的设备,或者设备连接点是一个设备舱,则设置。2951
可弹出如果设备可弹出,则设置。表示在不存在 _EJx 对象时的可弹出性。2961
需要 OSPM 参与弹出需要 OSPM 参与弹出:如果弹出过程需要 OSPM 参与,则设置。用户无法通过物理硬件手动弹出。2971
机柜编号对于单机柜系统,此字段始终为 0。2988
卡笼编号对于单卡笼系统,此字段始终为 0。21068
参考如果设置,则此 _PLD 定义一个“参考”形状,用于在渲染 _PLDs 时帮助用户相对于其他形状进行定位。21141
旋转将形状围绕其原点按 45 度步进顺时针旋转,其中:0 - 0° 1 - 45° 2 - 90° 3 - 135° 4 - 180° 5 - 225° 6 - 270° 7 - 315°21154
顺序标识由 _PLD 描述的连接点的绘制顺序:顺序 = 0 的连接点先于顺序 = 1 的连接点绘制。顺序 = 1 先于顺序 = 2,以此类推。顺序 = 31 的连接点最后绘制。顺序应始终从 0 开始并连续分配。21195
Reserved保留,必须包含值 0。21244
垂直偏移形状原点相对于面板原点的偏移(单位为 mm)。值 0xFFFFFFFF 表示未提供此字段。212816
水平偏移形状原点相对于面板原点的偏移(单位为 mm)。值 0xFFFFFFFF 表示未提供此字段。214416

注

返回的所有附加缓冲区条目都可以包含 OEM 特定的数据,但必须以一个 {GUID, data} 对开始。这些附加数据可以提供特定于某些系统或某类机器的补充物理位置信息。

../_images/Device_Configuration-4.png

图 6.3 默认形状定义

缓冲区 1–N 返回值(可选) :

  • 缓冲区 1 位 [127:0] - GUID 1

  • 缓冲区 2 位 [127:0] - 数据 1

  • 缓冲区 3 位 [127:0] - GUID 2

  • 缓冲区 4 位 [127:0] - 数据 2

  • 等等。

PLD 背板渲染给出了一个示例,说明如何将 _PLD 信息所传达的外部设备连接点渲染并展示给用户。请注意,有三个与系统总线树(_SB)对象关联的 _PLD(系统背板、电源以及主板 (MB) 连接器区域)。它们的参考标志被设置,表示它们用于在视觉上为用户提供线索,以识别其他设备连接点的相对位置。

连接点(C1 到 C16)由系统总线树中找到的 _PLD 对象定义。

以下连接点的面板和盖板字段分别都设置为后面和 0。并且系统背板、电源和 MB 连接器区域连接点的参考标志都设置为 1。在本示例中,这些设置用于渲染 PLD 背板渲染:

表 6.5 PLD 背板示例设置

名称忽略颜色RGB宽度高度VOffHOff形状标记分组位置旋转
Back PanelYes0002032431800V Rect10
MB Conn areaYes00044515561588127V Rect20
Power SupplyYes00015248893302127H Rect20
USB Port 1No000125522223159H RectC1390
USB Port 2No000125522223254H RectC2390
USB Port 3No000125522223350H RectC3390
USB Port 4No000125522223445H RectC4390
USB Port 5No000125522007159H RectC5390
USB Port 6No000125522007254H RectC6390
EthernetNo0001571712007350V RectC7390
Audio 1NoFFFFFF1271271945151RoundC8390
Audio 2No1512471271271271945286RoundC9390
Audio 3No0001271271945427RoundC10390
SPDIFNo0001121261756176V TrapC11390
Audio 4No0FF01271271765288RoundC12390
Audio 5No00FF1271271765429RoundC13390
SATANo000239883091159H RectC14390
1394No0001121592890254H TrapC1530
CoaxNo0001591592842143RoundC16390
PCI 1No0001016127127127H Rect130
PCI 2No0001016127334127H Rect230
PCI 3No0001016127540127H Rect330
PCI 4No0001016127747127H Rect430
PCI 5No0001016127953127H Rect530
PCI 6No00010161271159127H Rect630
PCI 7No00010161271366127H Rect730

请注意,原点位于背板的左下角,其中正的 Horizontal Offset 和 Vertical Offset 值分别表示向右和向上。

../_images/Device_Configuration-5.png

图 6.4 PLD 背板渲染

6.1.9. _SUB(子系统 ID)

此对象用于向 OSPM 提供设备的子系统 ID。使用 _SUB 是可选的。

参数:

无

返回值:

包含 SUB 的字符串

_SUB 对象求值为一个字符串,其格式必须是有效的 PNP 或 ACPI ID,且不带星号或其他前导字符。

有关 PNP 和 ACPI ID 字符串的定义,请参见 _HID(_HID(硬件 ID))的定义。

ASL 示例 :

Name (_SUB, "MSFT3000") // 供应商定义的子系统

6.1.10. _STR(字符串)

_STR 对象求值为一个 Unicode 字符串,用于描述设备或热区。OS 可以使用它向最终用户提供信息。当没有其他信息可用时,此信息尤其有价值。

参数:

无

返回值:

包含描述设备的 Unicode 字符串的 Buffer

ASL 示例 :

Device (XYZ) {
   Name (_ADR, 0x00020001)
   Name (_STR, Unicode ("ACME super DVD controller"))
}

然后,当所有其他方法都失败时,OS 可以使用 _STR 对象中包含的信息向用户描述该硬件。

6.1.11. _SUN(槽位用户编号)

_SUN 是一个对象,求值为某个槽位的槽位唯一 ID 编号。_SUN 由 OSPM UI 用于向用户标识槽位。例如,这可用于电池槽位、PCI 槽位、PCMCIA 槽位或可更换舱位槽位,以告知用户每个槽位中有哪些设备。_SUN 求值为一个整数,该数值将用于用户界面。

参数:

无

返回值:

包含槽位唯一 ID 的 Integer

要求 _SUN 值在相同类型的槽位中唯一。还建议在可能的情况下,此编号与物理槽位上印刷的槽位编号一致。

6.1.12. _UID(唯一 ID)

此对象向 OSPM 提供一个跨重启不会改变的逻辑设备 ID。此对象是可选的,但当设备没有其他方式报告持久唯一设备 ID 时,则为必需。对于具有共同 _HID 或 _CID 的所有设备,_UID 必须是唯一的。这是因为设备需要被 OSPM 唯一标识,而 OSPM 可以通过匹配 _HID 或 _CID 来识别设备。无论 OSPM 使用 _HID 还是 _CID,唯一性匹配都必须成立。OSPM 通常使用该唯一设备 ID 来确保设备特定信息(例如网络协议绑定信息)即使在设备相对位置发生变化时,也仍能为该设备保留。对于大多数集成设备,此对象包含一个唯一标识符。

一般来说,_UID 对象求值为数值或字符串之一。然而,当定义 _HID 为 ACPI0007 的对象(处理器定义对象)时,_UID 对象必须返回一个整数。该整数在 MADT、PPTT 和其他表中用作标识符,以将不可枚举设备连接到处理器对象。在这些情况下,如果使用字符串,则没有机制来连接这些设备。

参数:

无

返回值:

包含唯一 ID 的 Integer 或 String

Prev
总览
Next
6.2. 设备配置对象