WIP: feat: add NVMe driver #91
@ -131,7 +131,6 @@ proc set_features stdcall, pci:dword, prp1:dword, fid:byte, cdw11:dword
|
||||
mov eax, [prp1]
|
||||
mov dword [esp + SQ_ENTRY.prp1], eax
|
||||
movzx eax, [fid]
|
||||
;or eax, 1 shl 31 ; CDW10.SV
|
||||
mov dword [esp + SQ_ENTRY.cdw10], eax
|
||||
|
||||
mov eax, [cdw11]
|
||||
mov dword [esp + SQ_ENTRY.cdw11], eax
|
||||
|
@ -8,7 +8,7 @@
|
||||
;; ;;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
format PE DLL native
|
||||
format PE DLL native 0.05
|
||||
Doczom
commented
format PE DLL native 0.05 adding this value reduces the number of false positives of antiviruses format PE DLL native 0.05
adding this value reduces the number of false positives of antiviruses
|
||||
entry START
|
||||
|
||||
API_VERSION = 0 ;debug
|
||||
@ -463,7 +463,6 @@ proc nvme_readwrite stdcall, ns:dword, buf:dword, start_sector:qword, numsectors
|
||||
|
||||
mov eax, [numsectors_ptr]
|
||||
mov eax, dword [eax]
|
||||
DEBUGF DBG_INFO, "buf: %x, start_sector: %u:%u, numsectors: %u\n", [buf], [start_sector + 4], [start_sector], eax
|
||||
mov dword [ebx + 4], 0 ; PRP2 entry (0 by default)
|
||||
mov dword [ebx + 8], edx ; command type (read or write)
|
||||
mov dword [ebx + 12], eax ; save original numsectors value
|
||||
@ -479,7 +478,6 @@ proc nvme_readwrite stdcall, ns:dword, buf:dword, start_sector:qword, numsectors
|
||||
test eax, eax
|
||||
jz .fail
|
||||
|
||||
DEBUGF DBG_INFO, "PRP1: %x, PRP2: %x\n", [ebx], [ebx + 4]
|
||||
mov eax, dword [start_sector]
|
||||
|
||||
; According to the NVMe specification, the NLB field in the I/O read and write
|
||||
@ -1136,7 +1134,6 @@ proc cqyhdbl_write stdcall, pci:dword, y:dword, cqh:dword
|
||||
mov edi, dword [esi + pcidev.queue_entries]
|
||||
lea edi, dword [edi + ecx]
|
||||
mov eax, [cqh]
|
||||
DEBUGF DBG_INFO, "nvme%u: Writing to CQ%u doorbell register 0x%x: %u\n", [esi + pcidev.num], [y], dx, ax
|
||||
mov esi, dword [esi + pcidev.io_addr]
|
||||
mov word [esi + edx], ax ; Write to CQyHDBL
|
||||
mov word [edi + NVM_QUEUE_ENTRY.head], ax
|
||||
@ -1194,7 +1191,6 @@ proc sqytdbl_write stdcall, pci:dword, y:word, cmd:dword
|
||||
shl edx, cl
|
||||
imul edx, ebx
|
||||
add edx, 0x1000
|
||||
DEBUGF DBG_INFO, "nvme%u: Writing to SQ%u doorbell register 0x%x: %u\n", [esi + pcidev.num], [y], dx, ax
|
||||
mov word [edi + NVM_QUEUE_ENTRY.tail], ax
|
||||
mov esi, dword [esi + pcidev.io_addr]
|
||||
mov word [esi + edx], ax
|
||||
|
@ -372,7 +372,7 @@ struct IDENTC
|
||||
vid dw ?
|
||||
ssvid dw ?
|
||||
sn dt ?, ?
|
||||
mn dt ?, ?, ?, ?
|
||||
mn rt 4
|
||||
fr dq ?
|
||||
rab db ?
|
||||
ieee db ?, ?, ?
|
||||
@ -445,41 +445,41 @@ struct IDENTC
|
||||
sgls dd ?
|
||||
mnan dd ?
|
||||
rb 224
|
||||
subnqn dq ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?
|
||||
subnqn rq 32
|
||||
Sweetbread
commented
-> -> `rq 32`?
|
||||
rb 768
|
||||
rb 256
|
||||
psd0 dq ?, ?, ?, ?
|
||||
psd1 dq ?, ?, ?, ?
|
||||
psd2 dq ?, ?, ?, ?
|
||||
psd3 dq ?, ?, ?, ?
|
||||
psd4 dq ?, ?, ?, ?
|
||||
psd5 dq ?, ?, ?, ?
|
||||
psd6 dq ?, ?, ?, ?
|
||||
psd7 dq ?, ?, ?, ?
|
||||
psd8 dq ?, ?, ?, ?
|
||||
psd9 dq ?, ?, ?, ?
|
||||
psd10 dq ?, ?, ?, ?
|
||||
psd11 dq ?, ?, ?, ?
|
||||
psd12 dq ?, ?, ?, ?
|
||||
psd13 dq ?, ?, ?, ?
|
||||
psd14 dq ?, ?, ?, ?
|
||||
psd15 dq ?, ?, ?, ?
|
||||
psd16 dq ?, ?, ?, ?
|
||||
psd17 dq ?, ?, ?, ?
|
||||
psd18 dq ?, ?, ?, ?
|
||||
psd19 dq ?, ?, ?, ?
|
||||
psd20 dq ?, ?, ?, ?
|
||||
psd21 dq ?, ?, ?, ?
|
||||
psd22 dq ?, ?, ?, ?
|
||||
psd23 dq ?, ?, ?, ?
|
||||
psd24 dq ?, ?, ?, ?
|
||||
psd25 dq ?, ?, ?, ?
|
||||
psd26 dq ?, ?, ?, ?
|
||||
psd27 dq ?, ?, ?, ?
|
||||
psd28 dq ?, ?, ?, ?
|
||||
psd29 dq ?, ?, ?, ?
|
||||
psd30 dq ?, ?, ?, ?
|
||||
psd31 dq ?, ?, ?, ?
|
||||
psd0 rq 4
|
||||
psd1 rq 4
|
||||
psd2 rq 4
|
||||
psd3 rq 4
|
||||
psd4 rq 4
|
||||
psd5 rq 4
|
||||
psd6 rq 4
|
||||
psd7 rq 4
|
||||
psd8 rq 4
|
||||
psd9 rq 4
|
||||
psd10 rq 4
|
||||
psd11 rq 4
|
||||
psd12 rq 4
|
||||
psd13 rq 4
|
||||
psd14 rq 4
|
||||
psd15 rq 4
|
||||
psd16 rq 4
|
||||
psd17 rq 4
|
||||
psd18 rq 4
|
||||
psd19 rq 4
|
||||
psd20 rq 4
|
||||
psd21 rq 4
|
||||
psd22 rq 4
|
||||
psd23 rq 4
|
||||
psd24 rq 4
|
||||
psd25 rq 4
|
||||
psd26 rq 4
|
||||
psd27 rq 4
|
||||
psd28 rq 4
|
||||
psd29 rq 4
|
||||
psd30 rq 4
|
||||
psd31 rq 4
|
||||
rb 1024
|
||||
ends
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user
Delete if unnecessary