[PATCH 0/5] gpu: nova-core: leverage FromBytes for VBIOS structures
From: Alexandre Courbot
Date: Tue Oct 28 2025 - 11:07:44 EST
This series spawns from the discussion in [1], where it was noticed that
several structures of the VBIOS could just be read using `FromBytes`
instead of being built manually.
While implementing it, I also noticed that we were repeating the
following pattern quite a bit in the code:
slice
.get(..size_of::<TargetType>())
.and_then(TargetType::from_bytes_copy)
... which begs for dedicated methods doing this in the `FromBytes`
trait. This is what the first patch does, taking inspiration from a
similar feature in the `zerocopy` crate.
The remaining patches leverage these new methods to simplify the VBIOS
code a bit, accordingly.
If patch 1 is deemed a valid idea, I hope we can merge it into the DRM
tree along with the rest of this series.
The base for this work is `drm-rust-next`, with [2] applied.
[1] https://lore.kernel.org/rust-for-linux/DDTRW1P2I4PB.10ZTZDY95JBC5@xxxxxxxxxx/
[2] https://lore.kernel.org/rust-for-linux/20251026-nova-as-v1-1-60c78726462d@xxxxxxxxxx/
Signed-off-by: Alexandre Courbot <acourbot@xxxxxxxxxx>
---
Alexandre Courbot (5):
rust: transmute: add `from_bytes_prefix` family of methods
gpu: nova-core: vbios: use FromBytes for PmuLookupTable header
gpu: nova-core: vbios: use FromBytes for PcirStruct
gpu: nova-core: vbios: use FromBytes for BitHeader
gpu: nova-core: vbios: use FromBytes for NpdeStruct
drivers/gpu/nova-core/vbios.rs | 137 ++++++++++++++++-------------------------
rust/kernel/transmute.rs | 60 ++++++++++++++++++
2 files changed, 113 insertions(+), 84 deletions(-)
---
base-commit: 639291d7c30cec5cf0d9a79371021c2e4404cfc9
change-id: 20251028-nova-vbios-frombytes-eb0cbb6a2f11
Best regards,
--
Alexandre Courbot <acourbot@xxxxxxxxxx>