Commit Graph

77 Commits

Author SHA1 Message Date
Jeremy Soller 31bae74334 Merge branch 'code_hygiene' into 'master'
Code hygiene

See merge request redox-os/drivers!72
2020-08-08 12:55:24 +00:00
Jeremy Soller be101621cc Update to newer syscall 2020-08-02 15:25:03 -06:00
Wren Turkal 6018b6fc49 Fix lint issues from rustc.
Signed-off-by: Wren Turkal <wt@penguintechs.org>
2020-08-01 16:52:47 -07:00
Wren Turkal dadc0c6c10 Remove unused imports.
Signed-off-by: Wren Turkal <wt@penguintechs.org>
2020-08-01 12:48:06 -07:00
Jeremy Soller 63dc11fbb9 Merge branch 'add_pci_vendor_specific_capability' into 'master'
Add pci vendor specific capability.

See merge request redox-os/drivers!71
2020-08-01 18:18:31 +00:00
Jeremy Soller 7b8485a582 Merge branch 'pci_ids_info' into 'master'
Add more structure cli to pcid.

See merge request redox-os/drivers!67
2020-08-01 18:16:31 +00:00
Wren Turkal 65982d5e02 Add more structure cli to pcid.
This change adds a structopt commandline interface to the pcid tool.
This add some help for the arguments that pcid takes.

Signed-off-by: Wren Turkal <wt@penguintechs.org>
2020-08-01 18:16:31 +00:00
Wren Turkal 39fea64403 Add pci vendor specific capability.
Signed-off-by: Wren Turkal <wt@penguintechs.org>
2020-08-01 00:40:30 -07:00
Wren Turkal 5db50db7a9 Fix buggy assertion in pcid capability parser.
The pcid capability parsing code has an assertion that checks for dword
alignment. Unfortunately, the check was previously checking for
alignment to qwords. This fixes that.

I found this issue by using qemu to emulate adding different pci
devices. I managed to come across a device that had a capability
aligned on dword, but not qword. That exposed the bug.

Signed-off-by: Wren Turkal <wt@penguintechs.org>
2020-07-31 21:39:21 -07:00
Wren Turkal 5dfd5f7e7c Fixed PCI bus scan to scan bus 0xFF.
Previously, the PCI bus scan was skipping bus 0xFF. Now it does not.
I used a match expression to make sure that all cases are accounted for.

I also changed the PCI dev scan and PCI func scan to use a match
expression in a similar way to make sure all cases are account. While
this is functionally the same as before, the match expression will not
allow unhandled cases and should be easier to read and make it harder
to introduce bugs.

Signed-off-by: Wren Turkal <wt@penguintechs.org>
2020-07-27 22:49:39 -07:00
Jeremy Soller 24aa9192cb pcid: Fix extra newlines in log 2020-07-15 22:23:34 -06:00
4lDO2 146265682a Improved PCI capability parsing. 2020-05-21 12:16:22 +00:00
4lDO2 cea6ce7d7a Move the setrens to a later position, in nvmed. 2020-05-02 00:05:04 +02:00
4lDO2 c61e886108 Refactor and rustfmt the nvme driver. 2020-05-01 11:57:55 +02:00
4lDO2 d485176bd6 Improve startup interrupt initialization. 2020-04-27 15:59:06 +02:00
4lDO2 4016b0c7b8 Fix failing pcid config parsing. 2020-04-23 15:35:44 +02:00
4lDO2 7b69d5b9b5 WIP: Use the enhanced pcid IPC. 2020-04-22 21:21:55 +02:00
4lDO2 07d4ae0e60 Recognize the AHCI-specific SATA PCI capability. 2020-04-22 18:52:51 +02:00
4lDO2 fe95c942ac Add pcid logging. 2020-04-22 18:27:43 +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 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
4lDO2 81afdb2750 Remove two todo comments. 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 4fd8664deb pcid: Skip empty buses and devices 2020-03-28 13:35:50 -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 55da4bcb84 Add missing import 2019-07-03 19:57:32 -06:00
Jeremy Soller f4d54c1831 Merge branch 'redox-unix' into 'redox-unix'
Add ixgbe driver and split filesystem.toml into separate driver config files

See merge request redox-os/drivers!46
2019-07-03 20:21:38 +00:00
Simon Ellmann 1e3413acaa Add ixgbe driver and split filesystem.toml into separate driver config files 2019-07-03 20:22:19 +02:00
Roland Ruckerbauer b50437af8a Fixed deprecated syntax in vesad
2018 edition upgrade & fixes for a bunch of 'future error warnings'

Actually upgrading all crates to 2018 edition
2019-06-29 21:47:52 +02:00
Jeremy Soller 79df020cbd If an IRQ is not set, use IRQ #9 2018-04-21 09:43:49 -06:00
Jeremy Soller 7fbb2c32e2 Fix BAR variables 2018-03-01 08:24:24 -07:00
Dan Robertson 4d349192da Allow PCI Config space parsing to handle types
- Update the PCI config space parsing to be able to handle multiple
   types.
 - Use a trait to abstract out reading from the config space in order to
   allow testing/fuzzing of the parser.
2018-02-27 22:46:30 +00:00
Dan Robertson b332607d77 Allow using a device ID range in toml config 2018-02-04 02:35:36 +00:00
Jeremy Soller 1461404502 Remove unnecessary unsafe 2018-01-28 14:51:24 -07:00
SeongUk Cho dd5f83cd39 solved error: #[derive] can't be used on a non-Copy #[repr(packed)] struct (error E0133) 2017-12-01 21:52:01 +09:00
2e07aab6de fixed pcid unsafe problem 2017-12-01 21:41:21 +09:00
2b4b940360 unsafe problem fixed 2017-12-01 21:35:55 +09:00
66826a8bf8 unsafe edited 2017-12-01 20:34:15 +09:00
Jeremy Soller 17b592b064 Remove unnecessary extern crate 2017-08-30 22:05:56 -06:00
Jeremy Soller 1d7e51b423 Update main.rs 2017-08-21 09:24:55 -06:00