ACPI 中文文档
ACPI 规范中文文档
总目录
1. 引言
- 1.1. 主要目标
- 1.2. 电源管理原理依据
- 1.3. 传统支持
- 1.4. OEM 实现策略
- 1.5. 电源按钮和睡眠按钮
- 1.6. ACPI 规范与 ACPI 的结构
- 1.7. OS 和平台符合性
- 1.8. 目标读者
- 1.9. 文档组织
- 1.10. 相关文档
2. 术语定义
3. ACPI 概念
- 3.1. 系统电源管理
- 3.2. 电源状态
- 3.3. 设备电源管理
- 3.4. 控制设备电源
- 3.5. 处理器电源管理
- 3.6. 设备和处理器性能状态
- 3.7. 配置和“即插即用”
- 3.8. 系统事件
- 3.9. 电池管理
- 3.10. 热管理概念
- 3.11. 灵活的平台体系结构支持
4. ACPI 硬件规范
- 4.1. 硬件精简型 ACPI
- 4.2. 固定硬件编程模型
- 4.3. 通用硬件编程模型
- 4.4. 图例
- 4.5. 寄存器位表示法
- 4.6. ACPI 硬件模型
- 4.7. ACPI 硬件功能
- 4.8. ACPI 寄存器模型
5. ACPI 软件编程模型
- 5.1. 系统描述表架构概述
- 5.2. ACPI 系统描述表
- 5.2.1. 保留位和字段
- 5.2.2. 兼容性
- 5.2.3. 地址格式
- 5.2.4. 通用唯一标识符 (UUID)
- 5.2.5. 根系统描述指针 (RSDP)
- 5.2.6. 系统描述表头
- 5.2.7. 根系统描述表 (RSDT)
- 5.2.8. 扩展系统描述表 (XSDT)
- 5.2.9. 固定 ACPI 描述表 (FADT)
- 5.2.10. 固件 ACPI 控制结构 (FACS)
- 5.2.11. 定义块
- 5.2.12. 多个APIC描述表(MADT)
- 5.2.13. 全局系统中断
- 5.2.14. 智能电池表 (SBST)
- 5.2.15. 嵌入式控制器启动资源表 (ECDT)
- 5.2.16. 系统资源关联表 (SRAT)
- 5.2.17. 系统局部性信息表 (SLIT)
- 5.2.18. 更正平台错误轮询表 (CPEP)
- 5.2.19. 最大系统特性表 (MSCT)
- 5.2.20. ACPI RAS 功能表 (RASF)
- 5.2.21. 内存电源状态表 (MPST)
- 5.2.22. 启动图形资源表 (BGRT)
- 5.2.23. 固件性能数据表 (FPDT)
- 5.2.24. 通用定时器描述表 (GTDT)
- 5.2.25. NVDIMM 固件接口表 (NFIT)
- 5.2.26. 安全设备 (SDEV) ACPI 表
- 5.2.27. 异构内存属性表(HMAT)
- 5.2.28. 平台调试触发器表 (PDTT)
- 5.2.29. 处理器属性拓扑表 (PPTT)
- 5.2.30. 平台健康评估表 (PHAT)
- 5.3. ACPI 命名空间
- 5.4. 定义块编码
- 5.5. 控制方法和 ACPI 源语言 (ASL)
- 5.6. ACPI 事件编程模型
- 5.7. 预定义对象
- 5.8. 系统配置对象
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.5. 其他对象和控制方法
7. 电源与性能管理
8. 处理器配置与控制
- 8.1. 处理器电源状态
- 8.2. 刷新缓存
- 8.3. 电源、性能和节流状态依赖关系
- 8.4. 声明处理器
- 8.5. 处理器聚合器设备
9. ACPI 定义的设备和设备专用对象
- 9.1. 设备对象名称冲突
- 9.2. _SI 系统指示器
- 9.3. 环境光传感器设备
- 9.4. 电池设备
- 9.5. 控制方法盖板设备
- 9.6. 控制方法电源按钮和睡眠按钮设备
- 9.7. 嵌入式控制器设备
- 9.8. 通用容器设备
- 9.9. ATA 控制器设备
- 9.10. 软盘控制器设备对象
- 9.11. GPE 块设备
- 9.12. 模块设备
- 9.13. 内存设备
- 9.14. _UPC(USB 端口能力)
- 9.15. PC/AT RTC/CMOS 设备
- 9.16. 用户存在检测设备
- 9.17. I/O APIC 设备
- 9.18. 时间和报警设备
- 9.19. 通用按钮设备
- 9.20. NVDIMM 设备
10. 电源和电能计量设备
- 10.1. 智能电池子系统
- 10.2. 控制方法电池
- 10.2.1. 电池事件
- 10.2.2. 电池控制方法
- 10.2.2.1. _BCT(电池充电时间)
- 10.2.2.2. _BIF(电池信息)
- 10.2.2.3. _BIX(扩展电池信息)
- 10.2.2.4. _BMA(电池测量平均间隔)
- 10.2.2.5. _BMC(电池维护控制)
- 10.2.2.6. _BMD(电池维护数据)
- 10.2.2.7. _BMS(电池测量采样时间)
- 10.2.2.8. _BPC(电池功率特性)
- 10.2.2.9. _BPS(电池功率状态)
- 10.2.2.10. _BPT(电池功率阈值)
- 10.2.2.11. _BST(电池状态)
- 10.2.2.12. _BTH(电池节流限制)
- 10.2.2.13. _BTM(电池时间)
- 10.2.2.14. _BTP(电池触发点)
- 10.2.2.15. 控制方法电池的 _OSC 定义
- 10.3. AC 适配器和电源对象
- 10.4. 功率计
- 10.5. 无线电源控制器
- 10.6. 无线功率校准事件
- 10.7. 示例:电源和电表命名空间
11. 热管理
- 11.1. 热控制
- 11.2. 冷却偏好
- 11.3. 风扇设备
- 11.4. 热对象
- 11.5. 原生 OS 设备驱动程序热接口
- 11.6. Thermal Zone 接口要求
- 11.7. Thermal Zone 示例
12. ACPI 嵌入式控制器接口规范
- 12.1. 嵌入式控制器接口描述
- 12.2. 嵌入式控制器寄存器描述
- 12.3. 嵌入式控制器命令集
- 12.4. SMBus 主控制器通知头(可选),OS_SMB_EVT
- 12.5. 嵌入式控制器固件
- 12.6. 中断模型
- 12.7. 嵌入式控制器接口算法
- 12.8. 嵌入式控制器描述信息
- 12.9. 通过嵌入式控制器的 SMBus 主控制器接口
- 12.10. SMBus 设备
- 12.11. 在 ACPI 命名空间中定义嵌入式控制器设备
- 12.12. 在 ACPI 命名空间中定义 EC SMBus 主控制器
13. ACPI 系统管理总线接口规范
14. 平台通信通道(PCC)
- 14.1. 平台通信通道表
- 14.2. 通用通信通道共享内存区域
- 14.3. 扩展 PCC 子空间共享内存区域
- 14.4. 精简 PCC 子空间共享内存区域
- 14.5. 门铃协议
- 14.6. 平台通知
- 14.7. 引用 PCC 地址空间
15. 系统地址映射接口
- 15.1. INT 15H, E820H - 查询系统地址映射
- 15.2. E820 假设与限制
- 15.3. UEFI GetMemoryMap() 启动服务函数
- 15.4. UEFI 假设和限制
- 15.5. 示例地址映射
- 15.6. 示例:操作系统用法
16. 唤醒与睡眠
17. 非统一内存访问(NUMA)架构平台
18. ACPI 平台错误接口 (APEI)
- 18.1. 硬件错误和错误源
- 18.2. OSPM 与系统固件之间的关系
- 18.3. 错误源发现
- 18.4. 固件优先错误处理
- 18.5. 错误串行化
- 18.6. 错误注入
- 18.7. GHES_ASSIST 错误报告
19. ACPI 源语言(ASL)参考
- 19.1. ASL 2.0 符号运算符和表达式
- 19.2. ASL 语言语法
- 19.3. ASL 概念
- 19.4. ASL 运算符摘要
- 19.5. 按类型划分的 ASL 操作符摘要
- 19.6. ASL 运算符参考
- 19.6.1. AccessAs(更改字段单元访问)
- 19.6.2. Acquire(获取互斥量)
- 19.6.3. Add(整数加法)
- 19.6.4. Alias(声明名称别名)
- 19.6.5. And(整数按位与)
- 19.6.6. Argx(方法参数数据对象)
- 19.6.7. BankField(声明 Bank/Data 字段)
- 19.6.8. Break(从 While 中中断)
- 19.6.9. BreakPoint(执行断点)
- 19.6.10. Buffer(声明缓冲区对象)
- 19.6.11. Case(用于条件执行的情况表达式)
- 19.6.12. Concatenate(连接数据)
- 19.6.13. ConcatenateResTemplate(连接资源模板)
- 19.6.14. CondRefOf(有条件地创建对象引用)
- 19.6.15. Connection(声明字段连接属性)
- 19.6.16. Continue(继续最内层外围 While)
- 19.6.17. CopyObject(复制并存储对象)
- 19.6.18. CreateBitField(创建 1 位缓冲区字段)
- 19.6.19. CreateByteField(创建 8 位缓冲区字段)
- 19.6.20. CreateDWordField(创建 32 位缓冲区字段)
- 19.6.21. CreateField(创建任意长度缓冲区字段)
- 19.6.22. CreateQWordField(创建 64 位缓冲区字段)
- 19.6.23. CreateWordField(创建 16 位缓冲区字段)
- 19.6.24. CSI2Bus(CSI-2 串行总线连接资源描述符宏)
- 19.6.25. DataTableRegion(创建数据表操作区域)
- 19.6.26. Debug(调试器输出)
- 19.6.27. Decrement(整数递减)
- 19.6.28. Default(Switch 中的默认执行路径)
- 19.6.29. DefinitionBlock(声明定义块)
- 19.6.30. DerefOf(解引用对象引用)
- 19.6.31. Device(声明设备包)
- 19.6.32. Divide(整数除法)
- 19.6.33. DMA(DMA 资源描述符宏)
- 19.6.34. DWordIO(DWord I/O 资源描述符宏)
- 19.6.35. DWordMemory(DWord 内存资源描述符宏)
- 19.6.36. DWordSpace(DWord 空间资源描述符宏)
- 19.6.37. EISAID(EISA ID 字符串到整数转换宏)
- 19.6.38. Else(替代执行)
- 19.6.39. ElseIf(替代/条件执行)
- 19.6.40. EndDependentFn(结束依赖功能资源描述符宏)
- 19.6.41. Event(声明事件同步对象)
- 19.6.42. ExtendedIO(扩展 IO 资源描述符宏)
- 19.6.43. ExtendedMemory(扩展 Memory 资源描述符宏)
- 19.6.44. ExtendedSpace(扩展地址空间资源描述符宏)
- 19.6.45. External(声明外部对象)
- 19.6.46. Fatal(致命错误检查)
- 19.6.47. Field(声明字段对象)
- 19.6.48. 查找最左侧置位位
- 19.6.49. 查找最右侧置位位
- 19.6.50. FixedDMA(DMA 资源描述符宏)
- 19.6.51. FixedIO(固定 IO 资源描述符宏)
- 19.6.52. For(条件循环)
- 19.6.53. Fprintf(创建并存储格式化字符串)
- 19.6.54. FromBCD(将 BCD 转换为 Integer)
- 19.6.55. Function(声明控制方法)
- 19.6.56. GpioInt(GPIO 中断连接资源描述符宏)
- 19.6.57. GpioIo(GPIO 连接 IO 资源描述符宏)
- 19.6.58. I2CSerialBusV2(I2C 串行总线连接资源描述符(版本 2)宏)
- 19.6.59. If(条件执行)
- 19.6.60. Include(包含附加 ASL 文件)
- 19.6.61. Increment(整数递增)
- 19.6.62. Index(成员对象的索引引用)
- 19.6.63. IndexField(声明索引/数据字段)
- 19.6.64. Interrupt(中断资源描述符宏)
- 19.6.65. IO(IO 资源描述符宏)
- 19.6.66. IRQ(中断资源描述符宏)
- 19.6.67. IRQNoFlags(中断资源描述符宏)
- 19.6.68. LAnd(逻辑与)
- 19.6.69. LEqual(逻辑等于)
- 19.6.70. LGreater(逻辑大于)
- 19.6.71. LGreaterEqual(逻辑大于或等于)
- 19.6.72. LLess(逻辑小于)
- 19.6.73. LLessEqual(逻辑小于或等于)
- 19.6.74. LNot(逻辑非)
- 19.6.75. LNotEqual(逻辑不等于)
- 19.6.76. Load(加载定义块)
- 19.6.77. LoadTable(从 XSDT 加载定义块)
- 19.6.78. Localx(方法局部数据对象)
- 19.6.79. LOr(逻辑或)
- 19.6.80. Match(查找对象匹配)
- 19.6.81. Memory24(内存资源描述符宏)
- 19.6.82. Memory32(内存资源描述符宏)
- 19.6.83. Memory32Fixed(内存资源描述符宏)
- 19.6.84. Method(声明控制方法)
- 19.6.85. Mid(提取 Buffer 或 String 的一部分)
- 19.6.86. Mod(整数取模)
- 19.6.87. Multiply(整数乘法)
- 19.6.88. Mutex(声明同步/互斥对象)
- 19.6.89. Name(声明命名对象)
- 19.6.90. NAnd(整数按位 NAND)
- 19.6.91. NoOp Code(空操作)
- 19.6.92. NOr(整数按位 NOR)
- 19.6.93. Not(整数按位取反)
- 19.6.94. Notify(通知对象发生事件)
- 19.6.95. Offset(更改当前字段单元偏移)
- 19.6.96. ObjectType(获取对象类型)
- 19.6.97. One(常量值为一的整数)
- 19.6.98. Ones(全 1 常量整数)
- 19.6.99. OperationRegion(声明操作区域)
- 19.6.100. Or(整数按位或)
- 19.6.101. Package(声明 Package 对象)
- 19.6.102. PinConfig(引脚配置描述符宏)
- 19.6.103. PinFunction(引脚功能描述符宏)
- 19.6.104. PinGroup(引脚组描述符宏)
- 19.6.105. PinGroupConfig(引脚组配置描述符宏)
- 19.6.106. PinGroupFunction(引脚组功能配置描述符宏)
- 19.6.107. PowerResource(声明电源资源)
- 19.6.108. Printf(创建并存储格式化字符串)
- 19.6.109. QWordIO(QWord IO 资源描述符宏)
- 19.6.110. QWordMemory(QWord Memory 资源描述符宏)
- 19.6.111. QWordSpace(QWord 空间资源描述符宏)
- 19.6.112. RawDataBuffer(原始数据缓冲区)
- 19.6.113. RefOf(创建对象引用)
- 19.6.114. Register(通用寄存器资源描述符宏)
- 19.6.115. Release(释放 Mutex 同步对象)
- 19.6.116. Reset(重置 Event 同步对象)
- 19.6.117. ResourceTemplate(资源到缓冲区转换宏)
- 19.6.118. Return(从方法执行中返回)
- 19.6.119. Revision(常量修订整数)
- 19.6.120. Scope(打开命名作用域)
- 19.6.121. ShiftLeft(整数左移)
- 19.6.122. ShiftRight(整数右移)
- 19.6.123. Signal(发出同步 Event 信号)
- 19.6.124. SizeOf(获取数据对象大小)
- 19.6.125. Sleep(毫秒休眠)
- 19.6.126. SPISerialBusV2(SPI 串行总线连接资源描述符(版本 2)宏)
- 19.6.127. Stall(短时间停顿)
- 19.6.128. StartDependentFn(起始依赖函数资源描述符宏)
- 19.6.129. StartDependentFnNoPri(起始依赖函数资源描述符宏)
- 19.6.130. Store(存储对象)
- 19.6.131. Subtract(整数减法)
- 19.6.132. Switch(根据表达式选择要执行的代码)
- 19.6.133. ThermalZone(声明热区)
- 19.6.134. 定时器(获取 64 位定时器值)
- 19.6.135. ToBCD(将整数转换为 BCD)
- 19.6.136. ToBuffer(将数据转换为 Buffer)
- 19.6.137. ToDecimalString(将数据转换为十进制字符串)
- 19.6.138. ToHexString(将数据转换为十六进制字符串)
- 19.6.139. ToInteger(将数据转换为整数)
- 19.6.140. ToPLD(创建 _PLD Buffer 对象)
- 19.6.141. ToString(将 Buffer 转换为 String)
- 19.6.142. ToUUID(将字符串转换为 UUID 宏)
- 19.6.143. UARTSerialBusV2(UART 串行总线连接资源描述符版本 2 宏)
- 19.6.144. Unicode(字符串到 Unicode 转换宏)
- 19.6.145. VendorLong(长厂商资源描述符)
- 19.6.146. VendorShort(短厂商资源描述符)
- 19.6.147. Wait(等待同步事件)
- 19.6.148. While(条件循环)
- 19.6.149. WordBusNumber(Word 总线编号资源描述符宏)
- 19.6.150. WordIO(Word IO 资源描述符宏)
- 19.6.151. WordSpace(Word Space 资源描述符宏)
- 19.6.152. XOr(整数按位异或)
- 19.6.153. Zero(常量零整数)