mirror of
https://github.com/ipxe/ipxe
synced 2026-01-27 01:53:22 +03:00
[gve] Use raw DMA addresses in descriptors in DQO-QPL mode
The DQO-QPL operating mode uses registered queue page lists but still requires the raw DMA address (rather than the linear offset within the QPL) to be provided in transmit and receive descriptors. Set the queue page list base device address appropriately. Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
@@ -938,7 +938,7 @@ static int gve_alloc_qpl ( struct gve_nic *gve, struct gve_qpl *qpl,
|
||||
qpl->data = dma_umalloc ( gve->dma, &qpl->map, len, GVE_ALIGN );
|
||||
if ( ! qpl->data )
|
||||
return -ENOMEM;
|
||||
qpl->base = ( ( gve->mode & GVE_MODE_QPL ) ?
|
||||
qpl->base = ( ( gve->mode == GVE_MODE_QPL ) ?
|
||||
0 : dma ( &qpl->map, qpl->data ) );
|
||||
|
||||
DBGC ( gve, "GVE %p QPL %#08x at [%08lx,%08lx)\n",
|
||||
|
||||
@@ -530,9 +530,10 @@ struct gve_qpl {
|
||||
unsigned int id;
|
||||
/** Queue page list base device address
|
||||
*
|
||||
* This will be zero if queue page list addressing is in use,
|
||||
* or the DMA address of the first page if raw DMA addressing
|
||||
* is in use.
|
||||
* This will be zero in the GQI-QPL operating mode, or the DMA
|
||||
* address of the first page in any other operating mode.
|
||||
* (Despite its name, DQO-QPL still requires the use of raw
|
||||
* DMA addresses in transmit and receive descriptors.)
|
||||
*/
|
||||
physaddr_t base;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user