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

242 Commits

Author SHA1 Message Date
39ad8d2f3a fix: add polling for I/O queue deletion 2024-08-11 07:14:57 -04:00
998d51f9e8 fix: shutdown freeze (#5) 2024-08-10 19:27:58 -04:00
24e79cddf0 nvme_cleanup: shutdown the controller 2024-08-10 17:17:04 -04:00
435dea90dc refactor: remove use of mutexes
We're not using asynchronous API at the moment anyways, so there's no
point in having them right now.
2024-08-10 13:32:31 -04:00
f98d3b95b6 fix: command wrapping 2024-08-10 13:06:40 -04:00
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
2f7fd1e65f add kolibri.img 2024-08-03 15:07:18 -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
9998faa834 build: add proper nvme.asm dependencies 2024-07-31 15:26:06 -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