[PATCH v7 00/23] nova-core: Add memory management support

From: Joel Fernandes

Date: Wed Feb 18 2026 - 16:22:09 EST


This series adds support for nova-core memory management, including VRAM
allocation, PRAMIN, VMM, page table walking, and BAR 1 read/writes.
These are critical for channel management, vGPU, and all memory
management uses.

These patches depend on the following preparatory patches:
https://lore.kernel.org/all/20260218205507.689429-1-joelagnelf@xxxxxxxxxx/T/#t

All patches (including the preparatory patches from the other series) can
be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/jfern/linux.git (branch nova/mm or tag: nova-mm-v7-20260218)

Earlier series of these patches:
https://lore.kernel.org/linux-fbdev/DG0MRL6T7ACW.25G3GLJMP7PN1@xxxxxxxxxx/T/#t
https://lore.kernel.org/linux-fbdev/20260210233204.790524-1-joelagnelf@xxxxxxxxxx/

Joel Fernandes (23):
nova-core: mm: Add support to use PRAMIN windows to write to VRAM
docs: gpu: nova-core: Document the PRAMIN aperture mechanism
nova-core: Add BAR1 aperture type and size constant
nova-core: gsp: Add BAR1 PDE base accessors
nova-core: mm: Add common memory management types
nova-core: mm: Add common types for all page table formats
nova-core: mm: Add MMU v2 page table types
nova-core: mm: Add MMU v3 page table types
nova-core: mm: Add unified page table entry wrapper enums
nova-core: mm: Add TLB flush support
nova-core: mm: Add GpuMm centralized memory manager
nova-core: mm: Add page table walker for MMU v2/v3
nova-core: mm: Add Virtual Memory Manager
nova-core: mm: Add virtual address range tracking to VMM
nova-core: mm: Add multi-page mapping API to VMM
nova-core: mm: Add BAR1 user interface
nova-core: gsp: Return GspStaticInfo and FbLayout from boot()
nova-core: mm: Add BAR1 memory management self-tests
nova-core: mm: Add PRAMIN aperture self-tests
nova-core: gsp: Extract usable FB region from GSP
nova-core: fb: Add usable_vram field to FbLayout
nova-core: mm: Use usable VRAM region for buddy allocator
nova-core: mm: Add BarUser to struct Gpu and create at boot

Documentation/gpu/nova/core/pramin.rst | 125 ++++++
Documentation/gpu/nova/index.rst | 1 +
drivers/gpu/nova-core/Kconfig | 10 +
drivers/gpu/nova-core/driver.rs | 9 +-
drivers/gpu/nova-core/fb.rs | 23 +-
drivers/gpu/nova-core/gpu.rs | 135 +++++-
drivers/gpu/nova-core/gsp/boot.rs | 22 +-
drivers/gpu/nova-core/gsp/commands.rs | 18 +-
drivers/gpu/nova-core/gsp/fw/commands.rs | 38 ++
drivers/gpu/nova-core/mm/bar_user.rs | 318 ++++++++++++++
drivers/gpu/nova-core/mm/mod.rs | 241 +++++++++++
drivers/gpu/nova-core/mm/pagetable/mod.rs | 479 +++++++++++++++++++++
drivers/gpu/nova-core/mm/pagetable/ver2.rs | 199 +++++++++
drivers/gpu/nova-core/mm/pagetable/ver3.rs | 302 +++++++++++++
drivers/gpu/nova-core/mm/pagetable/walk.rs | 213 +++++++++
drivers/gpu/nova-core/mm/pramin.rs | 454 +++++++++++++++++++
drivers/gpu/nova-core/mm/tlb.rs | 92 ++++
drivers/gpu/nova-core/mm/vmm.rs | 473 ++++++++++++++++++++
drivers/gpu/nova-core/nova_core.rs | 1 +
drivers/gpu/nova-core/regs.rs | 38 ++
20 files changed, 3182 insertions(+), 9 deletions(-)
create mode 100644 Documentation/gpu/nova/core/pramin.rst
create mode 100644 drivers/gpu/nova-core/mm/bar_user.rs
create mode 100644 drivers/gpu/nova-core/mm/mod.rs
create mode 100644 drivers/gpu/nova-core/mm/pagetable/mod.rs
create mode 100644 drivers/gpu/nova-core/mm/pagetable/ver2.rs
create mode 100644 drivers/gpu/nova-core/mm/pagetable/ver3.rs
create mode 100644 drivers/gpu/nova-core/mm/pagetable/walk.rs
create mode 100644 drivers/gpu/nova-core/mm/pramin.rs
create mode 100644 drivers/gpu/nova-core/mm/tlb.rs
create mode 100644 drivers/gpu/nova-core/mm/vmm.rs

--
2.34.1