Я работаю над эмулированным устройством QEMU для имитации интерфейса FPGA PCIe. Я использую устройство lev-pci в качестве базового шаблона:
https://github.com/levex/kernel-qemu-pci/blob/master/qemu/hw/char/lev-pci.c
Мое устройство использует прерывания MSI для связи. Модуль драйвера ядра может разрешать прерывания MSI и принимать их. Я изменил lev-pci.c, чтобы добавить
msi_init(dev, 0x70, 1, false, false);
до инициализации, а затем
msi_notify(pci_dev,0);
функции "pci_levdev_read" в качестве основного теста. Я могу отследить, что прерывание msi генерируется в отладчике, но я не получаю прерывание на хосте. Я пропустил шаг для включения прерываний MSI?