Commit Graph

392 Commits

Author SHA1 Message Date
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 034e6bce70 Set up a basic SCSI scheme, and get disk size.
Some commands are unused though, and probably won't be used, for example
ReportSuppOpcodes. Also, there appears to be lots of different versions
of the SCSI specification.
2020-02-14 00:02:13 +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 ae76f57162 Prepare for orbital communication. 2020-02-09 11:12:18 +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
4lDO2 295aa02e5d Support reading the slot state. 2020-02-01 18:20:24 +01:00
4lDO2 cbd9d83b69 SUPPORT CONFIGURE_ENDPOINTS! 2020-02-01 15:05:14 +01:00
4lDO2 93d99c4f4f Add a skeleton for endpoint enabling (in the driver API). 2020-02-01 15:04:56 +01:00
4lDO2 dd4dd952d0 Improve (subjective...) the descriptor fetching. 2020-01-19 11:37:05 +11:00
4lDO2 8b375518d9 Fix the descriptor parsing by somewhat. 2020-01-19 11:37:05 +11:00
4lDO2 faa29b1854 Add a really basic interface to xhcid. 2020-01-19 11:37:05 +11:00
Jeremy Soller e191e502e1 Merge branch 'master' into 'master'
Add partitioning support to nvmed

See merge request redox-os/drivers!56
2020-01-14 13:34:24 +00:00
4lDO2 5807909ed1 Add partitioning support to nvmed. 2020-01-09 10:38:31 +11:00
4lDO2 60f05af555 Move the block-io-to-unaligned-io wrapper to its own crate. 2020-01-08 22:34:28 +11:00
Jeremy Soller 8bd1176cda Merge branch 'master' into 'master'
Add partition support to ahcid

See merge request redox-os/drivers!55
2020-01-05 01:40:27 +00:00
4lDO2 5848f668a6 Don't fail when the blocksize couldn't be retrieved.
This is required for ahcid to work with make qemu_efi.
2020-01-05 12:17:47 +11:00
4lDO2 2a7216c342 It (partition support) works! 2020-01-05 10:43:07 +11:00
4lDO2 119f7a5595 Add partition support for ahcid (untested). 2020-01-04 19:35:16 +11:00
Jeremy Soller 084587ed02 Add TODO to address spurious interrupts 2019-09-11 22:03:34 -06:00
Jeremy Soller c7f02e5e21 rtl8168d: fix calculation of next read size 2019-09-11 21:03:07 -06:00
Jeremy Soller 7f95962fa2 rtl8168d: match 8169 device and add documentation 2019-09-11 20:35:09 -06:00
Jeremy Soller 283ff736c6 Make separate config for xhcid 2019-09-11 20:09:13 -06:00
Jeremy Soller a38a20984e Basic implementation of NVMe IRQ handler 2019-09-05 20:37:20 -06:00
Jeremy Soller 8da1c13b73 Use BAR size for ihda 2019-09-04 20:44:24 -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 a1144552d5 Re-enable QEMU mouse integration 2019-09-04 19:55:28 -06:00
Jeremy Soller aecb345abc Remove rtl8168d debugging 2019-08-29 20:31:33 -06:00