<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div>Hi,</div><div><br></div><div>I’m working on adding fault log capabilities to ltc2978.c driver which covers ADI’s family of PMBus VR controllers and sequencer/managers.</div><div><br></div><div>These parts have a blackbox fault log that triggers on over current and many other hardware problems. End users use this information for remote diagnosis.</div><div><br></div><div>Putting aside whether or not this should have a standard hwmon interface or not, for now I added debugfs nodes to this driver to test functionality.</div><div><br></div><div>What I want to discuss is use model, as it would apply to obmc if exposed through a redfish api.</div><div><br></div><div>As it works now, the log is fetched like this:</div><div><br></div><div><span style="font-family: Calibri, sans-serif; font-size: 14.666666984558105px; -webkit-text-size-adjust: auto;">cat /sys/kernel/debug/pmbus/hwmon1/raw_data > /tmp/ltc2974.raw</span></div><div><br></div><div>This creates a raw binary file of the log.</div><div><br></div><div>To interpret the log, hexdump it like:</div><div><br></div><div><span style="font-family: Calibri, sans-serif; font-size: 14.666666984558105px; -webkit-text-size-adjust: auto;">hexdump -ve '"%07.7_ax  "</span><span style="font-family: Calibri, sans-serif; font-size: 14.666666984558105px; -webkit-text-size-adjust: auto;"> </span><span dir="ltr" style="font-family: Calibri, sans-serif; font-size: 14.666666984558105px; -webkit-text-size-adjust: auto;">16/1</span><span style="font-family: Calibri, sans-serif; font-size: 14.666666984558105px; -webkit-text-size-adjust: auto;"> "%02x " "\n"' /tmp/ltc2974.raw</span></div><div><span style="font-family: Calibri, sans-serif; font-size: 14.666666984558105px; -webkit-text-size-adjust: auto;"><br></span></div><div><span style="font-family: Calibri, sans-serif; font-size: 14.666666984558105px; -webkit-text-size-adjust: auto;">This creates the following text:</span></div><div><br></div><p class="MsoNormal" style="-webkit-text-size-adjust: auto; margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">0000000  <span dir="ltr">18 00 00 00 00 00 00</span> 00 00 ff ff 27 db 0c db 4e<o:p></o:p></p><p class="MsoNormal" style="-webkit-text-size-adjust: auto; margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">0000010  80 41 80 f0 c2 ff 7b 00 00 ff ff 27 db 1e db 0f<o:p></o:p></p><p class="MsoNormal" style="-webkit-text-size-adjust: auto; margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">0000020  <span dir="ltr">80 02 80 00 00</span> ff ff 27 db 22 db f0 81 ee 80 00<o:p></o:p></p><p class="MsoNormal" style="-webkit-text-size-adjust: auto; margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">0000030  00 ff ff 2b db 22 db 47 81 bd <span dir="ltr">87 00 00 00 00 00</span><o:p></o:p></p><p class="MsoNormal" style="-webkit-text-size-adjust: auto; margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">0000040  <span dir="ltr">00 00 00 00 00 00 00</span> 00 db <span dir="ltr">22 00 00 00 00 00 08</span><o:p></o:p></p><p class="MsoNormal" style="-webkit-text-size-adjust: auto; margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">0000050  c2 ef 80 00 80 4b 00 00 db <span dir="ltr">22 00 00 00 00</span> db 06<o:p></o:p></p><p class="MsoNormal" style="-webkit-text-size-adjust: auto; margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">0000060  <span dir="ltr">80 00 80 51 00 00</span> db <span dir="ltr">27 00 00 00 00 80 00</span> 81 a0<o:p></o:p></p><p class="MsoNormal" style="-webkit-text-size-adjust: auto; margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">0000070  00 00 db <span dir="ltr">22 00 00 00 00 80 00</span> 80 04 00 00 db 22<o:p></o:p></p><p class="MsoNormal" style="-webkit-text-size-adjust: auto; margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">0000080  <span dir="ltr">00 00 00 00 00 08</span> c2 f0 <span dir="ltr">80 00 80 41 00 00</span> db 22<o:p></o:p></p><p class="MsoNormal" style="-webkit-text-size-adjust: auto; margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">0000090  <span dir="ltr">00 00 00 00</span> db <span dir="ltr">05 80 00 80</span> a8 00 00 db 27 00 00<o:p></o:p></p><p class="MsoNormal" style="-webkit-text-size-adjust: auto; margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">00000a0  <span dir="ltr">00 00 80 00 81</span> 0b 00 00 db <span dir="ltr">22 00 00 00 00 80 00</span><o:p></o:p></p><p class="MsoNormal" style="-webkit-text-size-adjust: auto; margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">00000b0  <span dir="ltr">80 06 00 00</span> db <span dir="ltr">22 00 00 00 00 00 08</span> c2 ef 80 00<o:p></o:p></p><p class="MsoNormal" style="-webkit-text-size-adjust: auto; margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">00000c0  <span dir="ltr">80 43 00 00</span> db <span dir="ltr">22 00 00 00 00</span> db <span dir="ltr">05 80 00 80</span> 0e<o:p></o:p></p><p class="MsoNormal" style="-webkit-text-size-adjust: auto; margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">00000d0  00 00 db <span dir="ltr">27 00 00 00 00 80 00</span> 81 72 00 00 db 22<o:p></o:p></p><p class="MsoNormal" style="-webkit-text-size-adjust: auto; margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">00000e0  <span dir="ltr">00 00 00 00 80 00 80</span> 06 00 00 db <span dir="ltr">22 00 00 00 00</span><o:p></o:p></p><p class="MsoNormal" style="-webkit-text-size-adjust: auto; margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">00000f0  <span dir="ltr">00 00 00 00 00 00 00</span> <span dir="ltr">00 00 00 00 00 00 00</span> 00<o:p></o:p></p><p class="MsoNormal" style="-webkit-text-size-adjust: auto; margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;"><br></p><p class="MsoNormal" style="-webkit-text-size-adjust: auto; margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">Use this tool to decode:</p><p class="MsoNormal" style="-webkit-text-size-adjust: auto; margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;"><br></p><p class="MsoNormal" style="-webkit-text-size-adjust: auto; margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;"><a href="http://pmbus.analogplayground.com/fault">http://pmbus.analogplayground.com/fault</a></p><p class="MsoNormal" style="-webkit-text-size-adjust: auto; margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;"><br></p><p class="MsoNormal" style="-webkit-text-size-adjust: auto; margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">For example:</p><p class="MsoNormal" style="-webkit-text-size-adjust: auto; margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;"><br></p><p class="MsoNormal" style="-webkit-text-size-adjust: auto; margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;"><a href="http://pmbus.analogplayground.com/fault?_hasdata=&f1=10&f2=2&f3=0000000++18+00+00+00+00+00+00+00+00+ff+ff+27+db+0c+db+4e%0D%0A0000010++80+41+80+f0+c2+ff+7b+00+00+ff+ff+27+db+1e+db+0f%0D%0A0000020++80+02+80+00+00+ff+ff+27+db+22+db+f0+81+ee+80+00%0D%0A0000030++00+ff+ff+2b+db+22+db+47+81+bd+87+00+00+00+00+00%0D%0A0000040++00+00+00+00+00+00+00+00+db+22+00+00+00+00+00+08%0D%0A0000050++c2+ef+80+00+80+4b+00+00+db+22+00+00+00+00+db+06%0D%0A0000060++80+00+80+51+00+00+db+27+00+00+00+00+80+00+81+a0%0D%0A0000070++00+00+db+22+00+00+00+00+80+00+80+04+00+00+db+22%0D%0A0000080++00+00+00+00+00+08+c2+f0+80+00+80+41+00+00+db+22%0D%0A0000090++00+00+00+00+db+05+80+00+80+a8+00+00+db+27+00+00%0D%0A00000a0++00+00+80+00+81+0b+00+00+db+22+00+00+00+00+80+00%0D%0A00000b0++80+06+00+00+db+22+00+00+00+00+00+08+c2+ef+80+00%0D%0A00000c0++80+43+00+00+db+22+00+00+00+00+db+05+80+00+80+0e%0D%0A00000d0++00+00+db+27+00+00+00+00+80+00+81+72+00+00+db+22%0D%0A00000e0++00+00+00+00+80+00+80+06+00+00+db+22+00+00+00+00%0D%0A00000f0++00+00+00+00+00+00+00+00+00+00+00+00+00+00+00">http://pmbus.analogplayground.com/fault?_hasdata=&f1=10&f2=2&f3=0000000++18+00+00+00+00+00+00+00+00+ff+ff+27+db+0c+db+4e%0D%0A0000010++80+41+80+f0+c2+ff+7b+00+00+ff+ff+27+db+1e+db+0f%0D%0A0000020++80+02+80+00+00+ff+ff+27+db+22+db+f0+81+ee+80+00%0D%0A0000030++00+ff+ff+2b+db+22+db+47+81+bd+87+00+00+00+00+00%0D%0A0000040++00+00+00+00+00+00+00+00+db+22+00+00+00+00+00+08%0D%0A0000050++c2+ef+80+00+80+4b+00+00+db+22+00+00+00+00+db+06%0D%0A0000060++80+00+80+51+00+00+db+27+00+00+00+00+80+00+81+a0%0D%0A0000070++00+00+db+22+00+00+00+00+80+00+80+04+00+00+db+22%0D%0A0000080++00+00+00+00+00+08+c2+f0+80+00+80+41+00+00+db+22%0D%0A0000090++00+00+00+00+db+05+80+00+80+a8+00+00+db+27+00+00%0D%0A00000a0++00+00+80+00+81+0b+00+00+db+22+00+00+00+00+80+00%0D%0A00000b0++80+06+00+00+db+22+00+00+00+00+00+08+c2+ef+80+00%0D%0A00000c0++80+43+00+00+db+22+00+00+00+00+db+05+80+00+80+0e%0D%0A00000d0++00+00+db+27+00+00+00+00+80+00+81+72+00+00+db+22%0D%0A00000e0++00+00+00+00+80+00+80+06+00+00+db+22+00+00+00+00%0D%0A00000f0++00+00+00+00+00+00+00+00+00+00+00+00+00+00+00</a></p><p class="MsoNormal" style="-webkit-text-size-adjust: auto; margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;"><br></p><p class="MsoNormal" style="-webkit-text-size-adjust: auto; margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;"><br></p><p class="MsoNormal" style="-webkit-text-size-adjust: auto; margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">Press that url and see the decoded data.</p><p class="MsoNormal" style="-webkit-text-size-adjust: auto; margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;"><br></p><p class="MsoNormal" style="-webkit-text-size-adjust: auto; margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">Obmc could call this tool for decoding, or built into obmc. However, every vendor has it’s own proprietary formats.</p><p class="MsoNormal" style="-webkit-text-size-adjust: auto; margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;"><br></p><p class="MsoNormal" style="-webkit-text-size-adjust: auto; margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">I’m looking for feedback on this model of a driver as it relates to obmc integration. Is there a better model?</p><p class="MsoNormal" style="-webkit-text-size-adjust: auto; margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;"><br></p><p class="MsoNormal" style="-webkit-text-size-adjust: auto; margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">You can comment on usefulness if you want, but my interest is more on integration. I have customers that would use this, if they design in this family of parts. They use it to day in their proprietary BMCs.</p><p class="MsoNormal" style="-webkit-text-size-adjust: auto; margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;"><br></p><p class="MsoNormal" style="-webkit-text-size-adjust: auto; margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">Mike</p><p class="MsoNormal" style="-webkit-text-size-adjust: auto; margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;"><o:p> </o:p></p><br><p class="MsoNormal" style="-webkit-text-size-adjust: auto; margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">Sent from my iPad</p></body></html>