<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Hello,</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
There are many occasions when a post code from a server actually means something is wrong — especially crucial if a boot failure occurs before the part of the system firmware capable of sending a SEL to the BMC is loaded. To support this, I am proposing enhancing
phosphor-post-code-mfg to support configurable special handling of post codes.</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Example configuration:</div>
<div class="elementToProof" style="font-family: "Courier New", monospace; font-size: 12pt; color: rgb(0, 0, 0);">
[</div>
<div class="elementToProof" style="font-family: "Courier New", monospace; font-size: 12pt; color: rgb(0, 0, 0);">
{</div>
<div class="elementToProof" style="font-family: "Courier New", monospace; font-size: 12pt; color: rgb(0, 0, 0);">
"primary": [123],</div>
<div class="elementToProof" style="font-family: "Courier New", monospace; font-size: 12pt; color: rgb(0, 0, 0);">
"secondary": [234, 123],</div>
<div class="elementToProof" style="font-family: "Courier New", monospace; font-size: 12pt; color: rgb(0, 0, 0);">
"targets": ["my_special.service"]</div>
<div class="elementToProof" style="font-family: "Courier New", monospace; font-size: 12pt; color: rgb(0, 0, 0);">
},</div>
<div class="elementToProof" style="font-family: "Courier New", monospace; font-size: 12pt; color: rgb(0, 0, 0);">
{</div>
<div class="elementToProof" style="font-family: "Courier New", monospace; font-size: 12pt; color: rgb(0, 0, 0);">
"primary": [999],</div>
<div class="elementToProof" style="font-family: "Courier New", monospace; font-size: 12pt; color: rgb(0, 0, 0);">
"targets": ["power_failure.service"],</div>
<div class="elementToProof" style="font-family: "Courier New", monospace; font-size: 12pt; color: rgb(0, 0, 0);">
"event": {</div>
<div class="elementToProof" style="font-family: "Courier New", monospace; font-size: 12pt; color: rgb(0, 0, 0);">
"name": "xyz.openbmc_project.State.Power.PowerRailFault",</div>
<div class="elementToProof" style="font-family: "Courier New", monospace; font-size: 12pt; color: rgb(0, 0, 0);">
"arguments": {</div>
<div class="elementToProof" style="font-family: "Courier New", monospace; font-size: 12pt; color: rgb(0, 0, 0);">
"POWER_RAIL": "MyDevice",</div>
<div class="elementToProof" style="font-family: "Courier New", monospace; font-size: 12pt; color: rgb(0, 0, 0);">
"FAILURE_DATA": ""</div>
<div class="elementToProof" style="font-family: "Courier New", monospace; font-size: 12pt; color: rgb(0, 0, 0);">
}</div>
<div class="elementToProof" style="font-family: "Courier New", monospace; font-size: 12pt; color: rgb(0, 0, 0);">
}</div>
<div class="elementToProof" style="font-family: "Courier New", monospace; font-size: 12pt; color: rgb(0, 0, 0);">
}</div>
<div class="elementToProof" style="font-family: "Courier New", monospace; font-size: 12pt; color: rgb(0, 0, 0);">
]</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
The first config will start my_special.service if we receive a postcode: {{123}, {234, 123}}. The second will start power_failure.service and also create a phosphor-logging event xyz.openbmc_project.State.Power.PowerRailFault with arguments {"POWER_FAIL": "MyDevice",
"FAILURE_DATA": ""} when we receive a post code {{999}, {anything}}.</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Any feedback is appreciated. Especially pertaining to the secondary post-code (since I don't have experience with machines which have a secondary post-code and my proposal is just a guess).</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
I have a untested proof of concept I am working on: <a href="https://gerrit.openbmc.org/c/openbmc/phosphor-post-code-manager/+/80646">
https://gerrit.openbmc.org/c/openbmc/phosphor-post-code-manager/+/80646</a></div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
I would love to get feedback before I continue down this path.</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" id="Signature">
<div style="font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif" dir="ltr" id="divtagdefaultwrapper">
<p style="margin-top: 0px; margin-bottom: 0px;">Thanks,</p>
<p style="margin-top: 0px; margin-bottom: 0px;">Amithash</p>
</div>
</div>
</body>
</html>