Hard Processor System Technical Reference Manual: Agilex™ 5 SoCs

ID 814346
Date 7/19/2024
Public
Document Table of Contents

5.8.7.4.5. Programming Flow to Prepare the Controller to Switch to Master Mode

This section describes the programming flow to prepare the controller in the master mode to relinquish the mastership to a secondary master. This programming flow is applicable only when the controller is configured as a secondary master.

  • Process all the outstanding commands and responses.
  • Issue the GETACCMST CCC command as described in “Directed CCC Transfer in Master Mode” section.
  • Wait for the INTR_STATUS[RESP_READY_STS] interrupt. The interrupt gets generated by the controller after the completion of the GETACCMST CCC transfer on the I3C bus.
  • Wait for either the INTR_STATUS[BUSOWNER_UPDATED_STS] (success) or the INTR_STATUS[TRANSFER_ERR_STS] (error) interrupt status to know the result.
  • If the transfer completion status is success, read the response queue and the data buffer to get the received 7-bit dynamic address and parity of the intended slave.
  • Set the DEVICE_CTRL[RESUME] bit to 1’b1 to enable the controller to start responding for transfers as a slave.
  • If the transfer completion status was an error, read the response queue to find out the type of error. If the data length of the response indicates a non-zero value, then read the data buffer to get the received 7-bit dynamic address and parity (error) of the intended slave.
  • Set the DEVICE_CTRL[RESUME] bit to 1’b1 to enable the controller to start processing the transfer commands as a master.
Figure 197. Programming Flow to switch from Master to Slave mode