- Why I did it 1. Update Mellanox HW-MGMT package to newer version V.7.0030.1011 2. Replace the SONiC PMON Thermal control algorithm with the one inside the HW-MGMT package on all Nvidia platforms 3. Support Spectrum-4 systems - How I did it 1. Update the HW-MGMT package version number and submodule pointer 2. Remove the thermal control algorithm implementation from Mellanox platform API 3. Revise the patch to HW-MGMT package which will disable HW-MGMT from running on SIMX 4. Update the downstream kernel patch list Signed-off-by: Kebo Liu <kebol@nvidia.com>
70 lines
2.7 KiB
Diff
70 lines
2.7 KiB
Diff
From aba06998f55ba715e6161a427356fccc17b466fc Mon Sep 17 00:00:00 2001
|
|
From: Vadim Pasternak <vadimp@nvidia.com>
|
|
Date: Fri, 3 Dec 2021 11:48:50 +0200
|
|
Subject: [PATCH backport 5.10 107/182] mlxsw: reg: Extend MCION register with
|
|
new slot number field
|
|
|
|
Extend MCION (Management Cable IO and Notifications Register) with new
|
|
field specifying the slot number. The purpose of this field is to
|
|
support access to MCION register for query cage transceiver on modular
|
|
system.
|
|
|
|
For non-modular systems the 'module' number uniquely identifies the
|
|
transceiver location. For modular systems the transceivers are
|
|
identified by two indexes:
|
|
- 'slot_index', specifying the slot number, where line card is located;
|
|
- 'module', specifying cage transceiver within the line card.
|
|
|
|
Signed-off-by: Vadim Pasternak <vadimp@nvidia.com>
|
|
Signed-off-by: Ido Schimmel <idosch@nvidia.com>
|
|
---
|
|
drivers/net/ethernet/mellanox/mlxsw/core_env.c | 2 +-
|
|
drivers/net/ethernet/mellanox/mlxsw/reg.h | 9 ++++++++-
|
|
2 files changed, 9 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/drivers/net/ethernet/mellanox/mlxsw/core_env.c b/drivers/net/ethernet/mellanox/mlxsw/core_env.c
|
|
index a516c04ad19b..2ac8444aa8b2 100644
|
|
--- a/drivers/net/ethernet/mellanox/mlxsw/core_env.c
|
|
+++ b/drivers/net/ethernet/mellanox/mlxsw/core_env.c
|
|
@@ -458,7 +458,7 @@ mlxsw_env_get_module_power_mode(struct mlxsw_core *mlxsw_core, u8 module,
|
|
|
|
params->policy = mlxsw_env->module_info[module].power_mode_policy;
|
|
|
|
- mlxsw_reg_mcion_pack(mcion_pl, module);
|
|
+ mlxsw_reg_mcion_pack(mcion_pl, 0, module);
|
|
err = mlxsw_reg_query(mlxsw_core, MLXSW_REG(mcion), mcion_pl);
|
|
if (err) {
|
|
NL_SET_ERR_MSG_MOD(extack, "Failed to retrieve module's power mode");
|
|
diff --git a/drivers/net/ethernet/mellanox/mlxsw/reg.h b/drivers/net/ethernet/mellanox/mlxsw/reg.h
|
|
index bdbe198a9053..acde0cd00944 100644
|
|
--- a/drivers/net/ethernet/mellanox/mlxsw/reg.h
|
|
+++ b/drivers/net/ethernet/mellanox/mlxsw/reg.h
|
|
@@ -9327,6 +9327,12 @@ MLXSW_REG_DEFINE(mcion, MLXSW_REG_MCION_ID, MLXSW_REG_MCION_LEN);
|
|
*/
|
|
MLXSW_ITEM32(reg, mcion, module, 0x00, 16, 8);
|
|
|
|
+/* reg_mcion_slot_index
|
|
+ * Slot index.
|
|
+ * Access: Index
|
|
+ */
|
|
+MLXSW_ITEM32(reg, mcion, slot_index, 0x00, 12, 4);
|
|
+
|
|
enum {
|
|
MLXSW_REG_MCION_MODULE_STATUS_BITS_PRESENT_MASK = BIT(0),
|
|
MLXSW_REG_MCION_MODULE_STATUS_BITS_LOW_POWER_MASK = BIT(8),
|
|
@@ -9338,9 +9344,10 @@ enum {
|
|
*/
|
|
MLXSW_ITEM32(reg, mcion, module_status_bits, 0x04, 0, 16);
|
|
|
|
-static inline void mlxsw_reg_mcion_pack(char *payload, u8 module)
|
|
+static inline void mlxsw_reg_mcion_pack(char *payload, u8 slot_index, u8 module)
|
|
{
|
|
MLXSW_REG_ZERO(mcion, payload);
|
|
+ mlxsw_reg_mcion_slot_index_set(payload, slot_index);
|
|
mlxsw_reg_mcion_module_set(payload, module);
|
|
}
|
|
|
|
--
|
|
2.20.1
|
|
|