Limitations of entity-manager:FruDevice

Kun Yi kunyi at google.com
Tue Jul 30 04:24:07 AEST 2019


On Mon, Jul 29, 2019 at 10:22 AM Patrick Venture <venture at google.com> wrote:
>
> On Mon, Jul 29, 2019 at 10:05 AM James Feist
> <james.feist at linux.intel.com> wrote:
> >
> > On 7/29/19 9:11 AM, Patrick Venture wrote:
> > > Hi;
> > >
> > > I don't know much about FRUs.  However, I know that for some eeproms
> > > on the device-tree for my platform, the default eeprom driver instance
> > > isn't correct and I need to explicitly use 24c64.
> > >
> > > root at semitruck:~# echo "eeprom 0x50" > /sys/bus/i2c/devices/i2c-14/new_device
> > > i2c i2c-14: new_device: Instantiated device eeprom at 0x50
> > > root at semitruck:~#
> > > root at semitruck:~# ls -l /sys/bus/i2c/devices/14-0050/
> > > -r--r--r--    1 root     root          4096 Jul 29 15:20 modalias
> > > -r--r--r--    1 root     root          4096 Jul 29 15:20 name
> > > drwxr-xr-x    2 root     root             0 Jul 29 15:20 power
> > > lrwxrwxrwx    1 root     root             0 Jul 29 15:20 subsystem ->
> > > ../../../../../../../bus/i2c
> > > -rw-r--r--    1 root     root          4096 Jul 29 15:20 uevent
> > >
> > > root at semitruck:~# echo "24c64 0x50" > /sys/bus/i2c/devices/i2c-14/new_device
> > > at24 14-0050: 8192 byte 24c64 EEPROM, writable, 1 bytes/write
> > > i2c i2c-14: new_device: Instantiated device 24c64 at 0x50
> > > root at semitruck:~# ls -l /sys/bus/i2c/devices/14-0050/
> > > drwxr-xr-x    3 root     root             0 Jul 29 15:46 14-00500
> > > lrwxrwxrwx    1 root     root             0 Jul 29 15:46 driver ->
> > > ../../../../../../../bus/i2c/drivers/at24
> > > -rw-------    1 root     root          8192 Jul 29 15:46 eeprom
> > > -r--r--r--    1 root     root          4096 Jul 29 15:46 modalias
> > > -r--r--r--    1 root     root          4096 Jul 29 15:46 name
> > > drwxr-xr-x    2 root     root             0 Jul 29 15:46 power
> > > lrwxrwxrwx    1 root     root             0 Jul 29 15:46 subsystem ->
> > > ../../../../../../../bus/i2c
> > > -rw-r--r--    1 root     root          4096 Jul 29 15:46 uevent
> > >
> > > For entity-manager, I can add the type and it'll do the right thing.
> > > However, when FruDevice runs first and populates the FRUs, it doesn't
> > > seem to detect the difference in the eeproms.  I don't know enough (as
> > > previously stated) to jump into fixing this, so I wanted to check if
> > > this was a known limitation (presumably) and whether there was a plan
> > > to fix it?
> >
> > FruDevice basically does a i2cdetect, i2cdump, then reads the fru data
> > and sees if it looks like a fru. Do i2cdetect and i2cdump work with this
> > eeprom?

I have some questions regarding this approach:
1. How do you specify the 'pagesize' property? (or is it meant to be
implemented as a read-only eeprom afterall?)

2. Could it be implemented as a map of specified devices to the kernel
device name to load?

> >
> > I know for 16 bit eeproms, that it doesn't work correctly, as in this
> > thread:
> > https://lists.ozlabs.org/pipermail/openbmc/2019-July/017134.html
> >
> > There's also a issue: https://github.com/openbmc/entity-manager/issues/1
> > with a link to using device tree.
> >
> > I don't have any of these eeproms available to try that don't work, I
> > can't comment on others attempts to get them going.
>
> Ok, I'll take a look when I get a little further into this.  Currently
> it's adding an eeprom as /_0 in the device-tree.  So, I have a hunch
> it's related.
>
> Patrick
>
> >
> > -James
> >
> > >
> > > Patrick
> > >



-- 
Regards,
Kun


More information about the openbmc mailing list