From b8fa87dd2b69033ad3b216ae2c8a3b3b90e87887 Mon Sep 17 00:00:00 2001 From: "Brandon (Accton) Chuang" Date: Mon, 13 Jul 2026 16:27:26 +0800 Subject: [PATCH] [Accton][minipack3bam] platform: Add NETLAKE2 PVT versioned support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Summary: Add versioned configuration support for NETLAKE2 PVT on the minipack3bam platform. NETLAKE2 PVT boards use different voltage regulator (VR) sources depending on the hardware sub-version. This change introduces per-version configs in both `platform_manager` and `sensor_service` to ensure proper initialization and sensor monitoring across all variants. Changes: platform_manager: Added a new `VersionedPmUnitConfig` entry with `productSubVersion: 3` (Renesas) for the COMESE_SLOT PM unit. - Registers `raa228228` VR devices (COME_VOLTAGE_MONITOR1/2), `ina230`, `tmp75` temperature sensors, and `spd5118` DIMM thermal sensors. - Version-to-VR mapping: productSubVersion 1 (Infineon), 2 (MPS), 3 (Renesas) sensor_service: Introduced `versionedSensors` entries (keyed by `respinVariantIndicator`) to distinguish sensor sysfsPath differences among NETLAKE2 VR variants: - `respinVariantIndicator: 1` → v3.1.1 (Infineon) — uses `power2/in2/curr2` and `power3/in3/curr3` channels - `respinVariantIndicator: 2` → v3.1.2 (MPS) — uses `power3/in2/curr3` and `power4/in3/curr4` channels - `respinVariantIndicator: 3` → v3.1.3 (Renesas) — uses `power3/in3/curr3` and `power4/in4/curr4` channels Updated DIMM temperature sensor thresholds per vendor guidance: - `COME_JCN1A_DIMM_CHA_TEMP` and `COME_JCN2A_DIMM_CHB_TEMP`: - `upperCriticalVal` changed from 80 to 85. - Removed `maxAlarmVal` and `minAlarmVal` — per vendor, lower critical/min/max thresholds are N/A because protection and warning SELs should be configured for the upper side of the temperature range only. Dependencies: Kernel config `CONFIG_SENSORS_ISL68137` must be enabled (provides `raa228228` hwmon driver for Renesas VR). Test Plan: Hardware Verification — Verified on minipack3bam devices equipped with each NETLAKE2 variant: 1. COME EEPROM verification (`weutil -eeprom COME`) — Confirmed hardware identity for each DUT: - All boards report: Product Name `NETLAKE20`, Production State `PVT`, Production Sub-State `1` - `Re-Spin/Variant Indicator: 1` → v3.1.1 (Infineon) - `Re-Spin/Variant Indicator: 2` → v3.1.2 (MPS) - `Re-Spin/Variant Indicator: 3` → v3.1.3 (Renesas) 2. platform_manager started and initialized correctly on all versions. 3. platform_manager_hw_test — All test cases passed. 4. sensor_service correctly resolved versioned configs: - Resolved to `versionedPmSensors` (v3.1.1 / v3.1.2 / v3.1.3) for NETLAKE2 at `/SCM_SLOT@0/COMESE_SLOT@0` 5. sensor_service_hw_test — All test cases passed. 6. sensor_service_client — All test cases passed. --- .../minipack3bam/platform_manager.json | 50 ++ .../configs/minipack3bam/sensor_service.json | 449 ++++++++++++++++-- 2 files changed, 463 insertions(+), 36 deletions(-) diff --git a/fboss/platform/configs/minipack3bam/platform_manager.json b/fboss/platform/configs/minipack3bam/platform_manager.json index 36241524ae4b4..21a69f41dd01c 100644 --- a/fboss/platform/configs/minipack3bam/platform_manager.json +++ b/fboss/platform/configs/minipack3bam/platform_manager.json @@ -170,6 +170,56 @@ ] }, "productSubVersion": 1 + }, + { + "pmUnitConfig": { + "pluggedInSlotType": "COMESE_SLOT", + "i2cDeviceConfigs": [ + { + "busName": "INCOMING@0", + "address": "0x20", + "kernelDeviceName": "raa228228", + "pmUnitScopedName": "COME_VOLTAGE_MONITOR1" + }, + { + "busName": "INCOMING@0", + "address": "0x21", + "kernelDeviceName": "raa228228", + "pmUnitScopedName": "COME_VOLTAGE_MONITOR2" + }, + { + "busName": "INCOMING@1", + "address": "0x40", + "kernelDeviceName": "ina230", + "pmUnitScopedName": "COME_VOLTAGE_MONITOR3" + }, + { + "busName": "INCOMING@1", + "address": "0x4c", + "kernelDeviceName": "tmp75", + "pmUnitScopedName": "COME_TSENSOR1" + }, + { + "busName": "INCOMING@1", + "address": "0x4a", + "kernelDeviceName": "tmp75", + "pmUnitScopedName": "COME_TSENSOR2" + }, + { + "busName": "INCOMING@1", + "address": "0x50", + "kernelDeviceName": "spd5118", + "pmUnitScopedName": "COME_DIMM1_TSENSOR" + }, + { + "busName": "INCOMING@1", + "address": "0x51", + "kernelDeviceName": "spd5118", + "pmUnitScopedName": "COME_DIMM2_TSENSOR" + } + ] + }, + "productSubVersion": 3 } ], "3V3_L": [ diff --git a/fboss/platform/configs/minipack3bam/sensor_service.json b/fboss/platform/configs/minipack3bam/sensor_service.json index 4ad019ac359a1..40599d5430e70 100644 --- a/fboss/platform/configs/minipack3bam/sensor_service.json +++ b/fboss/platform/configs/minipack3bam/sensor_service.json @@ -691,16 +691,6 @@ "slotPath": "/SCM_SLOT@0/COMESE_SLOT@0", "pmUnitName": "NETLAKE", "sensors": [ - { - "name": "COME_PU1_PVDDCR_VOUT", - "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR1/in2_input", - "type": 1, - "thresholds": { - "upperCriticalVal": 1.82, - "maxAlarmVal": 1.75 - }, - "compute": "@/1000" - }, { "name": "COME_PU1_PVDDCR_TEMP", "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR1/temp1_input", @@ -711,16 +701,6 @@ }, "compute": "@/1000" }, - { - "name": "COME_PU1_PVDDCR_SOC_VOUT", - "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR1/in3_input", - "type": 1, - "thresholds": { - "upperCriticalVal": 1.46, - "maxAlarmVal": 1.36 - }, - "compute": "@/1000" - }, { "name": "COME_PU1_PVDDCR_SOC_TEMP", "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR1/temp2_input", @@ -731,16 +711,6 @@ }, "compute": "@/1000" }, - { - "name": "COME_PU37_PVDD_MISC_VOUT", - "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR2/in2_input", - "type": 1, - "thresholds": { - "upperCriticalVal": 1.42, - "maxAlarmVal": 1.29 - }, - "compute": "@/1000" - }, { "name": "COME_PU37_PVDD_MISC_TEMP", "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR2/temp1_input", @@ -808,9 +778,7 @@ "sysfsPath": "/run/devmap/sensors/COME_DIMM1_TSENSOR/temp1_input", "type": 3, "thresholds": { - "upperCriticalVal": 80, - "maxAlarmVal": 79, - "minAlarmVal": 10 + "upperCriticalVal": 85 }, "compute": "@/1000" }, @@ -819,9 +787,7 @@ "sysfsPath": "/run/devmap/sensors/COME_DIMM2_TSENSOR/temp1_input", "type": 3, "thresholds": { - "upperCriticalVal": 80, - "maxAlarmVal": 79, - "minAlarmVal": 10 + "upperCriticalVal": 85 }, "compute": "@/1000" } @@ -839,6 +805,16 @@ }, "compute": "@/1000000" }, + { + "name": "COME_PU1_PVDDCR_VOUT", + "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR1/in2_input", + "type": 1, + "thresholds": { + "upperCriticalVal": 1.82, + "maxAlarmVal": 1.75 + }, + "compute": "@/1000" + }, { "name": "COME_PU1_PVDDCR_IOUT", "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR1/curr2_input", @@ -859,6 +835,16 @@ }, "compute": "@/1000000" }, + { + "name": "COME_PU1_PVDDCR_SOC_VOUT", + "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR1/in3_input", + "type": 1, + "thresholds": { + "upperCriticalVal": 1.46, + "maxAlarmVal": 1.36 + }, + "compute": "@/1000" + }, { "name": "COME_PU1_PVDDCR_SOC_IOUT", "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR1/curr3_input", @@ -879,6 +865,16 @@ }, "compute": "@/1000000" }, + { + "name": "COME_PU37_PVDD_MISC_VOUT", + "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR2/in2_input", + "type": 1, + "thresholds": { + "upperCriticalVal": 1.42, + "maxAlarmVal": 1.29 + }, + "compute": "@/1000" + }, { "name": "COME_PU37_PVDD_MISC_IOUT", "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR2/curr2_input", @@ -906,6 +902,16 @@ }, "compute": "@/1000000" }, + { + "name": "COME_PU1_PVDDCR_VOUT", + "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR1/in2_input", + "type": 1, + "thresholds": { + "upperCriticalVal": 1.82, + "maxAlarmVal": 1.75 + }, + "compute": "@/1000" + }, { "name": "COME_PU1_PVDDCR_IOUT", "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR1/curr3_input", @@ -926,6 +932,16 @@ }, "compute": "@/1000000" }, + { + "name": "COME_PU1_PVDDCR_SOC_VOUT", + "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR1/in3_input", + "type": 1, + "thresholds": { + "upperCriticalVal": 1.46, + "maxAlarmVal": 1.36 + }, + "compute": "@/1000" + }, { "name": "COME_PU1_PVDDCR_SOC_IOUT", "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR1/curr4_input", @@ -946,6 +962,16 @@ }, "compute": "@/1000000" }, + { + "name": "COME_PU37_PVDD_MISC_VOUT", + "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR2/in2_input", + "type": 1, + "thresholds": { + "upperCriticalVal": 1.42, + "maxAlarmVal": 1.29 + }, + "compute": "@/1000" + }, { "name": "COME_PU37_PVDD_MISC_IOUT", "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR2/curr3_input", @@ -973,6 +999,16 @@ }, "compute": "@/1000000" }, + { + "name": "COME_PU1_PVDDCR_VOUT", + "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR1/in2_input", + "type": 1, + "thresholds": { + "upperCriticalVal": 1.82, + "maxAlarmVal": 1.75 + }, + "compute": "@/1000" + }, { "name": "COME_PU1_PVDDCR_IOUT", "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR1/curr2_input", @@ -993,6 +1029,16 @@ }, "compute": "@/1000000" }, + { + "name": "COME_PU1_PVDDCR_SOC_VOUT", + "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR1/in3_input", + "type": 1, + "thresholds": { + "upperCriticalVal": 1.46, + "maxAlarmVal": 1.36 + }, + "compute": "@/1000" + }, { "name": "COME_PU1_PVDDCR_SOC_IOUT", "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR1/curr3_input", @@ -1013,6 +1059,16 @@ }, "compute": "@/1000000" }, + { + "name": "COME_PU37_PVDD_MISC_VOUT", + "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR2/in2_input", + "type": 1, + "thresholds": { + "upperCriticalVal": 1.42, + "maxAlarmVal": 1.29 + }, + "compute": "@/1000" + }, { "name": "COME_PU37_PVDD_MISC_IOUT", "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR2/curr2_input", @@ -1040,6 +1096,16 @@ }, "compute": "@/1000000" }, + { + "name": "COME_PU1_PVDDCR_VOUT", + "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR1/in2_input", + "type": 1, + "thresholds": { + "upperCriticalVal": 1.82, + "maxAlarmVal": 1.75 + }, + "compute": "@/1000" + }, { "name": "COME_PU1_PVDDCR_IOUT", "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR1/curr3_input", @@ -1060,6 +1126,16 @@ }, "compute": "@/1000000" }, + { + "name": "COME_PU1_PVDDCR_SOC_VOUT", + "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR1/in3_input", + "type": 1, + "thresholds": { + "upperCriticalVal": 1.46, + "maxAlarmVal": 1.36 + }, + "compute": "@/1000" + }, { "name": "COME_PU1_PVDDCR_SOC_IOUT", "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR1/curr4_input", @@ -1080,6 +1156,16 @@ }, "compute": "@/1000000" }, + { + "name": "COME_PU37_PVDD_MISC_VOUT", + "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR2/in2_input", + "type": 1, + "thresholds": { + "upperCriticalVal": 1.42, + "maxAlarmVal": 1.29 + }, + "compute": "@/1000" + }, { "name": "COME_PU37_PVDD_MISC_IOUT", "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR2/curr3_input", @@ -1094,6 +1180,297 @@ "productionState": 1, "productionSubState": 3, "respinVariantIndicator": 2 + }, + { + "sensors": [ + { + "name": "COME_PU1_PVDDCR_POUT", + "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR1/power2_input", + "type": 0, + "thresholds": { + "upperCriticalVal": 131.84, + "maxAlarmVal": 118.66 + }, + "compute": "@/1000000" + }, + { + "name": "COME_PU1_PVDDCR_VOUT", + "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR1/in2_input", + "type": 1, + "thresholds": { + "upperCriticalVal": 1.82, + "maxAlarmVal": 1.75 + }, + "compute": "@/1000" + }, + { + "name": "COME_PU1_PVDDCR_IOUT", + "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR1/curr2_input", + "type": 2, + "thresholds": { + "upperCriticalVal": 164.8, + "maxAlarmVal": 148.32 + }, + "compute": "@/1000" + }, + { + "name": "COME_PU1_PVDDCR_SOC_POUT", + "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR1/power3_input", + "type": 0, + "thresholds": { + "upperCriticalVal": 30.9, + "maxAlarmVal": 27.81 + }, + "compute": "@/1000000" + }, + { + "name": "COME_PU1_PVDDCR_SOC_VOUT", + "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR1/in3_input", + "type": 1, + "thresholds": { + "upperCriticalVal": 1.46, + "maxAlarmVal": 1.36 + }, + "compute": "@/1000" + }, + { + "name": "COME_PU1_PVDDCR_SOC_IOUT", + "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR1/curr3_input", + "type": 2, + "thresholds": { + "upperCriticalVal": 38.625, + "maxAlarmVal": 34.76 + }, + "compute": "@/1000" + }, + { + "name": "COME_PU37_PVDD_MISC_POUT", + "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR2/power2_input", + "type": 0, + "thresholds": { + "upperCriticalVal": 24.72, + "maxAlarmVal": 22.25 + }, + "compute": "@/1000000" + }, + { + "name": "COME_PU37_PVDD_MISC_VOUT", + "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR2/in2_input", + "type": 1, + "thresholds": { + "upperCriticalVal": 1.42, + "maxAlarmVal": 1.29 + }, + "compute": "@/1000" + }, + { + "name": "COME_PU37_PVDD_MISC_IOUT", + "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR2/curr2_input", + "type": 2, + "thresholds": { + "upperCriticalVal": 30.9, + "maxAlarmVal": 27.81 + }, + "compute": "@/1000" + } + ], + "productionState": 3, + "productionSubState": 1, + "respinVariantIndicator": 1 + }, + { + "sensors": [ + { + "name": "COME_PU1_PVDDCR_POUT", + "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR1/power3_input", + "type": 0, + "thresholds": { + "upperCriticalVal": 131.84, + "maxAlarmVal": 118.66 + }, + "compute": "@/1000000" + }, + { + "name": "COME_PU1_PVDDCR_VOUT", + "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR1/in2_input", + "type": 1, + "thresholds": { + "upperCriticalVal": 1.82, + "maxAlarmVal": 1.75 + }, + "compute": "@/1000" + }, + { + "name": "COME_PU1_PVDDCR_IOUT", + "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR1/curr3_input", + "type": 2, + "thresholds": { + "upperCriticalVal": 164.8, + "maxAlarmVal": 148.32 + }, + "compute": "@/1000" + }, + { + "name": "COME_PU1_PVDDCR_SOC_POUT", + "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR1/power4_input", + "type": 0, + "thresholds": { + "upperCriticalVal": 30.9, + "maxAlarmVal": 27.81 + }, + "compute": "@/1000000" + }, + { + "name": "COME_PU1_PVDDCR_SOC_VOUT", + "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR1/in3_input", + "type": 1, + "thresholds": { + "upperCriticalVal": 1.46, + "maxAlarmVal": 1.36 + }, + "compute": "@/1000" + }, + { + "name": "COME_PU1_PVDDCR_SOC_IOUT", + "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR1/curr4_input", + "type": 2, + "thresholds": { + "upperCriticalVal": 38.625, + "maxAlarmVal": 34.76 + }, + "compute": "@/1000" + }, + { + "name": "COME_PU37_PVDD_MISC_POUT", + "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR2/power3_input", + "type": 0, + "thresholds": { + "upperCriticalVal": 24.72, + "maxAlarmVal": 22.25 + }, + "compute": "@/1000000" + }, + { + "name": "COME_PU37_PVDD_MISC_VOUT", + "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR2/in2_input", + "type": 1, + "thresholds": { + "upperCriticalVal": 1.42, + "maxAlarmVal": 1.29 + }, + "compute": "@/1000" + }, + { + "name": "COME_PU37_PVDD_MISC_IOUT", + "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR2/curr3_input", + "type": 2, + "thresholds": { + "upperCriticalVal": 30.9, + "maxAlarmVal": 27.81 + }, + "compute": "@/1000" + } + ], + "productionState": 3, + "productionSubState": 1, + "respinVariantIndicator": 2 + }, + { + "sensors": [ + { + "name": "COME_PU1_PVDDCR_POUT", + "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR1/power3_input", + "type": 0, + "thresholds": { + "upperCriticalVal": 131.84, + "maxAlarmVal": 118.66 + }, + "compute": "@/1000000" + }, + { + "name": "COME_PU1_PVDDCR_VOUT", + "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR1/in3_input", + "type": 1, + "thresholds": { + "upperCriticalVal": 1.82, + "maxAlarmVal": 1.75 + }, + "compute": "@/1000" + }, + { + "name": "COME_PU1_PVDDCR_IOUT", + "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR1/curr3_input", + "type": 2, + "thresholds": { + "upperCriticalVal": 164.8, + "maxAlarmVal": 148.32 + }, + "compute": "@/1000" + }, + { + "name": "COME_PU1_PVDDCR_SOC_POUT", + "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR1/power4_input", + "type": 0, + "thresholds": { + "upperCriticalVal": 30.9, + "maxAlarmVal": 27.81 + }, + "compute": "@/1000000" + }, + { + "name": "COME_PU1_PVDDCR_SOC_VOUT", + "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR1/in4_input", + "type": 1, + "thresholds": { + "upperCriticalVal": 1.46, + "maxAlarmVal": 1.36 + }, + "compute": "@/1000" + }, + { + "name": "COME_PU1_PVDDCR_SOC_IOUT", + "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR1/curr4_input", + "type": 2, + "thresholds": { + "upperCriticalVal": 38.625, + "maxAlarmVal": 34.76 + }, + "compute": "@/1000" + }, + { + "name": "COME_PU37_PVDD_MISC_POUT", + "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR2/power3_input", + "type": 0, + "thresholds": { + "upperCriticalVal": 24.72, + "maxAlarmVal": 22.25 + }, + "compute": "@/1000000" + }, + { + "name": "COME_PU37_PVDD_MISC_VOUT", + "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR2/in3_input", + "type": 1, + "thresholds": { + "upperCriticalVal": 1.42, + "maxAlarmVal": 1.29 + }, + "compute": "@/1000" + }, + { + "name": "COME_PU37_PVDD_MISC_IOUT", + "sysfsPath": "/run/devmap/sensors/COME_VOLTAGE_MONITOR2/curr3_input", + "type": 2, + "thresholds": { + "upperCriticalVal": 30.9, + "maxAlarmVal": 27.81 + }, + "compute": "@/1000" + } + ], + "productionState": 3, + "productionSubState": 1, + "respinVariantIndicator": 3 } ] },