ARM System Control and Management Interface

Overview

System Control and Management Interface (SCMI) is a specification developed by ARM, which describes a set of OS-agnostic software interfaces used to perform system management (e.g: clock control, pinctrl, etc…). In this context, Zephyr acts as an SCMI agent.

Note

The Zephyr implementation may only include a subset of the features or functionalities mentioned throughout this document.

Standard protocols

The set of supported standard [1] protocols is summarized below:

ID

Name

Supported version

0x10

Base protocol

2.1

0x11

Power domain management protocol

3.1

0x12

System power management protocol

2.1

0x14

Clock management protocol

3.0

0x19

Pin Control protocol

1.0

Transports

The set of supported transports is summarized below:

Name

Description

Compatible

MBOX

Shared memory with mailbox-based doorbell

arm,scmi

SMC

Shared memory with SMC-based doorbell

arm,scmi-smc

Vendor extensions

The SCMI specification allows vendors to introduce additional protocols and provides a degree of freedom with respect to how the platform firmware can behave in certain situations. In the context of this documentation, these are collectively known as vendor extensions.

NXP

NXP provides an SCMI-compliant platform firmware known as System Manager (SM). You may find its documentation here.

The set of supported NXP-specific protocols is summarized below:

ID

Name

Supported version

0x82

CPU

1.0

The set of supported NXP-specific quirks is summarized below:

  1. Depending on how the platform firmware is configured, the shared memory may contain a message CRC field that’s checked by the firmware on each received message. See CONFIG_ARM_SCMI_NXP_VENDOR_EXTENSIONS.

Footnotes