#[non_exhaustive]pub enum LtpReq {
None,
AllOnes,
AllZeros,
NyquistClock,
DdeCompliance,
Lfsr0,
Lfsr1,
Lfsr2,
Lfsr3,
FfeChange,
RateChange,
Reserved(u8),
}Expand description
Link training pattern requested by the sink for one lane: a 4-bit field in
Status_Flags_1 (lanes 0–1) or Status_Flags_2 (lanes 2–3).
Values 0x1–0x8 are patterns the PHY drives on that lane; 0x0, 0xE and 0xF are
signals to the state machine and never reach the PHY. The values the specification
leaves undefined (0x9–0xD) are Reserved, so a request can always
be represented and the training layer decides what to do with it: plumbob leaves the
lane as it was.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
None
No pattern requested (0x0): the lane is trained.
AllOnes
All ones (0x1).
AllZeros
All zeros (0x2).
NyquistClock
Nyquist clock pattern (0x3).
DdeCompliance
DDE (Data Dependent Equalization) compliance pattern (0x4).
Lfsr0
LFSR pattern 0 (0x5).
Lfsr1
LFSR pattern 1 (0x6).
Lfsr2
LFSR pattern 2 (0x7).
Lfsr3
LFSR pattern 3 (0x8).
FfeChange
Raise this lane’s TxFFE level (0xE).
RateChange
Drop the FRL rate (0xF).
Reserved(u8)
A value the specification leaves undefined, 0x9–0xD.
Build requests from a raw value with from_value, which only
produces Reserved for 0x9–0xD. A Reserved built by hand with any other value
is not a request a sink can send: Reserved(0x5) has the value of Lfsr0 but
does not compare equal to it.
Implementations§
Source§impl LtpReq
impl LtpReq
Sourcepub const fn from_value(value: u8) -> Option<LtpReq>
pub const fn from_value(value: u8) -> Option<LtpReq>
The request with the 4-bit value, or None above 0xF. Every value has exactly
one request: 0x9–0xD are Reserved.
Sourcepub const fn value(self) -> u8
pub const fn value(self) -> u8
The request’s 4-bit value (for a Reserved built by hand, the value it holds).
Sourcepub const fn pattern(self) -> Option<LtpPattern>
pub const fn pattern(self) -> Option<LtpPattern>
The pattern this request asks the PHY to drive, or None for the requests
that are signals to the state machine (0x0, 0xE and 0xF) and for reserved values.