535.43.02

This commit is contained in:
Andy Ritger
2023-05-30 10:11:36 -07:00
parent 6dd092ddb7
commit eb5c7665a1
1403 changed files with 295367 additions and 86235 deletions

View File

@@ -285,10 +285,13 @@ static NvBool GetSpaVersion(
{ NV2080_CTRL_GR_INFO_SM_VERSION_8_6, { 8,6 } },
{ NV2080_CTRL_GR_INFO_SM_VERSION_8_7, { 8,6 } },
{ NV2080_CTRL_GR_INFO_SM_VERSION_8_8, { 8,6 } },
/* Ada */
{ NV2080_CTRL_GR_INFO_SM_VERSION_8_9, { 8,9 } },
/* Hopper */
{ NV2080_CTRL_GR_INFO_SM_VERSION_9_0, { 9,0 } },
};
const NvU32 smVersion = GetSmVersion(pPushDevice);

View File

@@ -131,6 +131,7 @@ typedef struct _NvPushAllocDeviceParams {
NvU32 numClasses;
const NvU32 *supportedClasses;
NvPushConfidentialComputeMode confidentialComputeMode;
} NvPushAllocDeviceParams;
NvBool nvPushAllocDevice(
@@ -173,6 +174,13 @@ typedef struct _NvPushAllocChannelParams {
*/
NvBool ignoreChannelErrors;
/*
* This flag specifies if channel is intended to be used for
* encryption/decryption of data between SYSMEM <-> VIDMEM. Only CE
* & SEC2 Channels are capable of handling encrypted content.
*/
NvBool secureChannel;
/*
* DIFR stands for Display Idle Frame Refresh in which a CE is used to
* prefetch framebuffer pixels into the GPU's L2 cache. The prefetch

View File

@@ -69,6 +69,17 @@ typedef union _NvPushChannelUnion
#endif
} NvPushChannelUnion;
typedef enum _NvPushConfidentialComputeMode {
/* Confidential computing is not in use. */
NV_PUSH_CONFIDENTIAL_COMPUTE_MODE_NONE,
/*
* The confidential compute mode of operation is Hopper Confidential
* Compute (HCC).
*/
NV_PUSH_CONFIDENTIAL_COMPUTE_MODE_HCC,
} NvPushConfidentialComputeMode;
typedef struct _NvPushChannelRec NvPushChannelRec;
typedef struct _NvPushChannelRec *NvPushChannelPtr;
@@ -121,6 +132,8 @@ typedef struct _NvPushDeviceRec {
NvPushHal hal;
const struct _NvPushImports *pImports;
/* Provided by the host driver */
NvPushConfidentialComputeMode confidentialComputeMode;
} NvPushDeviceRec, *NvPushDevicePtr;

View File

@@ -412,6 +412,9 @@ static NvBool AllocChannelObject(
}
params.flags = 0;
if (pParams->secureChannel) {
params.flags |= DRF_DEF(OS04, _FLAGS, _CC_SECURE, _TRUE);
}
if (pParams->difrPrefetch) {
params.flags |= DRF_DEF(OS04,
_FLAGS,
@@ -1482,6 +1485,8 @@ NvBool nvPushAllocDevice(
pDevice->numClasses = pParams->numClasses;
pDevice->supportedClasses = pParams->supportedClasses;
pDevice->confidentialComputeMode = pParams->confidentialComputeMode;
for (sd = 0; sd < pParams->numSubDevices; sd++) {
pDevice->subDevice[sd].handle = pParams->subDevice[sd].handle;
pDevice->subDevice[sd].deviceHandle = pParams->subDevice[sd].deviceHandle;

View File

@@ -1014,7 +1014,7 @@ static void KeplerReleaseTimelineSemaphore(
// Must be done before submitting the semaphore release to ensure the maximum
// known-submitted value is never less than the semaphore's current value.
NvTimeSemFermiSetMaxSubmitted(report, val);
NvTimeSemFermiSetMaxSubmittedVal(&report->timer, val);
nvPushMethod(p, 0, NVA16F_SEMAPHOREA, 4);
nvPushSetMethodDataU64(p, gpuAddress); // NVA16F_SEMAPHOREB
@@ -1106,13 +1106,6 @@ NvBool __nvPushGetHal(
pHal->caps.extendedBase = TRUE;
// otherwise backwards compatible with the Volta DMA HAL
// fall through
#if defined(__GNUC__) && __GNUC__ >= 7
// GCC apparently doesn't think the comment above is sufficient to
// quiet -Wimplicit-fallthrough, when there are preprocessor
// directives between it and the next case.
// This attribute is only supported on gcc 7 and later.
__attribute__ ((fallthrough));
#endif
case AMPERE_CHANNEL_GPFIFO_A:
// backwards compatible with the Volta DMA HAL
// fall through