Add MTM BMC Feature Control IPMI command

Certain features having security concerns needs to be enabled/disabled
only in manufacturing mode. Add a command to support the same for MCTP
feature.

In addition to starting or stopping a service, add an option to enable
or disable a service which will persist across AC cycles.

Request bytes:
Byte 1 – Supported features
     00h - MCTP
     01h to FFh - reserved (will be adding support for more features
as needed)
Byte 2 – Enable/Disable feature
    00h – Stops the given feature
    01h – Starts the given feature
    02h - Disables the given feature
    03h - Enables the given feature
    04h to FFh – reserved
Byte 3 - Custom feature arguments
  When byte 2 value is 00h:
    00h - MCTP over PCIe
    01h - MCTP over SMBus HSBP
    02h - MCTP over SMBus PCIe slot
    03h to FFh - reserved
Byte 4:5 – reserved

Tested:
Verified MCTP feature can be enabled/disabled as expected in MTM mode
the change will persist across AC cycles.

Signed-off-by: Arun P. Mohanan <arun.p.m@linux.intel.com>
Signed-off-by: Sumanth Bhat <sumanth.bhat@linux.intel.com>
Change-Id: I8f8be36ee3e0fd85cfb1e44599cd0db0a6a8d34a
4 files changed
tree: 20ea47b505f8fa4c834effee28a98375ff4ec3c8
  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