We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
check_lock_status
1 parent b04fa14 commit 13c2818Copy full SHA for 13c2818
1 file changed
dice-mfg/src/lib.rs
@@ -332,8 +332,25 @@ impl MfgDriver {
332
/// should be locked, and whether the bits in the SYSCON set by the ROM
333
/// indicate that it is currently locked.
334
pub fn check_lock_status(&mut self) -> Result<(bool, bool)> {
335
- self.send_msg(&MfgMessage::YouLockedBro)?;
336
- let recv = self.recv_msg()?;
+ let mut retry = self.max_retry;
+
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
+ };
354
355
match recv {
356
MfgMessage::LockStatus {
0 commit comments