I am using the LPC5536-EVK as an I3C Master and can successfully receive IBI events. However, Section 5.1.6.2.2 in the I3C Basic Specification v1.1.1 (or Section 4.3.6.2.2 in I3C Basic Specification v1.2) defines Pending Read Notification. After reviewing fsl_i3c.c in the LPC55S36 SDK, I believe this feature is not implemented. I would like to know if the NXP SDK development team has any plans to add this feature in a future release.
Pending Read Notification (excerpt from the specification):
Target Devices that support In-Band Interrupt requests may also implement support for a particular Pending Read Notification contract, by which they may inform the Controller that there is data to be read for a specific purpose.
...
To signal a Pending Read Notification, the Target shall send an IBI with a Mandatory Data Byte value for which the first three bits (i.e., Interrupt Group Identifier) match 3’b101.
...
Once the IBI and its MDB has been serviced and accepted, the Controller is obligated to initiate a subsequent Private Read request to the Target, to read the data that has been made available and ready for this Private Read request. The Controller may do this immediately after the IBI has been serviced, or it may do this at a later time.
...
The transfer format for Pending Read Notification can be referenced in the following document, specifically Figure 6 – MCTP over I3C packet transfer format: I3C Target to I3C Controller:
Management Component Transport Protocol 7 (MCTP) I3C Transport Binding Specification
From the transfer format, it can be seen that Pending Read Notification essentially means that after the Master receives an IBI event, it then sends a Private Read to the corresponding Slave. Between these operations, either a STOP + START sequence or a Repeated START can be used.
With the current SDK, the STOP + START sequence is possible (equivalent to calling Read inside i3c_callback). However, the current SDK does not support performing this operation as a Repeated START.
Solved! Go to Solution.
Hi @bell_huang
We are considering adding this feature and will implement it in the future.
May i ask two questions?
1. Is this application currently implemented on existing sensors?
2. How about implementing it with a custom protocol?
BR
Harry
Hi @bell_huang
We are considering adding this feature and will implement it in the future.
May i ask two questions?
1. Is this application currently implemented on existing sensors?
2. How about implementing it with a custom protocol?
BR
Harry
Hi @Harry_Zhang ,
Thank you for your reply.
1. Is this application currently implemented on existing sensors?
We currently do not have any existing sensors that support this feature. However, we are planning to implement it in a sensor that is currently under development. There will be two application scenarios:
(a) The Master sends a specific request, and the sensor responds with an IBI + Pending Read Notification.
(b) The sensor proactively issues a notification with an IBI + Pending Read Notification.
2. How about implementing it with a custom protocol?
This can traditionally be achieved, for example in I2C, where the sensor issues only an interrupt. The Master then needs to read a specific register to determine the purpose of the interrupt, and subsequently read the corresponding data (response or notification).
We only recently learned about I3C IBI with Pending Read Notification. Compared to the traditional method, it is much cleaner and more efficient. Therefore, we are planning to incorporate this feature into future sensor designs.
Hi @bell_huang
" I would like to know if the NXP SDK development team has any plans to add this feature in a future release."
I need to confirm it with the SDK team.
BR
Harry