/smbios_blob_transfer

Software to transfer SMBIOS tables from Host to BMC over IPMI BLOB protocol

Primary LanguageC

Description

This repo contains utilities to transfer SMBIOS tables from Host to BMC over IPMI BLOB protocol.

Two implementations are available:

BMC requirements

BMC firmware should be based on the openbmc distribution.

You need to add smbios-mdr and phosphor-ipmi-blobs packages to the image.

Besides that you'll need to append the smbios-mdr recipe (recipes-phosphor/smbios/smbios-mdr_git.bbappend) with the following content:

PACKAGECONFIG:append = " smbios-ipmi-blob"

PACKAGECONFIG:remove = " cpuinfo"

Results

After the successful transfer of SMBIOS tables you can check out the objects created by the xyz.openbmc_project.Smbios.MDR_V2 service:

root@daytonax:~# busctl tree xyz.openbmc_project.Smbios.MDR_V2
`-/xyz
  `-/xyz/openbmc_project
    |-/xyz/openbmc_project/Smbios
    | `-/xyz/openbmc_project/Smbios/MDR_V2
    `-/xyz/openbmc_project/inventory
      `-/xyz/openbmc_project/inventory/system
        `-/xyz/openbmc_project/inventory/system/chassis
          `-/xyz/openbmc_project/inventory/system/chassis/motherboard
            |-/xyz/openbmc_project/inventory/system/chassis/motherboard/bios
            |-/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0
            |-/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1
            |-/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm0
            |-/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm1
            |-/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm10
            |-/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm11
            |-/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm12
            |-/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm13
            |-/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm14
            |-/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm15
            |-/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm2
            |-/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm3
            |-/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm4
            |-/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm5
            |-/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm6
            |-/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm7
            |-/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm8
            |-/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm9
            |-/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot0
            |-/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot1
            |-/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot2
            `-/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot3

Currently smbios-mdr parses only these types of SMBIOS tables (specification):

  • BIOS Information (Type 0)
  • System Information (Type 1)
  • Processor Information (Type 4)
  • System Slots (Type 9)
  • Memory Device (Type 17)

Here is an example how webui-vue can display the CPU information:

CPU.png

And here is an example of DIMM information display:

DIMM.png

If you want to display PCI devices as well, you should probably check the IBM fork of webui-vue.