Commit Graph

94 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 3558397859 ASYNC COMMAND SUBMISSION WORKS (partially). 2020-05-03 15:47:09 +02:00
4lDO2 6c2f103841 WIP: Complete the NVME CQ reactor (doesn't compile yet) 2020-04-29 19:35:48 +02:00
4lDO2 7b69d5b9b5 WIP: Use the enhanced pcid IPC. 2020-04-22 21:21:55 +02:00
4lDO2 fe95c942ac Add pcid logging. 2020-04-22 18:27:43 +02:00
4lDO2 aea6e1b84c Improve xhcid logging. 2020-04-22 18:09:56 +02:00
4lDO2 85691b8f4e Fix xhcid. 2020-04-22 14:43:06 +02:00
4lDO2 cafee6ad7b Allow per-cpu IRQ allocation. 2020-04-22 13:43:53 +02:00
4lDO2 4f62888bb4 Various fixes. 2020-04-21 15:42:51 +02:00
4lDO2 afe9c88f37 Allow every settable MSI field to be set. 2020-04-21 15:42:51 +02:00
4lDO2 da188109d4 Change the default log level to debug. 2020-04-19 17:11:08 +02:00
4lDO2 57bde84edb usbscsid works again, AFAICT. 2020-04-19 14:45:46 +02:00
4lDO2 0e802e2085 Fix two deadlocks. 2020-04-19 14:45:46 +02:00
4lDO2 f4398854fc Add trace debug printlns for opening handles. 2020-04-19 14:45:46 +02:00
4lDO2 74c77412bf Replace all calls to [e]println with log macros. 2020-04-19 14:45:46 +02:00
4lDO2 80d3affa1c Enable xhci logging, powered by redox-log. 2020-04-19 14:45:46 +02:00
4lDO2 08616920d6 Get descriptor fetching working. 2020-04-19 14:45:46 +02:00
4lDO2 f3d2d3e2d1 Fix the IRQ reactor when doing subsequent cmds. 2020-04-19 14:45:46 +02:00
4lDO2 ddf71d48e6 Get the Enable Slot cmd working, asynchronously!
This is the first command that actually worked by calling the IRQ
reactor and then getting a response. While this may not be that much on
its own, it means the async/await model actually works in this context.

Now the major problem is getting rid of all the deadlocks, and later
remove block_on(future) in the Scheme impl, and instead go async with
future spawning instead.
2020-04-19 14:45:46 +02:00
4lDO2 e58245b280 Use an event queue in the IRQ reactor. 2020-04-19 14:45:46 +02:00
4lDO2 9e34ed3fbf It compiles! 2020-04-19 14:45:46 +02:00
4lDO2 078a929bfc Fix borrow checker errors, except SchemeMut::handle. 2020-04-19 14:45:46 +02:00
4lDO2 6791429cd2 Fix most high-level errors in xhcid. 2020-04-19 14:45:46 +02:00
4lDO2 bae238bbef Asyncify Xhci::execute_transfer. 2020-04-19 14:45:46 +02:00
4lDO2 443b160b6d Add internal locking to the Xhci struct. 2020-04-19 14:45:46 +02:00
4lDO2 cfc4d65d48 THE INTERRUPTS ARE GETTING GENERATED! 2020-04-19 14:45:46 +02:00
4lDO2 cb5a72fbc1 Successfully recognize (only one) MSI-X IRQ.
Somehow it only happens once though.
2020-04-19 14:45:46 +02:00
4lDO2 fa594155c9 Allow subdrivers to get the capability structs. 2020-04-19 14:45:46 +02:00
4lDO2 7536048ceb Parse some of the PCI capabilities, and setup IPC. 2020-04-19 14:45:46 +02:00
Jeremy Soller 3dbf9ad3e7 Comment out XHCI interrupt message 2020-03-11 11:58:52 -06:00
4lDO2 3203a33498 REDOXFS WORKS (read-only) ON USB! 2020-02-21 16:45:35 +01:00
4lDO2 fab13d6404 Fix get_mode_sense10 and some bbb error handling. 2020-02-16 21:27:41 +01:00
4lDO2 3c9527206f Add basic SCSI error handling. 2020-02-15 23:54:23 +01:00
4lDO2 20e5c02391 Use correct ioc and chain bits when creating trbs. 2020-02-15 09:55:36 +01:00
4lDO2 bd0892e45d Make the usb scsi scheme able to do block I/O. 2020-02-15 00:26:19 +01:00
4lDO2 d44296dec9 Almost successfully read blocks using SCSI. 2020-02-14 18:38:24 +01:00
4lDO2 9d88528188 Make SCSI commands working. 2020-02-12 23:17:50 +01:00
4lDO2 73ca576558 Use the real DCIs instead of driver-level numbers.
Sidenote: instead of STALLing because the driver didn't configure the
endpoints properly, regular transfers now work. Thus, QEMU was able to
recognize that it received a Bulk-Only Transport CBW. Yay!

Additionally, to make life easier when debugging, usbctl was added; now
it can get endpoint statuses which were previously non-accessible from
shell scripts, after the transition to the new ctl+data endpoint
interface.
2020-02-12 22:07:37 +01:00
4lDO2 56541efd13 Use correct endpoint indices. 2020-02-12 15:10:01 +01:00
4lDO2 1a7625c0bc Allow stalled endpoints to be reset. 2020-02-12 13:46:28 +01:00
4lDO2 dd9124eb82 Simplify the endpoint interface. 2020-02-11 23:07:20 +01:00
4lDO2 127ef077c2 Select correct max packet sizes during init. 2020-02-11 12:54:34 +01:00
4lDO2 05392696fe Use more correct params in configure_endpoint.
Most importantly in the endpoint contexts of the input context,
specifying the properties of the endpoints that are being configured.
2020-02-11 11:39:29 +01:00
4lDO2 d82ae0a5f6 Add periodic (driver interface-level) transfers. 2020-02-10 23:12:11 +01:00
4lDO2 d64cb02986 Allow (untested) usb device requests to send data. 2020-02-10 18:55:09 +01:00
4lDO2 e052c5968d Support detecting USB port speeds. 2020-02-10 16:23:19 +01:00
4lDO2 cff3cf0d28 Add basic logic to usbscsid and support alternate interface. 2020-02-10 11:23:18 +01:00
4lDO2 62915fadb1 Implement stream transfers.
They only use one stream though, which defeats the purpose of streams,
but at least transfers now work.
2020-02-09 22:35:56 +01:00