mirror of
https://github.com/torvalds/linux.git
synced 2026-04-22 00:33:58 -04: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>
29 lines
751 B
C
29 lines
751 B
C
/* SPDX-License-Identifier: MIT
|
|
*
|
|
* Copyright (c) 2025, NVIDIA CORPORATION. All rights reserved.
|
|
*/
|
|
#include "priv.h"
|
|
|
|
#include <nvhw/ref/gh100/pri_nv_xal_ep.h>
|
|
|
|
static void
|
|
gh100_instmem_set_bar0_window_addr(struct nvkm_device *device, u64 addr)
|
|
{
|
|
nvkm_wr32(device, NV_XAL_EP_BAR0_WINDOW, addr >> NV_XAL_EP_BAR0_WINDOW_BASE_SHIFT);
|
|
}
|
|
|
|
static const struct nvkm_instmem_func
|
|
gh100_instmem = {
|
|
.fini = nv50_instmem_fini,
|
|
.memory_new = nv50_instobj_new,
|
|
.memory_wrap = nv50_instobj_wrap,
|
|
.set_bar0_window_addr = gh100_instmem_set_bar0_window_addr,
|
|
};
|
|
|
|
int
|
|
gh100_instmem_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
|
|
struct nvkm_instmem **pimem)
|
|
{
|
|
return r535_instmem_new(&gh100_instmem, device, type, inst, pimem);
|
|
}
|