Directed CCC Transfer Targeted to Multiple Targets
Each Transfer command initiates Directed CCC transfer to only one target since it consists of only one DEV_INDEX 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_INDEX fields pointing to multiple targets. The I3CC 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 I3CC targets the next device without ending the CCC command.
- If the current command and the pipelined command are not the same Directed CCC commands, then the I3CC 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 I3CC halts if:
- NACK is received for the address header of the Directed CCC transfer
- NACK is received for the target address of the Directed CCC transfer
The I3CC updates ERR_STATUS in the Response Data structure with appropriate error information, halts the I3CC and gives back the control to the application to resume the operation of I3CC through writing ‘1’ to I3CC_HC_CONTROL.RESUME.