OpenBMC - FRU inventory with Entity Manager
Andrei Kartashev
a.kartashev at yadro.com
Thu Aug 27 16:10:02 AEST 2020
Since there is a plan to move to EM for inventory, I believe it is
really good idea to also have support for FruDevice in phosphor-host-
ipmid. Then we can have a common way on how to handle it.
Same for SDR BTW.
But there is other thing: there is catastrophically not enough
documentation for EntityManager/dbus-sensors. Looks like common way
just to adjust existing config and hope that it still will work.
<sorry, was all the day trying to get adcsensors work yesterday>
On Thu, 2020-08-27 at 11:13 +0530, Deepak Kodihalli wrote:
> On 27/08/20 11:02 am, Vijay Khemka wrote:
> > I don't think ipmi fru command is pointing to the right dbus object
> > of FruDevice. We may have to fix or add this support in ipmid for
> > standard fru command. Currently this command has been overridden by
> > intel-ipmi-oem and fb-ipmi-oem for their respective target. If you
> > add intel-ipmi-oem to your image then it should work.
>
> It seems like several ipmi-oem implementations (intel, fb and likely
> several others) rely on the FruDevice to prepare IPMI FRU
> information,
> so this code is likely getting duplicated across the ipmi-oem repos.
> Should this be the other way around, i.e house the FruDevice based
> implementation in phosphor-host-ipmid and the current
> phosphor-host-ipmid implementation, which expects YAML config files,
> should be in an ibm-ipmi-oem repo?
>
> Regards,
> Deepak
>
> > Regards
> > -Vijay
> >
> > On 8/26/20, 5:54 PM, "openbmc on behalf of Jiandi An" <
> > openbmc-bounces+vijaykhemka=fb.com at lists.ozlabs.org on behalf of
> > jan at nvidia.com> wrote:
> >
> > Hi,
> >
> > Have a question related how IPMI fru command is handled when
> > having FRU inventory handled by Entity Manager.
> > I've enabled Entity Manager and through the config JSONs, got
> > the entity manager to probe FRU config information off of EEPROM
> > and getting the FruDevice inventory D-Bus object added.
> > For example I I have /xyz/openbmc_project/FruDevice/My_FRU
> > show up under xyz.openbmc_project.FruDevice. And I can introspect
> > it. But I can't get that FRU to be handled and displayed when I
> > ran "ipmitool fru"
> >
> > root at bmc:~# busctl tree --no-pager
> > xyz.openbmc_project.FruDevice
> > └/xyz
> > └/xyz/openbmc_project
> > └/xyz/openbmc_project/FruDevice
> > └/xyz/openbmc_project/FruDevice/My_FRU
> >
> > root at bmc:~# busctl introspect --no-pager
> > xyz.openbmc_project.FruDevice /xyz/openbmc_project/FruDevice/My_FRU
> > NAME
> > TYPE SIGNATURE RESULT/VALUE
> > FLAGS
> > org.freedesktop.DBus.Introspectable interface -
> > -
> > -
> > .Introspect m
> > ethod - s
> > -
> > org.freedesktop.DBus.Peer interface
> > - -
> > -
> > .GetMachineId method
> > - s
> > -
> > .Ping
> > method - -
> > -
> > org.freedesktop.DBus.Properties interface
> > - -
> > -
> > .Get
> > method ss v
> > -
> > .GetAll
> > method s a{sv}
> > -
> > .Set
> > method ssv -
> > -
> > .PropertiesChanged signal
> > sa{sv}as -
> > -
> > xyz.openbmc_project.FruDevice interface
> > - -
> > -
> > .ADDRESS pr
> > operty u 84
> > emits-change
> > .BOARD_INFO_AM1 property
> > s "\001"
> > emits-change
> > .BOARD_LANGUAGE_CODE property
> > s "25"
> > emits-change
> > .BOARD_MANUFACTURER property
> > s "XYZ COMPANY" emits-
> > change
> > .BOARD_MANUFACTURE_DATE property s
> > "2020-01-01 - 12:00:00" emits-change
> > .BOARD_PART_NUMBER property
> > s "123.ABCD.1234" emits-
> > change
> > .BOARD_PRODUCT_NAME property
> > s "My
> > FRU" emits-change
> > .BOARD_SERIAL_NUMBER property
> > s "123ABC" e
> > mits-change
> > .BUS
> > property u 2
> > emits-change
> > .CHASSIS_PART_NUMBER property
> > s "123-12345-1234-000" emits-
> > change
> > .CHASSIS_SERIAL_NUMBER property
> > s "1234567890123" emits-
> > change
> > .CHASSIS_TYPE proper
> > ty s "23"
> > emits-change
> > .Common_Format_Version property
> > s "1"
> > emits-change
> > .PRODUCT_ASSET_TAG property
> > s "0000000000000" emits
> > -change
> > .PRODUCT_FRU_VERSION_ID property
> > s "v0.5"
> > emits-change
> > .PRODUCT_LANGUAGE_CODE property s
> > "25"
> > emits-change
> > .PRODUCT_MANUFACTURER property
> > s "XYZ COMPANY" emits-
> > change
> > .PRODUCT_PART_NUMBER property
> > s "123-12345-1234-000" emits-change
> > .PRODUCT_PRODUCT_NAME property
> > s "TBD"
> > emits-change
> > .PRODUCT_SERIAL_NUMBER property
> > s "1234567890123" emits-
> > change
> > .PRODUCT_VERSION property
> > s "v1.0"
> > emits-change
> >
> > When I ran the standard IPMI fru command, it always defaults
> > to getting Builtin FRU Device, and dimm0, dimm1, cpu0, cpu1 FRUs
> > and of course they are not there so it fails. Is there anything
> > that I'm missing to get the standard IPMI fru command to map to the
> > DBUS object xyz.openbmc_project.FruDevice
> > /xyz/openbmc_project/FruDevice/My_FRU under Entity Manger?
> >
> > root at dev-system:~# ipmitool -I lanplus -H $BMC_IP -U root -P
> > 0penBmc -C 17 fru
> > FRU Device Description : Builtin FRU Device (ID 0)
> > Device not present (Unspecified error)
> >
> > FRU Device Description : dimm0 (ID 1)
> > Device not present (Unspecified error)
> >
> > FRU Device Description : dimm1 (ID 2)
> > Device not present (Unspecified error)
> >
> > FRU Device Description : cpu0 (ID 3)
> > Device not present (Unspecified error)
> >
> > FRU Device Description : cpu1 (ID 4)
> > Device not present (Unspecified error)
> >
> > Thanks
> > - Jiandi
> >
More information about the openbmc
mailing list