Advanced Topics

Dive into advanced protocols, security features, logging, and debug capabilities.

What You’ll Learn

  • MCTP and PLDM for platform management (sensors, firmware update, BIOS config)
  • SPDM for device attestation and security
  • Secure boot and image signing
  • Logging, diagnostics, and debug tools
  • POST code monitoring and debug dump collection
  • Firmware update mechanisms (BMC and BIOS/host firmware)
  • Linux kernel and application debugging (sanitizers, Valgrind)
  • eSPI communication (virtual wires, console, eDAF)
  • Unit testing with GTest/GMock
  • Integration testing with Robot Framework
  • Linux kernel patching for driver development
  • Multi-host BMC management
  • Performance optimization for constrained BMC environments

Topics

Protocols & Security

Modern platform management relies on standardized protocols for component communication and security.

Guide Description Difficulty
MCTP/PLDM Platform management protocols Advanced
PLDM Platform Monitoring Type 2 sensors, PDRs, effecters, events Advanced
SPDM Device attestation, security Advanced
Secure Boot & Signing Image signing, hardware root of trust Advanced
DICE Security Hardware root-of-trust for device identity and firmware attestation Advanced

Firmware Management

Guide Description
Firmware Update BMC/PNOR updates, signing
PLDM Firmware Update Type 5 device firmware update via PLDM
BIOS Firmware Management Host firmware update via BMC, BIOS config

Debug Features

Vendor-specific tools for deep system debugging.

Guide Description Platform
Intel ASD/ACD At-Scale Debug, Crash Dump, Error Injection Intel
AMD Debug & Management APML, HDT, EPYC system management AMD

Logging & Diagnostics

Capture events, errors, and diagnostic data for troubleshooting.

Guide Description
Logging Event logs, SEL, POST codes, debug dumps
SDR Sensor Data Records for IPMI
Linux Debug Tools ASan, UBSan, TSan, Valgrind, KASAN
Debug Dump Collection phosphor-debug-collector, dreport plugins
POST Code Monitoring BIOS POST codes, boot progress tracking

Host Communication

Low-level interfaces for BMC-to-host communication.

Guide Description Platform
eSPI Virtual wires, console, eDAF boot Intel/AMD

Testing

Validate code correctness with unit tests and system behavior with integration tests.

Guide Description Scope
Unit Testing GTest/GMock for C++ unit tests Single function/class
Robot Framework Integration testing with openbmc-test-automation Full system behavior

Kernel & Driver Development

Develop and debug Linux kernel drivers for BMC hardware.

Guide Description Difficulty
Linux Kernel Driver Development Kernel patching, out-of-tree modules, userspace drivers, debugging, I2C/SPI binding Advanced

Multi-Host & Platform Scaling

Manage multiple hosts from a single BMC and optimize for resource-constrained environments.

Guide Description Difficulty
Multi-Host Support Multi-host BMC management, instance routing Advanced
Performance Optimization Memory, startup, and I/O optimization Advanced

Protocol Stack

┌─────────────────────────────────────────────────────────────┐
│                    Application Layer                        │
│  ┌─────────────┐  ┌──────────────┐  ┌─────────────────────┐ │
│  │    PLDM     │  │    SPDM      │  │   Vendor Specific   │ │
│  │  (Type 0-5) │  │ (Attestation)│  │   (ASD, APML)       │ │
│  └─────────────┘  └──────────────┘  └─────────────────────┘ │
├─────────────────────────────────────────────────────────────┤
│                    Transport Layer                          │
│  ┌─────────────────────────────────────────────────────────┐│
│  │                       MCTP                              ││
│  │            (Management Component Transport)             ││
│  └─────────────────────────────────────────────────────────┘│
├─────────────────────────────────────────────────────────────┤
│                    Physical Layer                           │
│  ┌───────────┐  ┌───────────┐  ┌───────────┐  ┌──────────┐  │
│  │  SMBus    │  │   PCIe    │  │    I3C    │  │   USB    │  │
│  └───────────┘  └───────────┘  └───────────┘  └──────────┘  │
└─────────────────────────────────────────────────────────────┘

Prerequisites

Advanced features often require specific hardware support. Check your platform capabilities before implementing.


Table of contents


Back to top

OpenBMC Guide Tutorial is not affiliated with the OpenBMC project. Content is provided for educational purposes.

This site uses Just the Docs, a documentation theme for Jekyll.