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