gpt4 book ai didi

linux - QEMU msi 仿真

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:26:15 26 4
gpt4 key购买 nike

我正在研究一个模拟 QEMU 设备来模拟 FPGA PCIe 接口(interface)。我使用 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)

关于linux - QEMU msi 仿真,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34582755/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com