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
7dbf22331b
Share msix config validation code
2024-01-24 14:28:40 +01:00
bjorn3
77b97bb2ed
Introduce PciBar::physmap_mem helper
2024-01-23 12:02:40 +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
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
5192816de7
Introduce expect_port and expect_mem helpers
2024-01-21 21:12:24 +01:00
bjorn3
2b5ed69a06
Use PciAddress in a couple more places
2024-01-19 12:40:54 +01:00
4lDO2
0d99333c3f
Remove PhysBox.
2023-12-12 12:03:03 +01:00
4lDO2
a6fee75f15
Phase out / in scheme names.
2023-11-09 14:39:57 +01:00
Jeremy Soller
f228483f1f
ahcid, nvmed: support MMIO on 32-bit systems
2023-09-09 12:15:07 -06:00
Jeremy Soller
61e9512468
Update redox_syscall to 0.4
2023-09-07 20:49:37 -06:00
4lDO2
d9d8d06d33
Use common::Dma in nvmed.
2023-07-18 12:45:03 +02:00
4lDO2
6e94a9e236
Remove physmap for disk drivers.
2023-07-18 11:01:16 +02:00
Jeremy Soller
5256a9af47
nvmed: enable async feature
2023-07-17 19:51:53 -06:00
4lDO2
a5a3f3341f
Remove all usages of physunmap.
2023-06-11 11:33:27 +02:00
Jeremy Soller
b6321aa764
nvme: logging adjustments
2023-02-15 19:34:05 -07:00
Jeremy Soller
625064004d
Update for new Rust nightly
2023-02-11 14:37:22 -07:00
Jeremy Soller
ee03583b58
Prevent drives from being opened more than once
2023-01-11 21:34:33 -07:00
Jeremy Soller
d42f626808
nvmed: Yield instead of spin when waiting for submission queue item
2022-11-27 09:25:03 -07:00
Jeremy Soller
ae66182c4e
Name disk driver log files based on scheme name
2022-09-09 08:51:02 -06:00
Jeremy Soller
3ed83c74cf
Workaround for real hardware prp issue
2022-09-07 12:01:15 -06:00
Jeremy Soller
fe13ea390a
Add feature for nvmed to not use reactor thread
2022-08-31 10:53:21 -06:00
Jeremy Soller
0e85c01ea3
Implement 64-bit BARs
2022-08-31 08:46:53 -06:00
Jeremy Soller
efab53910e
Return error on nvme completion status
2022-08-30 11:59:10 -06:00
Jeremy Soller
55526d6ab0
Do not set SGL flag, we only use PRP
2022-08-30 11:51:00 -06:00
Jeremy Soller
3379a64258
Fix for last nvmed commit
2022-08-30 10:15:26 -06:00
Jeremy Soller
50338d9b24
Remove unnecessary event queue from nvmed
2022-08-30 09:56:12 -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
00de428d6b
Workarounds for x86 32-bit
2022-07-26 17:20:34 -06:00
Jeremy Soller
da8ecef8a7
Workarounds for aarch64 support
2022-07-26 16:11:45 -06:00
Jeremy Soller
860821c150
Support compilation on more architectures
2022-07-26 16:01:54 -06:00
4lDO2
07f10fb4d1
Update redox_syscall to v0.2.12
2022-03-24 16:06:00 +01:00
Jeremy Soller
88a6eb17e9
Make nvmed less async, reduces hangs
2022-02-11 14:26:21 -07:00
Jeremy Soller
a1d8b81428
Increase NVME debug level
2022-02-11 11:00:50 -07:00
Jeremy Soller
544f1cbebc
nvmed,xhcid: print BAR number
2022-02-11 10:44:38 -07:00
Jeremy Soller
b9d6ca7db5
nvmed: panic if BAR is 0
2022-02-11 10:41:56 -07:00
4lDO2
7a2b3d7656
Update dependencies.
2021-06-17 18:18:27 +02:00
Jeremy Soller
be101621cc
Update to newer syscall
2020-08-02 15:25:03 -06:00
4lDO2
6bd4bb814f
Support xHCs that only support 32-bit physical addresses.
2020-06-18 19:17:20 +00:00
4lDO2
07b1fe79fa
Cleanup, and remove trace log writes for nvmed.
2020-05-03 16:33:56 +02:00
4lDO2
938cce8c8c
make qemu_nvme works!
...
only cleanup left...
2020-05-03 16:02:23 +02:00
4lDO2
3558397859
ASYNC COMMAND SUBMISSION WORKS (partially).
2020-05-03 15:47:09 +02:00
4lDO2
cea6ce7d7a
Move the setrens to a later position, in nvmed.
2020-05-02 00:05:04 +02:00
4lDO2
2db3bf4689
Read real block sizes.
2020-05-01 20:00:24 +02:00
4lDO2
1936f05030
NVME WORKS WITH IRQs
2020-05-01 14:14:47 +02:00
4lDO2
64e9eea9b0
Implement asynchronous command __submission__.
...
Note that by writing submission, I'm referring to blocking until a
submission queue has more entries available. The command completion
handling is already async.
2020-05-01 13:14:31 +02:00