<div dir="ltr"><div>Hi Ed,</div><div><br>    Please find my response below.</div><div>    Please search this mail thread "EEPROM Validation issue in Fru Device " for more information.<br><br>Thanks,</div><div>Kumar.</div><div><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Nov 25, 2021 at 2:10 AM Ed Tanous <<a href="mailto:edtanous@google.com">edtanous@google.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Wed, Nov 24, 2021 at 1:17 AM Kumar Thangavel<br>
<<a href="mailto:kumarthangavel.hcl@gmail.com" target="_blank">kumarthangavel.hcl@gmail.com</a>> wrote:<br>
><br>
> Hi All,<br>
><br>
>        We would like to validate our NIC FRU device type as 8 bit (one byte) or 16 bit(two byte).<br>
><br>
>        This device type validation for our FRU is platform specific logic.<br>
<br>
Please include more details about what this logic is.  In the<br>
entity-manager design, anything that's truly platform specific needs<br>
to go into the entity-manager configuration, as all other components<br>
are common.<br>
<br></blockquote><div>The existing logic to get the device type is 8bit or 16bit is not working exactly for our platform.</div><div>Also, writing some bytes and getting device type in eeprom is not safe and not suggested.<br>So, we implemented the platform specific logic to get the eeprom device type in the machine layer.</div><div><br></div><div><a href="https://github.com/openbmc/entity-manager/blob/master/src/FruDevice.cpp#L430" rel="noreferrer" target="_blank">https://github.com/openbmc/entity-manager/blob/master/src/FruDevice.cpp#L430</a><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
>  This was implemented in the machine layer.<br>
<br>
Can you point to it? <br>
<br></blockquote><div>The logic is, get the NIC card vendor info from ncsi-netlink command and based on NIC vendor,</div><div>set the eeprom device type as 8bit or 16 bit. </div><div><br></div><div>We wanted to interlink this logic in entity-manager.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
><br>
>        We wanted to interlink this logic with entity-manager code to get the device type.<br>
><br>
>        Could you please provide the suggestions on get the device type in entity-manager.<br>
<br>
Entity-manager provides the exposes records on dbus, for which<br>
reactors can pick them up and use them.<br></blockquote><div><br>Is there any way to get the dynamic values (device type - 8bit/16bit ) from the machine layer </div><div>to the entity-manager ?</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
><br>
>        Please refer below link for existing devicebit validation in entity-manager.<br>
>        <a href="https://github.com/openbmc/entity-manager/blob/master/src/FruDevice.cpp#L430" rel="noreferrer" target="_blank">https://github.com/openbmc/entity-manager/blob/master/src/FruDevice.cpp#L430</a><br>
<br>
I'm not quite following what this has to do with your above, given<br>
that this isn't intended to be platform specific.<br>
<br></blockquote><div><br></div><div>This existing logic to get the device type 8/16 bit may not work for all the devices.</div><div>We need to find common logic for all the devices without any breakage. But it is very tricky.</div><div><br></div><div>Alternatively, platform specific logic can be an option and interlink with EM at run time. </div><div>We are trying this and requesting suggestions from MAINTAINERS.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
><br>
> Thanks,<br>
> Kumar.<br>
</blockquote></div></div>