MPIC 中断控制器

支持的设备类型

  • KVM_DEV_TYPE_FSL_MPIC_20 Freescale MPIC v2.0

  • KVM_DEV_TYPE_FSL_MPIC_42 Freescale MPIC v4.2

只能实例化一个 MPIC 实例(任何类型)。创建的 MPIC 将充当系统中断控制器,连接到每个 vcpu 的中断输入。

KVM_DEV_MPIC_GRP_MISC

属性

KVM_DEV_MPIC_BASE_ADDR (读写,64 位)

256 KiB MPIC 寄存器空间的基地址。必须自然对齐。值为零禁用映射。复位值为零。

KVM_DEV_MPIC_GRP_REGISTER (读写,32 位)

访问 MPIC 寄存器,如同从访客进行访问。“attr”是 MPIC 寄存器空间中的字节偏移量。访问必须是 4 字节对齐的。

可以通过使用此属性组写入相关的 MSIIR 来发出 MSI 信号。

KVM_DEV_MPIC_GRP_IRQ_ACTIVE (读写,32 位)

每个标准 openpic 源的 IRQ 输入线。0 表示非活动,1 表示活动,与中断感应无关。

对于边沿触发中断:写入 1 被认为是激活边沿,写入 0 被忽略。如果先前发出的边沿尚未确认,则读取返回 1,否则返回 0。

“attr”是 IRQ 号。标准源的 IRQ 号是相关 IVPR 从 EIVPR0 的字节偏移量,除以 32。

IRQ 路由

MPIC 模拟支持 IRQ 路由。只能实例化单个 MPIC 设备。创建该设备后,它将作为 irqchip id 0 可用。

此 irqchip 0 有 256 个中断引脚,这些引脚公开了中断源主数组(又名“SRC”中断)中的中断。

编号与 MPIC 设备树绑定相同 — 基于源数组起始位置的寄存器偏移量,不考虑芯片文档中的任何细分,例如“内部”或“外部”中断。

无法通过 IRQ 路由机制访问非 SRC 中断。