ALTERNATE PROTOCOL NEGOTIATION IN A HIGH PERFORMANCE INTERCONNECT
A port of a computing device is to communicate with another device over a link, the port including physical layer logic of a first protocol, link layer logic of each of a plurality of different protocols, and protocol negotiation logic to determine which of the plurality of different protocols to apply on the link. The protocol negotiation logic is to send and receive ordered sets in a configuration state of a link training state machine of the first protocol, where the ordered sets include an identifier of a particular one of the plurality of different protocols. The protocol negotiation logic is to determine from the ordered sets that a link layer of the particular protocol is to be applied on the link.
1 . An apparatus comprising:
a port to communicate with another device over a link, the port comprising:
physical layer logic of a first protocol;
link layer logic of each of a plurality of different protocols; and
protocol negotiation logic to determine which of the plurality of different protocols to apply on the link, wherein the protocol negotiation logic is to:
send and receive ordered sets in a configuration state of a link training state machine of the first protocol, wherein the ordered sets comprise an identifier of a particular one of the plurality of different protocols; and
determine from the ordered sets that a link layer of the particular protocol is to be applied on the link.
2 . The apparatus of claim 1 , wherein the ordered sets comprise training sequences of a first type and training sequences of a second type, the training sequences of the first type are according to a first format, the training sequences of the second type are according to a second format, the second format defines one or more fields of the second type of training sequences to identify the particular protocol to apply to the link, and the protocol negotiation logic is further to:
identify entry into a first sub-state of the configuration link training state;
identify in a training sequence of the first type sent in the first sub-state that the other device supports one or more protocols in the plurality of different protocols other than the first protocol; and
cause training sequences of the second type to be sent in a second substate of the configuration link training state based on identifying that the other device supports the one or more protocols.
3 . The apparatus of claim 2 , wherein training sequences of the first type lack fields to identify which of the plurality of protocols to apply to the link.
4 . The apparatus of claim 2 , wherein each of the trainings sequences of the first type and the training sequences of the second type comprise training sequences for use in a Peripheral Component Interconnect Express (PCIe)-based configuration link training state.
5 . The apparatus of claim 4 , wherein the other device is identified as supporting the one or more protocols based on a particular field defined according to the first format.
6 . The apparatus of claim 5 , wherein the particular field comprises one or more bits in symbol 5 of the training sequence of the first type.
7 . The apparatus of claim 4 , wherein the one or more fields of the second type of training sequences are defined to comprise symbols 9 and 10 of the second type of training sequences.
8 . The apparatus of claim 2 , wherein at least one of the second type of training sequences comprises the identifier of the particular protocol.
9 . The apparatus of claim 2 , wherein first substate comprises a link width training substate within the configuration state.
10 . The apparatus of claim 2 , wherein second substate comprises a lane numbering substate within the configuration state.
11 . The apparatus of claim 1 , wherein the link layer of the particular protocol is determined to be applied to the link before exiting the configuration state.
12 . The apparatus of claim 1 , wherein the first protocol comprises a PCIe-based protocol.
13 . The apparatus of claim 1 , wherein the link layer of the particular protocol is to run on the logical physical layer (PHY) of the first protocol.
14 . An apparatus comprising:
a port to communicate with another device over a link, the port comprising:
physical layer logic of a first protocol;
link layer logic of each of a plurality of different protocols; and
protocol negotiation logic to determine which of the plurality of different protocols to apply on the link, wherein the protocol negotiation logic is to:
receive SKP ordered sets from the other device, wherein the SKP ordered sets are encoded to identify a particular one of the plurality of protocols supported by the other device; and
cause the particular protocol to be applied on the link based on the SKP ordered sets.
15 . The apparatus of claim 14 , wherein the SKP ordered sets are defined according to a Peripheral Component Interconnect Express (PCIe)-based protocol.
16 . The apparatus of claim 15 , wherein a particular symbol is encoded to identify that an immediately adjacent symbol comprises a vendor-defined symbol, and the vendor-defined symbol is encoded to identify the particular protocol.
17 . The apparatus of claim 14 , wherein the protocol negotiation logic is further to determine whether the other device supports SKP ordered sets.
18 . The apparatus of claim 17 , wherein the protocol negotiation logic, based on determining that the other device does not support SKP ordered sets, is to read a configuration register to determine whether other protocols are to be applied to the link.
19 . A system comprising:
a first device; and
a second device to connect to the first device over a link, wherein the second device comprises:
a processor;
physical layer logic of a first protocol;
link layer logic of each of a plurality of different protocols; and
protocol negotiation logic to determine which of the plurality of different protocols to apply on the link, wherein the protocol negotiation logic is to:
send training data to the first device during one or more link training states for the link, wherein link training states comprise link training states of the first protocol, the training data is encoded to identify that the second device supports at least one of the plurality of protocols other than the first protocol;
receive training data from the first device during the link training states, wherein the training data received from the first device is encoded to identify a particular one of the plurality of protocols; and
cause the particular protocol to be applied to the link based on the training data.
20 . The system of claim 19 , wherein the training data comprises training sequences of a first type comprising one or more bits to identify whether each of the first and second devices supports the one or more link training states, and the training data further comprises training sequences of a second type comprising one or more symbols to identify protocols supported by the devices.