System Control and Management Interface
Page 14 of 81 Copyright © 2017 ARM Limited or its affiliates. All rights reserved. ARM DEN 0056A
Non-Confidential
the associated asynchronous command. The payload that is associated with a delayed response
includes a status error code, but might include additional data.
Notifications
Notifications have a message type of 3.
Notifications provide a mechanism for the platform to inform agents about events taking place in the
platform. Optionally, the implementation can provide information about which agent caused an event.
To this end, a notification payload carries an agent identifier, agent_id, as its first parameter. The
agent_id is an integer identifier that can be used to codify the agent that generated an event. The
agent_id uses the following rules:
• A value of 0 identifies the platform itself.
• Where implemented, agent_ids are sequential and start from one.
• Agent identifiers and their mapping to other components are platform-specific. Where
necessary, this must be described to operating system through firmware table technologies such
as FDT or ACPI.
• If agent identification is not supported, the implementation must set the agent_id to zero in
notifications.
4.1.3 Protocol discovery
This specification encompasses various protocols. However, not every protocol has to be present in an
implementation, because not every protocol is relevant for every market segment. Furthermore, the
platform chooses which protocols it exposes to a given agent. The only protocol that must be
implemented is the base protocol, which is described in section 4.2. The base protocol is used by an
agent to discover which protocols are available to it.
All protocols, whether they are generic or vendor specific, must implement three messages with
message_ids of 0x0, 0x1, and 0x2 as described in Table 4.
Table 4 Required messages
Protocols might implement additional discovery messages.
Protocol versioning uses a 32-bit unsigned integer, where the upper 16 bits are the major revision, and
the lower 16 bits are the minor revision.
The following rules apply to the version numbering:
• Higher numbers denote newer versions.