(1)Replay Schedule Rule 0 of PCIe Base Specification must check for REPLAY_TIMEOUT_FLIT_COUNT ≥ 375. Replay Timer Timeout error is logged in the Correctable Internal Error in the Adapter for UCIe.
(2) Flit Discard 2 rule from PCIe does not result in a Data Link Protocol Error condition in UCIe. Receiving an invalid Flit Sequence number in a received Ack or Nak Flit (refer to the corresponding conditions in PCIe Base Specification with the adjusted variable widths and values) OR a Payload Flit with an Explicit Sequence number of 0b results in an Uncorrectable Internal Error in UCIe (instead of a Data Link Protocol Error).
(3) Sequence Number Handshake Phase must be performed on every entry of RDI to Active state from Reset or Retrain (once Flit transfers are permitted). As with PCIe, both NOP or Payload Flits are permitted to be used to complete the Sequence Number Handshake Phase.
(4) Any variables that are initialized during the IDLE Flit Handshake Phase in PCIe Base Specification are initialized to the corresponding value whenever RDI is in Reset or Retrain. Similarly, PCIe rules indicating relation to “last entry to IDLE Flit Handshake Phase” would instead apply for UCIe to “last exit from Reset or Retrain state on RDI”. NON_IDLE_EXPLICIT_SEQ_NUM_FLIT_RCVD
(5) In UCIe, to encourage power savings through dynamic clock gating, it is not required to continuously transmit NOP Flits during periods where there are no Payload Flits or any Ack/Nak pending.
(7) A PDS must be inserted when Retry is triggered or RDI state goes through Retrain. Note that for Retry, this should occur before the Transmitter begins replaying the Flits from the Retry buffer; and for Retrain entry, this should occur before asserting lp_stallack to the Physical Layer.
Note that for a Retrain scenario, a PDS might not be received at the receiver before the RDI state changes to Retrain, and the Adapter must discard any partially received 68B Flits after state change.
When no Flits are available to transmit, it is an implementation specific choice on sending an explicit PDS (i.e., the Adapter sending a PDS Flit Header with corresponding padding) or a NOP Flit (there is an obvious trade-off between the overhead of a PDS transmission vs idle latency of a new Flit to transmit).
(8) Pds -> normal / normal -> pds