oem-meta: santabarbara: add handler for asic event logs from rainbow MMC

Add support for decoding the event logs emitted by the Rainbow MMC.

Tested-On: santabarbara
```
root@bmc:~# mfg-tool log-display 2>/dev/null
{
    ...
    "97": {
        "additional_data": {
            "FAILURE_DATA": "RAINBOW_BOOTSTRAP_SET_AFTER_PWR_EN - [13 3C]",
            "POWER_RAIL": "/xyz/openbmc_project/inventory/system/board/Santabarbara_Rainbow_0/bootstrap_set_after_pwr_en",
            "_CODE_FILE": "/usr/src/debug/pldm/1.0+git/oem/meta/libpldmresponder/file_io_type_event_log.cpp",
            "_CODE_FUNC": "void pldm::responder::oem_meta::record::commit(const std::string&, pldm::responder::oem_meta::EventAssert, const std::string&) [with const char* TypeLabel = (& label); AssertType = sdbusplus::error::xyz::openbmc_project::state::Power::PowerRailFault; DeassertType = sdbusplus::event::xyz::openbmc_project::state::Power::PowerRailFaultRecovered; std::string = std::__cxx11::basic_string<char>]",
            "_CODE_LINE": "199",
            "_PID": "1526"
        },
        "event_id": "",
        "message": "xyz.openbmc_project.State.Power.PowerRailFault",
        "redfish": {
            "args": [
                "/xyz/openbmc_project/inventory/system/board/Santabarbara_Rainbow_0/bootstrap_set_after_pwr_en"
            ],
            "id": "OpenBMC_StatePower.PowerRailFault",
            "message": "A fault has been detected on power rail '/xyz/openbmc_project/inventory/system/board/Santabarbara_Rainbow_0/bootstrap_set_after_pwr_en'."
        },
        "resolution": "",
        "resolved": false,
        "severity": "xyz.openbmc_project.Logging.Entry.Level.Error",
        "timestamp": "2026-04-28T12:35:39.488000000Z",
        "updated_timestamp": "2026-04-28T12:35:39.488000000Z"
    }
}

```

Change-Id: I1a2c1287b85fe9e928fcf5c21ab6fc098b16d56a
Signed-off-by: Frank Chen <FrankChen4@quantatw.com>
1 file changed
tree: 0c74279da8d112eaaaa7b8e1ce5b39e55bcd2127
  1. common/
  2. configurations/
  3. docs/
  4. fw-update/
  5. host-bmc/
  6. libpldmresponder/
  7. oem/
  8. platform-mc/
  9. pldmd/
  10. pldmtool/
  11. requester/
  12. softoff/
  13. subprojects/
  14. test/
  15. tools/
  16. utilities/
  17. .clang-format
  18. .clang-tidy
  19. .eslintignore
  20. .gitignore
  21. .linter-ignore
  22. LICENSE
  23. meson.build
  24. meson.options
  25. OWNERS
  26. README.md
README.md

PLDM - Platform Level Data Model

License

Overview

PLDM (Platform Level Data Model) is a key component of the OpenBMC project, providing a standardized data model and message formats for various platform management functionalities. It defines a method to manage, monitor, and control the firmware and hardware of a system.

The OpenBMC PLDM project aims to implement the specifications defined by the Distributed Management Task Force (DMTF), allowing for interoperable management interfaces across different hardware and firmware components.

Features

  • Standardized Messaging: Adheres to the DMTF's PLDM specifications, enabling consistent and interoperable communication between different components.
  • Modularity: Supports multiple PLDM types, including base, FRU,Firmware update, Platform Monitoring and Control, and BIOS Control and Configuration.
  • Extensibility: Easily extendable to support new PLDM types and custom OEM commands.
  • Integration: Seamlessly integrates with other OpenBMC components for comprehensive system management.

Getting Started

Prerequisites

To build and run PLDM, you need the following dependencies:

  • Meson
  • Ninja

Alternatively, source an OpenBMC ARM/x86 SDK.

Building

To build the PLDM project, follow these steps:

meson setup build && meson compile -C build

To run unit tests

The simplest way of running the tests is as described by the meson man page:

meson test -C build

Alternatively, tests can be run in the OpenBMC CI docker container using these steps.

To enable pldm verbosity

pldm daemon accepts a command line argument --verbose or --v or -v to enable the daemon to run in verbose mode. It can be done via adding this option to the environment file that pldm service consumes.

echo 'PLDMD_ARGS="--verbose"' > /etc/default/pldmd
systemctl restart pldmd

To disable pldm verbosity

rm /etc/default/pldmd
systemctl restart pldmd

Documentation

For complete documentation on the functionality and usage of this repository, please refer to the docs folder.