NXP / i3c-slave-design

MIPI I3C Basic v1.0 communication Slave source code in Verilog with BSD license to support use in sensors and other devices.
Other
104 stars 33 forks source link

S3 error during DAA results in dyn-address assignment #4

Closed kaushikc-eximius closed 5 years ago

kaushikc-eximius commented 6 years ago

A error in transmission of address bits or parity bit from I3C master to an I3C slave during DAA phase is detected by the NXP I3C Slave. However, even after detection, the dyn_addr is updated to the new/corrupted data byte and the net dyn_addr_chg is pulsed.

I couldn't find a description on how to handle the address assignment in NXP MIPI I3C spec. Intuitively, the I3C slave should 1) drop the assigned address, 2) NACK that particular write, and 3) wait for exit pattern. Items 2 and 3 are described in the I3C spec but not 1.

pkimelman-nxp commented 5 years ago

Sorry, this report was missed. It should not be marking as valid in that case, so the DA with [0]=0 is still meaningless. As long as it participates in the ENTDAA again, it is correct. It does not wait for Exit Pattern in this case since it is still within the known framework. The S0/S1 Exit pattern use is because we do not know if it was an ENTHDRn we missed. A parity error in an ENTDAA DA assign has no such risk.