From: Zhi Wang Date: Wed, 21 Jan 2026 20:22:11 +0000 (+0200) Subject: sample: rust: pci: add tests for config space routines X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e62e48adf76c;p=thirdparty%2Fkernel%2Flinux.git sample: rust: pci: add tests for config space routines Add tests exercising the PCI configuration space helpers. Suggested-by: Danilo Krummrich Signed-off-by: Zhi Wang Reviewed-by: Alexandre Courbot Reviewed-by: Gary Guo Link: https://patch.msgid.link/20260121202212.4438-6-zhiw@nvidia.com Signed-off-by: Danilo Krummrich --- diff --git a/samples/rust/rust_driver_pci.rs b/samples/rust/rust_driver_pci.rs index 38c949efce38..8eea79e858a2 100644 --- a/samples/rust/rust_driver_pci.rs +++ b/samples/rust/rust_driver_pci.rs @@ -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) { + 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(), }))