1.. _check-error-cmd:
2
3Check Error
4===========
5
6The ``espefuse.py check_error`` command checks eFuse errors. It triggers several reads to force the eFuse controller to reload eFuses and update status registers. This command can be run after burn operations to make sure that there is not errors.
7
8Optional argument:
9
10* ``--recovery``. It repairs encoding errors in eFuse blocks, if possible.
11
12The summary log below shows an error in BLOCK0.
13
14.. code-block:: none
15
16    > espefuse.py summary
17    ...
18    WDT_DELAY_SEL (BLOCK0)[FAIL:1]                     Selects RTC WDT timeout threshold at startup       = False R/W (0b0)
19    ...
20    Error(s) in BLOCK0 [ERRORS:1 FAIL:1]
21
22    BLOCK0          (                ) [0 ] err__regs: 00000400 00000000 00000000 00000000 00000000 00000000
23    EFUSE_RD_RS_ERR0_REG        0x00000000
24    EFUSE_RD_RS_ERR1_REG        0x00000000
25    WARNING: Coding scheme has encoding bit error warnings
26
27Usage
28-----
29
30Checks the status registers of eFuse blocks and throws an error if there is an error.
31
32.. code-block:: none
33
34    > espefuse.py check_error
35
36    Error(s) in BLOCK1 [ERRORS:0 FAIL:1]
37    Error(s) in BLOCK2 [ERRORS:1 FAIL:1]
38    Error(s) in BLOCK3 [ERRORS:1 FAIL:1]
39
40    BLOCK0          (                ) [0 ] err__regs: 00000000 00000000 00000000 00000000 00000000 00000000
41    EFUSE_RD_RS_ERR0_REG        0x00008990
42    EFUSE_RD_RS_ERR1_REG        0x00000000
43
44    === Run "check_error" command ===
45    Error(s) in BLOCK1 [ERRORS:0 FAIL:1]
46    Error(s) in BLOCK2 [ERRORS:1 FAIL:1]
47    Error(s) in BLOCK3 [ERRORS:1 FAIL:1]
48
49    BLOCK0          (                ) [0 ] err__regs: 00000000 00000000 00000000 00000000 00000000 00000000
50    EFUSE_RD_RS_ERR0_REG        0x00008990
51    EFUSE_RD_RS_ERR1_REG        0x00000000
52
53    A fatal error occurred: Error(s) were detected in eFuses
54
55Repairs encoding errors in eFuse blocks, if possible.
56
57.. code-block:: none
58
59    > espefuse.py check_error --recovery
60
61    Error(s) in BLOCK1 [ERRORS:0 FAIL:1]
62    Error(s) in BLOCK2 [ERRORS:1 FAIL:1]
63    Error(s) in BLOCK3 [ERRORS:1 FAIL:1]
64
65    BLOCK0          (                ) [0 ] err__regs: 00000000 00000000 00000000 00000000 00000000 00000000
66    EFUSE_RD_RS_ERR0_REG        0x00008990
67    EFUSE_RD_RS_ERR1_REG        0x00000000
68
69    === Run "check_error" command ===
70    Error(s) in BLOCK1 [ERRORS:0 FAIL:1]
71    Error(s) in BLOCK2 [ERRORS:1 FAIL:1]
72    Error(s) in BLOCK3 [ERRORS:1 FAIL:1]
73
74    BLOCK0          (                ) [0 ] err__regs: 00000000 00000000 00000000 00000000 00000000 00000000
75    EFUSE_RD_RS_ERR0_REG        0x00008990
76    EFUSE_RD_RS_ERR1_REG        0x00000000
77    Recovery of block coding errors.
78    This is an irreversible operation!
79    Type 'BURN' (all capitals) to continue.
80    BURN
81    Error in BLOCK3, re-burn it again (#0), to fix it. fail_bit=1, num_errors=0
82    Error in BLOCK3, re-burn it again (#1), to fix it. fail_bit=1, num_errors=0
83    Error in BLOCK3, re-burn it again (#2), to fix it. fail_bit=1, num_errors=0
84    BURN BLOCK3  - OK (write block == read block)
85    Error in BLOCK2, re-burn it again (#0), to fix it. fail_bit=1, num_errors=1
86    Error in BLOCK2, re-burn it again (#1), to fix it. fail_bit=1, num_errors=1
87    Error in BLOCK2, re-burn it again (#2), to fix it. fail_bit=1, num_errors=1
88    BURN BLOCK2  - OK (write block == read block)
89    Error in BLOCK1, re-burn it again (#0), to fix it. fail_bit=1, num_errors=0
90    Error in BLOCK1, re-burn it again (#1), to fix it. fail_bit=1, num_errors=0
91    Error in BLOCK1, re-burn it again (#2), to fix it. fail_bit=1, num_errors=0
92    BURN BLOCK1  - OK (write block == read block)
93    Error(s) in BLOCK1 [ERRORS:0 FAIL:1]
94    Error(s) in BLOCK2 [ERRORS:1 FAIL:1]
95    Error(s) in BLOCK3 [ERRORS:0 FAIL:1]
96
97    BLOCK0          (                ) [0 ] err__regs: 00000000 00000000 00000000 00000000 00000000 00000000
98    EFUSE_RD_RS_ERR0_REG        0x00008890
99    EFUSE_RD_RS_ERR1_REG        0x00000000
100
101    A fatal error occurred: Error(s) were detected in eFuses
102
103If all errors are fixed, then this message is displayed:
104
105.. code-block:: none
106
107    No errors detected
108