24.4.4.3.4 IBI Queue Data Structure
The IBI queue comprises the interleaved data received from the Target device, and the status generated by the Controller for the respective data slice of SIR or HJ/MR. For configurations that support IBI without payload, only the IBI status entry is written into the IBI queue.
The data portion of the structure comprises either the data received from the Target device along with the IBI (MDB + Other payload bytes, if any) or the data received for Auto-Command (if supported) issued for the requesting device. If the data payload size of the SIR exceeds the programmed SIR Data chunk size, the Controller slices the incoming data bytes into multiple chunks and generates an IBI status for each chunk. The last data chunk is indicated as LAST_STATUS=1 in the corresponding IBI status. Figure 24-12 shows an example of the IBI queue data structure holding the IBI data (SIR) and the status for an IBI with non-multiple chunk size data.

The application reads the IBI queue upon detecting the interrupt status I3CxINTSTA [IBITHLDSTA]. The interrupt can be moderated by setting the I3CxQUETHLDCON [IBISTATHLD] field. The first location read always provides the IBI status for the first chunk, which includes the data length of that chunk in bytes. The application can read the data portion of the chunk without waiting for any further interrupt. The number of data reads must be limited to the data length field of the corresponding status.
