Hard Processor System Technical Reference Manual: Agilex™ 5 SoCs

ID 814346
Date 11/27/2024
Public
Document Table of Contents

5.8.7.4.3.2. Directed CCC Transfer in Master Mode

The programming flow for directed CCC transfer in master mode of I3C consists of different phases as shown in the figure below.

Figure 196. Directed CCC Transfer in Master Mode

The four main phases are explained in this section.

  1. Issue directed CCC command:

    The issue directed CCC command phase generates the command with the required directed CCC enabled.

    Procedure:

    The following settings are done for the command and then written to the controller through COMMAND_QUEUE_PORT register.

    The application has to write the following combination of the commands based on their required CCC, with or without data:

    • Only transfer command, if the directed CCC does not have the data.
    • Transfer command with either transfer argument or SDAP, if the directed CCC consists of data.

    The following are the required transfer command settings in the COMMAND_QUEUE_PORT register:

    1. Set CP bit to 1.
    2. Write CMD field with directed CCC.
    3. Point the Device Address Table to the respective slave address with the DEV_INDX field.
    4. Set RnW bit to either 1 (read) or 0 (write) based on directed CCC transfer.
  2. Push data to transmit FIFO

    The push data to transmit FIFO phase continuously fills the data to the transmit FIFO based on the command issued in COMMAND_QUEUE_PORT register.

    Procedure

    The application pushes the data (in Word) to the TX-FIFO based on the command issued to the COMMAND_QUEUE_PORT register.

    The application can push the data in either of the following ways:

    • PIO mode: The CPU can monitor the threshold status signal (INTR_STATUS[TX_THLD_STS]) and then push the data to the TX-FIFO through TX_DATA_PORT.
    • DMA mode: The DMA transfers the data as soon as I3C controller requests the DMA through the DMA signals (dma_tx_req, dma_tx_single).
  3. Retrieve data from RX-FIFO

    The retrieve data from RX-FIFO phase continuously retrieves the data from the receive FIFO based on the command issued in COMMAND_QUEUE_PORT register.

    Procedure:

    The application retrieves the data (in Word) from the RX-FIFO based on the command issued to the COMMAND_QUEUE_PORT register.

    The application can fill the data in either one of the following ways:

    • PIO mode: The CPU can monitor the threshold status signal (INTR_STATUS[RX_THLD_STS]) and then pop the data from the RX-FIFO through RX_DATA_PORT.
    • DMA mode: The DMA retrieves the data as soon as I3C controller requests the DMA through DMA signals (dma_rx_req, dma_rx_single).
  4. Check response status

    The check response status phase detects the generation of response status and reads it to know the status of the issued transfer.

    Procedure:

    The INTR_STATUS[RESP_READY_STS] interrupt indicates the response available status and the application can read the available response from the RESPONSE_QUEUE_PORT register.