The queue base address is meaningless for a low latency queue, since
the queue entries are written directly to the on-device memory. Any
non-zero queue base address will be safely ignored by the hardware,
but leaves open the possibility that future revisions could treat it
as an error.
Leave this field as zero, to match the behaviour of the Linux driver.
Signed-off-by: Michael Brown <mcb30@ipxe.org>
req->create_sq.policy = cpu_to_le16 ( sq->policy );
req->create_sq.cq_id = cpu_to_le16 ( cq->id );
req->create_sq.count = cpu_to_le16 ( sq->count );
- req->create_sq.address = cpu_to_le64 ( virt_to_bus ( sq->sqe.raw ) );
+ if ( ! ( sq->policy & ENA_SQ_DEVICE_MEMORY ) ) {
+ req->create_sq.address =
+ cpu_to_le64 ( virt_to_bus ( sq->sqe.raw ) );
+ }
/* Issue request */
if ( ( rc = ena_admin ( ena, req, &rsp ) ) != 0 ) {