17f50dcaaSBrad Bishop# phosphor-post-code-manager 2987f91a6SManojkiran Eda 3eddf960aSJonathan DomanThis phosphor-post-code-manager repository provides an infrastructure to persist 4eddf960aSJonathan Domanthe POST codes in BMC filesystem & it also owns the systemd services that are 5eddf960aSJonathan Domanresponsible for exposing the BIOS Post Codes to rest of the world via redfish. 6987f91a6SManojkiran Eda 7987f91a6SManojkiran Eda## To Build 8987f91a6SManojkiran Eda 9987f91a6SManojkiran EdaTo build phosphor-post-code-manager package , do the following steps: 10987f91a6SManojkiran Eda 11987f91a6SManojkiran Eda```bash 12987f91a6SManojkiran Edameson <build directory> 13987f91a6SManojkiran Edaninja -C <build directory> 14987f91a6SManojkiran Eda``` 15987f91a6SManojkiran Eda 16987f91a6SManojkiran Eda## Hosted Services 17987f91a6SManojkiran Eda 18eddf960aSJonathan DomanThis repository ships `xyz.openbmc_project.State.Boot.PostCode.service` systemd 19fe9fbc13SPatrick Williamsservice along with its 20fe9fbc13SPatrick Williams[template version](https://github.com/openbmc/docs/blob/master/designs/multi-host-postcode.md) 21fe9fbc13SPatrick Williamsand a tiny binary that exposes the necessary 22fe9fbc13SPatrick Williams[dbus interfaces & methods](https://github.com/openbmc/phosphor-dbus-interfaces/blob/master/yaml/xyz/openbmc_project/State/Boot/PostCode.interface.yaml) 23eddf960aSJonathan Domanto extract the POST codes per boot cycle. 24987f91a6SManojkiran Eda 25987f91a6SManojkiran Eda## Architecture 26987f91a6SManojkiran Eda 27eddf960aSJonathan DomanThis repository is tightly coupled with 28eddf960aSJonathan Doman[phosphor-host-postd](https://github.com/openbmc/phosphor-host-postd) OpenBMC 29*4653cd49SManojkiran Edarepository which is responsible for emitting the dbus signals for every new POST 30*4653cd49SManojkiran EdaCode. 31987f91a6SManojkiran Eda 32eddf960aSJonathan Domanphosphor-post-code-manager is architected to look for the property changed 33eddf960aSJonathan Domansignals which are being emitted from the service that hosts 34eddf960aSJonathan Doman[Value](https://github.com/openbmc/phosphor-dbus-interfaces/blob/master/yaml/xyz/openbmc_project/State/Boot/Raw.interface.yaml) 35eddf960aSJonathan Domanproperty on `xyz.openbmc_project.State.Boot.Raw` interface & archive them per 36eddf960aSJonathan Domanboot on the filesystem, so that those can be exposed over 37eddf960aSJonathan Doman[redfish](https://github.com/openbmc/docs/blob/master/designs/redfish-postcodes.md) 38