Hard Processor System Technical Reference Manual: Agilex™ 5 SoCs

ID 814346
Date 4/01/2024
Public
Document Table of Contents

5.8.6.5.9.4. Directed CCC Transfer Targeted to Multiple Slaves

Each transfer command initiates directed CCC transfer to only one slave since it consists of only one DEV_INDX/SLV_ADDR field. To transfer the directed CCC command to multiple devices, pipeline the multiple transfer commands in the COMMAND_PORT with TOC bits set to zero and with the different DEV_INDX or SLV_ADDR fields pointing to multiple slaves. The I3C controller decodes the pipelined Transfer command during the transfer of directed CCC transfer and decides the next transfer based on the following:

  • If the current command and the pipelined command has the same directed CCC, then the controller targets the next slave without ending the CCC command.
  • If the current command and the pipelined command are not the same directed CCC, then the controller ends the CCC command and starts issuing the next transfer as indicated by the pipelined transfer command.

The application can set the ROC bit to 0 for the subsequent directed CCC commands and enable the ROC bit in the last CCC command if directed CCC transfer is targeted to multiple devices to avoid unnecessary responses.

The I3C controller halts in case of the following conditions:

  • Receiving NACK for the address header of the directed CCC transfer (it means no I3C device on the bus)
  • Receiving NACK for the slave address of the directed CCC transfer

The controller updates the ERR_STS field with appropriate error information in the response status and halts the controller and gives back the control to the application to resume the operation of controller through writing ‘1’ to the Resume bit of the HC_CONTROL register.