#[non_exhaustive]pub enum DriveClass {
Mt19,
}Expand description
The update dialect a drive speaks, chosen by Identity::class.
The dialect owns the update session: its command sequence, chunking, readiness timing after the burn and which bytes read-back verification may compare.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Mt19
MT1959 and MT1939: the OEM session of 12-byte CDBs. PROBE, TEST UNIT
READY and PREPARE, the image in cdb::CHUNK STREAM writes, COMMIT,
then TEST UNIT READY and REQUEST SENSE. The drive programs when the
last chunk lands.
Implementations§
Source§impl DriveClass
impl DriveClass
Sourcepub fn steps(self) -> Vec<Step>
pub fn steps(self) -> Vec<Step>
The commands of one update session for a layout::IMAGE_SIZE image,
as the OEM tool sends them. Readiness polling and read-back
verification follow in the receiver-bound executor.
Sourcepub fn verification_ranges(self, image: &[u8]) -> Vec<RangeInclusive<usize>>
pub fn verification_ranges(self, image: &[u8]) -> Vec<RangeInclusive<usize>>
Inclusive byte ranges a read-back must match: every active integrity
entry, clipped to DriveClass::verify_floor. Per-unit regions are
outside every entry.
Source§impl DriveClass
impl DriveClass
Sourcepub const fn can_read(self) -> bool
pub const fn can_read(self) -> bool
Whether a host should offer automatic installed-firmware acquisition.
Stock MT19 firmware does not provide a reliable complete firmware read. Hosts should request a Current firmware file instead. Metadata and restricted memory reads remain available; this does not forbid them or a modified firmware’s separate dump command.
Sourcepub const fn ready_timeout(self) -> Duration
pub const fn ready_timeout(self) -> Duration
How long programming may keep the drive from answering TEST UNIT READY after COMMIT: 120 s.
The OEM updaters wait for the drive without a total bound and give each command a 100 s timeout, so a drive that answers within one OEM command window must not be declared failed. 120 s covers that window plus 20 s (40 polls) of margin. A shorter bound fails a drive that is still programming and invites a power cycle mid-burn; a longer one only costs time on a drive that never comes back.
Sourcepub const fn poll_interval(self) -> Duration
pub const fn poll_interval(self) -> Duration
Delay between TEST UNIT READY polls while the drive programs.
Sourcepub const fn verify_floor(self) -> usize
pub const fn verify_floor(self) -> usize
Read-back verification compares no byte below this offset: the drive
serves its boot area remapped (layout::BOOT_AREA).