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.3. PCI 设备 BAR 目标协议

本节介绍如何从ASL访问PCI设备的控制寄存器。每个PCI设备都有一个与其关联的地址空间,称为“配置空间”。在偏移量 0x10 到偏移量 0x27 处,有多达六个基址寄存器 (BAR)。这些 BAR 包含PCI设备的一系列控制寄存器(在 I/O 或内存空间中)的基地址。由于即插即用OS可能随时更改这些 BAR 的值,ASL无法使用 I/O 或内存操作区域确定性地读取和写入这些 BAR。此外,即插即用OS会自动将与这些 BAR 关联的 I/O 和内存区域的所有权分配给与PCI设备关联的设备驱动程序。 ACPI、OS(也必须是即插即用操作系统)不允许ASL读取和写入本机设备驱动程序拥有的区域。

如果平台使用PCI、BAR目标操作区域,ACPI、OS将不会加载关联PCI功能的本机设备驱动程序。例如,如果PCI函数中的任何 BAR 与PCI、BAR目标操作区域关联,则OS将假定PCI函数完全受ACPI系统固件控制。不会加载任何驱动程序。因此,PCI功能可用作ACPI系统固件执行的某些任务(热插拔PCI等)的平台控制器。

5.5.2.4.3.1. 声明PCI BAR 目标操作区域

PCIBAR 包含PCI设备控制寄存器所在的 I/O 或内存区域的基地址。每个BAR都实现了一个协议,用于确定这些控制寄存器是否位于 I/O 或内存空间内以及PCI设备解码的地址空间大小。 (更多详情请参见PCI规格。)

PCI BAR 通过提供 BAR 在 PCI 器件的 PCI 配置空间内的偏移量来声明目标操作区域。 BAR 确定对设备的实际访问是通过 I/O 还是内存周期发生,而不是通过操作区域的声明发生。该区域的长度也被类似地暗示。

在术语OperationRegion(PBAR, PciBarTarget, 0x10, 0x4) 中,偏移量是BAR 在设备配置空间内的偏移量。这是使用设备中第一个BAR的操作区域的示例。

5.5.2.4.3.2. PCI 标头类型和 PCI BAR 目标操作区域

PCI BAR 目标操作区域只能在 PCI 标头类型为 0 的 PCI 设备范围内声明。 PCI 具有其他标头类型的设备是桥。 PCI桥梁的控制超出了ASL的范围。

Prev
5.5.2.4.2. CMOS 协议
Next
5.5.2.4.4. 声明IPMI运营区域