Skip to content

Commit 13c2818

Browse files
committed
dice-mfg: hack retries into check_lock_status
1 parent b04fa14 commit 13c2818

1 file changed

Lines changed: 19 additions & 2 deletions

File tree

dice-mfg/src/lib.rs

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -332,8 +332,25 @@ impl MfgDriver {
332332
/// should be locked, and whether the bits in the SYSCON set by the ROM
333333
/// indicate that it is currently locked.
334334
pub fn check_lock_status(&mut self) -> Result<(bool, bool)> {
335-
self.send_msg(&MfgMessage::YouLockedBro)?;
336-
let recv = self.recv_msg()?;
335+
let mut retry = self.max_retry;
336+
337+
let recv = loop {
338+
self.send_msg(&MfgMessage::YouLockedBro)?;
339+
match self.recv_msg() {
340+
Ok(r) => break r,
341+
Err(e) => {
342+
info!("error: {e:?}");
343+
if retry > 0 {
344+
retry -= 1;
345+
continue;
346+
} else {
347+
return Err(
348+
e.context("RequrieLocked: retry limit exceeded")
349+
);
350+
}
351+
}
352+
}
353+
};
337354

338355
match recv {
339356
MfgMessage::LockStatus {

0 commit comments

Comments
 (0)