bjorn3
8f9bbecd0c
pcid: Rustfmt main.rs
2024-06-09 20:38:46 +02:00
bjorn3
fd3cf79884
pcid: Move spawning and interacting with subdrivers out of main.rs
2024-06-09 20:38:46 +02:00
bjorn3
eb2e670cd6
pcid: Explain why PciBar is used instead of pcid_types::Bar
2024-06-09 18:53:19 +02:00
bjorn3
b04915673d
pcid: Remove ConfigReader and ConfigWriter traits
...
Only PciFunc implements this trait.
2024-06-09 18:51:55 +02:00
bjorn3
d70cf080bb
pcid: Remove with_pci_func_raw
2024-06-09 18:46:35 +02:00
bjorn3
9aed7d560e
pcid: Merge CapabilityOffsetsIter into CapabilitiesIter
2024-06-09 18:21:50 +02:00
bjorn3
9d37d15827
pcid: Avoid duplicate read of vendor and device id
2024-06-09 18:14:52 +02:00
bjorn3
1593884938
pcid: Use capability_pointer method instead of a raw read
2024-06-09 18:14:49 +02:00
bjorn3
7f5a340c83
pcid: Remove cap_pointer from PciHeader::PciToPci
...
It is never used.
2024-06-09 18:14:46 +02:00
bjorn3
ba6b91d561
pcid: Move print_pci_function to a PciHeader method
2024-06-09 16:46:59 +02:00
bjorn3
4b384066f2
Use pci_types for setting the interrupt line
2024-06-09 15:05:47 +02:00
bjorn3
7ddae5fa03
pcid: Add fixme
2024-06-09 14:03:32 +02:00
bjorn3
3737a70cc1
pcid: Reduce visibility of server handle send/recv
2024-06-09 14:03:16 +02:00
bjorn3
6825d9b2ba
pcid: Remove support for connecting to non-default server
2024-06-09 14:03:16 +02:00
bjorn3
785f53c70c
pcid: Stop explicitly passing PciAddress to several functions
...
The PciHeader/PciEndpointHeader argument already contains the
PciAddress.
2024-06-09 14:03:13 +02:00
bjorn3
38a729bc76
Handle some stabilized rustc features
2024-06-09 14:03:13 +02:00
bjorn3
020a3ef631
pcid: Update to pci_types 0.9.0
2024-06-09 14:03:10 +02:00
4lDO2
4c35e88997
Use latest event queue interface everywhere.
2024-03-31 14:30:04 +02:00
Jacob Lorentzon
ff956fd3bb
Switch to libredox where applicable (fixed)
2024-03-18 22:09:25 +00:00
Jeremy Soller
98078650f8
Revert "Switch to libredox where applicable."
...
This reverts commit 2e7dbf1cc1 .
2024-03-18 15:00:52 -06:00
4lDO2
2e7dbf1cc1
Switch to libredox where applicable.
2024-03-18 19:23:05 +01:00
bjorn3
15c8ab2331
Search for PCI ECAM in the device tree on ARM
2024-03-17 17:15:34 +01:00
Jacob Lorentzon
e7a6bb6c81
Only do one memory:physical map per MCFG entry.
2024-02-20 22:27:14 +00:00
Jeremy Soller
de2fae8183
Do not compile MSI-X function for x86 32-bit
2024-02-16 20:52:37 -07:00
bjorn3
67d3015e2e
Add helper for allocating a single MSI/MSI-X interrupt vector
...
It doesn't actually configure the device to emit it though, but does
make this easier to do.
2024-01-25 14:43:44 +01:00
bjorn3
ecdcefba69
Clarify message_address argument names
2024-01-24 14:28:40 +01:00
bjorn3
f43aa8574c
Simplify MSI-X table pointer computation
2024-01-24 14:28:40 +01:00
bjorn3
7dbf22331b
Share msix config validation code
2024-01-24 14:28:40 +01:00
bjorn3
354c351b19
Unify device info printing between drivers
2024-01-23 13:01:40 +01:00
bjorn3
77b97bb2ed
Introduce PciBar::physmap_mem helper
2024-01-23 12:02:40 +01:00
bjorn3
4302a35a7e
Remove a couple of unused functions from MsixCapability
...
The set and write methods were useless as no rpc call is exposed by
pcid to actually write the new values. As for the rest, there were
no uses and they can be emulated using the other methods.
2024-01-22 20:44:17 +01:00
bjorn3
ad23ad5d93
Introduce irq_handle helper for legacy interrupts
2024-01-22 19:35:18 +01:00
bjorn3
bd6716efe4
Make legacy_interrupt_line an Option
...
Drivers don't need to know the exact legacy_interrupt_pin in use.
Just if legacy interrupts are enabled and if so which
legacy_interrupt_line is used.
2024-01-22 19:35:06 +01:00
bjorn3
e972047567
Use EndpointHeader methods for the command and status registers
2024-01-22 18:12:37 +01:00
bjorn3
623d12f276
Only try to load drivers for endpoint functions
...
For bridge functions we don't have any existing drivers and we
currently panic if we would try to load a driver for them.
2024-01-22 18:03:46 +01:00
bjorn3
545596f296
Don't try to fetch BARs unless there is a matching driver
...
Fetching BARs will temporarily invalidate them, which could cause
crashes if a driver happens to access it at the same time. As we
don't yet use a single pcid instance, we don't know which devices
have a driver attached or not. As such approximate this as the set
of devices for which the current pcid instance would load a driver.
2024-01-22 17:54:38 +01:00
bjorn3
18529f6cee
Remove PciClass in favor of pci_types::DeviceType
2024-01-22 16:57:53 +01:00
bjorn3
fb0dcb384b
Use pci_types in a couple more places in PciHeader::from_reader
2024-01-22 16:48:52 +01:00
bjorn3
d2431d4140
Make all parsing in PciHeader::from_reader use pci_types
2024-01-22 16:32:18 +01:00
bjorn3
a5d0c7c354
Use pci_types for reading BARs
...
This simplifies a lot of code and adds support for 64bit BARs.
2024-01-22 15:54:18 +01:00
bjorn3
d1b6009e3d
Start converting PciHeader::from_reader to pci_types
2024-01-22 15:25:08 +01:00
bjorn3
0b611dca04
Start using the pci_types crate
2024-01-22 11:25:43 +01:00
bjorn3
d56881de88
Use CfgAccess instead of ConfigReader in PciHeader::from_reader
...
This will enable getting BAR sizes directly inside this function in the future.
2024-01-22 11:00:17 +01:00
bjorn3
cc015eab13
Move PciHeader out of the pcid_interface crate
2024-01-21 21:25:50 +01:00
bjorn3
5192816de7
Introduce expect_port and expect_mem helpers
2024-01-21 21:12:24 +01:00
bjorn3
be0e6b9dd7
Pass self instead of &self to PciFeature methods
...
PciFeature is Copy, so passing it behind a reference is not necessary.
2024-01-21 20:46:00 +01:00
bjorn3
d0e90f5ded
Remove fetch_header from pcid_interface
...
Most things are already stored in SubdriverArguments and the couple of
things that aren't may change over time and thus should be read again
each time they are accessed, while fetch_header would receive a fixed
copy from pcid.
2024-01-21 19:35:39 +01:00
bjorn3
e5772c132b
Remove a lot of fields from PciHeader which are unlikely to be used
...
Some of these are removed with PCIe while many others only need to be
used by the firmware to initialize the PCI bridges. If we ever need
them anyway, we can always add them back, but for now it improves
readability.
2024-01-21 19:12:35 +01:00
bjorn3
1890293e86
Introduce a FullDeviceId type and pass it in pcid_interface
2024-01-21 15:18:56 +01:00
bjorn3
92914e808c
Reduce code indentation one level
2024-01-21 14:03:33 +01:00