Fix support for Get Payload.

Get Payload is split into two as follows:
1) Get Payload Info (ipmitool raw 0x30 0xd6 0 1):
Return info of Payload1 (pending list) data

2) Get Payload data (ipmitool raw 0x30 0xd6 1 1):
Return Payload1 (pending list) data.

Note: Pending list is the BIOS knobs edited by patch to
https://<IP>/redfish/v1/Systems/system/Bios/Settings,
which is stored in BMC.

Tested:
Step 1)
Patch to https://<IP>/redfish/v1/Systems/system/Bios/Settings
with the following data:
{
  "data":{
    "Ce2LmLoggingEn": "0x0",
    "CoreCrashLogDisable": "0x1",
    "CpuCrashLogClear": "0x0",
    "DfxEadrDebugLogs": "0x1",
    "DfxFadrDebugLogs": "0x1",
    "WheaLogMemoryEn": "0x1"
    }
}

Step 2)
Give command ipmitool raw 0x30 0xd6 0 1

Response:
 00 00 01 7e 00 00 00 08 4c d3 e9 00 01 a8 9e 00
 00

Step 3)
Give command ipmitool raw 0x30 0xd6 1 1 0x09 0 0 0 0x7e 0 0 0

Response:
 01 75 00 00 00 89 51 07 a0 69 6e 67 45 6e 3d 30
 78 30 0a 43 6f 72 65 43 72 61 73 68 4c 6f 67 44
 69 73 61 62 6c 65 3d 30 78 31 0a 43 70 75 43 72
 61 73 68 4c 6f 67 43 6c 65 61 72 3d 30 78 30 0a
 44 66 78 45 61 64 72 44 65 62 75 67 4c 6f 67 73
 3d 30 78 31 0a 44 66 78 46 61 64 72 44 65 62 75
 67 4c 6f 67 73 3d 30 78 31 0a 57 68 65 61 4c 6f
 67 4d 65 6d 6f 72 79 45 6e 3d 30 78 31 0a

Signed-off-by: Arun Lal K M <arun.lal@intel.com>
Change-Id: I6a3bec66f78c2c9b6296e3dbba7743971b372f75
2 files changed
tree: 7885540e8667b978a68bd13fc8d10f99ac54dde7
  1. cmake/
  2. docs/
  3. include/
  4. non-yocto/
  5. src/
  6. tests/
  7. .clang-format
  8. .gitignore
  9. cmake-format.json
  10. CMakeLists.txt
  11. CMakeLists.txt.in
  12. generate-whitelist.py
  13. ipmi-whitelist.conf
  14. LICENSE
  15. MAINTAINERS
  16. README.md
README.md

Intel IPMI OEM support library

This component is intended to provide Intel-specific IPMI[3] command handlers for OpenBMC. These handlers are intended to integrate BMC with servers based on Intel architecture.

Overview

intel-ipmi-oem serves as an extension[1] to OpenBMC IPMI daemon[2]. It is compiled as a shared library and intended to both:

  • override existing implementation of standard IPMI commands to comply with Intel-specific solutions,
  • provide implementation for non-standard OEM extensions.

Capabilities

Related features provided by the library are grouped in separate source files. Main extensions to vanilla OpenBMC IPMI stack are the following:

  • Acquiring SMBIOS data over IPMI
  • Commands for better integration with Intel hardware
  • Firmware update extensions
  • Extended parsing of IPMI Platform Events[4]

References

  1. OpenBMC IPMI Architecture
  2. Phosphor IPMI Host
  3. IPMI Specification v2.0
  4. Intel Platform Events parsing