Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Vadimp merge v.7.0040.3000 br #1494

Closed
wants to merge 97 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
97 commits
Select commit Hold shift + click to select a range
c95536e
Add CPU 2 BMC notification on power_button event
sholeksandr Aug 1, 2024
7f60617
hw-mgmt: patches: kernel 5.10/6.1: Update N51xx support in mlx-platfo…
sholeksandr Aug 6, 2024
eebb734
hw-mgmt: topology: Add n5112_LD TTM support
sholeksandr Aug 6, 2024
50c9dbc
hw-mgmt: topology: Change FAN DRWR count to 4 for 5112_LD PO systeem
sholeksandr Aug 13, 2024
2d19f33
hw-mgmt: sensors: Fix sensors conf name for n51xx systems
sholeksandr Aug 29, 2024
678c0cd
hw-mgmt: topology: Add drivetemp support to n51xx ui interface
sholeksandr Sep 6, 2024
1b69dc5
hw-mgmt: topology: Fix N5110 thermal sensor name
sholeksandr Sep 9, 2024
05b4ac9
h-mgmt: scripts: Fix sync script
sholeksandr Sep 18, 2024
5ec0780
hw-mgmt: scripts: Fix hw-management-sync crash
sholeksandr Sep 23, 2024
0036716
hw-mgmt: topology: Add N5101_LD MSFT support
sholeksandr Aug 20, 2024
4105eac
hw-mgmt: kernel: 6.1: Fix for PSU attributes
ciju-nvidia Oct 10, 2024
d758c1b
Update checngelog V.7.0040.2001
sholeksandr Oct 9, 2024
9933811
hw-mgmt: patches: add minimal disabled flag on systetem init
sholeksandr Oct 14, 2024
f53a11c
hw-mgmt: scripts: add sync for asics_init_done attribute
sholeksandr Oct 14, 2024
f625b58
hw-mgmt: patches: kernel 6.1: Add platform support for sn5640 and rebase
sholeksandr Oct 11, 2024
65b4be8
Initial commt for SN5640 system
sholeksandr Oct 3, 2024
1486875
hw-mgmt: scripts: add sync for asics_init_done attribute
sholeksandr Oct 14, 2024
8fe4cff
Update changelog version 1.mlnx.7.0040.2002-01 (for sn5640)
sholeksandr Oct 15, 2024
d6dfeeb
hw-mgmt: scripts: Fixed sn5640 devtree
sholeksandr Oct 16, 2024
cb5afa7
Update checngelog V.7.0040.2002
sholeksandr Oct 16, 2024
fca66e2
hw-mgmt: topology: SN5640 add alt for voltmon
sholeksandr Oct 16, 2024
e9927bf
hw-mgmt: scripts: Fix misprint in sn5640 definition
sholeksandr Oct 16, 2024
6737ce5
1. SN5640 add SimX support.
sholeksandr Oct 16, 2024
0c75bdb
Update changelog V.7.0040.2003
sholeksandr Oct 16, 2024
002524a
hw-mgmt: scripts: Add psu vpd for virtual SN5640
ciju-nvidia Oct 17, 2024
7351fc0
hw-mgmt: topology: SN5640 fix ASIC bus id address
sholeksandr Oct 17, 2024
3e38130
hw-mgmt: patches: fix initialisation for systems with disabled minima…
sholeksandr Oct 22, 2024
d6c84ba
Fix devtree for SN5640
sholeksandr Oct 22, 2024
5621e36
Update changelog V.7.0040.2005
sholeksandr Oct 22, 2024
4a1e4e9
hwmgmt: scripts: Skip asic/module sensor value update
sholeksandr Oct 28, 2024
8c0e4c9
hw-mgmt: patches: Change dpu attribute permission
ciju-nvidia Oct 23, 2024
0328725
hw-mgmt: patches: 6.1: Add support for SN5640 sku HI172
sholeksandr Oct 28, 2024
5e75f10
Update changelog V.7.0040.2006
felixradensky Oct 28, 2024
2a7f8c7
hw-mgmt: devtree: Add lm90 and tmp411 temperature sensors
felixradensky Oct 29, 2024
67f3984
hw-mgmt: scripts: Fix description of ASIC I2C buses for SN5640
felixradensky Oct 29, 2024
eaab729
Update changelog V.7.0040.2007
felixradensky Oct 29, 2024
dd5da39
hw-mgmt: scripts: Remove TMP411 temperature sensor suppprt for SN5640
felixradensky Nov 3, 2024
6c48605
hw-mgmt: sensors: Remove ASIC temperature sensor for SN5640
felixradensky Nov 4, 2024
4f90228
Update changelog V.7.0040.2731
felixradensky Nov 4, 2024
6995d6f
hw-mgmt: sensors: Fix temperature sensor descriptions for SN5600
felixradensky Nov 4, 2024
b0e08a3
hw-mgmt: sensor: Correct fan names for MSN4600
ciju-nvidia Nov 4, 2024
e37b9a2
hw-mgmt: scripts: Fix CPU bus offset for SN5640
felixradensky Nov 6, 2024
4b1aab7
Update changelog V.7.0040.2732
felixradensky Nov 6, 2024
6348e8d
hw-mgmt: sensors: Update SN5640 sensors.conf
felixradensky Nov 6, 2024
e6be8cf
Update changelog V.7.0040.2733
felixradensky Nov 6, 2024
346075b
hw-mgmt: scripts: Fix disabling of minimal driver
felixradensky Nov 6, 2024
2e969d0
hw-mgmt: scripts: Do not create JTAG GPIO symlinks for SN5640
felixradensky Nov 6, 2024
4d532d1
Update changelog V.7.0040.2734
felixradensky Nov 6, 2024
9bd2a0e
hw-mgmt: thermal: Check for i2c bus owner
ciju-nvidia Nov 6, 2024
85e3451
hw-mgmt: sensors: Ignore MP2891 temp2 sensors on SN5640
felixradensky Nov 10, 2024
b47b3d1
Update changelog V.7.0040.2735
felixradensky Nov 10, 2024
882ba6b
hw-mgmt: scripts: Add "asic" attribute to sync service config for SN5640
felixradensky Nov 12, 2024
83e0099
hw-mgmt: thermal: Fix TC config for SN5640
felixradensky Nov 12, 2024
73ccbc6
Update changelog V.7.0040.2736
felixradensky Nov 12, 2024
17a67c3
Merge remote-tracking branch 'origin/V.7.0040.2000_BR' into V.7.0040.…
ciju-nvidia Nov 13, 2024
b62da5e
hw-mgmt: scripts: Fix Q3400 sensor label file name
sholeksandr Nov 14, 2024
eb8ab46
hw-mgmt: config: Add fix for N5xxx with new power converter
sholeksandr Nov 15, 2024
0a77ec0
hw-mgmt: patches: Update mp2891 threshold limits
sholeksandr Nov 18, 2024
b2cdfe9
hw-mgmt: patches 6.1: Add patch to fix uninitialized variable
vadimp-nvidia Nov 18, 2024
9b8bef6
hw-mgmt: patches: Update mp2891 threshold limits
sholeksandr Nov 18, 2024
d3376ea
hw-mgmt: devtree: Add support for Based Management Borad device table…
vadimp-nvidia Nov 18, 2024
06ad5fe
hw-mgmt: patches: Fix mp2891 threshold limits
sholeksandr Nov 19, 2024
df26d4d
Update changelog V.7.0040.2737
felixradensky Nov 19, 2024
0deb97d
hw-mgmt: patches: 5.10: Add support for SN5640 sku HI172
sholeksandr Oct 28, 2024
b36a8c4
hw-mgmt: scripts: fix init errors of GPIOs for JTAG on AMD based syst…
mshych Nov 20, 2024
c828ce3
hw-mgmt: patches: Fix mp2891 threshold limits
sholeksandr Nov 19, 2024
21ae50d
hw-mgmt: devtree: Extend support for Based Management Borad device ta…
vadimp-nvidia Nov 20, 2024
8931446
Merge branch 'V.7.0040.2000_SN5640_BR' into V.7.0040.3000_BR
sholeksandr Nov 20, 2024
40b22ec
Update chnagelog V.7.0040.3031
sholeksandr Nov 21, 2024
7c460bc
Merge branch 'V.7.0040.3000_BR' of https://github.com/Mellanox/hw-mgm…
sholeksandr Nov 21, 2024
d462ba6
hw-mgmt: topology: Fix ui folder for Juliet with new PDB
sholeksandr Nov 21, 2024
1a4b238
hw-mgmt: topology: Fix ui labels parding for drivetemp sensor
sholeksandr Nov 21, 2024
6e3fd6c
hw-mgmt: topology: Fix missing endline character in ./asic1
sholeksandr Nov 21, 2024
a152877
hw-mgmt: topology: Add TC component monitoring based on devtree
sholeksandr Nov 21, 2024
15d8a45
hw-mgmt: thermal: TC Fix log for PSU pwm update
sholeksandr Nov 21, 2024
7f6cbbb
hw-mgmt: scripts: Update redfish client get_pass_login
sholeksandr Nov 22, 2024
44d8f5c
Add BOM mapping for sensors labeling
sholeksandr Nov 14, 2024
9c0d65e
hw-mgmt: config: Add alternative UI labels for PDB BOM for Juiet NSO
sholeksandr Nov 19, 2024
076f458
hw-mgmt: patches: 6.1: Fix SN5640 LED platform data
felixradensky Nov 20, 2024
877fac6
hw-mgmt: scripts: Disable coretemp driver loading on BF3 COMEx systems
felixradensky Nov 25, 2024
3e896e3
hw-mgmt: scripts: Support Acbel 2K PSU FW update and FW version repor…
felixradensky Nov 26, 2024
57f5fd6
hw-mgmt: attributes: Fix module temp input mame in sync script
sholeksandr Dec 4, 2024
de8f8e8
hw-mgmt: attributes: Fix module temp input count for 5610
sholeksandr Dec 4, 2024
a787da3
Update checngelog
sholeksandr Dec 4, 2024
0fd0cb9
hw-mgmt: scripts: Fix ASIC temp populate in hw-mgmt-sync script
sholeksandr Dec 2, 2024
387c9cc
hw-mgmt: config: Add Thermal config for SN5610
sholeksandr Dec 5, 2024
139e6e9
Add Trufflehog Scan exception for hw_management_redfish_client.py
sholeksandr Nov 27, 2024
68d906c
hw-mgmt: attributes: Fix PSU volt out attributes
sholeksandr Dec 2, 2024
92faf7b
Update changelog
acoifmannvidia Dec 9, 2024
dd75748
hw-mgmt: topology: Shift cartridge I2C busses
vadimp-nvidia Dec 8, 2024
5197728
hw-mgmt: scripts: Fix module reading in sync script
sholeksandr Dec 10, 2024
33e4ba4
hw-mgmt: scripts: Fix asic_chipup_completed for systems without minim…
sholeksandr Dec 11, 2024
6ec69d8
Update changelog V.7.0040.3034
sholeksandr Dec 11, 2024
0253b95
hw-mgmt: rules: Add rules for network interface
vadimp-nvidia Aug 5, 2024
d224898
hw-mgmt: scripts: Add loading of MP2855 VR driver on X86 systems
felixradensky Dec 12, 2024
0c09792
Update changelog V.7.0040.3035
felixradensky Dec 12, 2024
9ca2b57
hw-mgmt: patches: Disable reset COME causes to avoid duplication
vadimp-nvidia Dec 15, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .pulse-trufflehog-allowlist.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"/usr/usr/bin/hw_management_redfish_client.py": {
"Password" : ["\"pa*****************\""]
}
}

