mirror of
https://git.missingno.dev/kolibrios-nvme-driver/
synced 2024-12-22 22:08:47 +01:00
fix: allocate appropriate number of pages
This commit is contained in:
parent
e7e5ac98f0
commit
a181eccd9c
@ -265,25 +265,25 @@ proc nvme_init stdcall, pci:dword
|
|||||||
|
|
||||||
; Configure IOSQES, IOCQES, MPS, CSS
|
; Configure IOSQES, IOCQES, MPS, CSS
|
||||||
mov eax, dword [edi + NVME_MMIO.CC]
|
mov eax, dword [edi + NVME_MMIO.CC]
|
||||||
|
and eax, not (CC_IOSQES or CC_IOCQES or CC_MPS or CC_CSS)
|
||||||
or eax, (4 shl 16) or (6 shl 20)
|
or eax, (4 shl 16) or (6 shl 20)
|
||||||
and eax, not (CC_MPS or CC_CSS)
|
|
||||||
mov dword [edi + NVME_MMIO.CC], eax
|
mov dword [edi + NVME_MMIO.CC], eax
|
||||||
|
|
||||||
; Configure Admin Queue Attributes
|
; Configure Admin Queue Attributes
|
||||||
mov eax, dword [edi + NVME_MMIO.AQA]
|
mov eax, dword [edi + NVME_MMIO.AQA]
|
||||||
and eax, not (AQA_ASQS or AQA_ACQS)
|
and eax, not (AQA_ASQS or AQA_ACQS)
|
||||||
or eax, 2 or (2 shl 16)
|
or eax, NVM_ASQS or (NVM_ACQS shl 16)
|
||||||
mov dword [edi + NVME_MMIO.AQA], eax
|
mov dword [edi + NVME_MMIO.AQA], eax
|
||||||
|
|
||||||
; Configure Admin Submission/Completion Queue Base Address
|
; Configure Admin Submission/Completion Queue Base Address
|
||||||
invoke AllocPage
|
invoke AllocPages, NVM_ASQS
|
||||||
test eax, eax
|
test eax, eax
|
||||||
jz .exit_fail
|
jz .exit_fail
|
||||||
;or eax, PG_SW or PG_NOCACHE
|
;or eax, PG_SW or PG_NOCACHE
|
||||||
mov dword [edi + NVME_MMIO.ASQ], eax
|
mov dword [edi + NVME_MMIO.ASQ], eax
|
||||||
and dword [edi + NVME_MMIO.ASQ + 4], 0
|
and dword [edi + NVME_MMIO.ASQ + 4], 0
|
||||||
DEBUGF DBG_INFO, "(NVMe) ASQ = 0x%x\n", eax
|
DEBUGF DBG_INFO, "(NVMe) ASQ = 0x%x\n", eax
|
||||||
invoke AllocPage
|
invoke AllocPages, NVM_ACQS
|
||||||
test eax, eax
|
test eax, eax
|
||||||
jz .exit_fail
|
jz .exit_fail
|
||||||
;or eax, PG_SW or PG_NOCACHE
|
;or eax, PG_SW or PG_NOCACHE
|
||||||
|
@ -9,9 +9,11 @@
|
|||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
; Supported NVMe Controller Version
|
; Supported NVMe Controller Version
|
||||||
NVM_SUPPORTED_CONTROLLER_VERSION = 0x00010400 ; (v1.4)
|
NVM_SUPPORTED_CONTROLLER_VERSION = 0x00010400 ; (v1.4.0)
|
||||||
|
|
||||||
NVM_MPS = 0
|
NVM_MPS = 0 ; Memory Page Size (2 ^ (12 + MPS))
|
||||||
|
NVM_ASQS = 2 ; Admin Submission Queue Size
|
||||||
|
NVM_ACQS = NVM_ASQS ; Admin Completion Queue Size
|
||||||
|
|
||||||
; Opcodes for NVM commands
|
; Opcodes for NVM commands
|
||||||
NVM_CMD_FLUSH = 0x00
|
NVM_CMD_FLUSH = 0x00
|
||||||
|
Loading…
Reference in New Issue
Block a user