Commit Graph

3361 Commits

Author SHA1 Message Date
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 735c55f656 Rebase. 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 bd860de51e Temporarily disable qemu mouse integration 2020-04-18 11:24:05 -06:00
4lDO2 6b005a02f4 Make most of the scheme work, except for deletion. 2020-04-04 10:26:43 +02:00
4lDO2 931aa86ba8 Support some path operations. 2020-04-01 17:14:23 +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
4lDO2 4b83d5834e Implement most of the scheme. 2020-03-29 21:42:32 +02:00
4lDO2 4736a52639 Initial commit. 2020-03-29 11:22:21 +02:00
Jeremy Soller a01f1c4c80 nvmed: fix block size conversion 2020-03-28 13:53:42 -06:00
Jeremy Soller 4fd8664deb pcid: Skip empty buses and devices 2020-03-28 13:35:50 -06:00
Jeremy Soller 3dbf9ad3e7 Comment out XHCI interrupt message 2020-03-11 11:58:52 -06:00
Jeremy Soller f00a049439 Enable ahcid interrupts 2020-02-22 20:10:43 -07:00
Jeremy Soller c1b4292675 Improve ahcid interrupt handling 2020-02-22 19:46:28 -07:00
Jeremy Soller fc8cbe847b Merge branch 'usb' into 'master'
Add a fully functioning USB SCSI block device driver.

See merge request redox-os/drivers!58
2020-02-21 17:13:39 +00:00
4lDO2 3203a33498 REDOXFS WORKS (read-only) ON USB! 2020-02-21 16:45:35 +01:00
4lDO2 4072d5d282 Implement READ CAPACITY 10.
This allows the block count and block size to be determined when no
block descriptors in the mode sense data are returned.
2020-02-18 19:18:20 +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 4d14310e2d Rustfmt. 2020-02-15 09:56:32 +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 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
Jeremy Soller e0ca9648ea Merge branch 'bugfix/fix-unnamed-sockets' into 'master'
Fix unnamed sockets

See merge request redox-os/ipcd!3
2020-02-08 14:01:03 +00:00
4lDO2 3fd4bc4b3b Add functions for the HID-specific requests. 2020-02-08 12:28:17 +01:00
Tiago Lam ea4247c0b5 chan: Support turning unnamed into named sockets.
Previous approach, reverted in commit c7cf2ca, would break unnamed
sockets - since it assumed there would always be an interim step were
one would first name an unnamed socket, before "listen" / "connect".

Instead of using the same approach as the "tcp:" scheme in Redox's
netstack, which requires an extra mapping of temporary unnamed sockets,
handle the different use cases in dup(). Thus, if a "buf" is provided
that's not a "connect" or "listen", it must be a new path for turning
the unnamed socket into a named socket and should be handled as such.
2020-02-08 10:29:52 +00:00
Tiago Lam 73570b0926 Revert "chan: Support opening "empty" ChanScheme."
This reverts commit 9526ffa80f.
2020-02-08 10:24:57 +00: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
Jeremy Soller c7cf2ca0e0 Merge branch 'feature/support-af-unix-sockets' into 'master'
Support AF_UNIX sockets

See merge request redox-os/ipcd!2
2020-02-07 02:18:48 +00:00
4lDO2 1b74f335b0 Add a driver interface accessible to class drivers. 2020-02-06 21:45:44 +01:00
Tiago Lam fad13404d5 chan: Keep path in for new Handle.
While supporting AF_UNIX, once an accept() is called in relibc, in turn,
a dup() is also called with "listen". While processing this ipcd
effectively creates a new handler, losing track of the path of the
previous handler.

However, it is important to keep this path in the newly created Handler
as well, so the socket can be queried later by relibc (when calling
fpath()) and fill in appropriately its sockaddr_un struct.
2020-02-06 08:27:47 +00:00