2
0
mirror of https://git.missingno.dev/kolibrios-nvme-driver/ synced 2024-12-22 05:48:47 +01:00
Commit Graph

223 Commits

Author SHA1 Message Date
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
18b76f70b2 fix(nvme_poll): jump after timeout 2024-07-26 06:14:45 -04:00
7c4626b5f1 fix: initialize NSINFO.nsid in nvme_init 2024-07-25 18:50:01 -04:00
4b9fe7f4c0 significant refactoring
* Removed useless `nvme_wait` call
* Remove phase tag bit check in favor of spinlock checking
* Added back in queue wrapping (though, it still needs work)
* Fix in `is_queue_full` which didn't pop bx off the stack when
returning in some circumstances
2024-07-25 18:34:54 -04:00
0a2b3bfe9d remove useless phase_tag field 2024-07-25 18:31:15 -04:00
80e64d4d70 add LOCK_SPINLOCK macro 2024-07-25 18:30:28 -04:00
01fc77ba69 refactor: print controller version during initialization 2024-07-25 14:14:29 -04:00
6c120b8767 add TODO 2024-07-23 19:43:37 -04:00
a5c1920c0e more bloat removal 2024-07-23 14:59:08 -04:00