560.28.03

This commit is contained in:
Gaurav Juvekar
2024-07-19 15:45:15 -07:00
parent 5fdf5032fb
commit 448d5cc656
859 changed files with 165424 additions and 91129 deletions

View File

@@ -196,7 +196,7 @@
else \
{ \
NVSWITCH_LOG_NONFATAL_DATA(device, _HW, _logenum, link, \
0, NV_FALSE, &data); \
0, NV_FALSE, &_data); \
} \
} while(0)

View File

@@ -509,7 +509,7 @@ typedef struct
NV_NPORT_PORTSTAT_LS10(_block, _reg, _idx, ), _data); \
}
#define NVSWITCH_DEFERRED_LINK_STATE_CHECK_INTERVAL_NS ((device->bModeContinuousALI ? 12 : 30) *\
#define NVSWITCH_DEFERRED_LINK_STATE_CHECK_INTERVAL_NS ((device->bModeContinuousALI ? 15 : 30) *\
NVSWITCH_INTERVAL_1SEC_IN_NS)
#define NVSWITCH_DEFERRED_FAULT_UP_CHECK_INTERVAL_NS (12 * NVSWITCH_INTERVAL_1MSEC_IN_NS)

View File

@@ -188,9 +188,9 @@ const NvU32 soe_ucode_data_lr10_dbg[] = {
0xa995039a, 0x0190b31f, 0x3d7cb29d, 0x133f3ed4, 0x10c93f00, 0xcc9001dd, 0xff9fc401, 0x23009033,
0x00310080, 0x80e80f7c, 0x3c003118, 0xbe66980f, 0xf00f08f4, 0xe97cff94, 0xf5b96690, 0x26ff6708,
0xd008f4d6, 0xe4ffafc4, 0xb6fffff9, 0x49fa0894, 0x01339004, 0x0cf52566, 0x07f8ff0d, 0x81fb3ab2,
0xc53252f9, 0xb332a4b2, 0x0800a0b3, 0x0c00b433, 0xff0a02f8, 0x0013ae3e, 0x41b2c43d, 0x0011037e,
0x043d24bd, 0x0013a73e, 0x00101a3f, 0x01119001, 0x1700a033, 0x3c324bb2, 0x387e5d32, 0x2abc0012,
0x00a6b020, 0x260a1ef4, 0xdf08f403, 0x51fb2ab2, 0x0000ea7e, 0x4a7e2f0b, 0x00f80018, 0x0000ea7e,
0xc53252f9, 0xb332a4b2, 0x0800a0b3, 0x0c00b433, 0xff0a02f8, 0x0013ae3e, 0x42b2c43d, 0x0011037e,
0x14bd043d, 0x0013a73e, 0x00102a3f, 0x01229001, 0x1700a033, 0x3c324bb2, 0x387e5d32, 0x1abc0012,
0x00a6b010, 0x260a1ef4, 0xdf08f403, 0x51fb1ab2, 0x0000ea7e, 0x4a7e2f0b, 0x00f80018, 0x0000ea7e,
0x4a7e2f0b, 0x00f80018, 0xa93f22f9, 0xd0b2c1b2, 0x3204c0b4, 0xff94f0ed, 0x08f4b9a6, 0x9402f805,
0xb99402bf, 0x02ae9804, 0x5200c0b3, 0x3cf0f9bc, 0xa998f9ed, 0x18203402, 0x0e1e0dcc, 0x909fbc01,
0x98019235, 0xebbb02a9, 0x909fbc04, 0x980191b5, 0x9fbc02a9, 0x029db590, 0xbc02a998, 0x9cb5909f,
@@ -2269,8 +2269,8 @@ const NvU32 soe_ucode_data_lr10_dbg[] = {
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x69e9060c, 0xe6ca2d91, 0xac20edf2, 0xeafeafcc, 0x294f2cc2, 0x883a9d68, 0x493e2990, 0xc8e27d59,
0x30867660, 0xbc4af25f, 0xbc09e1ed, 0xab87e0fc, 0x8fc5fac6, 0xe1f366be, 0x1ec159bf, 0x352ff984,
0x69e9060c, 0xe6ca2d91, 0xac20edf2, 0xeafeafcc, 0x34352e3e, 0x16b9514e, 0xb0b75ac2, 0xb2eff27b,
0x30867660, 0xbc4af25f, 0xbc09e1ed, 0xab87e0fc, 0xaed46664, 0x0e67518e, 0x2e509632, 0x911f4d66,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,

View File

@@ -188,9 +188,9 @@ const NvU32 soe_ucode_data_lr10_prd[] = {
0xa995039a, 0x0190b31f, 0x3d7cb29d, 0x133f3ed4, 0x10c93f00, 0xcc9001dd, 0xff9fc401, 0x23009033,
0x00310080, 0x80e80f7c, 0x3c003118, 0xbe66980f, 0xf00f08f4, 0xe97cff94, 0xf5b96690, 0x26ff6708,
0xd008f4d6, 0xe4ffafc4, 0xb6fffff9, 0x49fa0894, 0x01339004, 0x0cf52566, 0x07f8ff0d, 0x81fb3ab2,
0xc53252f9, 0xb332a4b2, 0x0800a0b3, 0x0c00b433, 0xff0a02f8, 0x0013ae3e, 0x41b2c43d, 0x0011037e,
0x043d24bd, 0x0013a73e, 0x00101a3f, 0x01119001, 0x1700a033, 0x3c324bb2, 0x387e5d32, 0x2abc0012,
0x00a6b020, 0x260a1ef4, 0xdf08f403, 0x51fb2ab2, 0x0000ea7e, 0x4a7e2f0b, 0x00f80018, 0x0000ea7e,
0xc53252f9, 0xb332a4b2, 0x0800a0b3, 0x0c00b433, 0xff0a02f8, 0x0013ae3e, 0x42b2c43d, 0x0011037e,
0x14bd043d, 0x0013a73e, 0x00102a3f, 0x01229001, 0x1700a033, 0x3c324bb2, 0x387e5d32, 0x1abc0012,
0x00a6b010, 0x260a1ef4, 0xdf08f403, 0x51fb1ab2, 0x0000ea7e, 0x4a7e2f0b, 0x00f80018, 0x0000ea7e,
0x4a7e2f0b, 0x00f80018, 0xa93f22f9, 0xd0b2c1b2, 0x3204c0b4, 0xff94f0ed, 0x08f4b9a6, 0x9402f805,
0xb99402bf, 0x02ae9804, 0x5200c0b3, 0x3cf0f9bc, 0xa998f9ed, 0x18203402, 0x0e1e0dcc, 0x909fbc01,
0x98019235, 0xebbb02a9, 0x909fbc04, 0x980191b5, 0x9fbc02a9, 0x029db590, 0xbc02a998, 0x9cb5909f,
@@ -2269,8 +2269,8 @@ const NvU32 soe_ucode_data_lr10_prd[] = {
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x69e9060c, 0xe6ca2d91, 0xac20edf2, 0xeafeafcc, 0x294f2cc2, 0x883a9d68, 0x493e2990, 0xc8e27d59,
0x30867660, 0xbc4af25f, 0xbc09e1ed, 0xab87e0fc, 0x8fc5fac6, 0xe1f366be, 0x1ec159bf, 0x352ff984,
0x69e9060c, 0xe6ca2d91, 0xac20edf2, 0xeafeafcc, 0x34352e3e, 0x16b9514e, 0xb0b75ac2, 0xb2eff27b,
0x30867660, 0xbc4af25f, 0xbc09e1ed, 0xab87e0fc, 0xaed46664, 0x0e67518e, 0x2e509632, 0x911f4d66,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,

View File

@@ -2288,6 +2288,13 @@ nvswitch_ctrl_get_routing_id_lr10
NvU32 gsize;
NvU32 ram_size;
if (nvswitch_is_tnvl_mode_locked(device))
{
NVSWITCH_PRINT(device, ERROR,
"%s(%d): Security locked\n", __FUNCTION__, __LINE__);
return -NVL_ERR_INSUFFICIENT_PERMISSIONS;
}
if (!NVSWITCH_IS_LINK_ENG_VALID_LR10(device, NPORT, params->portNum))
{
NVSWITCH_PRINT(device, ERROR,
@@ -2421,6 +2428,13 @@ nvswitch_ctrl_set_routing_id_valid_lr10
NvU32 ram_size;
NvlStatus retval;
if (nvswitch_is_tnvl_mode_locked(device))
{
NVSWITCH_PRINT(device, ERROR,
"%s(%d): Security locked\n", __FUNCTION__, __LINE__);
return -NVL_ERR_INSUFFICIENT_PERMISSIONS;
}
if (!NVSWITCH_IS_LINK_ENG_VALID_LR10(device, NPORT, p->portNum))
{
NVSWITCH_PRINT(device, ERROR,
@@ -2504,6 +2518,13 @@ nvswitch_ctrl_set_routing_id_lr10
NvlStatus retval = NVL_SUCCESS;
NvU32 ram_size;
if (nvswitch_is_tnvl_mode_locked(device))
{
NVSWITCH_PRINT(device, ERROR,
"%s(%d): Security locked\n", __FUNCTION__, __LINE__);
return -NVL_ERR_INSUFFICIENT_PERMISSIONS;
}
if (!NVSWITCH_IS_LINK_ENG_VALID_LR10(device, NPORT, p->portNum))
{
NVSWITCH_PRINT(device, ERROR,
@@ -2681,6 +2702,13 @@ nvswitch_ctrl_set_routing_lan_lr10
NvlStatus retval = NVL_SUCCESS;
NvU32 ram_size;
if (nvswitch_is_tnvl_mode_locked(device))
{
NVSWITCH_PRINT(device, ERROR,
"%s(%d): Security locked\n", __FUNCTION__, __LINE__);
return -NVL_ERR_INSUFFICIENT_PERMISSIONS;
}
if (!NVSWITCH_IS_LINK_ENG_VALID_LR10(device, NPORT, p->portNum))
{
NVSWITCH_PRINT(device, ERROR,
@@ -2776,6 +2804,13 @@ nvswitch_ctrl_get_routing_lan_lr10
NvU32 rlan_count;
NvU32 ram_size;
if (nvswitch_is_tnvl_mode_locked(device))
{
NVSWITCH_PRINT(device, ERROR,
"%s(%d): Security locked\n", __FUNCTION__, __LINE__);
return -NVL_ERR_INSUFFICIENT_PERMISSIONS;
}
if (!NVSWITCH_IS_LINK_ENG_VALID_LR10(device, NPORT, params->portNum))
{
NVSWITCH_PRINT(device, ERROR,
@@ -2963,6 +2998,13 @@ nvswitch_ctrl_set_routing_lan_valid_lr10
NvU32 ram_size;
NvlStatus retval;
if (nvswitch_is_tnvl_mode_locked(device))
{
NVSWITCH_PRINT(device, ERROR,
"%s(%d): Security locked\n", __FUNCTION__, __LINE__);
return -NVL_ERR_INSUFFICIENT_PERMISSIONS;
}
if (!NVSWITCH_IS_LINK_ENG_VALID_LR10(device, NPORT, p->portNum))
{
NVSWITCH_PRINT(device, ERROR,
@@ -4148,7 +4190,9 @@ nvswitch_ctrl_get_nvlink_status_lr10
}
else
{
nvlink_lib_discover_and_get_remote_conn_info(link, &conn_info, NVLINK_STATE_CHANGE_SYNC);
nvlink_lib_discover_and_get_remote_conn_info(link, &conn_info,
NVLINK_STATE_CHANGE_SYNC,
NV_FALSE);
}
// Set NVLINK per-link caps

View File

@@ -5997,9 +5997,9 @@ _nvswitch_deferred_link_errors_check_ls10
// It is assumed that this callback runs long before a link could have been
// retrained and hit errors again.
//
_nvswitch_emit_deferred_link_errors_ls10(device, nvlipt_instance, link);
_nvswitch_clear_deferred_link_errors_ls10(device, link);
}
_nvswitch_emit_deferred_link_errors_ls10(device, nvlipt_instance, link);
_nvswitch_clear_deferred_link_errors_ls10(device, link);
}
static void
_nvswitch_create_deferred_link_errors_task_ls10
@@ -6739,6 +6739,9 @@ _nvswitch_service_nvlipt_lnk_status_ls10
//
_nvswitch_clear_deferred_link_errors_ls10(device, link_id);
chip_device->deferredLinkErrors[link_id].state.lastLinkUpTime = nvswitch_os_get_platform_time();
// Reset NV_NPORT_SCRATCH_WARM_PORT_RESET_REQUIRED to 0x0
NVSWITCH_LINK_WR32(device, link_id, NPORT, _NPORT, _SCRATCH_WARM, 0);
}
else if (mode == NVLINK_LINKSTATE_FAULT)
{

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: Copyright (c) 2020-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
* SPDX-FileCopyrightText: Copyright (c) 2020-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
* SPDX-License-Identifier: MIT
*
* Permission is hereby granted, free of charge, to any person obtaining a
@@ -387,6 +387,13 @@ nvswitch_set_ganged_link_table_ls10
{
NvU32 i;
if (nvswitch_is_tnvl_mode_locked(device))
{
NVSWITCH_PRINT(device, ERROR,
"%s(%d): Security locked\n", __FUNCTION__, __LINE__);
return;
}
NVSWITCH_NPORT_MC_BCAST_WR32_LS10(device, _ROUTE, _REG_TABLE_ADDRESS,
DRF_NUM(_ROUTE, _REG_TABLE_ADDRESS, _INDEX, firstIndex) |
DRF_NUM(_ROUTE, _REG_TABLE_ADDRESS, _AUTO_INCR, 1));
@@ -712,6 +719,13 @@ nvswitch_ctrl_get_counters_ls10
{
if (minion_enabled)
{
if (nvswitch_is_tnvl_mode_locked(device))
{
NVSWITCH_PRINT(device, ERROR,
"%s(%d): Security locked\n", __FUNCTION__, __LINE__);
return -NVL_ERR_INSUFFICIENT_PERMISSIONS;
}
status = nvswitch_minion_get_dl_status(device, link->linkNumber,
NV_NVLSTAT_RX01, 0, &data);
if (status != NVL_SUCCESS)
@@ -734,6 +748,13 @@ nvswitch_ctrl_get_counters_ls10
{
if (minion_enabled)
{
if (nvswitch_is_tnvl_mode_locked(device))
{
NVSWITCH_PRINT(device, ERROR,
"%s(%d): Security locked\n", __FUNCTION__, __LINE__);
return -NVL_ERR_INSUFFICIENT_PERMISSIONS;
}
status = nvswitch_minion_get_dl_status(device, link->linkNumber,
NV_NVLSTAT_RX02, 0, &data);
if (status != NVL_SUCCESS)
@@ -764,6 +785,13 @@ nvswitch_ctrl_get_counters_ls10
if (minion_enabled)
{
if (nvswitch_is_tnvl_mode_locked(device))
{
NVSWITCH_PRINT(device, ERROR,
"%s(%d): Security locked\n", __FUNCTION__, __LINE__);
return -NVL_ERR_INSUFFICIENT_PERMISSIONS;
}
status = nvswitch_minion_get_dl_status(device, link->linkNumber,
NV_NVLSTAT_DB01, 0, &data);
if (status != NVL_SUCCESS)
@@ -799,6 +827,13 @@ nvswitch_ctrl_get_counters_ls10
{
if (minion_enabled)
{
if (nvswitch_is_tnvl_mode_locked(device))
{
NVSWITCH_PRINT(device, ERROR,
"%s(%d): Security locked\n", __FUNCTION__, __LINE__);
return -NVL_ERR_INSUFFICIENT_PERMISSIONS;
}
status = nvswitch_minion_get_dl_status(device, link->linkNumber,
NV_NVLSTAT_TX09, 0, &data);
if (status != NVL_SUCCESS)
@@ -821,6 +856,13 @@ nvswitch_ctrl_get_counters_ls10
{
if (minion_enabled)
{
if (nvswitch_is_tnvl_mode_locked(device))
{
NVSWITCH_PRINT(device, ERROR,
"%s(%d): Security locked\n", __FUNCTION__, __LINE__);
return -NVL_ERR_INSUFFICIENT_PERMISSIONS;
}
status = nvswitch_minion_get_dl_status(device, link->linkNumber,
NV_NVLSTAT_LNK1, 0, &data);
if (status != NVL_SUCCESS)
@@ -843,6 +885,13 @@ nvswitch_ctrl_get_counters_ls10
{
if (minion_enabled)
{
if (nvswitch_is_tnvl_mode_locked(device))
{
NVSWITCH_PRINT(device, ERROR,
"%s(%d): Security locked\n", __FUNCTION__, __LINE__);
return -NVL_ERR_INSUFFICIENT_PERMISSIONS;
}
status = nvswitch_minion_get_dl_status(device, link->linkNumber,
NV_NVLSTAT_RX00, 0, &data);
if (status != NVL_SUCCESS)
@@ -866,6 +915,13 @@ nvswitch_ctrl_get_counters_ls10
{
if (minion_enabled)
{
if (nvswitch_is_tnvl_mode_locked(device))
{
NVSWITCH_PRINT(device, ERROR,
"%s(%d): Security locked\n", __FUNCTION__, __LINE__);
return -NVL_ERR_INSUFFICIENT_PERMISSIONS;
}
status = nvswitch_minion_get_dl_status(device, link->linkNumber,
NV_NVLSTAT_DB11, 0, &data);
if (status != NVL_SUCCESS)
@@ -1669,8 +1725,8 @@ _nvswitch_reset_and_drain_links_ls10
continue;
}
// Initialize select scratch registers to 0x0
device->hal.nvswitch_init_scratch(device);
// Reset NV_NPORT_SCRATCH_WARM_PORT_RESET_REQUIRED to 0x0
NVSWITCH_LINK_WR32(device, link, NPORT, _NPORT, _SCRATCH_WARM, 0);
//
// Step 9.0: Launch ALI training to re-initialize and train the links
@@ -1751,6 +1807,13 @@ nvswitch_reset_and_drain_links_ls10
}
FOR_EACH_INDEX_IN_MASK_END;
if (nvswitch_is_tnvl_mode_locked(device))
{
NVSWITCH_PRINT(device, ERROR,
"%s(%d): Security locked\n", __FUNCTION__, __LINE__);
return -NVL_ERR_INSUFFICIENT_PERMISSIONS;
}
status = _nvswitch_reset_and_drain_links_ls10(device, link_mask, bForced);
if (status != NVL_SUCCESS)
{
@@ -1788,6 +1851,13 @@ nvswitch_set_nport_port_config_ls10
return -NVL_BAD_ARGS;
}
if (nvswitch_is_tnvl_mode_locked(device))
{
NVSWITCH_PRINT(device, ERROR,
"%s(%d): Security locked\n", __FUNCTION__, __LINE__);
return -NVL_ERR_INSUFFICIENT_PERMISSIONS;
}
val = NVSWITCH_LINK_RD32(device, p->portNum, NPORT, _NPORT, _CTRL);
switch (p->type)
{
@@ -2035,6 +2105,13 @@ nvswitch_ctrl_get_internal_latency_ls10
return -NVL_BAD_ARGS;
}
if (nvswitch_is_tnvl_mode_locked(device))
{
NVSWITCH_PRINT(device, ERROR,
"%s(%d): Security locked\n", __FUNCTION__, __LINE__);
return -NVL_ERR_INSUFFICIENT_PERMISSIONS;
}
nvswitch_os_memset(pLatency, 0, sizeof(*pLatency));
pLatency->vc_selector = vc_selector;
@@ -2095,6 +2172,13 @@ nvswitch_ctrl_set_latency_bins_ls10
const NvU32 min_threshold = 10; // Must be > zero to avoid div by zero
const NvU32 max_threshold = 10000;
if (nvswitch_is_tnvl_mode_locked(device))
{
NVSWITCH_PRINT(device, ERROR,
"%s(%d): Security locked\n", __FUNCTION__, __LINE__);
return -NVL_ERR_INSUFFICIENT_PERMISSIONS;
}
// Quick input validation and ns to register value conversion
for (vc_selector = 0; vc_selector < NVSWITCH_NUM_VCS_LS10; vc_selector++)
{
@@ -2724,6 +2808,13 @@ nvswitch_ctrl_register_write_ls10
NvU32 base;
NvlStatus retval = NVL_SUCCESS;
if (nvswitch_is_tnvl_mode_locked(device))
{
NVSWITCH_PRINT(device, ERROR,
"%s(%d): Security locked\n", __FUNCTION__, __LINE__);
return -NVL_ERR_INSUFFICIENT_PERMISSIONS;
}
retval = _nvswitch_get_engine_base_ls10(device, p->engine, p->instance, p->bcast, &base);
if (retval != NVL_SUCCESS)
{
@@ -2756,6 +2847,13 @@ nvswitch_get_nvlink_ecc_errors_ls10
NvlStatus status;
NvBool bLaneReversed;
if (nvswitch_is_tnvl_mode_locked(device))
{
NVSWITCH_PRINT(device, ERROR,
"%s(%d): Security locked\n", __FUNCTION__, __LINE__);
return -NVL_ERR_INSUFFICIENT_PERMISSIONS;
}
nvswitch_os_memset(params->errorLink, 0, sizeof(params->errorLink));
FOR_EACH_INDEX_IN_MASK(64, i, params->linkMask)
@@ -2862,6 +2960,13 @@ nvswitch_ctrl_get_fom_values_ls10
NvU32 statData;
nvlink_link *link;
if (nvswitch_is_tnvl_mode_locked(device))
{
NVSWITCH_PRINT(device, ERROR,
"%s(%d): Security locked\n", __FUNCTION__, __LINE__);
return -NVL_ERR_INSUFFICIENT_PERMISSIONS;
}
link = nvswitch_get_link(device, p->linkId);
if (link == NULL)
{
@@ -3521,6 +3626,13 @@ nvswitch_ctrl_set_remap_policy_ls10
NvU32 ram_size;
NvlStatus retval = NVL_SUCCESS;
if (nvswitch_is_tnvl_mode_locked(device))
{
NVSWITCH_PRINT(device, ERROR,
"%s(%d): Security locked\n", __FUNCTION__, __LINE__);
return -NVL_ERR_INSUFFICIENT_PERMISSIONS;
}
//
// This function is used to read both normal and multicast REMAP table,
// so guarantee table definitions are identical.
@@ -3782,6 +3894,13 @@ nvswitch_ctrl_get_remap_policy_ls10
NvU32 ram_size;
NvlStatus retval;
if (nvswitch_is_tnvl_mode_locked(device))
{
NVSWITCH_PRINT(device, ERROR,
"%s(%d): Security locked\n", __FUNCTION__, __LINE__);
return -NVL_ERR_INSUFFICIENT_PERMISSIONS;
}
if (!NVSWITCH_IS_LINK_ENG_VALID_LS10(device, NPORT, params->portNum))
{
NVSWITCH_PRINT(device, ERROR,
@@ -3959,6 +4078,13 @@ nvswitch_ctrl_set_remap_policy_valid_ls10
NvU32 ram_size;
NvlStatus retval;
if (nvswitch_is_tnvl_mode_locked(device))
{
NVSWITCH_PRINT(device, ERROR,
"%s(%d): Security locked\n", __FUNCTION__, __LINE__);
return -NVL_ERR_INSUFFICIENT_PERMISSIONS;
}
if (!NVSWITCH_IS_LINK_ENG_VALID_LS10(device, NPORT, p->portNum))
{
NVSWITCH_PRINT(device, ERROR,
@@ -4111,6 +4237,13 @@ NvlStatus nvswitch_ctrl_set_mc_rid_table_ls10
return -NVL_BAD_ARGS;
}
if (nvswitch_is_tnvl_mode_locked(device))
{
NVSWITCH_PRINT(device, ERROR,
"%s(%d): Security locked\n", __FUNCTION__, __LINE__);
return -NVL_ERR_INSUFFICIENT_PERMISSIONS;
}
// if !entryValid, zero the table and return
if (!p->entryValid)
return nvswitch_mc_invalidate_mc_rid_entry_ls10(device, p->portNum, p->index,
@@ -4855,6 +4988,13 @@ nvswitch_ctrl_set_residency_bins_ls10
NvU64 threshold;
NvU64 max_threshold;
if (nvswitch_is_tnvl_mode_locked(device))
{
NVSWITCH_PRINT(device, ERROR,
"%s(%d): Security locked\n", __FUNCTION__, __LINE__);
return -NVL_ERR_INSUFFICIENT_PERMISSIONS;
}
if (p->bin.lowThreshold > p->bin.hiThreshold )
{
NVSWITCH_PRINT(device, ERROR,
@@ -5774,6 +5914,13 @@ nvswitch_ctrl_get_nvlink_lp_counters_ls10
NV_STATUS status;
NvU32 statData;
if (nvswitch_is_tnvl_mode_locked(device))
{
NVSWITCH_PRINT(device, ERROR,
"%s(%d): Security locked\n", __FUNCTION__, __LINE__);
return -NVL_ERR_INSUFFICIENT_PERMISSIONS;
}
if (!NVSWITCH_IS_LINK_ENG_VALID_LS10(device, NVLDL, params->linkId))
{
return -NVL_BAD_ARGS;
@@ -5869,6 +6016,13 @@ nvswitch_ctrl_clear_counters_ls10
NvU32 counterMask;
NvlStatus status = NVL_SUCCESS;
if (nvswitch_is_tnvl_mode_locked(device))
{
NVSWITCH_PRINT(device, ERROR,
"%s(%d): Security locked\n", __FUNCTION__, __LINE__);
return -NVL_ERR_INSUFFICIENT_PERMISSIONS;
}
counterMask = ret->counterMask;
FOR_EACH_INDEX_IN_MASK(64, i, ret->linkMask)

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: Copyright (c) 2020-2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
* SPDX-FileCopyrightText: Copyright (c) 2020-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
* SPDX-License-Identifier: MIT
*
* Permission is hereby granted, free of charge, to any person obtaining a
@@ -144,6 +144,13 @@ nvswitch_ctrl_therm_read_temperature_ls10
channel = NVSWITCH_THERM_CHANNEL_LS10_TDIODE;
if (info->channelMask & NVBIT(channel))
{
if (nvswitch_is_tnvl_mode_locked(device))
{
NVSWITCH_PRINT(device, ERROR,
"%s(%d): Security locked\n", __FUNCTION__, __LINE__);
return -NVL_ERR_INSUFFICIENT_PERMISSIONS;
}
_nvswitch_read_external_tdiode_temperature_ls10(device, info, channel);
info->channelMask &= ~NVBIT(channel);
}
@@ -151,6 +158,13 @@ nvswitch_ctrl_therm_read_temperature_ls10
channel = NVSWITCH_THERM_CHANNEL_LS10_TDIODE_OFFSET;
if (info->channelMask & NVBIT(channel))
{
if (nvswitch_is_tnvl_mode_locked(device))
{
NVSWITCH_PRINT(device, ERROR,
"%s(%d): Security locked\n", __FUNCTION__, __LINE__);
return -NVL_ERR_INSUFFICIENT_PERMISSIONS;
}
_nvswitch_read_external_tdiode_temperature_ls10(device, info, channel);
info->channelMask &= ~NVBIT(channel);
}

View File

@@ -1353,7 +1353,15 @@ nvswitch_ctrl_blacklist_device(
if (status != NVL_SUCCESS)
return status;
nvswitch_lib_disable_interrupts(device);
if (nvswitch_is_tnvl_mode_locked(device))
{
NVSWITCH_PRINT(device, ERROR,
"%s(%d): Security locked\n", __FUNCTION__, __LINE__);
}
else
{
nvswitch_lib_disable_interrupts(device);
}
// Unregister links from NVLinkCoreLib, so that link training is not
// attempted