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/[email protected]/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/[email protected]/T/#t https://lore.kernel.org/linux-fbdev/[email protected]/ 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
