2
0
mirror of https://git.missingno.dev/kolibrios-nvme-driver/ synced 2024-11-10 02:20:27 +01:00
Commit Graph

76 Commits

Author SHA1 Message Date
bd93b426c0
refactor: let FASM calculate LOG2(x) for us at compile time 2024-08-26 12:12:33 -04:00
15b4b3ee81
apply some readability fixes 2024-08-21 13:34:09 -04:00
24e79cddf0 nvme_cleanup: shutdown the controller 2024-08-10 17:17:04 -04:00
caf8e43513 remove useless exact alignment alloc 2024-08-08 18:37:05 -04:00
ef7f1d3459 lock and unlock mutex for asynchronous API 2024-08-08 13:03:52 -04:00
f502f3cfaa perf: use bit shift instead of multiplication where possible 2024-08-08 12:34:24 -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
e2c2254a5b add more assertions 2024-08-05 11:37:41 -04:00
0f140a9c90 chore: remove useless fields from pcidev struct 2024-08-02 13:16:09 -04:00
7cc1601d90 add assertions to make sure submission and completion queue sizes are the same 2024-07-31 16:05:55 -04:00
a88a44c627 initialize command entries 2024-07-30 17:22:28 -04:00
c3901b163e bug fixes 2024-07-30 14:38:53 -04:00
0d7f6b1c8f misc: set vim syntax to fasm 2024-07-30 12:39:00 -04:00
bee583765f disable MSI interrupts if present 2024-07-26 14:42:46 -04:00
0a2b3bfe9d remove useless phase_tag field 2024-07-25 18:31:15 -04:00
a5c1920c0e more bloat removal 2024-07-23 14:59:08 -04:00
39dcfd2edc perf: remove some unneeded code bloat 2024-07-23 14:10:42 -04:00
0eea7a6130 refactor: tweak some things
First of all, the driver will now abort initialization if it encounters
the first found namespace LBADS is not 512, since KolibriOS doesn't
support a LBADS greater than 512 as of now.

This commit also removes verbose debug logs and adds appropriate error
codes to nvme_readwrite
2024-07-20 16:38:12 -04:00
b88c5185a7 fix: get correct physical address of PRP2 2024-07-18 15:17:27 -04:00
14f01df0f7 style: fix indentation 2024-07-05 17:11:51 -04:00
d4bb46c00b some refactoring and fixes 2024-07-04 14:42:06 -04:00
5f2adab1ab wip: read command 2024-07-01 17:10:36 -04:00
274a5681a2 more I/O command fixes 2024-06-27 18:31:51 -04:00
34ff6d786e fix: initialize I/O queues correctly 2024-06-27 15:55:29 -04:00
5bc4a832f1 feat: add support for consuming completion queues entries from multiple queues 2024-06-27 15:19:32 -04:00
7bba4781fb feat: implement disk registering code 2024-06-25 18:37:04 -04:00
43f29c791a add num field to each detected NVMe device 2024-06-25 15:44:04 -04:00
f612befee6 implement reporting on namespace info 2024-06-25 15:24:52 -04:00
603a48e351 refactor: change NVM_ASQS to 63 2024-06-25 14:28:29 -04:00
8f806cfb6f lots of refactoring 2024-06-24 16:55:29 -04:00
bb59692ca4 add nn field to pcidev struct 2024-06-22 14:42:30 -04:00
d6f62cc4f3 add nsids field to pcidev struct 2024-06-22 14:32:40 -04:00
528d469ab0 refactor: allocate sq_ptr/cq_ptr for each queue 2024-06-20 16:27:09 -04:00
2f07187623 fix fatal bugs in write_admin_cmd and dont handle IRQs if they dont belong to the NVMe device 2024-06-20 15:55:32 -04:00
5974fc7fb0 feat: create I/O queues and fix other admin commands 2024-06-18 18:21:32 -04:00
3b1028b5dd add code for freeing cid slots 2024-06-13 13:53:59 -04:00
9c1147b31d fix admin commands and auto assign CIDS 2024-06-13 12:46:34 -04:00
5f43171b7e add new fields and constants 2024-06-12 18:02:46 -04:00
8f67604ddf lots of fixes 2024-06-12 15:47:32 -04:00
cc3e3f6ec4 refactor some stuff 2024-06-11 19:57:02 -04:00
83004aca87 add NVM_QUEUE struct 2024-06-09 18:12:45 -04:00
482d186c1a change pcidev.dstrd to byte 2024-06-09 13:06:40 -04:00
bc3435ad09 add new fields to pcidev struct 2024-06-08 14:32:36 -04:00
81a102ad6a chore: set to filetype to asm in vim 2024-06-08 12:25:46 -04:00
04f89899de rename: LPI to LID 2024-06-06 14:25:24 -04:00
1444ffc605 add log page identifier constants 2024-06-06 14:22:32 -04:00
d5a4850be7 style: rename pcidev.mmio_ptr to pcidev.io_addr 2024-06-06 14:00:10 -04:00
8b8dca1c05 add NSGRANLS struct and controller version constants 2024-06-06 13:28:02 -04:00
721fe6582f add constants 2024-06-04 15:59:25 -04:00