Commit Graph

85 Commits

Author SHA1 Message Date
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 ae49a0ba30 Update chashmap version. 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
4lDO2 6b70e80d20 Add (untested) transfer support. 2020-02-09 17:17:36 +01:00
4lDO2 1013daf606 IT WORKS! 2020-02-08 17:18:09 +01:00
4lDO2 3fd4bc4b3b Add functions for the HID-specific requests. 2020-02-08 12:28:17 +01:00
4lDO2 53ddfbb88e Fix the HID report descriptor parsing. 2020-02-08 11:05:29 +01:00
4lDO2 b308dad7c6 Add a basic HID driver unable to parse report descs.
Custom device requests are now implemented though.
2020-02-08 10:21:21 +01:00
4lDO2 1b74f335b0 Add a driver interface accessible to class drivers. 2020-02-06 21:45:44 +01:00
4lDO2 ae0d43c12a Add a framework-ish for USB drivers. 2020-02-03 21:48:35 +01:00
4lDO2 8c158328a3 Add class and vendor device reqs to the API. 2020-02-02 11:31:13 +01:00
4lDO2 d4f1480d1b Add some basic HID descriptor handling. 2020-02-02 10:00:09 +01:00
4lDO2 d66b0c5bd8 Fix the state virtual file. 2020-02-01 23:28:19 +01:00
4lDO2 c4a393e296 Correctly index the dev ctx arr for slot states. 2020-02-01 22:02:20 +01:00