OpenBMC - FRU inventory with Entity Manager

Deepak Kodihalli dkodihal at linux.vnet.ibm.com
Thu Aug 27 15:43:41 AEST 2020


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                                                  method               -                      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                                                    property              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"                                emits-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                                           property               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