Skip to main content

Crate plumbob_async

Crate plumbob_async 

Source
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 — enables TrainingTrace, FrlTrainer::train_traced and FrlTrainer::train_at_rate_traced.
  • std — implies alloc; 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.
ClearableUpdateFlags
The Update_0 flags a source may clear: every flag but RR_Test (bit 2).
EqParams
Equalization parameters passed from link training to the PHY.
ExitError
LTS:L failed: the first error of each end whose steps failed.
FfeLevels
The highest TxFFE level index the source supports, written to Config_1 bits 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 ScdcClient and an async HdmiPhy.
LaneEqParams
Per-lane equalization parameters carried by EqParams.
LanePatterns
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, and Status_Flags_2, 0x42). Lane 3 is ignored in 3-lane FRL.
SourceTestConfig
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.
TrainingConfig
Per-attempt training configuration.
TxFfeLevel
A TxFFE (transmitter feed-forward equalization) level index, 0–7.
TxFfeRestrictions
Restrictions on the TxFFE components, as a compliance tester sets them.
UpdateFlags
Update_0 (0x10): the flags the sink sets to tell the source that something changed.

Enums§

FallbackReason
Why a training attempt ended without a link.
FrlOutput
What the transmitter sends on the FRL lanes once training patterns are stopped.
HdmiForumFrl
The FRL rate, as HdmiPhy::set_frl_rate takes it; re-exported so that implementations name the same type this crate does. The FRL rate, as HdmiPhy::set_frl_rate takes it; re-exported from display-types so 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) or Status_Flags_2 (lanes 2–3).
TmdsExit
What LTS:L did after an SCDC or PHY error.
TrainingError
Hard error that terminated a training attempt.
TrainingEvent
A single event in a training attempt, in order from LTS:2 to the terminal state.
TrainingOutcome
The result of a training attempt.
TrainingWarning
A non-fatal anomaly seen during a training attempt.

Constants§

MAX_WARNINGS
The most warnings a Trained holds without the alloc feature.

Traits§

HdmiPhy
Async link-level control of an HDMI 2.1 transmitter PHY.
ScdcClient
Async typed SCDC interface required by the FRL training state machine.
SendHdmiPhy
HdmiPhy with Send futures, for code that spawns link training on a multi-threaded executor.
SendScdcClient
ScdcClient with Send futures, for code that spawns link training on a multi-threaded executor.