1# phosphor-post-code-manager 2 3This phosphor-post-code-manager repository provides an infrastructure to persist 4the POST codes in BMC filesystem & it also owns the systemd services that are 5responsible for exposing the BIOS Post Codes to rest of the world via redfish. 6 7## To Build 8 9To build phosphor-post-code-manager package , do the following steps: 10 11``` bash 12meson <build directory> 13ninja -C <build directory> 14``` 15 16## Hosted Services 17 18This repository ships `xyz.openbmc_project.State.Boot.PostCode.service` systemd 19service along with its [template 20version](https://github.com/openbmc/docs/blob/master/designs/multi-host-postcode.md) 21and a tiny binary that exposes the necessary [dbus interfaces & 22methods](https://github.com/openbmc/phosphor-dbus-interfaces/blob/master/yaml/xyz/openbmc_project/State/Boot/PostCode.interface.yaml) 23to extract the POST codes per boot cycle. 24 25## Architecture 26 27This repository is tightly coupled with 28[phosphor-host-postd](https://github.com/openbmc/phosphor-host-postd) OpenBMC 29respository which is responsible for emitting the dbus signals for every new 30POST Code. 31 32phosphor-post-code-manager is architected to look for the property changed 33signals which are being emitted from the service that hosts 34[Value](https://github.com/openbmc/phosphor-dbus-interfaces/blob/master/yaml/xyz/openbmc_project/State/Boot/Raw.interface.yaml) 35property on `xyz.openbmc_project.State.Boot.Raw` interface & archive them per 36boot on the filesystem, so that those can be exposed over 37[redfish](https://github.com/openbmc/docs/blob/master/designs/redfish-postcodes.md) 38