36 changes: 2 additions & 34 deletions debian/changelog
Original file line number Diff line number Diff line change
@@ -1,36 +1,4 @@
<<<<<<< HEAD
<<<<<<< HEAD
<<<<<<< HEAD
<<<<<<< HEAD
<<<<<<< HEAD
hw-management (1.mlnx.7.0040.2002) unstable; urgency=low
hw-management (1.mlnx.7.0040.3035) unstable; urgency=low
[ MLNX ]

-- Yehuda Yehudai <[email protected]> Tue, 29 Oct 2024 17:10:00 +0300
=======
hw-management (1.mlnx.7.0040.1125-QS) unstable; urgency=low
[ MLNX ]

-- Oleksandr Shamray <[email protected]> Tue, 15 Oct 2024 13:10:00 +0300
>>>>>>> 57559499 (Update changelog V.7.0040.1125-QS)
=======
hw-management (1.mlnx.7.0040.1126-QS) unstable; urgency=low
[ MLNX ]

-- Vadim Pasternak <[email protected]> Tue, 03 Nov 2024 13:10:00 +0300
>>>>>>> 08988691 (hw-mgmt: Update changelog)
=======
hw-management (1.mlnx.7.0040.1127-QS) unstable; urgency=low
=======
hw-management (1.mlnx.7.0040.1128-QS) unstable; urgency=low
>>>>>>> 056c6af1 (Promote tag)
[ MLNX ]

