5.2.9. 固定 ACPI 描述表 (FADT)
固定 ACPI 描述表(FADT)定义了对ACPI兼容OS至关重要的各种固定硬件ACPI信息,例如以下硬件寄存器块的基址:PM1a_EVT_BLK、PM1b_EVT_BLK、PM1a_CNT_BLK、 PM1b_CNT_BLK、PM2_CNT_BLK、PM_TMR_BLK、GPE0_BLK 和 GPE1_BLK。
FADT 还包含一个指向 DSDT 的指针。DSDT 中包含差分定义块,它向 ACPI 兼容 OS 提供有关基本系统设计的可变信息。
FADT中提供硬件地址的所有字段都提供与处理器相关的物理地址。
笔记
如果设置了表中的HW_REDUCED_ACPI标志,OSPM将忽略与ACPI、HW寄存器接口相关的字段:偏移量为 46 到 108 和 148 到 232 的字段,以及FADT标志位 1、2、3、7、8、13、14、 16 和 17)。
注意事项
在FADT包含 32 位字段和相应的 64 位字段的所有情况下,如果 64 位字段包含可被OSPM使用的非零值,则OSPM应始终优先使用 64 位字段。在这种情况下,32 位字段必须被忽略,无论它是否为零,也无论它是否与 64 位字段的值相同。仅当相应的 64 位字段包含零值,或者 64 位值不能被 OSPM 使用时,才应使用 32 位字段。 CPU 寻址限制。
| 表 5.9 FADT 格式 字段 | 字节长度 | 字节偏移 | 描述 |
|---|---|---|---|
| 标题 |
- 签名
| 4 | 0 | “FACP”。固定 ACPI 描述表的签名。 (此签名早于 ACPI 1.0,解释了与此表名称的不匹配。)
- 长度
| 4 | 4 |整个FADT的长度(以字节为单位)。 FADT 主要版本 | 1 | 8 | 6 此FADT结构的主要版本,采用“Major.Minor”形式,其中“Minor”是次版本字段中的值(此表中的字节偏移量 131)。其目的是ACPI表中包含的所有内容都符合ACPI规范本身中包含的内容。 FADT主要版本和次要版本与ACPI规范的版本保持同步。符合给定的ACPI规范意味着每个ACPI相关表都符合该版本规范中列出的该表的版本号。 校验和| 1 | 9 |整个表的总和必须为零。 OEMID | 6 | 10 | 10 OEM ID OEM 表 ID | 8 | 16 | 16对于FADT,表ID是制造型号ID。该字段必须与RSDT中的OEM表ID匹配。 OEM 修订| 4 | 24 | OEM 所提供OEM 表ID 的FADT 修订版。 创建者ID | 4 | 28 | 28创建该表的实用程序的供应商ID。对于包含定义块的表,这是ASL编译器的ID。 创建者修订| 4 | 32 | 32创建表的实用程序的修订。对于包含定义块的表,这是 ASL 编译器的修订版。 FIRMWARE_CTRL | 4 | 36 | 36物理内存地址FACS,其中OSPM与固件交换控制信息。有关FACS的更多信息,请参阅第 5.2.10 节。如果X_FIRMWARE_CTRL字段包含可供OSPM使用的非零值,则OSPM必须忽略该字段。如果设置了HARDWARE_REDUCED_ACPI标志,并且该字段和X_FIRMWARE_CTRL字段都为零,则没有可用的FACS。 DSDT | 4 | 40|物理内存地址DSDT。如果X_DSDT字段包含可供OSPM使用的非零值,则OSPM必须忽略该字段。 保留 | 1 | 44 | 44 ACPI 1.0 将此偏移量定义为名为 INT_MODEL 的字段,该字段在 ACPI 2.0 中被消除。平台应将此字段设置为零,但也允许字段值为 1,以保持与 ACPI 1.0 的兼容性。 Preferred_PM_Profile | 1 | 45 | 45 该字段由OEM设置,以将首选电源管理配置文件传达给OSPM。 OSPM在OS安装过程中可以使用此字段设置默认的电源管理策略参数。字段值: 0 未指定 1 台式机 2 移动设备 3 工作站 4 企业服务器 5 SOHO 服务器 6 设备 PC 7 性能服务器 8) 平板电脑 >8 保留 SCI_INT | 2 | 46 | 46系统向量SCI中断以 8259 模式连接。在不包含 8259 的系统上,该字段包含SCI中断的全局系统中断号。需要OSPM才能将ACPI、SCI中断视为可共享、电平、低电平有效中断。 SMI_CMD | 4 | 48 | 48 SMI命令端口的系统端口地址。在ACPI、OS初始化期间,OSPM可以确定ACPI硬件寄存器由SMI拥有(通过SCI_EN位),在这种情况下,ACPI、OS发出ACPI_ENABLE命令发送至SMI_CMD端口。 SCI_EN位有效地跟踪ACPI硬件寄存器的所有权。 OSPM从启动处理器同步向SMI_CMD端口发出命令。该字段是保留的,在不支持系统管理模式的系统上必须为零。
ACPI_ENABLE | 1 | 52 | 52写入SMI_CMD的值以禁用SMI对ACPI硬件寄存器的所有权。 SMI放弃所有权的最后一个操作是设置SCI_EN位。在OS初始化过程中,OSPM会同步等待SMI所有权转移完成,以便ACPI系统尽快释放SMI所有权。该字段是保留的,在不支持传统模式的系统上必须为零。 ACPI_DISABLE | 1 | 53 | 53写入SMI_CMD的值以重新启用SMI对ACPI硬件寄存器的所有权。仅当所有权最初由OSPM使用ACPI_ENABLE从SMI获取时,才能执行此操作。通过放弃对ACPI硬件寄存器的使用、屏蔽所有SCI中断、清除SCI_EN位,然后将ACPI_DISABLE从引导处理器写入SMI_CMD端口,OS可以将所有权交还给SMI。该字段是保留的,在不支持传统模式的系统上必须为零。 S4BIOS_REQ | 1 | 54 | 54写入SMI_CMD以进入S4BIOS状态的值。 S4BIOS状态提供了另一种进入S4状态的方法,固件在该状态下保存和恢复内存上下文。 S4BIOS_F中的值为零表示不支持S4BIOS_REQ。 (参见第 5.2.10 节) PSTATE_CNT | 1 | 55 | 55如果非零,则该字段包含写入SMI_CMD寄存器的值OSPM,以承担处理器性能状态控制的责任。 PM1a_EVT_BLK | 4 | 56 | 56 PM1a事件寄存器块的系统端口地址。有关该寄存器块的硬件描述布局,请参见第 4.8.4.1 节。这是必填字段。如果X_PM1a_CNT_BLK字段包含可供OSPM使用的非零值,则OSPM必须忽略该字段。 PM1b_EVT_BLK | 4 | 60| PM1b事件寄存器块的系统端口地址。有关该寄存器块的硬件描述布局,请参见第 4.8.4.1 节。该字段是可选的;如果不支持该寄存器块,则该字段包含零。如果X_PM1b_EVT_BLK字段包含可供OSPM使用的非零值,则OSPM必须忽略该字段。 PM1a_CNT_BLK | 4 | 64 | 64 PM1a控制寄存器块的系统端口地址。有关该寄存器块的硬件描述布局,请参见第 4.8.4.1 节。这是必填字段。如果X_PM1a_CNT_BLK字段包含可供OSPM使用的非零值,则OSPM必须忽略该字段。 PM1b_CNT_BLK | 4 | 68 | 68 PM1b控制寄存器块的系统端口地址。有关该寄存器块的硬件描述布局,请参见第 4.8.4.1 节。该字段是可选的;如果不支持该寄存器块,则该字段包含零。如果X_PM1b_CNT_BLK字段包含可供OSPM使用的非零值,则OSPM必须忽略该字段。
PM2_CNT_BLK | 4 | 72 | 72 PM2控制寄存器块的系统端口地址。有关该寄存器块的硬件描述布局,请参见表 4.4。该字段是可选的;如果不支持该寄存器块,则该字段包含零。如果X_PM2_CNT_BLK字段包含可供OSPM使用的非零值,则OSPM必须忽略该字段。 PM_TMR_BLK | 4 | 76 | 76电源管理定时器控制寄存器块的系统端口地址。有关该寄存器块的硬件描述布局,请参阅第 4.8.4.3 节。这是一个可选字段;如果不支持该寄存器块,则该字段包含零。如果X_PM_TMR_BLK字段包含可供OSPM使用的非零值,则OSPM必须忽略该字段。 GPE0_BLK | 4 | 80|通用事件 0 寄存器块的系统端口地址。有关详细信息,请参阅第 4.8.5.1 节。如果不支持该寄存器块,则该字段包含零。如果X_GPE0_BLK字段包含可供OSPM使用的非零值,则OSPM必须忽略该字段。 GPE1_BLK | 4 | 84 | 84通用事件 1 寄存器块的系统端口地址。有关详细信息,请参阅第 4.8.5.1 节。这是一个可选字段;如果不支持该寄存器块,则该字段包含零。如果X_GPE1_BLK字段包含可供OSPM使用的非零值,则OSPM必须忽略该字段。 PM1_EVT_LEN | 1 | 88 | 88由PM1a_EVT_BLK和 PM1b_EVT_BLK(如果支持)解码的字节数。该值 >= 4。 PM1_CNT_LEN | 1 | 89 | 89由PM1a_CNT_BLK和PM1b_CNT_BLK(如果支持)解码的字节数。该值>= 2。 PM2_CNT_LEN | 1 | 90 | 90由PM2_CNT_BLK解码的字节数。对PM2寄存器块的支持是可选的。如果支持,则该值 >= 1。如果不支持,则该字段包含零。 PM_TMR_LEN | 1 | 91 | 91由PM_TMR_BLK解码的字节数。如果支持PM定时器,则该字段的值必须为4。如果不支持,则该字段包含零。 GPE0_BLK_LEN | 1 | 92 | 92由GPE0_BLK解码的字节数。该值是 2 的非负倍数。 GPE1_BLK_LEN | 1 | 93 | 93由GPE1_BLK解码的字节数。该值是 2 的非负倍数。 GPE1_BASE | 1 | 94 | 94 ACPI通用事件模型内的偏移量,其中基于GPE1的事件开始。 CST_CNT | 1 | 95 | 95如果非零,则该字段包含写入SMI_CMD寄存器的值OSPM,以指示OS支持 _CST 对象和 C 状态更改通知。 P_LVL2_LAT | 2 | 96 | 96进入和退出C2状态的最坏情况硬件延迟(以微秒为单位)。值 > 100 表示系统不支持C2状态。 P_LVL3_LAT | 2 | 98 | 98进入和退出C3状态的最坏情况硬件延迟(以微秒为单位)。值 > 1000 表示系统不支持C3状态。
FLUSH_SIZE | 2 | 100 | 100如果WBINVD=0,则该字段的值是需要读取(使用可缓存地址)以从任何处理器的内存缓存中完全刷新脏行的刷新步幅数。请注意,FLUSH_STRIDE中的值通常是任何处理器缓存上的最小缓存行宽度(有关详细信息,请参阅FLUSH_STRIDE字段定义)。如果系统不支持刷新处理器缓存的方法,则FLUSH_SIZE和WBINVD将设置为零。请注意,这种刷新处理器缓存的方法有局限性,WBINVD=1 是刷新处理器缓存的首选方法。该值通常至少是缓存大小的 2 倍。对于典型的最大支持缓存大小 1MB,FLUSH_SIZE 乘以 FLUSH_STRIDE 的最大允许值为 2MB。使用WBINVD=1 支持更大的缓存大小。如果WBINVD=1,则忽略该值。该字段保留是为了与现有系统上的 ACPI 1.0 处理器兼容。新的ACPI兼容系统中的处理器需要支持WBINVD功能,并通过设置WBINVD字段 = 1 将其指示给OSPM。 FLUSH_STRIDE | 2 | 102 | 102如果WBINVD=0,则该字段的值是处理器内存高速缓存的高速缓存行宽度(以字节为单位)。该值通常是任何处理器缓存上的最小缓存行宽度。有关详细信息,请参阅FLUSH_SIZE字段的说明。如果WBINVD=1,则忽略该值。该字段保留是为了与现有系统上的 ACPI 1.0 处理器兼容。新的ACPI兼容系统中的处理器需要支持WBINVD功能,并通过设置WBINVD字段 = 1 将其指示给OSPM。 DUTY_OFFSET | 1 | 104 | 104处理器占空比设置在处理器P_CNT寄存器中的从零开始的索引。 DUTY_WIDTH | 1 | 105 | 105 P_CNT寄存器中处理器占空比设置值的位宽。每个处理器的占空比设置允许软件选择低于其绝对频率的标称处理器频率,定义如下: THTL_EN = 1 BF * DC/(2DUTY_WIDTH) 其中: BF - 基本频率 DC - 占空比设置 当 THTL_EN 为 0 时,处理器以其绝对值BF运行。 DUTY_WIDTH值为 0 表示不支持处理器占空比,并且处理器连续以其基本频率运行。 DAY_ALRM | 1 | 106 | 106 RTCCMOSRAM索引为月份报警值。如果该字段包含零,则不支持RTC月份中的某一天警报功能。如果该字段具有非零值,则该字段包含RTC、RAM空间的索引,OSPM可使用该索引对月份中的某一天警报进行编程。有关该硬件工作原理的说明,请参阅第 4.8.3.3 节。 MON_ALRM | 1 | 107 | 107 RTC CMOS RAM 年份警报值的索引。如果该字段包含零,则不支持RTC月份警报功能。如果该字段具有非零值,则该字段包含RTC、RAM空间的索引,OSPM可使用该索引对一年中的月份警报进行编程。如果支持此功能,则DAY_ALRM功能也必须受支持。
CENTURY | 1 | 108 | 108 RTC CMOS RAM 数据值世纪的索引(十万年小数)。如果该字段包含零,则不支持RTC百年纪念功能。如果此字段具有非零值,则此字段包含RTC、RAM空间的索引,OSPM可使用该索引对百年字段进行编程。 IAPC_BOOT_ARCH | 2 | 109 | 109 IA-PC 引导架构标志。有关该字段的说明,请参见表 5.12。 保留 | 1 | 111 | 111必须为 0。 旗帜| 4 | 112 | 112修复了功能标志。有关该字段的说明,请参见表 5.10。 RESET_REG | 12 | 12 116 | 116以通用地址结构格式表示的复位寄存器的地址(有关复位机制的说明,请参见第 4.8.4.6 节。) 注:只有系统 I/O 空间、系统内存空间和PCI配置空间(总线 #0)对于Address_Space_ID值有效。此外,Register_Bit_Width 必须为 8,Register_Bit_Offset 必须为 0。 RESET_VALUE | 1 | 128 | 128指示写入RESET_REG端口以重置系统的值。 (有关重置机制的说明,请参阅第 4.8.4.6 节。) ARM_BOOT_ARCH | 2 | 129 | 129 ARM 引导架构标志。有关该字段的说明,请参见表 5.12。 FADT 次要版本 | 1 | 131 | 131 4. (勘误表位 4-7 = 0)此 FADT 结构的次要版本,采用“Major.Minor”形式,其中“Major”是主要版本字段中的值(此表中的字节偏移量 8)。位 0-3 - 低位对应于规范版本的次要版本。例如,ACPI 6.3 的主要版本为 6,次要版本为 3。 位 4-7 - 高阶位对应于该表所遵循的 ACPI 规范勘误表的版本。值为 0 表示它符合当前规范的基本版本。值为 1 表示与勘误表 A 兼容,值为 2 表示与勘误表 B 兼容,依此类推。 X_FIRMWARE_CTRL | 8 | 132 | 132 FACS的扩展物理地址。如果该字段包含可由OSPM使用的非零值,则OSPM必须忽略FIRMWARE_CTRL字段。如果设置了HARDWARE_REDUCED_ACPI标志,并且该字段和FIRMWARE_CTRL字段都为零,则没有可用的FACS。 X_DSDT | 8 | 140 | 140 DSDT的扩展物理地址。如果该字段包含可由OSPM使用的非零值,则DSDT字段必须被OSPM忽略。 X_PM1a_EVT_BLK | 12 | 12 148 | 148 PM1a事件寄存器块的扩展地址,以通用地址结构格式表示。有关该寄存器块的硬件描述布局,请参见第 4.8.4.1 节。这是必填字段。如果该字段包含可供 OSPM 使用的非零值,则 OSPM 必须忽略 PM1a_EVT_BLK 字段。
X_PM1b_EVT_BLK | 12 | 12 160 | 160 PM1b事件寄存器块的扩展地址,以通用地址结构格式表示。有关该寄存器块的硬件描述布局,请参见第 4.8.4.1 节。该字段是可选的;如果不支持该寄存器块,则该字段包含零。如果该字段包含可由OSPM使用的非零值,则OSPM必须忽略PM1b_EVT_BLK字段。 X_PM1a_CNT_BLK | 12 | 12 172 | 172 PM1a控制寄存器块的扩展地址,以通用地址结构格式表示。有关该寄存器块的硬件描述布局,请参见第 4.8.4.2 节。这是必填字段。如果该字段包含可由OSPM使用的非零值,则OSPM必须忽略PM1a_CNT_BLK字段。 X_PM1b_CNT_BLK | 12 | 12 184 | 184 PM1b控制寄存器块的扩展地址,以通用地址结构格式表示。有关该寄存器块的硬件描述布局,请参见第 4.8.4.2 节。该字段是可选的;如果不支持该寄存器块,则该字段包含零。如果该字段包含可供OSPM使用的非零值,则OSPM必须忽略PM1b_CNT_BLK字段。 X_PM2_CNT_BLK | 12 | 12 196 | 196 PM2控制寄存器块的扩展地址,以通用地址结构格式表示。有关该寄存器块的硬件描述布局,请参见PM2控制(PM2_CNT)。该字段是可选的;如果不支持该寄存器块,则该字段包含零。如果该字段包含可由OSPM使用的非零值,则OSPM必须忽略PM2_CNT_BLK字段。 X_PM_TMR_BLK | 12 | 12 208 | 208电源管理定时器控制寄存器块的扩展地址,以通用地址结构格式表示。有关该寄存器块的硬件描述布局,请参见第 4.8.4.3 节。该字段是可选的;如果不支持该寄存器块,则该字段包含零。如果该字段包含可供OSPM使用的非零值,则OSPM必须忽略PM_TMR_BLK字段。 X_GPE0_BLK | 12 | 12 220 | 220通用事件 0 寄存器块的扩展地址,以通用地址结构格式表示。有关详细信息,请参阅第 4.8.5.1 节。这是一个可选字段;如果不支持该寄存器块,则该字段包含零。如果该字段包含可由OSPM使用的非零值,则OSPM必须忽略GPE0_BLK字段。 X_GPE1_BLK | 12 | 12 232 | 232通用事件 1 寄存器块的扩展地址,以通用地址结构格式表示。有关详细信息,请参阅第 4.8.5.1 节。这是一个可选字段;如果不支持该寄存器块,则该字段包含零。如果该字段包含可供OSPM使用的非零值,则OSPM必须忽略GPE1_BLK字段。
SLEEP_CONTROL_REG | 12 | 12 244 | 244睡眠寄存器的地址,以通用地址结构格式表示(有关睡眠机制的描述,请参阅第 4.8.4.7 节)。注意:只有系统 I/O 空间、系统内存空间和PCI配置空间(总线#0)对于Address_Space_ID值有效。此外,Register_Bit_Width 必须为 8,Register_Bit_Offset 必须为 0。 SLEEP_STATUS_REG | 12 | 12 256 | 256睡眠状态寄存器的地址,以通用地址结构格式表示(有关睡眠机制的描述,请参阅第 4.8.4.7 节)。注意:只有系统 I/O 空间、系统内存空间和 PCI 配置空间(总线 #0)对于 Address_Space_ID 值有效。此外,Register_Bit_Width 必须为 8,Register_Bit_Offset 必须为 0。 虚拟机管理程序供应商身份 | 8 | 268 | 268虚拟机管理程序供应商的 64 位标识符。该字段中的所有字节都被视为供应商身份的一部分。这些标识符由供应商自己独立定义,通常遵循虚拟机管理程序产品的名称。版本信息应包含在该字段中 - 这应仅表示供应商的名称或标识符。版本信息可以通过补充供应商特定的虚拟机管理程序API进行传达。固件实现者将在该字段中放置零字节,表示实际固件中不存在虚拟机管理程序。
注意事项
[虚拟机管理程序供应商身份] 固件实现者会在此字段中放置零字节,表示实际固件中不存在虚拟机管理程序。
注意事项
[虚拟机管理程序供应商身份] 向来宾提供其自己构建的ACPI表(针对“虚拟”固件或其“虚拟”平台)的虚拟机管理程序供应商将在此字段中提供其身份。
注意事项
[Hypervisor Vendor Identity] 如果来宾操作系统知道此字段,则可以根据其是否识别供应商并知道如何使用供应商定义的API来查阅该字段并根据结果采取行动。
| 表 5.10 固定ACPI 描述表固定功能标志 FACP - 标志 | 位长度 | 位偏移 | 描述 |
|---|---|---|---|
| WBINVD | 1 | 0 | 处理器正确实现与WBINVD、IA-32指令等效的功能。如果设置,则表示WBINVD指令正确刷新处理器高速缓存,保持内存一致性,并且在指令完成后,当前处理器的所有高速缓存除OSPM引用并允许高速缓存的数据外,不包含任何高速缓存数据。如果未设置此标志,ACPIOS负责禁用所有需要此功能的ACPI功能。该字段保留是为了与现有系统上的 ACPI 1.0 处理器兼容。新的ACPI兼容系统中的处理器需要支持此功能,并通过设置此字段将其指示给OSPM。 |
| WBINVD_FLUSH | 1 | 1 | 如果设置,则表示硬件刷新WBINVD指令上的所有缓存并保持内存一致性,但不保证缓存无效。这提供了WBINVD指令的完整语义,并提供了足够的支持系统睡眠状态。如果WBINVD标志均未设置,系统将需要FLUSH_SIZE和FLUSH_STRIDE来支持睡眠状态。如果也不支持FLUSH参数,则机器不支持睡眠状态S1、S2或S3。 |
| PROC_C1 | 1 | 2 | 1 表示所有处理器都支持C1电源状态。 |
| P_LVL2_UP | 1 | 3 | 零表示C2电源状态配置为仅在单处理器 (UP) 系统上工作。 1 表示C2电源状态配置为在UP或多处理器 (MP) 系统上工作。 |
| PWR_BUTTON | 1 | 4 | 零表示电源按钮被作为固定功能编程模型处理; a 表示电源按钮被作为控制方法设备处理。如果系统没有电源按钮,则该值将为“1”并且不存在电源按钮设备。与该字段的值无关,命名空间中电源按钮设备的存在向OSPM指示电源按钮被作为控制方法设备处理。 |
| SLP_BUTTON | 1 | 5 | 零表示睡眠按钮被作为固定功能编程模型处理; 1 表示睡眠按钮被作为控制方法设备处理。如果系统没有睡眠按钮,则该值将为“1”并且不存在睡眠按钮设备。与该字段的值无关,命名空间中睡眠按钮设备的存在向OSPM指示睡眠按钮被作为控制方法设备进行处理。 |
| FIX_RTC | 1 | 6 | 零表示固定寄存器空间支持RTC唤醒状态; 1 表示固定寄存器空间不支持RTC唤醒状态。 |
| RTC_S4 | 1 | 7 | 指示RTC报警功能是否可以将系统从S4状态唤醒。 RTC必须能够将系统从S1、S2或S3睡眠状态唤醒。 RTC警报可以选择支持将系统从S4状态唤醒,如该值所示。 |
| TMR_VAL_EXT | 1 | 8 | 零表示TMR_VAL被实现为 24 位值。 1 表示TMR_VAL被实现为 32 位值。当TMR_VAL的最高有效位切换时,TMR_STS位被置位。 |
DCK_CAP | 1 | 9 |零表示系统不支持对接。 1 表示系统可以支持对接。请注意,此标志并不指示当前是否存在扩展坞;它仅表明系统能够对接。 RESET_REG_SUP | 1 | 10 | 10如果设置,则表示系统支持通过FADTRESET_REG进行系统重置,如第 4.8.4.6 节 中所述。 SEALED_CASE | 1 | 11 | 11系统类型属性。如果设置,则表明系统没有内部扩展功能并且外壳是密封的。 HEADLESS | 1 | 12 | 12系统类型属性。如果设置表示系统无法检测到显示器或键盘/鼠标设备。 CPU_SW_SLP | 1 | 13 |如果设置,则向OSPM指示在写入SLP_TYPx寄存器后必须执行处理器本机指令。 PCI_EXP_WAK | 1 | 14 | 14如果设置,则表示平台支持PM1状态寄存器中的PCIEXP_WAKE_STS位和PM1启用寄存器中的PCIEXP_WAKE_EN位。该位必须在包含实现PCI Express 并支持PM1 PCIEXP_WAK 位的芯片组的平台上设置。 USE_PLATFORM_CLOCK | 1 | 15 | 15值为 1 表示OSPM应使用平台提供的计时器来驱动任何单调非递减计数器,例如OSPM性能计数器服务。使用哪个特定平台定时器是特定于OSPM的,但是,建议使用的定时器基于以下算法:如果HPET暴露于OSPM,OSPM应使用HPET。否则,OSPM将使用ACPI电源管理定时器。值为 1 表示已知该平台具有正确实施的ACPI电源管理计时器。如果内部处理器时钟(或多处理器配置中的时钟)无法提供一致的单调非递减计数器,平台可以选择设置此标志。注意:如果存在零值,OSPM可以任意选择使用内部处理器时钟或平台定时器时钟来执行这些操作。也就是说,零并不意味着OSPM必须使用内部处理器时钟来生成系统的单调非递减计数器。 S4_RTC_STS_VALID | 1 | 16 | 16 1 表示从S4唤醒系统时,RTC_STS标志的内容有效。有关详细信息,请参阅表 4.11。目前,一些现有系统无法可靠地设置此输入,并且该位允许OSPM区分正常运行的平台和具有此勘误表的平台。 REMOTE_POWER_ON_CAPABLE | 1 | 17 | 17 1 表示该平台兼容远程开机。也就是说,平台支持OSPM在S5转换之前保留GPE唤醒事件。某些现有平台在启用唤醒事件的情况下无法可靠地转换到S5(例如,平台可能在完成S5转换后立即生成虚假唤醒事件)。该标志允许OSPM区分正常运行的平台和具有此类勘误表的平台。
FORCE_APIC_CLUSTER_MODEL | 1 | 18 | 18 1 表示在以逻辑模式传送中断时,必须为集群目标模型配置所有本地 APIC。如果设置了该位,则在OSPM将所有本地 APIC 移至集群模型之前,逻辑模式中断传送操作可能未定义。请注意,集群目标模型不适用于 Itanium™ 处理器系列 (IPF) 本地 SAPIC。该位适用于基于 xAPIC 的机器,即使机器中存在 8 个或更少的本地 APIC,这些机器也需要集群目标模型。 FORCE_APIC_PHYSICAL_-DESTINATION_MODE | 1 | 19 | 19 1 表示所有本地 xAPIC 必须配置为物理目标模式。如果设置该位,则逻辑目标模式下的中断传送操作未定义。在包含少于 8 个本地 xAPIC 或不使用 xAPIC 架构的计算机上,该位将被忽略。 HW_REDUCED_ACPI * | 1 | 20 | 1 表示实施了硬件简化 ACPI(第 4.1 节),因此纯软件替代方案用于第 4 章中定义的支持的固定功能。 LOW_POWER_S0_IDLE_CAPABLE | 1 | 21 | 21一位用户告知OSPM,该平台能够在S0中实现类似于或优于S3中通常实现的节能效果。实际上,当设置该位时,表明系统通过睡眠转换至S3不会获得任何功率优势。 保留 | 10 | 10 22 | 22
- 此处提供的HW_REDUCED_ACPI描述适用于ACPI规格5.0及更高版本。
5.2.9.1. 首选 PM 配置文件系统类型
以下对首选电源管理配置文件系统类型的描述可用作设置FADT中Preferred_PM_Profile字段的指南。 OSPM在OS安装过程中可以使用该字段设置默认的电源管理策略参数。
桌面
位于个人工作区域上或附近的单用户、全功能、固定计算设备。通常包含一个处理器。必须连接到AC电源才能运行。该设备用于执行被视为主流企业或家庭计算的工作(例如文字处理、Internet 浏览、电子表格等)。
手机
一种单用户、全功能、便携式计算设备,能够依靠电池或其他电力存储设备运行来执行其正常功能。通常包含一个处理器。该设备执行与桌面相同的任务集。然而,由于其尺寸、热要求和/或电源寿命,它可能具有限制。
工作站
位于个人工作区域上或附近的单用户、全功能、固定计算设备。通常包含多个处理器。必须连接至AC电源才能运行。该器件用于执行大量计算,以支持CAD/CAM等工作以及其他图形密集型应用程序。
企业服务器
一种多用户固定计算设备,通常位于单独的、通常是专门设计的房间中。几乎总是包含多个处理器。必须连接到AC电源才能运行。该设备用于支持公司或政府内的大规模网络、数据库、通信或财务运营。
SOHO 服务器
一种多用户固定计算设备,通常位于小型办公室或家庭办公室的单独区域或房间中。可能包含多个处理器。必须连接到AC电源才能运行。该设备通常用于支持小型办公室或家庭办公室的所有网络、数据库、通信和财务操作。
设备PC
专为在低噪音、高可用性环境(例如消费者的客厅或家庭活动室)中运行而设计的设备。通常包含一个处理器。此类别还包括家庭互联网网关、Web pad、机顶盒和其他支持ACPI的设备。必须连接到AC电源才能运行。通常,它们是密封盒式的,并且只能执行通常与当今个人计算机相关的任务的子集。
性能服务器
一种多用户固定计算设备,通常位于单独的、通常是专门设计的房间中。通常会包含多个处理器。必须连接到AC电源才能运行。该器件用于愿意牺牲节能功能以获得更好的性能和更快的响应速度的环境中。
平板电脑
一种功能齐全、高度移动的计算设备,类似于书写板,用户主要通过触摸界面进行交互。尽管可能存在键盘和/或鼠标,但触摸数字转换器是主要的用户输入设备。平板电脑设备通常使用电池供电,并且通常仅插入AC电源才能充电。该设备执行许多与移动设备相同的任务;然而,平板电脑设备的电池寿命预期通常需要更积极的节能,特别是在管理显示和触摸组件方面。
5.2.9.2. 系统类型属性
OS使用这组标志来帮助确定有关电源和设备管理的假设。这些标志在启动时读取,并用于做出有关电源管理和设备设置的决策。例如,设置了SEALED_CASE位的系统可能会对热管理采取非常积极的低噪声策略。在另一个示例中,OS可能无法在HEADLESS系统上加载视频、键盘或鼠标驱动程序。
5.2.9.3. IA-PC 引导架构标志
OS使用这组标志来指导在IA-PC平台上初始化硬件时可以做出的假设。这些标志由OS在启动时(在OS能够提供适合解析ACPI命名空间的操作环境之前)使用来确定启动期间要采用的代码路径。在减少旧硬件的IA-PC平台中,OS可以跳过旧设备的代码路径(如果不存在)。例如,如果没有ISA设备,OS设备可能会跳过假定存在这些设备及其关联资源的代码。这些标志的使用独立于ACPI命名空间。其他设备的存在必须在ACPI命名空间中进行描述,如第 6 节中所指定。这些标志仅适用于IA-PC平台。在其他系统架构上,整个字段应设置为 0。
| 表 5.11 固定ACPI 说明表 启动 IA-PC 启动 IAPC_BOOT_ARCH | 位长度 | 位偏移 | 描述 |
|---|---|---|---|
| LEGACY_DEVICES | 1 | 0 | 如果设置,则表明主板支持LPC或ISA总线上的用户可见设备。用户可见设备是指具有最终用户可访问连接器(例如LPT端口)的设备,或者OS必须为其加载设备驱动程序以便最终用户应用程序可以使用该设备的设备。如果清楚,OS可能会假设不存在此类设备,并且系统中的所有设备都可以通过行业标准设备枚举机制(包括ACPI命名空间)专门检测到。 |
| 8042 | 1 | 1 | 如果设置,则表明主板包含对基于端口 60 和 64 的键盘控制器的支持,通常作为 8042 或等效微控制器实现。 |
| VGA 不存在 | 1 | 2 | 如果设置,则指示OSPM不得盲目探测VGA硬件(响应MMIO地址A0000h-BFFFFh和IO端口 3B0h-3BBh 和 3C0h-3DFh),否则可能会导致系统上的机器检查。如果清除,则向OSPM表明探测VGA硬件是安全的。 |
| MSI 不支持 | 1 | 3 | 如果设置,则指示OSPM不得在此平台上启用消息信号中断(MSI)。 |
| PCIeASPM 控制 | 1 | 4 | 如果设置,则指示OSPM不得在此平台上启用OSPM ASPM 控制。 |
| CMOS RTC 不存在 | 1 | 5 | 如果设置,则表示CMOSRTC未实现或不存在于旧地址中。 OSPM 使用控制方法时间和警报命名空间设备。 |
| 保留 | 10 | 10 6 | 必须为 0。 |
5.2.9.4. ARM 架构引导标志
这些标志由OS在启动时(在OS能够提供适合解析ACPI名称空间的操作环境之前)使用来确定启动期间要采用的代码路径。具体来说,对于PSCI标志,这些标志描述了平台是否符合PSCI规范。可以在 http://uefi.org/acpi 上的“指向 ACPI 相关文档的链接”中找到 PSCI 规范的链接。
下表描述了ARM架构引导标志。
| 表 5.12 固定ACPI 说明表ARM 引导架构标志 ARM_BOOT_ARCH | 位长度 | 位偏移 | 描述 |
|---|---|---|---|
| PSCI_COMPLIANT | 1 | 0 | 1 如果PSCI已实施。 |
| PSCI_USE_HVC | 1 | 1 | 1 如果 HVC 必须用作 PSCI 导管,而不是 SMC。 |
| 保留 | 14 | 14 2 | 该值为零。 |