I3C Common Command Codes

This page provides an overview of CCCs, their functions, and the ones currently supported in the Binho family of products.

What are Common Command Codes?

Common Command Codes (CCCs) are I3C's standardized command set enabling access to various standard functions. Support for CCCs depends ultimately on the targets. CCCs are classified as BROADCAST or DIRECT:

  • Broadcast CCCs:

    • Addressed to all I3C target devices on the I3C bus.

    • All Broadcast CCCs are write operations.

  • Direct CCCs:

    • Typically directed to a single target device (e.g., DUT) on the I3C bus, identified by its dynamic address.

    • Some direct write CCCs can use a group address.

    • If a response is required, only the specifically addressed target device will reply.

    • Direct CCCs can be classified as read, write, or read/write.

Brief Descriptions and References

DISEC and ENEC (Enable/Disable Events Command)

Available BOTH as DIRECT and BROADCAST

Allows the Controller to control target-initiated traffic on the I3C bus. ENEC enables traffic, DISEC disables traffic.

This CCC controls:

  • Target In-Band Interrupts (ENINT/DISINT) *

  • Requests for the Controller Role (ENCR/DISCR)

  • Hot Join Signaling (ENHJ/DISHJ) *

    • These commands can prevent the target from making Dynamic Address Assignment requests.

* Enabled by Default

Specification VersionIncludedReference Section

I3C Basic v1.0

I3C Basic v1.1.1

ENDXFER (Data Transfer Ending Procedure Control)

Available BOTH as DIRECT and BROADCAST

Allows the Controller and Target devices to exchange setup parameters for terminating data transfers in supported HDR modes.

Reference:

Specification VersionIncludedReference Section

I3C Basic v1.0

Unsupported

I3C Basic v1.1.1

ENTASX (Enter Activity State X)

Available BOTH as DIRECT and BROADCAST

Allows the Controller to inform Targets of inactivity periods on the bus, allowing them to enter lower power states.

Activity States:

  • Activity State 0: 1 microsecond (latency-free operation)

  • Activity State 1: 100 microseconds

  • Activity State 2: 2 milliseconds

  • Activity State 3: 50 milliseconds (lowest-activity operation)

Specification VersionIncludedReference Section

I3C Basic v1.0

I3C Basic v1.1.1

GETACCCR (Get Accept Controller Role)

Available ONLY as DIRECT

