Hi Ed,

    Please find my response below.
    Please search this mail thread "EEPROM Validation issue in Fru Device " for more information.

Thanks,
Kumar.


On Thu, Nov 25, 2021 at 2:10 AM Ed Tanous <edtanous@google.com> wrote:
On Wed, Nov 24, 2021 at 1:17 AM Kumar Thangavel
<kumarthangavel.hcl@gmail.com> wrote:
>
> Hi All,
>
>        We would like to validate our NIC FRU device type as 8 bit (one byte) or 16 bit(two byte).
>
>        This device type validation for our FRU is platform specific logic.

Please include more details about what this logic is.  In the
entity-manager design, anything that's truly platform specific needs
to go into the entity-manager configuration, as all other components
are common.

The existing logic to get the device type is 8bit or 16bit is not working exactly for our platform.
Also, writing some bytes and getting device type in eeprom is not safe and not suggested.
So, we implemented the platform specific logic to get the eeprom device type in the machine layer.

https://github.com/openbmc/entity-manager/blob/master/src/FruDevice.cpp#L430
>  This was implemented in the machine layer.

Can you point to it? 

The logic is, get the NIC card vendor info from ncsi-netlink command and based on NIC vendor,
set the eeprom device type as 8bit or 16 bit. 

We wanted to interlink this logic in entity-manager.

>
>        We wanted to interlink this logic with entity-manager code to get the device type.
>
>        Could you please provide the suggestions on get the device type in entity-manager.

Entity-manager provides the exposes records on dbus, for which
reactors can pick them up and use them.

Is there any way to get the dynamic values (device type - 8bit/16bit ) from the machine layer 
to the entity-manager ?

>
>        Please refer below link for existing devicebit validation in entity-manager.
>        https://github.com/openbmc/entity-manager/blob/master/src/FruDevice.cpp#L430

I'm not quite following what this has to do with your above, given
that this isn't intended to be platform specific.


This existing logic to get the device type 8/16 bit may not work for all the devices.
We need to find common logic for all the devices without any breakage. But it is very tricky.

Alternatively, platform specific logic can be an option and interlink with EM at run time. 
We are trying this and requesting suggestions from MAINTAINERS.

>
> Thanks,
> Kumar.