Machdep

Engineering across the hardware–kernel boundary.
PCB systems and FreeBSD kernel expertise, unified into reliable embedded platforms.

SCMI support development for FreeBSD

Bringing Modern Firmware Interface to ARM Systems

What is SCMI?

SCMI stands for System Control and Management Interface. It is a specification developed by ARM, which describes a set of OS-agnostic software interfaces used to communicate for system management tasks.

What problem SCMI solves

SCMI is a standardized communication protocol that allows an operating system like FreeBSD to interact with higher-privileged firmware running on a dedicated controller. Instead of FreeBSD directly manipulating hardware, it sends SCMI messages to the firmware, which safely performs tasks such as:

This client-server model—FreeBSD as the client and firmware as the server—provides secure, portable, and efficient hardware control. SCMI abstracts the hardware details away from the OS, meaning the same FreeBSD kernel can run on multiple SoCs without needing vendor-specific hacks.

In short, SCMI acts as a bridge between FreeBSD and firmware that runs in upper privileged levels (like ARM Trusted Firmware in EL3). This allows the OS to request system-level operations while keeping the actual control safely within the privileged firmware. This standardization not only simplifies development but also enhances system reliability, security, and energy efficiency.

Project Goals

  • Bring Initial SCMI support for FreeBSD
  • Bring shared memory transport driver for SCMI
  • Bring ARM message Handling Unit (MHU) Doorbell

Source code

Initial commit to FreeBSD