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
  • 第 5 章

    • 总览
    • 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.5.1. ASL 报表
      • 5.5.2. 控制方法执行
        • 5.5.2.1. 论点
        • 5.5.2.2. 方法调用约定
        • 5.5.2.3. 局部变量和本地创建的数据对象
        • 5.5.2.4. 进入运营区域
          • 5.5.2.4.1. 运营地区
          • 5.5.2.4.2. CMOS 协议
          • 5.5.2.4.3. PCI 设备 BAR 目标协议
          • 5.5.2.4.4. 声明IPMI运营区域
          • 5.5.2.4.5. 声明 GeneralPurposeIO 操作区域
          • 5.5.2.4.6. 声明 GenericSerialBus 操作区域
            • 5.5.2.4.6.1. 声明 GenericSerialBus 字段
            • 5.5.2.4.6.2. 声明和使用 GenericSerialBus 数据缓冲区
            • 5.5.2.4.6.3. 使用通用串行总线协议
          • 5.5.2.4.7. 声明PCC运营区域
    • 5.6. ACPI 事件编程模型
      • 5.6.1. ACPI 事件编程模型组件
      • 5.6.2. ACPI 事件类型
      • 5.6.3. 固定事件处理
      • 5.6.4. 通用事件处理
      • 5.6.5. GPIO 信号 ACPI 事件
      • 5.6.6. 设备对象通知
      • 5.6.7. 设备类特定对象
      • 5.6.8. 对象、方法和资源的预定义ACPI名称
      • 5.6.9. 中断信号ACPI事件
      • 5.6.10. 使用设备 _PRW 对象管理唤醒事件
    • 5.7. 预定义对象
    • 5.8. 系统配置对象

5.5.2.4.6. 声明 GenericSerialBus 操作区域

对于 GenericSerialBus 操作区域,OperationRegion 术语的语法(来自 OperationRegion(声明操作区域))如下所述:

OperationRegion (
  RegionName,     // NameString
  RegionSpace,    // RegionSpaceKeyword
  Offset,         // TermArg=>Integer
  Length          // TermArg=>Integer
)

其中:

  • RegionName 指定该区域的名称(例如TOP1)。

  • RegionSpace必须设置为GenericSerialBus(操作区域类型值0x09)。

  • Offset 指定目标设备的初始命令值偏移。例如,值 0x00 表示命令值偏移量为零 (0)。原始协议忽略该值。

  • 长度设置为0x100(256),表示可能的命令值的最大数量。

  • 操作区域必须在串行总线控制器设备的范围内声明。

以下ASL代码显示了“OperationRegion”、“Field”和“Offset”术语应用于SPB空间时的用法。

Scope(\_SB.I2C)
{
    Name (SDB0, ResourceTemplate()
    {
        I2CSerialBusV2(0x4a,,100000,,"
            \\_SB.I2C",,,,,RawDataBuffer(){1,2,3,4,5,6})
    })

操作区域(TOP1,GenericSerialBus,0x00,0x100) // GenericSerialBus device at command offset 0x00 Field(TOP1, BufferAcc, NoLock, Preserve) { Connection(SDB0), // Use the Resource Descriptor defined above AccessAs(BufferAcc, AttribWord), // Use the GenericSerialBus Read/Write Word protocol FLD0, 8, // Virtual register at command value 0. FLD1, 8 // Virtual register at command value 1. }

    Field(TOP1, BufferAcc, NoLock, Preserve)
    {
        Connection(I2CSerialBusV2(0x5a,,100000,,"
            \\_SB.I2C",,,,,RawDataBuffer(){1,6})),
        AccessAs(BufferAcc, AttribBytes (16)),
        FLD2, 8   // Virtual register at command value 0.
    }

    // Create the GenericSerialBus data buffer

    Name(BUFF, Buffer(34){})  // Create GenericSerialBus data buffer as BUFF

    CreateByteField(BUFF, 0x00, STAT)  // STAT = Status (Byte)
    CreateWordField(BUFF, 0x02, DATA)  // DATA = Data (Word)
}

本例中的操作区域是在目标控制器设备I2C的范围内定义的。

GenericSerialBus 区域只能通过字段术语访问(请参阅声明字段对象)。 GenericSerialBus 协议在字段定义中使用 AccessAs 术语(参见“ASL 宏”)分配给字段元素。

表 5.151 访问器类型值 访问器类型价值描述
快速属性0x020x02读/写快速协议
属性发送接收0x040x04发送/接收字节协议
属性字节0x060x06读/写字节协议
属性词0x080x08读/写字协议
属性块0x0A0x0A读/写块协议
属性字节0x0B0x0B读/写 N 字节协议
属性进程调用0x0C0x0C进程调用协议
AttribBlockProcessCall属性块进程调用0x0D0x0D写块-读块进程调用协议
AttribRawBytes属性0x0E原始读/写 N 字节协议
AttribRawProcessBytesAttribRawProcessBytes0x0F

小节

  • 5.5.2.4.6.1. 声明 GenericSerialBus 字段
  • 5.5.2.4.6.2. 声明和使用 GenericSerialBus 数据缓冲区
  • 5.5.2.4.6.3. 使用通用串行总线协议
Prev
5.5.2.4.5. 声明 GeneralPurposeIO 操作区域
Next
5.5.2.4.7. 声明PCC运营区域