bjorn3
9bb1222933
Fix UB lint in virtio-core
...
error: casting references to a bigger memory layout than the backing allocation is undefined behavior, even if the reference is unused
--> virtio-core/src/probe.rs:126:21
|
86 | let capability = unsafe { &*(capability.data.as_ptr() as *const PciCapability) };
| --------------------------------------------------- backing allocation comes from here
...
126 | (&*(capability as *const PciCapability as *const PciCapabilityNotify))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: casting from `transport_pci::PciCapability` (13 bytes) to `transport_pci::PciCapabilityNotify` (17 bytes)
= note: `#[deny(invalid_reference_casting)]` on by default
2024-03-06 21:06:26 +01:00
Jeremy Soller
25dcb8adc1
Merge branch 'driver-categories3' into 'master'
...
Move all storage, audio and graphics related drives to the relative subdirectories
See merge request redox-os/drivers!145
2024-03-01 00:24:52 +00:00
bjorn3
887412daf5
Move all graphics related drivers to graphics/
2024-02-29 15:41:05 +01:00
bjorn3
0e98dc4a05
Move all audio drivers to audio/
2024-02-29 15:41:05 +01:00
bjorn3
c75b560def
Move all storage drivers to storage/
2024-02-29 15:41:05 +01:00
Jeremy Soller
c79ed01d7a
Merge branch 'driver-category-net' into 'master'
...
Move all network drivers to net/
See merge request redox-os/drivers!144
2024-02-29 13:38:00 +00:00
bjorn3
e36b0a8e94
Move all network drivers to net/
2024-02-28 21:31:26 +01:00
Jeremy Soller
fece794c9f
Merge branch 'named_network_adapters' into 'master'
...
Don't set the mac address network config from drivers
See merge request redox-os/drivers!143
2024-02-28 13:01:39 +00:00
Jeremy Soller
2f7b0ae7bb
Merge branch 'remove_mac_setcfg' into 'master'
...
Don't set the mac address network config from drivers
See merge request redox-os/drivers!142
2024-02-28 12:58:45 +00:00
bjorn3
c4bc69a4d0
Give each network adapter a unique scheme name
...
This will be necessary in the future to support multiple network
adapters in a single system.
2024-02-28 11:49:48 +01:00
bjorn3
d33d7a91e5
Don't set the mac address network config from drivers
...
The mac handle of the network scheme is now supported by all network
drivers.
2024-02-28 09:36:42 +01:00
Jeremy Soller
ad9305bf9d
Merge branch 'unify_network_drivers' into 'master'
...
Unify the scheme handling of all network drivers
See merge request redox-os/drivers!141
2024-02-28 02:27:05 +00:00
bjorn3
9262d034bd
Port virtio-netd to driver-network
2024-02-27 14:07:17 +01:00
bjorn3
de6beb8992
Implement network:mac in all remaining network drivers
2024-02-26 20:48:02 +01:00
bjorn3
3751c915fe
Unify the scheme handling of all network drivers
...
This deduplicates a fair bit of non-trivial logic and makes it easier to
keep all network drivers in sync when the interface changes.
2024-02-26 20:43:41 +01:00
Jeremy Soller
7b3e809573
Merge branch 'optimize_pcid_grants' into 'master'
...
Only do one memory:physical map per MCFG entry.
See merge request redox-os/drivers!139
2024-02-20 22:27:14 +00:00
Jacob Lorentzon
e7a6bb6c81
Only do one memory:physical map per MCFG entry.
2024-02-20 22:27:14 +00:00
Jeremy Soller
a2e9e28195
Fix build for 32-bit x86
2024-02-16 21:17:02 -07:00
Jeremy Soller
c52e17dd46
Even more fixes for 32-bit x86
2024-02-16 21:00:13 -07:00
Jeremy Soller
2c672a0568
More fixes for 32-bit x86
2024-02-16 20:58:54 -07:00
Jeremy Soller
2a4e292e1d
virtio-core: mark CommonCfg as packed
2024-02-16 20:52:55 -07:00
Jeremy Soller
de2fae8183
Do not compile MSI-X function for x86 32-bit
2024-02-16 20:52:37 -07:00
Jeremy Soller
40e2189e22
ahcid: spin for all requests
2024-02-15 16:00:52 -07:00
Jeremy Soller
74a64bf2bb
Merge branch 'fix-aarch64-build' into 'master'
...
ihdad, rtl8139d, rtl8168d, virtio-core, xhcid: Fix aarch64 build
See merge request redox-os/drivers!140
2024-02-10 17:21:04 +00:00
Enver Balalic
7439262994
ihdad, rtl8139d, rtl8168d, virtio-core, xhcid: Fix aarch64 build
2024-02-10 19:03:36 +01:00
Jeremy Soller
c432f0fddf
Merge branch 'pci_interrupts_rework2' into 'master'
...
Various improvements to the MSI-X support
See merge request redox-os/drivers!138
2024-01-26 17:27:17 +00: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
9b809312c2
Ignore MSI-X PBA in all drivers
...
It isn't used in any driver and even on Linux no driver seems to use it
at all. The only times it seems to be useful are if you were to mask an
interrupt and want to check if the interrupt fired without unmasking or
if you want to make the device itself trigger an interrupt.
2024-01-24 14:28:40 +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
Jeremy Soller
5f845538ea
Merge branch 'pci_interrupts_rework' into 'master'
...
Couple of interrupt handling cleanups and some other changes
See merge request redox-os/drivers!137
2024-01-24 13:21:24 +00:00
Jeremy Soller
21add3ed09
Merge branch 'pci_use_pci_types2' into 'master'
...
Use the pci_types crate for writing the command register and reading the status register
See merge request redox-os/drivers!136
2024-01-24 13:19:46 +00: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
c13161c4a5
Fix nvmed
2024-01-22 19:57:24 +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
Jeremy Soller
f624ed92f7
Merge branch 'pci_use_pci_types' into 'master'
...
Start using the pci_types crate
See merge request redox-os/drivers!135
2024-01-22 16:12:54 +00: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
Jeremy Soller
fda74cb359
Merge branch 'pci_cleanup2' into 'master'
...
Couple more pci cleanups
See merge request redox-os/drivers!134
2024-01-22 15:06:46 +00: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