mirror of
https://github.com/ipxe/ipxe
synced 2026-06-29 00:07:28 +03:00
[aqc1xx] Set netdev->dma for operation with an IOMMU
On AQC113 adapters with an IOMMU (e.g. Intel VT-d) enabled, no packets are received and DHCP fails: the driver never set netdev->dma, leaving the transmit buffers unmapped for DMA. This worked without an IOMMU because the physical address equals the device address, but with an IOMMU the unmapped DMA access faults and stalls the receive path. Set netdev->dma and a 64-bit DMA mask so that transmit buffers are mapped through the firmware IOMMU, as done by the other iPXE drivers. Signed-off-by: Animesh Bhatt <animeshb@marvell.com>
This commit is contained in:
committed by
Michael Brown
parent
0daeb3e645
commit
56347b2612
@@ -528,8 +528,10 @@ static int atl_probe ( struct pci_device *pci ) {
|
|||||||
goto err_ioremap;
|
goto err_ioremap;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Configure DMA */
|
/* Configure DMA */
|
||||||
nic->dma = &pci->dma;
|
nic->dma = &pci->dma;
|
||||||
|
dma_set_mask_64bit ( nic->dma );
|
||||||
|
netdev->dma = nic->dma;
|
||||||
|
|
||||||
/* Reset the NIC */
|
/* Reset the NIC */
|
||||||
if ( ( rc = nic->hw_ops->reset ( nic ) ) != 0 )
|
if ( ( rc = nic->hw_ops->reset ( nic ) ) != 0 )
|
||||||
|
|||||||
Reference in New Issue
Block a user