pci_enable_device(pdev); pci_set_master(pdev); pci_find_capability(pdev, PCI_CAP_ID_MSI); pci_alloc_irq_vector()pdev,1,32,PCI_IRQ_MSI); //pci_enable_msi(); 读,写,abort 地址写配置空间偏移0x54的地址(64位,高32位一般为0) 还有就是 dma_set_mask(&(pdev->dev, DMA_BIT_MASK(64)); request_irq(pdev->irq + i , msi_handle_function, IRQF_SHARED, "edma_msi_irq", (void*) var); pci_alloc_consistent(pdev,mpara_dma_size,&dma_addr);//dma_addr 是物理地址 返回值是虚拟地址 文章来源: https://blog.csdn.net/weixin_38987932/article/details/98111607