2
0
mirror of https://git.missingno.dev/kolibrios-nvme-driver/ synced 2024-09-19 18:11:03 +02:00
Commit Graph

268 Commits

Author SHA1 Message Date
53c04b912c
fix: interrupt freezing system when duplicate debug output is disabled 2024-09-17 08:41:21 -04:00
c2ee9ee16d
readme: add another feature to the table 2024-08-30 13:06:49 -04:00
bc99930e0e
add mtools as a dependency 2024-08-26 22:02:55 -04:00
456b0c1803
nvme.asm: typo fix 2024-08-26 21:59:25 -04:00
c25f224e4b
readme: typo fix 2024-08-26 20:22:49 -04:00
be884985d7
some changes to README 2024-08-26 20:21:55 -04:00
c2d8abad58
add README.md 2024-08-26 20:10:57 -04:00
388eca270e
slight perf improvement in alloc_dptr 2024-08-26 17:24:46 -04:00
3d95901b65
fix: allocate correct number of PRPs for PRP list 2024-08-26 17:19:26 -04:00
bd93b426c0
refactor: let FASM calculate LOG2(x) for us at compile time 2024-08-26 12:12:33 -04:00
e78be21c18
fix: shutdown all NVMe controllers 2024-08-23 12:21:36 -04:00
763bf37d29
fix(regression): freeze with multiple NVMe devices
Removing the PCI status bit check in the interrupt handler caused the
code to break and not work if there was more than one NVMe device
successfully attached. Not only does this commit fix this issue, but
this also adds a proper check to see if the device generated an
interrupt by checking if any commands have been posted to the completion
queue.
2024-08-23 12:08:00 -04:00
66c4c491d9
cqyhdbl_write: add TODO comment 2024-08-23 08:16:13 -04:00
7a82d090da
remove macros.inc 2024-08-23 07:55:07 -04:00
15b4b3ee81
apply some readability fixes 2024-08-21 13:34:09 -04:00
a2af5e16fe
remove unneeded comments 2024-08-21 13:30:22 -04:00
8f6182548f
fix: format PE DLL native 0.05
Adding this value reduces the number of false antivirus positives
2024-08-21 13:21:20 -04:00
af6b98d5a8
build: add install target 2024-08-19 07:49:09 -04:00
fb3d3968ff
ignore: kolibri.img 2024-08-19 07:48:31 -04:00
70792a391a add docs to most functions 2024-08-18 14:02:10 -04:00
18a744742c refactor: dont print CSTS on shutdown 2024-08-18 12:19:59 -04:00
2575ccd93f refactor Makefile for debugging 2024-08-18 12:15:56 -04:00
c5df463132 show CSTS during shutdown
I temporaily added this for easier debugging.
2024-08-13 20:12:39 -04:00
588d4a958c another fix for shutdown 2024-08-11 15:38:53 -04:00
96fcd601b3 fix: queue wrapping conditions 2024-08-11 14:37:51 -04:00
408a1c7f30 fix nvme_cleanup and add more debugging logs
This removes the memory allocation in nvme_cleanup as well. Since that
was causing problems at shutdown, for some reason. But now it does
correctly shutdown the controller.
2024-08-11 11:57:13 -04:00
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