Commit Graph

433 Commits

Author SHA1 Message Date
4lDO2 cee5a39ccc Fix pcie memory destructor. 2020-04-19 17:32:45 +02:00
4lDO2 14206f0e5c Successfully read config space with PCIe MMIO*.
*to the extent where all the subdriver appear to function as normal.
2020-04-19 17:32:45 +02:00
4lDO2 31d5a95cf9 Add MCFG parsing for PCIe. 2020-04-19 17:32:45 +02:00
Jeremy Soller 55645674d3 Merge branch 'msi' into 'master'
Greatly improve xhcid by using real MSI-X irqs.

See merge request redox-os/drivers!59
2020-04-19 15:32:02 +00:00
4lDO2 da188109d4 Change the default log level to debug. 2020-04-19 17:11:08 +02:00
4lDO2 81afdb2750 Remove two todo comments. 2020-04-19 14:45:46 +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 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
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
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