<div>Hi All,</div><br><div>Thanks to everyone for all the implementation ideas on this thread.</div><br><div>After understanding all the inputs from the community , we were planning to proceed forward with using the existing infrastructure provided by phosphor-host-postd, phosphor-post-code-manager repo's & leverage the BIOS POSTCode Log service to do the job.</div><br><div>The plan is to start with minimal working pieces. On the first go we are planning to come up with patchsets that will do the following:</div><br><div>1.Come up with a compilation flag & make sure phosphor-host-postd still hosts the dbus interface even if it does not see the snoop port.</div><div>2.PLDM will receive the 72bytes of progress code from the hypervisor via File I/O, and then just send the first 8 bytes(discard everything else) to the existing Raw Property & use the existing redfish BIOS Post Code log service to check if things are working.</div><br><div>In the next iteration :</div><div>1. We will try to modify the existing dbus property (Boot.Raw) to array[byte] & the piece of code that uses this property in other repos including the post-code-manager.</div><div>2. There might be a need to Modify/Add new interfaces used by post-code-manager to parse the buffer & host the dbus objects to such an extent that an AdditionalDataURI can be given to clients(base64 encoded buffer) apart from filling the existing redfish message registry.</div><br><div>Does the community foresee any issues/problems if we stick to the above-mentioned plan?</div><br><div>Thanks,</div><div>Manoj </div><br><div class="gmail_quote_attribution">On Feb 2 2021, at 8:15 am, Patrick Williams <patrick@stwcx.xyz> wrote:</div><blockquote><div><div>On Mon, Feb 01, 2021 at 07:21:39PM -0500, Brad Bishop wrote:</div><div>> On Sat, Jan 30, 2021 at 08:31:26AM -0600, Patrick Williams wrote:</div><div>> >On Wed, Jan 27, 2021 at 08:05:26PM -0500, Brad Bishop wrote:</div><div>> >></div><div>> >> There are multiple sources of the codes - on Power the power sequencing</div><div>> >> is done on the BMC and that is considered part of the server boot so we</div><div>> >> have both those applications indicating their progress along with the</div><div>> >> more traditional progress flowing down from system firmware.</div><div>> ></div><div>> >The `xyz.openbmc_project.State.Boot.Raw` is the interface to use here.</div><div>> >You just write the `Value` property.</div><div>></div><div>> Ok. Do I have it right - on any application that wants to post a</div><div>> "progress code" you would just implement this interface on a single</div><div>> (arbitrary?) path and continually write to the Value property?</div><br><div>I think it is even simpler than that. You just need to make a dbus</div><div>client call to write to the Boot.Raw value. This might happen from your</div><div>boot sequence on the BMC-side or from PLDM for the Host-side.</div><br><div>You will want the phosphor-post-code-manager application running, which will</div><div>listen to the PropertyChanged signals from Boot.Raw and keep the running</div><div>history for you.</div><br><div>There is also phosphor-host-postd. Currently it has an implementation</div><div>that looks at LPC to get the post codes. There was a proposed</div><div>implementation [1] that added multi-host support and I think support to</div><div>get the value directly from dbus client writes to Boot.Raw instead of</div><div>the lpc-snoop method. Then there is code in fb-ipmi-oem that writes the</div><div>results of some IPMB messages into the Boot.Raw value[2]. Looking at</div><div>this I'm not positive that all the pieces are all there, but I think it</div><div>is mostly there. Maybe check with the author on 1 to see where it is</div><div>at.</div><br><div>This design doc might be useful too [3].</div><br><div>1. https://gerrit.openbmc-project.xyz/c/openbmc/phosphor-host-postd/+/36509</div><div>2. https://github.com/openbmc/fb-ipmi-oem/blob/master/src/biccommands.cpp#L76</div><div>3. https://github.com/openbmc/docs/blob/master/designs/multi-host-postcode.md</div><br><div>--</div><div>Patrick Williams</div></div></blockquote>