[Nouveau] [PATCH 0/6] drm/nouveau: Preparatory work for GV11B support

Thierry Reding thierry.reding at gmail.com
Mon Sep 16 15:17:51 UTC 2019

From: Thierry Reding <treding at nvidia.com>

Hi Ben,

these are a couple of patches that are in preparation for adding GV11B
support. The fundamental issue that these are trying to solve is that
the GV11B is the first Tegra incarnation of the GPU where the aperture
really matters. All prior generations would accept any of them.

For dGPUs we usually allocate memory in VRAM, so the default aperture
(0) is correct. However, on Tegra the buffers are allocated in system
memory, and since the GPU actually cares about the aperture, we need to
ensure that the aperture field is written in all the necessary places.

This series of patches does three things: the first two patches make it
easier to debug aperture related faults by actually reading the aperture
information from the fault information registers. The second patch is
actually only a small cleanup.

Patches 3-5 unify the aperture values. All generations have the same
definitions for these, so there's little use in separating them out into

Finally, patch 6 writes the aperture field in the places where required.
I've used these patches to test my initial support for GV11B. This is
enough to get me through the driver probe without any faults, but I have
not made much progress on secboot support yet, so I can't use the GV11B
to do anything very interesting yet.

I should also note that this is completely untested on dGPU because I
don't currently have a way of testing them. I'm working on that, but in
the meantime it'd be great if somebody could give this set a quick spin
on a dGPU to confirm that these don't break.


Thierry Reding (6):
  drm/nouveau: fault: Store aperture in fault information
  drm/nouveau: fault: Widen engine field
  drm/nouveau: Remove bogus gk20a aperture callback
  drm/nouveau: Implement nvkm_memory_aperture()
  drm/nouveau: Remove unused nvkm_vmm_func->aper() implementations
  drm/nouveau: Program aperture field where necessary

 .../drm/nouveau/include/nvkm/core/memory.h    | 28 +++++++++++++++++++
 .../drm/nouveau/include/nvkm/subdev/fault.h   |  1 +
 .../gpu/drm/nouveau/nvkm/engine/fifo/gk104.c  |  3 +-
 .../nouveau/nvkm/engine/fifo/gpfifogk104.c    |  7 +++--
 .../nouveau/nvkm/engine/fifo/gpfifogv100.c    |  5 ++--
 .../gpu/drm/nouveau/nvkm/engine/fifo/gv100.c  |  7 ++++-
 .../gpu/drm/nouveau/nvkm/subdev/bar/gf100.c   |  3 +-
 .../gpu/drm/nouveau/nvkm/subdev/fault/gv100.c |  3 +-
 drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.h |  3 --
 .../drm/nouveau/nvkm/subdev/mmu/vmmgf100.c    | 21 ++------------
 .../drm/nouveau/nvkm/subdev/mmu/vmmgk104.c    |  2 --
 .../drm/nouveau/nvkm/subdev/mmu/vmmgk20a.c    | 12 --------
 .../drm/nouveau/nvkm/subdev/mmu/vmmgm200.c    |  2 --
 .../drm/nouveau/nvkm/subdev/mmu/vmmgm20b.c    |  2 --
 .../drm/nouveau/nvkm/subdev/mmu/vmmgp100.c    |  8 ++----
 .../drm/nouveau/nvkm/subdev/mmu/vmmgp10b.c    |  1 -
 .../drm/nouveau/nvkm/subdev/mmu/vmmgv100.c    |  1 -
 .../drm/nouveau/nvkm/subdev/mmu/vmmtu102.c    |  1 -
 18 files changed, 55 insertions(+), 55 deletions(-)


More information about the Nouveau mailing list