16 #define ENA_BAR_SIZE 16384 19 #define ENA_ALIGN 4096 22 #define ENA_AQ_COUNT 2 25 #define ENA_ACQ_COUNT 2 28 #define ENA_TX_COUNT 16 31 #define ENA_RX_COUNT 16 34 #define ENA_BASE_LO 0x0 37 #define ENA_BASE_HI 0x4 40 #define ENA_CAPS( count, size ) ( ( (size) << 16 ) | ( (count) << 0 ) ) 43 #define ENA_AQ_BASE 0x10 46 #define ENA_AQ_CAPS 0x18 49 #define ENA_ACQ_BASE 0x20 52 #define ENA_ACQ_CAPS 0x28 55 #define ENA_AQ_DB 0x2c 58 #define ENA_ADMIN_MAX_WAIT_MS 5000 62 #define ENA_CTRL_RESET 0x00000001UL 65 #define ENA_RESET_MAX_WAIT_MS 1000 69 #define ENA_STAT_RESET 0x00000008UL 84 #define ENA_AQ_PHASE 0x01 103 #define ENA_ACQ_PHASE 0x01 106 #define ENA_DEVICE_ATTRIBUTES 1 145 #define ENA_CREATE_SQ 1 194 #define ENA_DESTROY_SQ 2 215 #define ENA_CREATE_CQ 3 250 #define ENA_DESTROY_CQ 4 269 #define ENA_GET_FEATURE 8 296 #define ENA_GET_STATS 11 317 #define ENA_STATS_TYPE_BASIC 0 320 #define ENA_STATS_SCOPE_ETH 1 323 #define ENA_DEVICE_MINE 0xffff 432 #define ENA_SQE_PHASE 0x01 435 #define ENA_SQE_FIRST 0x04 438 #define ENA_SQE_LAST 0x08 441 #define ENA_SQE_CPL 0x10 472 #define ENA_CQE_PHASE 0x01 uint8_t reserved_b[2]
Reserved.
Destroy completion queue response.
uint8_t reserved_a[12]
Reserved.
struct ena_aq aq
Admin queue.
uint16_t id
Completion queue identifier.
uint32_t intr
Interrupt unmask register offset.
struct ena_tx_sqe * tx
Transmit submission queue entries.
struct ena_qp rx
Receive queue.
struct ena_acq_header header
Header.
struct ena_aq_header header
Header.
uint8_t reserved[2]
Reserved.
uint8_t mac[ETH_ALEN]
MAC address.
#define ENA_RX_COUNT
Number of receive queue entries.
uint8_t reserved_a
Reserved.
Create completion queue request.
uint8_t mask
Actual number of entries minus one.
uint8_t reserved_a
Reserved.
uint8_t reserved_b[8]
Reserved.
size_t len
Total length of entries.
unsigned int doorbell
Doorbell register offset.
uint8_t count
Number of entries.
struct ena_aq_header header
Header.
unsigned int prod
Producer counter.
uint16_t id
Completion queue identifier.
struct ena_tx_cqe * tx
Transmit completion queue entries.
Create submission queue response.
uint32_t doorbell
Doorbell register offset.
uint8_t reserved_a[3]
Reserved.
struct ena_get_stats_rsp get_stats
Get statistics.
Transmit submission queue entry.
struct ena_qp tx
Transmit queue.
uint8_t reserved[2]
Reserved.
uint16_t count
Number of entries.
union ena_sq::@39 sqe
Entries.
Transmit completion queue entry.
unsigned long long uint64_t
uint8_t id
Request identifier.
union ena_cq::@40 cqe
Entries.
uint32_t features
Supported features.
uint16_t count
Number of entries.
uint8_t direction
Direction.
struct ena_acq_header header
Header.
uint64_t rx_drops
Receive drop count.
uint8_t size
Entry size (in 32-bit words)
Destroy completion queue request.
uint32_t llq_desc
LLQ descriptor ring offset.
uint8_t reserved_a[4]
Reserved.
uint32_t doorbell
Doorbell register offset.
struct ena_aq_header header
Header.
struct ena_aq_header header
Header.
uint64_t address
Base address.
unsigned int doorbell
Doorbell register offset.
uint32_t llq_data
LLQ header offset.
struct ena_destroy_sq_rsp destroy_sq
Destroy submission queue.
uint8_t reserved[2]
Reserved.
size_t len
Total length of entries.
struct ena_get_feature_rsp get_feature
Get feature.
uint16_t id
Request identifier.
struct ena_acq_header header
Header.
uint64_t writeback
Writeback address.
uint8_t reserved
Reserved.
uint64_t tx_packets
Transmit packet count.
uint16_t id
Request identifier.
uint8_t id
Feature identifier.
uint16_t cons
Consumer index.
uint8_t reserved_b[2]
Reserved.
union ena_aq_req * req
Requests.
uint64_t address
Base address.
uint16_t cq_id
Completion queue identifier.
ena_sq_policy
Submission queue policy.
unsigned int cons
Consumer counter.
unsigned int cons
Consumer counter.
uint8_t size
Entry size (in 32-bit words)
FILE_LICENCE(GPL2_OR_LATER_OR_UBDL)
struct ena_get_stats_req get_stats
Get statistics.
uint16_t count
Actual number of entries.
struct ena_create_cq_req create_cq
Create completion queue.
struct ena_destroy_cq_req destroy_cq
Destroy completion queue.
Create completion queue response.
uint8_t direction
Direction.
Create submission queue request.
struct ena_rx_cqe * rx
Receive completion queue entries.
struct ena_cq cq
Completion queue.
uint32_t vector
MSI-X vector.
struct ena_aq_header header
Header.
Destroy submission queue response.
struct ena_acq_header header
Header.
struct ena_acq_header header
Header.
uint16_t id
Completion queue identifier.
uint8_t reserved_b[2]
Reserved.
uint8_t actual
Actual number of entries.
Destroy submission queue request.
struct ena_create_cq_rsp create_cq
Create completion queue.
ena_sq_direction
Submission queue direction.
uint32_t node
NUMA node register offset.
uint8_t requested
Requested number of entries.
struct ena_acq acq
Admin completion queue.
struct ena_create_sq_rsp create_sq
Create submission queue.
uint8_t reserved_b[3]
Reserved.
uint16_t id
Submission queue identifier.
struct io_buffer * rx_iobuf[ENA_RX_COUNT]
Receive I/O buffers.
uint8_t reserved_a
Reserved.
uint8_t reserved_b[8]
Reserved.
uint8_t intr
Interrupts enabled.
struct ena_acq_header header
Header.
struct ena_get_feature_req get_feature
Get feature.
struct ena_sq sq
Submission queue.
uint64_t rx_bytes
Receive byte count.
uint32_t version
Device version.
uint16_t id
Request identifier.
Receive submission queue entry.
Receive completion queue entry.
uint8_t direction
Direction.
Admin completion queue response.
uint16_t count
Number of entries.
uint32_t physical
Physical address width.
union ena_acq_rsp * rsp
Responses.
uint64_t tx_bytes
Transmit byte count.
uint16_t id
Submission queue identifier.
struct ena_acq_header header
Header.
uint8_t size
Entry size (in 32-bit words)
uint16_t id
Submission queue identifier.
struct ena_destroy_sq_req destroy_sq
Destroy submission queue.
struct ena_rx_sqe * rx
Receive submission queue entries.
uint8_t reserved[2]
Reserved.
struct ena_aq_header header
Header.
struct ena_aq_header header
Header.
unsigned int prod
Producer counter.
uint64_t rx_packets
Receive packet count.
union ena_feature __attribute__
struct ena_destroy_cq_rsp destroy_cq
Destroy completion queue.
uint8_t direction
Direction.
struct ena_create_sq_req create_sq
Create submission queue.
uint16_t device
Device ID.
uint32_t implementation
Implementation.