- 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>
69 lines
2.6 KiB
Diff
69 lines
2.6 KiB
Diff
From 0aebe300b70a084161c12e813396025b255d91d7 Mon Sep 17 00:00:00 2001
|
|
From: Vadim Pasternak <vadimp@nvidia.com>
|
|
Date: Fri, 3 Dec 2021 11:48:51 +0200
|
|
Subject: [PATCH backport 5.10 108/182] mlxsw: reg: Extend PMMP register with
|
|
new slot number field
|
|
|
|
Extend PMMP (Port Module Memory Map Properties Register) with new
|
|
field specifying the slot number. The purpose of this field is to
|
|
enable overriding the cable/module memory map advertisement.
|
|
|
|
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 2ac8444aa8b2..ad27a1c90f92 100644
|
|
--- a/drivers/net/ethernet/mellanox/mlxsw/core_env.c
|
|
+++ b/drivers/net/ethernet/mellanox/mlxsw/core_env.c
|
|
@@ -501,7 +501,7 @@ static int mlxsw_env_module_low_power_set(struct mlxsw_core *mlxsw_core,
|
|
u16 eeprom_override_mask, eeprom_override;
|
|
char pmmp_pl[MLXSW_REG_PMMP_LEN];
|
|
|
|
- mlxsw_reg_pmmp_pack(pmmp_pl, module);
|
|
+ mlxsw_reg_pmmp_pack(pmmp_pl, 0, module);
|
|
mlxsw_reg_pmmp_sticky_set(pmmp_pl, true);
|
|
/* Mask all the bits except low power mode. */
|
|
eeprom_override_mask = ~MLXSW_REG_PMMP_EEPROM_OVERRIDE_LOW_POWER_MASK;
|
|
diff --git a/drivers/net/ethernet/mellanox/mlxsw/reg.h b/drivers/net/ethernet/mellanox/mlxsw/reg.h
|
|
index acde0cd00944..aad0cb1497aa 100644
|
|
--- a/drivers/net/ethernet/mellanox/mlxsw/reg.h
|
|
+++ b/drivers/net/ethernet/mellanox/mlxsw/reg.h
|
|
@@ -5633,6 +5633,12 @@ MLXSW_REG_DEFINE(pmmp, MLXSW_REG_PMMP_ID, MLXSW_REG_PMMP_LEN);
|
|
*/
|
|
MLXSW_ITEM32(reg, pmmp, module, 0x00, 16, 8);
|
|
|
|
+/* reg_pmmp_slot_index
|
|
+ * Slot index.
|
|
+ * Access: Index
|
|
+ */
|
|
+MLXSW_ITEM32(reg, pmmp, slot_index, 0x00, 24, 4);
|
|
+
|
|
/* reg_pmmp_sticky
|
|
* When set, will keep eeprom_override values after plug-out event.
|
|
* Access: OP
|
|
@@ -5660,9 +5666,10 @@ enum {
|
|
*/
|
|
MLXSW_ITEM32(reg, pmmp, eeprom_override, 0x04, 0, 16);
|
|
|
|
-static inline void mlxsw_reg_pmmp_pack(char *payload, u8 module)
|
|
+static inline void mlxsw_reg_pmmp_pack(char *payload, u8 slot_index, u8 module)
|
|
{
|
|
MLXSW_REG_ZERO(pmmp, payload);
|
|
+ mlxsw_reg_pmmp_slot_index_set(payload, slot_index);
|
|
mlxsw_reg_pmmp_module_set(payload, module);
|
|
}
|
|
|
|
--
|
|
2.20.1
|
|
|