USB3.0 Discussion Revision 1, Draft Chapter 7 Link Layer Vincent 2008.11.12 7.2 Link Management and Flow Control Packet formats: Link Management Packets (LMP) Transaction Packets (TP) Isochronous Time Stamp Packets (ITP) Data Packets (DP) Anti-error: Header Packet is 20 symbols long 3 SHP and 1 EPF in the front (HPSTART order set): single-bit error tolerance. 2 CRC16 (Packet header) in the end Link control word: 3-bit Header Sequence Number (under protection), 3-bit Reserved, a 3-bit HUB Depth Index, a Delayed bit (DL), a Deferred bit (DF), and a 5-bit CRC-5. Data Packets: Data Packet Header (DPH): Data Packet Payload (DPP): Anti-error: DPH is 20 Bytes of Framing, Header and Flow 1. 3 SHP and 1 EPF in the front. 1 2. Data packet is protected by 4 bytes CRC32 3. 3 END and 1 EPF in the end DPP is 8 symbols long 1. 3 SDP and 1 EPF in the front: DPPEND/DPPABORT ordered set 2. Data Packet is protected by CRC-32 3. 2 L control word in the end Link Command: It is used for link level data integrity, flow control and link power management. Anti-error: Link command is eight symbols long and contains repeated symbols to increase the error tolerance. LGOOD_n: It contains the Header Sequence Number to guarantee the consecutive transfer, which is protected by CRC5 and CRC16. LBAD: Invalid packet length or CRC notice, which is protected by CRC5 and CRC16. Upon receipt of LBAD, a port shall send a single LRTY before retransmitting all the header packets in the Tx Header Buffers that have not been acknowledged with LGOOD_n. If it is fail, goto Recovery. LCRD_x: Rx Header Buffer Credit Index, which should be sent in the order of A, B, C, D and back to A. If it is fail, goto Recovery. The link initialization guarantee that the Header Sequence Number Advertisement and the Rx Header Buffer Credit Advertisement should be equal. 2 Timer PENDING_HP_TIMER: The purpose of this time limit is to allow a port to detect if the header packet acknowledgement sent by its link partner is lost or corrupted. CREDIT_HP_TIMER: The purpose of this timer is to make sure that a Remote Rx Header Buffer Credit is returned within a reasonable time limit. PM_LC_TIMER: It is designed to ensure a prompt entry to a low power link state. PM_ENTRY_TIMER: It is designed to ensure that both ports across the link are in the same PM state regardless if the LAU or LPMA is lost or corrupted. 3 Ux_EXIT_TIMER: It is specified to ensure that the duration of U1 or U2 exit is bounded and the latency of a header packet transmission is no compromised. Link Power Management: LGO_U1, LGO_U2 and LGO_U3. Logical Idle: A special D-Symbol (00h) is defined for Idle Symbol (IS), which should be expressed as “100111 0100” and “011000 1011” for RD- and RD+, respectively after the 8b/10b encoding. 4 7.3 Link Error Rules/Recovery The SuperSpeed timing budget is based on a link’s statistical random bit error probability less that 10-12. Packet framings and link commands are tolerant to one symbol error. When symbol errors occur on the link, the integrity of a packet or a link command can be compromised. Therefore, not only a packet or a link command needs to be constructed to increase the error tolerance, but the link data integrity handling also needs to be specified such that any errors that will invalidate or corrupt a packet or a link command can be detected and a link error can be recovered. Anti-Error: Several types of header packet errors are detected. Missing of a header packet. Invalid header packet due to CRC errors. Mismatch of a Rx Header Sequence Number. Packet Framing Error: A packet framing ordered set is constructed such that any single K-symbol corruption within the ordered set will not prevent its packet framing recognition. Anti-Error: At least three of the four K-symbols in the four consecutive symbol periods are valid packet framing K-symbol periods are valid packet Framing K-symbols. The four symbols are in the order defined. If an HPSTART ordered set has two or more K-symbols corrupted, a header packet will not be detectable and, therefore, result in missing of a header packet. Header Packet Error: CRC-5 or CRC-16 A port receiving the header packet shall send an LBAD if it detects a header packet error. Rx Header Sequence Number Error/ ACK Tx Header Sequence Number Error/ Header Sequence Number Advertisement Error: the Header Sequence Number embedded in the header packet with the Rx Header Sequence Number stored in its receiver. 5 Link Command Errors: any single-bit error in the two scrambled link command words will not corrupt the correct paring of a link command. Anti-Error: Missing LGOOD_n is declared when two consecutive LGOOD_n received are not in numerical order. Missing LGOOD_n, LBAD or LRTY can also be inferred upon PENDING_HP_TIMER timeout. Missing LCRD_x is delared when two consecutive LCRD_x received are not in alphabetical order, or upon CREDIT_HP_TIMER times out and LCRD_x is not received. . Training Sequence Error: TS1 and TS2 ordered sets are used in Polling.Active, Polling.Configuration, Recovery.Active, and Recovery.Configuration substates for the expection until the requirements are met to the next state. 8b/10b Errors: Disparity error: the running disparity of a received 8b/10 symbols is not +2, or 0, or -2. Decode error: an unrecognized 8b/10b symbol is received. Anti-Error: 6 7 7.5 Link Training and Status State Machine (LTSSM) LTSSM is defined for link connectivity and the link power management: It consists of 12 different link states 8 SS.Inactive: It is a link error state where a link is in a non-operable state and software intervention. 9 Rx.Detect: It represents the initial power-on link state where a power is attempting to determine if its SuperSpeed link partner is present. Hot Reset: It is defined to allow a downstream port to reset its upstream port. 10 Polling: It is a link state that is defined for the two link partners to have their SuperSpeed transmitters and receivers trained, synchronized, and ready for packet transfer. U1: It is low-power link state where no packet transfer is carried out and the SuperSpeed link connectivity can be disabled to allow opportunities for saving the link power. 11 U2: Compared with U1, U2 allows for further power saving opportunities with a penalty of increased exit latency. U3: It is a link suspend state where aggressive power saving opportunities are possible.. 12 Recovery: It is defined for retraining the link when the two link partners exit from a low power link state, or when a link partner has detected that the link is not operating in U0 properly and the link needs to be retrained, or when a link partner decides to change the mode of link operation. 13 Loopback: It is introduced for bit error test and fault isolation. A 2-ms timer shall be started, LFPS transmitter/receiver shall be enabled. Loopback master: It is the port requesting loopback. The loopback bit should asserted in TS2 ordered sets. On loopback.Active, the data should be sent under 8b/10b coding with SKPs. Loopback slave: It is the port that retransmits the symbols received from the loopback master. Furthermore, it should check the incoming data for the loopback data pattern. On loopback.Active, the loopback slave is either looping back the data or detecting/executing the commands it received from the loopback master. The loopback slave should disable or bypass its own 8b/10 encoder/decoder and scrambler/descrambler. 14