SPRUIE9D May 2017 – May 2024 DRA74P , DRA75P , DRA76P , DRA77P
The OCP initiator disconnect request occurs based on a specific parity error that is enabled in the corresponding EVE_ED_OCPI_DISC_EN register, or when the EVE_DISC_CONFIG[4] OCPI_DISC bit is set to 0x1.
When a disconnect request is issued both OCP initiator buses are disconnected. The disconnect logic forces the OCP initiator buses to stall at a clean boundary, such that EVE reset can be issued without violating the OCP protocol detected by the neighboring L3 interconnect. The disconnect logic also tries to fence any new requests, by allowing the current request handshake to complete, but gating any new OCP requests to the system. When the previously issued requests have received all responses, the interface is drained; at this point, the OCP disconnect protocol enters the M_OFF state.
When the OCP initiators are disconnecting, waiting on in-flight request/responses to complete, the EVE_STAT[21:20] OCPI_DISC_STATUS read value is 0x1 or "attempting to disconnect". Otherwise, when both initiators are disconnected, then the bit field contains the value 0, meaning that initiators are disconnected. In order to guarantee that the neighboring system is not left in a corrupted state, software must wait for disconnected state before issuing a reset to EVE
Any requests into the OCP target bus must be stopped.