Skip to content

Commit

Permalink
[i2v,dv] Move TP:target_error_intr / i2c_target_unexp_stop to V3
Browse files Browse the repository at this point in the history
This test is currently broken, and the feature is unused by any test software or
mentioned in the programmers guide. It's purpose was to detect invalid bus
driving by the I2C-Controller, when a STOP condition was received at an earlier
point that expected during a READ transfer.

Due to previous RTL changes to enable multi-controller support, new logic has
been added to explicitly allow bus arbitration. This logic fundamentally aims
to detect another I2C bus-device driving the bus when we (the DUT) expect to be
driving it.

In the context of an unexpected STOP condition during a READ, any attempt for
the I2C-Controller device to drive a STOP will cause the target-mode logic to
detect an arbitration failure, and to back-off the transfer, awaiting the next
STOP condition. (Due to the open-drain bus signalling scheme, drive-conflicts
and hence arbitration failures can only be detected when a party that has
released the bus high observes another party driving it low. To signal a stop
condition, a low-to-high transition on SDA is required, and hence a
drive-conflict and arbitration loss is detected when the other endpoint pulls
SDA low, before it can even signal the stop condition).

This arbitration failure and back-off happens before the logic that creates the
'UnexpStop' interrupt fires, and hence this interrupt can no longer be triggered.

I think this testpoint may possibly be re-written to confirm we can identify an
unexpected STOP condition via the arbitration-lost signalling, but it may end up
getting dropped altogether. For now, move it to V3.

Signed-off-by: Harry Callahan <[email protected]>
  • Loading branch information
hcallahan-lowrisc committed Jul 13, 2024
1 parent 44d2f94 commit a29a745
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion hw/ip/i2c/data/i2c_testplan.hjson
Original file line number Diff line number Diff line change
Expand Up @@ -285,7 +285,7 @@
- Ensure acq_stop is asserted and stay asserted until cleared
- Ensure IP operation gets back to normal after on-the-fly reset finished
'''
stage: V2
stage: V3
tests: ["i2c_target_unexp_stop"]
}
{
Expand Down

0 comments on commit a29a745

Please sign in to comment.