-- Vadim Pasternak <[email protected]> Tue, 05 Nov 2024 13:10:00 +0300
>>>>>>> 7b9090c6 (Promote tag)
=======
hw-management (1.mlnx.7.0040.1129-QS) unstable; urgency=low
[ MLNX ]

-- Vadim Pasternak <[email protected]> Tue, 10 Nov 2024 13:10:00 +0300
>>>>>>> 77a34ea1 (Promote tag)
-- Felix Radensky <[email protected]> Thu, 12 Dec 2024 16:50:00 +0300
6 changes: 5 additions & 1 deletion recipes-kernel/linux/Patch_Status_Table.txt
Original file line number Diff line number Diff line change
Expand Up @@ -392,6 +392,7 @@ Kernel-5.10
|9004-DS-OPT-mlxsw-minimal-Downstream-Disable-ethtool-interface.patch| | Downstream accepted | | |
|9005-platform-mellanox-Downstream-Introduce-support-of-Nv.patch | | Downstream;skip[sonic] | | |
|9006-mlxsw-core_hwmon-Downstream-Fix-module-sensor-number-for-QM3200.patch| | Downstream;skip[ALL];take[opt] | | |
|9007-platform-mellanox-mlx-platform-Add-support-for-new-N.patch | | Feature pending;skip[ALL];take[opt] | | SN5640 |
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Kernel-5.14
Expand Down Expand Up @@ -696,6 +697,8 @@ Kernel-6.1
|0093-hwmon-pmbus-Add-support-for-MPS-Multi-phase-mp2855-c.patch | | Feature pending | | |
|0094-i2c-asf-Introduce-MCTP-support-over-ASF-controller.patch | | Downstream accepted | | |
|0095-platform-mellanox-nvsw-sn2201-Add-support-for-new-sy.patch | | Downstream accepted | | |
|0096-platform-mellanox-Downstream-Add-dedicated-match-for.patch | | Downstream accepted;skip[sonic,cumulus] | | Add dedicated match for QMB8700 |
|0097-platform-mellanox-mlx-platform-Add-support-for-new-N.patch | | Downstream accepted | | SN5640 |
|8000-mlxsw-Use-weak-reverse-dependencies-for-firmware-fla.patch | | Downstream accepted | | Disable FW update |
|8002-platform-mlx-platform-Downstream-Add-SPI-path-for-ra.patch | | Downstream;skip[sonic,cumulus] | | Add SPI |
|8003-mlxsw-i2c-SONIC-ISSU-Prevent-transaction-execution-f.patch | | Downstream accepted | | Sonic/ISSU |
Expand All @@ -707,13 +710,14 @@ Kernel-6.1
|8009-hwmon-mlxsw-Downstream-Allow-fan-speed-setting-granu.patch | | Downstream accepted | | Fix for mlxminimal cooling level granularity |
|8010-mlxsw-i2c-Downstream-Add-retry-mechanism-for-failed-.patch | | Downstream accepted | | |
|8011-mlxsw-minimal-Downstream-Disable-ethtool-interface.patch | | Downstream accepted | | |
|8012-hwmon-pmbus-Downstream-Workaround-for-psu-attributes.patch | | Downstream accepted | | |
|9000-e1000e-OPT-skip-NVM-checksum.patch | | Downstream;skip[ALL];take[opt] | | |
|9001-iio-pressure-icp20100-OPT-add-driver-for-InvenSense-.patch | | Downstream;skip[ALL];take[opt] | | |
|9002-regmap-debugfs-FT-Enable-writing-to-the-regmap-debug.patch | | Downstream;skip[ALL];take[opt] | | BF3 (FT purpose) |
|9003-platform-mellanox-Introduce-support-of-Nvidia-L1-tra.patch | | Downstream;skip[sonic,cumulus] | | P4300 |
|9004-platform-mellanox-Downstream-Introduce-support-of-Nv.patch | | Downstream;skip[sonic,cumulus] | | |
|9005-platform-mellanox-Downstream-Add-dedicated-match-for.patch | | Downstream;skip[sonic,cumulus] | | Add dedicated match for QMB8700 |
|9006-mlxsw-core_hwmon-Downstream-Fix-module-sensor-number-for-QM3200.patch| | Downstream;skip[ALL];take[opt] | | |
|9007-mlxsw-core-Downstream-Fix-uninitialized-variable.patch | | Downstream accepted;skip[sonic] | | |
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Legend:
Expand Down
1 change: 1 addition & 0 deletions recipes-kernel/linux/kconfig_5_10.txt
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ CONFIG_SENSORS_MLXREG_FAN=m
CONFIG_SENSORS_JC42=m
CONFIG_SENSORS_LM75=m
CONFIG_SENSORS_TMP102=m
CONFIG_SENSORS_TMP401=m
CONFIG_SENSORS_TMP421=m
CONFIG_SENSORS_STTS751=m
CONFIG_SENSORS_EMC1403=m
Expand Down
1 change: 1 addition & 0 deletions recipes-kernel/linux/kconfig_6_1.txt
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,7 @@ CONFIG_SENSORS_MLXREG_FAN=m
CONFIG_SENSORS_JC42=m
CONFIG_SENSORS_LM75=m
CONFIG_SENSORS_TMP102=m
CONFIG_SENSORS_TMP401=m
CONFIG_SENSORS_TMP421=m
CONFIG_SENSORS_STTS751=m
CONFIG_LEDS_MLXREG=m
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -342,14 +342,14 @@ index 000000000..8e551b9c5
+ ret = pmbus_read_word_data(client, page, phase, MP2891_PMBUS_VOUT_MIN);
+ if (ret <= 0)
+ return ret;
+ ret = (ret & GENMASK(10, 0)) * data->vid_step[page] * 105;
+ return DIV_ROUND_CLOSEST(ret, 10000);
+ ret = (ret & GENMASK(10, 0)) * data->vid_step[page];
+ return DIV_ROUND_CLOSEST(ret, 100);
+ case PMBUS_VOUT_OV_FAULT_LIMIT:
+ ret = pmbus_read_word_data(client, page, phase, PMBUS_VOUT_MAX);
+ if (ret <= 0)
+ return ret;
+ ret = (ret & GENMASK(10, 0)) * data->vid_step[page] * 95;
+ return DIV_ROUND_CLOSEST(ret, 10000);
+ ret = (ret & GENMASK(10, 0)) * data->vid_step[page];
+ return DIV_ROUND_CLOSEST(ret, 100);
+ case PMBUS_IOUT_UC_FAULT_LIMIT:
+ ret = pmbus_read_word_data(client, page, phase, reg);
+ return ret <= 0 ? ret : DIV_ROUND_CLOSEST((ret & GENMASK(7, 0)) *
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -105,8 +105,8 @@ index ad1e421fe..71ab11400 100644
+static const int mlxplat_l1_scale_out_channels[] = {
+ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
+ 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
+ 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52,
+ 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 48, 49,
+ 50, 51, 52, 53, 54,
+};
+
+/* Platform L1 scale out mux data */
Expand Down Expand Up @@ -668,7 +668,7 @@ index ad1e421fe..71ab11400 100644
+ .mask = GENMASK(7, 0) & ~BIT(7),
+ .mode = 0444,
+ },
+ {
+ /*{
+ .label = "reset_sw_reset",
+ .reg = MLXPLAT_CPLD_LPC_REG_RST_CAUSE1_OFFSET,
+ .mask = GENMASK(7, 0) & ~BIT(0),
Expand All @@ -685,31 +685,31 @@ index ad1e421fe..71ab11400 100644
+ .reg = MLXPLAT_CPLD_LPC_REG_RST_CAUSE1_OFFSET,
+ .mask = GENMASK(7, 0) & ~BIT(2),
+ .mode = 0444,
+ },
+ },*/
+ {
+ .label = "reset_comex_pwr_fail",
+ .reg = MLXPLAT_CPLD_LPC_REG_RST_CAUSE1_OFFSET,
+ .mask = GENMASK(7, 0) & ~BIT(3),
+ .mode = 0444,
+ },
+ {
+ /*{
+ .label = "reset_platform",
+ .reg = MLXPLAT_CPLD_LPC_REG_RST_CAUSE1_OFFSET,
+ .mask = GENMASK(7, 0) & ~BIT(4),
+ .mode = 0444,
+ },
+ },*/
+ {
+ .label = "reset_soc",
+ .reg = MLXPLAT_CPLD_LPC_REG_RST_CAUSE1_OFFSET,
+ .mask = GENMASK(7, 0) & ~BIT(5),
+ .mode = 0444,
+ },
+ {
+ /*{
+ .label = "reset_pwr",
+ .reg = MLXPLAT_CPLD_LPC_REG_RST_CAUSE1_OFFSET,
+ .mask = GENMASK(7, 0) & ~BIT(7),
+ .mode = 0444,
+ },
+ },*/
+ {
+ .label = "reset_erot",
+ .reg = MLXPLAT_CPLD_LPC_REG_RST_CAUSE2_OFFSET,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,154 @@
From 463c161032854233835045c9a84a9fc22f55d1e9 Mon Sep 17 00:00:00 2001
From: Oleksandr Shamray <[email protected]>
Date: Mon, 28 Oct 2024 16:11:41 +0200
Subject: [PATCH] platform: mellanox: mlx-platform: Add support for new Nvidia
system

Add support for SN5640 Nvidia switch.

SN5640 is a 51.2Tbps switch based on Nvidia SPC-5 ASIC.
It provides up-to 400Gbps full bidirectional bandwidth per port.
The system supports 64 OSFP cages and fits into standard 2U racks.

SN5640 Features:
- 64 OSFP ports supporting 2.5Gbps - 400Gbps speeds.
- Air-cooled with 4 + 1 redundant fan units.
- 2 + 2 redundant 2000W PSUs.
- System management board based on AMD CPU with secure-boot support.

Signed-off-by: Oleksandr Shamray <[email protected]>
Reviewed-by: Vadim Pasternak <[email protected]>
---
drivers/platform/mellanox/mlx-platform.c | 95 ++++++++++++++++++++++++
1 file changed, 95 insertions(+)

diff --git a/drivers/platform/mellanox/mlx-platform.c b/drivers/platform/mellanox/mlx-platform.c
index fcac62431..e8a93ccd2 100644
--- a/drivers/platform/mellanox/mlx-platform.c
+++ b/drivers/platform/mellanox/mlx-platform.c
@@ -2992,6 +2992,60 @@ struct mlxreg_core_hotplug_platform_data mlxplat_mlxcpld_modular_data = {
.mask_low = MLXPLAT_CPLD_LOW_AGGR_MASK_LOW,
};

+
+static struct mlxreg_core_item mlxplat_mlxcpld_ng800_hi171_items[] = {
+ {
+ .data = mlxplat_mlxcpld_ext_psu_items_data,
+ .aggr_mask = MLXPLAT_CPLD_AGGR_MASK_NG_DEF,
+ .reg = MLXPLAT_CPLD_LPC_REG_PSU_OFFSET,
+ .mask = MLXPLAT_CPLD_PSU_EXT_MASK,
+ .capability = MLXPLAT_CPLD_LPC_REG_PSU_I2C_CAP_OFFSET,
+ .count = ARRAY_SIZE(mlxplat_mlxcpld_ext_psu_items_data),
+ .inversed = 1,
+ .health = false,
+ },
+ {
+ .data = mlxplat_mlxcpld_modular_pwr_items_data,
+ .aggr_mask = MLXPLAT_CPLD_AGGR_MASK_NG_DEF,
+ .reg = MLXPLAT_CPLD_LPC_REG_PWR_OFFSET,
+ .mask = MLXPLAT_CPLD_PWR_EXT_MASK,
+ .capability = MLXPLAT_CPLD_LPC_REG_PSU_I2C_CAP_OFFSET,
+ .count = ARRAY_SIZE(mlxplat_mlxcpld_ext_pwr_items_data),
+ .inversed = 0,
+ .health = false,
+ },
+ {
+ .data = mlxplat_mlxcpld_xdr_fan_items_data,
+ .aggr_mask = MLXPLAT_CPLD_AGGR_MASK_NG_DEF,
+ .reg = MLXPLAT_CPLD_LPC_REG_FAN_OFFSET,
+ .mask = MLXPLAT_CPLD_FAN_XDR_MASK,
+ .capability = MLXPLAT_CPLD_LPC_REG_FAN_DRW_CAP_OFFSET,
+ .capability_mask = MLXPLAT_CPLD_FAN_CAP_MASK,
+ .count = ARRAY_SIZE(mlxplat_mlxcpld_xdr_fan_items_data),
+ .inversed = 1,
+ .health = false,
+ },
+ {
+ .data = mlxplat_mlxcpld_default_asic_items_data,
+ .aggr_mask = MLXPLAT_CPLD_AGGR_MASK_NG_DEF,
+ .reg = MLXPLAT_CPLD_LPC_REG_ASIC_HEALTH_OFFSET,
+ .mask = MLXPLAT_CPLD_ASIC_MASK,
+ .count = ARRAY_SIZE(mlxplat_mlxcpld_default_asic_items_data),
+ .inversed = 0,
+ .health = true,
+ },
+};
+
+static
+struct mlxreg_core_hotplug_platform_data mlxplat_mlxcpld_ng800_hi171_data = {
+ .items = mlxplat_mlxcpld_ng800_hi171_items,
+ .counter = ARRAY_SIZE(mlxplat_mlxcpld_ng800_hi171_items),
+ .cell = MLXPLAT_CPLD_LPC_REG_AGGR_OFFSET,
+ .mask = MLXPLAT_CPLD_AGGR_MASK_NG_DEF | MLXPLAT_CPLD_AGGR_MASK_COMEX,
+ .cell_low = MLXPLAT_CPLD_LPC_REG_AGGRLO_OFFSET,
+ .mask_low = MLXPLAT_CPLD_LOW_AGGR_MASK_LOW | MLXPLAT_CPLD_LOW_AGGR_MASK_ASIC2,
+};
+
/* Platform hotplug for chassis blade systems family data */
static struct mlxreg_core_data mlxplat_mlxcpld_global_wp_items_data[] = {
{
@@ -5387,6 +5441,12 @@ static struct mlxreg_core_data mlxplat_mlxcpld_default_ng_regs_io_data[] = {
.mask = GENMASK(7, 0) & ~BIT(4),
.mode = 0644,
},
+ {
+ .label = "shutdown_unlock",
+ .reg = MLXPLAT_CPLD_LPC_REG_GP0_OFFSET,
+ .mask = GENMASK(7, 0) & ~BIT(5),
+ .mode = 0644,
+ },
{
.label = "erot1_ap_reset",
.reg = MLXPLAT_CPLD_LPC_REG_GP4_RO_OFFSET,
@@ -9366,6 +9426,27 @@ static int __init mlxplat_dmi_l1_scale_out_switch_matched(const struct dmi_syste
return mlxplat_register_platform_device();
}

+static int __init mlxplat_dmi_ng400_hi171_matched(const struct dmi_system_id *dmi)
+{
+ int i;
+
+ mlxplat_max_adap_num = MLXPLAT_CPLD_MAX_PHYS_ADAPTER_NUM;
+ mlxplat_mux_num = ARRAY_SIZE(mlxplat_ng800_mux_data);
+ mlxplat_mux_data = mlxplat_ng800_mux_data;
+ mlxplat_hotplug = &mlxplat_mlxcpld_ng800_hi171_data;
+ mlxplat_hotplug->deferred_nr =
+ mlxplat_msn21xx_channels[MLXPLAT_CPLD_GRP_CHNL_NUM - 1];
+ mlxplat_led = &mlxplat_default_ng_led_data;
+ mlxplat_regs_io = &mlxplat_default_ng_regs_io_data;
+ mlxplat_fan = &mlxplat_xdr_fan_data;
+ for (i = 0; i < ARRAY_SIZE(mlxplat_mlxcpld_wd_set_type3); i++)
+ mlxplat_wd_data[i] = &mlxplat_mlxcpld_wd_set_type3[i];
+ mlxplat_i2c = &mlxplat_mlxcpld_i2c_ng_data;
+ mlxplat_regmap_config = &mlxplat_mlxcpld_regmap_config_ng400;
+
+ return mlxplat_register_platform_device();
+}
+
static const struct dmi_system_id mlxplat_dmi_table[] __initconst = {
{
.callback = mlxplat_dmi_default_wc_matched,
@@ -9526,6 +9607,20 @@ static const struct dmi_system_id mlxplat_dmi_table[] __initconst = {
DMI_MATCH(DMI_BOARD_NAME, "VMOD0021"),
},
},
+{
+ .callback = mlxplat_dmi_ng400_hi171_matched,
+ .matches = {
+ DMI_MATCH(DMI_BOARD_NAME, "VMOD0022"),
+ DMI_EXACT_MATCH(DMI_PRODUCT_SKU, "HI171"),
+ },
+ },
+ {
+ .callback = mlxplat_dmi_ng400_hi171_matched,
+ .matches = {
+ DMI_MATCH(DMI_BOARD_NAME, "VMOD0022"),
+ DMI_EXACT_MATCH(DMI_PRODUCT_SKU, "HI172"),
+ },
+ },
{
.callback = mlxplat_dmi_msn274x_matched,
.matches = {
--
2.20.1

Original file line number Diff line number Diff line change
Expand Up @@ -342,14 +342,14 @@ index 000000000..8e551b9c5
+ ret = pmbus_read_word_data(client, page, phase, MP2891_PMBUS_VOUT_MIN);
+ if (ret <= 0)
+ return ret;
+ ret = (ret & GENMASK(10, 0)) * data->vid_step[page] * 105;
+ return DIV_ROUND_CLOSEST(ret, 10000);
+ ret = (ret & GENMASK(10, 0)) * data->vid_step[page];
+ return DIV_ROUND_CLOSEST(ret, 100);
+ case PMBUS_VOUT_OV_FAULT_LIMIT:
+ ret = pmbus_read_word_data(client, page, phase, PMBUS_VOUT_MAX);
+ if (ret <= 0)
+ return ret;
+ ret = (ret & GENMASK(10, 0)) * data->vid_step[page] * 95;
+ return DIV_ROUND_CLOSEST(ret, 10000);
+ ret = (ret & GENMASK(10, 0)) * data->vid_step[page];
+ return DIV_ROUND_CLOSEST(ret, 100);
+ case PMBUS_IOUT_UC_FAULT_LIMIT:
+ ret = pmbus_read_word_data(client, page, phase, reg);
+ return ret <= 0 ? ret : DIV_ROUND_CLOSEST((ret & GENMASK(7, 0)) *
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -342,14 +342,14 @@ index 000000000..8e551b9c5
+ ret = pmbus_read_word_data(client, page, phase, MP2891_PMBUS_VOUT_MIN);
+ if (ret <= 0)
+ return ret;
+ ret = (ret & GENMASK(10, 0)) * data->vid_step[page] * 105;
+ return DIV_ROUND_CLOSEST(ret, 10000);
+ ret = (ret & GENMASK(10, 0)) * data->vid_step[page];
+ return DIV_ROUND_CLOSEST(ret, 100);
+ case PMBUS_VOUT_OV_FAULT_LIMIT:
+ ret = pmbus_read_word_data(client, page, phase, PMBUS_VOUT_MAX);
+ if (ret <= 0)
+ return ret;
+ ret = (ret & GENMASK(10, 0)) * data->vid_step[page] * 95;
+ return DIV_ROUND_CLOSEST(ret, 10000);
+ ret = (ret & GENMASK(10, 0)) * data->vid_step[page];
+ return DIV_ROUND_CLOSEST(ret, 100);
+ case PMBUS_IOUT_UC_FAULT_LIMIT:
+ ret = pmbus_read_word_data(client, page, phase, reg);
+ return ret <= 0 ? ret : DIV_ROUND_CLOSEST((ret & GENMASK(7, 0)) *
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -342,14 +342,14 @@ index 000000000..8e551b9c5
+ ret = pmbus_read_word_data(client, page, phase, MP2891_PMBUS_VOUT_MIN);
+ if (ret <= 0)
+ return ret;
+ ret = (ret & GENMASK(10, 0)) * data->vid_step[page] * 105;
+ return DIV_ROUND_CLOSEST(ret, 10000);
+ ret = (ret & GENMASK(10, 0)) * data->vid_step[page];
+ return DIV_ROUND_CLOSEST(ret, 100);
+ case PMBUS_VOUT_OV_FAULT_LIMIT:
+ ret = pmbus_read_word_data(client, page, phase, PMBUS_VOUT_MAX);
+ if (ret <= 0)
+ return ret;
+ ret = (ret & GENMASK(10, 0)) * data->vid_step[page] * 95;
+ return DIV_ROUND_CLOSEST(ret, 10000);
+ ret = (ret & GENMASK(10, 0)) * data->vid_step[page];
+ return DIV_ROUND_CLOSEST(ret, 100);
+ case PMBUS_IOUT_UC_FAULT_LIMIT:
+ ret = pmbus_read_word_data(client, page, phase, reg);
+ return ret <= 0 ? ret : DIV_ROUND_CLOSEST((ret & GENMASK(7, 0)) *
Expand Down
Loading