6.2.7. _GSB(全局系统中断基址)
_GSB 是一个可选对象,求值为一个整数,对应于相应 I/O APIC 设备的全局系统中断基址。I/O APIC 设备可以是总线枚举的(例如,作为 PCI 设备),也可以如 I/O APIC 设备 中所述在命名空间中枚举。任何支持热插拔或未在 MADT 中描述的 I/O APIC 设备都必须包含 _GSB 对象。
如果 I/O APIC 设备还包含 _MAT 对象,则 OSPM 会在求值 _MAT 对象之前先求值 _GSB 对象。通过提供 I/O APIC 的全局系统中断基址,该对象使 OSPM 能够仅处理与该 I/O APIC 设备对应的 _MAT 条目。参见 _MAT(多 APIC 表项)。由于 _MAT 可能被允许返回整个平台的所有 MADT 条目,因此在 I/O APIC 设备作用域中需要 _GSB,以便 OSPM 识别与该设备对应的条目。
如果某个 I/O APIC 设备由设备专用驱动程序激活,则用于访问 I/O APIC 的物理地址将由该驱动程序公开,而无法从 _MAT 对象中确定。在这种情况下,OSPM 无法使用 _MAT 对象来确定与该 I/O APIC 设备对应的全局系统中断基址,因此需要 _GSB 对象。
全局系统中断基址是一个 64 位值,表示 全局系统中断 中定义的相应 I/OAPIC 设备。
参数:
无 返回值: 一个包含中断基址的 Integer
非基于 PCI 的 I/O APIC 设备的 _GSB 用法 ASL 示例:
Scope(\_SB) {
...
Device(APIC) { // I/O APIC Device
Name(_HID, "ACPI0009") // ACPI ID for I/O APIC
Name(_CRS, ResourceTemplate()
{ ...}) // only one resource pointing to I/O APIC register base
Method(_GSB){
Return (0x10) // Global System Interrupt Base for I/O APIC starts at 16
}
} // end APIC
} // end scope SB
基于 PCI 的 I/O APIC 设备的 _GSB 用法 ASL 示例:
Scope(\_SB) {
Device(PCI0) // Host bridge
Name(_HID, EISAID("PNP0A03")) // Need \_HID for root device
Device(PCI1) { // I/O APIC PCI Device
Name(_ADR,0x00070000)
Method(_GSB){
Return (0x18) // Global System Interrupt Base for I/O APIC starts at 24
}
} // end PCI1
} // end PCI0
} // end scope SB