mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00

This commit enables basic support for Hopper GPUs, and is intended primarily as a base supporting Blackwell GPUs, which reuse most of the code added here. Advanced features such as Confidential Compute are not supported. Beyond a few miscellaneous register moves and HW class ID plumbing, the bulk of the changes implemented here are to support the GSP-RM boot sequence used on Hopper/Blackwell GPUs, as well as a new page table layout. There should be no changes here that impact prior GPUs. Signed-off-by: Ben Skeggs <bskeggs@nvidia.com> Co-developed-by: Timur Tabi <ttabi@nvidia.com> Signed-off-by: Timur Tabi <ttabi@nvidia.com> Reviewed-by: Dave Airlie <airlied@redhat.com> Reviewed-by: Timur Tabi <ttabi@nvidia.com> Tested-by: Timur Tabi <ttabi@nvidia.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
25 lines
631 B
C
25 lines
631 B
C
/* SPDX-License-Identifier: MIT
|
|
*
|
|
* Copyright (c) 2025, NVIDIA CORPORATION. All rights reserved.
|
|
*/
|
|
#include "mem.h"
|
|
#include "vmm.h"
|
|
|
|
#include <nvif/class.h>
|
|
|
|
static const struct nvkm_mmu_func
|
|
gh100_mmu = {
|
|
.dma_bits = 52,
|
|
.mmu = {{ -1, -1, NVIF_CLASS_MMU_GF100}},
|
|
.mem = {{ -1, 0, NVIF_CLASS_MEM_GF100}, gf100_mem_new, gf100_mem_map },
|
|
.vmm = {{ -1, 0, NVIF_CLASS_VMM_GP100}, gh100_vmm_new },
|
|
.kind = tu102_mmu_kind,
|
|
.kind_sys = true,
|
|
};
|
|
|
|
int
|
|
gh100_mmu_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
|
|
struct nvkm_mmu **pmmu)
|
|
{
|
|
return r535_mmu_new(&gh100_mmu, device, type, inst, pmmu);
|
|
}
|