Skip to content

Commit d88cbd3

Browse files
author
Ian Seyler
committed
updates
1 parent 68aff11 commit d88cbd3

File tree

1 file changed

+68
-1
lines changed

1 file changed

+68
-1
lines changed

src/drivers/net/ena.asm

Lines changed: 68 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,26 @@ net_ena_reset:
9898

9999
; Stop queues if they are running
100100

101+
; Reset interface
102+
mov eax, 1
103+
mov [rsi+ENA_DEV_CTL], eax
104+
105+
; Wait for reset
106+
net_ena_reset_wait:
107+
mov eax, [rsi+ENA_DEV_STS]
108+
bt eax, 3
109+
jc net_ena_reset_wait
110+
111+
; Clear reset
112+
xor eax, eax
113+
mov [rsi+ENA_DEV_CTL], eax
114+
115+
; Wait for reset clear
116+
net_ena_reset_wait_clear:
117+
mov eax, [rsi+ENA_DEV_STS]
118+
bt eax, 3
119+
jnc net_ena_reset_wait_clear
120+
101121
; Check ENA_DEV_STS.READY
102122
mov eax, [rsi+ENA_DEV_STS]
103123
test eax, 1
@@ -132,7 +152,7 @@ net_ena_reset:
132152
; Check ENA_DEV_STS.READY
133153

134154
; Build an Admin command
135-
; opcode ENA_ADMIN_GET_FEATURE = 0x0009
155+
; opcode ENA_ADMIN_GET_FEATURE = 0x0008
136156
; feat_id ENA_ADMIN_DEVICE_ATTRIBUTES = 1
137157
; Put it in the queue
138158
; Wait for completion
@@ -247,6 +267,53 @@ ENA_MMIO_RESP_LO equ 0x60
247267
ENA_MMIO_RESP_HI equ 0x64
248268
ENA_RSS_IND_ENTRY_UPDATE equ 0x68
249269

270+
; Admin Queue Opcodes
271+
ENA_ADMIN_CREATE_SQ equ 1
272+
ENA_ADMIN_DESTROY_SQ equ 2
273+
ENA_ADMIN_CREATE_CQ equ 3
274+
ENA_ADMIN_DESTROY_CQ equ 4
275+
ENA_ADMIN_GET_FEATURE equ 8
276+
ENA_ADMIN_SET_FEATURE equ 9
277+
ENA_ADMIN_GET_STATS equ 11
278+
279+
; Admin Queue Status
280+
ENA_ADMIN_SUCCESS equ 0
281+
ENA_ADMIN_RESOURCE_ALLOCATION_FAILURE equ 1
282+
ENA_ADMIN_BAD_OPCODE equ 2
283+
ENA_ADMIN_UNSUPPORTED_OPCODE equ 3
284+
ENA_ADMIN_MALFORMED_REQUEST equ 4
285+
ENA_ADMIN_ILLEGAL_PARAMETER equ 5
286+
ENA_ADMIN_UNKNOWN_ERROR equ 6
287+
ENA_ADMIN_RESOURCE_BUSY equ 7
288+
289+
; Admin Queue Feature ID
290+
ENA_ADMIN_DEVICE_ATTRIBUTES equ 1
291+
ENA_ADMIN_MAX_QUEUES_NUM equ 2
292+
ENA_ADMIN_HW_HINTS equ 3
293+
ENA_ADMIN_LLQ equ 4
294+
ENA_ADMIN_MAX_QUEUES_EXT equ 7
295+
ENA_ADMIN_RSS_HASH_FUNCTION equ 10
296+
ENA_ADMIN_STATELESS_OFFLOAD_CONFIG equ 11
297+
ENA_ADMIN_RSS_INDIRECTION_TABLE_CONFIG equ 12
298+
ENA_ADMIN_MTU equ 14
299+
ENA_ADMIN_RSS_HASH_INPUT equ 18
300+
ENA_ADMIN_INTERRUPT_MODERATION equ 20
301+
ENA_ADMIN_AENQ_CONFIG equ 26
302+
ENA_ADMIN_LINK_CONFIG equ 27
303+
ENA_ADMIN_HOST_ATTR_CONFIG equ 28
304+
ENA_ADMIN_FEATURES_OPCODE_NUM equ 32
305+
306+
; Speeds
307+
ENA_ADMIN_LINK_SPEED_1G equ 0x1
308+
ENA_ADMIN_LINK_SPEED_2_HALF_G equ 0x2
309+
ENA_ADMIN_LINK_SPEED_5G equ 0x4
310+
ENA_ADMIN_LINK_SPEED_10G equ 0x8
311+
ENA_ADMIN_LINK_SPEED_25G equ 0x10
312+
ENA_ADMIN_LINK_SPEED_40G equ 0x20
313+
ENA_ADMIN_LINK_SPEED_50G equ 0x40
314+
ENA_ADMIN_LINK_SPEED_100G equ 0x80
315+
ENA_ADMIN_LINK_SPEED_200G equ 0x100
316+
ENA_ADMIN_LINK_SPEED_400G equ 0x200
250317

251318
; Register bits
252319

0 commit comments

Comments
 (0)