繁体   English   中英

QEMU MSI仿真

[英]QEMU msi emulation

我正在仿真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中断的步骤?

解决方案是在内核模块中启用DMA。

pci_set_dma_mask(pdev, DMA_BIT_MASK(32))
pci_set_master(pdev)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM