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

176 Commits

Author SHA1 Message Date
835840231f more code removal 2024-07-23 14:14:43 -04:00
39dcfd2edc perf: remove some unneeded code bloat 2024-07-23 14:10:42 -04:00
1b88a4ff17 feat: add in write to disk functions and remove unnecessary div in nvme_init 2024-07-23 13:04:52 -04:00
e3241e35cc perf(size): remove useless pow2 implementation 2024-07-22 14:19:54 -04:00
1ea8733a66 fix: PRP list creation bug 2024-07-21 17:08:51 -04:00
1599185ef4 fix(nvme_readwrite): free allocated PRP list after I/O command completion 2024-07-21 14:21:10 -04:00
7e71c33f3f fix: nvme_readwrite and build_prp_list
This fixes the number of PRPs calculation before build_prp_list is
invoked. It also accounts for the fact that the NLB field in the NVMe
I/O read and write commands is a 0-based value, unlike numsectors.
start_sector is also converted into the appropriate LBA number as it
should be before sending the I/O command.
2024-07-21 14:14:04 -04:00
bb952838ca fix: DiskAdd string 2024-07-20 17:20:32 -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
c21376dde4 add IOCTL error codes 2024-07-18 17:58:15 -04:00
9632b2841d fix: apply PRP offset error fix 2024-07-18 17:24:28 -04:00
1e315791fb fix: PRP list allocation 2024-07-18 17:01:26 -04:00
b88c5185a7 fix: get correct physical address of PRP2 2024-07-18 15:17:27 -04:00
a1639a3b9b more fixes in alloc_dptr 2024-07-12 15:38:45 -04:00
48fef9b8d7 fix PRP2 alignment 2024-07-12 14:03:19 -04:00
a8aafb415f fix: initialize prp_list before PRPs 2024-07-12 13:59:54 -04:00
e9de569036 apply some fixes 2024-07-12 13:55:44 -04:00
87fa0e0e3f refactor build_prp_list and remove free_prp_list 2024-07-12 13:33:26 -04:00
52831db8f8 fix call to alloc_dptr 2024-07-11 17:03:39 -04:00
8eb5990c32 remove a lot of code, refactor alloc_dptr to use buf directly 2024-07-11 17:02:30 -04:00
becabd38b5 fix more stuff 2024-07-11 16:19:42 -04:00
7181653389 fix(build_prp_list): add correct return value 2024-07-11 13:39:05 -04:00
8101007350 perf: dont use recursion for build_prp_list + remove redundant calls 2024-07-11 13:37:05 -04:00
1f5815351c fix(nvme_readwrite): make numsectors 0 if no sectors were written 2024-07-11 12:21:04 -04:00
b57c530854 feat: get reading from PRP2 entry working 2024-07-09 16:48:39 -04:00
f3a8ed0f6f feat: get reading from single prp entry working 2024-07-09 15:43:45 -04:00
405dcb5155 more fixes to nvme_io_rw, alloc_dptr, write_prp_buf (2) 2024-07-09 14:51:48 -04:00
c9143ca99d more fixes to nvme_io_rw and alloc_dptr 2024-07-09 13:38:55 -04:00
66d24f8e49 fix(nvme_readwrite): PRP2 checking 2024-07-08 16:30:29 -04:00
b21f83fef0 refactor: replace memset with memsetdz 2024-07-08 15:49:43 -04:00
87afd80486 fix writing to PRP entries 2024-07-08 14:49:43 -04:00
092c655593 another indentation fix 2024-07-05 17:30:22 -04:00
f93b16f3bd style: fix indentation 2024-07-05 17:27:38 -04:00
14f01df0f7 style: fix indentation 2024-07-05 17:11:51 -04:00
f689eb5b2c feat: add read functionality (to be tested) 2024-07-05 16:02:11 -04:00
b6e6a69de7 implement allocating and freeing PRP lists 2024-07-05 14:05:52 -04:00
d4bb46c00b some refactoring and fixes 2024-07-04 14:42:06 -04:00
b011dae650 refactor: build PRP list in separate function 2024-07-03 16:44:23 -04:00
06c0abac6a wip: implement code for allocating PRP entries and lists 2024-07-03 15:53:32 -04:00
038e994d48 refactor: replace jl/jg with jb/ja respectively 2024-07-03 12:36:31 -04:00
5f2adab1ab wip: read command 2024-07-01 17:10:36 -04:00
383190e462 feat: implement I/O read command 2024-07-01 13:56:00 -04:00
2d1e0d4aa4 fix: write command and nvme_cmd_wait hanging 2024-07-01 13:34:12 -04:00
76f94d74e1 nvme_init: check MQES 2024-06-27 19:19:06 -04:00
274a5681a2 more I/O command fixes 2024-06-27 18:31:51 -04:00
1f4b25a309 more fixes 2024-06-27 17:10:25 -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
ef8087f2fd fix: mask interrupts for I/O queue 1 2024-06-27 15:13:37 -04:00
6c82778503 tidyup IRQ handler, plus some other fixes 2024-06-27 15:12:52 -04:00