Expand description
Async FRL link training state machine for HDMI 2.1.
plumbob-async is the async companion to plumbob. Its FrlTrainer runs
plumbob’s state machine, plumbob::lts::run, over an async ScdcClient and an
async HdmiPhy, so sync and async training are the same procedure. All shared
protocol and training types are re-exported from plumbob.
The futures of the plain traits are not required to be Send. To spawn training on a
multi-threaded executor from code generic over the client and PHY, implement their
Send twins, SendScdcClient and SendHdmiPhy; every twin is also an
implementation of the plain trait.
§Features
alloc— enablesTrainingTrace,FrlTrainer::train_tracedandFrlTrainer::train_at_rate_traced.std— impliesalloc; no additional API surface.
Structs§
- CedCount
- A 15-bit per-lane character error count.
- CedCounters
- Per-lane character error counts, for diagnostics; the training procedure does not consume them.
- Clearable
Update Flags - The
Update_0flags a source may clear: every flag butRR_Test(bit 2). - EqParams
- Equalization parameters passed from link training to the PHY.
- Exit
Error - LTS:L failed: the first error of each end whose steps failed.
- FfeLevels
- The highest TxFFE level index the source supports, written to
Config_1bits 7:4. - FrlConfig
- Written to
Config_1: the FRL rate (bits 3:0) and the FFE levels (bits 7:4). - FrlTrainer
- The central async training type. Owns an async
ScdcClientand an asyncHdmiPhy. - Lane
EqParams - Per-lane equalization parameters carried by
EqParams. - Lane
Patterns - The link training pattern for each lane, passed to
HdmiPhy::send_ltp. - LtpRequests
- The sink’s requests for all four lanes (
Status_Flags_1, 0x41, andStatus_Flags_2, 0x42). Lane 3 is ignored in 3-lane FRL. - Source
Test Config Source_Test_Configuration(0x35): instructions a compliance tester writes for the source. Bits 0 and 4 are reserved.- Trained
- The outcome of a training attempt, with the warnings it produced.
- Training
Config - Per-attempt training configuration.
- TxFfe
Level - A TxFFE (transmitter feed-forward equalization) level index, 0–7.
- TxFfe
Restrictions - Restrictions on the TxFFE components, as a compliance tester sets them.
- Update
Flags Update_0(0x10): the flags the sink sets to tell the source that something changed.
Enums§
- Fallback
Reason - Why a training attempt ended without a link.
- FrlOutput
- What the transmitter sends on the FRL lanes once training patterns are stopped.
- Hdmi
Forum Frl - The FRL rate, as
HdmiPhy::set_frl_ratetakes it; re-exported so that implementations name the same type this crate does. The FRL rate, asHdmiPhy::set_frl_ratetakes it; re-exported fromdisplay-typesso that implementations name the same type hdmi-hal does. Maximum Fixed Rate Link (FRL) bandwidth supported by a HDMI 2.1 sink. - LtpPattern
- A link training pattern to be driven on the physical lanes.
- LtpReq
- Link training pattern requested by the sink for one lane: a 4-bit field in
Status_Flags_1(lanes 0–1) orStatus_Flags_2(lanes 2–3). - Tmds
Exit - What LTS:L did after an SCDC or PHY error.
- Training
Error - Hard error that terminated a training attempt.
- Training
Event - A single event in a training attempt, in order from LTS:2 to the terminal state.
- Training
Outcome - The result of a training attempt.
- Training
Warning - A non-fatal anomaly seen during a training attempt.
Constants§
- MAX_
WARNINGS - The most warnings a
Trainedholds without theallocfeature.
Traits§
- HdmiPhy
- Async link-level control of an HDMI 2.1 transmitter PHY.
- Scdc
Client - Async typed SCDC interface required by the FRL training state machine.
- Send
Hdmi Phy HdmiPhywithSendfutures, for code that spawns link training on a multi-threaded executor.- Send
Scdc Client ScdcClientwithSendfutures, for code that spawns link training on a multi-threaded executor.