External MCTP VDM Commands Spec

Overview

This document specifies the external command protocol used by the Baseboard Management Controller (BMC) to communicate with the device integrating the Caliptra RoT subsystem. The protocol is based on the MCTP (Management Component Transport Protocol) over the I3C interface and uses a vendor-defined IANA message type (0x7F).

Protocol

  • Transport Layer: MCTP
  • Message Type: The message type is 0x7F as per the MCTP Base Specification. This message type supports Vendor Defined Messages, where the vendor is identified by an IANA enterprise number. The initial message header is specified in the MCTP Base Specification and detailed below for completeness:
Field NameByte(s)Description
Request Data
IANA Enterprise ID1:4The MCTP Vendor ID formatted per 01h Vendor ID format offset.
Vendor-Defined Message Body5:NVendor-defined message body, 0 to N bytes.
Response Data
IANA Enterprise ID1:4The value is formatted per 01h Vendor ID offset.
Vendor-Defined Message Body5:MVendor-defined message body, 0 to M bytes.

The IANA Enterprise ID is a 32-bit unsigned integer assigned by IANA. The message body and content are described in the sections below.

Message Format

This section describes the MCTP message format used to support Caliptra subsystem external command protocol. The request/response message body encapsulates the Vendor Defined MCTP message within the MCTP transport. Details of MCTP message encapsulation can be found in the MCTP Base Specification. The MCTP Get Vendor Defined Message Support command allows discovery of the vendor-defined messages supported by an endpoint. This discovery process identifies the vendor organization and the supported message types. The format of this request is specified in the MCTP Base Specification.

For the Caliptra external command protocol, the following information is returned in response to the MCTP Get Vendor Defined Message Support request:

  • Vendor ID Format: 1
  • OCP Vendor ID: 42623

The following table describes the Caliptra MCTP VDM (IANA) message body layout. Byte offsets are zero-based from the first byte of the MCTP message body.

Byte OffsetBit(s)Field NameValue / Description
+07ICMCTP integrity check bit. Indicates whether the MCTP message is covered by an overall MCTP message payload integrity check.
+06:0Message TypeMCTP Vendor Defined Message type. Caliptra MCTP VDM (IANA) uses message type 0x7F.
+1:+431:0MCTP IANA Enterprise IDIANA enterprise ID for the vendor. Caliptra messages use the OCP Vendor ID 42623 (0x0000A67F), encoded most-significant byte first.
+57Request TypeSet to 1 for requests and 0 for responses.
+56:0ReservedReserved and set to 0.
+67:0Caliptra Command CodeCaliptra command code assigned from the Caliptra range reserved in the OCP command registry.
+7:NN/AMessage PayloadRequest payload, or response completion code followed by command-specific response data.
Last bytes, if presentN/AMsg Integrity CheckOptional MCTP message integrity check. If present, as indicated by the MCTP IC bit, the Message Integrity Check field is carried in the last bytes of the MCTP message body.

The protocol header fields are to be included only in the first packet of a multiple-packet MCTP message. After reconstruction of the message body, the protocol header will be used to interpret the message contents. Reserved fields must be set to 0.

All MCTP VDM (IANA) responses carry a 32-bit OCP completion code immediately after the MCTP VDM header. Command-specific response data, if any, follows the completion code. The completion code is transport-specific response status and is not included in the transport-agnostic common response payload tables.

Command List and Definitions

This transport carries Caliptra common commands that do not require SPDM authorization, SPDM-defined semantics, or SPDM streaming/chunking. Command payload definitions are shared with the transport-agnostic Caliptra Common Commands specification.

The command codes below use the Caliptra range reserved in the OCP command registry.

Command CodeCommand NameDescription
0x01FirmwareVersionRetrieve firmware version information.
0x02DeviceCapabilitiesRetrieve device capabilities.
0x03GetDebugLogRetrieve the MCU runtime debug log.
0x04ClearDebugLogClear the MCU runtime debug log.