Commit Graph

119 Commits

Author SHA1 Message Date
bjorn3 3cbfbf6442 Move the IO port based fallback for PCI out of the pci module
The pci module is included in the pcid_interface library, which never
needs it.
2024-01-20 14:07:31 +01:00
bjorn3 4f20b90fc3 Remove PciBus and PciDev types
They weren't used in a load bearing way. If we want to keep persistent
state about buses and devices in the future they would probably get a
different shape.
2024-01-20 13:38:45 +01:00
bjorn3 cf7fbacdaf Stop leaking Mcfg again
We don't need it after Pcie::new anymore
2024-01-19 19:53:39 +01:00
bjorn3 529b4935ee Physmap all buses upfront
This avoids a costly Mutex lock and BTreeMap lookup for each config
space access.
2024-01-19 19:50:11 +01:00
bjorn3 23d963361a Fix a couple of warnings 2024-01-19 19:14:22 +01:00
bjorn3 cb9edcb7d6 Reduce log verbosity of Capability::parse_vendor by combining some logs 2024-01-19 19:11:05 +01:00
bjorn3 8d87b701ba Remove Mcfgs type
This wrapper was only useful back when we accepted multiple MCFG tables.
2024-01-19 19:10:35 +01:00
bjorn3 ae7e2dac9f Only parse a single MCFG ACPI table
There should only be one and Linux only parses the first one too.
2024-01-19 18:41:28 +01:00
bjorn3 07c029ec21 Add a fixme for using ACPI 2024-01-19 18:10:57 +01:00
bjorn3 101f062b56 Remove a couple of error conditions in Mcfgs::fetch()
* Every directory entry has to have a filename, so use unwrap
* Handle non-UTF-8 ACPI table filenames by using as_encoded_bytes
2024-01-19 14:58:09 +01:00
bjorn3 240e59e2bf Handle pci buses without a device at the first slot 2024-01-19 14:45:48 +01:00
bjorn3 c611988768 Fix MCFG parsing for PCIe 2024-01-19 13:19:53 +01:00
bjorn3 b317484d67 Simplify Mcfgs::fetch 2024-01-19 13:00:23 +01:00
bjorn3 15249127a5 Fix a couple of warnings 2024-01-19 12:47:42 +01:00
bjorn3 d010d03eef Fix pcid tests 2024-01-19 12:40:55 +01:00
bjorn3 2b5ed69a06 Use PciAddress in a couple more places 2024-01-19 12:40:54 +01:00
bjorn3 42b2f52d41 Directly store a PciAddress inside PciFunc instead of a PciDev + num 2024-01-19 12:29:22 +01:00
bjorn3 e5491a9e9a Inline several layers of read and write methods 2024-01-19 12:21:22 +01:00
bjorn3 336903b90a Introduce SharedPciHeader to deduplicate fields between the General and PciToPci variants 2024-01-19 12:14:02 +01:00
bjorn3 a7c5391c6c Introduce PciAddress type copied from the pci_types crate 2024-01-19 12:14:00 +01:00
bjorn3 07d5d730d2 Remove nolock CfgAccess methods
They are only called by the corresponding locked methods.
2024-01-18 22:14:04 +01:00
Jeremy Soller 61e9512468 Update redox_syscall to 0.4 2023-09-07 20:49:37 -06:00
4lDO2 ba661f9719 Replace SYS_PIPE2 with libc::pipe in pcid. 2023-08-31 21:20:23 +02:00
Ron Williams 156be64a9d pcid: replace add that should allow wrapping with explicit wrapping_add 2023-07-27 01:22:56 -07:00
4lDO2 e0a0e2a532 Remove physmap in pcid. 2023-07-18 11:01:16 +02:00
Anhad Singh 7e5a3196c2 pcid::server_handle: add get_capabilities
This commit adds the `get_capabilities` function to `PcidServerHandle`
which returns all of the `Capability`s (raw representation) of the PCI
device.

Signed-off-by: Anhad Singh <andypython@protonmail.com>
2023-06-19 12:18:56 +10:00
4lDO2 a5a3f3341f Remove all usages of physunmap. 2023-06-11 11:33:27 +02:00
Jeremy Soller 96246acca5 pcid: Optimize PCI bus scanning 2023-02-15 20:05:25 -07:00
Jeremy Soller 5bbe2e3f4c ahci, ihda, pci, xhci: logging adjustments 2023-02-15 19:30:59 -07:00
Jeremy Soller 625064004d Update for new Rust nightly 2023-02-11 14:37:22 -07:00
Jeremy Soller a6bafa17b0 Add pcid methods to read/write pci config region 2022-09-12 21:47:16 -06:00
Jeremy Soller e2a8255547 Allow reading PCI header through pcid socket 2022-09-07 12:15:41 -06:00
Jeremy Soller 4bca3e55d3 Fix xhcid compilation 2022-08-31 08:49:39 -06:00
Jeremy Soller 0e85c01ea3 Implement 64-bit BARs 2022-08-31 08:46:53 -06:00
4lDO2 af873f7626 Update redox_syscall dependency. 2022-07-27 17:55:39 +02:00
4lDO2 21e30b7339 Replace syscall::clone() with libc::fork(). 2022-07-27 16:25:01 +02:00
Jeremy Soller da8ecef8a7 Workarounds for aarch64 support 2022-07-26 16:11:45 -06:00
4lDO2 07f10fb4d1 Update redox_syscall to v0.2.12 2022-03-24 16:06:00 +01:00
4lDO2 d426ffacea Update toolchain to 2022-03-18. 2022-03-19 15:06:29 +01:00
Jeremy Soller 5e42b0697e Skip parsing vendor caps with length 0 2022-02-11 09:23:48 -07:00
4lDO2 7a2b3d7656 Update dependencies. 2021-06-17 18:18:27 +02:00
4lDO2 00b7674321 Use correct syscall when dropping PCIe context. 2021-03-08 14:37:38 +01:00
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