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