[PATCH 00/12] gpu: nova-core: add PRAMIN window support
Eliot Courtney <[email protected]> Wed, 05 Aug 2026 14:44:47 +0900
| Newsgroups | gmane.linux.kernel.rust,gmane.linux.kernel,gmane.comp.video.dri.devel,gmane.linux.documentation |
|---|---|
| Message-ID | <[email protected]> |
This series adds support for the PRAMIN window, plus some documentation. Some of these patches were originally written by Joel Fernandes [1]. I have updated them with changelog notes in each patch. For example, I updated them for the newer IO machinery from Gary Guo. This series adds a Pramin structure which deals with updating the PRAMIN window and handing out typed MMIO views. The PRAMIN window is a method that lets arbitrary VRAM be written over BAR0 by configuring a 1 MiB window through GPU registers. That 1 MiB window can point anywhere in VRAM. This is useful for bootstrapping e.g. GPU side page tables. The Pramin structure hands out typed MMIO views to do writes through rather than letting callers write directly through it. A follow up series will add support for GPU side page table entry writing through this mechanism. This abstraction is important for later since we will eventually want to write the PTEs via BAR2 not PRAMIN - using a view that we grab from the Pramin structure can abstract this out. [1]: https://lore.kernel.org/all/[email protected]/ This is based on drm-rust-next. Signed-off-by: Eliot Courtney <[email protected]> --- Eliot Courtney (6): rust: io: add Region::try_subregion rust: num: reject Bounded::shr overshifts at build time rust: num: add Bounded::shr_exact gpu: nova-core: mm: Implement Alignable and Debug for VramAddress gpu: nova-core: mm: Add the memory management HAL gpu: nova-core: Add self-test assertion macros and config option Joel Fernandes (6): gpu: nova-core: mm: Add VramAddress type gpu: nova-core: mm: Add PRAMIN window registers gpu: nova-core: mm: Add support to use PRAMIN windows to write to VRAM docs: gpu: nova-core: Document the PRAMIN aperture mechanism gpu: nova-core: mm: Add GpuMm centralized memory manager gpu: nova-core: mm: Add PRAMIN aperture self-tests Documentation/gpu/nova/core/pramin.rst | 128 ++++++++++++++ Documentation/gpu/nova/index.rst | 1 + drivers/gpu/nova-core/Kconfig | 9 + drivers/gpu/nova-core/driver.rs | 3 + drivers/gpu/nova-core/gpu.rs | 30 +++- drivers/gpu/nova-core/gsp/commands.rs | 4 + drivers/gpu/nova-core/gsp/fw/commands.rs | 5 + drivers/gpu/nova-core/mm.rs | 163 ++++++++++++++++++ drivers/gpu/nova-core/mm/hal.rs | 56 ++++++ drivers/gpu/nova-core/mm/hal/gb100.rs | 35 ++++ drivers/gpu/nova-core/mm/hal/gh100.rs | 35 ++++ drivers/gpu/nova-core/mm/hal/tu102.rs | 37 ++++ drivers/gpu/nova-core/mm/pramin.rs | 285 +++++++++++++++++++++++++++++++ drivers/gpu/nova-core/mm/regs.rs | 57 +++++++ drivers/gpu/nova-core/nova_core.rs | 3 + drivers/gpu/nova-core/selftest.rs | 64 +++++++ rust/kernel/io.rs | 31 +++- rust/kernel/num/bounded.rs | 31 ++++ 18 files changed, 975 insertions(+), 2 deletions(-) --- base-commit: 44e7e7f7cffb10a93bb88e7cb59b7b8b3e2deb1c change-id: 20260804-pramin-split-950e210b6e3f Best regards, -- Eliot Courtney <[email protected]>