Commit Graph

40 Commits

Author SHA1 Message Date
Jeremy Soller be101621cc Update to newer syscall 2020-08-02 15:25:03 -06:00
4lDO2 6bd4bb814f Support xHCs that only support 32-bit physical addresses. 2020-06-18 19:17:20 +00:00
4lDO2 07b1fe79fa Cleanup, and remove trace log writes for nvmed. 2020-05-03 16:33:56 +02:00
4lDO2 938cce8c8c make qemu_nvme works!
only cleanup left...
2020-05-03 16:02:23 +02:00
4lDO2 3558397859 ASYNC COMMAND SUBMISSION WORKS (partially). 2020-05-03 15:47:09 +02:00
4lDO2 cea6ce7d7a Move the setrens to a later position, in nvmed. 2020-05-02 00:05:04 +02:00
4lDO2 2db3bf4689 Read real block sizes. 2020-05-01 20:00:24 +02:00
4lDO2 1936f05030 NVME WORKS WITH IRQs 2020-05-01 14:14:47 +02:00
4lDO2 64e9eea9b0 Implement asynchronous command __submission__.
Note that by writing submission, I'm referring to blocking until a
submission queue has more entries available. The command completion
handling is already async.
2020-05-01 13:14:31 +02:00
4lDO2 c61e886108 Refactor and rustfmt the nvme driver. 2020-05-01 11:57:55 +02:00
4lDO2 167b994aea WIP: Asyncify IO SQ creation too. 2020-04-30 15:01:35 +02:00
4lDO2 3207f5a009 WIP: Make I/O completion queue creation async. 2020-04-30 14:48:43 +02:00
4lDO2 cbeb0070ec WIP: Asyncify namespace identification. 2020-04-29 20:44:38 +02:00
4lDO2 737870439a Wrap some NVME commands in async (not compiling). 2020-04-29 20:36:35 +02:00
4lDO2 6c2f103841 WIP: Complete the NVME CQ reactor (doesn't compile yet) 2020-04-29 19:35:48 +02:00
4lDO2 d485176bd6 Improve startup interrupt initialization. 2020-04-27 15:59:06 +02:00
4lDO2 e6a46bb6a6 Begin with NVME MSI support. 2020-04-25 23:02:16 +02:00
4lDO2 7b69d5b9b5 WIP: Use the enhanced pcid IPC. 2020-04-22 21:21:55 +02:00
Jeremy Soller a24b73efcf nvmed: Simplify init logging 2020-03-29 19:56:37 -06:00
Jeremy Soller 2cac3cb752 nvmed: Fix partition offset check 2020-03-29 19:26:13 -06:00
Jeremy Soller a01f1c4c80 nvmed: fix block size conversion 2020-03-28 13:53:42 -06:00
4lDO2 5807909ed1 Add partitioning support to nvmed. 2020-01-09 10:38:31 +11:00
Jeremy Soller a38a20984e Basic implementation of NVMe IRQ handler 2019-09-05 20:37:20 -06:00
Jeremy Soller 2087f0ad03 Fix parsing of bar size 2019-09-04 20:40:18 -06:00
Jeremy Soller eda6bc6f92 Calculate and use PCI BAR memory sizes in most drivers. 2019-09-04 20:38:08 -06:00
Jeremy Soller 249606a8c9 Fix nvmed on real hardware 2019-08-28 20:15:03 -06:00
Jeremy Soller 745d8818e1 Read completion using ptr::read_volatile 2019-08-27 21:16:58 -06:00
Jeremy Soller 13dd6ae28f nvmed: add to initfs and fix reading larger block sizes 2019-08-24 20:45:48 -06:00
Jeremy Soller b2c76034b7 nvmed: add scheme with read/write implemented using polling 2019-08-24 20:24:01 -06:00
Jeremy Soller 9c277981be nvmed: Set up I/O queues 2019-08-24 09:26:13 -06:00
Jeremy Soller df4a7b054b nvmed: Identify controller and namespaces 2019-08-24 08:37:38 -06:00
Jeremy Soller 37e92ac8e5 nvmed: Implement admin queue 2019-08-23 20:29:19 -06:00
Roland Ruckerbauer b50437af8a Fixed deprecated syntax in vesad
2018 edition upgrade & fixes for a bunch of 'future error warnings'

Actually upgrading all crates to 2018 edition
2019-06-29 21:47:52 +02:00
Jeremy Soller 7afaadabd9 Ensure that MMIO memory is mapped without caching 2019-04-08 20:22:01 -06:00
Jeremy Soller c47c68f44c Update fmap support 2018-12-28 16:19:09 -07:00
Jeremy Soller bd8a377c78 Use capability mode (null namespace) for drivers 2017-10-09 20:36:16 -06:00
Jeremy Soller 8e41cb9f03 Use disk heirarchy 2017-09-30 20:49:11 -06:00
Jeremy Soller 63dd2286fe nvmed: Verify correct memory space 2017-02-18 19:07:11 -07:00
Jeremy Soller 7be81d7837 Add read, write command structures 2017-02-18 15:00:14 -07:00
Jeremy Soller 28dbc45637 WIP: NVME driver 2017-02-18 14:05:04 -07:00