MPIC中断控制器¶
支持的设备类型
KVM_DEV_TYPE_FSL_MPIC_20 飞思卡尔 MPIC v2.0
KVM_DEV_TYPE_FSL_MPIC_42 飞思卡尔 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字节对齐。
MSI可以通过使用此属性组写入相关MSIIR来发出信号。
- 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中断的访问。