mirror of
https://git.missingno.dev/kolibrios-nvme-driver/
synced 2025-02-07 12:46:51 +01:00
fix nvme_identify and irq_handler
This commit is contained in:
parent
dd3ebb1716
commit
34bfcf8719
@ -155,7 +155,7 @@ proc nvme_identify stdcall, pci:dword, nsid:dword, dptr:dword, cid:word, cns:byt
|
|||||||
mov dword [esi + SQ_ENTRY.dptr], eax
|
mov dword [esi + SQ_ENTRY.dptr], eax
|
||||||
movzx eax, [cid]
|
movzx eax, [cid]
|
||||||
shl eax, 16
|
shl eax, 16
|
||||||
or dword [esi + SQ_ENTRY.cdw0], ADM_CMD_IDENTIFY
|
mov dword [esi + SQ_ENTRY.cdw0], ADM_CMD_IDENTIFY
|
||||||
or dword [esi + SQ_ENTRY.cdw0], eax
|
or dword [esi + SQ_ENTRY.cdw0], eax
|
||||||
mov al, [cns]
|
mov al, [cns]
|
||||||
mov byte [esi + SQ_ENTRY.cdw10], al
|
mov byte [esi + SQ_ENTRY.cdw10], al
|
||||||
@ -572,7 +572,7 @@ proc nvme_init stdcall, pci:dword
|
|||||||
mov dword [dptr], eax
|
mov dword [dptr], eax
|
||||||
invoke GetPhysAddr
|
invoke GetPhysAddr
|
||||||
; pci:dword, nsid:dword, dptr:dword, cid:word, cns:byte
|
; pci:dword, nsid:dword, dptr:dword, cid:word, cns:byte
|
||||||
stdcall nvme_identify, [pci], 0, eax, 0, CNS_IDCS
|
stdcall nvme_identify, [pci], 0, eax, 2, CNS_IDCS
|
||||||
|
|
||||||
xor eax, eax
|
xor eax, eax
|
||||||
inc eax
|
inc eax
|
||||||
@ -742,11 +742,10 @@ proc irq_handler
|
|||||||
mov esi, dword [esi + pcidev.io_addr]
|
mov esi, dword [esi + pcidev.io_addr]
|
||||||
mov edi, dword [edi + pcidev.cq_ptr]
|
mov edi, dword [edi + pcidev.cq_ptr]
|
||||||
mov dword [esi + NVME_MMIO.INTMS], 0x1
|
mov dword [esi + NVME_MMIO.INTMS], 0x1
|
||||||
mov eax, dword [edi + CQ_ENTRY.sqid]
|
mov ax, word [edi + CQ_ENTRY.status]
|
||||||
DEBUGF DBG_INFO, "(NVMe) SQID: %u\n", eax
|
and ax, not CQ_PHASE_TAG ; ignore phase tag bit
|
||||||
mov eax, dword [edi + CQ_ENTRY.status]
|
DEBUGF DBG_INFO, "(NVMe) Status: %x\n", ax
|
||||||
DEBUGF DBG_INFO, "(NVMe) Status: %x\n", eax
|
test al, al ; check status code (0 on success)
|
||||||
test al, al
|
|
||||||
jz @f
|
jz @f
|
||||||
|
|
||||||
; error occurred
|
; error occurred
|
||||||
|
Loading…
x
Reference in New Issue
Block a user