sample: rust: pci: add tests for config space routines

Add tests exercising the PCI configuration space helpers.

Suggested-by: Danilo Krummrich <dakr@kernel.org>
Signed-off-by: Zhi Wang <zhiw@nvidia.com>
Reviewed-by: Alexandre Courbot <acourbot@nvidia.com>
Reviewed-by: Gary Guo <gary@garyguo.net>
Link: https://patch.msgid.link/20260121202212.4438-6-zhiw@nvidia.com
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
This commit is contained in:
Zhi Wang 2026-01-21 22:22:11 +02:00 committed by Danilo Krummrich
parent 4dc0bacb1d
commit e62e48adf7

View file

@ -5,6 +5,7 @@
//! To make this driver probe, QEMU must be run with `-device pci-testdev`.
use kernel::{
device::Bound,
device::Core,
devres::Devres,
io::Io,
@ -65,6 +66,30 @@ impl SampleDriver {
Ok(bar.read32(Regs::COUNT))
}
fn config_space(pdev: &pci::Device<Bound>) {
let config = pdev.config_space();
// TODO: use the register!() macro for defining PCI configuration space registers once it
// has been move out of nova-core.
dev_info!(
pdev.as_ref(),
"pci-testdev config space read8 rev ID: {:x}\n",
config.read8(0x8)
);
dev_info!(
pdev.as_ref(),
"pci-testdev config space read16 vendor ID: {:x}\n",
config.read16(0)
);
dev_info!(
pdev.as_ref(),
"pci-testdev config space read32 BAR 0: {:x}\n",
config.read32(0x10)
);
}
}
impl pci::Driver for SampleDriver {
@ -96,6 +121,7 @@ impl pci::Driver for SampleDriver {
"pci-testdev data-match count: {}\n",
Self::testdev(info, bar)?
);
Self::config_space(pdev);
},
pdev: pdev.into(),
}))