To accomplish the SDR read transfer, the host must perform the following steps:
- Write Private Write command to command queue:
- Write the Command Word1 (I3C_CMD1_FIFO) with
slave CSR address:
- CSR (bits
[15:0] or [7:0]): Slave register address
- Write the Command Word0 (I3C_CMD0_FIFO) with
following data fields:
- I3C_CMD0_FIFO[31] IS_DDR: 0x0
- I3C_CMD0_FIFO[30] IS_CCC: 0x0
- I3C_CMD0_FIFO[28-27] XMIT_MODE: Transmit Mode
- I3C_CMD0_FIFO[23-12] PL_LEN: See Section 12.1.4.3.13.3
- I3C_CMD0_FIFO[7-1] DEV_ADDR: Slave Address
- I3C_CMD0_FIFO[0] RNW: 0x1
- Wait for transfer completion notified by
I3C_MST_ISR[16] IMM_COMP bit, which indicates that all data of particular
command are successfully sent by the slave device and received data are
ready to be read by the host.
- Read all payload data bytes from RX FIFO buffer:
- Read first four or less received bytes, with first received byte stored at LSB position.
- Repeat reads until whole payload is read.