Thank you for using AMD APML Library (formerly known as EPYC™ System Management Interface (E-SMI) Out-of-band Library).

NEW! APML Library (E-SMI OOB library) 3.2.0 is now available

The APML (Advanced Platform Management Link) (Formerly called EPYC™ System Management Interface Out-of-band) Library, is a C-library based on new apml modules (apml_sbrmi and apml_sbtsi) for BMCs running Linux distributions communicating to the processor socket using I2C/I3C bus. APML (E-SMI OOB) library provides APIs for Out-of-band user space software to monitor and control the CPU’s power, energy, performance, and other system management functionality.

User Guide

Highlights of major release v3.2.0

Add support for new APML features on family 1Ah and model 00h - 0Fh

  • New SBRMI mailbox messages adding support for Runtime errors
  • Runtime error validity check & Runtime error info
  • RAS set threshold
  • RAS set/get OOB config
  • RTC timer
  • Bug fixes & Cosmetic changes

Highlights of major release v3.1.0

Add support for the new APML features on family 19h AMD model 90h - 9Fh

  • New SBRMI mailbox messages including, [80h and later]
  • GPU Telemetry
  • HBM Telemetry
  • BIST result on basis of DIE-IDs
  • Number of sockets in system/node
  • New SBTSI Registers
  • HBM configuration
  • HBM Temperature High and Low Threshold
  • APML tool, new improved TSI summary

Add support for the following mailbox messages

  • Read microcode revision
  • Read CCLK Frequency Limit
  • Read socket C0 residency
  • Read PPIN fuse
  • BMC RAS DF Error validity check
  • BMC RAS DF Error Dump
  • Using revision instead of cpuid for messages 8h and 9h
  • Changes as per apml modules change to name misc. device on the basis
  • of device static address for RMI and TSI (sbrmi0 -> sbrmi-3c)
  • Update alertmask and alert status to support all the threads
  • APML socket recovery mechanism
  • Bug fixes & Cosmetic changes

Highlights of release v2.1

  • Update library/tool based on APML spec from PPR for AMD Family 19h Model 11h B1
  • Introduced a module in apml_tool to provide cpuid information
  • Bug fix (display temperature)

Highlights of major release v2.0

  • Renamed the ESMI_OOB library to the APML library
  • Optimized the library to use APML modules (apml_sbrmi and apml_sbtsi)
    • This helps achieve better locking across the protocols
    • APML modules probe the APML devices and provide interfaces
  • Added features supported on Family 19h Model 10h-1Fh:
    • APML support over I2C and APML over I3C
    • Handle thread count >127 per socket
    • CPUID and MSR read over I3C

Highlights of release v1.1

  • Single command to create Doxygen-based PDF document
  • Improved the E-SMI tool

Highlights of release v1.0

APIs to Monitor and control the following feature

  • Power
    1. Get current power consumed
    2. Get and set cap/limit
    3. Get max power cap/limit
  • Performance
    1. Get/Set APML boost limit
    2. Get DDR bandwidth
    3. Set DRAM throttle
    4. C0 residency
  • Temperature
    1. Get CPU temperature
    2. Set High/Low temperature threshold
    3. Set Temp offset
    4. Set alert threshold sample & alert config
    5. Set readorder
  • Single command to create doxygen based PDF document

Specifications

Supported Processors

  • Family 17h model 31h
  • Family 19h model 0h~0Fh, 10h~1Fh, 90h - 9Fh
  • Family 1Ah model 0h~0Fh

Supported BMCs

Compile this library for any BMC running Linux. Use the APML Library/tool Support to provide your feedback.

Supported Operating Systems

APML library is tested on OpenBMC for Aspeed and RPI-based BMCs with the following:

Prerequisites

Hardware requirements

BMC with I2C/I3C controller as master and I2C/I3C master adapter channel (SCL and SDA lines) connected to the "Supported Processors".

Software Requirements

To build the APML library, the following components are required.

Note: The listed software versions are being used in development, earlier versions are not guaranteed to work.

Compilation Requirements

  • CMake (v3.5.0)
  • APML library upto v1.1 depends on libi2c-dev
  • Doxygen (1.8.13)
  • LaTeX (pdfTeX 3.14159265-2.6-1.40.18)

Dependencies

APML library upto v1.1 depends on libi2c-dev. The later versions depend on the apml_modules (hosted on github.com/amd/apml_modules).

Linux kernel: APML modules

  • apml_sbrmi
  • apml_sbtsi

Resources and Technical Support

Resources

Support

Thank you for using the APML Library (E-SMI OOB library). Please use APML Library Support for bug reports, support, and feature requests.