Enables the verification of a Controller Role request and enables the Active Controller to transfer the role to a Secondary Controller. If the Second Controller accepts the role, it responds with its Dynamic Address (matching the target's address). If it NACKs or returns an invalid address, the Secondary Controller will not assume the Controller Role.

Specification VersionIncludedReference Section

I3C Basic v1.0

Link to Spec [PDF] (as GETACCMST)

I3C Basic v1.1.1

GETBCR (Get Bus Characteristics Register)

Available ONLY as DIRECT

Allows the Controller to get the Bus Characteristics Register of a target.

Specification VersionIncludedReference Section

I3C Basic v1.0

I3C Basic v1.1.1

GETCAPS (Get Optional Feature Capabilities)

Available ONLY as DIRECT

Allows the Controller to check which optional I3C features a Target supports. Responses are 2 to 4 bytes.

Specification VersionIncludedReference Section

I3C Basic v1.0

Unsupported

I3C Basic v1.1.1

GETDCR (Get Device Characteristics Register)

Available ONLY as DIRECT

Enables the Controller to retrieve the Device Characteristics Register from a Target device.

Specification VersionIncludedReference Section

I3C Basic v1.0

I3C Basic v1.1.1

GETMRL / SETMRL (Get/Set Max Read Length)

SETMRL is available both in DIRECT and BROADCAST, GETMRL is DIRECT ONLY

Allows the Controller to set or get a maximum data read length in bytes, and optionally, a maximum IBI payload size. The first 2 bytes indicate the Max Read Length, with a minimum of 16 bytes. A response of 0 means the Max Read Length is less than 16 bytes; otherwise, it shows the length in bytes. If the device's BCR bit 2 is set, a third byte for Max IBI payload size is included. A value of 0 means unlimited, and the minimum depends on Timing Control (4 or 5 bytes if used, or 1 byte if not used).

Specification VersionIncludedReference Section

I3C Basic v1.0

I3C Basic v1.1.1

GETMWL / SETMWL (Get/Set Max Write Length)

SETMWL is available both in DIRECT and BROADCAST, GETMWL is DIRECT ONLY

Allows the Controller to set or get the maximum data write length in bytes. This limit does not apply to BROADCAST CCCs as their data sizes are fixed. The minimum value you can set is 16 bytes. If a Target responds with 0, it means the Max Write length is less than 16 bytes. Any other response indicates the number of bytes.

Specification VersionIncludedReference Section

I3C Basic v1.0

I3C Basic v1.1.1

GETMXDS (Get Max Data Speed)

Available ONLY as DIRECT

Allows the controller to determine a Target's SDR mode data speed limitations. The response is provided in one of two possible formats, indicated by the number of bytes returned:

  • FORMAT 1: 2 bytes containing Maximum Write Speed and Maximum Read Speed.

  • FORMAT 2: 5 bytes, including 2 bytes for Maximum Write Speed and Maximum Read Speed, plus 3 bytes for Maximum Read Turnaround Time.

The format used depends on whether the target needs to communicate its Maximum Read Turnaround Time.

Specification VersionIncludedReference Section

I3C Basic v1.0

I3C Basic v1.1.1

GETPID (Get Provisioned ID)

Available ONLY as DIRECT

Allows the controller to get the 48-bit (6-byte) Provisioned ID of a target.

Specification VersionIncludedReference Section

I3C Basic v1.0

I3C Basic v1.1.1

GETXTIME (Get Exchange Timing Information)

Available ONLY as DIRECT

Allows the controller to query the exchange timing capabilities of a Target. The response contains four bytes that provide key information on supported Timing Control modes, current state, internal clock frequency, and accuracy. The response bytes are interpreted as follows:

Specification VersionIncludedReference Section

I3C Basic v1.0

I3C Basic v1.1.1

RSTDAA (Reset Dynamic Address Assignment)

Available ONLY as BROADCAST

This CCC indicates all Targets to clear their assigned Dynamic and Group Addresses (if applicable). After clearing, all Target devices should be ready to participate in Dynamic Address Assignment, SETDASA or SETAASA, or communicate via I2C.

Specification VersionIncludedReference Section

I3C Basic v1.0

I3C Basic v1.1.1

ENTDAA (Enter Dynamic Address Assignment)

Available ONLY as BROADCAST

Allows the Controller to indicate all targets to enter the Dynamic Address Assignment procedure. Target devices with an already assigned Dynamic Address do not respond to this command.

Specification VersionIncludedReference Section

I3C v1.0

I3C v1.1.1

SETAASA (Set All Addresses to Static Addresses)

Available ONLY as BROADCAST

Allows the Controller to request that all Targets that have an I2C Static Address set it as their Dynamic Address. This is the fastest way to assign Dynamic Addresses.

Specification VersionIncludedReference Section

I3C Basic v1.0

I3C Basic v1.1.1

SETBUSCON (Set Bus Context)

Available ONLY as BROADCAST

Enables the Controller to specify a particular context on the I3C bus, either a higher-level protocol developed by a standards-developing organization or the version of I3C Basic in use. Targets respond only to contexts they recognize. This command can be used multiple times to set and support a layered protocol context.

Specification VersionIncludedReference Section

I3C Basic v1.0

Unsupported

I3C Basic v1.1.1

SETDASA (Set Dynamic Address from Static Address)

Available ONLY as DIRECT

Allows the Controller to assign a Dynamic Address to a Target via its Static Address (therefore, the target must have an I2C Static Address). This CCC is faster than the Dynamic Address Assignment Procedure (ENTDAA) and should be used beforehand. SETDASA is particularly useful for simple point-to-point communication in an I3C minimal bus, consisting of a single Controller and Target.

Specification VersionIncludedReference Section

I3C Basic v1.0

I3C Basic v1.1.1

SETNEWDA (Set New Dynamic Address)

Available ONLY as DIRECT

Allows the Controller to assign a new Dynamic Address to a Target that already has an existing Dynamic Address.

Specification VersionIncludedReference Section

I3C Basic v1.0

I3C Basic v1.1.1

SETXTIME (Set Exchange Timing Information)

Available BOTH as DIRECT and BROADCAST

Allows the Controller and Targets to exchange event timing information for synchronizing controls, collecting or reconstructing timestamps, and specifying the timing data procedure. A defining byte is required to specify a sub-command, and while some sub-commands may require additional data, none that do so are currently supported.

Specification VersionIncludedReference Section

I3C Basic v1.0

I3C Basic v1.1.1

SETGRPA (Set Group Address)

Available ONLY as DIRECT

Allows the Controller to assign a Group Address to an I3C Target that supports the Group Address feature. The Target will then respond to both the assigned Group and Dynamic addresses. If multiple I3C Targets share the same Group Address, a single message sent by the Controller to that Group Address will be received by all of those I3C Targets simultaneously.

Specification VersionIncludedReference Section

I3C Basic v1.0

Unsupported

I3C Basic v1.1.1

RSTACT (Target Reset Action)

Available BOTH as DIRECT and BROADCAST

This CCC, available as both Broadcast (WRITE) and Direct (READ/WRITE), configures the next Target Reset action and can be used to retrieve the Target's reset recovery timing. It is used alongside the Target Reset Pattern to initiate a reset on the Target.

Specification VersionIncludedReference Section

I3C Basic v1.0

Unsupported

I3C Basic v1.1.1

GETSTATUS (Get Device Status)

Available ONLY as DIRECT

Allows the controller to get the current status from the Target.

Specification VersionIncludedReference Section

I3C Basic v1.0

I3C Basic v1.1.1

DEFTGTS (Define List of Targets)

Available ONLY as BROADCAST

Allows the Main Controller to tell the Secondary Controllers what Targets (and Groups) are on the I3C Bus.

Specification VersionIncludedReference Section

I3C Basic v1.0

Link to Spec [PDF] (as DEFSLVS)

I3C Basic v1.1.1

Supported CCCs

Here is a table showing the current CCC support in Supernova for I3C Targets and Controllers, alongside their Software Platforms:

CCCTypeSupernovaSDK (Python)S. ControllerBridgeBMCNotes

ENEC

DIRECT/BROADCAST

DISEC

DIRECT/BROADCAST

ENTASX

BROADCAST

RSTDAA

BROADCAST

ENTDAA

BROADCAST

SETMWL

DIRECT/BROADCAST

SETMRL

DIRECT/BROADCAST

SETBUSCON

BROADCAST

ENDXFER

DIRECT/BROADCAST

SETXTIME

DIRECT/BROADCAST

SETAASA

BROADCAST

Not supported in Supernova in target mode.

RSTACT

DIRECT/BROADCAST

RSTGRPA

DIRECT/BROADCAST

SETDASA

DIRECT

SETNEWDA

DIRECT

GETMWL

DIRECT

GETMRL

DIRECT

GETPID

DIRECT

GETBCR

DIRECT

GETDCR

DIRECT

GETSTATUS

DIRECT

GETACCCR

DIRECT

Supernova as a target does not support I3C Secondary Controller Role (yet)

GETMXDS

DIRECT

GETCAPS

DIRECT

Currently a Defining Byte for GETCAPS is NOT supported.

GETXTIME

DIRECT

SETGRPA

DIRECT

CCCs or their types outside of this reference table are NOT supported at the moment. These include:

  • BROADCAST DEFTGTS: This will be supported when I3C Secondary Controller mode is supported

  • BROADCAST ENTTM

  • BROADCAST DEFGRPA: This will be supported when I3C Secondary Controller mode is supported

  • DIRECT ENTASX

  • DIRECT SETBRGTGT

  • DIRECT SETROUTE

  • BROADCAST/DIRECT ENTHDR0: This will be supported when HDR-DDR mode is supported

  • BROADCAST/DIRECT ENTHDR1: The Supernova does not support HDR - TSP mode

  • BROADCAST/DIRECT ENTHDR2: The Supernova does not support HDR - TSL mode

  • BROADCAST/DIRECT ENTHDR3: The Supernova does not support HDR - BT mode

  • BROADCAST/DIRECT MLANE: The Supernova does not support multi-lane

Last updated