Files
OpenBMC/meta-luxshare/meta-common/recipes-luxshare/leds/phosphor-led-manager/0002-Add-power-button-and-PSU-status-sensor.patch
T
2026-04-23 17:07:55 +08:00

128 lines
4.1 KiB
Diff
Executable File

From 757268065e51263dc760951c535e53f76dac2ffe Mon Sep 17 00:00:00 2001
From: "Wang.Bin" <Bin-B.Wang@luxshare-ict.com>
Date: Wed, 23 Oct 2024 13:29:51 +0800
Subject: [PATCH 2/2] Add power button and PSU status sensor
---
fault-monitor/fru-fault-monitor.cpp | 28 +++++++++++++++++
fault-monitor/fru-fault-monitor.hpp | 48 +++++++++++++++++++++++++++--
2 files changed, 74 insertions(+), 2 deletions(-)
diff --git a/fault-monitor/fru-fault-monitor.cpp b/fault-monitor/fru-fault-monitor.cpp
index 8ff5294..4946065 100644
--- a/fault-monitor/fru-fault-monitor.cpp
+++ b/fault-monitor/fru-fault-monitor.cpp
@@ -55,6 +55,11 @@ constexpr const char* discreteSensorNs = "No state defined";
// 10H
constexpr auto SYSTEM_EVENT_LOG_CLEARED = 2;
+// 14H
+constexpr auto POWER_BUTTON_PRESSED = 0;
+constexpr auto SLEEP_BUTTON_PRESSED = 1;
+constexpr auto RESET_BUTTON_PRESSED = 2;
+
// 22H
constexpr auto ACPI_S0_STATE = 0;
constexpr auto ACPI_S5_STATE = 6;
@@ -389,6 +394,29 @@ void parseSpecificSensorSelSeverity(sdbusplus::bus::bus& bus,
}
break;
}
+ case SENSOR_TYPE_BUTTON_SWITCH:
+ {
+ switch (ev1Offset)
+ {
+ case POWER_BUTTON_PRESSED:
+ case SLEEP_BUTTON_PRESSED:
+ case RESET_BUTTON_PRESSED:
+ {
+ sensorStatusRec[sensorPath].alarmStatus = alarmStatus;
+ break;
+ }
+ default:
+ {
+ return;
+ }
+ }
+ break;
+ }
+ case SENSOR_TYPE_POWER_SUPPLY:
+ {
+ sensorStatusRec[sensorPath].alarmStatus = alarmStatus;
+ break;
+ }
case SENSOR_TYPE_SYSTEM_ACPI_POWER_STATE:
{
switch (ev1Offset)
diff --git a/fault-monitor/fru-fault-monitor.hpp b/fault-monitor/fru-fault-monitor.hpp
index e196287..065e8c8 100644
--- a/fault-monitor/fru-fault-monitor.hpp
+++ b/fault-monitor/fru-fault-monitor.hpp
@@ -32,9 +32,54 @@ class Remove;
*/
enum SensorType
{
+ SENSOR_TYPE_TEMPERATURE = 0x01,
+ SENSOR_TYPE_VOLTAGE = 0x02,
+ SENSOR_TYPE_CURRENT = 0x03,
+ SENSOR_TYPE_FAN = 0x04,
+ SENSOR_TYPE_PHYSICAL_SECURITY = 0x05,
+ SENSOR_TYPE_PLATFORM_SECURITY = 0x06,
+ SENSOR_TYPE_PROCESSOR = 0x07,
+ SENSOR_TYPE_POWER_SUPPLY = 0x08,
+ SENSOR_TYPE_POWER_FAULT = 0x09,
+ SENSOR_TYPE_COOLING_DEVICE = 0x0A,
+ SENSOR_TYPE_OHTER_UNITE_BASED_SENSOR = 0x0B,
+ SENSOR_TYPE_MEMORY = 0x0C,
+ SENSOR_TYPE_DRIVE_SLOT = 0x0D,
+
+ SENSOR_TYPE_SYSTEM_FIRMWARE_PROGRESS = 0x0F, // formerly POST error
SENSOR_TYPE_EVENT_LOGGING_DISABLED = 0x10,
+ SENSOR_TYPE_WATCHDOG_1 = 0x11,
+ SENSOR_TYPE_SYSTEM_EVENT = 0x12,
+ SENSOR_TYPE_CRITICAL_INTERRUPT = 0x13,
+ SENSOR_TYPE_BUTTON_SWITCH = 0x14,
+ SENSOR_TYPE_BOARD_MODULE = 0x15,
+ SENSOR_TYPE_MICROCONTROLLER_COPROCESSOR = 0x16,
+ SENSOR_TYPE__RESOURCERATE = 0xC1, // jss
+
+ SENSOR_TYPE_ADD_IN_CARD = 0x17,
+ SENSOR_TYPE_CHASSIS = 0x18,
+ SENSOR_TYPE_CHIP_SET = 0x19,
+
+ SENSOR_TYPE_CABLE_INTERCONNECT = 0x1B,
+
+ SENSOR_TYPE_SYSTEM_BOOT = 0x1D, // Restart Initiated
+ SENSOR_TYPE_BOOT_ERROR = 0x1E,
+ SENSOR_TYPE_OS_BOOT = 0x1F,
+ SENSOR_TYPE_OS_STOP = 0x20,
+ SENSOR_TYPE_SLOT_CONNECTOR = 0x21,
SENSOR_TYPE_SYSTEM_ACPI_POWER_STATE = 0x22,
- SENSOR_TYPE_MEMORY = 0x0C,
+ SENSOR_TYPE_WATCHDOG_2 = 0x23,
+ SENSOR_TYPE_PLATFORM_ALERT = 0x24,
+ SENSOR_TYPE_ENTITY_PRESENCE = 0x25,
+
+ SENSOR_TYPE_LAN = 0x27,
+ SENSOR_TYPE_MANAGEMENT_SUBSYSTEM_HEALTH = 0x28,
+ SENSOR_TYPE_BATTERY = 0x29,
+ SENSOR_TYPE_SESSION_AUDIT = 0x2A,
+ SENSOR_TYPE_HYPERCARD = 0xC0,
+
+ SENSOR_TYPE_VERSION_CHANGE = 0x2B,
+ SENSOR_TYPE_FRU_STATE = 0x2C,
SENSOR_TYPE_MAX_NUMBER = 0x100 // Senor Type 为1个byte,最大为0~255,即:256个
};
@@ -80,7 +125,6 @@ class Add
std::bind(std::mem_fn(&Add::created), this,
std::placeholders::_1))
{
- std::cerr << "wangbin matchCreated \n";
processExistingCallouts(bus);
}
--
2.25.1