-
Notifications
You must be signed in to change notification settings - Fork 782
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[spi_device] Chip Select glitch detector #12747
Comments
Triaged for |
@moidx to check if there are glitch suppression requirements that can be added to the IO pads (for integration purposes). |
The IO slice has a configurable Schmitt trigger which suppresses pulses on transition if enabled. If this configuration input to the IO slice can be controlled/set by SW, the chance of catching a glitch on SPI in a well designed system is negligible. |
This issue is confusing, and I'm not sure what it's about. For SPI, PCB-level SI is up to the I/O buffers and the PCB design, and I think we should keep it that way. However, logic that relies on sampling CSB to effect CDC of events may need a closer look. For flash and TPM modes, there should be no new events before at least 8 SCK cycles (smallest command), and any running state leading up to an event trigger should be thrown out on CSB release. |
Many SPI_DEVICE logics rely on a clean Chip Select signal. If Chip Select signal has glitches, the SPI_DEVICE behaves incorrectly. This issue is to add CS glitch detectors (two: one for SPI, other for TPM).
The glitch detectors catch CS assertion and deassertion without enough SPI CLK edges:
clk_csb
(not sure this is plausible as register's reset is CSb also)sys_csb_deasserted_pulse
. If the value is 1, then report error to the SW.It may not be possible to use CSb as a reset, in that case the register may be reset by
sys_rst_ni & ~sys_csb_deasserted_pulse
.CC: @tjaychen
Effort estimate by @hcallahan-lowrisc:
The text was updated successfully, but these errors were encountered: