37b926d2e1
Merge master branch
2024-08-09 22:08:32 -04:00
efc5b95250
add verbose debug logs
2024-08-09 13:51:52 -04:00
aa0a75e715
fix: running LOADDRV on NVMe driver more than once ( #2 )
...
Credits to @Burer for finding this bug, and @Doczom for providing a
solution.
2024-08-09 13:17:39 -04:00
caf8e43513
remove useless exact alignment alloc
2024-08-08 18:37:05 -04:00
867a675261
remove interrupt status bit check in IRQ handler
...
Virtualbox doesn't even set the bit so for now I'm removing it until I
can think of a good solution to this problem.
2024-08-08 18:11:54 -04:00
d9e04ec7cd
fix: set bus master, memory space access, and I/O space access bit in PCI command register
2024-08-08 15:23:39 -04:00
ef7f1d3459
lock and unlock mutex for asynchronous API
2024-08-08 13:03:52 -04:00
7be08b3e44
delete I/O queues when cleanup is called
2024-08-08 12:49:56 -04:00
f502f3cfaa
perf: use bit shift instead of multiplication where possible
2024-08-08 12:34:24 -04:00
29f04eb37b
style: remove comments and unused code
2024-08-06 12:46:40 -04:00
3c3bd6bd6f
refactor: rename nvme_controller_reset
and nvme_controller_start
2024-08-06 12:00:56 -04:00
b2b0ca743d
refactor: use named constants for queue allocation
2024-08-06 11:52:04 -04:00
4cbae17ecf
change NVM_ASQS from 64 to 256
...
No reason for this change other than to see if the Virtualbox controller
command problem goes away, since my guess is that if the queues are
right next to each other in physical memory, then it could perhaps work.
But this doesn't seem to be the case ATM.
2024-08-06 11:50:34 -04:00
4d3211604d
refactor: change queue size from 63 to 64
2024-08-05 17:23:40 -04:00
511db105a9
fix: reduce timeout value and initialize ACQ and ASQ addresses properly
2024-08-05 17:22:53 -04:00
4ac6818567
style: show completion queue base address before submission queue
2024-08-05 16:22:04 -04:00
3dbcfa5bad
fix: allocate queues next to eachother
2024-08-05 16:17:54 -04:00
8557d0a450
tidy up queue allocation
2024-08-05 12:49:35 -04:00
e2c2254a5b
add more assertions
2024-08-05 11:37:41 -04:00
50c2dc9a05
debug: add submission queue write log
2024-08-04 12:34:10 -04:00
66de6fd7d6
fix(nvme_readwrite): add missing return
2024-08-04 11:57:01 -04:00
bd4bec5487
add print log to show if NVMe device was detected on the PCI bus
2024-08-03 13:18:06 -04:00
4a1f7a5475
fix: add check to make sure p_nvme_devices
isnt null
2024-08-03 13:05:12 -04:00
b2f63c4997
refactor(nvme_cleanup): add proper cleanup
2024-08-02 14:01:20 -04:00
e1ad8f643d
fix: dont load driver if no NVMe disk was successfully initialized
2024-08-02 13:37:32 -04:00
c9d58c1ec7
fix: add null terminator to IDENTC ASCII strings
...
This prevents garbage and redundant values from being printed to the
debug log.
2024-08-02 13:17:16 -04:00
0f140a9c90
chore: remove useless fields from pcidev struct
2024-08-02 13:16:09 -04:00
f40321f869
refactor: dont map MMIO registers twice
2024-08-02 12:54:41 -04:00
404f451e0c
fix PRP list allocation regression
2024-08-01 13:49:18 -04:00
365ccac9eb
fix regression
2024-08-01 12:25:30 -04:00
d36f13f7af
fix: initialize command mutexes correctly
2024-08-01 12:08:41 -04:00
0cbf662a9f
perf: use memcpyd instead of memcpy
2024-08-01 12:02:07 -04:00
7cc1601d90
add assertions to make sure submission and completion queue sizes are the same
2024-07-31 16:05:55 -04:00
e9f371d20b
fix: assign CDW10.QSIZE in create I/O queues to correct value
2024-07-31 15:48:38 -04:00
1463187a62
add debug message for showcasing CAP.MQES
2024-07-31 15:36:37 -04:00
edafe73367
rename: lib.asm -> lib.inc
2024-07-31 15:25:23 -04:00
e8a5910681
refactor: move NVMe commands to a separate file
2024-07-31 15:24:54 -04:00
534103061c
important bug fix and some micro optimizations
...
As for the fix, the submission queues weren't properly being zeroed out
due to a small typo. The other stuff has some commented out stuff that
I'm currently debugging and working on.
2024-07-31 15:11:21 -04:00
a88a44c627
initialize command entries
2024-07-30 17:22:28 -04:00
6a8ab65661
another bug fix (2)
2024-07-30 15:09:49 -04:00
25ee3eb491
another bug fix
2024-07-30 14:59:46 -04:00
c3901b163e
bug fixes
2024-07-30 14:38:53 -04:00
dd4db45869
fix: use correct NVMe disk parameter
2024-07-30 13:52:37 -04:00
362a97ab12
chore: remove useless constants
2024-07-30 13:49:27 -04:00
6262634324
feat: implement support for multiple NVMe drives
2024-07-30 13:48:50 -04:00
0d7f6b1c8f
misc: set vim syntax to fasm
2024-07-30 12:39:00 -04:00
d153c63abb
remove CNS byte check in nvme_identify
2024-07-30 11:31:51 -04:00
c9e138d89f
add verbose debug logs in nvme_init
2024-07-27 12:16:56 -04:00
bee583765f
disable MSI interrupts if present
2024-07-26 14:42:46 -04:00
3d78f22409
make sure interrupts are enabled in PCI header
2024-07-26 13:14:50 -04:00