Support OCP debug card postcode display

Description:
 - Meson option postcode display path is supported
 - Support OCP debug card postcode display

Example of test process:
   1. Set postcode-display-path as /sys/bus/i2c/devices/12-
      000f/postcode-display-slot in project layer
   2. Press OCP debug card uart button to the host to check
   3. Host power on
   4. The postcode should start displaying on the OCP debug card screen
      with user-readable string representation for those codes
Note:
 - The postcode-display-path was setting by CLD driver, which
   will though CPLD setting ocp-debug card
   (link: https://lore.kernel.org/lkml/20230117094425.19004-1-Delphine_CC_Chiu@Wiwynn.com/)

Signed-off-by: Delphine CC Chiu <Delphine_CC_Chiu@wiwynn.com>
Change-Id: I915c0ec29d763b8933835a9fdc8881648ca95d24
3 files changed
tree: fd267315e568bb55d68b617fc101b4ae0325e9c5
  1. inc/
  2. service_files/
  3. src/
  4. subprojects/
  5. .clang-format
  6. LICENSE
  7. meson.build
  8. meson_options.txt
  9. OWNERS
  10. README.md
README.md

phosphor-post-code-manager

This phosphor-post-code-manager repository provides an infrastructure to persist the POST codes in BMC filesystem & it also owns the systemd services that are responsible for exposing the BIOS Post Codes to rest of the world via redfish.

To Build

To build phosphor-post-code-manager package , do the following steps:

meson <build directory>
ninja -C <build directory>

Hosted Services

This repository ships xyz.openbmc_project.State.Boot.PostCode.service systemd service along with its template version and a tiny binary that exposes the necessary dbus interfaces & methods to extract the POST codes per boot cycle.

Architecture

This repository is tightly coupled with phosphor-host-postd OpenBMC respository which is responsible for emitting the dbus signals for every new POST Code.

phosphor-post-code-manager is architected to look for the property changed signals which are being emitted from the service that hosts Value property on xyz.openbmc_project.State.Boot.Raw interface & archive them per boot on the filesystem, so that those can be exposed over redfish