oem-meta: santabarbara: add handler for event logs from Arke MMC
Add support for decoding the event logs emitted by the Arke MMC.
Tested on santabarbara:
Triggered ARKE_OWL_E_TRVDD0P75 voltage regulator faults on the Arke
MMC of Electra module 0 and module 2 from separate consoles.
```
"909": {
"additional_data": {
"FAILURE_DATA": "ARKE_OWL_E_TRVDD0P75 - [00 00]",
"VOLTAGE_REGULATOR": "/xyz/openbmc_project/inventory/system/board/Santa_Barbara_Electra_module_0/owl_e_trvdd0p75"
},
"message": "xyz.openbmc_project.State.Power.VoltageRegulatorFault",
"redfish": {
"id": "OpenBMC_StatePower.VoltageRegulatorFault",
"message": "A fault has been detected on voltage regulator '/xyz/openbmc_project/inventory/system/board/Santa_Barbara_Electra_module_0/owl_e_trvdd0p75'"
},
"severity": "xyz.openbmc_project.Logging.Entry.Level.Error",
"timestamp": "2026-09-08T10:46:04.129000000Z"
},
"910": {
"additional_data": {
"FAILURE_DATA": "ARKE_OWL_E_TRVDD0P75 - [00 00]",
"VOLTAGE_REGULATOR": "/xyz/openbmc_project/inventory/system/board/Santa_Barbara_Electra_module_2/owl_e_trvdd0p75"
},
"message": "xyz.openbmc_project.State.Power.VoltageRegulatorFault",
"redfish": {
"id": "OpenBMC_StatePower.VoltageRegulatorFault",
"message": "A fault has been detected on voltage regulator '/xyz/openbmc_project/inventory/system/board/Santa_Barbara_Electra_module_2/owl_e_trvdd0p75'"
},
"severity": "xyz.openbmc_project.Logging.Entry.Level.Error",
"timestamp": "2026-09-08T10:46:25.472000000Z"
}
```
Change-Id: Icccd075aa6215f2e071a62838a70b9aa9c5c3ae7
Signed-off-by: Freddie Jheng <Freddie.Jheng@quantatw.com>
diff --git a/oem/meta/libpldmresponder/file_io_type_event_log.cpp b/oem/meta/libpldmresponder/file_io_type_event_log.cpp
index 1bf37df..e338e06 100644
--- a/oem/meta/libpldmresponder/file_io_type_event_log.cpp
+++ b/oem/meta/libpldmresponder/file_io_type_event_log.cpp
@@ -67,6 +67,7 @@
MTIA_FAULT = 0x27,
POST_TIMEOUTED = 0x28,
RAINBOW_FAULT = 0x29,
+ ARKE_FAULT = 0x2a,
};
enum class EventAssert : uint8_t
@@ -124,6 +125,7 @@
"MTIA FAULT",
"Post-Timeouted",
"RAINBOW FAULT",
+ "ARKE FAULT",
});
static constexpr auto pmic_event_type = std::to_array({
@@ -783,6 +785,365 @@
"DEVICE", record::thermalFault}},
};
+static const std::map<uint8_t, FaultDesc> arkeFaultsList = {
+ {0x00,
+ {"ARKE_HAMSA_VDDHRXTX_PCIE",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/hamsa_vddhrxtx_pcie",
+ "VOLTAGE_REGULATOR", record::voltageRegulatorFault}},
+ {0x01,
+ {"ARKE_HAMSA_AVDD_PCIE",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/hamsa_avdd_pcie",
+ "VOLTAGE_REGULATOR", record::voltageRegulatorFault}},
+ {0x02,
+ {"ARKE_OWL_W_TRVDD0P75",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/owl_w_trvdd0p75",
+ "VOLTAGE_REGULATOR", record::voltageRegulatorFault}},
+ {0x03,
+ {"ARKE_OWL_E_TRVDD0P75",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/owl_e_trvdd0p75",
+ "VOLTAGE_REGULATOR", record::voltageRegulatorFault}},
+ {0x04,
+ {"ARKE_OWL_W_TRVDD0P9",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/owl_w_trvdd0p9",
+ "VOLTAGE_REGULATOR", record::voltageRegulatorFault}},
+ {0x05,
+ {"ARKE_OWL_E_TRVDD0P9",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/owl_e_trvdd0p9",
+ "VOLTAGE_REGULATOR", record::voltageRegulatorFault}},
+ {0x06,
+ {"ARKE_MAX_N_VDD",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/max_n_vdd",
+ "VOLTAGE_REGULATOR", record::voltageRegulatorFault}},
+ {0x07,
+ {"ARKE_MAX_M_VDD",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/max_m_vdd",
+ "VOLTAGE_REGULATOR", record::voltageRegulatorFault}},
+ {0x08,
+ {"ARKE_MAX_S_VDD",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/max_s_vdd",
+ "VOLTAGE_REGULATOR", record::voltageRegulatorFault}},
+ {0x09,
+ {"ARKE_HAMSA_VDD",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/hamsa_vdd",
+ "VOLTAGE_REGULATOR", record::voltageRegulatorFault}},
+ {0x0A,
+ {"ARKE_OWL_W_VDD",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/owl_w_vdd",
+ "VOLTAGE_REGULATOR", record::voltageRegulatorFault}},
+ {0x0B,
+ {"ARKE_OWL_E_VDD",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/owl_e_vdd",
+ "VOLTAGE_REGULATOR", record::voltageRegulatorFault}},
+ {0x0C,
+ {"ARKE_NUWA0_VDD",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/nuwa0_vdd",
+ "VOLTAGE_REGULATOR", record::voltageRegulatorFault}},
+ {0x0D,
+ {"ARKE_NUWA1_VDD",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/nuwa1_vdd",
+ "VOLTAGE_REGULATOR", record::voltageRegulatorFault}},
+ {0x0E,
+ {"ARKE_VDDPHY_HBM1_HBM3_HBM5_HBM7",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/vddphy_hbm1_hbm3_hbm5_hbm7",
+ "VOLTAGE_REGULATOR", record::voltageRegulatorFault}},
+ {0x0F,
+ {"ARKE_VPP_HBM1_HBM3_HBM5_HBM7",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/vpp_hbm1_hbm3_hbm5_hbm7",
+ "VOLTAGE_REGULATOR", record::voltageRegulatorFault}},
+ {0x10,
+ {"ARKE_VDDC_HBM1_HBM3_HBM5_HBM7",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/vddc_hbm1_hbm3_hbm5_hbm7",
+ "VOLTAGE_REGULATOR", record::voltageRegulatorFault}},
+ {0x11,
+ {"ARKE_VDDQL_HBM1_HBM3_HBM5_HBM7",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/vddql_hbm1_hbm3_hbm5_hbm7",
+ "VOLTAGE_REGULATOR", record::voltageRegulatorFault}},
+ {0x12,
+ {"ARKE_VDDPHY_HBM0_HBM2_HBM4_HBM6",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/vddphy_hbm0_hbm2_hbm4_hbm6",
+ "VOLTAGE_REGULATOR", record::voltageRegulatorFault}},
+ {0x13,
+ {"ARKE_VPP_HBM0_HBM2_HBM4_HBM6",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/vpp_hbm0_hbm2_hbm4_hbm6",
+ "VOLTAGE_REGULATOR", record::voltageRegulatorFault}},
+ {0x14,
+ {"ARKE_VDDC_HBM0_HBM2_HBM4_HBM6",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/vddc_hbm0_hbm2_hbm4_hbm6",
+ "VOLTAGE_REGULATOR", record::voltageRegulatorFault}},
+ {0x15,
+ {"ARKE_VDDQL_HBM0_HBM2_HBM4_HBM6",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/vddql_hbm0_hbm2_hbm4_hbm6",
+ "VOLTAGE_REGULATOR", record::voltageRegulatorFault}},
+ {0x16,
+ {"ARKE_P1V5_W_RVDD",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/p1v5_w_rvdd",
+ "VOLTAGE_REGULATOR", record::voltageRegulatorFault}},
+ {0x17,
+ {"ARKE_P1V5_E_RVDD",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/p1v5_e_rvdd",
+ "VOLTAGE_REGULATOR", record::voltageRegulatorFault}},
+ {0x18,
+ {"ARKE_P0V9_OWL_W_PVDD",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/p0v9_owl_w_pvdd",
+ "VOLTAGE_REGULATOR", record::voltageRegulatorFault}},
+ {0x19,
+ {"ARKE_P0V9_OWL_E_PVDD",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/p0v9_owl_e_pvdd",
+ "VOLTAGE_REGULATOR", record::voltageRegulatorFault}},
+ {0x1A,
+ {"ARKE_P1V2_PLL_VDDA_SOC",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/p1v2_pll_vdda_soc",
+ "VOLTAGE_REGULATOR", record::voltageRegulatorFault}},
+ {0x1B,
+ {"ARKE_P1V2_PLL_VDDA_OWL",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/p1v2_pll_vdda_owl",
+ "VOLTAGE_REGULATOR", record::voltageRegulatorFault}},
+ {0x1C,
+ {"ARKE_VDDQ_HBM1_HBM3_HBM5_HBM7",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/vddq_hbm1_hbm3_hbm5_hbm7",
+ "VOLTAGE_REGULATOR", record::voltageRegulatorFault}},
+ {0x1D,
+ {"ARKE_VDDQ_HBM0_HBM2_HBM4_HBM6",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/vddq_hbm0_hbm2_hbm4_hbm6",
+ "VOLTAGE_REGULATOR", record::voltageRegulatorFault}},
+ {0x1E,
+ {"ARKE_PVDD1P5",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/pvdd1p5",
+ "VOLTAGE_REGULATOR", record::voltageRegulatorFault}},
+ {0x1F,
+ {"ARKE_P1V5_PLL_VDDA_SOC",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/p1v5_pll_vdda_soc",
+ "VOLTAGE_REGULATOR", record::voltageRegulatorFault}},
+ {0x20,
+ {"ARKE_P1V5_PLL_VDDA_OWL",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/p1v5_pll_vdda_owl",
+ "VOLTAGE_REGULATOR", record::voltageRegulatorFault}},
+ {0x21,
+ {"ARKE_LDO_IN_1V2",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/ldo_in_1v2",
+ "VOLTAGE_REGULATOR", record::voltageRegulatorFault}},
+ {0x22,
+ {"ARKE_P1V8",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/p1v8",
+ "VOLTAGE_REGULATOR", record::voltageRegulatorFault}},
+ {0x23,
+ {"ARKE_P3V3",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/p3v3",
+ "VOLTAGE_REGULATOR", record::voltageRegulatorFault}},
+ {0x24,
+ {"ARKE_P5V",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/p5v",
+ "VOLTAGE_REGULATOR", record::voltageRegulatorFault}},
+ {0x25,
+ {"ARKE_P12V_UBC_PWRGD",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/p12v_ubc_pwrgd",
+ "VOLTAGE_REGULATOR", record::voltageRegulatorFault}},
+ {0x26,
+ {"ARKE_P0V75_AVDD_HCSL",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/p0v75_avdd_hcsl",
+ "VOLTAGE_REGULATOR", record::voltageRegulatorFault}},
+ {0x27,
+ {"ARKE_4V2",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/4v2",
+ "VOLTAGE_REGULATOR", record::voltageRegulatorFault}},
+ {0x30,
+ {"ARKE_VDDQ_01234567_SMBALRT_N",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/vddq_01234567_smbalrt_n",
+ "VOLTAGE_REGULATOR", record::voltageRegulatorFault}},
+ {0x31,
+ {"ARKE_MAX_N_VDDRXTX_SMBALRT_N",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/max_n_vddrxtx_smbalrt_n",
+ "VOLTAGE_REGULATOR", record::voltageRegulatorFault}},
+ {0x32,
+ {"ARKE_VDDC_VDDQL_0246_SMBALRT_N",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/vddc_vddql_0246_smbalrt_n",
+ "VOLTAGE_REGULATOR", record::voltageRegulatorFault}},
+ {0x33,
+ {"ARKE_MAX_M_VDDC_1357_SMBALRT_N",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/max_m_vddc_1357_smbalrt_n",
+ "VOLTAGE_REGULATOR", record::voltageRegulatorFault}},
+ {0x34,
+ {"ARKE_OWL_W_SMBALRT_N",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/owl_w_smbalrt_n",
+ "VOLTAGE_REGULATOR", record::voltageRegulatorFault}},
+ {0x35,
+ {"ARKE_OWL_E_SMBALRT_N",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/owl_e_smbalrt_n",
+ "VOLTAGE_REGULATOR", record::voltageRegulatorFault}},
+ {0x36,
+ {"ARKE_NUWA1_VDD_ALERT_R_N",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/nuwa1_vdd_alert_r_n",
+ "VOLTAGE_REGULATOR", record::voltageRegulatorFault}},
+ {0x37,
+ {"ARKE_NUWA0_VDD_ALERT_R_N",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/nuwa0_vdd_alert_r_n",
+ "VOLTAGE_REGULATOR", record::voltageRegulatorFault}},
+ {0x50,
+ {"ARKE_POWER_ON_SEQUENCE_FAIL",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/power_on_sequence_fail",
+ "POWER_RAIL", record::powerRailFault}},
+ {0x51,
+ {"ARKE_ASIC_THERMTRIP",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/asic_thermtrip",
+ "DEVICE", record::thermalFault}},
+ {0x52,
+ {"ARKE_NUWA1_HBM_CATTRIP",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/nuwa1_hbm_cattrip",
+ "DEVICE", record::thermalFault}},
+ {0x53,
+ {"ARKE_NUWA0_HBM_CATTRIP",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/nuwa0_hbm_cattrip",
+ "DEVICE", record::thermalFault}},
+ {0x54,
+ {"ARKE_HAMSA_CATTRIP",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/hamsa_cattrip",
+ "DEVICE", record::thermalFault}},
+ {0x55,
+ {"ARKE_OWL_E_CATTRIP",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/owl_e_cattrip",
+ "DEVICE", record::thermalFault}},
+ {0x56,
+ {"ARKE_OWL_W_CATTRIP",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/owl_w_cattrip",
+ "DEVICE", record::thermalFault}},
+ {0x60,
+ {"ARKE_HAMSA_SMB_ERR",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/hamsa_smb_err",
+ "DEVICE", record::thermalFault}},
+ {0x61,
+ {"ARKE_OWL_E_TRVDD0P9_OT_WARNING",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/owl_e_trvdd0p9_ot_warning",
+ "DEVICE", record::thermalFault}},
+ {0x62,
+ {"ARKE_OWL_E_TRVDD0P75_OT_WARNING",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/owl_e_trvdd0p75_ot_warning",
+ "DEVICE", record::thermalFault}},
+ {0x63,
+ {"ARKE_OWL_E_VDD_OT_WARNING",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/owl_e_vdd_ot_warning",
+ "DEVICE", record::thermalFault}},
+ {0x64,
+ {"ARKE_OWL_W_TRVDD0P9_OT_WARNING",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/owl_w_trvdd0p9_ot_warning",
+ "DEVICE", record::thermalFault}},
+ {0x65,
+ {"ARKE_OWL_W_TRVDD0P75_OT_WARNING",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/owl_w_trvdd0p75_ot_warning",
+ "DEVICE", record::thermalFault}},
+ {0x66,
+ {"ARKE_OWL_W_VDD_OT_WARNING",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/owl_w_vdd_ot_warning",
+ "DEVICE", record::thermalFault}},
+ {0x67,
+ {"ARKE_MAX_M_VDD_OT_WARNING",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/max_m_vdd_ot_warning",
+ "DEVICE", record::thermalFault}},
+ {0x68,
+ {"ARKE_MAX_N_VDD_OT_WARNING",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/max_n_vdd_ot_warning",
+ "DEVICE", record::thermalFault}},
+ {0x69,
+ {"ARKE_MAX_S_VDD_OT_WARNING",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/max_s_vdd_ot_warning",
+ "DEVICE", record::thermalFault}},
+ {0x6A,
+ {"ARKE_HAMSA_AVDD_PCIE_OT_WARNING",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/hamsa_avdd_pcie_ot_warning",
+ "DEVICE", record::thermalFault}},
+ {0x6B,
+ {"ARKE_HAMSA_VDDHRXTX_PCIE_OT_WARNING",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/hamsa_vddhrxtx_pcie_ot_warning",
+ "DEVICE", record::thermalFault}},
+ {0x6C,
+ {"ARKE_HAMSA_VDD_OT_WARNING",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/hamsa_vdd_ot_warning",
+ "DEVICE", record::thermalFault}},
+ {0x6D,
+ {"ARKE_VDDPHY_HBM0246_OT_WARNING",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/vddphy_hbm0246_ot_warning",
+ "DEVICE", record::thermalFault}},
+ {0x6E,
+ {"ARKE_VDDQL_HBM0246_OT_WARNING",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/vddql_hbm0246_ot_warning",
+ "DEVICE", record::thermalFault}},
+ {0x6F,
+ {"ARKE_VDDC_HBM0246_OT_WARNING",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/vddc_hbm0246_ot_warning",
+ "DEVICE", record::thermalFault}},
+ {0x70,
+ {"ARKE_VDDQ_HBM0246_OT_WARNING",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/vddq_hbm0246_ot_warning",
+ "DEVICE", record::thermalFault}},
+ {0x71,
+ {"ARKE_VPP_HBM0246_OT_WARNING",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/vpp_hbm0246_ot_warning",
+ "DEVICE", record::thermalFault}},
+ {0x72,
+ {"ARKE_VDDPHY_HBM1357_OT_WARNING",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/vddphy_hbm1357_ot_warning",
+ "DEVICE", record::thermalFault}},
+ {0x73,
+ {"ARKE_VDDQL_HBM1357_OT_WARNING",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/vddql_hbm1357_ot_warning",
+ "DEVICE", record::thermalFault}},
+ {0x74,
+ {"ARKE_VDDC_HBM1357_OT_WARNING",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/vddc_hbm1357_ot_warning",
+ "DEVICE", record::thermalFault}},
+ {0x75,
+ {"ARKE_VDDQ_HBM1357_OT_WARNING",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/vddq_hbm1357_ot_warning",
+ "DEVICE", record::thermalFault}},
+ {0x76,
+ {"ARKE_VPP_HBM1357_OT_WARNING",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/vpp_hbm1357_ot_warning",
+ "DEVICE", record::thermalFault}},
+ {0x77,
+ {"ARKE_NUWA0_VDD_OT_WARNING",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/nuwa0_vdd_ot_warning",
+ "DEVICE", record::thermalFault}},
+ {0x78,
+ {"ARKE_NUWA1_VDD_OT_WARNING",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/nuwa1_vdd_ot_warning",
+ "DEVICE", record::thermalFault}},
+ {0x79,
+ {"ARKE_UBC0_P12V_OT_WARNING",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/ubc0_p12v_ot_warning",
+ "DEVICE", record::thermalFault}},
+ {0x7A,
+ {"ARKE_UBC1_P12V_OT_WARNING",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/ubc1_p12v_ot_warning",
+ "DEVICE", record::thermalFault}},
+ {0x80,
+ {"ARKE_TEMP_MON2_OVERT_N",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/temp_mon2_overt_n",
+ "DEVICE", record::thermalFault}},
+ {0x81,
+ {"ARKE_TEMP_MON3_OVERT_N",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/temp_mon3_overt_n",
+ "DEVICE", record::thermalFault}},
+ {0x82,
+ {"ARKE_TEMP_MON4_OVERT_N",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/temp_mon4_overt_n",
+ "DEVICE", record::thermalFault}},
+ {0x83,
+ {"ARKE_TEMP_MON5_OVERT_N",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/temp_mon5_overt_n",
+ "DEVICE", record::thermalFault}},
+ {0x84,
+ {"ARKE_IRQ_TMP75_3_ALERT_R_N",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/irq_tmp75_3_alert_r_n",
+ "DEVICE", record::thermalFault}},
+ {0x85,
+ {"ARKE_IRQ_TMP75_2_ALERT_R_N",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/irq_tmp75_2_alert_r_n",
+ "DEVICE", record::thermalFault}},
+ {0x86,
+ {"ARKE_IRQ_TMP75_1_ALERT_R_N",
+ "/xyz/openbmc_project/inventory/system/board/Santabarbara_Electra/irq_tmp75_1_alert_r_n",
+ "DEVICE", record::thermalFault}},
+};
+
namespace report
{
static void recordEventLog(const FaultDesc& fault, EventAssert eventStatus,
@@ -902,6 +1263,50 @@
recordEventLog(updatedFault, eventStatus, eventData[3], eventData[4]);
}
+static void arkeFault(const message& eventData, const std::string&,
+ const std::string& slotNumStr)
+{
+ EventAssert eventStatus = static_cast<EventAssert>(eventData[1]);
+ auto faultEvent = arkeFaultsList.find(eventData[2]);
+ if (faultEvent == std::end(arkeFaultsList))
+ {
+ lg2::error("Invalid Arke fault source {SOURCE}", "SOURCE", lg2::hex,
+ eventData[2]);
+ return;
+ }
+
+ int slot = -1;
+ try
+ {
+ slot = std::stoi(slotNumStr);
+ }
+ catch (const std::exception& e)
+ {
+ lg2::error("Invalid slot number {SLOT}", "SLOT", slotNumStr);
+ }
+
+ FaultDesc updatedFault = faultEvent->second;
+
+ if (slot != -1)
+ {
+ constexpr std::string_view needle = "/Santabarbara_Electra";
+ std::string newPath = updatedFault.object_path;
+ size_t pos = newPath.find(needle);
+
+ if (pos != std::string::npos)
+ {
+ newPath.insert(pos + needle.size(), "_" + std::to_string(slot));
+ }
+ else
+ {
+ newPath += "_" + std::to_string(slot);
+ }
+ updatedFault.object_path = std::move(newPath);
+ }
+
+ recordEventLog(updatedFault, eventStatus, eventData[3], eventData[4]);
+}
+
static void reportError(const message&, const std::string& event,
const std::string&)
{
@@ -973,6 +1378,7 @@
{report::prochotSdSensor, nullptr}},
{EventType::MTIA_FAULT, {report::mtiaFault, nullptr}},
{EventType::RAINBOW_FAULT, {report::rainbowFault, nullptr}},
+ {EventType::ARKE_FAULT, {report::arkeFault, nullptr}},
{EventType::PMALERT_ASSERTION, {report::reportError, format::vrFault}},
{EventType::FRB3_TIMER_EXPIRED, {report::reportError, nullptr}},
{EventType::ADDC_DUMP, {report::reportError, nullptr}},