NVIDIA OpenSMA Firmware Guide
A chapter-by-chapter, source-traced guide to
github.com/NVIDIA/OpenSMA —
NVIDIA’s open-source SMA (System Management Agent) firmware
for the NXP MCXN556S microcontroller. The guide walks from a clean
checkout through the build system to each firmware subsystem, and every
substantive claim carries a file:line citation back into the OpenSMA
tree.
Trace baseline. Every citation in this guide is authored against
9b183d3(upstream version02.0020.0000, 2026-07-07) onmain. See the Source map for the per-section source mapping and the Trace methodology appendix for the citation convention and how to re-verify anyfile:line.
What OpenSMA is
OpenSMA is the firmware that runs on an SMA management microcontroller.
Its build target in this baseline is the NXP MCXN556S dual-core
Cortex-M33 SoC, built via the mcxn547helloworld reference project on
the mcxn556-both platform (both cores). The firmware speaks the
platform-management stack a host BMC expects — MCTP transport,
PLDM and SPDM over it, plus SMBus/SSIF, USB, I2C/I3C — and owns
power, thermal, and telemetry control on the board.
- Target MCU: NXP MCXN556S (dual core: core0 / core1)
- Reference project / board:
mcxn547helloworld - Platform:
mcxn556-both(see Build System) - Languages: C, C++ (majority), Ada (GNAT), plus CMake/Make build glue
How to read this guide
| Section | What it covers |
|---|---|
| Setup | Reproduce a build from a clean checkout — packages, toolchains, SDK, patches |
| Architecture | How an image composes: source layout, BSP layers, core0/core1, toolchain |
| Build System | mcu_build.sh, corepdk/ubs + make, Docker, signing/keysets, MODE/board/platform |
| Transports & Buses | MCTP, IPC/mailbox, and the I2C/I3C/SPI/UART/USB/SSIF drivers |
| Management Protocols | PLDM and SPDM stacks, plus NHP/LSTP messaging |
| Security & Root-of-Trust | vRoT, secure boot, crypto, debug tokens, FW parsing |
| Platform Control & Telemetry | Fan/power control, voltage/perf monitoring, telemetry, FRU |
| Platform / BSP & Projects | src/sys SoC BSPs, boards, and build projects |
| Reference | Tooling (clang-tidy/format, doxygen), directory reference, CI |
| Appendices | Glossary, Symbol index, Trace methodology |
Source & scope
This guide traces OpenSMA; it does not fork, vendor, or modify the firmware. Citations resolve on GitHub at the pinned baseline:
https://github.com/NVIDIA/OpenSMA/blob/9b183d3eeff57babf5c87cd84d9e3e78340bde0f/<path>#L<line>
Implementation-rich subsystems get deep-dive chapters; the remaining
src/nv/* modules are catalogued in their section pages and the
Source map.