Return error when SDR offset is out of range

When reading SDRs, if the requested offset is beyond the end of the SDR,
we should return an error indicating that the offset is out of range.

Tested:
Confirmed that reading offset 0x40 or 0x41 of a 64-byte SDR return an
error:
ipmitool raw 0xa 0x23 0x01 0x00 0x87 0x00 0x40 0x1
Unable to send RAW command (channel=0x0 netfn=0xa lun=0x0 cmd=0x23 rsp=0xc9): Parameter out of range
ipmitool raw 0xa 0x23 0x01 0x00 0x87 0x00 0x41 0x1
Unable to send RAW command (channel=0x0 netfn=0xa lun=0x0 cmd=0x23 rsp=0xc9): Parameter out of range

Change-Id: I3423dddadeb3d2a5e2075ae079d263503ac0679e
Signed-off-by: Jason M. Bills <jason.m.bills@intel.com>
1 file changed
tree: 0c00fe4426d76ad74fb173cdfff4203e2da7780a
  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-allowlist.py
  13. ipmi-allowlist.conf
  14. LICENSE
  15. OWNERS
  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