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
- Strong understanding of Architecture
- Familiarity with Core Services
- Experience with Interfaces
- Knowledge of low-level hardware interfaces (I2C, PCIe)
Advanced features often require specific hardware support. Check your platform capabilities before implementing.
Table of contents
- MCTP & PLDM Guide
- SPDM Guide
- Firmware Update Guide
- Intel ASD/ACD Guide
- AMD Debug & Management Guide
- Logging Guide
- SDR Guide
- Linux Debug Tools Guide
- eSPI Guide
- Unit Testing Guide
- Robot Framework Guide
- Linux Kernel Driver Development
- Secure Boot & Image Signing
- Multi-Host Support
- Performance Optimization
- BIOS Firmware Management
- Debug Dump Collection
- POST Code Monitoring
- PLDM Platform Monitoring
- PLDM Firmware Update
- DICE Security