Merge branch 'docs/add_sphinx_lint' into 'master'

docs(sphinx-lint): Add sphinx-lint to pre-commit

See merge request espressif/esp-idf!28578
This commit is contained in:
Kirill Chalov 2024-01-23 17:48:22 +08:00
commit 77770b2cb7
195 changed files with 2390 additions and 2390 deletions

View File

@ -225,3 +225,9 @@ repos:
hooks:
- id: validate-sbom-manifest
stages: [post-commit]
- repo: https://github.com/sphinx-contrib/sphinx-lint
rev: v0.9.1
hooks:
- id: 'sphinx-lint'
name: Lint rST files in docs folder using Sphinx Lint
files: ^(docs/en|docs/zh_CN)/.*\.(rst|inc)$

View File

@ -198,4 +198,4 @@ Above the host stacks are the profile implementations by Espressif and some comm
Applications
------------
At the uppermost layer are applications. You can build your own applications on top of the ESP-Bluedroid and ESP-NimBLE stacks, leveraging the provided APIs and profiles to create Bluetooth-enabled applications tailored to specific use cases.
At the uppermost layer are applications. You can build your own applications on top of the ESP-Bluedroid and ESP-NimBLE stacks, leveraging the provided APIs and profiles to create Bluetooth-enabled applications tailored to specific use cases.

View File

@ -81,16 +81,16 @@ The frame formats for the communication between the mobile phone App and {IDF_TA
The frame format with no fragment:
.. list-table::
:header-rows: 1
:widths: 25 25
.. list-table::
:header-rows: 1
:widths: 25 25
* - Field
- Value (Byte)
* - Type (Least Significant Bit)
- 1
* - Frame Control
- 1
- 1
* - Sequence Number
- 1
* - Data Length
@ -104,10 +104,10 @@ If the frag frame bit in the **Frame Control** field is enabled, there would be
The frame format with fragments:
.. list-table::
:header-rows: 1
:widths: 25 25
.. list-table::
:header-rows: 1
:widths: 25 25
* - Field
- Value (Byte)
* - Type (Least Significant Bit)
@ -128,10 +128,10 @@ Normally, the control frame does not contain data bits, except for ACK Frame.
The format of ACK Frame:
.. list-table::
:header-rows: 1
:widths: 25 25
.. list-table::
:header-rows: 1
:widths: 25 25
* - Field
- Value (Byte)
* - Type - ACK (Least Significant Bit)
@ -158,123 +158,123 @@ The format of ACK Frame:
1.1 Control Frame (Binary: 0x0 b'00)
.. list-table::
:header-rows: 1
:widths: 5 15 20 30
.. list-table::
:header-rows: 1
:widths: 5 15 20 30
* - Control Frame
- Implication
- Explanation
- Note
- Note
* - 0x0 (b000000)
- ACK
- The data field of the ACK frame uses the same sequence value of the frame to reply to.
- The data field consumes a byte and its value is the same as the sequence field of the frame to reply to.
- The data field consumes a byte and its value is the same as the sequence field of the frame to reply to.
* - 0x1 (b000001)
- Set the ESP device to the security mode.
- To inform the ESP device of the security mode to use when sending data, which is allowed to be reset multiple times during the process. Each setting affects the subsequent security mode used.
- To inform the ESP device of the security mode to use when sending data, which is allowed to be reset multiple times during the process. Each setting affects the subsequent security mode used.
If it is not set, the ESP device will send the control frame and data frame with no checksum and encryption by default. The data transmission from the mobile phone to the ESP device is controlled by this control frame.
- The data field consumes a byte. The higher four bits are for the security mode setting of the control frame, and the lower four bits are for the security mode setting of the data frame.
* b0000: no checksum and no encryption;
* b0001: with checksum but no encryption;
* b0010: no checksum but with encryption;
* b0000: no checksum and no encryption;
* b0001: with checksum but no encryption;
* b0010: no checksum but with encryption;
* b0011: with both checksum and encryption.
* - 0x2 (b000010)
- Set the opmode of Wi-Fi.
- The frame contains opmode settings for configuring the Wi-Fi mode of the ESP device.
- data[0] is for opmode settings, including:
- data[0] is for opmode settings, including:
* 0x00: NULL
* 0x00: NULL
* 0x01: STA
* 0x02: SoftAP
* 0x03: SoftAP & STA
* 0x02: SoftAP
* 0x03: SoftAP & STA
Please set the SSID/Password/Max Connection Number of the AP mode in the first place if an AP gets involved.
* - 0x3 (b000011)
- Connect the ESP device to the AP.
- To notify the ESP device that the essential information has been sent and it is allowed to connect to the AP.
- No data field is contained.
- No data field is contained.
* - 0x4 (b000100)
- Disconnect the ESP device from the AP.
-
- No data field is contained.
-
- No data field is contained.
* - 0x5 (b000101)
- To get the information of the ESP devices Wi-Fi mode and its status.
-
- * No data field is contained. When receiving this control frame, the ESP device will send back a follow-up frame of Wi-Fi connection state report to the mobile phone with the information of the current opmode, connection status, SSID, and so on.
* The types of information sent to the mobile phone is defined by the application installed on the phone.
-
- * No data field is contained. When receiving this control frame, the ESP device will send back a follow-up frame of Wi-Fi connection state report to the mobile phone with the information of the current opmode, connection status, SSID, and so on.
* The types of information sent to the mobile phone is defined by the application installed on the phone.
* - 0x6 (b000110)
- Disconnect the STA device from the SoftAP (in SoftAP mode).
-
- Data[0~5] is taken as the MAC address for the STA device. If there is a second STA device, then it uses data[6-11] and the rest can be done in the same manner.
-
- Data[0~5] is taken as the MAC address for the STA device. If there is a second STA device, then it uses data[6-11] and the rest can be done in the same manner.
* - 0x7 (b000111)
- Get the version information.
-
-
-
-
* - 0x8 (b001000)
- Disconnect the BLE GATT link.
-
- The ESP device will disconnect the BLE GATT link after receives this command.
-
- The ESP device will disconnect the BLE GATT link after receives this command.
* - 0x9 (b001001)
- Get the Wi-Fi list.
- To get the ESP device to scan the Wi-Fi access points around.
- No data field is contained. When receiving this control frame, the ESP device will send back a follow-up frame of Wi-Fi list report to the mobile phone.
- No data field is contained. When receiving this control frame, the ESP device will send back a follow-up frame of Wi-Fi list report to the mobile phone.
1.2 Data Frame (Binary: 0x1 b'01)
.. list-table::
:header-rows: 1
:widths: 5 15 20 30
.. list-table::
:header-rows: 1
:widths: 5 15 20 30
* - Data Frame
- Implication
- Explanation
- Note
- Note
* - 0x0 (b000000)
- Send the negotiation data.
- The negotiation data will be sent to the callback function registered in the application layer.
- The length of the data depends on the length field.
- The length of the data depends on the length field.
* - 0x1 (b000001)
- Send the SSID for STA mode.
- To send the BSSID of the AP for the STA device to connect under the condition that the SSID is hidden.
- Please refer to Note 1 below.
- Please refer to Note 1 below.
* - 0x2 (b000010)
- Send the SSID for STA mode.
- To send the SSID of the AP for the STA device to connect.
- Please refer to Note 1 below.
- Please refer to Note 1 below.
* - 0x3 (b000011)
- Send the password for STA mode.
- To send the password of the AP for the STA device to connect.
- Please refer to Note 1 below.
- Please refer to Note 1 below.
* - 0x4 (b000100)
- Send the SSID for SoftAP mode.
-
- Please refer to Note 1 below.
-
- Please refer to Note 1 below.
* - 0x5 (b000101)
- Send the password for SoftAPmode.
-
- Please refer to Note 1 below.
-
- Please refer to Note 1 below.
* - 0x6 (b000110)
- Set the maximum connection number for SoftAP mode.
-
- data[0] represents the value of the connection number, ranging from 1 to 4. When the transmission direction is ESP device to the mobile phone, it means to provide the mobile phone with the needed information.
-
- data[0] represents the value of the connection number, ranging from 1 to 4. When the transmission direction is ESP device to the mobile phone, it means to provide the mobile phone with the needed information.
* - 0x7 (b000111)
- Set the authentication mode for SoftAP mode.
-
-
- data[0]
* 0x00: OPEN
@ -283,35 +283,35 @@ The format of ACK Frame:
* 0x03: WPA2_PSK
* 0x04: WPA_WPA2_PSK
When the transmission direction is from the ESP device to the mobile phone, it means to provide the mobile phone with the needed information.
When the transmission direction is from the ESP device to the mobile phone, it means to provide the mobile phone with the needed information.
* - 0x8 (b001000)
- Set the number of channels for SoftAP mode.
-
- data[0] represents the quantity of the supported channels, ranging from 1 to 14. When the transmission direction is from the ESP device to the mobile phone, it means to provide the mobile phone with the needed information.
-
- data[0] represents the quantity of the supported channels, ranging from 1 to 14. When the transmission direction is from the ESP device to the mobile phone, it means to provide the mobile phone with the needed information.
* - 0x9 (b001001)
- Username
- It provides the username of the GATT client when using encryption of enterprise level.
- The length of the data depends on the length field.
- The length of the data depends on the length field.
* - 0xa (b001010)
- CA Certification
- It provides the CA Certification when using encryption of enterprise level.
- Please refer to Note 2 below.
- Please refer to Note 2 below.
* - 0xb (b001011)
- Client Certification
- It provides the client certification when using encryption of enterprise level. Whether the private key is contained or not depends on the content of the certification.
- Please refer to Note 2 below.
- Please refer to Note 2 below.
* - 0xc (b001100)
- Server Certification
- It provides the sever certification when using encryption of enterprise level. Whether the private key is contained or not depends on the content of the certification.
- Please refer to Note 2 below.
- Please refer to Note 2 below.
* - 0xd (b001101)
- Client Private Key
- It provides the private key of the client when using encryption of enterprise level.
- Please refer to Note 2 below.
- Please refer to Note 2 below.
* - 0xe (b001110)
- Server Private Key
- It provides the private key of the sever when using encryption of enterprise level.
- Please refer to Note 2 below.
- Please refer to Note 2 below.
* - 0xf (b001111)
- Wi-Fi Connection State Report
- To notify the phone of the ESP devices Wi-Fi status, including STA status and SoftAP status. It is for the STA device to connect to the mobile phone or the SoftAP. However, when the mobile phone receives the Wi-Fi status, it can reply to other frames in addition to this frame.
@ -329,13 +329,13 @@ The format of ACK Frame:
data[3] and the subsequent is in accordance with the format of SSID/BSSID information. If device is in connecting state, maximum Wi-Fi reconnecting time would be included here. If device is in disconnected state, Wi-Fi connection end reason and RSSI would be included here.
* - 0x10 (b010000)
- Version
-
-
- * data[0]= great version
* data[1]= sub version
* data[1]= sub version
* - 0x11 (b010001)
- Wi-Fi List
- To send the Wi-Fi list to ESP device.
- The format of the data frame is length + RSSI + SSID. It supports to be sent into fragments if the data length is too long.
- The format of the data frame is length + RSSI + SSID. It supports to be sent into fragments if the data length is too long.
* - 0x12 (b010010)
- Report Error
- To notify the mobile phone that there is an error with BluFi.
@ -347,72 +347,72 @@ The format of ACK Frame:
* 0x05: dh malloc error
* 0x06: dh param error
* 0x07: read param error
* 0x08: make public error
* 0x08: make public error
* 0x09: data format error
* 0x0a: calculate MD5 error
* 0x0b: Wi-Fi scan error
* - 0x13 (b010011)
- Custom Data
- To send or receive custom data.
- The data frame supports to be sent into fragments if the data length is too long.
- The data frame supports to be sent into fragments if the data length is too long.
* - 0x14 (b010100)
- Set the maximum Wi-Fi reconnecting time.
-
-
- data[0] represents the maximum Wi-Fi reconnecting time.
* - 0x15 (b010101)
- Set the Wi-Fi connection end reason.
-
-
- data[0] represents the Wi-Fi connection end reason, whose type shall be same with struct `wifi_err_reason_t`.
* - 0x16 (b010110)
- Set the RSSI at Wi-Fi connection end.
-
-
- data[0] represents the RSSI at Wi-Fi connection end. If there is no meaningful RSSI in the connection end, this value shall be the meaningless one, which is `-128`.
.. note::
- Note 1: The length of the data depends on the data length field. When the transmission direction is from the ESP device to the mobile phone, it means to provide the mobile phone with the needed information.
- Note 2: The length of the data depends on the data length field. The frame supports to be fragmented if the data length is not long enough.
- Note 1: The length of the data depends on the data length field. When the transmission direction is from the ESP device to the mobile phone, it means to provide the mobile phone with the needed information.
- Note 2: The length of the data depends on the data length field. The frame supports to be fragmented if the data length is not long enough.
2. Frame Control
The **Frame Control** field takes one byte and each bit has a different meaning.
.. list-table::
:header-rows: 1
:widths: 10 35
.. list-table::
:header-rows: 1
:widths: 10 35
* - Bit
- Meaning
- Meaning
* - 0x01
- Indicates whether the frame is encrypted.
* 1 means encrypted.
* 0 means unencrypted.
The encrypted part of the frame includes the full clear data before the DATA field is encrypted (no checksum). Control frame is not encrypted, so this bit is 0.
The encrypted part of the frame includes the full clear data before the DATA field is encrypted (no checksum). Control frame is not encrypted, so this bit is 0.
* - 0x02
- Indicates whether a frame contains a checksum (such as SHA1, MD5, CRC) for the end of the frame. Data field includes sequence, data length, and clear text. Both the control frame and the data frame can choose whether to contain a check bit or not.
- Indicates whether a frame contains a checksum (such as SHA1, MD5, CRC) for the end of the frame. Data field includes sequence, data length, and clear text. Both the control frame and the data frame can choose whether to contain a check bit or not.
* - 0x04
- Indicates the data direction.
* 0 means from the mobile phone to the ESP device.
* 1 means from the ESP device to the mobile phone.
* 1 means from the ESP device to the mobile phone.
* - 0x08
- Indicates whether the other person is required to reply to an ACK.
* 0 indicates not required to reply to an ACK.
* 1 indicates required to reply to an ACK.
* 1 indicates required to reply to an ACK.
* - 0x10
- Indicates whether there are subsequent data fragments.
* 0 indicates that there is no subsequent data fragment for this frame.
* 1 indicates that there are subsequent data fragments which used to transmit longer data.
In the case of a frag frame, the total length of the current content section + subsequent content section is given in the first two bytes of the data field (that is, the content data of the maximum support 64 K).
* - 0x10~0x80
- Reserved
In the case of a frag frame, the total length of the current content section + subsequent content section is given in the first two bytes of the data field (that is, the content data of the maximum support 64 K).
* - 0x10~0x80
- Reserved
3. Sequence Number

View File

@ -120,15 +120,15 @@ The RF resource allocation mechanism is based on priority. As shown below, both
default_group_color = none;
# node labels
Wi-Fi [shape = box];
Bluetooth [shape = box];
Coexistence [shape = box, label = 'Coexistence module'];
RF [shape = box, label = 'RF module'];
Wi-Fi [shape = box];
Bluetooth [shape = box];
Coexistence [shape = box, label = 'Coexistence module'];
RF [shape = box, label = 'RF module'];
# node connections
Wi-Fi -> Coexistence;
Bluetooth -> Coexistence;
Coexistence -> RF;
Wi-Fi -> Coexistence;
Bluetooth -> Coexistence;
Coexistence -> RF;
}

View File

@ -44,4 +44,4 @@ The figure below describes some basic aspects related to the implementation of t
.. note::
The diagram above hides some details and represents the current implementation of the core dump which can be changed later.
The diagram above hides some details and represents the current implementation of the core dump which can be changed later.

View File

@ -221,7 +221,7 @@ If :doc:`IDF Monitor <tools/idf-monitor>` is used, Program Counter values will b
Backtrace:
0x42006686 in bar (ptr=ptr@entry=0x0) at ../main/hello_world_main.c:18
18 *ptr = 0x42424242;
18 *ptr = 0x42424242;
#0 0x42006686 in bar (ptr=ptr@entry=0x0) at ../main/hello_world_main.c:18
#1 0x42006692 in foo () at ../main/hello_world_main.c:22
#2 0x420066ac in app_main () at ../main/hello_world_main.c:28

View File

@ -118,4 +118,4 @@ This will ensure the linker to always includes the file defining ``ld_include_my
- In theory, medium priority interrupts could also be handled in this way. ESP-IDF does not support this yet.
- To check Xtensa instruction set architecture (ISA), please refer to `Xtensa ISA Summary <https://www.cadence.com/content/dam/cadence-www/global/en_US/documents/tools/ip/tensilica-ip/isa-summary.pdf>`_.
- To check Xtensa instruction set architecture (ISA), please refer to `Xtensa ISA Summary <https://www.cadence.com/content/dam/cadence-www/global/en_US/documents/tools/ip/tensilica-ip/isa-summary.pdf>`_.

View File

@ -600,6 +600,6 @@ Then the corresponding excerpt from the generated linker script will be as follo
``*(.iram1 .iram1.*)``
Rule generated from the default scheme entry ``iram -> iram0_text``. Since the default scheme specifies an ``iram -> iram0_text`` entry, it too is placed wherever ``iram0_text`` is referenced by a marker. Since it is a rule generated from the default scheme, it comes first among all other rules collected under the same target name.
Rule generated from the default scheme entry ``iram -> iram0_text``. Since the default scheme specifies an ``iram -> iram0_text`` entry, it too is placed wherever ``iram0_text`` is referenced by a marker. Since it is a rule generated from the default scheme, it comes first among all other rules collected under the same target name.
The linker script template currently used is :component_file:`esp_system/ld/{IDF_TARGET_PATH_NAME}/sections.ld.in`; the generated output script ``sections.ld`` is put under its build directory.

View File

@ -4,4 +4,4 @@ Low Power Mode User Guide
:link_to_translation:`zh_CN:[中文]`
The document has not been translated into English yet. In the meantime, please refer to the Chinese version.
The document has not been translated into English yet. In the meantime, please refer to the Chinese version.

View File

@ -92,12 +92,12 @@ If some specific application code needs to be placed into IRAM, it can be done b
Alternatively, it is possible to specify IRAM placement in the source code using the ``IRAM_ATTR`` macro::
#include "esp_attr.h"
#include "esp_attr.h"
void IRAM_ATTR gpio_isr_handler(void* arg)
{
// ...
}
void IRAM_ATTR gpio_isr_handler(void* arg)
{
// ...
}
There are some possible issues with placement in IRAM, that may cause problems with IRAM-safe interrupt handlers:

View File

@ -111,4 +111,4 @@ To launch an OpenThread border router on an ESP chip, you need to connect an RCP
Calling :cpp:func:`esp_openthread_border_router_init` during the initialization launches all the border routing functionalities.
You may refer to the :example:`openthread/ot_br` example and the README for further border router details.
You may refer to the :example:`openthread/ot_br` example and the README for further border router details.

View File

@ -167,7 +167,7 @@ Whenever the chip outputs a hexadecimal address that points to executable code,
Backtrace:
panic_abort (details=details@entry=0x3fc9a37c "abort() was called at PC 0x42067cd5 on core 0") at /home/marius/esp-idf_2/components/esp_system/panic.c:367
367 *((int *) 0) = 0; // NOLINT(clang-analyzer-core.NullDereference) should be an invalid operation on targets
367 *((int *) 0) = 0; // NOLINT(clang-analyzer-core.NullDereference) should be an invalid operation on targets
#0 panic_abort (details=details@entry=0x3fc9a37c "abort() was called at PC 0x42067cd5 on core 0") at /home/marius/esp-idf_2/components/esp_system/panic.c:367
#1 0x40386b02 in esp_system_abort (details=details@entry=0x3fc9a37c "abort() was called at PC 0x42067cd5 on core 0") at /home/marius/esp-idf_2/components/esp_system/system_api.c:108
#2 0x403906cc in abort () at /home/marius/esp-idf_2/components/newlib/abort.c:46

View File

@ -17,9 +17,9 @@ You could think of a network packet analyzer as a measuring device used to exami
In the past, such tools were either very expensive, proprietary, or both. However, with the advent of Wireshark, all that has changed.
Wireshark is released under the terms of the GNU General Public License, which means you can use the software and the source code free of charge. It also allows you to modify and customize the source code.
Wireshark is released under the terms of the GNU General Public License, which means you can use the software and the source code free of charge. It also allows you to modify and customize the source code.
Wireshark is, perhaps, one of the best open source packet analyzers available today.
Wireshark is, perhaps, one of the best open source packet analyzers available today.
1.2 Some Intended Purposes
@ -30,9 +30,9 @@ Here are some examples of how Wireshark is typically used:
* Network administrators use it to troubleshoot network problems.
* Network security engineers use it to examine security problems.
* Developers use it to debug protocol implementations.
* People use it to learn more about network protocol internals.
Beside these examples, Wireshark can be used for many other purposes.
@ -43,19 +43,19 @@ Beside these examples, Wireshark can be used for many other purposes.
The main features of Wireshark are as follows:
* Available for UNIX and Windows
* Available for UNIX and Windows
* Captures live packet data from a network interface
* Captures live packet data from a network interface
* Displays packets along with detailed protocol information
* Opens/saves the captured packet data
* Opens/saves the captured packet data
* Imports/exports packets into a number of file formats, supported by other capture programs
* Advanced packet filtering
* Searches for packets based on multiple criteria
* Searches for packets based on multiple criteria
* Colorizes packets according to display filters
@ -68,15 +68,15 @@ The main features of Wireshark are as follows:
==============================
* **Live capture from different network media**.
Wireshark can capture traffic from different network media, including wireless LAN.
* **Import files from many other capture programs**.
Wireshark can capture traffic from different network media, including wireless LAN.
* **Import files from many other capture programs**.
Wireshark can import data from a large number of file formats, supported by other capture programs.
* **Export files for many other capture programs**.
* **Export files for many other capture programs**.
Wireshark can export data into a large number of file formats, supported by other capture programs.
* **Numerous protocol dissectors**.
@ -85,18 +85,18 @@ The main features of Wireshark are as follows:
* **Wireshark is not an intrusion detection system**.
It will not warn you if there are any suspicious activities on your network. However, if strange things happen, Wireshark might help you figure out what is really going on.
It will not warn you if there are any suspicious activities on your network. However, if strange things happen, Wireshark might help you figure out what is really going on.
* **Wireshark does not manipulate processes on the network, it can only perform "measurements" within it**.
Wireshark does not send packets on the network or influence it in any other way, except for resolving names (converting numerical address values into a human readable format), but even that can be disabled.
Wireshark does not send packets on the network or influence it in any other way, except for resolving names (converting numerical address values into a human readable format), but even that can be disabled.
==========================
1. Where to Get Wireshark
==========================
You can get Wireshark from the official website: https://www.wireshark.org/download.html
You can get Wireshark from the official website: https://www.wireshark.org/download.html
Wireshark can run on various operating systems. Please download the correct version according to the operating system you are using.
@ -112,7 +112,7 @@ Wireshark can run on various operating systems. Please download the correct vers
On Linux, you can run the shell script provided below. It starts Wireshark, then configures NIC and the channel for packet capture.
::
::
ifconfig $1 down
iwconfig $1 mode monitor
@ -133,20 +133,20 @@ In the above script, the parameter ``$1`` represents NIC and ``$2`` represents c
Wireshark Capture Interface
**c) Select the Interface to Start Packet Capture**
**c) Select the Interface to Start Packet Capture**
As the red markup shows in the picture above, many interfaces are available. The first one is a local NIC and the second one is a wireless NIC.
Please select the NIC according to your requirements. This document will use the wireless NIC to demonstrate packet capture.
Please select the NIC according to your requirements. This document will use the wireless NIC to demonstrate packet capture.
Double click *wlan0* to start packet capture.
**d) Set up Filters**
Since all packets in the channel will be captured, and many of them are not needed, you have to set up filters to get the packets that you need.
Since all packets in the channel will be captured, and many of them are not needed, you have to set up filters to get the packets that you need.
Please find the picture below with the red markup, indicating where the filters should be set up.
Please find the picture below with the red markup, indicating where the filters should be set up.
.. figure:: ../../_static/ws-setup-filters.png
:align: center

View File

@ -99,7 +99,7 @@ ESP-BLE-MESH GATT Proxy Server
ESP-BLE-MESH Models API Reference
---------------------------------
This section contains ESP-BLE-MESH Model related APIs, event types, event parameters, etc.
This section contains ESP-BLE-MESH Model related APIs, event types, event parameters, etc.
There are six categories of models:

View File

@ -16,4 +16,4 @@ API Reference
kconfig
provisioning/index
storage/index
system/index
system/index

View File

@ -26,4 +26,4 @@ Example on how to provision {IDF_TARGET_NAME} using a supported smartphone: :exa
API Reference
-------------
.. include-build-file:: inc/esp_dpp.inc
.. include-build-file:: inc/esp_dpp.inc

View File

@ -17,4 +17,4 @@ A pair of examples for a Publisher-Subscriber use case: :example:`wifi/wifi_awar
API Reference
-------------
.. include-build-file:: inc/esp_nan.inc
.. include-build-file:: inc/esp_nan.inc

View File

@ -19,4 +19,4 @@ Connect {IDF_TARGET_NAME} to the target AP using SmartConfig: :example:`wifi/sma
API Reference
-------------
.. include-build-file:: inc/esp_smartconfig.inc
.. include-build-file:: inc/esp_smartconfig.inc

View File

@ -64,28 +64,28 @@ If an IO pin is routed to a peripheral signal through the GPIO matrix, the signa
GPIO Glitch Filter
------------------
The {IDF_TARGET_NAME} chip features hardware filters to remove unwanted glitch pulses from the input GPIO, which can help reduce false triggering of the interrupt and prevent a noise being routed to the peripheral side.
The {IDF_TARGET_NAME} chip features hardware filters to remove unwanted glitch pulses from the input GPIO, which can help reduce false triggering of the interrupt and prevent a noise being routed to the peripheral side.
.. only:: SOC_GPIO_SUPPORT_PIN_GLITCH_FILTER
.. only:: SOC_GPIO_SUPPORT_PIN_GLITCH_FILTER
Each GPIO can be configured with a glitch filter, which can be used to filter out pulses shorter than **two** sample clock cycles. The duration of the filter is not configurable. The sample clock is the clock source of the IO_MUX. In the driver, we call this kind of filter as ``pin glitch filter``. You can create the filter handle by calling :cpp:func:`gpio_new_pin_glitch_filter`. All the configurations for a pin glitch filter are listed in the :cpp:type:`gpio_pin_glitch_filter_config_t` structure.
Each GPIO can be configured with a glitch filter, which can be used to filter out pulses shorter than **two** sample clock cycles. The duration of the filter is not configurable. The sample clock is the clock source of the IO_MUX. In the driver, we call this kind of filter as ``pin glitch filter``. You can create the filter handle by calling :cpp:func:`gpio_new_pin_glitch_filter`. All the configurations for a pin glitch filter are listed in the :cpp:type:`gpio_pin_glitch_filter_config_t` structure.
- :cpp:member:`gpio_pin_glitch_filter_config_t::gpio_num` sets the GPIO number to enable the glitch filter.
- :cpp:member:`gpio_pin_glitch_filter_config_t::gpio_num` sets the GPIO number to enable the glitch filter.
.. only:: SOC_GPIO_FLEX_GLITCH_FILTER_NUM
.. only:: SOC_GPIO_FLEX_GLITCH_FILTER_NUM
{IDF_TARGET_FLEX_GLITCH_FILTER_NUM:default="8"}
{IDF_TARGET_FLEX_GLITCH_FILTER_NUM:default="8"}
{IDF_TARGET_NAME} provides {IDF_TARGET_FLEX_GLITCH_FILTER_NUM} flexible glitch filters, whose duration is configurable. We refer to this kind of filter as ``flex flitch filter``. Each of them can be applied to any input GPIO. However, applying multiple filters to the same GPIO does not make difference from one. You can create the filter handle by calling :cpp:func:`gpio_new_flex_glitch_filter`. All the configurations for a flexible glitch filter are listed in the :cpp:type:`gpio_flex_glitch_filter_config_t` structure.
{IDF_TARGET_NAME} provides {IDF_TARGET_FLEX_GLITCH_FILTER_NUM} flexible glitch filters, whose duration is configurable. We refer to this kind of filter as ``flex flitch filter``. Each of them can be applied to any input GPIO. However, applying multiple filters to the same GPIO does not make difference from one. You can create the filter handle by calling :cpp:func:`gpio_new_flex_glitch_filter`. All the configurations for a flexible glitch filter are listed in the :cpp:type:`gpio_flex_glitch_filter_config_t` structure.
- :cpp:member:`gpio_flex_glitch_filter_config_t::gpio_num` sets the GPIO that will be applied to the flex glitch filter.
- :cpp:member:`gpio_flex_glitch_filter_config_t::window_width_ns` and :cpp:member:`gpio_flex_glitch_filter_config_t::window_thres_ns` are the key parameters of the glitch filter. During :cpp:member:`gpio_flex_glitch_filter_config_t::window_width_ns`, any pulse whose width is shorter than :cpp:member:`gpio_flex_glitch_filter_config_t::window_thres_ns` will be discarded. Please note that, you can not set :cpp:member:`gpio_flex_glitch_filter_config_t::window_thres_ns` bigger than :cpp:member:`gpio_flex_glitch_filter_config_t::window_width_ns`.
- :cpp:member:`gpio_flex_glitch_filter_config_t::gpio_num` sets the GPIO that will be applied to the flex glitch filter.
- :cpp:member:`gpio_flex_glitch_filter_config_t::window_width_ns` and :cpp:member:`gpio_flex_glitch_filter_config_t::window_thres_ns` are the key parameters of the glitch filter. During :cpp:member:`gpio_flex_glitch_filter_config_t::window_width_ns`, any pulse whose width is shorter than :cpp:member:`gpio_flex_glitch_filter_config_t::window_thres_ns` will be discarded. Please note that, you can not set :cpp:member:`gpio_flex_glitch_filter_config_t::window_thres_ns` bigger than :cpp:member:`gpio_flex_glitch_filter_config_t::window_width_ns`.
.. only:: SOC_GPIO_SUPPORT_PIN_GLITCH_FILTER and SOC_GPIO_FLEX_GLITCH_FILTER_NUM
.. only:: SOC_GPIO_SUPPORT_PIN_GLITCH_FILTER and SOC_GPIO_FLEX_GLITCH_FILTER_NUM
Please note, the ``pin glitch filter`` and ``flex glitch filter`` are independent. You can enable both of them for the same GPIO.
Please note, the ``pin glitch filter`` and ``flex glitch filter`` are independent. You can enable both of them for the same GPIO.
The glitch filter is disabled by default, and can be enabled by calling :cpp:func:`gpio_glitch_filter_enable`. To recycle the filter, you can call :cpp:func:`gpio_del_glitch_filter`. Please note, before deleting the filter, you should disable it first by calling :cpp:func:`gpio_glitch_filter_disable`.
The glitch filter is disabled by default, and can be enabled by calling :cpp:func:`gpio_glitch_filter_enable`. To recycle the filter, you can call :cpp:func:`gpio_del_glitch_filter`. Please note, before deleting the filter, you should disable it first by calling :cpp:func:`gpio_glitch_filter_disable`.
.. only:: SOC_GPIO_SUPPORT_PIN_HYS_FILTER

View File

@ -25,7 +25,7 @@ I2C Clock Configuration
-----------------------
.. list::
- :cpp:enumerator:`i2c_clock_source_t::I2C_CLK_SRC_DEFAULT`: Default I2C source clock.
:SOC_I2C_SUPPORT_XTAL: - :cpp:enumerator:`i2c_clock_source_t::I2C_CLK_SRC_XTAL`: External crystal for I2C clock source.
:SOC_I2C_SUPPORT_RTC: - :cpp:enumerator:`i2c_clock_source_t::I2C_CLK_RC_FAST`: Internal 20MHz rc oscillator for I2C clock source.
@ -545,4 +545,4 @@ API Reference
.. include-build-file:: inc/i2c_slave.inc
.. include-build-file:: inc/components/esp_driver_i2c/include/driver/i2c_types.inc
.. include-build-file:: inc/components/hal/include/hal/i2c_types.inc
.. include-build-file:: inc/components/hal/include/hal/i2c_types.inc

View File

@ -358,4 +358,4 @@ API Reference
Different ESP chip series might have different number of PCNT units and channels. Please refer to the [`TRM <{IDF_TARGET_TRM_EN_URL}#pcnt>`__] for details. The driver does not forbid you from applying for more PCNT units and channels, but it returns error when all available hardware resources are used up. Please always check the return value when doing resource allocation (e.g., :cpp:func:`pcnt_new_unit`).
.. [2]
:cpp:member:`pcnt_event_callbacks_t::on_reach` callback and the functions invoked by itself should also be placed in IRAM, you need to take care of them by themselves.
:cpp:member:`pcnt_event_callbacks_t::on_reach` callback and the functions invoked by itself should also be placed in IRAM, you need to take care of them by themselves.

View File

@ -84,4 +84,4 @@ If the ``ESP_INTR_FLAG_IRAM`` flag is not set when registering, the interrupt ha
.. only:: SOC_SPIRAM_XIP_SUPPORTED
.. include:: xip_from_psram.inc
.. include:: xip_from_psram.inc

View File

@ -37,7 +37,7 @@ Steps For Creating Custom Chip Drivers and Overriding the ESP-IDF Default Driver
.. note::
- When writing your own flash chip driver, you can set your flash chip capabilities through ``spi_flash_chip_***(vendor)_get_caps`` and points the function pointer ``get_chip_caps`` for protection to the ``spi_flash_chip_***_get_caps`` function. The steps are as follows.
1. Please check whether your flash chip have the capabilities listed in ``spi_flash_caps_t`` by checking the flash datasheet.
2. Write a function named ``spi_flash_chip_***(vendor)_get_caps``. Take the example below as a reference. (if the flash support ``suspend`` and ``read unique id``).
3. Points the pointer ``get_chip_caps`` (in ``spi_flash_chip_t``) to the function mentioned above.

View File

@ -131,4 +131,4 @@ The code example for Device/Host communication can be found in the :example:`per
API Reference
-------------
.. include-build-file:: inc/spi_slave_hd.inc
.. include-build-file:: inc/spi_slave_hd.inc

View File

@ -139,4 +139,4 @@ Grouping structure members by locking scheme makes the code more maintainable as
obj.single_thread.varC = 1;
// Accessing constant members requires no locking. But only read access is allowed
int local_var = obj.constant.varD;
int local_var = obj.constant.varD;

View File

@ -16,4 +16,4 @@ Hosted Documentation
The documentation can be found on the link below:
* `ASIO documentation (English) <https://docs.espressif.com/projects/esp-protocols/asio/docs/latest/index.html>`__
* `ASIO documentation (English) <https://docs.espressif.com/projects/esp-protocols/asio/docs/latest/index.html>`__

View File

@ -117,4 +117,4 @@ ICMP echo example: :example:`protocols/icmp_echo`
API Reference
-------------
.. include-build-file:: inc/ping_sock.inc
.. include-build-file:: inc/ping_sock.inc

View File

@ -19,7 +19,7 @@ Application Protocols
icmp_echo
mdns
mbedtls
Code examples for this API section are provided in the :example:`protocols` directory of ESP-IDF examples.

View File

@ -123,4 +123,4 @@ Under ``Component Config -> mbedTLS``, there are multiple Mbed TLS features whic
.. _`API Reference`: https://mbed-tls.readthedocs.io/projects/api/en/v3.4.1/
.. _`Knowledge Base`: https://mbed-tls.readthedocs.io/en/latest/kb/
.. _`Knowledge Base`: https://mbed-tls.readthedocs.io/en/latest/kb/

View File

@ -26,7 +26,7 @@ Most applications use the following workflow when working with ``esp_vfs_fat_``
#. Call :cpp:func:`ff_diskio_register` to register the disk I/O driver for the drive number used in Step 1.
#. To mount the filesystem using the same drive number which was passed to :cpp:func:`esp_vfs_fat_register`, call the FatFs function :cpp:func:`f_mount`. If the filesystem is not present on the target logical drive, :cpp:func:`f_mount` will fail with the ``FR_NO_FILESYSTEM`` error. In such case, call :cpp:func:`f_mkfs` to create a fresh FatFS structure on the drive first, and then call:cpp:func:`f_mount` again. Note that SD cards need to be partitioned with :cpp:func:`f_fdisk` prior to previously described steps. For more information, see `FatFs documentation <http://elm-chan.org/fsw/ff/doc/mount.html>`_.
#. To mount the filesystem using the same drive number which was passed to :cpp:func:`esp_vfs_fat_register`, call the FatFs function :cpp:func:`f_mount`. If the filesystem is not present on the target logical drive, :cpp:func:`f_mount` will fail with the ``FR_NO_FILESYSTEM`` error. In such case, call :cpp:func:`f_mkfs` to create a fresh FatFS structure on the drive first, and then call :cpp:func:`f_mount` again. Note that SD cards need to be partitioned with :cpp:func:`f_fdisk` prior to previously described steps. For more information, see `FatFs documentation <http://elm-chan.org/fsw/ff/doc/mount.html>`_.
#. Call the C standard library and POSIX API functions to perform such actions on files as open, read, write, erase, copy, etc. Use paths starting with the path prefix passed to :cpp:func:`esp_vfs_register` (for example, ``"/sdcard/hello.txt"``). The filesystem uses `8.3 filenames <https://en.wikipedia.org/wiki/8.3_filename>`_ format (SFN) by default. If you need to use long filenames (LFN), enable the :ref:`CONFIG_FATFS_LONG_FILENAMES` option. Please refer to `FatFs filenames <http://elm-chan.org/fsw/ff/doc/filename.html>`_ for more details.

View File

@ -18,4 +18,4 @@ API Reference
-------------
.. include-build-file:: inc/esp_app_trace.inc
.. include-build-file:: inc/esp_sysview_trace.inc
.. include-build-file:: inc/esp_sysview_trace.inc

View File

@ -81,9 +81,9 @@ However, in an SMP system, tasks need to be assigned a particular affinity. Ther
The ``...PinnedToCore()`` versions of the task creation function API differ from their vanilla counterparts by having an extra ``xCoreID`` parameter that is used to specify the created task's core affinity. The valid values for core affinity are:
- ``0``, which pins the created task to Core 0
- ``1``, which pins the created task to Core 1
- ``tskNO_AFFINITY``, which allows the task to be run on both cores
- ``0``, which pins the created task to Core 0
- ``1``, which pins the created task to Core 1
- ``tskNO_AFFINITY``, which allows the task to be run on both cores
Note that IDF FreeRTOS still supports the vanilla versions of the task creation functions. However, these standard functions have been modified to essentially invoke their respective ``...PinnedToCore()`` counterparts while setting the core affinity to ``tskNO_AFFINITY``.

View File

@ -279,7 +279,7 @@ The output from the heap trace has a similar format to the following example:
total allocations 2 total frees 0
.. note::
The above example output uses :doc:`IDF Monitor </api-guides/tools/idf-monitor>` to automatically decode PC addresses to their source files and line numbers.
The first line indicates how many allocation entries are in the buffer, compared to its total size.

View File

@ -26,4 +26,4 @@ An example doing a simple memory test of the high memory range is available in E
API Reference
-------------
.. include-build-file:: inc/himem.inc
.. include-build-file:: inc/himem.inc

View File

@ -5,7 +5,7 @@
espefuse.py v4.6-dev
Connecting....
Detecting chip type... ESP32-C2
=== Run "summary" command ===
EFUSE_NAME (Block) Description = [Meaningful Value] [Readable/Writeable] (Hex Value)
----------------------------------------------------------------------------------------
@ -26,21 +26,21 @@
RTC_LDO_SLP_DBIAS31 (BLOCK2) BLOCK2 DIG_LDO_SLP_DBIAS31 = 4 R/W (0b000001)
RTC_LDO_ACT_DBIAS31 (BLOCK2) BLOCK2 DIG_LDO_ACT_DBIAS31 = 24 R/W (0b000110)
RTC_LDO_ACT_DBIAS13 (BLOCK2) BLOCK2 DIG_LDO_ACT_DBIAS13 = 72 R/W (0x12)
Config fuses:
WR_DIS (BLOCK0) Disable programming of individual eFuses = 0 R/W (0x00)
RD_DIS (BLOCK0) Disable reading from BlOCK3 = 0 R/W (0b00)
UART_PRINT_CONTROL (BLOCK0) Set the default UARTboot message output mode = Enable R/W (0b00)
DIS_DIRECT_BOOT (BLOCK0) This bit set means disable direct_boot mode = False R/W (0b0)
Flash fuses:
FORCE_SEND_RESUME (BLOCK0) Set this bit to force ROM code to send a resume co = False R/W (0b0)
mmand during SPI boot
mmand during SPI boot
FLASH_TPUW (BLOCK0) Configures flash waiting time after power-up; in u = 0 R/W (0x0)
nit of ms. If the value is less than 15; the waiti
ng time is the configurable value. Otherwise; the
waiting time is twice the configurable value
waiting time is twice the configurable value
Identity fuses:
DISABLE_WAFER_VERSION_MAJOR (BLOCK0) Disables check of wafer version major = False R/W (0b0)
DISABLE_BLK_VERSION_MAJOR (BLOCK0) Disables check of blk version major = False R/W (0b0)
@ -49,41 +49,41 @@
PKG_VERSION (BLOCK2) EFUSE_PKG_VERSION = 1 R/W (0b001)
BLK_VERSION_MINOR (BLOCK2) Minor version of BLOCK2 = With calib R/W (0b001)
BLK_VERSION_MAJOR (BLOCK2) Major version of BLOCK2 = 0 R/W (0b00)
Jtag fuses:
DIS_PAD_JTAG (BLOCK0) Set this bit to disable pad jtag = False R/W (0b0)
Mac fuses:
CUSTOM_MAC_USED (BLOCK0) True if MAC_CUSTOM is burned = False R/W (0b0)
CUSTOM_MAC (BLOCK1) Custom MAC address
= 00:00:00:00:00:00 (OK) R/W
MAC (BLOCK2) MAC address
= 08:3a:8d:5c:4b:94 (OK) R/W
CUSTOM_MAC (BLOCK1) Custom MAC address
= 00:00:00:00:00:00 (OK) R/W
MAC (BLOCK2) MAC address
= 08:3a:8d:5c:4b:94 (OK) R/W
Security fuses:
DIS_DOWNLOAD_ICACHE (BLOCK0) The bit be set to disable icache in download mode = False R/W (0b0)
DIS_DOWNLOAD_MANUAL_ENCRYPT (BLOCK0) The bit be set to disable manual encryption = False R/W (0b0)
SPI_BOOT_CRYPT_CNT (BLOCK0) Enables flash encryption when 1 or 3 bits are set = Disable R/W (0b000)
and disables otherwise
and disables otherwise
XTS_KEY_LENGTH_256 (BLOCK0) Flash encryption key length = 128 bits key R/W (0b0)
DIS_DOWNLOAD_MODE (BLOCK0) Set this bit to disable download mode (boot_mode[3 = False R/W (0b0)
:0] = 0; 1; 2; 4; 5; 6; 7)
:0] = 0; 1; 2; 4; 5; 6; 7)
ENABLE_SECURITY_DOWNLOAD (BLOCK0) Set this bit to enable secure UART download mode = False R/W (0b0)
SECURE_BOOT_EN (BLOCK0) The bit be set to enable secure boot = False R/W (0b0)
SECURE_VERSION (BLOCK0) Secure version for anti-rollback = 0 R/W (0x0)
BLOCK_KEY0 (BLOCK3) BLOCK_KEY0 - 256-bits. 256-bit key of Flash Encryp
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
tion
BLOCK_KEY0_LOW_128 (BLOCK3) BLOCK_KEY0 - lower 128-bits. 128-bit key of Flash
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
Encryption
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
tion
BLOCK_KEY0_LOW_128 (BLOCK3) BLOCK_KEY0 - lower 128-bits. 128-bit key of Flash
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
Encryption
BLOCK_KEY0_HI_128 (BLOCK3) BLOCK_KEY0 - higher 128-bits. 128-bits key of Secu
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
re Boot
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
re Boot
Wdt fuses:
WDT_DELAY_SEL (BLOCK0) RTC watchdog timeout threshold; in unit of slow cl = 40000 R/W (0b00)
ock cycle
ock cycle
To get a dump for all eFuse registers.

View File

@ -5,7 +5,7 @@
espefuse.py v4.6-dev
Connecting....
Detecting chip type... ESP32-C3
=== Run "summary" command ===
EFUSE_NAME (Block) Description = [Meaningful Value] [Readable/Writeable] (Hex Value)
----------------------------------------------------------------------------------------
@ -26,7 +26,7 @@
ADC1_CAL_VOL_ATTEN1 (BLOCK2) ADC1 calibration voltage at atten1 = 52 R/W (0b0000001101)
ADC1_CAL_VOL_ATTEN2 (BLOCK2) ADC1 calibration voltage at atten2 = -152 R/W (0b1000100110)
ADC1_CAL_VOL_ATTEN3 (BLOCK2) ADC1 calibration voltage at atten3 = -284 R/W (0b1001000111)
Config fuses:
WR_DIS (BLOCK0) Disable programming of individual eFuses = 0 R/W (0x00000000)
RD_DIS (BLOCK0) Disable reading from BlOCK4-10 = 0 R/W (0b0000000)
@ -35,19 +35,19 @@
DIS_DIRECT_BOOT (BLOCK0) Disable direct boot mode = False R/W (0b0)
UART_PRINT_CONTROL (BLOCK0) Set the default UARTboot message output mode = Enable R/W (0b00)
ERR_RST_ENABLE (BLOCK0) Use BLOCK0 to check error record registers = with check R/W (0b1)
BLOCK_USR_DATA (BLOCK3) User data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLOCK_SYS_DATA2 (BLOCK10) System data part 2 (reserved)
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLOCK_USR_DATA (BLOCK3) User data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLOCK_SYS_DATA2 (BLOCK10) System data part 2 (reserved)
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
Flash fuses:
FLASH_TPUW (BLOCK0) Configures flash waiting time after power-up; in u = 0 R/W (0x0)
nit of ms. If the value is less than 15; the waiti
ng time is the configurable value; Otherwise; the
waiting time is twice the configurable value
ng time is the configurable value; Otherwise; the
waiting time is twice the configurable value
FORCE_SEND_RESUME (BLOCK0) Set this bit to force ROM code to send a resume co = False R/W (0b0)
mmand during SPI boot
mmand during SPI boot
Identity fuses:
DISABLE_WAFER_VERSION_MAJOR (BLOCK0) Disables check of wafer version major = False R/W (0b0)
DISABLE_BLK_VERSION_MAJOR (BLOCK0) Disables check of blk version major = False R/W (0b0)
@ -56,34 +56,34 @@
BLK_VERSION_MINOR (BLOCK1) BLK_VERSION_MINOR = 2 R/W (0b010)
WAFER_VERSION_MINOR_HI (BLOCK1) WAFER_VERSION_MINOR most significant bit = False R/W (0b0)
WAFER_VERSION_MAJOR (BLOCK1) WAFER_VERSION_MAJOR = 0 R/W (0b00)
OPTIONAL_UNIQUE_ID (BLOCK2) Optional unique 128-bit ID
= 25 60 04 96 c3 fd 41 6f be ed 2c 51 1d e3 7e 21 R/W
OPTIONAL_UNIQUE_ID (BLOCK2) Optional unique 128-bit ID
= 25 60 04 96 c3 fd 41 6f be ed 2c 51 1d e3 7e 21 R/W
BLK_VERSION_MAJOR (BLOCK2) BLK_VERSION_MAJOR of BLOCK2 = With calibration R/W (0b01)
WAFER_VERSION_MINOR (BLOCK0) calc WAFER VERSION MINOR = WAFER_VERSION_MINOR_HI = 3 R/W (0x3)
<< 3 + WAFER_VERSION_MINOR_LO (read only)
<< 3 + WAFER_VERSION_MINOR_LO (read only)
Jtag fuses:
SOFT_DIS_JTAG (BLOCK0) Set these bits to disable JTAG in the soft way (od = 0 R/W (0b000)
d number 1 means disable ). JTAG can be enabled in
HMAC module
HMAC module
DIS_PAD_JTAG (BLOCK0) Set this bit to disable JTAG in the hard way. JTAG = False R/W (0b0)
is disabled permanently
is disabled permanently
Mac fuses:
MAC (BLOCK1) MAC address
= 58:cf:79:0f:96:8c (OK) R/W
CUSTOM_MAC (BLOCK3) Custom MAC address
= 00:00:00:00:00:00 (OK) R/W
MAC (BLOCK1) MAC address
= 58:cf:79:0f:96:8c (OK) R/W
CUSTOM_MAC (BLOCK3) Custom MAC address
= 00:00:00:00:00:00 (OK) R/W
Security fuses:
DIS_DOWNLOAD_ICACHE (BLOCK0) Set this bit to disable Icache in download mode (b = False R/W (0b0)
oot_mode[3:0] is 0; 1; 2; 3; 6; 7)
oot_mode[3:0] is 0; 1; 2; 3; 6; 7)
DIS_FORCE_DOWNLOAD (BLOCK0) Set this bit to disable the function that forces c = False R/W (0b0)
hip into download mode
hip into download mode
DIS_DOWNLOAD_MANUAL_ENCRYPT (BLOCK0) Set this bit to disable flash encryption when in d = False R/W (0b0)
ownload boot modes
ownload boot modes
SPI_BOOT_CRYPT_CNT (BLOCK0) Enables flash encryption when 1 or 3 bits are set = Disable R/W (0b000)
and disables otherwise
and disables otherwise
SECURE_BOOT_KEY_REVOKE0 (BLOCK0) Revoke 1st secure boot key = False R/W (0b0)
SECURE_BOOT_KEY_REVOKE1 (BLOCK0) Revoke 2nd secure boot key = False R/W (0b0)
SECURE_BOOT_KEY_REVOKE2 (BLOCK0) Revoke 3rd secure boot key = False R/W (0b0)
@ -95,37 +95,37 @@
KEY_PURPOSE_5 (BLOCK0) Purpose of Key5 = USER R/W (0x0)
SECURE_BOOT_EN (BLOCK0) Set this bit to enable secure boot = False R/W (0b0)
SECURE_BOOT_AGGRESSIVE_REVOKE (BLOCK0) Set this bit to enable revoking aggressive secure = False R/W (0b0)
boot
boot
DIS_DOWNLOAD_MODE (BLOCK0) Set this bit to disable download mode (boot_mode[3 = False R/W (0b0)
:0] = 0; 1; 2; 3; 6; 7)
:0] = 0; 1; 2; 3; 6; 7)
ENABLE_SECURITY_DOWNLOAD (BLOCK0) Set this bit to enable secure UART download mode = False R/W (0b0)
SECURE_VERSION (BLOCK0) Secure version (used by ESP-IDF anti-rollback feat = 0 R/W (0x0000)
ure)
ure)
BLOCK_KEY0 (BLOCK4)
Purpose: USER
Key0 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
Key0 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLOCK_KEY1 (BLOCK5)
Purpose: USER
Key1 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
Key1 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLOCK_KEY2 (BLOCK6)
Purpose: USER
Key2 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
Key2 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLOCK_KEY3 (BLOCK7)
Purpose: USER
Key3 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
Key3 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLOCK_KEY4 (BLOCK8)
Purpose: USER
Key4 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
Key4 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLOCK_KEY5 (BLOCK9)
Purpose: USER
Key5 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
Key5 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
Spi Pad fuses:
SPI_PAD_CONFIG_CLK (BLOCK1) SPI PAD CLK = 0 R/W (0b000000)
SPI_PAD_CONFIG_Q (BLOCK1) SPI PAD Q(D1) = 0 R/W (0b000000)
@ -138,21 +138,21 @@
SPI_PAD_CONFIG_D5 (BLOCK1) SPI PAD D5 = 0 R/W (0b000000)
SPI_PAD_CONFIG_D6 (BLOCK1) SPI PAD D6 = 0 R/W (0b000000)
SPI_PAD_CONFIG_D7 (BLOCK1) SPI PAD D7 = 0 R/W (0b000000)
Usb fuses:
DIS_USB_JTAG (BLOCK0) Set this bit to disable function of usb switch to = False R/W (0b0)
jtag in module of usb device
jtag in module of usb device
DIS_USB_SERIAL_JTAG (BLOCK0) USB-Serial-JTAG = Enable R/W (0b0)
USB_EXCHG_PINS (BLOCK0) Set this bit to exchange USB D+ and D- pins = False R/W (0b0)
DIS_USB_SERIAL_JTAG_ROM_PRINT (BLOCK0) USB printing = Enable R/W (0b0)
DIS_USB_SERIAL_JTAG_DOWNLOAD_MODE (BLOCK0) Disable UART download mode through USB-Serial-JTAG = False R/W (0b0)
Vdd fuses:
VDD_SPI_AS_GPIO (BLOCK0) Set this bit to vdd spi pin function as gpio = False R/W (0b0)
Wdt fuses:
WDT_DELAY_SEL (BLOCK0) RTC watchdog timeout threshold; in unit of slow cl = 40000 R/W (0b00)
ock cycle
ock cycle
To get a dump for all eFuse registers.

View File

@ -5,7 +5,7 @@
espefuse.py v4.6-dev
Connecting....
Detecting chip type... ESP32-C6
=== Run "summary" command ===
EFUSE_NAME (Block) Description = [Meaningful Value] [Readable/Writeable] (Hex Value)
----------------------------------------------------------------------------------------
@ -13,31 +13,31 @@
WR_DIS (BLOCK0) Disable programming of individual eFuses = 0 R/W (0x00000000)
RD_DIS (BLOCK0) Disable reading from BlOCK4-10 = 0 R/W (0b0000000)
SWAP_UART_SDIO_EN (BLOCK0) Represents whether pad of uart and sdio is swapped = False R/W (0b0)
or not. 1: swapped. 0: not swapped
or not. 1: swapped. 0: not swapped
DIS_ICACHE (BLOCK0) Represents whether icache is disabled or enabled. = False R/W (0b0)
1: disabled. 0: enabled
1: disabled. 0: enabled
DIS_TWAI (BLOCK0) Represents whether TWAI function is disabled or en = False R/W (0b0)
abled. 1: disabled. 0: enabled
abled. 1: disabled. 0: enabled
DIS_DIRECT_BOOT (BLOCK0) Represents whether direct boot mode is disabled or = False R/W (0b0)
enabled. 1: disabled. 0: enabled
enabled. 1: disabled. 0: enabled
UART_PRINT_CONTROL (BLOCK0) Set the default UARTboot message output mode = Enable R/W (0b00)
BLOCK_USR_DATA (BLOCK3) User data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLOCK_SYS_DATA2 (BLOCK10) System data part 2 (reserved)
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLOCK_USR_DATA (BLOCK3) User data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLOCK_SYS_DATA2 (BLOCK10) System data part 2 (reserved)
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
Flash fuses:
FLASH_TPUW (BLOCK0) Represents the flash waiting time after power-up; = 0 R/W (0x0)
in unit of ms. When the value less than 15; the wa
iting time is the programmed value. Otherwise; the
waiting time is 2 times the programmed value
waiting time is 2 times the programmed value
FORCE_SEND_RESUME (BLOCK0) Represents whether ROM code is forced to send a re = False R/W (0b0)
sume command during SPI boot. 1: forced. 0:not for
ced
ced
FLASH_CAP (BLOCK1) = 0 R/W (0b000)
FLASH_TEMP (BLOCK1) = 0 R/W (0b00)
FLASH_VENDOR (BLOCK1) = 0 R/W (0b000)
Identity fuses:
DISABLE_WAFER_VERSION_MAJOR (BLOCK0) Disables check of wafer version major = False R/W (0b0)
DISABLE_BLK_VERSION_MAJOR (BLOCK0) Disables check of blk version major = False R/W (0b0)
@ -46,41 +46,41 @@
PKG_VERSION (BLOCK1) Package version = 1 R/W (0b001)
BLK_VERSION_MINOR (BLOCK1) BLK_VERSION_MINOR of BLOCK2 = 0 R/W (0b000)
BLK_VERSION_MAJOR (BLOCK1) BLK_VERSION_MAJOR of BLOCK2 = 0 R/W (0b00)
OPTIONAL_UNIQUE_ID (BLOCK2) Optional unique 128-bit ID
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
OPTIONAL_UNIQUE_ID (BLOCK2) Optional unique 128-bit ID
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
Jtag fuses:
JTAG_SEL_ENABLE (BLOCK0) Represents whether the selection between usb_to_jt = False R/W (0b0)
ag and pad_to_jtag through strapping gpio15 when b
oth EFUSE_DIS_PAD_JTAG and EFUSE_DIS_USB_JTAG are
equal to 0 is enabled or disabled. 1: enabled. 0:
disabled
oth EFUSE_DIS_PAD_JTAG and EFUSE_DIS_USB_JTAG are
equal to 0 is enabled or disabled. 1: enabled. 0:
disabled
SOFT_DIS_JTAG (BLOCK0) Represents whether JTAG is disabled in soft way. O = 0 R/W (0b000)
dd number: disabled. Even number: enabled
dd number: disabled. Even number: enabled
DIS_PAD_JTAG (BLOCK0) Represents whether JTAG is disabled in the hard wa = False R/W (0b0)
y(permanently). 1: disabled. 0: enabled
y(permanently). 1: disabled. 0: enabled
Mac fuses:
MAC (BLOCK1) MAC address
= 60:55:f9:f7:52:9c (OK) R/W
MAC_EXT (BLOCK1) Stores the extended bits of MAC address = 00:00 (OK) R/W
CUSTOM_MAC (BLOCK3) Custom MAC
= 00:00:00:00:00:00 (OK) R/W
MAC (BLOCK1) MAC address
= 60:55:f9:f7:52:9c (OK) R/W
MAC_EXT (BLOCK1) Stores the extended bits of MAC address = 00:00 (OK) R/W
CUSTOM_MAC (BLOCK3) Custom MAC
= 00:00:00:00:00:00 (OK) R/W
Security fuses:
DIS_DOWNLOAD_ICACHE (BLOCK0) Represents whether icache is disabled or enabled i = False R/W (0b0)
n Download mode. 1: disabled. 0: enabled
n Download mode. 1: disabled. 0: enabled
DIS_FORCE_DOWNLOAD (BLOCK0) Represents whether the function that forces chip i = False R/W (0b0)
nto download mode is disabled or enabled. 1: disab
led. 0: enabled
led. 0: enabled
SPI_DOWNLOAD_MSPI_DIS (BLOCK0) Represents whether SPI0 controller during boot_mod = False R/W (0b0)
e_download is disabled or enabled. 1: disabled. 0:
enabled
enabled
DIS_DOWNLOAD_MANUAL_ENCRYPT (BLOCK0) Represents whether flash encrypt function is disab = False R/W (0b0)
led or enabled(except in SPI boot mode). 1: disabl
ed. 0: enabled
ed. 0: enabled
SPI_BOOT_CRYPT_CNT (BLOCK0) Enables flash encryption when 1 or 3 bits are set = Disable R/W (0b000)
and disables otherwise
and disables otherwise
SECURE_BOOT_KEY_REVOKE0 (BLOCK0) Revoke 1st secure boot key = False R/W (0b0)
SECURE_BOOT_KEY_REVOKE1 (BLOCK0) Revoke 2nd secure boot key = False R/W (0b0)
SECURE_BOOT_KEY_REVOKE2 (BLOCK0) Revoke 3rd secure boot key = False R/W (0b0)
@ -91,69 +91,69 @@
KEY_PURPOSE_4 (BLOCK0) Represents the purpose of Key4 = USER R/W (0x0)
KEY_PURPOSE_5 (BLOCK0) Represents the purpose of Key5 = USER R/W (0x0)
SEC_DPA_LEVEL (BLOCK0) Represents the spa secure level by configuring the = 0 R/W (0b00)
clock random divide mode
clock random divide mode
CRYPT_DPA_ENABLE (BLOCK0) Represents whether anti-dpa attack is enabled. 1:e = False R/W (0b0)
nabled. 0: disabled
nabled. 0: disabled
SECURE_BOOT_EN (BLOCK0) Represents whether secure boot is enabled or disab = False R/W (0b0)
led. 1: enabled. 0: disabled
led. 1: enabled. 0: disabled
SECURE_BOOT_AGGRESSIVE_REVOKE (BLOCK0) Represents whether revoking aggressive secure boot = False R/W (0b0)
is enabled or disabled. 1: enabled. 0: disabled
is enabled or disabled. 1: enabled. 0: disabled
DIS_DOWNLOAD_MODE (BLOCK0) Represents whether Download mode is disabled or en = False R/W (0b0)
abled. 1: disabled. 0: enabled
abled. 1: disabled. 0: enabled
ENABLE_SECURITY_DOWNLOAD (BLOCK0) Represents whether security download is enabled or = False R/W (0b0)
disabled. 1: enabled. 0: disabled
disabled. 1: enabled. 0: disabled
SECURE_VERSION (BLOCK0) Represents the version used by ESP-IDF anti-rollba = 0 R/W (0x0000)
ck feature
ck feature
SECURE_BOOT_DISABLE_FAST_WAKE (BLOCK0) Represents whether FAST VERIFY ON WAKE is disabled = False R/W (0b0)
or enabled when Secure Boot is enabled. 1: disabl
ed. 0: enabled
ed. 0: enabled
BLOCK_KEY0 (BLOCK4)
Purpose: USER
Key0 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
Key0 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLOCK_KEY1 (BLOCK5)
Purpose: USER
Key1 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
Key1 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLOCK_KEY2 (BLOCK6)
Purpose: USER
Key2 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
Key2 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLOCK_KEY3 (BLOCK7)
Purpose: USER
Key3 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
Key3 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLOCK_KEY4 (BLOCK8)
Purpose: USER
Key4 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
Key4 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLOCK_KEY5 (BLOCK9)
Purpose: USER
Key5 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
Key5 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
Usb fuses:
DIS_USB_JTAG (BLOCK0) Represents whether the function of usb switch to j = False R/W (0b0)
tag is disabled or enabled. 1: disabled. 0: enable
d
d
DIS_USB_SERIAL_JTAG (BLOCK0) Represents whether USB-Serial-JTAG is disabled or = False R/W (0b0)
enabled. 1: disabled. 0: enabled
enabled. 1: disabled. 0: enabled
USB_EXCHG_PINS (BLOCK0) Represents whether the D+ and D- pins is exchanged = False R/W (0b0)
. 1: exchanged. 0: not exchanged
. 1: exchanged. 0: not exchanged
DIS_USB_SERIAL_JTAG_ROM_PRINT (BLOCK0) Represents whether print from USB-Serial-JTAG is d = False R/W (0b0)
isabled or enabled. 1: disabled. 0: enabled
isabled or enabled. 1: disabled. 0: enabled
DIS_USB_SERIAL_JTAG_DOWNLOAD_MODE (BLOCK0) Represents whether the USB-Serial-JTAG download fu = False R/W (0b0)
nction is disabled or enabled. 1: disabled. 0: ena
bled
bled
Vdd fuses:
VDD_SPI_AS_GPIO (BLOCK0) Represents whether vdd spi pin is functioned as gp = False R/W (0b0)
io. 1: functioned. 0: not functioned
io. 1: functioned. 0: not functioned
Wdt fuses:
WDT_DELAY_SEL (BLOCK0) Represents whether RTC watchdog timeout threshold = 0 R/W (0b00)
is selected at startup. 1: selected. 0: not select
ed
ed
To get a dump for all eFuse registers.

View File

@ -5,7 +5,7 @@
espefuse.py v4.6-dev
Connecting....
Detecting chip type... ESP32-H2
=== Run "summary" command ===
EFUSE_NAME (Block) Description = [Meaningful Value] [Readable/Writeable] (Hex Value)
----------------------------------------------------------------------------------------
@ -13,73 +13,73 @@
WR_DIS (BLOCK0) Disable programming of individual eFuses = 0 R/W (0x00000000)
RD_DIS (BLOCK0) Disable reading from BlOCK4-10 = 0 R/W (0b0000000)
DIS_ICACHE (BLOCK0) Represents whether icache is disabled or enabled. = False R/W (0b0)
1: disabled. 0: enabled
1: disabled. 0: enabled
POWERGLITCH_EN (BLOCK0) Represents whether power glitch function is enable = False R/W (0b0)
d. 1: enabled. 0: disabled
d. 1: enabled. 0: disabled
DIS_TWAI (BLOCK0) Represents whether TWAI function is disabled or en = False R/W (0b0)
abled. 1: disabled. 0: enabled
abled. 1: disabled. 0: enabled
DIS_DIRECT_BOOT (BLOCK0) Represents whether direct boot mode is disabled or = False R/W (0b0)
enabled. 1: disabled. 0: enabled
enabled. 1: disabled. 0: enabled
UART_PRINT_CONTROL (BLOCK0) Set the default UARTboot message output mode = Enable R/W (0b00)
HYS_EN_PAD0 (BLOCK0) Set bits to enable hysteresis function of PAD0~5 = 0 R/W (0b000000)
HYS_EN_PAD1 (BLOCK0) Set bits to enable hysteresis function of PAD6~27 = 0 R/W (0b0000000000000000000000)
BLOCK_USR_DATA (BLOCK3) User data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLOCK_SYS_DATA2 (BLOCK10) System data part 2 (reserved)
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLOCK_USR_DATA (BLOCK3) User data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLOCK_SYS_DATA2 (BLOCK10) System data part 2 (reserved)
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
Flash fuses:
FLASH_TPUW (BLOCK0) Represents the flash waiting time after power-up; = 0 R/W (0x0)
in unit of ms. When the value less than 15; the wa
iting time is the programmed value. Otherwise; the
waiting time is 2 times the programmed value
waiting time is 2 times the programmed value
FORCE_SEND_RESUME (BLOCK0) Represents whether ROM code is forced to send a re = False R/W (0b0)
sume command during SPI boot. 1: forced. 0:not for
ced
ced
FLASH_CAP (BLOCK1) = 0 R/W (0b000)
FLASH_TEMP (BLOCK1) = 0 R/W (0b00)
FLASH_VENDOR (BLOCK1) = 0 R/W (0b000)
Identity fuses:
WAFER_VERSION_MINOR (BLOCK1) = 0 R/W (0b000)
WAFER_VERSION_MAJOR (BLOCK1) = 0 R/W (0b00)
DISABLE_WAFER_VERSION_MAJOR (BLOCK1) Disables check of wafer version major = False R/W (0b0)
PKG_VERSION (BLOCK1) Package version = 0 R/W (0b000)
OPTIONAL_UNIQUE_ID (BLOCK2) Optional unique 128-bit ID
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
OPTIONAL_UNIQUE_ID (BLOCK2) Optional unique 128-bit ID
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLK_VERSION_MINOR (BLOCK2) BLK_VERSION_MINOR of BLOCK2 = 0 R/W (0b000)
BLK_VERSION_MAJOR (BLOCK2) BLK_VERSION_MAJOR of BLOCK2 = 0 R/W (0b00)
DISABLE_BLK_VERSION_MAJOR (BLOCK2) Disables check of blk version major = False R/W (0b0)
Jtag fuses:
JTAG_SEL_ENABLE (BLOCK0) Set this bit to enable selection between usb_to_jt = False R/W (0b0)
ag and pad_to_jtag through strapping gpio25 when b
oth EFUSE_DIS_PAD_JTAG and EFUSE_DIS_USB_JTAG are
equal to 0
oth EFUSE_DIS_PAD_JTAG and EFUSE_DIS_USB_JTAG are
equal to 0
SOFT_DIS_JTAG (BLOCK0) Represents whether JTAG is disabled in soft way. O = 0 R/W (0b000)
dd number: disabled. Even number: enabled
dd number: disabled. Even number: enabled
DIS_PAD_JTAG (BLOCK0) Represents whether JTAG is disabled in the hard wa = False R/W (0b0)
y(permanently). 1: disabled. 0: enabled
y(permanently). 1: disabled. 0: enabled
Mac fuses:
MAC (BLOCK1) MAC address
= 60:55:f9:f7:2c:a2:ff:fe (OK) R/W
MAC_EXT (BLOCK1) Stores the extended bits of MAC address = ff:fe (OK) R/W
CUSTOM_MAC (BLOCK3) Custom MAC
= 00:00:00:00:00:00:ff:fe (OK) R/W
MAC (BLOCK1) MAC address
= 60:55:f9:f7:2c:a2:ff:fe (OK) R/W
MAC_EXT (BLOCK1) Stores the extended bits of MAC address = ff:fe (OK) R/W
CUSTOM_MAC (BLOCK3) Custom MAC
= 00:00:00:00:00:00:ff:fe (OK) R/W
Security fuses:
DIS_FORCE_DOWNLOAD (BLOCK0) Represents whether the function that forces chip i = False R/W (0b0)
nto download mode is disabled or enabled. 1: disab
led. 0: enabled
led. 0: enabled
SPI_DOWNLOAD_MSPI_DIS (BLOCK0) Represents whether SPI0 controller during boot_mod = False R/W (0b0)
e_download is disabled or enabled. 1: disabled. 0:
enabled
enabled
DIS_DOWNLOAD_MANUAL_ENCRYPT (BLOCK0) Represents whether flash encrypt function is disab = False R/W (0b0)
led or enabled(except in SPI boot mode). 1: disabl
ed. 0: enabled
ed. 0: enabled
SPI_BOOT_CRYPT_CNT (BLOCK0) Enables flash encryption when 1 or 3 bits are set = Disable R/W (0b000)
and disables otherwise
and disables otherwise
SECURE_BOOT_KEY_REVOKE0 (BLOCK0) Revoke 1st secure boot key = False R/W (0b0)
SECURE_BOOT_KEY_REVOKE1 (BLOCK0) Revoke 2nd secure boot key = False R/W (0b0)
SECURE_BOOT_KEY_REVOKE2 (BLOCK0) Revoke 3rd secure boot key = False R/W (0b0)
@ -90,70 +90,70 @@
KEY_PURPOSE_4 (BLOCK0) Represents the purpose of Key4 = USER R/W (0x0)
KEY_PURPOSE_5 (BLOCK0) Represents the purpose of Key5 = USER R/W (0x0)
SEC_DPA_LEVEL (BLOCK0) Represents the spa secure level by configuring the = 0 R/W (0b00)
clock random divide mode
clock random divide mode
ECDSA_FORCE_USE_HARDWARE_K (BLOCK0) Represents whether hardware random number k is for = False R/W (0b0)
ced used in ESDCA. 1: force used. 0: not force use
d
d
CRYPT_DPA_ENABLE (BLOCK0) Represents whether anti-dpa attack is enabled. 1:e = False R/W (0b0)
nabled. 0: disabled
nabled. 0: disabled
SECURE_BOOT_EN (BLOCK0) Represents whether secure boot is enabled or disab = False R/W (0b0)
led. 1: enabled. 0: disabled
led. 1: enabled. 0: disabled
SECURE_BOOT_AGGRESSIVE_REVOKE (BLOCK0) Represents whether revoking aggressive secure boot = False R/W (0b0)
is enabled or disabled. 1: enabled. 0: disabled
is enabled or disabled. 1: enabled. 0: disabled
DIS_DOWNLOAD_MODE (BLOCK0) Represents whether Download mode is disabled or en = False R/W (0b0)
abled. 1: disabled. 0: enabled
abled. 1: disabled. 0: enabled
ENABLE_SECURITY_DOWNLOAD (BLOCK0) Represents whether security download is enabled or = False R/W (0b0)
disabled. 1: enabled. 0: disabled
disabled. 1: enabled. 0: disabled
SECURE_VERSION (BLOCK0) Represents the version used by ESP-IDF anti-rollba = 0 R/W (0x0000)
ck feature
ck feature
SECURE_BOOT_DISABLE_FAST_WAKE (BLOCK0) Represents whether FAST VERIFY ON WAKE is disabled = False R/W (0b0)
or enabled when Secure Boot is enabled. 1: disabl
ed. 0: enabled
ed. 0: enabled
BLOCK_KEY0 (BLOCK4)
Purpose: USER
Key0 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
Key0 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLOCK_KEY1 (BLOCK5)
Purpose: USER
Key1 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
Key1 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLOCK_KEY2 (BLOCK6)
Purpose: USER
Key2 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
Key2 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLOCK_KEY3 (BLOCK7)
Purpose: USER
Key3 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
Key3 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLOCK_KEY4 (BLOCK8)
Purpose: USER
Key4 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
Key4 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLOCK_KEY5 (BLOCK9)
Purpose: USER
Key5 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
Key5 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
Usb fuses:
DIS_USB_JTAG (BLOCK0) Represents whether the function of usb switch to j = False R/W (0b0)
tag is disabled or enabled. 1: disabled. 0: enable
d
d
USB_EXCHG_PINS (BLOCK0) Represents whether the D+ and D- pins is exchanged = False R/W (0b0)
. 1: exchanged. 0: not exchanged
. 1: exchanged. 0: not exchanged
DIS_USB_SERIAL_JTAG_ROM_PRINT (BLOCK0) Set this bit to disable USB-Serial-JTAG print duri = False R/W (0b0)
ng rom boot
ng rom boot
DIS_USB_SERIAL_JTAG_DOWNLOAD_MODE (BLOCK0) Represents whether the USB-Serial-JTAG download fu = False R/W (0b0)
nction is disabled or enabled. 1: disabled. 0: ena
bled
bled
Vdd fuses:
VDD_SPI_AS_GPIO (BLOCK0) Represents whether vdd spi pin is functioned as gp = False R/W (0b0)
io. 1: functioned. 0: not functioned
io. 1: functioned. 0: not functioned
Wdt fuses:
WDT_DELAY_SEL (BLOCK0) Represents whether RTC watchdog timeout threshold = 0 R/W (0b00)
is selected at startup. 1: selected. 0: not select
ed
ed
To get a dump for all eFuse registers.

View File

@ -5,7 +5,7 @@
espefuse.py v4.7.dev1
Connecting....
Detecting chip type... ESP32-P4
=== Run "summary" command ===
EFUSE_NAME (Block) Description = [Meaningful Value] [Readable/Writeable] (Hex Value)
----------------------------------------------------------------------------------------
@ -13,27 +13,27 @@
WR_DIS (BLOCK0) Disable programming of individual eFuses = 0 R/W (0x00000000)
RD_DIS (BLOCK0) Disable reading from BlOCK4-10 = 0 R/W (0b0000000)
POWERGLITCH_EN (BLOCK0) Represents whether power glitch function is enable = False R/W (0b0)
d. 1: enabled. 0: disabled
d. 1: enabled. 0: disabled
DIS_TWAI (BLOCK0) Represents whether TWAI function is disabled or en = False R/W (0b0)
abled. 1: disabled. 0: enabled
abled. 1: disabled. 0: enabled
KM_HUK_GEN_STATE_LOW (BLOCK0) Set this bit to control validation of HUK generate = 0 R/W (0b000000)
mode. Odd of 1 is invalid; even of 1 is valid
mode. Odd of 1 is invalid; even of 1 is valid
KM_HUK_GEN_STATE_HIGH (BLOCK0) Set this bit to control validation of HUK generate = 0 R/W (0b000)
mode. Odd of 1 is invalid; even of 1 is valid
mode. Odd of 1 is invalid; even of 1 is valid
KM_RND_SWITCH_CYCLE (BLOCK0) Set bits to control key manager random number swit = 0 R/W (0b00)
ch cycle. 0: control by register. 1: 8 km clk cycl
es. 2: 16 km cycles. 3: 32 km cycles
es. 2: 16 km cycles. 3: 32 km cycles
KM_DEPLOY_ONLY_ONCE (BLOCK0) Set each bit to control whether corresponding key = 0 R/W (0x0)
can only be deployed once. 1 is true; 0 is false.
Bit0: ecdsa. Bit1: xts. Bit2: hmac. Bit3: ds
can only be deployed once. 1 is true; 0 is false.
Bit0: ecdsa. Bit1: xts. Bit2: hmac. Bit3: ds
DIS_DIRECT_BOOT (BLOCK0) Represents whether direct boot mode is disabled or = False R/W (0b0)
enabled. 1: disabled. 0: enabled
enabled. 1: disabled. 0: enabled
UART_PRINT_CONTROL (BLOCK0) Represents the type of UART printing. 00: force en = 0 R/W (0b00)
able printing. 01: enable printing when GPIO8 is r
eset at low level. 10: enable printing when GPIO8
eset at low level. 10: enable printing when GPIO8
is reset at high level. 11: force disable printing
HYS_EN_PAD (BLOCK0) Represents whether the hysteresis function of corr = False R/W (0b0)
esponding PAD is enabled. 1: enabled. 0:disabled
esponding PAD is enabled. 1: enabled. 0:disabled
DCDC_VSET (BLOCK0) Set the dcdc voltage default = 0 R/W (0b00000)
PXA0_TIEH_SEL_0 (BLOCK0) TBD = 0 R/W (0b00)
PXA0_TIEH_SEL_1 (BLOCK0) TBD = 0 R/W (0b00)
@ -43,63 +43,63 @@
HP_PWR_SRC_SEL (BLOCK0) HP system power source select. 0:LDO. 1: DCDC = False R/W (0b0)
DCDC_VSET_EN (BLOCK0) Select dcdc vset use efuse_dcdc_vset = False R/W (0b0)
DIS_SWD (BLOCK0) Set this bit to disable super-watchdog = False R/W (0b0)
BLOCK_SYS_DATA1 (BLOCK2) System data part 1
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLOCK_USR_DATA (BLOCK3) User data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLOCK_SYS_DATA2 (BLOCK10) System data part 2 (reserved)
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLOCK_SYS_DATA1 (BLOCK2) System data part 1
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLOCK_USR_DATA (BLOCK3) User data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLOCK_SYS_DATA2 (BLOCK10) System data part 2 (reserved)
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
Flash fuses:
FLASH_TYPE (BLOCK0) The type of interfaced flash. 0: four data lines; = False R/W (0b0)
1: eight data lines
1: eight data lines
FLASH_PAGE_SIZE (BLOCK0) Set flash page size = 0 R/W (0b00)
FLASH_ECC_EN (BLOCK0) Set this bit to enable ecc for flash boot = False R/W (0b0)
FLASH_TPUW (BLOCK0) Represents the flash waiting time after power-up; = 0 R/W (0x0)
in unit of ms. When the value less than 15; the wa
iting time is the programmed value. Otherwise; the
waiting time is 2 times the programmed value
waiting time is 2 times the programmed value
FORCE_SEND_RESUME (BLOCK0) Represents whether ROM code is forced to send a re = False R/W (0b0)
sume command during SPI boot. 1: forced. 0:not for
ced
ced
Jtag fuses:
JTAG_SEL_ENABLE (BLOCK0) Represents whether the selection between usb_to_jt = False R/W (0b0)
ag and pad_to_jtag through strapping gpio15 when b
oth EFUSE_DIS_PAD_JTAG and EFUSE_DIS_USB_JTAG are
equal to 0 is enabled or disabled. 1: enabled. 0:
disabled
oth EFUSE_DIS_PAD_JTAG and EFUSE_DIS_USB_JTAG are
equal to 0 is enabled or disabled. 1: enabled. 0:
disabled
SOFT_DIS_JTAG (BLOCK0) Represents whether JTAG is disabled in soft way. O = 0 R/W (0b000)
dd number: disabled. Even number: enabled
dd number: disabled. Even number: enabled
DIS_PAD_JTAG (BLOCK0) Represents whether JTAG is disabled in the hard wa = False R/W (0b0)
y(permanently). 1: disabled. 0: enabled
y(permanently). 1: disabled. 0: enabled
Mac fuses:
MAC (BLOCK1) MAC address
= 00:00:00:00:00:00 (OK) R/W
MAC_EXT (BLOCK1) Stores the extended bits of MAC address = 00:00 (OK) R/W
MAC (BLOCK1) MAC address
= 00:00:00:00:00:00 (OK) R/W
MAC_EXT (BLOCK1) Stores the extended bits of MAC address = 00:00 (OK) R/W
MAC_EUI64 (BLOCK1) calc MAC_EUI64 = MAC[0]:MAC[1]:MAC[2]:MAC_EXT[0]:M
= 00:00:00:00:00:00:00:00 (OK) R/W
AC_EXT[1]:MAC[3]:MAC[4]:MAC[5]
= 00:00:00:00:00:00:00:00 (OK) R/W
AC_EXT[1]:MAC[3]:MAC[4]:MAC[5]
Security fuses:
DIS_FORCE_DOWNLOAD (BLOCK0) Represents whether the function that forces chip i = False R/W (0b0)
nto download mode is disabled or enabled. 1: disab
led. 0: enabled
led. 0: enabled
SPI_DOWNLOAD_MSPI_DIS (BLOCK0) Set this bit to disable accessing MSPI flash/MSPI = False R/W (0b0)
ram by SYS AXI matrix during boot_mode_download
ram by SYS AXI matrix during boot_mode_download
DIS_DOWNLOAD_MANUAL_ENCRYPT (BLOCK0) Represents whether flash encrypt function is disab = False R/W (0b0)
led or enabled(except in SPI boot mode). 1: disabl
ed. 0: enabled
ed. 0: enabled
FORCE_USE_KEY_MANAGER_KEY (BLOCK0) Set each bit to control whether corresponding key = 0 R/W (0x0)
must come from key manager.. 1 is true; 0 is false
. Bit0: ecdsa. Bit1: xts. Bit2: hmac. Bit3: ds
. Bit0: ecdsa. Bit1: xts. Bit2: hmac. Bit3: ds
FORCE_DISABLE_SW_INIT_KEY (BLOCK0) Set this bit to disable software written init key; = False R/W (0b0)
and force use efuse_init_key
and force use efuse_init_key
XTS_KEY_LENGTH_256 (BLOCK0) Set this bit to configure flash encryption use xts = False R/W (0b0)
-128 key; else use xts-256 key
-128 key; else use xts-256 key
SPI_BOOT_CRYPT_CNT (BLOCK0) Enables flash encryption when 1 or 3 bits are set = Disable R/W (0b000)
and disables otherwise
and disables otherwise
SECURE_BOOT_KEY_REVOKE0 (BLOCK0) Revoke 1st secure boot key = False R/W (0b0)
SECURE_BOOT_KEY_REVOKE1 (BLOCK0) Revoke 2nd secure boot key = False R/W (0b0)
SECURE_BOOT_KEY_REVOKE2 (BLOCK0) Revoke 3rd secure boot key = False R/W (0b0)
@ -110,69 +110,69 @@
KEY_PURPOSE_4 (BLOCK0) Represents the purpose of Key4 = USER R/W (0x0)
KEY_PURPOSE_5 (BLOCK0) Represents the purpose of Key5 = USER R/W (0x0)
SEC_DPA_LEVEL (BLOCK0) Represents the spa secure level by configuring the = 0 R/W (0b00)
clock random divide mode
clock random divide mode
ECDSA_ENABLE_SOFT_K (BLOCK0) Represents whether hardware random number k is for = False R/W (0b0)
ced used in ESDCA. 1: force used. 0: not force use
d
d
CRYPT_DPA_ENABLE (BLOCK0) Represents whether anti-dpa attack is enabled. 1:e = False R/W (0b0)
nabled. 0: disabled
nabled. 0: disabled
SECURE_BOOT_EN (BLOCK0) Represents whether secure boot is enabled or disab = False R/W (0b0)
led. 1: enabled. 0: disabled
led. 1: enabled. 0: disabled
SECURE_BOOT_AGGRESSIVE_REVOKE (BLOCK0) Represents whether revoking aggressive secure boot = False R/W (0b0)
is enabled or disabled. 1: enabled. 0: disabled
is enabled or disabled. 1: enabled. 0: disabled
DIS_DOWNLOAD_MODE (BLOCK0) Represents whether Download mode is disabled or en = False R/W (0b0)
abled. 1: disabled. 0: enabled
abled. 1: disabled. 0: enabled
LOCK_KM_KEY (BLOCK0) TBD = False R/W (0b0)
ENABLE_SECURITY_DOWNLOAD (BLOCK0) Represents whether security download is enabled or = False R/W (0b0)
disabled. 1: enabled. 0: disabled
disabled. 1: enabled. 0: disabled
SECURE_VERSION (BLOCK0) Represents the version used by ESP-IDF anti-rollba = 0 R/W (0x0000)
ck feature
ck feature
SECURE_BOOT_DISABLE_FAST_WAKE (BLOCK0) Represents whether FAST VERIFY ON WAKE is disabled = False R/W (0b0)
or enabled when Secure Boot is enabled. 1: disabl
ed. 0: enabled
ed. 0: enabled
BLOCK_KEY0 (BLOCK4)
Purpose: USER
Key0 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
Key0 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLOCK_KEY1 (BLOCK5)
Purpose: USER
Key1 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
Key1 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLOCK_KEY2 (BLOCK6)
Purpose: USER
Key2 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
Key2 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLOCK_KEY3 (BLOCK7)
Purpose: USER
Key3 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
Key3 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLOCK_KEY4 (BLOCK8)
Purpose: USER
Key4 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
Key4 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLOCK_KEY5 (BLOCK9)
Purpose: USER
Key5 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
Key5 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
Usb fuses:
USB_DEVICE_EXCHG_PINS (BLOCK0) Enable usb device exchange pins of D+ and D- = False R/W (0b0)
USB_OTG11_EXCHG_PINS (BLOCK0) Enable usb otg11 exchange pins of D+ and D- = False R/W (0b0)
DIS_USB_JTAG (BLOCK0) Represents whether the function of usb switch to j = False R/W (0b0)
tag is disabled or enabled. 1: disabled. 0: enable
d
d
USB_PHY_SEL (BLOCK0) TBD = False R/W (0b0)
DIS_USB_OTG_DOWNLOAD_MODE (BLOCK0) Set this bit to disable download via USB-OTG = False R/W (0b0)
DIS_USB_SERIAL_JTAG_ROM_PRINT (BLOCK0) Represents whether print from USB-Serial-JTAG is d = False R/W (0b0)
isabled or enabled. 1: disabled. 0: enabled
isabled or enabled. 1: disabled. 0: enabled
DIS_USB_SERIAL_JTAG_DOWNLOAD_MODE (BLOCK0) Represents whether the USB-Serial-JTAG download fu = False R/W (0b0)
nction is disabled or enabled. 1: disabled. 0: ena
bled
bled
Wdt fuses:
WDT_DELAY_SEL (BLOCK0) Represents whether RTC watchdog timeout threshold = 0 R/W (0b00)
is selected at startup. 1: selected. 0: not select
ed
ed
DIS_WDT (BLOCK0) Set this bit to disable watch dog = False R/W (0b0)

View File

@ -6,7 +6,7 @@
Connecting....
Detecting chip type... Unsupported detection protocol, switching and trying again...
Detecting chip type... ESP32-S2
=== Run "summary" command ===
EFUSE_NAME (Block) Description = [Meaningful Value] [Readable/Writeable] (Hex Value)
----------------------------------------------------------------------------------------
@ -16,29 +16,29 @@
DIS_ICACHE (BLOCK0) Set this bit to disable Icache = False R/W (0b0)
DIS_DCACHE (BLOCK0) Set this bit to disable Dcache = False R/W (0b0)
DIS_TWAI (BLOCK0) Set this bit to disable the TWAI Controller functi = False R/W (0b0)
on
on
DIS_BOOT_REMAP (BLOCK0) Disables capability to Remap RAM to ROM address sp = False R/W (0b0)
ace
ace
DIS_LEGACY_SPI_BOOT (BLOCK0) Set this bit to disable Legacy SPI boot mode = False R/W (0b0)
UART_PRINT_CHANNEL (BLOCK0) Selects the default UART for printing boot message = UART0 R/W (0b0)
s
s
UART_PRINT_CONTROL (BLOCK0) Set the default UART boot message output mode = Enable R/W (0b00)
PIN_POWER_SELECTION (BLOCK0) Set default power supply for GPIO33-GPIO37; set wh = VDD3P3_CPU R/W (0b0)
en SPI flash is initialized
BLOCK_USR_DATA (BLOCK3) User data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLOCK_SYS_DATA2 (BLOCK10) System data part 2 (reserved)
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
en SPI flash is initialized
BLOCK_USR_DATA (BLOCK3) User data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLOCK_SYS_DATA2 (BLOCK10) System data part 2 (reserved)
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
Flash fuses:
FLASH_TPUW (BLOCK0) Configures flash startup delay after SoC power-up; = 0 R/W (0x0)
in unit of (ms/2). When the value is 15; delay is
7.5 ms
7.5 ms
FLASH_TYPE (BLOCK0) SPI flash type = 4 data lines R/W (0b0)
FORCE_SEND_RESUME (BLOCK0) If set; forces ROM code to send an SPI flash resum = False R/W (0b0)
e command during SPI boot
e command during SPI boot
FLASH_VERSION (BLOCK1) Flash version = 2 R/W (0x2)
Identity fuses:
BLOCK0_VERSION (BLOCK0) BLOCK0 efuse version = 0 R/W (0b00)
DISABLE_WAFER_VERSION_MAJOR (BLOCK0) Disables check of wafer version major = False R/W (0b0)
@ -49,32 +49,32 @@
PSRAM_VERSION (BLOCK1) PSRAM version = 1 R/W (0x1)
PKG_VERSION (BLOCK1) Package version = 0 R/W (0x0)
WAFER_VERSION_MINOR_LO (BLOCK1) WAFER_VERSION_MINOR least significant bits = 0 R/W (0b000)
OPTIONAL_UNIQUE_ID (BLOCK2) Optional unique 128-bit ID
= ea 0e c6 f1 01 f2 38 82 e9 98 5b 59 81 fe 00 02 R/W
OPTIONAL_UNIQUE_ID (BLOCK2) Optional unique 128-bit ID
= ea 0e c6 f1 01 f2 38 82 e9 98 5b 59 81 fe 00 02 R/W
BLK_VERSION_MINOR (BLOCK2) BLK_VERSION_MINOR of BLOCK2 = ADC calib V2 R/W (0b010)
WAFER_VERSION_MINOR (BLOCK0) calc WAFER VERSION MINOR = WAFER_VERSION_MINOR_HI = 0 R/W (0x0)
<< 3 + WAFER_VERSION_MINOR_LO (read only)
<< 3 + WAFER_VERSION_MINOR_LO (read only)
Jtag fuses:
SOFT_DIS_JTAG (BLOCK0) Software disables JTAG. When software disabled; JT = False R/W (0b0)
AG can be activated temporarily by HMAC peripheral
HARD_DIS_JTAG (BLOCK0) Hardware disables JTAG permanently = False R/W (0b0)
Mac fuses:
MAC (BLOCK1) MAC address
= 58:cf:79:b3:b9:54 (OK) R/W
CUSTOM_MAC (BLOCK3) Custom MAC
= 00:00:00:00:00:00 (OK) R/W
MAC (BLOCK1) MAC address
= 58:cf:79:b3:b9:54 (OK) R/W
CUSTOM_MAC (BLOCK3) Custom MAC
= 00:00:00:00:00:00 (OK) R/W
Security fuses:
DIS_DOWNLOAD_ICACHE (BLOCK0) Disables Icache when SoC is in Download mode = False R/W (0b0)
DIS_DOWNLOAD_DCACHE (BLOCK0) Disables Dcache when SoC is in Download mode = False R/W (0b0)
DIS_FORCE_DOWNLOAD (BLOCK0) Set this bit to disable the function that forces c = False R/W (0b0)
hip into download mode
hip into download mode
DIS_DOWNLOAD_MANUAL_ENCRYPT (BLOCK0) Disables flash encryption when in download boot mo = False R/W (0b0)
des
des
SPI_BOOT_CRYPT_CNT (BLOCK0) Enables flash encryption when 1 or 3 bits are set = Disable R/W (0b000)
and disabled otherwise
and disabled otherwise
SECURE_BOOT_KEY_REVOKE0 (BLOCK0) Revoke 1st secure boot key = False R/W (0b0)
SECURE_BOOT_KEY_REVOKE1 (BLOCK0) Revoke 2nd secure boot key = False R/W (0b0)
SECURE_BOOT_KEY_REVOKE2 (BLOCK0) Revoke 3rd secure boot key = False R/W (0b0)
@ -86,37 +86,37 @@
KEY_PURPOSE_5 (BLOCK0) Purpose of KEY5 = USER R/W (0x0)
SECURE_BOOT_EN (BLOCK0) Set this bit to enable secure boot = False R/W (0b0)
SECURE_BOOT_AGGRESSIVE_REVOKE (BLOCK0) Set this bit to enable aggressive secure boot key = False R/W (0b0)
revocation mode
revocation mode
DIS_DOWNLOAD_MODE (BLOCK0) Set this bit to disable all download boot modes = False R/W (0b0)
ENABLE_SECURITY_DOWNLOAD (BLOCK0) Set this bit to enable secure UART download mode ( = False R/W (0b0)
read/write flash only)
read/write flash only)
SECURE_VERSION (BLOCK0) Secure version (used by ESP-IDF anti-rollback feat = 0 R/W (0x0000)
ure)
ure)
BLOCK_KEY0 (BLOCK4)
Purpose: USER
Key0 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
Key0 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLOCK_KEY1 (BLOCK5)
Purpose: USER
Key1 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
Key1 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLOCK_KEY2 (BLOCK6)
Purpose: USER
Key2 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
Key2 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLOCK_KEY3 (BLOCK7)
Purpose: USER
Key3 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
Key3 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLOCK_KEY4 (BLOCK8)
Purpose: USER
Key4 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
Key4 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLOCK_KEY5 (BLOCK9)
Purpose: USER
Key5 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
Key5 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
Spi Pad fuses:
SPI_PAD_CONFIG_CLK (BLOCK1) SPI_PAD_configure CLK = 0 R/W (0b000000)
SPI_PAD_CONFIG_Q (BLOCK1) SPI_PAD_configure Q(D1) = 0 R/W (0b000000)
@ -129,27 +129,27 @@
SPI_PAD_CONFIG_D5 (BLOCK1) SPI_PAD_configure D5 = 0 R/W (0b000000)
SPI_PAD_CONFIG_D6 (BLOCK1) SPI_PAD_configure D6 = 0 R/W (0b000000)
SPI_PAD_CONFIG_D7 (BLOCK1) SPI_PAD_configure D7 = 0 R/W (0b000000)
Usb fuses:
DIS_USB (BLOCK0) Set this bit to disable USB OTG function = False R/W (0b0)
USB_EXCHG_PINS (BLOCK0) Set this bit to exchange USB D+ and D- pins = False R/W (0b0)
USB_EXT_PHY_ENABLE (BLOCK0) Set this bit to enable external USB PHY = False R/W (0b0)
USB_FORCE_NOPERSIST (BLOCK0) If set; forces USB BVALID to 1 = False R/W (0b0)
DIS_USB_DOWNLOAD_MODE (BLOCK0) Set this bit to disable use of USB OTG in UART dow = False R/W (0b0)
nload boot mode
nload boot mode
Vdd fuses:
VDD_SPI_XPD (BLOCK0) If VDD_SPI_FORCE is 1; this value determines if th = False R/W (0b0)
e VDD_SPI regulator is powered on
VDD_SPI_TIEH (BLOCK0) If VDD_SPI_FORCE is 1; determines VDD_SPI voltage
e VDD_SPI regulator is powered on
VDD_SPI_TIEH (BLOCK0) If VDD_SPI_FORCE is 1; determines VDD_SPI voltage
= VDD_SPI connects to 1.8 V LDO R/W (0b0)
VDD_SPI_FORCE (BLOCK0) Set this bit to use XPD_VDD_PSI_REG and VDD_SPI_TI = False R/W (0b0)
EH to configure VDD_SPI LDO
EH to configure VDD_SPI LDO
Wdt fuses:
WDT_DELAY_SEL (BLOCK0) RTC watchdog timeout threshold; in unit of slow cl = 40000 R/W (0b00)
ock cycle
ock cycle
Flash voltage (VDD_SPI) determined by GPIO45 on reset (GPIO45=High: VDD_SPI pin is powered from internal 1.8V LDO
GPIO45=Low or NC: VDD_SPI pin is powered directly from VDD3P3_RTC_IO via resistor Rspi. Typically this voltage is 3.3 V).

View File

@ -5,7 +5,7 @@
espefuse.py v4.6-dev
Connecting....
Detecting chip type... ESP32-S3
=== Run "summary" command ===
EFUSE_NAME (Block) Description = [Meaningful Value] [Readable/Writeable] (Hex Value)
----------------------------------------------------------------------------------------
@ -33,7 +33,7 @@
ADC2_CAL_VOL_ATTEN0 (BLOCK2) ADC2 calibration voltage at atten0 = -116 R/W (0x9d)
ADC2_CAL_VOL_ATTEN1 (BLOCK2) ADC2 calibration voltage at atten1 = -72 R/W (0b1010010)
ADC2_CAL_VOL_ATTEN2 (BLOCK2) ADC2 calibration voltage at atten2 = -64 R/W (0b1010000)
Config fuses:
WR_DIS (BLOCK0) Disable programming of individual eFuses = 0 R/W (0x00000000)
RD_DIS (BLOCK0) Disable reading from BlOCK4-10 = 0 R/W (0b0000000)
@ -44,24 +44,24 @@
DIS_DIRECT_BOOT (BLOCK0) Disable direct boot mode = False R/W (0b0)
UART_PRINT_CONTROL (BLOCK0) Set the default UART boot message output mode = Enable R/W (0b00)
PIN_POWER_SELECTION (BLOCK0) Set default power supply for GPIO33-GPIO37; set wh = VDD3P3_CPU R/W (0b0)
en SPI flash is initialized
BLOCK_USR_DATA (BLOCK3) User data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLOCK_SYS_DATA2 (BLOCK10) System data part 2 (reserved)
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
en SPI flash is initialized
BLOCK_USR_DATA (BLOCK3) User data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLOCK_SYS_DATA2 (BLOCK10) System data part 2 (reserved)
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
Flash fuses:
FLASH_TPUW (BLOCK0) Configures flash waiting time after power-up; in u = 0 R/W (0x0)
nit of ms. If the value is less than 15; the waiti
ng time is the configurable value. Otherwise; the
waiting time is twice the configurable value
waiting time is twice the configurable value
FLASH_ECC_MODE (BLOCK0) Flash ECC mode in ROM = 16to18 byte R/W (0b0)
FLASH_TYPE (BLOCK0) SPI flash type = 4 data lines R/W (0b0)
FLASH_PAGE_SIZE (BLOCK0) Set Flash page size = 0 R/W (0b00)
FLASH_ECC_EN (BLOCK0) Set 1 to enable ECC for flash boot = False R/W (0b0)
FORCE_SEND_RESUME (BLOCK0) Set this bit to force ROM code to send a resume co = False R/W (0b0)
mmand during SPI boot
mmand during SPI boot
Identity fuses:
DISABLE_WAFER_VERSION_MAJOR (BLOCK0) Disables check of wafer version major = False R/W (0b0)
DISABLE_BLK_VERSION_MAJOR (BLOCK0) Disables check of blk version major = False R/W (0b0)
@ -70,40 +70,40 @@
BLK_VERSION_MINOR (BLOCK1) BLK_VERSION_MINOR = 3 R/W (0b011)
WAFER_VERSION_MINOR_HI (BLOCK1) WAFER_VERSION_MINOR most significant bit = False R/W (0b0)
WAFER_VERSION_MAJOR (BLOCK1) WAFER_VERSION_MAJOR = 0 R/W (0b00)
OPTIONAL_UNIQUE_ID (BLOCK2) Optional unique 128-bit ID
= cb 3a c9 b8 88 2b c3 bc 5e f4 00 60 ac 25 be 4b R/W
OPTIONAL_UNIQUE_ID (BLOCK2) Optional unique 128-bit ID
= cb 3a c9 b8 88 2b c3 bc 5e f4 00 60 ac 25 be 4b R/W
BLK_VERSION_MAJOR (BLOCK2) BLK_VERSION_MAJOR of BLOCK2 = ADC calib V1 R/W (0b01)
WAFER_VERSION_MINOR (BLOCK0) calc WAFER VERSION MINOR = WAFER_VERSION_MINOR_HI = 3 R/W (0x3)
<< 3 + WAFER_VERSION_MINOR_LO (read only)
<< 3 + WAFER_VERSION_MINOR_LO (read only)
Jtag fuses:
SOFT_DIS_JTAG (BLOCK0) Set these bits to disable JTAG in the soft way (od = 0 R/W (0b000)
d number 1 means disable ). JTAG can be enabled in
HMAC module
HMAC module
DIS_PAD_JTAG (BLOCK0) Set this bit to disable JTAG in the hard way. JTAG = False R/W (0b0)
is disabled permanently
is disabled permanently
STRAP_JTAG_SEL (BLOCK0) Set this bit to enable selection between usb_to_jt = False R/W (0b0)
ag and pad_to_jtag through strapping gpio10 when b
oth reg_dis_usb_jtag and reg_dis_pad_jtag are equa
l to 0
l to 0
Mac fuses:
MAC (BLOCK1) MAC address
= ec:da:3b:41:f2:70 (OK) R/W
CUSTOM_MAC (BLOCK3) Custom MAC
= 00:00:00:00:00:00 (OK) R/W
MAC (BLOCK1) MAC address
= ec:da:3b:41:f2:70 (OK) R/W
CUSTOM_MAC (BLOCK3) Custom MAC
= 00:00:00:00:00:00 (OK) R/W
Security fuses:
DIS_DOWNLOAD_ICACHE (BLOCK0) Set this bit to disable Icache in download mode (b = False R/W (0b0)
oot_mode[3:0] is 0; 1; 2; 3; 6; 7)
oot_mode[3:0] is 0; 1; 2; 3; 6; 7)
DIS_DOWNLOAD_DCACHE (BLOCK0) Set this bit to disable Dcache in download mode ( = False R/W (0b0)
boot_mode[3:0] is 0; 1; 2; 3; 6; 7)
boot_mode[3:0] is 0; 1; 2; 3; 6; 7)
DIS_FORCE_DOWNLOAD (BLOCK0) Set this bit to disable the function that forces c = False R/W (0b0)
hip into download mode
hip into download mode
DIS_DOWNLOAD_MANUAL_ENCRYPT (BLOCK0) Set this bit to disable flash encryption when in d = False R/W (0b0)
ownload boot modes
ownload boot modes
SPI_BOOT_CRYPT_CNT (BLOCK0) Enables flash encryption when 1 or 3 bits are set = Disable R/W (0b000)
and disabled otherwise
and disabled otherwise
SECURE_BOOT_KEY_REVOKE0 (BLOCK0) Revoke 1st secure boot key = False R/W (0b0)
SECURE_BOOT_KEY_REVOKE1 (BLOCK0) Revoke 2nd secure boot key = False R/W (0b0)
SECURE_BOOT_KEY_REVOKE2 (BLOCK0) Revoke 3rd secure boot key = False R/W (0b0)
@ -115,37 +115,37 @@
KEY_PURPOSE_5 (BLOCK0) Purpose of Key5 = USER R/W (0x0)
SECURE_BOOT_EN (BLOCK0) Set this bit to enable secure boot = False R/W (0b0)
SECURE_BOOT_AGGRESSIVE_REVOKE (BLOCK0) Set this bit to enable revoking aggressive secure = False R/W (0b0)
boot
boot
DIS_DOWNLOAD_MODE (BLOCK0) Set this bit to disable download mode (boot_mode[3 = False R/W (0b0)
:0] = 0; 1; 2; 3; 6; 7)
:0] = 0; 1; 2; 3; 6; 7)
ENABLE_SECURITY_DOWNLOAD (BLOCK0) Set this bit to enable secure UART download mode = False R/W (0b0)
SECURE_VERSION (BLOCK0) Secure version (used by ESP-IDF anti-rollback feat = 0 R/W (0x0000)
ure)
ure)
BLOCK_KEY0 (BLOCK4)
Purpose: USER
Key0 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
Key0 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLOCK_KEY1 (BLOCK5)
Purpose: USER
Key1 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
Key1 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLOCK_KEY2 (BLOCK6)
Purpose: USER
Key2 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
Key2 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLOCK_KEY3 (BLOCK7)
Purpose: USER
Key3 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
Key3 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLOCK_KEY4 (BLOCK8)
Purpose: USER
Key4 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
Key4 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLOCK_KEY5 (BLOCK9)
Purpose: USER
Key5 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
Key5 or user data
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
Spi Pad fuses:
SPI_PAD_CONFIG_CLK (BLOCK1) SPI_PAD_configure CLK = 0 R/W (0b000000)
SPI_PAD_CONFIG_Q (BLOCK1) SPI_PAD_configure Q(D1) = 0 R/W (0b000000)
@ -158,33 +158,33 @@
SPI_PAD_CONFIG_D5 (BLOCK1) SPI_PAD_configure D5 = 0 R/W (0b000000)
SPI_PAD_CONFIG_D6 (BLOCK1) SPI_PAD_configure D6 = 0 R/W (0b000000)
SPI_PAD_CONFIG_D7 (BLOCK1) SPI_PAD_configure D7 = 0 R/W (0b000000)
Usb fuses:
DIS_USB_OTG (BLOCK0) Set this bit to disable USB function = False R/W (0b0)
USB_EXCHG_PINS (BLOCK0) Set this bit to exchange USB D+ and D- pins = False R/W (0b0)
USB_EXT_PHY_ENABLE (BLOCK0) Set this bit to enable external PHY = False R/W (0b0)
DIS_USB_JTAG (BLOCK0) Set this bit to disable function of usb switch to = False R/W (0b0)
jtag in module of usb device
jtag in module of usb device
DIS_USB_SERIAL_JTAG (BLOCK0) Set this bit to disable usb device = False R/W (0b0)
USB_PHY_SEL (BLOCK0) This bit is used to switch internal PHY and extern
= internal PHY is assigned to USB Device while external PHY is assigned to USB OTG R/W (0b0)
al PHY for USB OTG and USB Device
al PHY for USB OTG and USB Device
DIS_USB_SERIAL_JTAG_ROM_PRINT (BLOCK0) USB printing = Enable R/W (0b0)
DIS_USB_SERIAL_JTAG_DOWNLOAD_MODE (BLOCK0) Set this bit to disable UART download mode through = False R/W (0b0)
USB
USB
DIS_USB_OTG_DOWNLOAD_MODE (BLOCK0) Set this bit to disable download through USB-OTG = False R/W (0b0)
Vdd fuses:
VDD_SPI_XPD (BLOCK0) SPI regulator power up signal = False R/W (0b0)
VDD_SPI_TIEH (BLOCK0) If VDD_SPI_FORCE is 1; determines VDD_SPI voltage
VDD_SPI_TIEH (BLOCK0) If VDD_SPI_FORCE is 1; determines VDD_SPI voltage
= VDD_SPI connects to 1.8 V LDO R/W (0b0)
VDD_SPI_FORCE (BLOCK0) Set this bit and force to use the configuration of = False R/W (0b0)
eFuse to configure VDD_SPI
eFuse to configure VDD_SPI
Wdt fuses:
WDT_DELAY_SEL (BLOCK0) RTC watchdog timeout threshold; in unit of slow cl = 40000 R/W (0b00)
ock cycle
ock cycle
Flash voltage (VDD_SPI) determined by GPIO45 on reset (GPIO45=High: VDD_SPI pin is powered from internal 1.8V LDO
GPIO45=Low or NC: VDD_SPI pin is powered directly from VDD3P3_RTC_IO via resistor Rspi. Typically this voltage is 3.3 V).

View File

@ -7,13 +7,13 @@
Detecting chip type... Unsupported detection protocol, switching and trying again...
Connecting.....
Detecting chip type... ESP32
=== Run "summary" command ===
EFUSE_NAME (Block) Description = [Meaningful Value] [Readable/Writeable] (Hex Value)
----------------------------------------------------------------------------------------
Calibration fuses:
ADC_VREF (BLOCK0) True ADC reference voltage = 1121 R/W (0b00011)
Config fuses:
WR_DIS (BLOCK0) Efuse write disable mask = 0 R/W (0x0000)
RD_DIS (BLOCK0) Disable reading from BlOCK1-3 = 0 R/W (0x0)
@ -22,26 +22,26 @@
DIS_CACHE (BLOCK0) Disables cache = False R/W (0b0)
CHIP_CPU_FREQ_LOW (BLOCK0) If set alongside EFUSE_RD_CHIP_CPU_FREQ_RATED; the = False R/W (0b0)
ESP32's max CPU frequency is rated for 160MHz. 24
0MHz otherwise
0MHz otherwise
CHIP_CPU_FREQ_RATED (BLOCK0) If set; the ESP32's maximum CPU frequency has been = True R/W (0b1)
rated
rated
BLK3_PART_RESERVE (BLOCK0) BLOCK3 partially served for ADC calibration data = False R/W (0b0)
CLK8M_FREQ (BLOCK0) 8MHz clock freq override = 51 R/W (0x33)
VOL_LEVEL_HP_INV (BLOCK0) This field stores the voltage level for CPU to run = 0 R/W (0b00)
at 240 MHz; or for flash/PSRAM to run at 80 MHz.0
x0: level 7; 0x1: level 6; 0x2: level 5; 0x3: leve
l 4. (RO)
CODING_SCHEME (BLOCK0) Efuse variable block length scheme
l 4. (RO)
CODING_SCHEME (BLOCK0) Efuse variable block length scheme
= NONE (BLK1-3 len=256 bits) R/W (0b00)
CONSOLE_DEBUG_DISABLE (BLOCK0) Disable ROM BASIC interpreter fallback = True R/W (0b1)
DISABLE_SDIO_HOST (BLOCK0) = False R/W (0b0)
DISABLE_DL_CACHE (BLOCK0) Disable flash cache in UART bootloader = False R/W (0b0)
Flash fuses:
FLASH_CRYPT_CNT (BLOCK0) Flash encryption is enabled if this field has an o = 0 R/W (0b0000000)
dd number of bits set
dd number of bits set
FLASH_CRYPT_CONFIG (BLOCK0) Flash encryption config (key tweak bits) = 0 R/W (0x0)
Identity fuses:
CHIP_PACKAGE_4BIT (BLOCK0) Chip package identifier #4bit = False R/W (0b0)
CHIP_PACKAGE (BLOCK0) Chip package identifier = 1 R/W (0b001)
@ -49,34 +49,34 @@
CHIP_VER_REV2 (BLOCK0) = True R/W (0b1)
WAFER_VERSION_MINOR (BLOCK0) = 0 R/W (0b00)
WAFER_VERSION_MAJOR (BLOCK0) calc WAFER VERSION MAJOR from CHIP_VER_REV1 and CH = 3 R/W (0b011)
IP_VER_REV2 and apb_ctl_date (read only)
IP_VER_REV2 and apb_ctl_date (read only)
PKG_VERSION (BLOCK0) calc Chip package = CHIP_PACKAGE_4BIT << 3 + CHIP_ = 1 R/W (0x1)
PACKAGE (read only)
PACKAGE (read only)
Jtag fuses:
JTAG_DISABLE (BLOCK0) Disable JTAG = False R/W (0b0)
Mac fuses:
MAC (BLOCK0) MAC address
= 94:b9:7e:5a:6e:58 (CRC 0xe2 OK) R/W
MAC (BLOCK0) MAC address
= 94:b9:7e:5a:6e:58 (CRC 0xe2 OK) R/W
MAC_CRC (BLOCK0) CRC8 for MAC address = 226 R/W (0xe2)
MAC_VERSION (BLOCK3) Version of the MAC field = 0 R/W (0x00)
Security fuses:
UART_DOWNLOAD_DIS (BLOCK0) Disable UART download mode. Valid for ESP32 V3 and = False R/W (0b0)
newer; only
newer; only
ABS_DONE_0 (BLOCK0) Secure boot V1 is enabled for bootloader image = False R/W (0b0)
ABS_DONE_1 (BLOCK0) Secure boot V2 is enabled for bootloader image = False R/W (0b0)
DISABLE_DL_ENCRYPT (BLOCK0) Disable flash encryption in UART bootloader = False R/W (0b0)
DISABLE_DL_DECRYPT (BLOCK0) Disable flash decryption in UART bootloader = False R/W (0b0)
KEY_STATUS (BLOCK0) Usage of efuse block 3 (reserved) = False R/W (0b0)
SECURE_VERSION (BLOCK3) Secure version for anti-rollback = 0 R/W (0x00000000)
BLOCK1 (BLOCK1) Flash encryption key
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLOCK2 (BLOCK2) Security boot key
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLOCK3 (BLOCK3) Variable Block 3
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLOCK1 (BLOCK1) Flash encryption key
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLOCK2 (BLOCK2) Security boot key
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
BLOCK3 (BLOCK3) Variable Block 3
= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W
Spi Pad fuses:
SPI_PAD_CONFIG_HD (BLOCK0) read for SPI_pad_config_hd = 0 R/W (0b00000)

View File

@ -28,4 +28,4 @@
+ +---------------------------------------+-------------------------------------+
| | None | Min values for both frequencies set |
| | | with :cpp:func:`esp_pm_configure` |
+---------------+---------------------------------------+-------------------------------------+
+---------------+---------------------------------------+-------------------------------------+

View File

@ -1 +1 @@
TO BE UPDATED IDF-7672
TO BE UPDATED IDF-7672

View File

@ -8,113 +8,113 @@
Max number of bits in BLK 256
Sorted efuse table:
# field_name efuse_block bit_start bit_count
1 WR_DIS EFUSE_BLK0 0 8
2 WR_DIS.RD_DIS EFUSE_BLK0 0 1
3 WR_DIS.WDT_DELAY_SEL EFUSE_BLK0 1 1
4 WR_DIS.DIS_PAD_JTAG EFUSE_BLK0 1 1
5 WR_DIS.DIS_DOWNLOAD_ICACHE EFUSE_BLK0 1 1
6 WR_DIS.DIS_DOWNLOAD_MANUAL_ENCRYPT EFUSE_BLK0 2 1
7 WR_DIS.SPI_BOOT_CRYPT_CNT EFUSE_BLK0 2 1
8 WR_DIS.XTS_KEY_LENGTH_256 EFUSE_BLK0 2 1
9 WR_DIS.SECURE_BOOT_EN EFUSE_BLK0 2 1
10 WR_DIS.UART_PRINT_CONTROL EFUSE_BLK0 3 1
11 WR_DIS.FORCE_SEND_RESUME EFUSE_BLK0 3 1
12 WR_DIS.DIS_DOWNLOAD_MODE EFUSE_BLK0 3 1
13 WR_DIS.DIS_DIRECT_BOOT EFUSE_BLK0 3 1
14 WR_DIS.ENABLE_SECURITY_DOWNLOAD EFUSE_BLK0 3 1
15 WR_DIS.FLASH_TPUW EFUSE_BLK0 3 1
16 WR_DIS.SECURE_VERSION EFUSE_BLK0 4 1
17 WR_DIS.CUSTOM_MAC_USED EFUSE_BLK0 4 1
18 WR_DIS.DISABLE_WAFER_VERSION_MAJOR EFUSE_BLK0 4 1
19 WR_DIS.DISABLE_BLK_VERSION_MAJOR EFUSE_BLK0 4 1
20 WR_DIS.CUSTOM_MAC EFUSE_BLK0 5 1
21 WR_DIS.MAC EFUSE_BLK0 6 1
22 WR_DIS.WAFER_VERSION_MINOR EFUSE_BLK0 6 1
23 WR_DIS.WAFER_VERSION_MAJOR EFUSE_BLK0 6 1
24 WR_DIS.PKG_VERSION EFUSE_BLK0 6 1
25 WR_DIS.BLK_VERSION_MINOR EFUSE_BLK0 6 1
26 WR_DIS.BLK_VERSION_MAJOR EFUSE_BLK0 6 1
27 WR_DIS.OCODE EFUSE_BLK0 6 1
28 WR_DIS.TEMP_CALIB EFUSE_BLK0 6 1
29 WR_DIS.ADC1_INIT_CODE_ATTEN0 EFUSE_BLK0 6 1
30 WR_DIS.ADC1_INIT_CODE_ATTEN3 EFUSE_BLK0 6 1
31 WR_DIS.ADC1_CAL_VOL_ATTEN0 EFUSE_BLK0 6 1
32 WR_DIS.ADC1_CAL_VOL_ATTEN3 EFUSE_BLK0 6 1
33 WR_DIS.DIG_DBIAS_HVT EFUSE_BLK0 6 1
34 WR_DIS.DIG_LDO_SLP_DBIAS2 EFUSE_BLK0 6 1
35 WR_DIS.DIG_LDO_SLP_DBIAS26 EFUSE_BLK0 6 1
36 WR_DIS.DIG_LDO_ACT_DBIAS26 EFUSE_BLK0 6 1
37 WR_DIS.DIG_LDO_ACT_STEPD10 EFUSE_BLK0 6 1
38 WR_DIS.RTC_LDO_SLP_DBIAS13 EFUSE_BLK0 6 1
39 WR_DIS.RTC_LDO_SLP_DBIAS29 EFUSE_BLK0 6 1
40 WR_DIS.RTC_LDO_SLP_DBIAS31 EFUSE_BLK0 6 1
41 WR_DIS.RTC_LDO_ACT_DBIAS31 EFUSE_BLK0 6 1
42 WR_DIS.RTC_LDO_ACT_DBIAS13 EFUSE_BLK0 6 1
43 WR_DIS.ADC_CALIBRATION_3 EFUSE_BLK0 6 1
44 WR_DIS.BLOCK_KEY0 EFUSE_BLK0 7 1
45 RD_DIS EFUSE_BLK0 32 2
46 RD_DIS.KEY0 EFUSE_BLK0 32 2
47 RD_DIS.KEY0.LOW EFUSE_BLK0 32 1
48 RD_DIS.KEY0.HI EFUSE_BLK0 33 1
49 WDT_DELAY_SEL EFUSE_BLK0 34 2
50 DIS_PAD_JTAG EFUSE_BLK0 36 1
51 DIS_DOWNLOAD_ICACHE EFUSE_BLK0 37 1
52 DIS_DOWNLOAD_MANUAL_ENCRYPT EFUSE_BLK0 38 1
53 SPI_BOOT_CRYPT_CNT EFUSE_BLK0 39 3
54 XTS_KEY_LENGTH_256 EFUSE_BLK0 42 1
55 UART_PRINT_CONTROL EFUSE_BLK0 43 2
56 FORCE_SEND_RESUME EFUSE_BLK0 45 1
57 DIS_DOWNLOAD_MODE EFUSE_BLK0 46 1
58 DIS_DIRECT_BOOT EFUSE_BLK0 47 1
59 ENABLE_SECURITY_DOWNLOAD EFUSE_BLK0 48 1
60 FLASH_TPUW EFUSE_BLK0 49 4
61 SECURE_BOOT_EN EFUSE_BLK0 53 1
62 SECURE_VERSION EFUSE_BLK0 54 4
63 CUSTOM_MAC_USED EFUSE_BLK0 58 1
64 DISABLE_WAFER_VERSION_MAJOR EFUSE_BLK0 59 1
65 DISABLE_BLK_VERSION_MAJOR EFUSE_BLK0 60 1
66 USER_DATA EFUSE_BLK1 0 88
67 USER_DATA.MAC_CUSTOM EFUSE_BLK1 0 48
68 MAC EFUSE_BLK2 0 8
69 MAC EFUSE_BLK2 8 8
70 MAC EFUSE_BLK2 16 8
71 MAC EFUSE_BLK2 24 8
72 MAC EFUSE_BLK2 32 8
73 MAC EFUSE_BLK2 40 8
74 WAFER_VERSION_MINOR EFUSE_BLK2 48 4
75 WAFER_VERSION_MAJOR EFUSE_BLK2 52 2
76 PKG_VERSION EFUSE_BLK2 54 3
77 BLK_VERSION_MINOR EFUSE_BLK2 57 3
78 BLK_VERSION_MAJOR EFUSE_BLK2 60 2
79 OCODE EFUSE_BLK2 62 7
80 TEMP_CALIB EFUSE_BLK2 69 9
81 ADC1_INIT_CODE_ATTEN0 EFUSE_BLK2 78 8
82 ADC1_INIT_CODE_ATTEN3 EFUSE_BLK2 86 5
83 ADC1_CAL_VOL_ATTEN0 EFUSE_BLK2 91 8
84 ADC1_CAL_VOL_ATTEN3 EFUSE_BLK2 99 6
85 DIG_DBIAS_HVT EFUSE_BLK2 105 5
86 DIG_LDO_SLP_DBIAS2 EFUSE_BLK2 110 7
87 DIG_LDO_SLP_DBIAS26 EFUSE_BLK2 117 8
88 DIG_LDO_ACT_DBIAS26 EFUSE_BLK2 125 6
89 DIG_LDO_ACT_STEPD10 EFUSE_BLK2 131 4
90 RTC_LDO_SLP_DBIAS13 EFUSE_BLK2 135 7
91 RTC_LDO_SLP_DBIAS29 EFUSE_BLK2 142 9
92 RTC_LDO_SLP_DBIAS31 EFUSE_BLK2 151 6
93 RTC_LDO_ACT_DBIAS31 EFUSE_BLK2 157 6
94 RTC_LDO_ACT_DBIAS13 EFUSE_BLK2 163 8
95 ADC_CALIBRATION_3 EFUSE_BLK2 192 11
96 KEY0 EFUSE_BLK3 0 256
97 KEY0.FE_256BIT EFUSE_BLK3 0 256
98 KEY0.FE_128BIT EFUSE_BLK3 0 128
99 KEY0.SB_128BIT EFUSE_BLK3 128 128
1 WR_DIS EFUSE_BLK0 0 8
2 WR_DIS.RD_DIS EFUSE_BLK0 0 1
3 WR_DIS.WDT_DELAY_SEL EFUSE_BLK0 1 1
4 WR_DIS.DIS_PAD_JTAG EFUSE_BLK0 1 1
5 WR_DIS.DIS_DOWNLOAD_ICACHE EFUSE_BLK0 1 1
6 WR_DIS.DIS_DOWNLOAD_MANUAL_ENCRYPT EFUSE_BLK0 2 1
7 WR_DIS.SPI_BOOT_CRYPT_CNT EFUSE_BLK0 2 1
8 WR_DIS.XTS_KEY_LENGTH_256 EFUSE_BLK0 2 1
9 WR_DIS.SECURE_BOOT_EN EFUSE_BLK0 2 1
10 WR_DIS.UART_PRINT_CONTROL EFUSE_BLK0 3 1
11 WR_DIS.FORCE_SEND_RESUME EFUSE_BLK0 3 1
12 WR_DIS.DIS_DOWNLOAD_MODE EFUSE_BLK0 3 1
13 WR_DIS.DIS_DIRECT_BOOT EFUSE_BLK0 3 1
14 WR_DIS.ENABLE_SECURITY_DOWNLOAD EFUSE_BLK0 3 1
15 WR_DIS.FLASH_TPUW EFUSE_BLK0 3 1
16 WR_DIS.SECURE_VERSION EFUSE_BLK0 4 1
17 WR_DIS.CUSTOM_MAC_USED EFUSE_BLK0 4 1
18 WR_DIS.DISABLE_WAFER_VERSION_MAJOR EFUSE_BLK0 4 1
19 WR_DIS.DISABLE_BLK_VERSION_MAJOR EFUSE_BLK0 4 1
20 WR_DIS.CUSTOM_MAC EFUSE_BLK0 5 1
21 WR_DIS.MAC EFUSE_BLK0 6 1
22 WR_DIS.WAFER_VERSION_MINOR EFUSE_BLK0 6 1
23 WR_DIS.WAFER_VERSION_MAJOR EFUSE_BLK0 6 1
24 WR_DIS.PKG_VERSION EFUSE_BLK0 6 1
25 WR_DIS.BLK_VERSION_MINOR EFUSE_BLK0 6 1
26 WR_DIS.BLK_VERSION_MAJOR EFUSE_BLK0 6 1
27 WR_DIS.OCODE EFUSE_BLK0 6 1
28 WR_DIS.TEMP_CALIB EFUSE_BLK0 6 1
29 WR_DIS.ADC1_INIT_CODE_ATTEN0 EFUSE_BLK0 6 1
30 WR_DIS.ADC1_INIT_CODE_ATTEN3 EFUSE_BLK0 6 1
31 WR_DIS.ADC1_CAL_VOL_ATTEN0 EFUSE_BLK0 6 1
32 WR_DIS.ADC1_CAL_VOL_ATTEN3 EFUSE_BLK0 6 1
33 WR_DIS.DIG_DBIAS_HVT EFUSE_BLK0 6 1
34 WR_DIS.DIG_LDO_SLP_DBIAS2 EFUSE_BLK0 6 1
35 WR_DIS.DIG_LDO_SLP_DBIAS26 EFUSE_BLK0 6 1
36 WR_DIS.DIG_LDO_ACT_DBIAS26 EFUSE_BLK0 6 1
37 WR_DIS.DIG_LDO_ACT_STEPD10 EFUSE_BLK0 6 1
38 WR_DIS.RTC_LDO_SLP_DBIAS13 EFUSE_BLK0 6 1
39 WR_DIS.RTC_LDO_SLP_DBIAS29 EFUSE_BLK0 6 1
40 WR_DIS.RTC_LDO_SLP_DBIAS31 EFUSE_BLK0 6 1
41 WR_DIS.RTC_LDO_ACT_DBIAS31 EFUSE_BLK0 6 1
42 WR_DIS.RTC_LDO_ACT_DBIAS13 EFUSE_BLK0 6 1
43 WR_DIS.ADC_CALIBRATION_3 EFUSE_BLK0 6 1
44 WR_DIS.BLOCK_KEY0 EFUSE_BLK0 7 1
45 RD_DIS EFUSE_BLK0 32 2
46 RD_DIS.KEY0 EFUSE_BLK0 32 2
47 RD_DIS.KEY0.LOW EFUSE_BLK0 32 1
48 RD_DIS.KEY0.HI EFUSE_BLK0 33 1
49 WDT_DELAY_SEL EFUSE_BLK0 34 2
50 DIS_PAD_JTAG EFUSE_BLK0 36 1
51 DIS_DOWNLOAD_ICACHE EFUSE_BLK0 37 1
52 DIS_DOWNLOAD_MANUAL_ENCRYPT EFUSE_BLK0 38 1
53 SPI_BOOT_CRYPT_CNT EFUSE_BLK0 39 3
54 XTS_KEY_LENGTH_256 EFUSE_BLK0 42 1
55 UART_PRINT_CONTROL EFUSE_BLK0 43 2
56 FORCE_SEND_RESUME EFUSE_BLK0 45 1
57 DIS_DOWNLOAD_MODE EFUSE_BLK0 46 1
58 DIS_DIRECT_BOOT EFUSE_BLK0 47 1
59 ENABLE_SECURITY_DOWNLOAD EFUSE_BLK0 48 1
60 FLASH_TPUW EFUSE_BLK0 49 4
61 SECURE_BOOT_EN EFUSE_BLK0 53 1
62 SECURE_VERSION EFUSE_BLK0 54 4
63 CUSTOM_MAC_USED EFUSE_BLK0 58 1
64 DISABLE_WAFER_VERSION_MAJOR EFUSE_BLK0 59 1
65 DISABLE_BLK_VERSION_MAJOR EFUSE_BLK0 60 1
66 USER_DATA EFUSE_BLK1 0 88
67 USER_DATA.MAC_CUSTOM EFUSE_BLK1 0 48
68 MAC EFUSE_BLK2 0 8
69 MAC EFUSE_BLK2 8 8
70 MAC EFUSE_BLK2 16 8
71 MAC EFUSE_BLK2 24 8
72 MAC EFUSE_BLK2 32 8
73 MAC EFUSE_BLK2 40 8
74 WAFER_VERSION_MINOR EFUSE_BLK2 48 4
75 WAFER_VERSION_MAJOR EFUSE_BLK2 52 2
76 PKG_VERSION EFUSE_BLK2 54 3
77 BLK_VERSION_MINOR EFUSE_BLK2 57 3
78 BLK_VERSION_MAJOR EFUSE_BLK2 60 2
79 OCODE EFUSE_BLK2 62 7
80 TEMP_CALIB EFUSE_BLK2 69 9
81 ADC1_INIT_CODE_ATTEN0 EFUSE_BLK2 78 8
82 ADC1_INIT_CODE_ATTEN3 EFUSE_BLK2 86 5
83 ADC1_CAL_VOL_ATTEN0 EFUSE_BLK2 91 8
84 ADC1_CAL_VOL_ATTEN3 EFUSE_BLK2 99 6
85 DIG_DBIAS_HVT EFUSE_BLK2 105 5
86 DIG_LDO_SLP_DBIAS2 EFUSE_BLK2 110 7
87 DIG_LDO_SLP_DBIAS26 EFUSE_BLK2 117 8
88 DIG_LDO_ACT_DBIAS26 EFUSE_BLK2 125 6
89 DIG_LDO_ACT_STEPD10 EFUSE_BLK2 131 4
90 RTC_LDO_SLP_DBIAS13 EFUSE_BLK2 135 7
91 RTC_LDO_SLP_DBIAS29 EFUSE_BLK2 142 9
92 RTC_LDO_SLP_DBIAS31 EFUSE_BLK2 151 6
93 RTC_LDO_ACT_DBIAS31 EFUSE_BLK2 157 6
94 RTC_LDO_ACT_DBIAS13 EFUSE_BLK2 163 8
95 ADC_CALIBRATION_3 EFUSE_BLK2 192 11
96 KEY0 EFUSE_BLK3 0 256
97 KEY0.FE_256BIT EFUSE_BLK3 0 256
98 KEY0.FE_128BIT EFUSE_BLK3 0 128
99 KEY0.SB_128BIT EFUSE_BLK3 128 128
Used bits in efuse table:
EFUSE_BLK0
[0 7] [0 1] [1 1] [1 2] [2 2] ... [6 6] [6 6] [6 6] [6 6] [6 6] [6 6] [6 6] [6 6] [6 6] [6 7] [32 33] [32 33] [32 60]
EFUSE_BLK1
[0 87] [0 47]
EFUSE_BLK2
[0 170] [192 202]
EFUSE_BLK3
[0 255] [0 255] [0 255]
EFUSE_BLK0
[0 7] [0 1] [1 1] [1 2] [2 2] ... [6 6] [6 6] [6 6] [6 6] [6 6] [6 6] [6 6] [6 6] [6 6] [6 7] [32 33] [32 33] [32 60]
EFUSE_BLK1
[0 87] [0 47]
EFUSE_BLK2
[0 170] [192 202]
EFUSE_BLK3
[0 255] [0 255] [0 255]
Note: Not printed ranges are free for using. (bits in EFUSE_BLK0 are reserved for Espressif)

View File

@ -6,207 +6,207 @@
Max number of bits in BLK 256
Sorted efuse table:
# field_name efuse_block bit_start bit_count
1 WR_DIS EFUSE_BLK0 0 32
2 WR_DIS.RD_DIS EFUSE_BLK0 0 1
3 WR_DIS.DIS_ICACHE EFUSE_BLK0 2 1
4 WR_DIS.DIS_USB_JTAG EFUSE_BLK0 2 1
5 WR_DIS.DIS_DOWNLOAD_ICACHE EFUSE_BLK0 2 1
6 WR_DIS.DIS_USB_SERIAL_JTAG EFUSE_BLK0 2 1
7 WR_DIS.DIS_FORCE_DOWNLOAD EFUSE_BLK0 2 1
8 WR_DIS.DIS_TWAI EFUSE_BLK0 2 1
9 WR_DIS.JTAG_SEL_ENABLE EFUSE_BLK0 2 1
10 WR_DIS.DIS_PAD_JTAG EFUSE_BLK0 2 1
11 WR_DIS.DIS_DOWNLOAD_MANUAL_ENCRYPT EFUSE_BLK0 2 1
12 WR_DIS.WDT_DELAY_SEL EFUSE_BLK0 3 1
13 WR_DIS.SPI_BOOT_CRYPT_CNT EFUSE_BLK0 4 1
14 WR_DIS.SECURE_BOOT_KEY_REVOKE0 EFUSE_BLK0 5 1
15 WR_DIS.SECURE_BOOT_KEY_REVOKE1 EFUSE_BLK0 6 1
16 WR_DIS.SECURE_BOOT_KEY_REVOKE2 EFUSE_BLK0 7 1
17 WR_DIS.KEY_PURPOSE_0 EFUSE_BLK0 8 1
18 WR_DIS.KEY_PURPOSE_1 EFUSE_BLK0 9 1
19 WR_DIS.KEY_PURPOSE_2 EFUSE_BLK0 10 1
20 WR_DIS.KEY_PURPOSE_3 EFUSE_BLK0 11 1
21 WR_DIS.KEY_PURPOSE_4 EFUSE_BLK0 12 1
22 WR_DIS.KEY_PURPOSE_5 EFUSE_BLK0 13 1
23 WR_DIS.SECURE_BOOT_EN EFUSE_BLK0 15 1
24 WR_DIS.SECURE_BOOT_AGGRESSIVE_REVOKE EFUSE_BLK0 16 1
25 WR_DIS.FLASH_TPUW EFUSE_BLK0 18 1
26 WR_DIS.DIS_DOWNLOAD_MODE EFUSE_BLK0 18 1
27 WR_DIS.DIS_DIRECT_BOOT EFUSE_BLK0 18 1
28 WR_DIS.DIS_USB_SERIAL_JTAG_ROM_PRINT EFUSE_BLK0 18 1
29 WR_DIS.DIS_USB_SERIAL_JTAG_DOWNLOAD_MODE EFUSE_BLK0 18 1
30 WR_DIS.ENABLE_SECURITY_DOWNLOAD EFUSE_BLK0 18 1
31 WR_DIS.UART_PRINT_CONTROL EFUSE_BLK0 18 1
32 WR_DIS.FORCE_SEND_RESUME EFUSE_BLK0 18 1
33 WR_DIS.SECURE_VERSION EFUSE_BLK0 18 1
34 WR_DIS.ERR_RST_ENABLE EFUSE_BLK0 19 1
35 WR_DIS.DISABLE_WAFER_VERSION_MAJOR EFUSE_BLK0 19 1
36 WR_DIS.DISABLE_BLK_VERSION_MAJOR EFUSE_BLK0 19 1
37 WR_DIS.BLK1 EFUSE_BLK0 20 1
38 WR_DIS.MAC EFUSE_BLK0 20 1
39 WR_DIS.SPI_PAD_CONFIG_CLK EFUSE_BLK0 20 1
40 WR_DIS.SPI_PAD_CONFIG_Q EFUSE_BLK0 20 1
41 WR_DIS.SPI_PAD_CONFIG_D EFUSE_BLK0 20 1
42 WR_DIS.SPI_PAD_CONFIG_CS EFUSE_BLK0 20 1
43 WR_DIS.SPI_PAD_CONFIG_HD EFUSE_BLK0 20 1
44 WR_DIS.SPI_PAD_CONFIG_WP EFUSE_BLK0 20 1
45 WR_DIS.SPI_PAD_CONFIG_DQS EFUSE_BLK0 20 1
46 WR_DIS.SPI_PAD_CONFIG_D4 EFUSE_BLK0 20 1
47 WR_DIS.SPI_PAD_CONFIG_D5 EFUSE_BLK0 20 1
48 WR_DIS.SPI_PAD_CONFIG_D6 EFUSE_BLK0 20 1
49 WR_DIS.SPI_PAD_CONFIG_D7 EFUSE_BLK0 20 1
50 WR_DIS.WAFER_VERSION_MINOR_LO EFUSE_BLK0 20 1
51 WR_DIS.PKG_VERSION EFUSE_BLK0 20 1
52 WR_DIS.BLK_VERSION_MINOR EFUSE_BLK0 20 1
53 WR_DIS.K_RTC_LDO EFUSE_BLK0 20 1
54 WR_DIS.K_DIG_LDO EFUSE_BLK0 20 1
55 WR_DIS.V_RTC_DBIAS20 EFUSE_BLK0 20 1
56 WR_DIS.V_DIG_DBIAS20 EFUSE_BLK0 20 1
57 WR_DIS.DIG_DBIAS_HVT EFUSE_BLK0 20 1
58 WR_DIS.THRES_HVT EFUSE_BLK0 20 1
59 WR_DIS.WAFER_VERSION_MINOR_HI EFUSE_BLK0 20 1
60 WR_DIS.WAFER_VERSION_MAJOR EFUSE_BLK0 20 1
61 WR_DIS.SYS_DATA_PART1 EFUSE_BLK0 21 1
62 WR_DIS.OPTIONAL_UNIQUE_ID EFUSE_BLK0 21 1
63 WR_DIS.BLK_VERSION_MAJOR EFUSE_BLK0 21 1
64 WR_DIS.TEMP_CALIB EFUSE_BLK0 21 1
65 WR_DIS.OCODE EFUSE_BLK0 21 1
66 WR_DIS.ADC1_INIT_CODE_ATTEN0 EFUSE_BLK0 21 1
67 WR_DIS.ADC1_INIT_CODE_ATTEN1 EFUSE_BLK0 21 1
68 WR_DIS.ADC1_INIT_CODE_ATTEN2 EFUSE_BLK0 21 1
69 WR_DIS.ADC1_INIT_CODE_ATTEN3 EFUSE_BLK0 21 1
70 WR_DIS.ADC1_CAL_VOL_ATTEN0 EFUSE_BLK0 21 1
71 WR_DIS.ADC1_CAL_VOL_ATTEN1 EFUSE_BLK0 21 1
72 WR_DIS.ADC1_CAL_VOL_ATTEN2 EFUSE_BLK0 21 1
73 WR_DIS.ADC1_CAL_VOL_ATTEN3 EFUSE_BLK0 21 1
74 WR_DIS.BLOCK_USR_DATA EFUSE_BLK0 22 1
75 WR_DIS.CUSTOM_MAC EFUSE_BLK0 22 1
76 WR_DIS.BLOCK_KEY0 EFUSE_BLK0 23 1
77 WR_DIS.BLOCK_KEY1 EFUSE_BLK0 24 1
78 WR_DIS.BLOCK_KEY2 EFUSE_BLK0 25 1
79 WR_DIS.BLOCK_KEY3 EFUSE_BLK0 26 1
80 WR_DIS.BLOCK_KEY4 EFUSE_BLK0 27 1
81 WR_DIS.BLOCK_KEY5 EFUSE_BLK0 28 1
82 WR_DIS.BLOCK_SYS_DATA2 EFUSE_BLK0 29 1
83 WR_DIS.USB_EXCHG_PINS EFUSE_BLK0 30 1
84 WR_DIS.VDD_SPI_AS_GPIO EFUSE_BLK0 30 1
85 WR_DIS.SOFT_DIS_JTAG EFUSE_BLK0 31 1
86 RD_DIS EFUSE_BLK0 32 7
87 RD_DIS.BLOCK_KEY0 EFUSE_BLK0 32 1
88 RD_DIS.BLOCK_KEY1 EFUSE_BLK0 33 1
89 RD_DIS.BLOCK_KEY2 EFUSE_BLK0 34 1
90 RD_DIS.BLOCK_KEY3 EFUSE_BLK0 35 1
91 RD_DIS.BLOCK_KEY4 EFUSE_BLK0 36 1
92 RD_DIS.BLOCK_KEY5 EFUSE_BLK0 37 1
93 RD_DIS.BLOCK_SYS_DATA2 EFUSE_BLK0 38 1
94 DIS_ICACHE EFUSE_BLK0 40 1
95 DIS_USB_JTAG EFUSE_BLK0 41 1
96 DIS_DOWNLOAD_ICACHE EFUSE_BLK0 42 1
97 DIS_USB_SERIAL_JTAG EFUSE_BLK0 43 1
98 DIS_FORCE_DOWNLOAD EFUSE_BLK0 44 1
99 DIS_TWAI EFUSE_BLK0 46 1
100 JTAG_SEL_ENABLE EFUSE_BLK0 47 1
101 SOFT_DIS_JTAG EFUSE_BLK0 48 3
102 DIS_PAD_JTAG EFUSE_BLK0 51 1
103 DIS_DOWNLOAD_MANUAL_ENCRYPT EFUSE_BLK0 52 1
104 USB_EXCHG_PINS EFUSE_BLK0 57 1
105 VDD_SPI_AS_GPIO EFUSE_BLK0 58 1
106 WDT_DELAY_SEL EFUSE_BLK0 80 2
107 SPI_BOOT_CRYPT_CNT EFUSE_BLK0 82 3
108 SECURE_BOOT_KEY_REVOKE0 EFUSE_BLK0 85 1
109 SECURE_BOOT_KEY_REVOKE1 EFUSE_BLK0 86 1
110 SECURE_BOOT_KEY_REVOKE2 EFUSE_BLK0 87 1
111 KEY_PURPOSE_0 EFUSE_BLK0 88 4
112 KEY_PURPOSE_1 EFUSE_BLK0 92 4
113 KEY_PURPOSE_2 EFUSE_BLK0 96 4
114 KEY_PURPOSE_3 EFUSE_BLK0 100 4
115 KEY_PURPOSE_4 EFUSE_BLK0 104 4
116 KEY_PURPOSE_5 EFUSE_BLK0 108 4
117 SECURE_BOOT_EN EFUSE_BLK0 116 1
118 SECURE_BOOT_AGGRESSIVE_REVOKE EFUSE_BLK0 117 1
119 FLASH_TPUW EFUSE_BLK0 124 4
120 DIS_DOWNLOAD_MODE EFUSE_BLK0 128 1
121 DIS_DIRECT_BOOT EFUSE_BLK0 129 1
122 DIS_USB_SERIAL_JTAG_ROM_PRINT EFUSE_BLK0 130 1
123 DIS_USB_SERIAL_JTAG_DOWNLOAD_MODE EFUSE_BLK0 132 1
124 ENABLE_SECURITY_DOWNLOAD EFUSE_BLK0 133 1
125 UART_PRINT_CONTROL EFUSE_BLK0 134 2
126 FORCE_SEND_RESUME EFUSE_BLK0 141 1
127 SECURE_VERSION EFUSE_BLK0 142 16
128 ERR_RST_ENABLE EFUSE_BLK0 159 1
129 DISABLE_WAFER_VERSION_MAJOR EFUSE_BLK0 160 1
130 DISABLE_BLK_VERSION_MAJOR EFUSE_BLK0 161 1
131 MAC EFUSE_BLK1 0 8
132 MAC EFUSE_BLK1 8 8
133 MAC EFUSE_BLK1 16 8
134 MAC EFUSE_BLK1 24 8
135 MAC EFUSE_BLK1 32 8
136 MAC EFUSE_BLK1 40 8
137 SPI_PAD_CONFIG_CLK EFUSE_BLK1 48 6
138 SPI_PAD_CONFIG_Q EFUSE_BLK1 54 6
139 SPI_PAD_CONFIG_D EFUSE_BLK1 60 6
140 SPI_PAD_CONFIG_CS EFUSE_BLK1 66 6
141 SPI_PAD_CONFIG_HD EFUSE_BLK1 72 6
142 SPI_PAD_CONFIG_WP EFUSE_BLK1 78 6
143 SPI_PAD_CONFIG_DQS EFUSE_BLK1 84 6
144 SPI_PAD_CONFIG_D4 EFUSE_BLK1 90 6
145 SPI_PAD_CONFIG_D5 EFUSE_BLK1 96 6
146 SPI_PAD_CONFIG_D6 EFUSE_BLK1 102 6
147 SPI_PAD_CONFIG_D7 EFUSE_BLK1 108 6
148 WAFER_VERSION_MINOR_LO EFUSE_BLK1 114 3
149 PKG_VERSION EFUSE_BLK1 117 3
150 BLK_VERSION_MINOR EFUSE_BLK1 120 3
151 K_RTC_LDO EFUSE_BLK1 135 7
152 K_DIG_LDO EFUSE_BLK1 142 7
153 V_RTC_DBIAS20 EFUSE_BLK1 149 8
154 V_DIG_DBIAS20 EFUSE_BLK1 157 8
155 DIG_DBIAS_HVT EFUSE_BLK1 165 5
156 THRES_HVT EFUSE_BLK1 170 10
157 WAFER_VERSION_MINOR_HI EFUSE_BLK1 183 1
158 WAFER_VERSION_MAJOR EFUSE_BLK1 184 2
159 SYS_DATA_PART2 EFUSE_BLK10 0 256
160 OPTIONAL_UNIQUE_ID EFUSE_BLK2 0 128
161 BLK_VERSION_MAJOR EFUSE_BLK2 128 2
162 TEMP_CALIB EFUSE_BLK2 131 9
163 OCODE EFUSE_BLK2 140 8
164 ADC1_INIT_CODE_ATTEN0 EFUSE_BLK2 148 10
165 ADC1_INIT_CODE_ATTEN1 EFUSE_BLK2 158 10
166 ADC1_INIT_CODE_ATTEN2 EFUSE_BLK2 168 10
167 ADC1_INIT_CODE_ATTEN3 EFUSE_BLK2 178 10
168 ADC1_CAL_VOL_ATTEN0 EFUSE_BLK2 188 10
169 ADC1_CAL_VOL_ATTEN1 EFUSE_BLK2 198 10
170 ADC1_CAL_VOL_ATTEN2 EFUSE_BLK2 208 10
171 ADC1_CAL_VOL_ATTEN3 EFUSE_BLK2 218 10
172 USER_DATA EFUSE_BLK3 0 256
173 USER_DATA.MAC_CUSTOM EFUSE_BLK3 200 48
174 KEY0 EFUSE_BLK4 0 256
175 KEY1 EFUSE_BLK5 0 256
176 KEY2 EFUSE_BLK6 0 256
177 KEY3 EFUSE_BLK7 0 256
178 KEY4 EFUSE_BLK8 0 256
179 KEY5 EFUSE_BLK9 0 256
1 WR_DIS EFUSE_BLK0 0 32
2 WR_DIS.RD_DIS EFUSE_BLK0 0 1
3 WR_DIS.DIS_ICACHE EFUSE_BLK0 2 1
4 WR_DIS.DIS_USB_JTAG EFUSE_BLK0 2 1
5 WR_DIS.DIS_DOWNLOAD_ICACHE EFUSE_BLK0 2 1
6 WR_DIS.DIS_USB_SERIAL_JTAG EFUSE_BLK0 2 1
7 WR_DIS.DIS_FORCE_DOWNLOAD EFUSE_BLK0 2 1
8 WR_DIS.DIS_TWAI EFUSE_BLK0 2 1
9 WR_DIS.JTAG_SEL_ENABLE EFUSE_BLK0 2 1
10 WR_DIS.DIS_PAD_JTAG EFUSE_BLK0 2 1
11 WR_DIS.DIS_DOWNLOAD_MANUAL_ENCRYPT EFUSE_BLK0 2 1
12 WR_DIS.WDT_DELAY_SEL EFUSE_BLK0 3 1
13 WR_DIS.SPI_BOOT_CRYPT_CNT EFUSE_BLK0 4 1
14 WR_DIS.SECURE_BOOT_KEY_REVOKE0 EFUSE_BLK0 5 1
15 WR_DIS.SECURE_BOOT_KEY_REVOKE1 EFUSE_BLK0 6 1
16 WR_DIS.SECURE_BOOT_KEY_REVOKE2 EFUSE_BLK0 7 1
17 WR_DIS.KEY_PURPOSE_0 EFUSE_BLK0 8 1
18 WR_DIS.KEY_PURPOSE_1 EFUSE_BLK0 9 1
19 WR_DIS.KEY_PURPOSE_2 EFUSE_BLK0 10 1
20 WR_DIS.KEY_PURPOSE_3 EFUSE_BLK0 11 1
21 WR_DIS.KEY_PURPOSE_4 EFUSE_BLK0 12 1
22 WR_DIS.KEY_PURPOSE_5 EFUSE_BLK0 13 1
23 WR_DIS.SECURE_BOOT_EN EFUSE_BLK0 15 1
24 WR_DIS.SECURE_BOOT_AGGRESSIVE_REVOKE EFUSE_BLK0 16 1
25 WR_DIS.FLASH_TPUW EFUSE_BLK0 18 1
26 WR_DIS.DIS_DOWNLOAD_MODE EFUSE_BLK0 18 1
27 WR_DIS.DIS_DIRECT_BOOT EFUSE_BLK0 18 1
28 WR_DIS.DIS_USB_SERIAL_JTAG_ROM_PRINT EFUSE_BLK0 18 1
29 WR_DIS.DIS_USB_SERIAL_JTAG_DOWNLOAD_MODE EFUSE_BLK0 18 1
30 WR_DIS.ENABLE_SECURITY_DOWNLOAD EFUSE_BLK0 18 1
31 WR_DIS.UART_PRINT_CONTROL EFUSE_BLK0 18 1
32 WR_DIS.FORCE_SEND_RESUME EFUSE_BLK0 18 1
33 WR_DIS.SECURE_VERSION EFUSE_BLK0 18 1
34 WR_DIS.ERR_RST_ENABLE EFUSE_BLK0 19 1
35 WR_DIS.DISABLE_WAFER_VERSION_MAJOR EFUSE_BLK0 19 1
36 WR_DIS.DISABLE_BLK_VERSION_MAJOR EFUSE_BLK0 19 1
37 WR_DIS.BLK1 EFUSE_BLK0 20 1
38 WR_DIS.MAC EFUSE_BLK0 20 1
39 WR_DIS.SPI_PAD_CONFIG_CLK EFUSE_BLK0 20 1
40 WR_DIS.SPI_PAD_CONFIG_Q EFUSE_BLK0 20 1
41 WR_DIS.SPI_PAD_CONFIG_D EFUSE_BLK0 20 1
42 WR_DIS.SPI_PAD_CONFIG_CS EFUSE_BLK0 20 1
43 WR_DIS.SPI_PAD_CONFIG_HD EFUSE_BLK0 20 1
44 WR_DIS.SPI_PAD_CONFIG_WP EFUSE_BLK0 20 1
45 WR_DIS.SPI_PAD_CONFIG_DQS EFUSE_BLK0 20 1
46 WR_DIS.SPI_PAD_CONFIG_D4 EFUSE_BLK0 20 1
47 WR_DIS.SPI_PAD_CONFIG_D5 EFUSE_BLK0 20 1
48 WR_DIS.SPI_PAD_CONFIG_D6 EFUSE_BLK0 20 1
49 WR_DIS.SPI_PAD_CONFIG_D7 EFUSE_BLK0 20 1
50 WR_DIS.WAFER_VERSION_MINOR_LO EFUSE_BLK0 20 1
51 WR_DIS.PKG_VERSION EFUSE_BLK0 20 1
52 WR_DIS.BLK_VERSION_MINOR EFUSE_BLK0 20 1
53 WR_DIS.K_RTC_LDO EFUSE_BLK0 20 1
54 WR_DIS.K_DIG_LDO EFUSE_BLK0 20 1
55 WR_DIS.V_RTC_DBIAS20 EFUSE_BLK0 20 1
56 WR_DIS.V_DIG_DBIAS20 EFUSE_BLK0 20 1
57 WR_DIS.DIG_DBIAS_HVT EFUSE_BLK0 20 1
58 WR_DIS.THRES_HVT EFUSE_BLK0 20 1
59 WR_DIS.WAFER_VERSION_MINOR_HI EFUSE_BLK0 20 1
60 WR_DIS.WAFER_VERSION_MAJOR EFUSE_BLK0 20 1
61 WR_DIS.SYS_DATA_PART1 EFUSE_BLK0 21 1
62 WR_DIS.OPTIONAL_UNIQUE_ID EFUSE_BLK0 21 1
63 WR_DIS.BLK_VERSION_MAJOR EFUSE_BLK0 21 1
64 WR_DIS.TEMP_CALIB EFUSE_BLK0 21 1
65 WR_DIS.OCODE EFUSE_BLK0 21 1
66 WR_DIS.ADC1_INIT_CODE_ATTEN0 EFUSE_BLK0 21 1
67 WR_DIS.ADC1_INIT_CODE_ATTEN1 EFUSE_BLK0 21 1
68 WR_DIS.ADC1_INIT_CODE_ATTEN2 EFUSE_BLK0 21 1
69 WR_DIS.ADC1_INIT_CODE_ATTEN3 EFUSE_BLK0 21 1
70 WR_DIS.ADC1_CAL_VOL_ATTEN0 EFUSE_BLK0 21 1
71 WR_DIS.ADC1_CAL_VOL_ATTEN1 EFUSE_BLK0 21 1
72 WR_DIS.ADC1_CAL_VOL_ATTEN2 EFUSE_BLK0 21 1
73 WR_DIS.ADC1_CAL_VOL_ATTEN3 EFUSE_BLK0 21 1
74 WR_DIS.BLOCK_USR_DATA EFUSE_BLK0 22 1
75 WR_DIS.CUSTOM_MAC EFUSE_BLK0 22 1
76 WR_DIS.BLOCK_KEY0 EFUSE_BLK0 23 1
77 WR_DIS.BLOCK_KEY1 EFUSE_BLK0 24 1
78 WR_DIS.BLOCK_KEY2 EFUSE_BLK0 25 1
79 WR_DIS.BLOCK_KEY3 EFUSE_BLK0 26 1
80 WR_DIS.BLOCK_KEY4 EFUSE_BLK0 27 1
81 WR_DIS.BLOCK_KEY5 EFUSE_BLK0 28 1
82 WR_DIS.BLOCK_SYS_DATA2 EFUSE_BLK0 29 1
83 WR_DIS.USB_EXCHG_PINS EFUSE_BLK0 30 1
84 WR_DIS.VDD_SPI_AS_GPIO EFUSE_BLK0 30 1
85 WR_DIS.SOFT_DIS_JTAG EFUSE_BLK0 31 1
86 RD_DIS EFUSE_BLK0 32 7
87 RD_DIS.BLOCK_KEY0 EFUSE_BLK0 32 1
88 RD_DIS.BLOCK_KEY1 EFUSE_BLK0 33 1
89 RD_DIS.BLOCK_KEY2 EFUSE_BLK0 34 1
90 RD_DIS.BLOCK_KEY3 EFUSE_BLK0 35 1
91 RD_DIS.BLOCK_KEY4 EFUSE_BLK0 36 1
92 RD_DIS.BLOCK_KEY5 EFUSE_BLK0 37 1
93 RD_DIS.BLOCK_SYS_DATA2 EFUSE_BLK0 38 1
94 DIS_ICACHE EFUSE_BLK0 40 1
95 DIS_USB_JTAG EFUSE_BLK0 41 1
96 DIS_DOWNLOAD_ICACHE EFUSE_BLK0 42 1
97 DIS_USB_SERIAL_JTAG EFUSE_BLK0 43 1
98 DIS_FORCE_DOWNLOAD EFUSE_BLK0 44 1
99 DIS_TWAI EFUSE_BLK0 46 1
100 JTAG_SEL_ENABLE EFUSE_BLK0 47 1
101 SOFT_DIS_JTAG EFUSE_BLK0 48 3
102 DIS_PAD_JTAG EFUSE_BLK0 51 1
103 DIS_DOWNLOAD_MANUAL_ENCRYPT EFUSE_BLK0 52 1
104 USB_EXCHG_PINS EFUSE_BLK0 57 1
105 VDD_SPI_AS_GPIO EFUSE_BLK0 58 1
106 WDT_DELAY_SEL EFUSE_BLK0 80 2
107 SPI_BOOT_CRYPT_CNT EFUSE_BLK0 82 3
108 SECURE_BOOT_KEY_REVOKE0 EFUSE_BLK0 85 1
109 SECURE_BOOT_KEY_REVOKE1 EFUSE_BLK0 86 1
110 SECURE_BOOT_KEY_REVOKE2 EFUSE_BLK0 87 1
111 KEY_PURPOSE_0 EFUSE_BLK0 88 4
112 KEY_PURPOSE_1 EFUSE_BLK0 92 4
113 KEY_PURPOSE_2 EFUSE_BLK0 96 4
114 KEY_PURPOSE_3 EFUSE_BLK0 100 4
115 KEY_PURPOSE_4 EFUSE_BLK0 104 4
116 KEY_PURPOSE_5 EFUSE_BLK0 108 4
117 SECURE_BOOT_EN EFUSE_BLK0 116 1
118 SECURE_BOOT_AGGRESSIVE_REVOKE EFUSE_BLK0 117 1
119 FLASH_TPUW EFUSE_BLK0 124 4
120 DIS_DOWNLOAD_MODE EFUSE_BLK0 128 1
121 DIS_DIRECT_BOOT EFUSE_BLK0 129 1
122 DIS_USB_SERIAL_JTAG_ROM_PRINT EFUSE_BLK0 130 1
123 DIS_USB_SERIAL_JTAG_DOWNLOAD_MODE EFUSE_BLK0 132 1
124 ENABLE_SECURITY_DOWNLOAD EFUSE_BLK0 133 1
125 UART_PRINT_CONTROL EFUSE_BLK0 134 2
126 FORCE_SEND_RESUME EFUSE_BLK0 141 1
127 SECURE_VERSION EFUSE_BLK0 142 16
128 ERR_RST_ENABLE EFUSE_BLK0 159 1
129 DISABLE_WAFER_VERSION_MAJOR EFUSE_BLK0 160 1
130 DISABLE_BLK_VERSION_MAJOR EFUSE_BLK0 161 1
131 MAC EFUSE_BLK1 0 8
132 MAC EFUSE_BLK1 8 8
133 MAC EFUSE_BLK1 16 8
134 MAC EFUSE_BLK1 24 8
135 MAC EFUSE_BLK1 32 8
136 MAC EFUSE_BLK1 40 8
137 SPI_PAD_CONFIG_CLK EFUSE_BLK1 48 6
138 SPI_PAD_CONFIG_Q EFUSE_BLK1 54 6
139 SPI_PAD_CONFIG_D EFUSE_BLK1 60 6
140 SPI_PAD_CONFIG_CS EFUSE_BLK1 66 6
141 SPI_PAD_CONFIG_HD EFUSE_BLK1 72 6
142 SPI_PAD_CONFIG_WP EFUSE_BLK1 78 6
143 SPI_PAD_CONFIG_DQS EFUSE_BLK1 84 6
144 SPI_PAD_CONFIG_D4 EFUSE_BLK1 90 6
145 SPI_PAD_CONFIG_D5 EFUSE_BLK1 96 6
146 SPI_PAD_CONFIG_D6 EFUSE_BLK1 102 6
147 SPI_PAD_CONFIG_D7 EFUSE_BLK1 108 6
148 WAFER_VERSION_MINOR_LO EFUSE_BLK1 114 3
149 PKG_VERSION EFUSE_BLK1 117 3
150 BLK_VERSION_MINOR EFUSE_BLK1 120 3
151 K_RTC_LDO EFUSE_BLK1 135 7
152 K_DIG_LDO EFUSE_BLK1 142 7
153 V_RTC_DBIAS20 EFUSE_BLK1 149 8
154 V_DIG_DBIAS20 EFUSE_BLK1 157 8
155 DIG_DBIAS_HVT EFUSE_BLK1 165 5
156 THRES_HVT EFUSE_BLK1 170 10
157 WAFER_VERSION_MINOR_HI EFUSE_BLK1 183 1
158 WAFER_VERSION_MAJOR EFUSE_BLK1 184 2
159 SYS_DATA_PART2 EFUSE_BLK10 0 256
160 OPTIONAL_UNIQUE_ID EFUSE_BLK2 0 128
161 BLK_VERSION_MAJOR EFUSE_BLK2 128 2
162 TEMP_CALIB EFUSE_BLK2 131 9
163 OCODE EFUSE_BLK2 140 8
164 ADC1_INIT_CODE_ATTEN0 EFUSE_BLK2 148 10
165 ADC1_INIT_CODE_ATTEN1 EFUSE_BLK2 158 10
166 ADC1_INIT_CODE_ATTEN2 EFUSE_BLK2 168 10
167 ADC1_INIT_CODE_ATTEN3 EFUSE_BLK2 178 10
168 ADC1_CAL_VOL_ATTEN0 EFUSE_BLK2 188 10
169 ADC1_CAL_VOL_ATTEN1 EFUSE_BLK2 198 10
170 ADC1_CAL_VOL_ATTEN2 EFUSE_BLK2 208 10
171 ADC1_CAL_VOL_ATTEN3 EFUSE_BLK2 218 10
172 USER_DATA EFUSE_BLK3 0 256
173 USER_DATA.MAC_CUSTOM EFUSE_BLK3 200 48
174 KEY0 EFUSE_BLK4 0 256
175 KEY1 EFUSE_BLK5 0 256
176 KEY2 EFUSE_BLK6 0 256
177 KEY3 EFUSE_BLK7 0 256
178 KEY4 EFUSE_BLK8 0 256
179 KEY5 EFUSE_BLK9 0 256
Used bits in efuse table:
EFUSE_BLK0
[0 31] [0 0] [2 2] ... [40 44] [46 52] [57 58] [80 111] [116 117] [124 130] [132 135] [141 157] [159 161]
EFUSE_BLK1
[0 122] [135 179] [183 185]
EFUSE_BLK10
[0 255]
EFUSE_BLK2
[0 129] [131 227]
EFUSE_BLK3
[0 255] [200 247]
EFUSE_BLK4
[0 255]
EFUSE_BLK5
[0 255]
EFUSE_BLK6
[0 255]
EFUSE_BLK7
[0 255]
EFUSE_BLK8
[0 255]
EFUSE_BLK9
[0 255]
EFUSE_BLK0
[0 31] [0 0] [2 2] ... [40 44] [46 52] [57 58] [80 111] [116 117] [124 130] [132 135] [141 157] [159 161]
EFUSE_BLK1
[0 122] [135 179] [183 185]
EFUSE_BLK10
[0 255]
EFUSE_BLK2
[0 129] [131 227]
EFUSE_BLK3
[0 255] [200 247]
EFUSE_BLK4
[0 255]
EFUSE_BLK5
[0 255]
EFUSE_BLK6
[0 255]
EFUSE_BLK7
[0 255]
EFUSE_BLK8
[0 255]
EFUSE_BLK9
[0 255]
Note: Not printed ranges are free for using. (bits in EFUSE_BLK0 are reserved for Espressif)

View File

@ -8,167 +8,167 @@
Verifying efuse table...
Sorted efuse table:
# field_name efuse_block bit_start bit_count
1 WR_DIS EFUSE_BLK0 0 32
2 WR_DIS.RD_DIS EFUSE_BLK0 0 1
3 WR_DIS.CRYPT_DPA_ENABLE EFUSE_BLK0 1 1
4 WR_DIS.SWAP_UART_SDIO_EN EFUSE_BLK0 2 1
5 WR_DIS.DIS_ICACHE EFUSE_BLK0 2 1
6 WR_DIS.DIS_USB_JTAG EFUSE_BLK0 2 1
7 WR_DIS.DIS_DOWNLOAD_ICACHE EFUSE_BLK0 2 1
8 WR_DIS.DIS_USB_SERIAL_JTAG EFUSE_BLK0 2 1
9 WR_DIS.DIS_FORCE_DOWNLOAD EFUSE_BLK0 2 1
10 WR_DIS.DIS_TWAI EFUSE_BLK0 2 1
11 WR_DIS.JTAG_SEL_ENABLE EFUSE_BLK0 2 1
12 WR_DIS.DIS_PAD_JTAG EFUSE_BLK0 2 1
13 WR_DIS.DIS_DOWNLOAD_MANUAL_ENCRYPT EFUSE_BLK0 2 1
14 WR_DIS.WDT_DELAY_SEL EFUSE_BLK0 3 1
15 WR_DIS.SPI_BOOT_CRYPT_CNT EFUSE_BLK0 4 1
16 WR_DIS.SECURE_BOOT_KEY_REVOKE0 EFUSE_BLK0 5 1
17 WR_DIS.SECURE_BOOT_KEY_REVOKE1 EFUSE_BLK0 6 1
18 WR_DIS.SECURE_BOOT_KEY_REVOKE2 EFUSE_BLK0 7 1
19 WR_DIS.KEY_PURPOSE_0 EFUSE_BLK0 8 1
20 WR_DIS.KEY_PURPOSE_1 EFUSE_BLK0 9 1
21 WR_DIS.KEY_PURPOSE_2 EFUSE_BLK0 10 1
22 WR_DIS.KEY_PURPOSE_3 EFUSE_BLK0 11 1
23 WR_DIS.KEY_PURPOSE_4 EFUSE_BLK0 12 1
24 WR_DIS.KEY_PURPOSE_5 EFUSE_BLK0 13 1
25 WR_DIS.SEC_DPA_LEVEL EFUSE_BLK0 14 1
26 WR_DIS.SECURE_BOOT_EN EFUSE_BLK0 15 1
27 WR_DIS.SECURE_BOOT_AGGRESSIVE_REVOKE EFUSE_BLK0 16 1
28 WR_DIS.SPI_DOWNLOAD_MSPI_DIS EFUSE_BLK0 17 1
29 WR_DIS.FLASH_TPUW EFUSE_BLK0 18 1
30 WR_DIS.DIS_DOWNLOAD_MODE EFUSE_BLK0 18 1
31 WR_DIS.DIS_DIRECT_BOOT EFUSE_BLK0 18 1
32 WR_DIS.DIS_USB_SERIAL_JTAG_ROM_PRINT EFUSE_BLK0 18 1
33 WR_DIS.DIS_USB_SERIAL_JTAG_DOWNLOAD_MODE EFUSE_BLK0 18 1
34 WR_DIS.ENABLE_SECURITY_DOWNLOAD EFUSE_BLK0 18 1
35 WR_DIS.UART_PRINT_CONTROL EFUSE_BLK0 18 1
36 WR_DIS.FORCE_SEND_RESUME EFUSE_BLK0 18 1
37 WR_DIS.SECURE_VERSION EFUSE_BLK0 18 1
38 WR_DIS.SECURE_BOOT_DISABLE_FAST_WAKE EFUSE_BLK0 19 1
39 WR_DIS.DISABLE_WAFER_VERSION_MAJOR EFUSE_BLK0 19 1
40 WR_DIS.DISABLE_BLK_VERSION_MAJOR EFUSE_BLK0 19 1
41 WR_DIS.BLK1 EFUSE_BLK0 20 1
42 WR_DIS.MAC EFUSE_BLK0 20 1
43 WR_DIS.MAC_EXT EFUSE_BLK0 20 1
44 WR_DIS.WAFER_VERSION_MINOR EFUSE_BLK0 20 1
45 WR_DIS.WAFER_VERSION_MAJOR EFUSE_BLK0 20 1
46 WR_DIS.PKG_VERSION EFUSE_BLK0 20 1
47 WR_DIS.BLK_VERSION_MINOR EFUSE_BLK0 20 1
48 WR_DIS.BLK_VERSION_MAJOR EFUSE_BLK0 20 1
49 WR_DIS.FLASH_CAP EFUSE_BLK0 20 1
50 WR_DIS.FLASH_TEMP EFUSE_BLK0 20 1
51 WR_DIS.FLASH_VENDOR EFUSE_BLK0 20 1
52 WR_DIS.SYS_DATA_PART1 EFUSE_BLK0 21 1
53 WR_DIS.OPTIONAL_UNIQUE_ID EFUSE_BLK0 21 1
54 WR_DIS.BLOCK_USR_DATA EFUSE_BLK0 22 1
55 WR_DIS.CUSTOM_MAC EFUSE_BLK0 22 1
56 WR_DIS.BLOCK_KEY0 EFUSE_BLK0 23 1
57 WR_DIS.BLOCK_KEY1 EFUSE_BLK0 24 1
58 WR_DIS.BLOCK_KEY2 EFUSE_BLK0 25 1
59 WR_DIS.BLOCK_KEY3 EFUSE_BLK0 26 1
60 WR_DIS.BLOCK_KEY4 EFUSE_BLK0 27 1
61 WR_DIS.BLOCK_KEY5 EFUSE_BLK0 28 1
62 WR_DIS.BLOCK_SYS_DATA2 EFUSE_BLK0 29 1
63 WR_DIS.USB_EXCHG_PINS EFUSE_BLK0 30 1
64 WR_DIS.VDD_SPI_AS_GPIO EFUSE_BLK0 30 1
65 WR_DIS.SOFT_DIS_JTAG EFUSE_BLK0 31 1
66 RD_DIS EFUSE_BLK0 32 7
67 RD_DIS.BLOCK_KEY0 EFUSE_BLK0 32 1
68 RD_DIS.BLOCK_KEY1 EFUSE_BLK0 33 1
69 RD_DIS.BLOCK_KEY2 EFUSE_BLK0 34 1
70 RD_DIS.BLOCK_KEY3 EFUSE_BLK0 35 1
71 RD_DIS.BLOCK_KEY4 EFUSE_BLK0 36 1
72 RD_DIS.BLOCK_KEY5 EFUSE_BLK0 37 1
73 RD_DIS.BLOCK_SYS_DATA2 EFUSE_BLK0 38 1
74 SWAP_UART_SDIO_EN EFUSE_BLK0 39 1
75 DIS_ICACHE EFUSE_BLK0 40 1
76 DIS_USB_JTAG EFUSE_BLK0 41 1
77 DIS_DOWNLOAD_ICACHE EFUSE_BLK0 42 1
78 DIS_USB_SERIAL_JTAG EFUSE_BLK0 43 1
79 DIS_FORCE_DOWNLOAD EFUSE_BLK0 44 1
80 SPI_DOWNLOAD_MSPI_DIS EFUSE_BLK0 45 1
81 DIS_TWAI EFUSE_BLK0 46 1
82 JTAG_SEL_ENABLE EFUSE_BLK0 47 1
83 SOFT_DIS_JTAG EFUSE_BLK0 48 3
84 DIS_PAD_JTAG EFUSE_BLK0 51 1
85 DIS_DOWNLOAD_MANUAL_ENCRYPT EFUSE_BLK0 52 1
86 USB_EXCHG_PINS EFUSE_BLK0 57 1
87 VDD_SPI_AS_GPIO EFUSE_BLK0 58 1
88 WDT_DELAY_SEL EFUSE_BLK0 80 2
89 SPI_BOOT_CRYPT_CNT EFUSE_BLK0 82 3
90 SECURE_BOOT_KEY_REVOKE0 EFUSE_BLK0 85 1
91 SECURE_BOOT_KEY_REVOKE1 EFUSE_BLK0 86 1
92 SECURE_BOOT_KEY_REVOKE2 EFUSE_BLK0 87 1
93 KEY_PURPOSE_0 EFUSE_BLK0 88 4
94 KEY_PURPOSE_1 EFUSE_BLK0 92 4
95 KEY_PURPOSE_2 EFUSE_BLK0 96 4
96 KEY_PURPOSE_3 EFUSE_BLK0 100 4
97 KEY_PURPOSE_4 EFUSE_BLK0 104 4
98 KEY_PURPOSE_5 EFUSE_BLK0 108 4
99 SEC_DPA_LEVEL EFUSE_BLK0 112 2
100 CRYPT_DPA_ENABLE EFUSE_BLK0 114 1
101 SECURE_BOOT_EN EFUSE_BLK0 116 1
102 SECURE_BOOT_AGGRESSIVE_REVOKE EFUSE_BLK0 117 1
103 FLASH_TPUW EFUSE_BLK0 124 4
104 DIS_DOWNLOAD_MODE EFUSE_BLK0 128 1
105 DIS_DIRECT_BOOT EFUSE_BLK0 129 1
106 DIS_USB_SERIAL_JTAG_ROM_PRINT EFUSE_BLK0 130 1
107 DIS_USB_SERIAL_JTAG_DOWNLOAD_MODE EFUSE_BLK0 132 1
108 ENABLE_SECURITY_DOWNLOAD EFUSE_BLK0 133 1
109 UART_PRINT_CONTROL EFUSE_BLK0 134 2
110 FORCE_SEND_RESUME EFUSE_BLK0 141 1
111 SECURE_VERSION EFUSE_BLK0 142 16
112 SECURE_BOOT_DISABLE_FAST_WAKE EFUSE_BLK0 158 1
113 DISABLE_WAFER_VERSION_MAJOR EFUSE_BLK0 160 1
114 DISABLE_BLK_VERSION_MAJOR EFUSE_BLK0 161 1
115 MAC EFUSE_BLK1 0 8
116 MAC EFUSE_BLK1 8 8
117 MAC EFUSE_BLK1 16 8
118 MAC EFUSE_BLK1 24 8
119 MAC EFUSE_BLK1 32 8
120 MAC EFUSE_BLK1 40 8
121 MAC_EXT EFUSE_BLK1 48 16
122 WAFER_VERSION_MINOR EFUSE_BLK1 114 4
123 WAFER_VERSION_MAJOR EFUSE_BLK1 118 2
124 PKG_VERSION EFUSE_BLK1 120 3
125 BLK_VERSION_MINOR EFUSE_BLK1 123 3
126 BLK_VERSION_MAJOR EFUSE_BLK1 126 2
127 FLASH_CAP EFUSE_BLK1 128 3
128 FLASH_TEMP EFUSE_BLK1 131 2
129 FLASH_VENDOR EFUSE_BLK1 133 3
130 SYS_DATA_PART2 EFUSE_BLK10 0 256
131 OPTIONAL_UNIQUE_ID EFUSE_BLK2 0 128
132 USER_DATA EFUSE_BLK3 0 256
133 USER_DATA.MAC_CUSTOM EFUSE_BLK3 200 48
134 KEY0 EFUSE_BLK4 0 256
135 KEY1 EFUSE_BLK5 0 256
136 KEY2 EFUSE_BLK6 0 256
137 KEY3 EFUSE_BLK7 0 256
138 KEY4 EFUSE_BLK8 0 256
139 KEY5 EFUSE_BLK9 0 256
1 WR_DIS EFUSE_BLK0 0 32
2 WR_DIS.RD_DIS EFUSE_BLK0 0 1
3 WR_DIS.CRYPT_DPA_ENABLE EFUSE_BLK0 1 1
4 WR_DIS.SWAP_UART_SDIO_EN EFUSE_BLK0 2 1
5 WR_DIS.DIS_ICACHE EFUSE_BLK0 2 1
6 WR_DIS.DIS_USB_JTAG EFUSE_BLK0 2 1
7 WR_DIS.DIS_DOWNLOAD_ICACHE EFUSE_BLK0 2 1
8 WR_DIS.DIS_USB_SERIAL_JTAG EFUSE_BLK0 2 1
9 WR_DIS.DIS_FORCE_DOWNLOAD EFUSE_BLK0 2 1
10 WR_DIS.DIS_TWAI EFUSE_BLK0 2 1
11 WR_DIS.JTAG_SEL_ENABLE EFUSE_BLK0 2 1
12 WR_DIS.DIS_PAD_JTAG EFUSE_BLK0 2 1
13 WR_DIS.DIS_DOWNLOAD_MANUAL_ENCRYPT EFUSE_BLK0 2 1
14 WR_DIS.WDT_DELAY_SEL EFUSE_BLK0 3 1
15 WR_DIS.SPI_BOOT_CRYPT_CNT EFUSE_BLK0 4 1
16 WR_DIS.SECURE_BOOT_KEY_REVOKE0 EFUSE_BLK0 5 1
17 WR_DIS.SECURE_BOOT_KEY_REVOKE1 EFUSE_BLK0 6 1
18 WR_DIS.SECURE_BOOT_KEY_REVOKE2 EFUSE_BLK0 7 1
19 WR_DIS.KEY_PURPOSE_0 EFUSE_BLK0 8 1
20 WR_DIS.KEY_PURPOSE_1 EFUSE_BLK0 9 1
21 WR_DIS.KEY_PURPOSE_2 EFUSE_BLK0 10 1
22 WR_DIS.KEY_PURPOSE_3 EFUSE_BLK0 11 1
23 WR_DIS.KEY_PURPOSE_4 EFUSE_BLK0 12 1
24 WR_DIS.KEY_PURPOSE_5 EFUSE_BLK0 13 1
25 WR_DIS.SEC_DPA_LEVEL EFUSE_BLK0 14 1
26 WR_DIS.SECURE_BOOT_EN EFUSE_BLK0 15 1
27 WR_DIS.SECURE_BOOT_AGGRESSIVE_REVOKE EFUSE_BLK0 16 1
28 WR_DIS.SPI_DOWNLOAD_MSPI_DIS EFUSE_BLK0 17 1
29 WR_DIS.FLASH_TPUW EFUSE_BLK0 18 1
30 WR_DIS.DIS_DOWNLOAD_MODE EFUSE_BLK0 18 1
31 WR_DIS.DIS_DIRECT_BOOT EFUSE_BLK0 18 1
32 WR_DIS.DIS_USB_SERIAL_JTAG_ROM_PRINT EFUSE_BLK0 18 1
33 WR_DIS.DIS_USB_SERIAL_JTAG_DOWNLOAD_MODE EFUSE_BLK0 18 1
34 WR_DIS.ENABLE_SECURITY_DOWNLOAD EFUSE_BLK0 18 1
35 WR_DIS.UART_PRINT_CONTROL EFUSE_BLK0 18 1
36 WR_DIS.FORCE_SEND_RESUME EFUSE_BLK0 18 1
37 WR_DIS.SECURE_VERSION EFUSE_BLK0 18 1
38 WR_DIS.SECURE_BOOT_DISABLE_FAST_WAKE EFUSE_BLK0 19 1
39 WR_DIS.DISABLE_WAFER_VERSION_MAJOR EFUSE_BLK0 19 1
40 WR_DIS.DISABLE_BLK_VERSION_MAJOR EFUSE_BLK0 19 1
41 WR_DIS.BLK1 EFUSE_BLK0 20 1
42 WR_DIS.MAC EFUSE_BLK0 20 1
43 WR_DIS.MAC_EXT EFUSE_BLK0 20 1
44 WR_DIS.WAFER_VERSION_MINOR EFUSE_BLK0 20 1
45 WR_DIS.WAFER_VERSION_MAJOR EFUSE_BLK0 20 1
46 WR_DIS.PKG_VERSION EFUSE_BLK0 20 1
47 WR_DIS.BLK_VERSION_MINOR EFUSE_BLK0 20 1
48 WR_DIS.BLK_VERSION_MAJOR EFUSE_BLK0 20 1
49 WR_DIS.FLASH_CAP EFUSE_BLK0 20 1
50 WR_DIS.FLASH_TEMP EFUSE_BLK0 20 1
51 WR_DIS.FLASH_VENDOR EFUSE_BLK0 20 1
52 WR_DIS.SYS_DATA_PART1 EFUSE_BLK0 21 1
53 WR_DIS.OPTIONAL_UNIQUE_ID EFUSE_BLK0 21 1
54 WR_DIS.BLOCK_USR_DATA EFUSE_BLK0 22 1
55 WR_DIS.CUSTOM_MAC EFUSE_BLK0 22 1
56 WR_DIS.BLOCK_KEY0 EFUSE_BLK0 23 1
57 WR_DIS.BLOCK_KEY1 EFUSE_BLK0 24 1
58 WR_DIS.BLOCK_KEY2 EFUSE_BLK0 25 1
59 WR_DIS.BLOCK_KEY3 EFUSE_BLK0 26 1
60 WR_DIS.BLOCK_KEY4 EFUSE_BLK0 27 1
61 WR_DIS.BLOCK_KEY5 EFUSE_BLK0 28 1
62 WR_DIS.BLOCK_SYS_DATA2 EFUSE_BLK0 29 1
63 WR_DIS.USB_EXCHG_PINS EFUSE_BLK0 30 1
64 WR_DIS.VDD_SPI_AS_GPIO EFUSE_BLK0 30 1
65 WR_DIS.SOFT_DIS_JTAG EFUSE_BLK0 31 1
66 RD_DIS EFUSE_BLK0 32 7
67 RD_DIS.BLOCK_KEY0 EFUSE_BLK0 32 1
68 RD_DIS.BLOCK_KEY1 EFUSE_BLK0 33 1
69 RD_DIS.BLOCK_KEY2 EFUSE_BLK0 34 1
70 RD_DIS.BLOCK_KEY3 EFUSE_BLK0 35 1
71 RD_DIS.BLOCK_KEY4 EFUSE_BLK0 36 1
72 RD_DIS.BLOCK_KEY5 EFUSE_BLK0 37 1
73 RD_DIS.BLOCK_SYS_DATA2 EFUSE_BLK0 38 1
74 SWAP_UART_SDIO_EN EFUSE_BLK0 39 1
75 DIS_ICACHE EFUSE_BLK0 40 1
76 DIS_USB_JTAG EFUSE_BLK0 41 1
77 DIS_DOWNLOAD_ICACHE EFUSE_BLK0 42 1
78 DIS_USB_SERIAL_JTAG EFUSE_BLK0 43 1
79 DIS_FORCE_DOWNLOAD EFUSE_BLK0 44 1
80 SPI_DOWNLOAD_MSPI_DIS EFUSE_BLK0 45 1
81 DIS_TWAI EFUSE_BLK0 46 1
82 JTAG_SEL_ENABLE EFUSE_BLK0 47 1
83 SOFT_DIS_JTAG EFUSE_BLK0 48 3
84 DIS_PAD_JTAG EFUSE_BLK0 51 1
85 DIS_DOWNLOAD_MANUAL_ENCRYPT EFUSE_BLK0 52 1
86 USB_EXCHG_PINS EFUSE_BLK0 57 1
87 VDD_SPI_AS_GPIO EFUSE_BLK0 58 1
88 WDT_DELAY_SEL EFUSE_BLK0 80 2
89 SPI_BOOT_CRYPT_CNT EFUSE_BLK0 82 3
90 SECURE_BOOT_KEY_REVOKE0 EFUSE_BLK0 85 1
91 SECURE_BOOT_KEY_REVOKE1 EFUSE_BLK0 86 1
92 SECURE_BOOT_KEY_REVOKE2 EFUSE_BLK0 87 1
93 KEY_PURPOSE_0 EFUSE_BLK0 88 4
94 KEY_PURPOSE_1 EFUSE_BLK0 92 4
95 KEY_PURPOSE_2 EFUSE_BLK0 96 4
96 KEY_PURPOSE_3 EFUSE_BLK0 100 4
97 KEY_PURPOSE_4 EFUSE_BLK0 104 4
98 KEY_PURPOSE_5 EFUSE_BLK0 108 4
99 SEC_DPA_LEVEL EFUSE_BLK0 112 2
100 CRYPT_DPA_ENABLE EFUSE_BLK0 114 1
101 SECURE_BOOT_EN EFUSE_BLK0 116 1
102 SECURE_BOOT_AGGRESSIVE_REVOKE EFUSE_BLK0 117 1
103 FLASH_TPUW EFUSE_BLK0 124 4
104 DIS_DOWNLOAD_MODE EFUSE_BLK0 128 1
105 DIS_DIRECT_BOOT EFUSE_BLK0 129 1
106 DIS_USB_SERIAL_JTAG_ROM_PRINT EFUSE_BLK0 130 1
107 DIS_USB_SERIAL_JTAG_DOWNLOAD_MODE EFUSE_BLK0 132 1
108 ENABLE_SECURITY_DOWNLOAD EFUSE_BLK0 133 1
109 UART_PRINT_CONTROL EFUSE_BLK0 134 2
110 FORCE_SEND_RESUME EFUSE_BLK0 141 1
111 SECURE_VERSION EFUSE_BLK0 142 16
112 SECURE_BOOT_DISABLE_FAST_WAKE EFUSE_BLK0 158 1
113 DISABLE_WAFER_VERSION_MAJOR EFUSE_BLK0 160 1
114 DISABLE_BLK_VERSION_MAJOR EFUSE_BLK0 161 1
115 MAC EFUSE_BLK1 0 8
116 MAC EFUSE_BLK1 8 8
117 MAC EFUSE_BLK1 16 8
118 MAC EFUSE_BLK1 24 8
119 MAC EFUSE_BLK1 32 8
120 MAC EFUSE_BLK1 40 8
121 MAC_EXT EFUSE_BLK1 48 16
122 WAFER_VERSION_MINOR EFUSE_BLK1 114 4
123 WAFER_VERSION_MAJOR EFUSE_BLK1 118 2
124 PKG_VERSION EFUSE_BLK1 120 3
125 BLK_VERSION_MINOR EFUSE_BLK1 123 3
126 BLK_VERSION_MAJOR EFUSE_BLK1 126 2
127 FLASH_CAP EFUSE_BLK1 128 3
128 FLASH_TEMP EFUSE_BLK1 131 2
129 FLASH_VENDOR EFUSE_BLK1 133 3
130 SYS_DATA_PART2 EFUSE_BLK10 0 256
131 OPTIONAL_UNIQUE_ID EFUSE_BLK2 0 128
132 USER_DATA EFUSE_BLK3 0 256
133 USER_DATA.MAC_CUSTOM EFUSE_BLK3 200 48
134 KEY0 EFUSE_BLK4 0 256
135 KEY1 EFUSE_BLK5 0 256
136 KEY2 EFUSE_BLK6 0 256
137 KEY3 EFUSE_BLK7 0 256
138 KEY4 EFUSE_BLK8 0 256
139 KEY5 EFUSE_BLK9 0 256
Used bits in efuse table:
EFUSE_BLK0
[0 31] [0 2] [2 2] ... [30 38] [32 52] [57 58] [80 114] [116 117] [124 130] [132 135] [141 158] [160 161]
EFUSE_BLK1
[0 63] [114 135]
EFUSE_BLK10
[0 255]
EFUSE_BLK2
[0 127]
EFUSE_BLK3
[0 255] [200 247]
EFUSE_BLK4
[0 255]
EFUSE_BLK5
[0 255]
EFUSE_BLK6
[0 255]
EFUSE_BLK7
[0 255]
EFUSE_BLK8
[0 255]
EFUSE_BLK9
[0 255]
EFUSE_BLK0
[0 31] [0 2] [2 2] ... [30 38] [32 52] [57 58] [80 114] [116 117] [124 130] [132 135] [141 158] [160 161]
EFUSE_BLK1
[0 63] [114 135]
EFUSE_BLK10
[0 255]
EFUSE_BLK2
[0 127]
EFUSE_BLK3
[0 255] [200 247]
EFUSE_BLK4
[0 255]
EFUSE_BLK5
[0 255]
EFUSE_BLK6
[0 255]
EFUSE_BLK7
[0 255]
EFUSE_BLK8
[0 255]
EFUSE_BLK9
[0 255]
Note: Not printed ranges are free for using. (bits in EFUSE_BLK0 are reserved for Espressif)

View File

@ -8,170 +8,170 @@
Verifying efuse table...
Sorted efuse table:
# field_name efuse_block bit_start bit_count
1 WR_DIS EFUSE_BLK0 0 32
2 WR_DIS.RD_DIS EFUSE_BLK0 0 1
3 WR_DIS.DIS_ICACHE EFUSE_BLK0 2 1
4 WR_DIS.DIS_USB_JTAG EFUSE_BLK0 2 1
5 WR_DIS.POWERGLITCH_EN EFUSE_BLK0 2 1
6 WR_DIS.DIS_FORCE_DOWNLOAD EFUSE_BLK0 2 1
7 WR_DIS.SPI_DOWNLOAD_MSPI_DIS EFUSE_BLK0 2 1
8 WR_DIS.DIS_TWAI EFUSE_BLK0 2 1
9 WR_DIS.JTAG_SEL_ENABLE EFUSE_BLK0 2 1
10 WR_DIS.DIS_PAD_JTAG EFUSE_BLK0 2 1
11 WR_DIS.DIS_DOWNLOAD_MANUAL_ENCRYPT EFUSE_BLK0 2 1
12 WR_DIS.WDT_DELAY_SEL EFUSE_BLK0 3 1
13 WR_DIS.SPI_BOOT_CRYPT_CNT EFUSE_BLK0 4 1
14 WR_DIS.SECURE_BOOT_KEY_REVOKE0 EFUSE_BLK0 5 1
15 WR_DIS.SECURE_BOOT_KEY_REVOKE1 EFUSE_BLK0 6 1
16 WR_DIS.SECURE_BOOT_KEY_REVOKE2 EFUSE_BLK0 7 1
17 WR_DIS.KEY_PURPOSE_0 EFUSE_BLK0 8 1
18 WR_DIS.KEY_PURPOSE_1 EFUSE_BLK0 9 1
19 WR_DIS.KEY_PURPOSE_2 EFUSE_BLK0 10 1
20 WR_DIS.KEY_PURPOSE_3 EFUSE_BLK0 11 1
21 WR_DIS.KEY_PURPOSE_4 EFUSE_BLK0 12 1
22 WR_DIS.KEY_PURPOSE_5 EFUSE_BLK0 13 1
23 WR_DIS.SEC_DPA_LEVEL EFUSE_BLK0 14 1
24 WR_DIS.CRYPT_DPA_ENABLE EFUSE_BLK0 14 1
25 WR_DIS.SECURE_BOOT_EN EFUSE_BLK0 15 1
26 WR_DIS.SECURE_BOOT_AGGRESSIVE_REVOKE EFUSE_BLK0 16 1
27 WR_DIS.ECDSA_FORCE_USE_HARDWARE_K EFUSE_BLK0 17 1
28 WR_DIS.FLASH_TPUW EFUSE_BLK0 18 1
29 WR_DIS.DIS_DOWNLOAD_MODE EFUSE_BLK0 18 1
30 WR_DIS.DIS_DIRECT_BOOT EFUSE_BLK0 18 1
31 WR_DIS.DIS_USB_SERIAL_JTAG_ROM_PRINT EFUSE_BLK0 18 1
32 WR_DIS.DIS_USB_SERIAL_JTAG_DOWNLOAD_MODE EFUSE_BLK0 18 1
33 WR_DIS.ENABLE_SECURITY_DOWNLOAD EFUSE_BLK0 18 1
34 WR_DIS.UART_PRINT_CONTROL EFUSE_BLK0 18 1
35 WR_DIS.FORCE_SEND_RESUME EFUSE_BLK0 18 1
36 WR_DIS.SECURE_VERSION EFUSE_BLK0 18 1
37 WR_DIS.SECURE_BOOT_DISABLE_FAST_WAKE EFUSE_BLK0 18 1
38 WR_DIS.HYS_EN_PAD0 EFUSE_BLK0 19 1
39 WR_DIS.HYS_EN_PAD1 EFUSE_BLK0 19 1
40 WR_DIS.BLK1 EFUSE_BLK0 20 1
41 WR_DIS.MAC EFUSE_BLK0 20 1
42 WR_DIS.MAC_EXT EFUSE_BLK0 20 1
43 WR_DIS.WAFER_VERSION_MINOR EFUSE_BLK0 20 1
44 WR_DIS.WAFER_VERSION_MAJOR EFUSE_BLK0 20 1
45 WR_DIS.DISABLE_WAFER_VERSION_MAJOR EFUSE_BLK0 20 1
46 WR_DIS.FLASH_CAP EFUSE_BLK0 20 1
47 WR_DIS.FLASH_TEMP EFUSE_BLK0 20 1
48 WR_DIS.FLASH_VENDOR EFUSE_BLK0 20 1
49 WR_DIS.PKG_VERSION EFUSE_BLK0 20 1
50 WR_DIS.SYS_DATA_PART1 EFUSE_BLK0 21 1
51 WR_DIS.OPTIONAL_UNIQUE_ID EFUSE_BLK0 21 1
52 WR_DIS.BLK_VERSION_MINOR EFUSE_BLK0 21 1
53 WR_DIS.BLK_VERSION_MAJOR EFUSE_BLK0 21 1
54 WR_DIS.DISABLE_BLK_VERSION_MAJOR EFUSE_BLK0 21 1
55 WR_DIS.BLOCK_USR_DATA EFUSE_BLK0 22 1
56 WR_DIS.CUSTOM_MAC EFUSE_BLK0 22 1
57 WR_DIS.BLOCK_KEY0 EFUSE_BLK0 23 1
58 WR_DIS.BLOCK_KEY1 EFUSE_BLK0 24 1
59 WR_DIS.BLOCK_KEY2 EFUSE_BLK0 25 1
60 WR_DIS.BLOCK_KEY3 EFUSE_BLK0 26 1
61 WR_DIS.BLOCK_KEY4 EFUSE_BLK0 27 1
62 WR_DIS.BLOCK_KEY5 EFUSE_BLK0 28 1
63 WR_DIS.BLOCK_SYS_DATA2 EFUSE_BLK0 29 1
64 WR_DIS.USB_EXCHG_PINS EFUSE_BLK0 30 1
65 WR_DIS.VDD_SPI_AS_GPIO EFUSE_BLK0 30 1
66 WR_DIS.SOFT_DIS_JTAG EFUSE_BLK0 31 1
67 RD_DIS EFUSE_BLK0 32 7
68 RD_DIS.BLOCK_KEY0 EFUSE_BLK0 32 1
69 RD_DIS.BLOCK_KEY1 EFUSE_BLK0 33 1
70 RD_DIS.BLOCK_KEY2 EFUSE_BLK0 34 1
71 RD_DIS.BLOCK_KEY3 EFUSE_BLK0 35 1
72 RD_DIS.BLOCK_KEY4 EFUSE_BLK0 36 1
73 RD_DIS.BLOCK_KEY5 EFUSE_BLK0 37 1
74 RD_DIS.BLOCK_SYS_DATA2 EFUSE_BLK0 38 1
75 DIS_ICACHE EFUSE_BLK0 40 1
76 DIS_USB_JTAG EFUSE_BLK0 41 1
77 POWERGLITCH_EN EFUSE_BLK0 42 1
78 DIS_FORCE_DOWNLOAD EFUSE_BLK0 44 1
79 SPI_DOWNLOAD_MSPI_DIS EFUSE_BLK0 45 1
80 DIS_TWAI EFUSE_BLK0 46 1
81 JTAG_SEL_ENABLE EFUSE_BLK0 47 1
82 SOFT_DIS_JTAG EFUSE_BLK0 48 3
83 DIS_PAD_JTAG EFUSE_BLK0 51 1
84 DIS_DOWNLOAD_MANUAL_ENCRYPT EFUSE_BLK0 52 1
85 USB_EXCHG_PINS EFUSE_BLK0 57 1
86 VDD_SPI_AS_GPIO EFUSE_BLK0 58 1
87 WDT_DELAY_SEL EFUSE_BLK0 80 2
88 SPI_BOOT_CRYPT_CNT EFUSE_BLK0 82 3
89 SECURE_BOOT_KEY_REVOKE0 EFUSE_BLK0 85 1
90 SECURE_BOOT_KEY_REVOKE1 EFUSE_BLK0 86 1
91 SECURE_BOOT_KEY_REVOKE2 EFUSE_BLK0 87 1
92 KEY_PURPOSE_0 EFUSE_BLK0 88 4
93 KEY_PURPOSE_1 EFUSE_BLK0 92 4
94 KEY_PURPOSE_2 EFUSE_BLK0 96 4
95 KEY_PURPOSE_3 EFUSE_BLK0 100 4
96 KEY_PURPOSE_4 EFUSE_BLK0 104 4
97 KEY_PURPOSE_5 EFUSE_BLK0 108 4
98 SEC_DPA_LEVEL EFUSE_BLK0 112 2
99 ECDSA_FORCE_USE_HARDWARE_K EFUSE_BLK0 114 1
100 CRYPT_DPA_ENABLE EFUSE_BLK0 115 1
101 SECURE_BOOT_EN EFUSE_BLK0 116 1
102 SECURE_BOOT_AGGRESSIVE_REVOKE EFUSE_BLK0 117 1
103 FLASH_TPUW EFUSE_BLK0 124 4
104 DIS_DOWNLOAD_MODE EFUSE_BLK0 128 1
105 DIS_DIRECT_BOOT EFUSE_BLK0 129 1
106 DIS_USB_SERIAL_JTAG_ROM_PRINT EFUSE_BLK0 130 1
107 DIS_USB_SERIAL_JTAG_DOWNLOAD_MODE EFUSE_BLK0 132 1
108 ENABLE_SECURITY_DOWNLOAD EFUSE_BLK0 133 1
109 UART_PRINT_CONTROL EFUSE_BLK0 134 2
110 FORCE_SEND_RESUME EFUSE_BLK0 136 1
111 SECURE_VERSION EFUSE_BLK0 137 16
112 SECURE_BOOT_DISABLE_FAST_WAKE EFUSE_BLK0 153 1
113 HYS_EN_PAD0 EFUSE_BLK0 154 6
114 HYS_EN_PAD1 EFUSE_BLK0 160 22
115 MAC EFUSE_BLK1 0 8
116 MAC EFUSE_BLK1 8 8
117 MAC EFUSE_BLK1 16 8
118 MAC EFUSE_BLK1 24 8
119 MAC EFUSE_BLK1 32 8
120 MAC EFUSE_BLK1 40 8
121 MAC_EXT EFUSE_BLK1 48 16
122 WAFER_VERSION_MINOR EFUSE_BLK1 114 3
123 WAFER_VERSION_MAJOR EFUSE_BLK1 117 2
124 DISABLE_WAFER_VERSION_MAJOR EFUSE_BLK1 119 1
125 FLASH_CAP EFUSE_BLK1 120 3
126 FLASH_TEMP EFUSE_BLK1 123 2
127 FLASH_VENDOR EFUSE_BLK1 125 3
128 PKG_VERSION EFUSE_BLK1 128 3
129 SYS_DATA_PART2 EFUSE_BLK10 0 256
130 OPTIONAL_UNIQUE_ID EFUSE_BLK2 0 128
131 BLK_VERSION_MINOR EFUSE_BLK2 130 3
132 BLK_VERSION_MAJOR EFUSE_BLK2 133 2
133 DISABLE_BLK_VERSION_MAJOR EFUSE_BLK2 135 1
134 USER_DATA EFUSE_BLK3 0 256
135 USER_DATA.MAC_CUSTOM EFUSE_BLK3 200 48
136 KEY0 EFUSE_BLK4 0 256
137 KEY1 EFUSE_BLK5 0 256
138 KEY2 EFUSE_BLK6 0 256
139 KEY3 EFUSE_BLK7 0 256
140 KEY4 EFUSE_BLK8 0 256
141 KEY5 EFUSE_BLK9 0 256
1 WR_DIS EFUSE_BLK0 0 32
2 WR_DIS.RD_DIS EFUSE_BLK0 0 1
3 WR_DIS.DIS_ICACHE EFUSE_BLK0 2 1
4 WR_DIS.DIS_USB_JTAG EFUSE_BLK0 2 1
5 WR_DIS.POWERGLITCH_EN EFUSE_BLK0 2 1
6 WR_DIS.DIS_FORCE_DOWNLOAD EFUSE_BLK0 2 1
7 WR_DIS.SPI_DOWNLOAD_MSPI_DIS EFUSE_BLK0 2 1
8 WR_DIS.DIS_TWAI EFUSE_BLK0 2 1
9 WR_DIS.JTAG_SEL_ENABLE EFUSE_BLK0 2 1
10 WR_DIS.DIS_PAD_JTAG EFUSE_BLK0 2 1
11 WR_DIS.DIS_DOWNLOAD_MANUAL_ENCRYPT EFUSE_BLK0 2 1
12 WR_DIS.WDT_DELAY_SEL EFUSE_BLK0 3 1
13 WR_DIS.SPI_BOOT_CRYPT_CNT EFUSE_BLK0 4 1
14 WR_DIS.SECURE_BOOT_KEY_REVOKE0 EFUSE_BLK0 5 1
15 WR_DIS.SECURE_BOOT_KEY_REVOKE1 EFUSE_BLK0 6 1
16 WR_DIS.SECURE_BOOT_KEY_REVOKE2 EFUSE_BLK0 7 1
17 WR_DIS.KEY_PURPOSE_0 EFUSE_BLK0 8 1
18 WR_DIS.KEY_PURPOSE_1 EFUSE_BLK0 9 1
19 WR_DIS.KEY_PURPOSE_2 EFUSE_BLK0 10 1
20 WR_DIS.KEY_PURPOSE_3 EFUSE_BLK0 11 1
21 WR_DIS.KEY_PURPOSE_4 EFUSE_BLK0 12 1
22 WR_DIS.KEY_PURPOSE_5 EFUSE_BLK0 13 1
23 WR_DIS.SEC_DPA_LEVEL EFUSE_BLK0 14 1
24 WR_DIS.CRYPT_DPA_ENABLE EFUSE_BLK0 14 1
25 WR_DIS.SECURE_BOOT_EN EFUSE_BLK0 15 1
26 WR_DIS.SECURE_BOOT_AGGRESSIVE_REVOKE EFUSE_BLK0 16 1
27 WR_DIS.ECDSA_FORCE_USE_HARDWARE_K EFUSE_BLK0 17 1
28 WR_DIS.FLASH_TPUW EFUSE_BLK0 18 1
29 WR_DIS.DIS_DOWNLOAD_MODE EFUSE_BLK0 18 1
30 WR_DIS.DIS_DIRECT_BOOT EFUSE_BLK0 18 1
31 WR_DIS.DIS_USB_SERIAL_JTAG_ROM_PRINT EFUSE_BLK0 18 1
32 WR_DIS.DIS_USB_SERIAL_JTAG_DOWNLOAD_MODE EFUSE_BLK0 18 1
33 WR_DIS.ENABLE_SECURITY_DOWNLOAD EFUSE_BLK0 18 1
34 WR_DIS.UART_PRINT_CONTROL EFUSE_BLK0 18 1
35 WR_DIS.FORCE_SEND_RESUME EFUSE_BLK0 18 1
36 WR_DIS.SECURE_VERSION EFUSE_BLK0 18 1
37 WR_DIS.SECURE_BOOT_DISABLE_FAST_WAKE EFUSE_BLK0 18 1
38 WR_DIS.HYS_EN_PAD0 EFUSE_BLK0 19 1
39 WR_DIS.HYS_EN_PAD1 EFUSE_BLK0 19 1
40 WR_DIS.BLK1 EFUSE_BLK0 20 1
41 WR_DIS.MAC EFUSE_BLK0 20 1
42 WR_DIS.MAC_EXT EFUSE_BLK0 20 1
43 WR_DIS.WAFER_VERSION_MINOR EFUSE_BLK0 20 1
44 WR_DIS.WAFER_VERSION_MAJOR EFUSE_BLK0 20 1
45 WR_DIS.DISABLE_WAFER_VERSION_MAJOR EFUSE_BLK0 20 1
46 WR_DIS.FLASH_CAP EFUSE_BLK0 20 1
47 WR_DIS.FLASH_TEMP EFUSE_BLK0 20 1
48 WR_DIS.FLASH_VENDOR EFUSE_BLK0 20 1
49 WR_DIS.PKG_VERSION EFUSE_BLK0 20 1
50 WR_DIS.SYS_DATA_PART1 EFUSE_BLK0 21 1
51 WR_DIS.OPTIONAL_UNIQUE_ID EFUSE_BLK0 21 1
52 WR_DIS.BLK_VERSION_MINOR EFUSE_BLK0 21 1
53 WR_DIS.BLK_VERSION_MAJOR EFUSE_BLK0 21 1
54 WR_DIS.DISABLE_BLK_VERSION_MAJOR EFUSE_BLK0 21 1
55 WR_DIS.BLOCK_USR_DATA EFUSE_BLK0 22 1
56 WR_DIS.CUSTOM_MAC EFUSE_BLK0 22 1
57 WR_DIS.BLOCK_KEY0 EFUSE_BLK0 23 1
58 WR_DIS.BLOCK_KEY1 EFUSE_BLK0 24 1
59 WR_DIS.BLOCK_KEY2 EFUSE_BLK0 25 1
60 WR_DIS.BLOCK_KEY3 EFUSE_BLK0 26 1
61 WR_DIS.BLOCK_KEY4 EFUSE_BLK0 27 1
62 WR_DIS.BLOCK_KEY5 EFUSE_BLK0 28 1
63 WR_DIS.BLOCK_SYS_DATA2 EFUSE_BLK0 29 1
64 WR_DIS.USB_EXCHG_PINS EFUSE_BLK0 30 1
65 WR_DIS.VDD_SPI_AS_GPIO EFUSE_BLK0 30 1
66 WR_DIS.SOFT_DIS_JTAG EFUSE_BLK0 31 1
67 RD_DIS EFUSE_BLK0 32 7
68 RD_DIS.BLOCK_KEY0 EFUSE_BLK0 32 1
69 RD_DIS.BLOCK_KEY1 EFUSE_BLK0 33 1
70 RD_DIS.BLOCK_KEY2 EFUSE_BLK0 34 1
71 RD_DIS.BLOCK_KEY3 EFUSE_BLK0 35 1
72 RD_DIS.BLOCK_KEY4 EFUSE_BLK0 36 1
73 RD_DIS.BLOCK_KEY5 EFUSE_BLK0 37 1
74 RD_DIS.BLOCK_SYS_DATA2 EFUSE_BLK0 38 1
75 DIS_ICACHE EFUSE_BLK0 40 1
76 DIS_USB_JTAG EFUSE_BLK0 41 1
77 POWERGLITCH_EN EFUSE_BLK0 42 1
78 DIS_FORCE_DOWNLOAD EFUSE_BLK0 44 1
79 SPI_DOWNLOAD_MSPI_DIS EFUSE_BLK0 45 1
80 DIS_TWAI EFUSE_BLK0 46 1
81 JTAG_SEL_ENABLE EFUSE_BLK0 47 1
82 SOFT_DIS_JTAG EFUSE_BLK0 48 3
83 DIS_PAD_JTAG EFUSE_BLK0 51 1
84 DIS_DOWNLOAD_MANUAL_ENCRYPT EFUSE_BLK0 52 1
85 USB_EXCHG_PINS EFUSE_BLK0 57 1
86 VDD_SPI_AS_GPIO EFUSE_BLK0 58 1
87 WDT_DELAY_SEL EFUSE_BLK0 80 2
88 SPI_BOOT_CRYPT_CNT EFUSE_BLK0 82 3
89 SECURE_BOOT_KEY_REVOKE0 EFUSE_BLK0 85 1
90 SECURE_BOOT_KEY_REVOKE1 EFUSE_BLK0 86 1
91 SECURE_BOOT_KEY_REVOKE2 EFUSE_BLK0 87 1
92 KEY_PURPOSE_0 EFUSE_BLK0 88 4
93 KEY_PURPOSE_1 EFUSE_BLK0 92 4
94 KEY_PURPOSE_2 EFUSE_BLK0 96 4
95 KEY_PURPOSE_3 EFUSE_BLK0 100 4
96 KEY_PURPOSE_4 EFUSE_BLK0 104 4
97 KEY_PURPOSE_5 EFUSE_BLK0 108 4
98 SEC_DPA_LEVEL EFUSE_BLK0 112 2
99 ECDSA_FORCE_USE_HARDWARE_K EFUSE_BLK0 114 1
100 CRYPT_DPA_ENABLE EFUSE_BLK0 115 1
101 SECURE_BOOT_EN EFUSE_BLK0 116 1
102 SECURE_BOOT_AGGRESSIVE_REVOKE EFUSE_BLK0 117 1
103 FLASH_TPUW EFUSE_BLK0 124 4
104 DIS_DOWNLOAD_MODE EFUSE_BLK0 128 1
105 DIS_DIRECT_BOOT EFUSE_BLK0 129 1
106 DIS_USB_SERIAL_JTAG_ROM_PRINT EFUSE_BLK0 130 1
107 DIS_USB_SERIAL_JTAG_DOWNLOAD_MODE EFUSE_BLK0 132 1
108 ENABLE_SECURITY_DOWNLOAD EFUSE_BLK0 133 1
109 UART_PRINT_CONTROL EFUSE_BLK0 134 2
110 FORCE_SEND_RESUME EFUSE_BLK0 136 1
111 SECURE_VERSION EFUSE_BLK0 137 16
112 SECURE_BOOT_DISABLE_FAST_WAKE EFUSE_BLK0 153 1
113 HYS_EN_PAD0 EFUSE_BLK0 154 6
114 HYS_EN_PAD1 EFUSE_BLK0 160 22
115 MAC EFUSE_BLK1 0 8
116 MAC EFUSE_BLK1 8 8
117 MAC EFUSE_BLK1 16 8
118 MAC EFUSE_BLK1 24 8
119 MAC EFUSE_BLK1 32 8
120 MAC EFUSE_BLK1 40 8
121 MAC_EXT EFUSE_BLK1 48 16
122 WAFER_VERSION_MINOR EFUSE_BLK1 114 3
123 WAFER_VERSION_MAJOR EFUSE_BLK1 117 2
124 DISABLE_WAFER_VERSION_MAJOR EFUSE_BLK1 119 1
125 FLASH_CAP EFUSE_BLK1 120 3
126 FLASH_TEMP EFUSE_BLK1 123 2
127 FLASH_VENDOR EFUSE_BLK1 125 3
128 PKG_VERSION EFUSE_BLK1 128 3
129 SYS_DATA_PART2 EFUSE_BLK10 0 256
130 OPTIONAL_UNIQUE_ID EFUSE_BLK2 0 128
131 BLK_VERSION_MINOR EFUSE_BLK2 130 3
132 BLK_VERSION_MAJOR EFUSE_BLK2 133 2
133 DISABLE_BLK_VERSION_MAJOR EFUSE_BLK2 135 1
134 USER_DATA EFUSE_BLK3 0 256
135 USER_DATA.MAC_CUSTOM EFUSE_BLK3 200 48
136 KEY0 EFUSE_BLK4 0 256
137 KEY1 EFUSE_BLK5 0 256
138 KEY2 EFUSE_BLK6 0 256
139 KEY3 EFUSE_BLK7 0 256
140 KEY4 EFUSE_BLK8 0 256
141 KEY5 EFUSE_BLK9 0 256
Used bits in efuse table:
EFUSE_BLK0
[0 31] [0 0] [2 2] ... [21 22] [22 30] [30 38] [32 38] [40 42] [44 52] [57 58] [80 117] [124 130] [132 181]
EFUSE_BLK1
[0 63] [114 130]
EFUSE_BLK10
[0 255]
EFUSE_BLK2
[0 127] [130 135]
EFUSE_BLK3
[0 255] [200 247]
EFUSE_BLK4
[0 255]
EFUSE_BLK5
[0 255]
EFUSE_BLK6
[0 255]
EFUSE_BLK7
[0 255]
EFUSE_BLK8
[0 255]
EFUSE_BLK9
[0 255]
EFUSE_BLK0
[0 31] [0 0] [2 2] ... [21 22] [22 30] [30 38] [32 38] [40 42] [44 52] [57 58] [80 117] [124 130] [132 181]
EFUSE_BLK1
[0 63] [114 130]
EFUSE_BLK10
[0 255]
EFUSE_BLK2
[0 127] [130 135]
EFUSE_BLK3
[0 255] [200 247]
EFUSE_BLK4
[0 255]
EFUSE_BLK5
[0 255]
EFUSE_BLK6
[0 255]
EFUSE_BLK7
[0 255]
EFUSE_BLK8
[0 255]
EFUSE_BLK9
[0 255]
Note: Not printed ranges are free for using. (bits in EFUSE_BLK0 are reserved for Espressif)

View File

@ -8,150 +8,150 @@
Verifying efuse table...
Sorted efuse table:
# field_name efuse_block bit_start bit_count
1 WR_DIS EFUSE_BLK0 0 32
2 WR_DIS.RD_DIS EFUSE_BLK0 0 1
3 WR_DIS.SPI_BOOT_CRYPT_CNT EFUSE_BLK0 4 1
4 WR_DIS.SECURE_BOOT_KEY_REVOKE0 EFUSE_BLK0 5 1
5 WR_DIS.SECURE_BOOT_KEY_REVOKE1 EFUSE_BLK0 6 1
6 WR_DIS.SECURE_BOOT_KEY_REVOKE2 EFUSE_BLK0 7 1
7 WR_DIS.KEY_PURPOSE_0 EFUSE_BLK0 8 1
8 WR_DIS.KEY_PURPOSE_1 EFUSE_BLK0 9 1
9 WR_DIS.KEY_PURPOSE_2 EFUSE_BLK0 10 1
10 WR_DIS.KEY_PURPOSE_3 EFUSE_BLK0 11 1
11 WR_DIS.KEY_PURPOSE_4 EFUSE_BLK0 12 1
12 WR_DIS.KEY_PURPOSE_5 EFUSE_BLK0 13 1
13 WR_DIS.SECURE_BOOT_EN EFUSE_BLK0 15 1
14 WR_DIS.BLK1 EFUSE_BLK0 20 1
15 WR_DIS.MAC EFUSE_BLK0 20 1
16 WR_DIS.MAC_EXT EFUSE_BLK0 20 1
17 WR_DIS.BLOCK_SYS_DATA1 EFUSE_BLK0 21 1
18 WR_DIS.BLOCK_USR_DATA EFUSE_BLK0 22 1
19 WR_DIS.BLOCK_KEY0 EFUSE_BLK0 23 1
20 WR_DIS.BLOCK_KEY1 EFUSE_BLK0 24 1
21 WR_DIS.BLOCK_KEY2 EFUSE_BLK0 25 1
22 WR_DIS.BLOCK_KEY3 EFUSE_BLK0 26 1
23 WR_DIS.BLOCK_KEY4 EFUSE_BLK0 27 1
24 WR_DIS.BLOCK_KEY5 EFUSE_BLK0 28 1
25 WR_DIS.BLOCK_SYS_DATA2 EFUSE_BLK0 29 1
26 RD_DIS EFUSE_BLK0 32 7
27 RD_DIS.BLOCK_KEY0 EFUSE_BLK0 32 1
28 RD_DIS.BLOCK_KEY1 EFUSE_BLK0 33 1
29 RD_DIS.BLOCK_KEY2 EFUSE_BLK0 34 1
30 RD_DIS.BLOCK_KEY3 EFUSE_BLK0 35 1
31 RD_DIS.BLOCK_KEY4 EFUSE_BLK0 36 1
32 RD_DIS.BLOCK_KEY5 EFUSE_BLK0 37 1
33 RD_DIS.BLOCK_SYS_DATA2 EFUSE_BLK0 38 1
34 USB_DEVICE_EXCHG_PINS EFUSE_BLK0 39 1
35 USB_OTG11_EXCHG_PINS EFUSE_BLK0 40 1
36 DIS_USB_JTAG EFUSE_BLK0 41 1
37 POWERGLITCH_EN EFUSE_BLK0 42 1
38 DIS_FORCE_DOWNLOAD EFUSE_BLK0 44 1
39 SPI_DOWNLOAD_MSPI_DIS EFUSE_BLK0 45 1
40 DIS_TWAI EFUSE_BLK0 46 1
41 JTAG_SEL_ENABLE EFUSE_BLK0 47 1
42 SOFT_DIS_JTAG EFUSE_BLK0 48 3
43 DIS_PAD_JTAG EFUSE_BLK0 51 1
44 DIS_DOWNLOAD_MANUAL_ENCRYPT EFUSE_BLK0 52 1
45 USB_PHY_SEL EFUSE_BLK0 57 1
46 KM_HUK_GEN_STATE_LOW EFUSE_BLK0 58 6
47 KM_HUK_GEN_STATE_HIGH EFUSE_BLK0 64 3
48 KM_RND_SWITCH_CYCLE EFUSE_BLK0 67 2
49 KM_DEPLOY_ONLY_ONCE EFUSE_BLK0 69 4
50 FORCE_USE_KEY_MANAGER_KEY EFUSE_BLK0 73 4
51 FORCE_DISABLE_SW_INIT_KEY EFUSE_BLK0 77 1
52 XTS_KEY_LENGTH_256 EFUSE_BLK0 78 1
53 WDT_DELAY_SEL EFUSE_BLK0 80 2
54 SPI_BOOT_CRYPT_CNT EFUSE_BLK0 82 3
55 SECURE_BOOT_KEY_REVOKE0 EFUSE_BLK0 85 1
56 SECURE_BOOT_KEY_REVOKE1 EFUSE_BLK0 86 1
57 SECURE_BOOT_KEY_REVOKE2 EFUSE_BLK0 87 1
58 KEY_PURPOSE_0 EFUSE_BLK0 88 4
59 KEY_PURPOSE_1 EFUSE_BLK0 92 4
60 KEY_PURPOSE_2 EFUSE_BLK0 96 4
61 KEY_PURPOSE_3 EFUSE_BLK0 100 4
62 KEY_PURPOSE_4 EFUSE_BLK0 104 4
63 KEY_PURPOSE_5 EFUSE_BLK0 108 4
64 SEC_DPA_LEVEL EFUSE_BLK0 112 2
65 ECDSA_ENABLE_SOFT_K EFUSE_BLK0 114 1
66 CRYPT_DPA_ENABLE EFUSE_BLK0 115 1
67 SECURE_BOOT_EN EFUSE_BLK0 116 1
68 SECURE_BOOT_AGGRESSIVE_REVOKE EFUSE_BLK0 117 1
69 FLASH_TYPE EFUSE_BLK0 119 1
70 FLASH_PAGE_SIZE EFUSE_BLK0 120 2
71 FLASH_ECC_EN EFUSE_BLK0 122 1
72 DIS_USB_OTG_DOWNLOAD_MODE EFUSE_BLK0 123 1
73 FLASH_TPUW EFUSE_BLK0 124 4
74 DIS_DOWNLOAD_MODE EFUSE_BLK0 128 1
75 DIS_DIRECT_BOOT EFUSE_BLK0 129 1
76 DIS_USB_SERIAL_JTAG_ROM_PRINT EFUSE_BLK0 130 1
77 LOCK_KM_KEY EFUSE_BLK0 131 1
78 DIS_USB_SERIAL_JTAG_DOWNLOAD_MODE EFUSE_BLK0 132 1
79 ENABLE_SECURITY_DOWNLOAD EFUSE_BLK0 133 1
80 UART_PRINT_CONTROL EFUSE_BLK0 134 2
81 FORCE_SEND_RESUME EFUSE_BLK0 136 1
82 SECURE_VERSION EFUSE_BLK0 137 16
83 SECURE_BOOT_DISABLE_FAST_WAKE EFUSE_BLK0 153 1
84 HYS_EN_PAD EFUSE_BLK0 154 1
85 DCDC_VSET EFUSE_BLK0 155 5
86 PXA0_TIEH_SEL_0 EFUSE_BLK0 160 2
87 PXA0_TIEH_SEL_1 EFUSE_BLK0 162 2
88 PXA0_TIEH_SEL_2 EFUSE_BLK0 164 2
89 PXA0_TIEH_SEL_3 EFUSE_BLK0 166 2
90 KM_DISABLE_DEPLOY_MODE EFUSE_BLK0 168 4
91 HP_PWR_SRC_SEL EFUSE_BLK0 178 1
92 DCDC_VSET_EN EFUSE_BLK0 179 1
93 DIS_WDT EFUSE_BLK0 180 1
94 DIS_SWD EFUSE_BLK0 181 1
95 MAC EFUSE_BLK1 0 8
96 MAC EFUSE_BLK1 8 8
97 MAC EFUSE_BLK1 16 8
98 MAC EFUSE_BLK1 24 8
99 MAC EFUSE_BLK1 32 8
100 MAC EFUSE_BLK1 40 8
101 MAC_EXT EFUSE_BLK1 48 8
102 MAC_EXT EFUSE_BLK1 56 8
103 SYS_DATA_PART2 EFUSE_BLK10 0 256
104 BLOCK_SYS_DATA1 EFUSE_BLK2 0 256
105 USER_DATA EFUSE_BLK3 0 256
106 USER_DATA.MAC_CUSTOM EFUSE_BLK3 200 48
107 KEY0 EFUSE_BLK4 0 256
108 KEY1 EFUSE_BLK5 0 256
109 KEY2 EFUSE_BLK6 0 256
110 KEY3 EFUSE_BLK7 0 256
111 KEY4 EFUSE_BLK8 0 256
112 KEY5 EFUSE_BLK9 0 256
1 WR_DIS EFUSE_BLK0 0 32
2 WR_DIS.RD_DIS EFUSE_BLK0 0 1
3 WR_DIS.SPI_BOOT_CRYPT_CNT EFUSE_BLK0 4 1
4 WR_DIS.SECURE_BOOT_KEY_REVOKE0 EFUSE_BLK0 5 1
5 WR_DIS.SECURE_BOOT_KEY_REVOKE1 EFUSE_BLK0 6 1
6 WR_DIS.SECURE_BOOT_KEY_REVOKE2 EFUSE_BLK0 7 1
7 WR_DIS.KEY_PURPOSE_0 EFUSE_BLK0 8 1
8 WR_DIS.KEY_PURPOSE_1 EFUSE_BLK0 9 1
9 WR_DIS.KEY_PURPOSE_2 EFUSE_BLK0 10 1
10 WR_DIS.KEY_PURPOSE_3 EFUSE_BLK0 11 1
11 WR_DIS.KEY_PURPOSE_4 EFUSE_BLK0 12 1
12 WR_DIS.KEY_PURPOSE_5 EFUSE_BLK0 13 1
13 WR_DIS.SECURE_BOOT_EN EFUSE_BLK0 15 1
14 WR_DIS.BLK1 EFUSE_BLK0 20 1
15 WR_DIS.MAC EFUSE_BLK0 20 1
16 WR_DIS.MAC_EXT EFUSE_BLK0 20 1
17 WR_DIS.BLOCK_SYS_DATA1 EFUSE_BLK0 21 1
18 WR_DIS.BLOCK_USR_DATA EFUSE_BLK0 22 1
19 WR_DIS.BLOCK_KEY0 EFUSE_BLK0 23 1
20 WR_DIS.BLOCK_KEY1 EFUSE_BLK0 24 1
21 WR_DIS.BLOCK_KEY2 EFUSE_BLK0 25 1
22 WR_DIS.BLOCK_KEY3 EFUSE_BLK0 26 1
23 WR_DIS.BLOCK_KEY4 EFUSE_BLK0 27 1
24 WR_DIS.BLOCK_KEY5 EFUSE_BLK0 28 1
25 WR_DIS.BLOCK_SYS_DATA2 EFUSE_BLK0 29 1
26 RD_DIS EFUSE_BLK0 32 7
27 RD_DIS.BLOCK_KEY0 EFUSE_BLK0 32 1
28 RD_DIS.BLOCK_KEY1 EFUSE_BLK0 33 1
29 RD_DIS.BLOCK_KEY2 EFUSE_BLK0 34 1
30 RD_DIS.BLOCK_KEY3 EFUSE_BLK0 35 1
31 RD_DIS.BLOCK_KEY4 EFUSE_BLK0 36 1
32 RD_DIS.BLOCK_KEY5 EFUSE_BLK0 37 1
33 RD_DIS.BLOCK_SYS_DATA2 EFUSE_BLK0 38 1
34 USB_DEVICE_EXCHG_PINS EFUSE_BLK0 39 1
35 USB_OTG11_EXCHG_PINS EFUSE_BLK0 40 1
36 DIS_USB_JTAG EFUSE_BLK0 41 1
37 POWERGLITCH_EN EFUSE_BLK0 42 1
38 DIS_FORCE_DOWNLOAD EFUSE_BLK0 44 1
39 SPI_DOWNLOAD_MSPI_DIS EFUSE_BLK0 45 1
40 DIS_TWAI EFUSE_BLK0 46 1
41 JTAG_SEL_ENABLE EFUSE_BLK0 47 1
42 SOFT_DIS_JTAG EFUSE_BLK0 48 3
43 DIS_PAD_JTAG EFUSE_BLK0 51 1
44 DIS_DOWNLOAD_MANUAL_ENCRYPT EFUSE_BLK0 52 1
45 USB_PHY_SEL EFUSE_BLK0 57 1
46 KM_HUK_GEN_STATE_LOW EFUSE_BLK0 58 6
47 KM_HUK_GEN_STATE_HIGH EFUSE_BLK0 64 3
48 KM_RND_SWITCH_CYCLE EFUSE_BLK0 67 2
49 KM_DEPLOY_ONLY_ONCE EFUSE_BLK0 69 4
50 FORCE_USE_KEY_MANAGER_KEY EFUSE_BLK0 73 4
51 FORCE_DISABLE_SW_INIT_KEY EFUSE_BLK0 77 1
52 XTS_KEY_LENGTH_256 EFUSE_BLK0 78 1
53 WDT_DELAY_SEL EFUSE_BLK0 80 2
54 SPI_BOOT_CRYPT_CNT EFUSE_BLK0 82 3
55 SECURE_BOOT_KEY_REVOKE0 EFUSE_BLK0 85 1
56 SECURE_BOOT_KEY_REVOKE1 EFUSE_BLK0 86 1
57 SECURE_BOOT_KEY_REVOKE2 EFUSE_BLK0 87 1
58 KEY_PURPOSE_0 EFUSE_BLK0 88 4
59 KEY_PURPOSE_1 EFUSE_BLK0 92 4
60 KEY_PURPOSE_2 EFUSE_BLK0 96 4
61 KEY_PURPOSE_3 EFUSE_BLK0 100 4
62 KEY_PURPOSE_4 EFUSE_BLK0 104 4
63 KEY_PURPOSE_5 EFUSE_BLK0 108 4
64 SEC_DPA_LEVEL EFUSE_BLK0 112 2
65 ECDSA_ENABLE_SOFT_K EFUSE_BLK0 114 1
66 CRYPT_DPA_ENABLE EFUSE_BLK0 115 1
67 SECURE_BOOT_EN EFUSE_BLK0 116 1
68 SECURE_BOOT_AGGRESSIVE_REVOKE EFUSE_BLK0 117 1
69 FLASH_TYPE EFUSE_BLK0 119 1
70 FLASH_PAGE_SIZE EFUSE_BLK0 120 2
71 FLASH_ECC_EN EFUSE_BLK0 122 1
72 DIS_USB_OTG_DOWNLOAD_MODE EFUSE_BLK0 123 1
73 FLASH_TPUW EFUSE_BLK0 124 4
74 DIS_DOWNLOAD_MODE EFUSE_BLK0 128 1
75 DIS_DIRECT_BOOT EFUSE_BLK0 129 1
76 DIS_USB_SERIAL_JTAG_ROM_PRINT EFUSE_BLK0 130 1
77 LOCK_KM_KEY EFUSE_BLK0 131 1
78 DIS_USB_SERIAL_JTAG_DOWNLOAD_MODE EFUSE_BLK0 132 1
79 ENABLE_SECURITY_DOWNLOAD EFUSE_BLK0 133 1
80 UART_PRINT_CONTROL EFUSE_BLK0 134 2
81 FORCE_SEND_RESUME EFUSE_BLK0 136 1
82 SECURE_VERSION EFUSE_BLK0 137 16
83 SECURE_BOOT_DISABLE_FAST_WAKE EFUSE_BLK0 153 1
84 HYS_EN_PAD EFUSE_BLK0 154 1
85 DCDC_VSET EFUSE_BLK0 155 5
86 PXA0_TIEH_SEL_0 EFUSE_BLK0 160 2
87 PXA0_TIEH_SEL_1 EFUSE_BLK0 162 2
88 PXA0_TIEH_SEL_2 EFUSE_BLK0 164 2
89 PXA0_TIEH_SEL_3 EFUSE_BLK0 166 2
90 KM_DISABLE_DEPLOY_MODE EFUSE_BLK0 168 4
91 HP_PWR_SRC_SEL EFUSE_BLK0 178 1
92 DCDC_VSET_EN EFUSE_BLK0 179 1
93 DIS_WDT EFUSE_BLK0 180 1
94 DIS_SWD EFUSE_BLK0 181 1
95 MAC EFUSE_BLK1 0 8
96 MAC EFUSE_BLK1 8 8
97 MAC EFUSE_BLK1 16 8
98 MAC EFUSE_BLK1 24 8
99 MAC EFUSE_BLK1 32 8
100 MAC EFUSE_BLK1 40 8
101 MAC_EXT EFUSE_BLK1 48 8
102 MAC_EXT EFUSE_BLK1 56 8
103 SYS_DATA_PART2 EFUSE_BLK10 0 256
104 BLOCK_SYS_DATA1 EFUSE_BLK2 0 256
105 USER_DATA EFUSE_BLK3 0 256
106 USER_DATA.MAC_CUSTOM EFUSE_BLK3 200 48
107 KEY0 EFUSE_BLK4 0 256
108 KEY1 EFUSE_BLK5 0 256
109 KEY2 EFUSE_BLK6 0 256
110 KEY3 EFUSE_BLK7 0 256
111 KEY4 EFUSE_BLK8 0 256
112 KEY5 EFUSE_BLK9 0 256
Used bits in efuse table:
EFUSE_BLK0
[0 31] [0 0] [4 13] [15 15] [20 20] [20 20] [20 29] [32 38] [32 42] [44 52] [57 78] [80 117] [119 171] [178 181]
EFUSE_BLK1
[0 63]
EFUSE_BLK10
[0 255]
EFUSE_BLK2
[0 255]
EFUSE_BLK3
[0 255] [200 247]
EFUSE_BLK4
[0 255]
EFUSE_BLK5
[0 255]
EFUSE_BLK6
[0 255]
EFUSE_BLK7
[0 255]
EFUSE_BLK8
[0 255]
EFUSE_BLK9
[0 255]
EFUSE_BLK0
[0 31] [0 0] [4 13] [15 15] [20 20] [20 20] [20 29] [32 38] [32 42] [44 52] [57 78] [80 117] [119 171] [178 181]
EFUSE_BLK1
[0 63]
EFUSE_BLK10
[0 255]
EFUSE_BLK2
[0 255]
EFUSE_BLK3
[0 255] [200 247]
EFUSE_BLK4
[0 255]
EFUSE_BLK5
[0 255]
EFUSE_BLK6
[0 255]
EFUSE_BLK7
[0 255]
EFUSE_BLK8
[0 255]
EFUSE_BLK9
[0 255]
Note: Not printed ranges are free for using. (bits in EFUSE_BLK0 are reserved for Espressif)

View File

@ -8,227 +8,227 @@
Max number of bits in BLK 256
Sorted efuse table:
# field_name efuse_block bit_start bit_count
1 WR_DIS EFUSE_BLK0 0 32
2 WR_DIS.RD_DIS EFUSE_BLK0 0 1
3 WR_DIS.DIS_ICACHE EFUSE_BLK0 2 1
4 WR_DIS.DIS_DCACHE EFUSE_BLK0 2 1
5 WR_DIS.DIS_DOWNLOAD_ICACHE EFUSE_BLK0 2 1
6 WR_DIS.DIS_DOWNLOAD_DCACHE EFUSE_BLK0 2 1
7 WR_DIS.DIS_FORCE_DOWNLOAD EFUSE_BLK0 2 1
8 WR_DIS.DIS_USB EFUSE_BLK0 2 1
9 WR_DIS.DIS_TWAI EFUSE_BLK0 2 1
10 WR_DIS.DIS_BOOT_REMAP EFUSE_BLK0 2 1
11 WR_DIS.SOFT_DIS_JTAG EFUSE_BLK0 2 1
12 WR_DIS.HARD_DIS_JTAG EFUSE_BLK0 2 1
13 WR_DIS.DIS_DOWNLOAD_MANUAL_ENCRYPT EFUSE_BLK0 2 1
14 WR_DIS.VDD_SPI_XPD EFUSE_BLK0 3 1
15 WR_DIS.VDD_SPI_TIEH EFUSE_BLK0 3 1
16 WR_DIS.VDD_SPI_FORCE EFUSE_BLK0 3 1
17 WR_DIS.WDT_DELAY_SEL EFUSE_BLK0 3 1
18 WR_DIS.SPI_BOOT_CRYPT_CNT EFUSE_BLK0 4 1
19 WR_DIS.SECURE_BOOT_KEY_REVOKE0 EFUSE_BLK0 5 1
20 WR_DIS.SECURE_BOOT_KEY_REVOKE1 EFUSE_BLK0 6 1
21 WR_DIS.SECURE_BOOT_KEY_REVOKE2 EFUSE_BLK0 7 1
22 WR_DIS.KEY_PURPOSE_0 EFUSE_BLK0 8 1
23 WR_DIS.KEY_PURPOSE_1 EFUSE_BLK0 9 1
24 WR_DIS.KEY_PURPOSE_2 EFUSE_BLK0 10 1
25 WR_DIS.KEY_PURPOSE_3 EFUSE_BLK0 11 1
26 WR_DIS.KEY_PURPOSE_4 EFUSE_BLK0 12 1
27 WR_DIS.KEY_PURPOSE_5 EFUSE_BLK0 13 1
28 WR_DIS.SECURE_BOOT_EN EFUSE_BLK0 15 1
29 WR_DIS.SECURE_BOOT_AGGRESSIVE_REVOKE EFUSE_BLK0 16 1
30 WR_DIS.FLASH_TPUW EFUSE_BLK0 18 1
31 WR_DIS.DIS_DOWNLOAD_MODE EFUSE_BLK0 18 1
32 WR_DIS.DIS_LEGACY_SPI_BOOT EFUSE_BLK0 18 1
33 WR_DIS.UART_PRINT_CHANNEL EFUSE_BLK0 18 1
34 WR_DIS.DIS_USB_DOWNLOAD_MODE EFUSE_BLK0 18 1
35 WR_DIS.ENABLE_SECURITY_DOWNLOAD EFUSE_BLK0 18 1
36 WR_DIS.UART_PRINT_CONTROL EFUSE_BLK0 18 1
37 WR_DIS.PIN_POWER_SELECTION EFUSE_BLK0 18 1
38 WR_DIS.FLASH_TYPE EFUSE_BLK0 18 1
39 WR_DIS.FORCE_SEND_RESUME EFUSE_BLK0 18 1
40 WR_DIS.SECURE_VERSION EFUSE_BLK0 18 1
41 WR_DIS.BLK1 EFUSE_BLK0 20 1
42 WR_DIS.MAC EFUSE_BLK0 20 1
43 WR_DIS.SPI_PAD_CONFIG_CLK EFUSE_BLK0 20 1
44 WR_DIS.SPI_PAD_CONFIG_Q EFUSE_BLK0 20 1
45 WR_DIS.SPI_PAD_CONFIG_D EFUSE_BLK0 20 1
46 WR_DIS.SPI_PAD_CONFIG_CS EFUSE_BLK0 20 1
47 WR_DIS.SPI_PAD_CONFIG_HD EFUSE_BLK0 20 1
48 WR_DIS.SPI_PAD_CONFIG_WP EFUSE_BLK0 20 1
49 WR_DIS.SPI_PAD_CONFIG_DQS EFUSE_BLK0 20 1
50 WR_DIS.SPI_PAD_CONFIG_D4 EFUSE_BLK0 20 1
51 WR_DIS.SPI_PAD_CONFIG_D5 EFUSE_BLK0 20 1
52 WR_DIS.SPI_PAD_CONFIG_D6 EFUSE_BLK0 20 1
53 WR_DIS.SPI_PAD_CONFIG_D7 EFUSE_BLK0 20 1
54 WR_DIS.WAFER_VERSION_MAJOR EFUSE_BLK0 20 1
55 WR_DIS.WAFER_VERSION_MINOR_HI EFUSE_BLK0 20 1
56 WR_DIS.FLASH_VERSION EFUSE_BLK0 20 1
57 WR_DIS.BLK_VERSION_MAJOR EFUSE_BLK0 20 1
58 WR_DIS.PSRAM_VERSION EFUSE_BLK0 20 1
59 WR_DIS.PKG_VERSION EFUSE_BLK0 20 1
60 WR_DIS.WAFER_VERSION_MINOR_LO EFUSE_BLK0 20 1
61 WR_DIS.SYS_DATA_PART1 EFUSE_BLK0 21 1
62 WR_DIS.OPTIONAL_UNIQUE_ID EFUSE_BLK0 21 1
63 WR_DIS.ADC_CALIB EFUSE_BLK0 21 1
64 WR_DIS.BLK_VERSION_MINOR EFUSE_BLK0 21 1
65 WR_DIS.TEMP_CALIB EFUSE_BLK0 21 1
66 WR_DIS.RTCCALIB_V1IDX_A10H EFUSE_BLK0 21 1
67 WR_DIS.RTCCALIB_V1IDX_A11H EFUSE_BLK0 21 1
68 WR_DIS.RTCCALIB_V1IDX_A12H EFUSE_BLK0 21 1
69 WR_DIS.RTCCALIB_V1IDX_A13H EFUSE_BLK0 21 1
70 WR_DIS.RTCCALIB_V1IDX_A20H EFUSE_BLK0 21 1
71 WR_DIS.RTCCALIB_V1IDX_A21H EFUSE_BLK0 21 1
72 WR_DIS.RTCCALIB_V1IDX_A22H EFUSE_BLK0 21 1
73 WR_DIS.RTCCALIB_V1IDX_A23H EFUSE_BLK0 21 1
74 WR_DIS.RTCCALIB_V1IDX_A10L EFUSE_BLK0 21 1
75 WR_DIS.RTCCALIB_V1IDX_A11L EFUSE_BLK0 21 1
76 WR_DIS.RTCCALIB_V1IDX_A12L EFUSE_BLK0 21 1
77 WR_DIS.RTCCALIB_V1IDX_A13L EFUSE_BLK0 21 1
78 WR_DIS.RTCCALIB_V1IDX_A20L EFUSE_BLK0 21 1
79 WR_DIS.RTCCALIB_V1IDX_A21L EFUSE_BLK0 21 1
80 WR_DIS.RTCCALIB_V1IDX_A22L EFUSE_BLK0 21 1
81 WR_DIS.RTCCALIB_V1IDX_A23L EFUSE_BLK0 21 1
82 WR_DIS.BLOCK_USR_DATA EFUSE_BLK0 22 1
83 WR_DIS.CUSTOM_MAC EFUSE_BLK0 22 1
84 WR_DIS.BLOCK_KEY0 EFUSE_BLK0 23 1
85 WR_DIS.BLOCK_KEY1 EFUSE_BLK0 24 1
86 WR_DIS.BLOCK_KEY2 EFUSE_BLK0 25 1
87 WR_DIS.BLOCK_KEY3 EFUSE_BLK0 26 1
88 WR_DIS.BLOCK_KEY4 EFUSE_BLK0 27 1
89 WR_DIS.BLOCK_KEY5 EFUSE_BLK0 28 1
90 WR_DIS.BLOCK_SYS_DATA2 EFUSE_BLK0 29 1
91 WR_DIS.USB_EXCHG_PINS EFUSE_BLK0 30 1
92 WR_DIS.USB_EXT_PHY_ENABLE EFUSE_BLK0 30 1
93 WR_DIS.USB_FORCE_NOPERSIST EFUSE_BLK0 30 1
94 WR_DIS.BLOCK0_VERSION EFUSE_BLK0 30 1
95 RD_DIS EFUSE_BLK0 32 7
96 RD_DIS.BLOCK_KEY0 EFUSE_BLK0 32 1
97 RD_DIS.BLOCK_KEY1 EFUSE_BLK0 33 1
98 RD_DIS.BLOCK_KEY2 EFUSE_BLK0 34 1
99 RD_DIS.BLOCK_KEY3 EFUSE_BLK0 35 1
100 RD_DIS.BLOCK_KEY4 EFUSE_BLK0 36 1
101 RD_DIS.BLOCK_KEY5 EFUSE_BLK0 37 1
102 RD_DIS.BLOCK_SYS_DATA2 EFUSE_BLK0 38 1
103 DIS_ICACHE EFUSE_BLK0 40 1
104 DIS_DCACHE EFUSE_BLK0 41 1
105 DIS_DOWNLOAD_ICACHE EFUSE_BLK0 42 1
106 DIS_DOWNLOAD_DCACHE EFUSE_BLK0 43 1
107 DIS_FORCE_DOWNLOAD EFUSE_BLK0 44 1
108 DIS_USB EFUSE_BLK0 45 1
109 DIS_TWAI EFUSE_BLK0 46 1
110 DIS_BOOT_REMAP EFUSE_BLK0 47 1
111 SOFT_DIS_JTAG EFUSE_BLK0 49 1
112 HARD_DIS_JTAG EFUSE_BLK0 50 1
113 DIS_DOWNLOAD_MANUAL_ENCRYPT EFUSE_BLK0 51 1
114 USB_EXCHG_PINS EFUSE_BLK0 56 1
115 USB_EXT_PHY_ENABLE EFUSE_BLK0 57 1
116 USB_FORCE_NOPERSIST EFUSE_BLK0 58 1
117 BLOCK0_VERSION EFUSE_BLK0 59 2
118 VDD_SPI_XPD EFUSE_BLK0 68 1
119 VDD_SPI_TIEH EFUSE_BLK0 69 1
120 VDD_SPI_FORCE EFUSE_BLK0 70 1
121 WDT_DELAY_SEL EFUSE_BLK0 80 2
122 SPI_BOOT_CRYPT_CNT EFUSE_BLK0 82 3
123 SECURE_BOOT_KEY_REVOKE0 EFUSE_BLK0 85 1
124 SECURE_BOOT_KEY_REVOKE1 EFUSE_BLK0 86 1
125 SECURE_BOOT_KEY_REVOKE2 EFUSE_BLK0 87 1
126 KEY_PURPOSE_0 EFUSE_BLK0 88 4
127 KEY_PURPOSE_1 EFUSE_BLK0 92 4
128 KEY_PURPOSE_2 EFUSE_BLK0 96 4
129 KEY_PURPOSE_3 EFUSE_BLK0 100 4
130 KEY_PURPOSE_4 EFUSE_BLK0 104 4
131 KEY_PURPOSE_5 EFUSE_BLK0 108 4
132 SECURE_BOOT_EN EFUSE_BLK0 116 1
133 SECURE_BOOT_AGGRESSIVE_REVOKE EFUSE_BLK0 117 1
134 FLASH_TPUW EFUSE_BLK0 124 4
135 DIS_DOWNLOAD_MODE EFUSE_BLK0 128 1
136 DIS_LEGACY_SPI_BOOT EFUSE_BLK0 129 1
137 UART_PRINT_CHANNEL EFUSE_BLK0 130 1
138 DIS_USB_DOWNLOAD_MODE EFUSE_BLK0 132 1
139 ENABLE_SECURITY_DOWNLOAD EFUSE_BLK0 133 1
140 UART_PRINT_CONTROL EFUSE_BLK0 134 2
141 PIN_POWER_SELECTION EFUSE_BLK0 136 1
142 FLASH_TYPE EFUSE_BLK0 137 1
143 FORCE_SEND_RESUME EFUSE_BLK0 138 1
144 SECURE_VERSION EFUSE_BLK0 139 16
145 DISABLE_WAFER_VERSION_MAJOR EFUSE_BLK0 160 1
146 DISABLE_BLK_VERSION_MAJOR EFUSE_BLK0 161 1
147 MAC EFUSE_BLK1 0 8
148 MAC EFUSE_BLK1 8 8
149 MAC EFUSE_BLK1 16 8
150 MAC EFUSE_BLK1 24 8
151 MAC EFUSE_BLK1 32 8
152 MAC EFUSE_BLK1 40 8
153 SPI_PAD_CONFIG_CLK EFUSE_BLK1 48 6
154 SPI_PAD_CONFIG_Q EFUSE_BLK1 54 6
155 SPI_PAD_CONFIG_D EFUSE_BLK1 60 6
156 SPI_PAD_CONFIG_CS EFUSE_BLK1 66 6
157 SPI_PAD_CONFIG_HD EFUSE_BLK1 72 6
158 SPI_PAD_CONFIG_WP EFUSE_BLK1 78 6
159 SPI_PAD_CONFIG_DQS EFUSE_BLK1 84 6
160 SPI_PAD_CONFIG_D4 EFUSE_BLK1 90 6
161 SPI_PAD_CONFIG_D5 EFUSE_BLK1 96 6
162 SPI_PAD_CONFIG_D6 EFUSE_BLK1 102 6
163 SPI_PAD_CONFIG_D7 EFUSE_BLK1 108 6
164 WAFER_VERSION_MAJOR EFUSE_BLK1 114 2
165 WAFER_VERSION_MINOR_HI EFUSE_BLK1 116 1
166 FLASH_VERSION EFUSE_BLK1 117 4
167 BLK_VERSION_MAJOR EFUSE_BLK1 121 2
168 PSRAM_VERSION EFUSE_BLK1 124 4
169 PKG_VERSION EFUSE_BLK1 128 4
170 WAFER_VERSION_MINOR_LO EFUSE_BLK1 132 3
171 SYS_DATA_PART2 EFUSE_BLK10 0 256
172 OPTIONAL_UNIQUE_ID EFUSE_BLK2 0 128
173 ADC_CALIB EFUSE_BLK2 128 4
174 BLK_VERSION_MINOR EFUSE_BLK2 132 3
175 TEMP_CALIB EFUSE_BLK2 135 9
176 RTCCALIB_V1IDX_A10H EFUSE_BLK2 144 8
177 RTCCALIB_V1IDX_A11H EFUSE_BLK2 152 8
178 RTCCALIB_V1IDX_A12H EFUSE_BLK2 160 8
179 RTCCALIB_V1IDX_A13H EFUSE_BLK2 168 8
180 RTCCALIB_V1IDX_A20H EFUSE_BLK2 176 8
181 RTCCALIB_V1IDX_A21H EFUSE_BLK2 184 8
182 RTCCALIB_V1IDX_A22H EFUSE_BLK2 192 8
183 RTCCALIB_V1IDX_A23H EFUSE_BLK2 200 8
184 RTCCALIB_V1IDX_A10L EFUSE_BLK2 208 6
185 RTCCALIB_V1IDX_A11L EFUSE_BLK2 214 6
186 RTCCALIB_V1IDX_A12L EFUSE_BLK2 220 6
187 RTCCALIB_V1IDX_A13L EFUSE_BLK2 226 6
188 RTCCALIB_V1IDX_A20L EFUSE_BLK2 232 6
189 RTCCALIB_V1IDX_A21L EFUSE_BLK2 238 6
190 RTCCALIB_V1IDX_A22L EFUSE_BLK2 244 6
191 RTCCALIB_V1IDX_A23L EFUSE_BLK2 250 6
192 USER_DATA EFUSE_BLK3 0 256
193 USER_DATA.MAC_CUSTOM EFUSE_BLK3 200 48
194 KEY0 EFUSE_BLK4 0 256
195 KEY1 EFUSE_BLK5 0 256
196 KEY2 EFUSE_BLK6 0 256
197 KEY3 EFUSE_BLK7 0 256
198 KEY4 EFUSE_BLK8 0 256
199 KEY5 EFUSE_BLK9 0 256
1 WR_DIS EFUSE_BLK0 0 32
2 WR_DIS.RD_DIS EFUSE_BLK0 0 1
3 WR_DIS.DIS_ICACHE EFUSE_BLK0 2 1
4 WR_DIS.DIS_DCACHE EFUSE_BLK0 2 1
5 WR_DIS.DIS_DOWNLOAD_ICACHE EFUSE_BLK0 2 1
6 WR_DIS.DIS_DOWNLOAD_DCACHE EFUSE_BLK0 2 1
7 WR_DIS.DIS_FORCE_DOWNLOAD EFUSE_BLK0 2 1
8 WR_DIS.DIS_USB EFUSE_BLK0 2 1
9 WR_DIS.DIS_TWAI EFUSE_BLK0 2 1
10 WR_DIS.DIS_BOOT_REMAP EFUSE_BLK0 2 1
11 WR_DIS.SOFT_DIS_JTAG EFUSE_BLK0 2 1
12 WR_DIS.HARD_DIS_JTAG EFUSE_BLK0 2 1
13 WR_DIS.DIS_DOWNLOAD_MANUAL_ENCRYPT EFUSE_BLK0 2 1
14 WR_DIS.VDD_SPI_XPD EFUSE_BLK0 3 1
15 WR_DIS.VDD_SPI_TIEH EFUSE_BLK0 3 1
16 WR_DIS.VDD_SPI_FORCE EFUSE_BLK0 3 1
17 WR_DIS.WDT_DELAY_SEL EFUSE_BLK0 3 1
18 WR_DIS.SPI_BOOT_CRYPT_CNT EFUSE_BLK0 4 1
19 WR_DIS.SECURE_BOOT_KEY_REVOKE0 EFUSE_BLK0 5 1
20 WR_DIS.SECURE_BOOT_KEY_REVOKE1 EFUSE_BLK0 6 1
21 WR_DIS.SECURE_BOOT_KEY_REVOKE2 EFUSE_BLK0 7 1
22 WR_DIS.KEY_PURPOSE_0 EFUSE_BLK0 8 1
23 WR_DIS.KEY_PURPOSE_1 EFUSE_BLK0 9 1
24 WR_DIS.KEY_PURPOSE_2 EFUSE_BLK0 10 1
25 WR_DIS.KEY_PURPOSE_3 EFUSE_BLK0 11 1
26 WR_DIS.KEY_PURPOSE_4 EFUSE_BLK0 12 1
27 WR_DIS.KEY_PURPOSE_5 EFUSE_BLK0 13 1
28 WR_DIS.SECURE_BOOT_EN EFUSE_BLK0 15 1
29 WR_DIS.SECURE_BOOT_AGGRESSIVE_REVOKE EFUSE_BLK0 16 1
30 WR_DIS.FLASH_TPUW EFUSE_BLK0 18 1
31 WR_DIS.DIS_DOWNLOAD_MODE EFUSE_BLK0 18 1
32 WR_DIS.DIS_LEGACY_SPI_BOOT EFUSE_BLK0 18 1
33 WR_DIS.UART_PRINT_CHANNEL EFUSE_BLK0 18 1
34 WR_DIS.DIS_USB_DOWNLOAD_MODE EFUSE_BLK0 18 1
35 WR_DIS.ENABLE_SECURITY_DOWNLOAD EFUSE_BLK0 18 1
36 WR_DIS.UART_PRINT_CONTROL EFUSE_BLK0 18 1
37 WR_DIS.PIN_POWER_SELECTION EFUSE_BLK0 18 1
38 WR_DIS.FLASH_TYPE EFUSE_BLK0 18 1
39 WR_DIS.FORCE_SEND_RESUME EFUSE_BLK0 18 1
40 WR_DIS.SECURE_VERSION EFUSE_BLK0 18 1
41 WR_DIS.BLK1 EFUSE_BLK0 20 1
42 WR_DIS.MAC EFUSE_BLK0 20 1
43 WR_DIS.SPI_PAD_CONFIG_CLK EFUSE_BLK0 20 1
44 WR_DIS.SPI_PAD_CONFIG_Q EFUSE_BLK0 20 1
45 WR_DIS.SPI_PAD_CONFIG_D EFUSE_BLK0 20 1
46 WR_DIS.SPI_PAD_CONFIG_CS EFUSE_BLK0 20 1
47 WR_DIS.SPI_PAD_CONFIG_HD EFUSE_BLK0 20 1
48 WR_DIS.SPI_PAD_CONFIG_WP EFUSE_BLK0 20 1
49 WR_DIS.SPI_PAD_CONFIG_DQS EFUSE_BLK0 20 1
50 WR_DIS.SPI_PAD_CONFIG_D4 EFUSE_BLK0 20 1
51 WR_DIS.SPI_PAD_CONFIG_D5 EFUSE_BLK0 20 1
52 WR_DIS.SPI_PAD_CONFIG_D6 EFUSE_BLK0 20 1
53 WR_DIS.SPI_PAD_CONFIG_D7 EFUSE_BLK0 20 1
54 WR_DIS.WAFER_VERSION_MAJOR EFUSE_BLK0 20 1
55 WR_DIS.WAFER_VERSION_MINOR_HI EFUSE_BLK0 20 1
56 WR_DIS.FLASH_VERSION EFUSE_BLK0 20 1
57 WR_DIS.BLK_VERSION_MAJOR EFUSE_BLK0 20 1
58 WR_DIS.PSRAM_VERSION EFUSE_BLK0 20 1
59 WR_DIS.PKG_VERSION EFUSE_BLK0 20 1
60 WR_DIS.WAFER_VERSION_MINOR_LO EFUSE_BLK0 20 1
61 WR_DIS.SYS_DATA_PART1 EFUSE_BLK0 21 1
62 WR_DIS.OPTIONAL_UNIQUE_ID EFUSE_BLK0 21 1
63 WR_DIS.ADC_CALIB EFUSE_BLK0 21 1
64 WR_DIS.BLK_VERSION_MINOR EFUSE_BLK0 21 1
65 WR_DIS.TEMP_CALIB EFUSE_BLK0 21 1
66 WR_DIS.RTCCALIB_V1IDX_A10H EFUSE_BLK0 21 1
67 WR_DIS.RTCCALIB_V1IDX_A11H EFUSE_BLK0 21 1
68 WR_DIS.RTCCALIB_V1IDX_A12H EFUSE_BLK0 21 1
69 WR_DIS.RTCCALIB_V1IDX_A13H EFUSE_BLK0 21 1
70 WR_DIS.RTCCALIB_V1IDX_A20H EFUSE_BLK0 21 1
71 WR_DIS.RTCCALIB_V1IDX_A21H EFUSE_BLK0 21 1
72 WR_DIS.RTCCALIB_V1IDX_A22H EFUSE_BLK0 21 1
73 WR_DIS.RTCCALIB_V1IDX_A23H EFUSE_BLK0 21 1
74 WR_DIS.RTCCALIB_V1IDX_A10L EFUSE_BLK0 21 1
75 WR_DIS.RTCCALIB_V1IDX_A11L EFUSE_BLK0 21 1
76 WR_DIS.RTCCALIB_V1IDX_A12L EFUSE_BLK0 21 1
77 WR_DIS.RTCCALIB_V1IDX_A13L EFUSE_BLK0 21 1
78 WR_DIS.RTCCALIB_V1IDX_A20L EFUSE_BLK0 21 1
79 WR_DIS.RTCCALIB_V1IDX_A21L EFUSE_BLK0 21 1
80 WR_DIS.RTCCALIB_V1IDX_A22L EFUSE_BLK0 21 1
81 WR_DIS.RTCCALIB_V1IDX_A23L EFUSE_BLK0 21 1
82 WR_DIS.BLOCK_USR_DATA EFUSE_BLK0 22 1
83 WR_DIS.CUSTOM_MAC EFUSE_BLK0 22 1
84 WR_DIS.BLOCK_KEY0 EFUSE_BLK0 23 1
85 WR_DIS.BLOCK_KEY1 EFUSE_BLK0 24 1
86 WR_DIS.BLOCK_KEY2 EFUSE_BLK0 25 1
87 WR_DIS.BLOCK_KEY3 EFUSE_BLK0 26 1
88 WR_DIS.BLOCK_KEY4 EFUSE_BLK0 27 1
89 WR_DIS.BLOCK_KEY5 EFUSE_BLK0 28 1
90 WR_DIS.BLOCK_SYS_DATA2 EFUSE_BLK0 29 1
91 WR_DIS.USB_EXCHG_PINS EFUSE_BLK0 30 1
92 WR_DIS.USB_EXT_PHY_ENABLE EFUSE_BLK0 30 1
93 WR_DIS.USB_FORCE_NOPERSIST EFUSE_BLK0 30 1
94 WR_DIS.BLOCK0_VERSION EFUSE_BLK0 30 1
95 RD_DIS EFUSE_BLK0 32 7
96 RD_DIS.BLOCK_KEY0 EFUSE_BLK0 32 1
97 RD_DIS.BLOCK_KEY1 EFUSE_BLK0 33 1
98 RD_DIS.BLOCK_KEY2 EFUSE_BLK0 34 1
99 RD_DIS.BLOCK_KEY3 EFUSE_BLK0 35 1
100 RD_DIS.BLOCK_KEY4 EFUSE_BLK0 36 1
101 RD_DIS.BLOCK_KEY5 EFUSE_BLK0 37 1
102 RD_DIS.BLOCK_SYS_DATA2 EFUSE_BLK0 38 1
103 DIS_ICACHE EFUSE_BLK0 40 1
104 DIS_DCACHE EFUSE_BLK0 41 1
105 DIS_DOWNLOAD_ICACHE EFUSE_BLK0 42 1
106 DIS_DOWNLOAD_DCACHE EFUSE_BLK0 43 1
107 DIS_FORCE_DOWNLOAD EFUSE_BLK0 44 1
108 DIS_USB EFUSE_BLK0 45 1
109 DIS_TWAI EFUSE_BLK0 46 1
110 DIS_BOOT_REMAP EFUSE_BLK0 47 1
111 SOFT_DIS_JTAG EFUSE_BLK0 49 1
112 HARD_DIS_JTAG EFUSE_BLK0 50 1
113 DIS_DOWNLOAD_MANUAL_ENCRYPT EFUSE_BLK0 51 1
114 USB_EXCHG_PINS EFUSE_BLK0 56 1
115 USB_EXT_PHY_ENABLE EFUSE_BLK0 57 1
116 USB_FORCE_NOPERSIST EFUSE_BLK0 58 1
117 BLOCK0_VERSION EFUSE_BLK0 59 2
118 VDD_SPI_XPD EFUSE_BLK0 68 1
119 VDD_SPI_TIEH EFUSE_BLK0 69 1
120 VDD_SPI_FORCE EFUSE_BLK0 70 1
121 WDT_DELAY_SEL EFUSE_BLK0 80 2
122 SPI_BOOT_CRYPT_CNT EFUSE_BLK0 82 3
123 SECURE_BOOT_KEY_REVOKE0 EFUSE_BLK0 85 1
124 SECURE_BOOT_KEY_REVOKE1 EFUSE_BLK0 86 1
125 SECURE_BOOT_KEY_REVOKE2 EFUSE_BLK0 87 1
126 KEY_PURPOSE_0 EFUSE_BLK0 88 4
127 KEY_PURPOSE_1 EFUSE_BLK0 92 4
128 KEY_PURPOSE_2 EFUSE_BLK0 96 4
129 KEY_PURPOSE_3 EFUSE_BLK0 100 4
130 KEY_PURPOSE_4 EFUSE_BLK0 104 4
131 KEY_PURPOSE_5 EFUSE_BLK0 108 4
132 SECURE_BOOT_EN EFUSE_BLK0 116 1
133 SECURE_BOOT_AGGRESSIVE_REVOKE EFUSE_BLK0 117 1
134 FLASH_TPUW EFUSE_BLK0 124 4
135 DIS_DOWNLOAD_MODE EFUSE_BLK0 128 1
136 DIS_LEGACY_SPI_BOOT EFUSE_BLK0 129 1
137 UART_PRINT_CHANNEL EFUSE_BLK0 130 1
138 DIS_USB_DOWNLOAD_MODE EFUSE_BLK0 132 1
139 ENABLE_SECURITY_DOWNLOAD EFUSE_BLK0 133 1
140 UART_PRINT_CONTROL EFUSE_BLK0 134 2
141 PIN_POWER_SELECTION EFUSE_BLK0 136 1
142 FLASH_TYPE EFUSE_BLK0 137 1
143 FORCE_SEND_RESUME EFUSE_BLK0 138 1
144 SECURE_VERSION EFUSE_BLK0 139 16
145 DISABLE_WAFER_VERSION_MAJOR EFUSE_BLK0 160 1
146 DISABLE_BLK_VERSION_MAJOR EFUSE_BLK0 161 1
147 MAC EFUSE_BLK1 0 8
148 MAC EFUSE_BLK1 8 8
149 MAC EFUSE_BLK1 16 8
150 MAC EFUSE_BLK1 24 8
151 MAC EFUSE_BLK1 32 8
152 MAC EFUSE_BLK1 40 8
153 SPI_PAD_CONFIG_CLK EFUSE_BLK1 48 6
154 SPI_PAD_CONFIG_Q EFUSE_BLK1 54 6
155 SPI_PAD_CONFIG_D EFUSE_BLK1 60 6
156 SPI_PAD_CONFIG_CS EFUSE_BLK1 66 6
157 SPI_PAD_CONFIG_HD EFUSE_BLK1 72 6
158 SPI_PAD_CONFIG_WP EFUSE_BLK1 78 6
159 SPI_PAD_CONFIG_DQS EFUSE_BLK1 84 6
160 SPI_PAD_CONFIG_D4 EFUSE_BLK1 90 6
161 SPI_PAD_CONFIG_D5 EFUSE_BLK1 96 6
162 SPI_PAD_CONFIG_D6 EFUSE_BLK1 102 6
163 SPI_PAD_CONFIG_D7 EFUSE_BLK1 108 6
164 WAFER_VERSION_MAJOR EFUSE_BLK1 114 2
165 WAFER_VERSION_MINOR_HI EFUSE_BLK1 116 1
166 FLASH_VERSION EFUSE_BLK1 117 4
167 BLK_VERSION_MAJOR EFUSE_BLK1 121 2
168 PSRAM_VERSION EFUSE_BLK1 124 4
169 PKG_VERSION EFUSE_BLK1 128 4
170 WAFER_VERSION_MINOR_LO EFUSE_BLK1 132 3
171 SYS_DATA_PART2 EFUSE_BLK10 0 256
172 OPTIONAL_UNIQUE_ID EFUSE_BLK2 0 128
173 ADC_CALIB EFUSE_BLK2 128 4
174 BLK_VERSION_MINOR EFUSE_BLK2 132 3
175 TEMP_CALIB EFUSE_BLK2 135 9
176 RTCCALIB_V1IDX_A10H EFUSE_BLK2 144 8
177 RTCCALIB_V1IDX_A11H EFUSE_BLK2 152 8
178 RTCCALIB_V1IDX_A12H EFUSE_BLK2 160 8
179 RTCCALIB_V1IDX_A13H EFUSE_BLK2 168 8
180 RTCCALIB_V1IDX_A20H EFUSE_BLK2 176 8
181 RTCCALIB_V1IDX_A21H EFUSE_BLK2 184 8
182 RTCCALIB_V1IDX_A22H EFUSE_BLK2 192 8
183 RTCCALIB_V1IDX_A23H EFUSE_BLK2 200 8
184 RTCCALIB_V1IDX_A10L EFUSE_BLK2 208 6
185 RTCCALIB_V1IDX_A11L EFUSE_BLK2 214 6
186 RTCCALIB_V1IDX_A12L EFUSE_BLK2 220 6
187 RTCCALIB_V1IDX_A13L EFUSE_BLK2 226 6
188 RTCCALIB_V1IDX_A20L EFUSE_BLK2 232 6
189 RTCCALIB_V1IDX_A21L EFUSE_BLK2 238 6
190 RTCCALIB_V1IDX_A22L EFUSE_BLK2 244 6
191 RTCCALIB_V1IDX_A23L EFUSE_BLK2 250 6
192 USER_DATA EFUSE_BLK3 0 256
193 USER_DATA.MAC_CUSTOM EFUSE_BLK3 200 48
194 KEY0 EFUSE_BLK4 0 256
195 KEY1 EFUSE_BLK5 0 256
196 KEY2 EFUSE_BLK6 0 256
197 KEY3 EFUSE_BLK7 0 256
198 KEY4 EFUSE_BLK8 0 256
199 KEY5 EFUSE_BLK9 0 256
Used bits in efuse table:
EFUSE_BLK0
[0 31] [0 0] [2 2] ... [32 38] [40 47] [49 51] [56 60] [68 70] [80 111] [116 117] [124 130] [132 154] [160 161]
EFUSE_BLK1
[0 122] [124 134]
EFUSE_BLK10
[0 255]
EFUSE_BLK2
[0 255]
EFUSE_BLK3
[0 255] [200 247]
EFUSE_BLK4
[0 255]
EFUSE_BLK5
[0 255]
EFUSE_BLK6
[0 255]
EFUSE_BLK7
[0 255]
EFUSE_BLK8
[0 255]
EFUSE_BLK9
[0 255]
Note: Not printed ranges are free for using. (bits in EFUSE_BLK0 are reserved for Espressif)
EFUSE_BLK0
[0 31] [0 0] [2 2] ... [32 38] [40 47] [49 51] [56 60] [68 70] [80 111] [116 117] [124 130] [132 154] [160 161]
EFUSE_BLK1
[0 122] [124 134]
EFUSE_BLK10
[0 255]
EFUSE_BLK2
[0 255]
EFUSE_BLK3
[0 255] [200 247]
EFUSE_BLK4
[0 255]
EFUSE_BLK5
[0 255]
EFUSE_BLK6
[0 255]
EFUSE_BLK7
[0 255]
EFUSE_BLK8
[0 255]
EFUSE_BLK9
[0 255]
Note: Not printed ranges are free for using. (bits in EFUSE_BLK0 are reserved for Espressif)

View File

@ -6,247 +6,247 @@
Max number of bits in BLK 256
Sorted efuse table:
# field_name efuse_block bit_start bit_count
1 WR_DIS EFUSE_BLK0 0 32
2 WR_DIS.RD_DIS EFUSE_BLK0 0 1
3 WR_DIS.DIS_ICACHE EFUSE_BLK0 2 1
4 WR_DIS.DIS_DCACHE EFUSE_BLK0 2 1
5 WR_DIS.DIS_DOWNLOAD_ICACHE EFUSE_BLK0 2 1
6 WR_DIS.DIS_DOWNLOAD_DCACHE EFUSE_BLK0 2 1
7 WR_DIS.DIS_FORCE_DOWNLOAD EFUSE_BLK0 2 1
8 WR_DIS.DIS_USB_OTG EFUSE_BLK0 2 1
9 WR_DIS.DIS_TWAI EFUSE_BLK0 2 1
10 WR_DIS.DIS_APP_CPU EFUSE_BLK0 2 1
11 WR_DIS.DIS_PAD_JTAG EFUSE_BLK0 2 1
12 WR_DIS.DIS_DOWNLOAD_MANUAL_ENCRYPT EFUSE_BLK0 2 1
13 WR_DIS.DIS_USB_JTAG EFUSE_BLK0 2 1
14 WR_DIS.DIS_USB_SERIAL_JTAG EFUSE_BLK0 2 1
15 WR_DIS.STRAP_JTAG_SEL EFUSE_BLK0 2 1
16 WR_DIS.USB_PHY_SEL EFUSE_BLK0 2 1
17 WR_DIS.VDD_SPI_XPD EFUSE_BLK0 3 1
18 WR_DIS.VDD_SPI_TIEH EFUSE_BLK0 3 1
19 WR_DIS.VDD_SPI_FORCE EFUSE_BLK0 3 1
20 WR_DIS.WDT_DELAY_SEL EFUSE_BLK0 3 1
21 WR_DIS.SPI_BOOT_CRYPT_CNT EFUSE_BLK0 4 1
22 WR_DIS.SECURE_BOOT_KEY_REVOKE0 EFUSE_BLK0 5 1
23 WR_DIS.SECURE_BOOT_KEY_REVOKE1 EFUSE_BLK0 6 1
24 WR_DIS.SECURE_BOOT_KEY_REVOKE2 EFUSE_BLK0 7 1
25 WR_DIS.KEY_PURPOSE_0 EFUSE_BLK0 8 1
26 WR_DIS.KEY_PURPOSE_1 EFUSE_BLK0 9 1
27 WR_DIS.KEY_PURPOSE_2 EFUSE_BLK0 10 1
28 WR_DIS.KEY_PURPOSE_3 EFUSE_BLK0 11 1
29 WR_DIS.KEY_PURPOSE_4 EFUSE_BLK0 12 1
30 WR_DIS.KEY_PURPOSE_5 EFUSE_BLK0 13 1
31 WR_DIS.SECURE_BOOT_EN EFUSE_BLK0 15 1
32 WR_DIS.SECURE_BOOT_AGGRESSIVE_REVOKE EFUSE_BLK0 16 1
33 WR_DIS.FLASH_TPUW EFUSE_BLK0 18 1
34 WR_DIS.DIS_DOWNLOAD_MODE EFUSE_BLK0 18 1
35 WR_DIS.DIS_DIRECT_BOOT EFUSE_BLK0 18 1
36 WR_DIS.DIS_USB_SERIAL_JTAG_ROM_PRINT EFUSE_BLK0 18 1
37 WR_DIS.FLASH_ECC_MODE EFUSE_BLK0 18 1
38 WR_DIS.DIS_USB_SERIAL_JTAG_DOWNLOAD_MODE EFUSE_BLK0 18 1
39 WR_DIS.ENABLE_SECURITY_DOWNLOAD EFUSE_BLK0 18 1
40 WR_DIS.UART_PRINT_CONTROL EFUSE_BLK0 18 1
41 WR_DIS.PIN_POWER_SELECTION EFUSE_BLK0 18 1
42 WR_DIS.FLASH_TYPE EFUSE_BLK0 18 1
43 WR_DIS.FLASH_PAGE_SIZE EFUSE_BLK0 18 1
44 WR_DIS.FLASH_ECC_EN EFUSE_BLK0 18 1
45 WR_DIS.FORCE_SEND_RESUME EFUSE_BLK0 18 1
46 WR_DIS.SECURE_VERSION EFUSE_BLK0 18 1
47 WR_DIS.DIS_USB_OTG_DOWNLOAD_MODE EFUSE_BLK0 19 1
48 WR_DIS.DISABLE_WAFER_VERSION_MAJOR EFUSE_BLK0 19 1
49 WR_DIS.DISABLE_BLK_VERSION_MAJOR EFUSE_BLK0 19 1
50 WR_DIS.BLK1 EFUSE_BLK0 20 1
51 WR_DIS.MAC EFUSE_BLK0 20 1
52 WR_DIS.SPI_PAD_CONFIG_CLK EFUSE_BLK0 20 1
53 WR_DIS.SPI_PAD_CONFIG_Q EFUSE_BLK0 20 1
54 WR_DIS.SPI_PAD_CONFIG_D EFUSE_BLK0 20 1
55 WR_DIS.SPI_PAD_CONFIG_CS EFUSE_BLK0 20 1
56 WR_DIS.SPI_PAD_CONFIG_HD EFUSE_BLK0 20 1
57 WR_DIS.SPI_PAD_CONFIG_WP EFUSE_BLK0 20 1
58 WR_DIS.SPI_PAD_CONFIG_DQS EFUSE_BLK0 20 1
59 WR_DIS.SPI_PAD_CONFIG_D4 EFUSE_BLK0 20 1
60 WR_DIS.SPI_PAD_CONFIG_D5 EFUSE_BLK0 20 1
61 WR_DIS.SPI_PAD_CONFIG_D6 EFUSE_BLK0 20 1
62 WR_DIS.SPI_PAD_CONFIG_D7 EFUSE_BLK0 20 1
63 WR_DIS.WAFER_VERSION_MINOR_LO EFUSE_BLK0 20 1
64 WR_DIS.PKG_VERSION EFUSE_BLK0 20 1
65 WR_DIS.BLK_VERSION_MINOR EFUSE_BLK0 20 1
66 WR_DIS.K_RTC_LDO EFUSE_BLK0 20 1
67 WR_DIS.K_DIG_LDO EFUSE_BLK0 20 1
68 WR_DIS.V_RTC_DBIAS20 EFUSE_BLK0 20 1
69 WR_DIS.V_DIG_DBIAS20 EFUSE_BLK0 20 1
70 WR_DIS.DIG_DBIAS_HVT EFUSE_BLK0 20 1
71 WR_DIS.WAFER_VERSION_MINOR_HI EFUSE_BLK0 20 1
72 WR_DIS.WAFER_VERSION_MAJOR EFUSE_BLK0 20 1
73 WR_DIS.ADC2_CAL_VOL_ATTEN3 EFUSE_BLK0 20 1
74 WR_DIS.SYS_DATA_PART1 EFUSE_BLK0 21 1
75 WR_DIS.OPTIONAL_UNIQUE_ID EFUSE_BLK0 21 1
76 WR_DIS.BLK_VERSION_MAJOR EFUSE_BLK0 21 1
77 WR_DIS.TEMP_CALIB EFUSE_BLK0 21 1
78 WR_DIS.OCODE EFUSE_BLK0 21 1
79 WR_DIS.ADC1_INIT_CODE_ATTEN0 EFUSE_BLK0 21 1
80 WR_DIS.ADC1_INIT_CODE_ATTEN1 EFUSE_BLK0 21 1
81 WR_DIS.ADC1_INIT_CODE_ATTEN2 EFUSE_BLK0 21 1
82 WR_DIS.ADC1_INIT_CODE_ATTEN3 EFUSE_BLK0 21 1
83 WR_DIS.ADC2_INIT_CODE_ATTEN0 EFUSE_BLK0 21 1
84 WR_DIS.ADC2_INIT_CODE_ATTEN1 EFUSE_BLK0 21 1
85 WR_DIS.ADC2_INIT_CODE_ATTEN2 EFUSE_BLK0 21 1
86 WR_DIS.ADC2_INIT_CODE_ATTEN3 EFUSE_BLK0 21 1
87 WR_DIS.ADC1_CAL_VOL_ATTEN0 EFUSE_BLK0 21 1
88 WR_DIS.ADC1_CAL_VOL_ATTEN1 EFUSE_BLK0 21 1
89 WR_DIS.ADC1_CAL_VOL_ATTEN2 EFUSE_BLK0 21 1
90 WR_DIS.ADC1_CAL_VOL_ATTEN3 EFUSE_BLK0 21 1
91 WR_DIS.ADC2_CAL_VOL_ATTEN0 EFUSE_BLK0 21 1
92 WR_DIS.ADC2_CAL_VOL_ATTEN1 EFUSE_BLK0 21 1
93 WR_DIS.ADC2_CAL_VOL_ATTEN2 EFUSE_BLK0 21 1
94 WR_DIS.BLOCK_USR_DATA EFUSE_BLK0 22 1
95 WR_DIS.CUSTOM_MAC EFUSE_BLK0 22 1
96 WR_DIS.BLOCK_KEY0 EFUSE_BLK0 23 1
97 WR_DIS.BLOCK_KEY1 EFUSE_BLK0 24 1
98 WR_DIS.BLOCK_KEY2 EFUSE_BLK0 25 1
99 WR_DIS.BLOCK_KEY3 EFUSE_BLK0 26 1
100 WR_DIS.BLOCK_KEY4 EFUSE_BLK0 27 1
101 WR_DIS.BLOCK_KEY5 EFUSE_BLK0 28 1
102 WR_DIS.BLOCK_SYS_DATA2 EFUSE_BLK0 29 1
103 WR_DIS.USB_EXCHG_PINS EFUSE_BLK0 30 1
104 WR_DIS.USB_EXT_PHY_ENABLE EFUSE_BLK0 30 1
105 WR_DIS.SOFT_DIS_JTAG EFUSE_BLK0 31 1
106 RD_DIS EFUSE_BLK0 32 7
107 RD_DIS.BLOCK_KEY0 EFUSE_BLK0 32 1
108 RD_DIS.BLOCK_KEY1 EFUSE_BLK0 33 1
109 RD_DIS.BLOCK_KEY2 EFUSE_BLK0 34 1
110 RD_DIS.BLOCK_KEY3 EFUSE_BLK0 35 1
111 RD_DIS.BLOCK_KEY4 EFUSE_BLK0 36 1
112 RD_DIS.BLOCK_KEY5 EFUSE_BLK0 37 1
113 RD_DIS.BLOCK_SYS_DATA2 EFUSE_BLK0 38 1
114 DIS_ICACHE EFUSE_BLK0 40 1
115 DIS_DCACHE EFUSE_BLK0 41 1
116 DIS_DOWNLOAD_ICACHE EFUSE_BLK0 42 1
117 DIS_DOWNLOAD_DCACHE EFUSE_BLK0 43 1
118 DIS_FORCE_DOWNLOAD EFUSE_BLK0 44 1
119 DIS_USB_OTG EFUSE_BLK0 45 1
120 DIS_TWAI EFUSE_BLK0 46 1
121 DIS_APP_CPU EFUSE_BLK0 47 1
122 SOFT_DIS_JTAG EFUSE_BLK0 48 3
123 DIS_PAD_JTAG EFUSE_BLK0 51 1
124 DIS_DOWNLOAD_MANUAL_ENCRYPT EFUSE_BLK0 52 1
125 USB_EXCHG_PINS EFUSE_BLK0 57 1
126 USB_EXT_PHY_ENABLE EFUSE_BLK0 58 1
127 VDD_SPI_XPD EFUSE_BLK0 68 1
128 VDD_SPI_TIEH EFUSE_BLK0 69 1
129 VDD_SPI_FORCE EFUSE_BLK0 70 1
130 WDT_DELAY_SEL EFUSE_BLK0 80 2
131 SPI_BOOT_CRYPT_CNT EFUSE_BLK0 82 3
132 SECURE_BOOT_KEY_REVOKE0 EFUSE_BLK0 85 1
133 SECURE_BOOT_KEY_REVOKE1 EFUSE_BLK0 86 1
134 SECURE_BOOT_KEY_REVOKE2 EFUSE_BLK0 87 1
135 KEY_PURPOSE_0 EFUSE_BLK0 88 4
136 KEY_PURPOSE_1 EFUSE_BLK0 92 4
137 KEY_PURPOSE_2 EFUSE_BLK0 96 4
138 KEY_PURPOSE_3 EFUSE_BLK0 100 4
139 KEY_PURPOSE_4 EFUSE_BLK0 104 4
140 KEY_PURPOSE_5 EFUSE_BLK0 108 4
141 SECURE_BOOT_EN EFUSE_BLK0 116 1
142 SECURE_BOOT_AGGRESSIVE_REVOKE EFUSE_BLK0 117 1
143 DIS_USB_JTAG EFUSE_BLK0 118 1
144 DIS_USB_SERIAL_JTAG EFUSE_BLK0 119 1
145 STRAP_JTAG_SEL EFUSE_BLK0 120 1
146 USB_PHY_SEL EFUSE_BLK0 121 1
147 FLASH_TPUW EFUSE_BLK0 124 4
148 DIS_DOWNLOAD_MODE EFUSE_BLK0 128 1
149 DIS_DIRECT_BOOT EFUSE_BLK0 129 1
150 DIS_USB_SERIAL_JTAG_ROM_PRINT EFUSE_BLK0 130 1
151 FLASH_ECC_MODE EFUSE_BLK0 131 1
152 DIS_USB_SERIAL_JTAG_DOWNLOAD_MODE EFUSE_BLK0 132 1
153 ENABLE_SECURITY_DOWNLOAD EFUSE_BLK0 133 1
154 UART_PRINT_CONTROL EFUSE_BLK0 134 2
155 PIN_POWER_SELECTION EFUSE_BLK0 136 1
156 FLASH_TYPE EFUSE_BLK0 137 1
157 FLASH_PAGE_SIZE EFUSE_BLK0 138 2
158 FLASH_ECC_EN EFUSE_BLK0 140 1
159 FORCE_SEND_RESUME EFUSE_BLK0 141 1
160 SECURE_VERSION EFUSE_BLK0 142 16
161 DIS_USB_OTG_DOWNLOAD_MODE EFUSE_BLK0 159 1
162 DISABLE_WAFER_VERSION_MAJOR EFUSE_BLK0 160 1
163 DISABLE_BLK_VERSION_MAJOR EFUSE_BLK0 161 1
164 MAC EFUSE_BLK1 0 8
165 MAC EFUSE_BLK1 8 8
166 MAC EFUSE_BLK1 16 8
167 MAC EFUSE_BLK1 24 8
168 MAC EFUSE_BLK1 32 8
169 MAC EFUSE_BLK1 40 8
170 SPI_PAD_CONFIG_CLK EFUSE_BLK1 48 6
171 SPI_PAD_CONFIG_Q EFUSE_BLK1 54 6
172 SPI_PAD_CONFIG_D EFUSE_BLK1 60 6
173 SPI_PAD_CONFIG_CS EFUSE_BLK1 66 6
174 SPI_PAD_CONFIG_HD EFUSE_BLK1 72 6
175 SPI_PAD_CONFIG_WP EFUSE_BLK1 78 6
176 SPI_PAD_CONFIG_DQS EFUSE_BLK1 84 6
177 SPI_PAD_CONFIG_D4 EFUSE_BLK1 90 6
178 SPI_PAD_CONFIG_D5 EFUSE_BLK1 96 6
179 SPI_PAD_CONFIG_D6 EFUSE_BLK1 102 6
180 SPI_PAD_CONFIG_D7 EFUSE_BLK1 108 6
181 WAFER_VERSION_MINOR_LO EFUSE_BLK1 114 3
182 PKG_VERSION EFUSE_BLK1 117 3
183 BLK_VERSION_MINOR EFUSE_BLK1 120 3
184 K_RTC_LDO EFUSE_BLK1 141 7
185 K_DIG_LDO EFUSE_BLK1 148 7
186 V_RTC_DBIAS20 EFUSE_BLK1 155 8
187 V_DIG_DBIAS20 EFUSE_BLK1 163 8
188 DIG_DBIAS_HVT EFUSE_BLK1 171 5
189 WAFER_VERSION_MINOR_HI EFUSE_BLK1 183 1
190 WAFER_VERSION_MAJOR EFUSE_BLK1 184 2
191 ADC2_CAL_VOL_ATTEN3 EFUSE_BLK1 186 6
192 SYS_DATA_PART2 EFUSE_BLK10 0 256
193 OPTIONAL_UNIQUE_ID EFUSE_BLK2 0 128
194 BLK_VERSION_MAJOR EFUSE_BLK2 128 2
195 TEMP_CALIB EFUSE_BLK2 132 9
196 OCODE EFUSE_BLK2 141 8
197 ADC1_INIT_CODE_ATTEN0 EFUSE_BLK2 149 8
198 ADC1_INIT_CODE_ATTEN1 EFUSE_BLK2 157 6
199 ADC1_INIT_CODE_ATTEN2 EFUSE_BLK2 163 6
200 ADC1_INIT_CODE_ATTEN3 EFUSE_BLK2 169 6
201 ADC2_INIT_CODE_ATTEN0 EFUSE_BLK2 175 8
202 ADC2_INIT_CODE_ATTEN1 EFUSE_BLK2 183 6
203 ADC2_INIT_CODE_ATTEN2 EFUSE_BLK2 189 6
204 ADC2_INIT_CODE_ATTEN3 EFUSE_BLK2 195 6
205 ADC1_CAL_VOL_ATTEN0 EFUSE_BLK2 201 8
206 ADC1_CAL_VOL_ATTEN1 EFUSE_BLK2 209 8
207 ADC1_CAL_VOL_ATTEN2 EFUSE_BLK2 217 8
208 ADC1_CAL_VOL_ATTEN3 EFUSE_BLK2 225 8
209 ADC2_CAL_VOL_ATTEN0 EFUSE_BLK2 233 8
210 ADC2_CAL_VOL_ATTEN1 EFUSE_BLK2 241 7
211 ADC2_CAL_VOL_ATTEN2 EFUSE_BLK2 248 7
212 USER_DATA EFUSE_BLK3 0 256
213 USER_DATA.MAC_CUSTOM EFUSE_BLK3 200 48
214 KEY0 EFUSE_BLK4 0 256
215 KEY1 EFUSE_BLK5 0 256
216 KEY2 EFUSE_BLK6 0 256
217 KEY3 EFUSE_BLK7 0 256
218 KEY4 EFUSE_BLK8 0 256
219 KEY5 EFUSE_BLK9 0 256
1 WR_DIS EFUSE_BLK0 0 32
2 WR_DIS.RD_DIS EFUSE_BLK0 0 1
3 WR_DIS.DIS_ICACHE EFUSE_BLK0 2 1
4 WR_DIS.DIS_DCACHE EFUSE_BLK0 2 1
5 WR_DIS.DIS_DOWNLOAD_ICACHE EFUSE_BLK0 2 1
6 WR_DIS.DIS_DOWNLOAD_DCACHE EFUSE_BLK0 2 1
7 WR_DIS.DIS_FORCE_DOWNLOAD EFUSE_BLK0 2 1
8 WR_DIS.DIS_USB_OTG EFUSE_BLK0 2 1
9 WR_DIS.DIS_TWAI EFUSE_BLK0 2 1
10 WR_DIS.DIS_APP_CPU EFUSE_BLK0 2 1
11 WR_DIS.DIS_PAD_JTAG EFUSE_BLK0 2 1
12 WR_DIS.DIS_DOWNLOAD_MANUAL_ENCRYPT EFUSE_BLK0 2 1
13 WR_DIS.DIS_USB_JTAG EFUSE_BLK0 2 1
14 WR_DIS.DIS_USB_SERIAL_JTAG EFUSE_BLK0 2 1
15 WR_DIS.STRAP_JTAG_SEL EFUSE_BLK0 2 1
16 WR_DIS.USB_PHY_SEL EFUSE_BLK0 2 1
17 WR_DIS.VDD_SPI_XPD EFUSE_BLK0 3 1
18 WR_DIS.VDD_SPI_TIEH EFUSE_BLK0 3 1
19 WR_DIS.VDD_SPI_FORCE EFUSE_BLK0 3 1
20 WR_DIS.WDT_DELAY_SEL EFUSE_BLK0 3 1
21 WR_DIS.SPI_BOOT_CRYPT_CNT EFUSE_BLK0 4 1
22 WR_DIS.SECURE_BOOT_KEY_REVOKE0 EFUSE_BLK0 5 1
23 WR_DIS.SECURE_BOOT_KEY_REVOKE1 EFUSE_BLK0 6 1
24 WR_DIS.SECURE_BOOT_KEY_REVOKE2 EFUSE_BLK0 7 1
25 WR_DIS.KEY_PURPOSE_0 EFUSE_BLK0 8 1
26 WR_DIS.KEY_PURPOSE_1 EFUSE_BLK0 9 1
27 WR_DIS.KEY_PURPOSE_2 EFUSE_BLK0 10 1
28 WR_DIS.KEY_PURPOSE_3 EFUSE_BLK0 11 1
29 WR_DIS.KEY_PURPOSE_4 EFUSE_BLK0 12 1
30 WR_DIS.KEY_PURPOSE_5 EFUSE_BLK0 13 1
31 WR_DIS.SECURE_BOOT_EN EFUSE_BLK0 15 1
32 WR_DIS.SECURE_BOOT_AGGRESSIVE_REVOKE EFUSE_BLK0 16 1
33 WR_DIS.FLASH_TPUW EFUSE_BLK0 18 1
34 WR_DIS.DIS_DOWNLOAD_MODE EFUSE_BLK0 18 1
35 WR_DIS.DIS_DIRECT_BOOT EFUSE_BLK0 18 1
36 WR_DIS.DIS_USB_SERIAL_JTAG_ROM_PRINT EFUSE_BLK0 18 1
37 WR_DIS.FLASH_ECC_MODE EFUSE_BLK0 18 1
38 WR_DIS.DIS_USB_SERIAL_JTAG_DOWNLOAD_MODE EFUSE_BLK0 18 1
39 WR_DIS.ENABLE_SECURITY_DOWNLOAD EFUSE_BLK0 18 1
40 WR_DIS.UART_PRINT_CONTROL EFUSE_BLK0 18 1
41 WR_DIS.PIN_POWER_SELECTION EFUSE_BLK0 18 1
42 WR_DIS.FLASH_TYPE EFUSE_BLK0 18 1
43 WR_DIS.FLASH_PAGE_SIZE EFUSE_BLK0 18 1
44 WR_DIS.FLASH_ECC_EN EFUSE_BLK0 18 1
45 WR_DIS.FORCE_SEND_RESUME EFUSE_BLK0 18 1
46 WR_DIS.SECURE_VERSION EFUSE_BLK0 18 1
47 WR_DIS.DIS_USB_OTG_DOWNLOAD_MODE EFUSE_BLK0 19 1
48 WR_DIS.DISABLE_WAFER_VERSION_MAJOR EFUSE_BLK0 19 1
49 WR_DIS.DISABLE_BLK_VERSION_MAJOR EFUSE_BLK0 19 1
50 WR_DIS.BLK1 EFUSE_BLK0 20 1
51 WR_DIS.MAC EFUSE_BLK0 20 1
52 WR_DIS.SPI_PAD_CONFIG_CLK EFUSE_BLK0 20 1
53 WR_DIS.SPI_PAD_CONFIG_Q EFUSE_BLK0 20 1
54 WR_DIS.SPI_PAD_CONFIG_D EFUSE_BLK0 20 1
55 WR_DIS.SPI_PAD_CONFIG_CS EFUSE_BLK0 20 1
56 WR_DIS.SPI_PAD_CONFIG_HD EFUSE_BLK0 20 1
57 WR_DIS.SPI_PAD_CONFIG_WP EFUSE_BLK0 20 1
58 WR_DIS.SPI_PAD_CONFIG_DQS EFUSE_BLK0 20 1
59 WR_DIS.SPI_PAD_CONFIG_D4 EFUSE_BLK0 20 1
60 WR_DIS.SPI_PAD_CONFIG_D5 EFUSE_BLK0 20 1
61 WR_DIS.SPI_PAD_CONFIG_D6 EFUSE_BLK0 20 1
62 WR_DIS.SPI_PAD_CONFIG_D7 EFUSE_BLK0 20 1
63 WR_DIS.WAFER_VERSION_MINOR_LO EFUSE_BLK0 20 1
64 WR_DIS.PKG_VERSION EFUSE_BLK0 20 1
65 WR_DIS.BLK_VERSION_MINOR EFUSE_BLK0 20 1
66 WR_DIS.K_RTC_LDO EFUSE_BLK0 20 1
67 WR_DIS.K_DIG_LDO EFUSE_BLK0 20 1
68 WR_DIS.V_RTC_DBIAS20 EFUSE_BLK0 20 1
69 WR_DIS.V_DIG_DBIAS20 EFUSE_BLK0 20 1
70 WR_DIS.DIG_DBIAS_HVT EFUSE_BLK0 20 1
71 WR_DIS.WAFER_VERSION_MINOR_HI EFUSE_BLK0 20 1
72 WR_DIS.WAFER_VERSION_MAJOR EFUSE_BLK0 20 1
73 WR_DIS.ADC2_CAL_VOL_ATTEN3 EFUSE_BLK0 20 1
74 WR_DIS.SYS_DATA_PART1 EFUSE_BLK0 21 1
75 WR_DIS.OPTIONAL_UNIQUE_ID EFUSE_BLK0 21 1
76 WR_DIS.BLK_VERSION_MAJOR EFUSE_BLK0 21 1
77 WR_DIS.TEMP_CALIB EFUSE_BLK0 21 1
78 WR_DIS.OCODE EFUSE_BLK0 21 1
79 WR_DIS.ADC1_INIT_CODE_ATTEN0 EFUSE_BLK0 21 1
80 WR_DIS.ADC1_INIT_CODE_ATTEN1 EFUSE_BLK0 21 1
81 WR_DIS.ADC1_INIT_CODE_ATTEN2 EFUSE_BLK0 21 1
82 WR_DIS.ADC1_INIT_CODE_ATTEN3 EFUSE_BLK0 21 1
83 WR_DIS.ADC2_INIT_CODE_ATTEN0 EFUSE_BLK0 21 1
84 WR_DIS.ADC2_INIT_CODE_ATTEN1 EFUSE_BLK0 21 1
85 WR_DIS.ADC2_INIT_CODE_ATTEN2 EFUSE_BLK0 21 1
86 WR_DIS.ADC2_INIT_CODE_ATTEN3 EFUSE_BLK0 21 1
87 WR_DIS.ADC1_CAL_VOL_ATTEN0 EFUSE_BLK0 21 1
88 WR_DIS.ADC1_CAL_VOL_ATTEN1 EFUSE_BLK0 21 1
89 WR_DIS.ADC1_CAL_VOL_ATTEN2 EFUSE_BLK0 21 1
90 WR_DIS.ADC1_CAL_VOL_ATTEN3 EFUSE_BLK0 21 1
91 WR_DIS.ADC2_CAL_VOL_ATTEN0 EFUSE_BLK0 21 1
92 WR_DIS.ADC2_CAL_VOL_ATTEN1 EFUSE_BLK0 21 1
93 WR_DIS.ADC2_CAL_VOL_ATTEN2 EFUSE_BLK0 21 1
94 WR_DIS.BLOCK_USR_DATA EFUSE_BLK0 22 1
95 WR_DIS.CUSTOM_MAC EFUSE_BLK0 22 1
96 WR_DIS.BLOCK_KEY0 EFUSE_BLK0 23 1
97 WR_DIS.BLOCK_KEY1 EFUSE_BLK0 24 1
98 WR_DIS.BLOCK_KEY2 EFUSE_BLK0 25 1
99 WR_DIS.BLOCK_KEY3 EFUSE_BLK0 26 1
100 WR_DIS.BLOCK_KEY4 EFUSE_BLK0 27 1
101 WR_DIS.BLOCK_KEY5 EFUSE_BLK0 28 1
102 WR_DIS.BLOCK_SYS_DATA2 EFUSE_BLK0 29 1
103 WR_DIS.USB_EXCHG_PINS EFUSE_BLK0 30 1
104 WR_DIS.USB_EXT_PHY_ENABLE EFUSE_BLK0 30 1
105 WR_DIS.SOFT_DIS_JTAG EFUSE_BLK0 31 1
106 RD_DIS EFUSE_BLK0 32 7
107 RD_DIS.BLOCK_KEY0 EFUSE_BLK0 32 1
108 RD_DIS.BLOCK_KEY1 EFUSE_BLK0 33 1
109 RD_DIS.BLOCK_KEY2 EFUSE_BLK0 34 1
110 RD_DIS.BLOCK_KEY3 EFUSE_BLK0 35 1
111 RD_DIS.BLOCK_KEY4 EFUSE_BLK0 36 1
112 RD_DIS.BLOCK_KEY5 EFUSE_BLK0 37 1
113 RD_DIS.BLOCK_SYS_DATA2 EFUSE_BLK0 38 1
114 DIS_ICACHE EFUSE_BLK0 40 1
115 DIS_DCACHE EFUSE_BLK0 41 1
116 DIS_DOWNLOAD_ICACHE EFUSE_BLK0 42 1
117 DIS_DOWNLOAD_DCACHE EFUSE_BLK0 43 1
118 DIS_FORCE_DOWNLOAD EFUSE_BLK0 44 1
119 DIS_USB_OTG EFUSE_BLK0 45 1
120 DIS_TWAI EFUSE_BLK0 46 1
121 DIS_APP_CPU EFUSE_BLK0 47 1
122 SOFT_DIS_JTAG EFUSE_BLK0 48 3
123 DIS_PAD_JTAG EFUSE_BLK0 51 1
124 DIS_DOWNLOAD_MANUAL_ENCRYPT EFUSE_BLK0 52 1
125 USB_EXCHG_PINS EFUSE_BLK0 57 1
126 USB_EXT_PHY_ENABLE EFUSE_BLK0 58 1
127 VDD_SPI_XPD EFUSE_BLK0 68 1
128 VDD_SPI_TIEH EFUSE_BLK0 69 1
129 VDD_SPI_FORCE EFUSE_BLK0 70 1
130 WDT_DELAY_SEL EFUSE_BLK0 80 2
131 SPI_BOOT_CRYPT_CNT EFUSE_BLK0 82 3
132 SECURE_BOOT_KEY_REVOKE0 EFUSE_BLK0 85 1
133 SECURE_BOOT_KEY_REVOKE1 EFUSE_BLK0 86 1
134 SECURE_BOOT_KEY_REVOKE2 EFUSE_BLK0 87 1
135 KEY_PURPOSE_0 EFUSE_BLK0 88 4
136 KEY_PURPOSE_1 EFUSE_BLK0 92 4
137 KEY_PURPOSE_2 EFUSE_BLK0 96 4
138 KEY_PURPOSE_3 EFUSE_BLK0 100 4
139 KEY_PURPOSE_4 EFUSE_BLK0 104 4
140 KEY_PURPOSE_5 EFUSE_BLK0 108 4
141 SECURE_BOOT_EN EFUSE_BLK0 116 1
142 SECURE_BOOT_AGGRESSIVE_REVOKE EFUSE_BLK0 117 1
143 DIS_USB_JTAG EFUSE_BLK0 118 1
144 DIS_USB_SERIAL_JTAG EFUSE_BLK0 119 1
145 STRAP_JTAG_SEL EFUSE_BLK0 120 1
146 USB_PHY_SEL EFUSE_BLK0 121 1
147 FLASH_TPUW EFUSE_BLK0 124 4
148 DIS_DOWNLOAD_MODE EFUSE_BLK0 128 1
149 DIS_DIRECT_BOOT EFUSE_BLK0 129 1
150 DIS_USB_SERIAL_JTAG_ROM_PRINT EFUSE_BLK0 130 1
151 FLASH_ECC_MODE EFUSE_BLK0 131 1
152 DIS_USB_SERIAL_JTAG_DOWNLOAD_MODE EFUSE_BLK0 132 1
153 ENABLE_SECURITY_DOWNLOAD EFUSE_BLK0 133 1
154 UART_PRINT_CONTROL EFUSE_BLK0 134 2
155 PIN_POWER_SELECTION EFUSE_BLK0 136 1
156 FLASH_TYPE EFUSE_BLK0 137 1
157 FLASH_PAGE_SIZE EFUSE_BLK0 138 2
158 FLASH_ECC_EN EFUSE_BLK0 140 1
159 FORCE_SEND_RESUME EFUSE_BLK0 141 1
160 SECURE_VERSION EFUSE_BLK0 142 16
161 DIS_USB_OTG_DOWNLOAD_MODE EFUSE_BLK0 159 1
162 DISABLE_WAFER_VERSION_MAJOR EFUSE_BLK0 160 1
163 DISABLE_BLK_VERSION_MAJOR EFUSE_BLK0 161 1
164 MAC EFUSE_BLK1 0 8
165 MAC EFUSE_BLK1 8 8
166 MAC EFUSE_BLK1 16 8
167 MAC EFUSE_BLK1 24 8
168 MAC EFUSE_BLK1 32 8
169 MAC EFUSE_BLK1 40 8
170 SPI_PAD_CONFIG_CLK EFUSE_BLK1 48 6
171 SPI_PAD_CONFIG_Q EFUSE_BLK1 54 6
172 SPI_PAD_CONFIG_D EFUSE_BLK1 60 6
173 SPI_PAD_CONFIG_CS EFUSE_BLK1 66 6
174 SPI_PAD_CONFIG_HD EFUSE_BLK1 72 6
175 SPI_PAD_CONFIG_WP EFUSE_BLK1 78 6
176 SPI_PAD_CONFIG_DQS EFUSE_BLK1 84 6
177 SPI_PAD_CONFIG_D4 EFUSE_BLK1 90 6
178 SPI_PAD_CONFIG_D5 EFUSE_BLK1 96 6
179 SPI_PAD_CONFIG_D6 EFUSE_BLK1 102 6
180 SPI_PAD_CONFIG_D7 EFUSE_BLK1 108 6
181 WAFER_VERSION_MINOR_LO EFUSE_BLK1 114 3
182 PKG_VERSION EFUSE_BLK1 117 3
183 BLK_VERSION_MINOR EFUSE_BLK1 120 3
184 K_RTC_LDO EFUSE_BLK1 141 7
185 K_DIG_LDO EFUSE_BLK1 148 7
186 V_RTC_DBIAS20 EFUSE_BLK1 155 8
187 V_DIG_DBIAS20 EFUSE_BLK1 163 8
188 DIG_DBIAS_HVT EFUSE_BLK1 171 5
189 WAFER_VERSION_MINOR_HI EFUSE_BLK1 183 1
190 WAFER_VERSION_MAJOR EFUSE_BLK1 184 2
191 ADC2_CAL_VOL_ATTEN3 EFUSE_BLK1 186 6
192 SYS_DATA_PART2 EFUSE_BLK10 0 256
193 OPTIONAL_UNIQUE_ID EFUSE_BLK2 0 128
194 BLK_VERSION_MAJOR EFUSE_BLK2 128 2
195 TEMP_CALIB EFUSE_BLK2 132 9
196 OCODE EFUSE_BLK2 141 8
197 ADC1_INIT_CODE_ATTEN0 EFUSE_BLK2 149 8
198 ADC1_INIT_CODE_ATTEN1 EFUSE_BLK2 157 6
199 ADC1_INIT_CODE_ATTEN2 EFUSE_BLK2 163 6
200 ADC1_INIT_CODE_ATTEN3 EFUSE_BLK2 169 6
201 ADC2_INIT_CODE_ATTEN0 EFUSE_BLK2 175 8
202 ADC2_INIT_CODE_ATTEN1 EFUSE_BLK2 183 6
203 ADC2_INIT_CODE_ATTEN2 EFUSE_BLK2 189 6
204 ADC2_INIT_CODE_ATTEN3 EFUSE_BLK2 195 6
205 ADC1_CAL_VOL_ATTEN0 EFUSE_BLK2 201 8
206 ADC1_CAL_VOL_ATTEN1 EFUSE_BLK2 209 8
207 ADC1_CAL_VOL_ATTEN2 EFUSE_BLK2 217 8
208 ADC1_CAL_VOL_ATTEN3 EFUSE_BLK2 225 8
209 ADC2_CAL_VOL_ATTEN0 EFUSE_BLK2 233 8
210 ADC2_CAL_VOL_ATTEN1 EFUSE_BLK2 241 7
211 ADC2_CAL_VOL_ATTEN2 EFUSE_BLK2 248 7
212 USER_DATA EFUSE_BLK3 0 256
213 USER_DATA.MAC_CUSTOM EFUSE_BLK3 200 48
214 KEY0 EFUSE_BLK4 0 256
215 KEY1 EFUSE_BLK5 0 256
216 KEY2 EFUSE_BLK6 0 256
217 KEY3 EFUSE_BLK7 0 256
218 KEY4 EFUSE_BLK8 0 256
219 KEY5 EFUSE_BLK9 0 256
Used bits in efuse table:
EFUSE_BLK0
[0 31] [0 0] [2 2] ... [22 30] [30 38] [32 38] [40 52] [57 58] [68 70] [80 111] [116 121] [124 157] [159 161]
EFUSE_BLK1
[0 122] [141 175] [183 191]
EFUSE_BLK10
[0 255]
EFUSE_BLK2
[0 129] [132 254]
EFUSE_BLK3
[0 255] [200 247]
EFUSE_BLK4
[0 255]
EFUSE_BLK5
[0 255]
EFUSE_BLK6
[0 255]
EFUSE_BLK7
[0 255]
EFUSE_BLK8
[0 255]
EFUSE_BLK9
[0 255]
EFUSE_BLK0
[0 31] [0 0] [2 2] ... [22 30] [30 38] [32 38] [40 52] [57 58] [68 70] [80 111] [116 121] [124 157] [159 161]
EFUSE_BLK1
[0 122] [141 175] [183 191]
EFUSE_BLK10
[0 255]
EFUSE_BLK2
[0 129] [132 254]
EFUSE_BLK3
[0 255] [200 247]
EFUSE_BLK4
[0 255]
EFUSE_BLK5
[0 255]
EFUSE_BLK6
[0 255]
EFUSE_BLK7
[0 255]
EFUSE_BLK8
[0 255]
EFUSE_BLK9
[0 255]
Note: Not printed ranges are free for using. (bits in EFUSE_BLK0 are reserved for Espressif)

View File

@ -8,124 +8,124 @@
Max number of bits in BLK 192
Sorted efuse table:
# field_name efuse_block bit_start bit_count
1 WR_DIS EFUSE_BLK0 0 16
2 WR_DIS.RD_DIS EFUSE_BLK0 0 1
3 WR_DIS.WR_DIS EFUSE_BLK0 1 1
4 WR_DIS.FLASH_CRYPT_CNT EFUSE_BLK0 2 1
5 WR_DIS.UART_DOWNLOAD_DIS EFUSE_BLK0 2 1
6 WR_DIS.MAC EFUSE_BLK0 3 1
7 WR_DIS.MAC_CRC EFUSE_BLK0 3 1
8 WR_DIS.DISABLE_APP_CPU EFUSE_BLK0 3 1
9 WR_DIS.DISABLE_BT EFUSE_BLK0 3 1
10 WR_DIS.DIS_CACHE EFUSE_BLK0 3 1
11 WR_DIS.VOL_LEVEL_HP_INV EFUSE_BLK0 3 1
12 WR_DIS.CLK8M_FREQ EFUSE_BLK0 4 1
13 WR_DIS.ADC_VREF EFUSE_BLK0 4 1
14 WR_DIS.XPD_SDIO_REG EFUSE_BLK0 5 1
15 WR_DIS.XPD_SDIO_TIEH EFUSE_BLK0 5 1
16 WR_DIS.XPD_SDIO_FORCE EFUSE_BLK0 5 1
17 WR_DIS.SPI_PAD_CONFIG_CLK EFUSE_BLK0 6 1
18 WR_DIS.SPI_PAD_CONFIG_Q EFUSE_BLK0 6 1
19 WR_DIS.SPI_PAD_CONFIG_D EFUSE_BLK0 6 1
20 WR_DIS.SPI_PAD_CONFIG_CS0 EFUSE_BLK0 6 1
21 WR_DIS.BLOCK1 EFUSE_BLK0 7 1
22 WR_DIS.BLOCK2 EFUSE_BLK0 8 1
23 WR_DIS.BLOCK3 EFUSE_BLK0 9 1
24 WR_DIS.CUSTOM_MAC_CRC EFUSE_BLK0 9 1
25 WR_DIS.CUSTOM_MAC EFUSE_BLK0 9 1
26 WR_DIS.ADC1_TP_LOW EFUSE_BLK0 9 1
27 WR_DIS.ADC1_TP_HIGH EFUSE_BLK0 9 1
28 WR_DIS.ADC2_TP_LOW EFUSE_BLK0 9 1
29 WR_DIS.ADC2_TP_HIGH EFUSE_BLK0 9 1
30 WR_DIS.SECURE_VERSION EFUSE_BLK0 9 1
31 WR_DIS.MAC_VERSION EFUSE_BLK0 9 1
32 WR_DIS.BLK3_PART_RESERVE EFUSE_BLK0 10 1
33 WR_DIS.FLASH_CRYPT_CONFIG EFUSE_BLK0 10 1
34 WR_DIS.CODING_SCHEME EFUSE_BLK0 10 1
35 WR_DIS.KEY_STATUS EFUSE_BLK0 10 1
36 WR_DIS.ABS_DONE_0 EFUSE_BLK0 12 1
37 WR_DIS.ABS_DONE_1 EFUSE_BLK0 13 1
38 WR_DIS.JTAG_DISABLE EFUSE_BLK0 14 1
39 WR_DIS.CONSOLE_DEBUG_DISABLE EFUSE_BLK0 15 1
40 WR_DIS.DISABLE_DL_ENCRYPT EFUSE_BLK0 15 1
41 WR_DIS.DISABLE_DL_DECRYPT EFUSE_BLK0 15 1
42 WR_DIS.DISABLE_DL_CACHE EFUSE_BLK0 15 1
43 RD_DIS EFUSE_BLK0 16 4
44 RD_DIS.BLOCK1 EFUSE_BLK0 16 1
45 RD_DIS.BLOCK2 EFUSE_BLK0 17 1
46 RD_DIS.BLOCK3 EFUSE_BLK0 18 1
47 RD_DIS.CUSTOM_MAC_CRC EFUSE_BLK0 18 1
48 RD_DIS.CUSTOM_MAC EFUSE_BLK0 18 1
49 RD_DIS.ADC1_TP_LOW EFUSE_BLK0 18 1
50 RD_DIS.ADC1_TP_HIGH EFUSE_BLK0 18 1
51 RD_DIS.ADC2_TP_LOW EFUSE_BLK0 18 1
52 RD_DIS.ADC2_TP_HIGH EFUSE_BLK0 18 1
53 RD_DIS.SECURE_VERSION EFUSE_BLK0 18 1
54 RD_DIS.MAC_VERSION EFUSE_BLK0 18 1
55 RD_DIS.BLK3_PART_RESERVE EFUSE_BLK0 19 1
56 RD_DIS.FLASH_CRYPT_CONFIG EFUSE_BLK0 19 1
57 RD_DIS.CODING_SCHEME EFUSE_BLK0 19 1
58 RD_DIS.KEY_STATUS EFUSE_BLK0 19 1
59 FLASH_CRYPT_CNT EFUSE_BLK0 20 7
60 UART_DOWNLOAD_DIS EFUSE_BLK0 27 1
61 MAC EFUSE_BLK0 32 8
62 MAC EFUSE_BLK0 40 8
63 MAC EFUSE_BLK0 48 8
64 MAC EFUSE_BLK0 56 8
65 MAC EFUSE_BLK0 64 8
66 MAC EFUSE_BLK0 72 8
67 MAC_CRC EFUSE_BLK0 80 8
68 DISABLE_APP_CPU EFUSE_BLK0 96 1
69 DISABLE_BT EFUSE_BLK0 97 1
70 CHIP_PACKAGE_4BIT EFUSE_BLK0 98 1
71 DIS_CACHE EFUSE_BLK0 99 1
72 SPI_PAD_CONFIG_HD EFUSE_BLK0 100 5
73 CHIP_PACKAGE EFUSE_BLK0 105 3
74 CHIP_CPU_FREQ_LOW EFUSE_BLK0 108 1
75 CHIP_CPU_FREQ_RATED EFUSE_BLK0 109 1
76 BLK3_PART_RESERVE EFUSE_BLK0 110 1
77 CHIP_VER_REV1 EFUSE_BLK0 111 1
78 CLK8M_FREQ EFUSE_BLK0 128 8
79 ADC_VREF EFUSE_BLK0 136 5
80 XPD_SDIO_REG EFUSE_BLK0 142 1
81 XPD_SDIO_TIEH EFUSE_BLK0 143 1
82 XPD_SDIO_FORCE EFUSE_BLK0 144 1
83 SPI_PAD_CONFIG_CLK EFUSE_BLK0 160 5
84 SPI_PAD_CONFIG_Q EFUSE_BLK0 165 5
85 SPI_PAD_CONFIG_D EFUSE_BLK0 170 5
86 SPI_PAD_CONFIG_CS0 EFUSE_BLK0 175 5
87 CHIP_VER_REV2 EFUSE_BLK0 180 1
88 VOL_LEVEL_HP_INV EFUSE_BLK0 182 2
89 WAFER_VERSION_MINOR EFUSE_BLK0 184 2
90 FLASH_CRYPT_CONFIG EFUSE_BLK0 188 4
91 CODING_SCHEME EFUSE_BLK0 192 2
92 CONSOLE_DEBUG_DISABLE EFUSE_BLK0 194 1
93 DISABLE_SDIO_HOST EFUSE_BLK0 195 1
94 ABS_DONE_0 EFUSE_BLK0 196 1
95 ABS_DONE_1 EFUSE_BLK0 197 1
96 JTAG_DISABLE EFUSE_BLK0 198 1
97 DISABLE_DL_ENCRYPT EFUSE_BLK0 199 1
98 DISABLE_DL_DECRYPT EFUSE_BLK0 200 1
99 DISABLE_DL_CACHE EFUSE_BLK0 201 1
100 KEY_STATUS EFUSE_BLK0 202 1
101 BLOCK1 EFUSE_BLK1 0 192
102 BLOCK2 EFUSE_BLK2 0 192
103 CUSTOM_MAC_CRC EFUSE_BLK3 0 8
104 MAC_CUSTOM EFUSE_BLK3 8 48
105 ADC1_TP_LOW EFUSE_BLK3 96 7
106 ADC1_TP_HIGH EFUSE_BLK3 103 9
107 ADC2_TP_LOW EFUSE_BLK3 112 7
108 ADC2_TP_HIGH EFUSE_BLK3 119 9
109 SECURE_VERSION EFUSE_BLK3 128 32
110 MAC_VERSION EFUSE_BLK3 184 8
1 WR_DIS EFUSE_BLK0 0 16
2 WR_DIS.RD_DIS EFUSE_BLK0 0 1
3 WR_DIS.WR_DIS EFUSE_BLK0 1 1
4 WR_DIS.FLASH_CRYPT_CNT EFUSE_BLK0 2 1
5 WR_DIS.UART_DOWNLOAD_DIS EFUSE_BLK0 2 1
6 WR_DIS.MAC EFUSE_BLK0 3 1
7 WR_DIS.MAC_CRC EFUSE_BLK0 3 1
8 WR_DIS.DISABLE_APP_CPU EFUSE_BLK0 3 1
9 WR_DIS.DISABLE_BT EFUSE_BLK0 3 1
10 WR_DIS.DIS_CACHE EFUSE_BLK0 3 1
11 WR_DIS.VOL_LEVEL_HP_INV EFUSE_BLK0 3 1
12 WR_DIS.CLK8M_FREQ EFUSE_BLK0 4 1
13 WR_DIS.ADC_VREF EFUSE_BLK0 4 1
14 WR_DIS.XPD_SDIO_REG EFUSE_BLK0 5 1
15 WR_DIS.XPD_SDIO_TIEH EFUSE_BLK0 5 1
16 WR_DIS.XPD_SDIO_FORCE EFUSE_BLK0 5 1
17 WR_DIS.SPI_PAD_CONFIG_CLK EFUSE_BLK0 6 1
18 WR_DIS.SPI_PAD_CONFIG_Q EFUSE_BLK0 6 1
19 WR_DIS.SPI_PAD_CONFIG_D EFUSE_BLK0 6 1
20 WR_DIS.SPI_PAD_CONFIG_CS0 EFUSE_BLK0 6 1
21 WR_DIS.BLOCK1 EFUSE_BLK0 7 1
22 WR_DIS.BLOCK2 EFUSE_BLK0 8 1
23 WR_DIS.BLOCK3 EFUSE_BLK0 9 1
24 WR_DIS.CUSTOM_MAC_CRC EFUSE_BLK0 9 1
25 WR_DIS.CUSTOM_MAC EFUSE_BLK0 9 1
26 WR_DIS.ADC1_TP_LOW EFUSE_BLK0 9 1
27 WR_DIS.ADC1_TP_HIGH EFUSE_BLK0 9 1
28 WR_DIS.ADC2_TP_LOW EFUSE_BLK0 9 1
29 WR_DIS.ADC2_TP_HIGH EFUSE_BLK0 9 1
30 WR_DIS.SECURE_VERSION EFUSE_BLK0 9 1
31 WR_DIS.MAC_VERSION EFUSE_BLK0 9 1
32 WR_DIS.BLK3_PART_RESERVE EFUSE_BLK0 10 1
33 WR_DIS.FLASH_CRYPT_CONFIG EFUSE_BLK0 10 1
34 WR_DIS.CODING_SCHEME EFUSE_BLK0 10 1
35 WR_DIS.KEY_STATUS EFUSE_BLK0 10 1
36 WR_DIS.ABS_DONE_0 EFUSE_BLK0 12 1
37 WR_DIS.ABS_DONE_1 EFUSE_BLK0 13 1
38 WR_DIS.JTAG_DISABLE EFUSE_BLK0 14 1
39 WR_DIS.CONSOLE_DEBUG_DISABLE EFUSE_BLK0 15 1
40 WR_DIS.DISABLE_DL_ENCRYPT EFUSE_BLK0 15 1
41 WR_DIS.DISABLE_DL_DECRYPT EFUSE_BLK0 15 1
42 WR_DIS.DISABLE_DL_CACHE EFUSE_BLK0 15 1
43 RD_DIS EFUSE_BLK0 16 4
44 RD_DIS.BLOCK1 EFUSE_BLK0 16 1
45 RD_DIS.BLOCK2 EFUSE_BLK0 17 1
46 RD_DIS.BLOCK3 EFUSE_BLK0 18 1
47 RD_DIS.CUSTOM_MAC_CRC EFUSE_BLK0 18 1
48 RD_DIS.CUSTOM_MAC EFUSE_BLK0 18 1
49 RD_DIS.ADC1_TP_LOW EFUSE_BLK0 18 1
50 RD_DIS.ADC1_TP_HIGH EFUSE_BLK0 18 1
51 RD_DIS.ADC2_TP_LOW EFUSE_BLK0 18 1
52 RD_DIS.ADC2_TP_HIGH EFUSE_BLK0 18 1
53 RD_DIS.SECURE_VERSION EFUSE_BLK0 18 1
54 RD_DIS.MAC_VERSION EFUSE_BLK0 18 1
55 RD_DIS.BLK3_PART_RESERVE EFUSE_BLK0 19 1
56 RD_DIS.FLASH_CRYPT_CONFIG EFUSE_BLK0 19 1
57 RD_DIS.CODING_SCHEME EFUSE_BLK0 19 1
58 RD_DIS.KEY_STATUS EFUSE_BLK0 19 1
59 FLASH_CRYPT_CNT EFUSE_BLK0 20 7
60 UART_DOWNLOAD_DIS EFUSE_BLK0 27 1
61 MAC EFUSE_BLK0 32 8
62 MAC EFUSE_BLK0 40 8
63 MAC EFUSE_BLK0 48 8
64 MAC EFUSE_BLK0 56 8
65 MAC EFUSE_BLK0 64 8
66 MAC EFUSE_BLK0 72 8
67 MAC_CRC EFUSE_BLK0 80 8
68 DISABLE_APP_CPU EFUSE_BLK0 96 1
69 DISABLE_BT EFUSE_BLK0 97 1
70 CHIP_PACKAGE_4BIT EFUSE_BLK0 98 1
71 DIS_CACHE EFUSE_BLK0 99 1
72 SPI_PAD_CONFIG_HD EFUSE_BLK0 100 5
73 CHIP_PACKAGE EFUSE_BLK0 105 3
74 CHIP_CPU_FREQ_LOW EFUSE_BLK0 108 1
75 CHIP_CPU_FREQ_RATED EFUSE_BLK0 109 1
76 BLK3_PART_RESERVE EFUSE_BLK0 110 1
77 CHIP_VER_REV1 EFUSE_BLK0 111 1
78 CLK8M_FREQ EFUSE_BLK0 128 8
79 ADC_VREF EFUSE_BLK0 136 5
80 XPD_SDIO_REG EFUSE_BLK0 142 1
81 XPD_SDIO_TIEH EFUSE_BLK0 143 1
82 XPD_SDIO_FORCE EFUSE_BLK0 144 1
83 SPI_PAD_CONFIG_CLK EFUSE_BLK0 160 5
84 SPI_PAD_CONFIG_Q EFUSE_BLK0 165 5
85 SPI_PAD_CONFIG_D EFUSE_BLK0 170 5
86 SPI_PAD_CONFIG_CS0 EFUSE_BLK0 175 5
87 CHIP_VER_REV2 EFUSE_BLK0 180 1
88 VOL_LEVEL_HP_INV EFUSE_BLK0 182 2
89 WAFER_VERSION_MINOR EFUSE_BLK0 184 2
90 FLASH_CRYPT_CONFIG EFUSE_BLK0 188 4
91 CODING_SCHEME EFUSE_BLK0 192 2
92 CONSOLE_DEBUG_DISABLE EFUSE_BLK0 194 1
93 DISABLE_SDIO_HOST EFUSE_BLK0 195 1
94 ABS_DONE_0 EFUSE_BLK0 196 1
95 ABS_DONE_1 EFUSE_BLK0 197 1
96 JTAG_DISABLE EFUSE_BLK0 198 1
97 DISABLE_DL_ENCRYPT EFUSE_BLK0 199 1
98 DISABLE_DL_DECRYPT EFUSE_BLK0 200 1
99 DISABLE_DL_CACHE EFUSE_BLK0 201 1
100 KEY_STATUS EFUSE_BLK0 202 1
101 BLOCK1 EFUSE_BLK1 0 192
102 BLOCK2 EFUSE_BLK2 0 192
103 CUSTOM_MAC_CRC EFUSE_BLK3 0 8
104 MAC_CUSTOM EFUSE_BLK3 8 48
105 ADC1_TP_LOW EFUSE_BLK3 96 7
106 ADC1_TP_HIGH EFUSE_BLK3 103 9
107 ADC2_TP_LOW EFUSE_BLK3 112 7
108 ADC2_TP_HIGH EFUSE_BLK3 119 9
109 SECURE_VERSION EFUSE_BLK3 128 32
110 MAC_VERSION EFUSE_BLK3 184 8
Used bits in efuse table:
EFUSE_BLK0
[0 15] [0 2] [2 3] ... [19 19] [19 27] [32 87] [96 111] [128 140] [142 144] [160 180] [182 185] [188 202]
EFUSE_BLK1
[0 191]
EFUSE_BLK2
[0 191]
EFUSE_BLK3
[0 55] [96 159] [184 191]
EFUSE_BLK0
[0 15] [0 2] [2 3] ... [19 19] [19 27] [32 87] [96 111] [128 140] [142 144] [160 180] [182 185] [188 202]
EFUSE_BLK1
[0 191]
EFUSE_BLK2
[0 191]
EFUSE_BLK3
[0 55] [96 159] [184 191]
Note: Not printed ranges are free for using. (bits in EFUSE_BLK0 are reserved for Espressif)

View File

@ -153,9 +153,9 @@ If you want to avoid the download/erase overhead in case of the app from the ser
if (data_read > sizeof(esp_image_header_t) + sizeof(esp_image_segment_header_t) + sizeof(esp_app_desc_t)) {
// check current version with downloading
if (esp_efuse_check_secure_version(new_app_info.secure_version) == false) {
ESP_LOGE(TAG, "This a new app can not be downloaded due to a secure version is lower than stored in efuse.");
http_cleanup(client);
task_fatal_error();
ESP_LOGE(TAG, "This a new app can not be downloaded due to a secure version is lower than stored in efuse.");
http_cleanup(client);
task_fatal_error();
}
image_header_was_checked = true;
@ -322,4 +322,3 @@ Debugging OTA Failure
:figclass: align-center
How to Debug When OTA Fails (click to enlarge)

View File

@ -401,7 +401,7 @@ Some {IDF_TARGET_NAME} IOs have internal pullups or pulldowns, which are enabled
Add the following code before :cpp:func:`esp_deep_sleep_start` to remove such extra current::
rtc_gpio_isolate(GPIO_NUM_12);
rtc_gpio_isolate(GPIO_NUM_12);
.. only:: esp32c2 or esp32c3

View File

@ -13,7 +13,7 @@ The ULP RISC-V coprocessor code is written in C (assembly is also possible) and
If you have already set up ESP-IDF with CMake build system according to the :doc:`Getting Started Guide <../../../get-started/index>`, then the toolchain should already be installed.
.. note::
In earlier versions of ESP-IDF, RISC-V toolchain had a different prefix: ``riscv-none-embed-gcc``.
Compiling the ULP RISC-V Code
@ -23,8 +23,8 @@ To compile the ULP RISC-V code as part of the component, the following steps mus
1. The ULP RISC-V code, written in C or assembly (must use the ``.S`` extension), must be placed in a separate directory inside the component directory, for instance, ``ulp/``.
.. note::
.. note::
When registering the component (via ``idf_component_register``), this directory should not be added to the ``SRC_DIRS`` argument as it is currently done for the ULP FSM. See the step below for how to properly add ULP source files.
2. Call ``ulp_embed_binary`` from the component CMakeLists.txt after registration. For example::
@ -167,12 +167,12 @@ The RTC I2C controller provides I2C master functionality in the RTC domain. The
Once the RTC I2C controller is initialized, the I2C slave device address must be programmed via the :cpp:func:`ulp_riscv_i2c_master_set_slave_addr` API before any read or write operation is performed.
.. note::
.. note::
The RTC I2C peripheral always expects a slave sub-register address to be programmed via the :cpp:func:`ulp_riscv_i2c_master_set_slave_reg_addr` API. If it is not, the I2C peripheral uses the ``SENS_SAR_I2C_CTRL_REG[18:11]`` as the sub-register address for the subsequent read or write operations. This could make the RTC I2C peripheral incompatible with certain I2C devices or sensors which do not need any sub-register to be programmed.
.. note::
.. note::
There is no hardware atomicity protection in accessing the RTC I2C peripheral between the main CPU and the ULP RISC-V core. Therefore, care must be taken that both cores are not accessing the peripheral simultaneously.
In case your RTC I2C based ULP RISC-V program is not working as expected, the following sanity checks can help in debugging the issue:

View File

@ -34,8 +34,8 @@ To compile the ULP FSM code as part of the component, the following steps must b
1. The ULP FSM code, written in assembly, must be added to one or more files with ``.S`` extension. These files must be placed into a separate directory inside the component directory, for instance, ``ulp/``.
.. note::
.. note::
When registering the component (via ``idf_component_register``), this directory should not be added to the ``SRC_DIRS`` argument. The logic behind this is that the ESP-IDF build system will compile files found in ``SRC_DIRS`` based on their extensions. For ``.S`` files, ``{IDF_TARGET_TOOLCHAIN_PREFIX}-as`` assembler is used. This is not desirable for ULP FSM assembly files, so the easiest way to achieve the distinction is by placing ULP FSM assembly files into a separate directory. The ULP FSM assembly source files should also **not** be added to ``SRCS`` for the same reason. See the steps below for how to properly add ULP FSM assembly source files.
2. Call ``ulp_embed_binary`` from the component CMakeLists.txt after registration. For example::

View File

@ -597,7 +597,7 @@ The detailed description of all instructions is presented below:
-------------------------------------------------------
**Syntax**
**STO** **offset**
**Operands**

View File

@ -23,7 +23,7 @@ The ``program`` array is an array of ``ulp_insn_t``, i.e., ULP coprocessor instr
Because some of the instruction macros expand to inline function calls, defining such array in global scope will cause the compiler to produce an "initializer element is not constant" error. To fix this error, move the definition of instructions array into local scope.
.. note::
Load, store and move instructions use **addresses expressed in 32-bit words**. Address 0 corresponds to the first word of ``RTC_SLOW_MEM``.
This is different to how address arguments are handled in assembly code of the same instructions. See the section :ref:`ulp-fsm-addressing` for more details for reference.

View File

@ -102,4 +102,4 @@ API Reference
8. In any case, to generate API reference, the file :idf_file:`docs/doxygen/Doxyfile` should be updated with paths to ``*.h`` headers that are being documented.
9. When changes are committed and documentation is built, check how this section has been rendered. :doc:`Correct annotations <../contribute/documenting-code>` in respective header files, if required.
9. When changes are committed and documentation is built, check how this section has been rendered. :doc:`Correct annotations <../contribute/documenting-code>` in respective header files, if required.

View File

@ -203,4 +203,4 @@ Related Documents
.. _interactive shell: http://interactive.blockdiag.com/?compression=deflate&src=eJxlUMFOwzAMvecrrO3aITYQQirlAIIzEseJQ5q4TUSIq8TVGIh_J2m7jbKc7Ge_5_dSO1Lv2soWvoVYgieNoMh7VGzJR9FJtugZ7lYQ0UcKEbYNOY36rRQHZHUPT68vV5tceGLbWCUzPfeaFFMoBZzecVc56vWwJFnWMmJ59CCZg617xpOFbTSyw0pmvT_HJ7hxtFNGBr6wvuu5SCkchcrZ1vAeXZomznh5YgTqfcpR02cBO6vZVDeXBRjMjKEcFRbLh8f18-Z2UUBDnqP9wmp9ncRmSSfND2ldGo2h_zse407g0Mxc1q7HzJ3-4jzYYTJjtQH3iSV-fgFzx50J
.. _Breathe: https://breathe.readthedocs.io/en/latest/
.. _Breathe: https://breathe.readthedocs.io/en/latest/

View File

@ -91,7 +91,7 @@ Getting Started
def test_hello_world(dut) -> None:
dut.expect('Hello world!')
This is a simple test script that could run with our getting-started example :example:`get-started/hello_world`.
This is a simple test script that could run with our getting-started example :example:`get-started/hello_world`.
First two lines are the target markers:
@ -109,7 +109,7 @@ Next, we have the environment marker:
* The ``@pytest.mark.generic`` is a marker that indicates that this test case should be run on the ``generic`` board type.
.. note::
For the detailed explanation of the environment markers, please refer to :idf_file:`ENV_MARKERS definition <tools/ci/idf_pytest/constants.py>`
Finally, we have the test function. With a ``dut`` fixture. In single-dut test cases, the ``dut`` fixture is an instance of ``IdfDut`` class, for multi-dut test cases, it is a tuple of ``IdfDut`` instances. For more details regarding the ``IdfDut`` class, please refer to `pytest-embedded IdfDut API reference <https://docs.espressif.com/projects/pytest-embedded/en/latest/api.html#pytest_embedded_idf.dut.IdfDut>`__.
@ -271,7 +271,7 @@ After setting the param ``count`` to 2, all the fixtures are changed into tuples
def test_hello_world(dut) -> None:
dut[0].expect('Hello world!')
dut[1].expect('Hello world!')
should be replaced with:
.. code-block:: python
@ -286,7 +286,7 @@ After setting the param ``count`` to 2, all the fixtures are changed into tuples
def test_hello_world(dut) -> None:
dut[0].expect('Hello world!')
dut[1].expect('Hello world!')
This could help avoid the ambiguity of the target markers when multi-DUT test cases are using different type of targets.
Multi-Target Tests with Different Apps
@ -307,7 +307,7 @@ In some cases, a test may involve multiple targets running different test apps (
│ └── CMakeLists.txt
└── pytest_master_slave.py
In this case, we can parametrize the ``app_path`` to the path of the test apps you want to test with.
In this case, we can parametrize the ``app_path`` to the path of the test apps you want to test with.
.. code-block:: python
@ -316,13 +316,13 @@ In this case, we can parametrize the ``app_path`` to the path of the test apps y
2,
], indirect=True)
@pytest.mark.parametrize('app_path, target', [
(f'{os.path.join(os.path.dirname(__file__), "master")}|{os.path.join(os.path.dirname(__file__), "slave")}', 'esp32|esp32s2'),
(f'{os.path.join(os.path.dirname(__file__), "master")}|{os.path.join(os.path.dirname(__file__), "slave")}', 'esp32|esp32s2'),
(f'{os.path.join(os.path.dirname(__file__), "master")}|{os.path.join(os.path.dirname(__file__), "slave")}', 'esp32s2|esp32'),
], indirect=True)
def test_master_slave(dut) -> None:
master = dut[0]
slave = dut[1]
master.write('Hello world!')
slave.expect_exact('Hello world!')
@ -381,7 +381,7 @@ We also provide a fixture ``case_tester`` to trigger all kinds of test cases eas
case_tester.run_all_normal_cases() # to run all normal test cases
case_tester.run_all_multi_dev_cases() # to run all multi-device test cases
case_tester.run_all_multi_stage_cases() # to run all multi-stage test cases
For a full list of the available functions, please refer to `pytest-embedded case_tester API reference <https://docs.espressif.com/projects/pytest-embedded/en/latest/api.html#pytest_embedded_idf.unity_tester.CaseTester>`__.
Running Target Tests in CI
@ -512,7 +512,7 @@ Some test cases may need to run with different sdkconfig files. Let's take :proj
.. note::
Here if we use ``pytest --target esp32 -k history``, both test cases will be selected, since ``pytest -k`` will use string matching to filter the test cases.
Here if we use ``pytest --target esp32 -k history``, both test cases will be selected, since ``pytest -k`` will use string matching to filter the test cases.
If you want to build and test with all sdkconfig files at the same time, you should use our CI script as an helper script:
@ -697,7 +697,7 @@ Sometimes you may need to add some extra logging lines while running the test ca
You can use `Python logging module <https://docs.python.org/3/library/logging.html>`__ to achieve this.
Here are some logging functions provided as fixtures,
Here are some logging functions provided as fixtures,
``log_performance``
^^^^^^^^^^^^^^^^^^^

View File

@ -38,4 +38,4 @@ Alternatively in the Powershell where you need to use ESP-IDF, change to the dir
cd ~/esp/esp-idf
export.ps1
When this is done, the tools will be available in this command prompt.
When this is done, the tools will be available in this command prompt.

View File

@ -140,9 +140,9 @@ To take advantage of the PoE functionality the **RJ45 Port** of the Ethernet boa
:widths: 40 150
:header-rows: 1
* - Key Component
* - Key Component
- Description
* - Board A Connector
* - Board A Connector
- Four female (left) and four male (right) header pins for connecting the PoE board (B) to :ref:`Ethernet board (A) <get-started-esp32-ethernet-kit-a-v1.1-layout>`. The pins on the left accept power coming from a PoE switch. The pins on the right deliver 5 V power supply to the Ethernet board (A).
* - External Power Terminals
- Optional power supply (26.6 ~ 54 V) to the PoE board (B).
@ -407,4 +407,4 @@ For other design documentation for the board, please contact us at sales@espress
.. toctree::
:hidden:
get-started-ethernet-kit-v1.0.rst
get-started-ethernet-kit-v1.0.rst

View File

@ -93,11 +93,11 @@ The table below provides description starting from the picture's top right corne
- This ESP32 module features 64-Mbit PSRAM for flexible extended storage and data processing capabilities.
* - GPIO Header 2
- Five unpopulated through-hole solder pads to provide access to selected GPIOs of ESP32. For details, see `GPIO Header 2`_.
* - Function Switch
* - Function Switch
- A 4-bit DIP switch used to configure the functionality of selected GPIOs of ESP32. For details see `Function Switch`_.
* - Tx/Rx LEDs
- Two LEDs to show the status of UART transmission.
* - FT2232H
* - FT2232H
- The FT2232H chip serves as a multi-protocol USB-to-serial bridge which can be programmed and controlled via USB to provide communication with ESP32. FT2232H also features USB-to-JTAG interface which is available on channel A of the chip, while USB-to-serial is on channel B. The FT2232H chip enhances user-friendliness in terms of application development and debugging. See `ESP32-Ethernet-Kit V1.2 Ethernet board (A) schematic`_.
* - USB Port
- USB interface. Power supply for the board as well as the communication interface between a computer and the board.
@ -155,9 +155,9 @@ To take advantage of the PoE functionality the **RJ45 Port** of the Ethernet boa
:widths: 40 150
:header-rows: 1
* - Key Component
* - Key Component
- Description
* - Board A Connector
* - Board A Connector
- Four female (left) and four male (right) header pins for connecting the PoE board (B) to :ref:`Ethernet board (A) <get-started-esp32-ethernet-kit-a-v1.2-layout>`. The pins on the left accept power coming from a PoE switch. The pins on the right deliver 5 V power supply to the Ethernet board (A).
* - External Power Terminals
- Optional power supply (26.6 ~ 54 V) to the PoE board (B).

View File

@ -81,7 +81,7 @@ The table below provides description in the following manner:
:widths: 25 75
:header-rows: 1
* - Key Component
* - Key Component
- Description
* - 32.768 kHz
- External precision 32.768 kHz crystal oscillator serves as a clock with low-power consumption while the chip is in Deep-sleep mode.

View File

@ -113,4 +113,4 @@ Related Documents
- `ESP-LyraP-CAM Schematic <https://dl.espressif.com/dl/schematics/ESP-LyraP-CAM_V1.0_SCH_20200302.pdf>`_ (PDF)
- `ESP-LyraP-CAM PCB Layout <https://dl.espressif.com/dl/schematics/ESP-LyraP-CAM_V1.0_PCB_20200302.pdf>`_ (PDF)
For other design documentation for the board, please contact us at sales@espressif.com.
For other design documentation for the board, please contact us at sales@espressif.com.

View File

@ -127,4 +127,4 @@ Related Documents
- `ESP-LyraP-CAM Schematic <https://dl.espressif.com/dl/schematics/ESP-LyraP-CAM_V1.1_SCH_20200511A.pdf>`_ (PDF)
- `ESP-LyraP-CAM PCB Layout <https://dl.espressif.com/dl/schematics/ESP-LyraP-CAM_V1.1_PCB_20200511AA.pdf>`_ (PDF)
For other design documentation for the board, please contact us at sales@espressif.com.
For other design documentation for the board, please contact us at sales@espressif.com.

View File

@ -129,4 +129,4 @@ Related Documents
- `ESP-LyraP-LCD32 Schematic <https://dl.espressif.com/dl/schematics/ESP-LyraP-LCD32_V1_1_SCH_20200324A.pdf>`_ (PDF)
- `ESP-LyraP-LCD32 PCB Layout <https://dl.espressif.com/dl/schematics/ESP-LyraP-LCD32_V1_1_PCB_20200324AC.pdf>`_ (PDF)
For other design documentation for the board, please contact us at sales@espressif.com.
For other design documentation for the board, please contact us at sales@espressif.com.

View File

@ -151,4 +151,4 @@ Related Documents
- `ESP-LyraP-LCD32 Schematic <https://dl.espressif.com/dl/schematics/ESP-LyraP-LCD32_V1_2_SCH_20200522A.pdf>`_ (PDF)
- `ESP-LyraP-LCD32 PCB Layout <https://dl.espressif.com/dl/schematics/ESP-LyraP-LCD32_V1_2_PCB_20200522AA.pdf>`_ (PDF)
For other design documentation for the board, please contact us at sales@espressif.com.
For other design documentation for the board, please contact us at sales@espressif.com.

View File

@ -115,4 +115,4 @@ Related Documents
- `ESP-LyraP-TouchA Schematic <https://dl.espressif.com/dl/schematics/ESP-LyraP-TouchA_V1.1_SCH_20200325A.pdf>`_ (PDF)
- `ESP-LyraP-TouchA PCB Layout <https://dl.espressif.com/dl/schematics/ESP-LyraP-TouchA_V1.1_PCB_20200325AA.pdf>`_ (PDF)
For other design documentation for the board, please contact us at sales@espressif.com.
For other design documentation for the board, please contact us at sales@espressif.com.

View File

@ -147,4 +147,4 @@ Related Documents
- `ESP-LyraT-8311A Schematic <https://dl.espressif.com/dl/schematics/ESP-LyraT-8311A_V1_2_SCH_20200421A.pdf>`_ (PDF)
- `ESP-LyraT-8311A PCB Layout <https://dl.espressif.com/dl/schematics/ESP-LyraT-8311A_V1_2_PCB_20200324AA.pdf>`_ (PDF)
For other design documentation for the board, please contact us at sales@espressif.com.
For other design documentation for the board, please contact us at sales@espressif.com.

View File

@ -156,4 +156,4 @@ Related Documents
- `ESP-LyraT-8311A Schematic <https://dl.espressif.com/dl/schematics/ESP-LyraT-8311A_V1_3_SCH_20200522A.pdf>`_ (PDF)
- `ESP-LyraT-8311A PCB Layout <https://dl.espressif.com/dl/schematics/ESP-LyraT-8311A_V1_3_PCB_20200522AA.pdf>`_ (PDF)
For other design documentation for the board, please contact us at sales@espressif.com.
For other design documentation for the board, please contact us at sales@espressif.com.

View File

@ -377,4 +377,4 @@ Related Documents
- `ESP32-S2-Kaluga-1 PCB Layout <https://dl.espressif.com/dl/schematics/ESP32-S2-Kaluga-1_V1_2_PCB_20200325AF.pdf>`_ (PDF)
- `ESP32-S2-Kaluga-1 Pin Mapping <https://dl.espressif.com/dl/schematics/ESP32-S2-Kaluga-1_V1.2_Pin-Mapping.xlsx>`_ (Excel)
For other design documentation for the board, please contact us at sales@espressif.com.
For other design documentation for the board, please contact us at sales@espressif.com.

View File

@ -261,9 +261,9 @@ No. Name Type Function
1 G G Ground
2 TX I/O/T U0TXD, GPIO43, CLK_OUT1
3 RX I/O/T U0RXD, GPIO44, CLK_OUT2
4 1 I/O/T RTC_GPIO1, GPIO1, TOUCH1, ADC1_CH0
5 2 I/O/T RTC_GPIO2, GPIO2, TOUCH2, ADC1_CH1
6 42 I/O/T MTMS, GPIO42
4 1 I/O/T RTC_GPIO1, GPIO1, TOUCH1, ADC1_CH0
5 2 I/O/T RTC_GPIO2, GPIO2, TOUCH2, ADC1_CH1
6 42 I/O/T MTMS, GPIO42
7 41 I/O/T MTDI, GPIO41, CLK_OUT1
8 40 I/O/T MTDO, GPIO40, CLK_OUT2
9 39 I/O/T MTCK, GPIO39, CLK_OUT3, SUBSPICS1

View File

@ -255,4 +255,4 @@ Related Documents
- `ESP32-S3-DevKitM-1 Dimensions <https://dl.espressif.com/dl/schematics/DXF_ESP32-S3-DevKitM-1_V1_20210310AC.pdf>`_ (PDF)
- `ESP32-S3-DevKitM-1 Dimensions source file <https://dl.espressif.com/dl/schematics/DXF_ESP32-S3-DevKitM-1_V1_20210310AC.dxf>`_ (DXF) - You can view it with `Autodesk Viewer <https://viewer.autodesk.com/>`_ online
For further design documentation for the board, please contact us at `sales@espressif.com <sales@espressif.com>`_.
For further design documentation for the board, please contact us at `sales@espressif.com <sales@espressif.com>`_.

View File

@ -1,4 +1,4 @@
GCC
GCC
***
:link_to_translation:`zh_CN:[中文]`
@ -104,14 +104,14 @@ The types ``int32_t`` and ``uint32_t`` have been changed from the previous ``int
:widths: 20 45 35
:header-rows: 1
* -
* -
- 2021r2 and older, GCC 8
- 2022r1, GCC 11
* - Xtensa
- (unsigned) int
- (unsigned) long
* - riscv32
- (unsigned) long
- (unsigned) long
- (unsigned) long
@ -124,7 +124,7 @@ In common, ``int32_t`` and ``int``, as well as ``uint32_t`` and ``unsigned int``
If users do not make the aforementioned updates to format strings in their applications, the following error will be reported during compilation:
.. code-block:: none
/Users/name/esp/esp-rainmaker/components/esp-insights/components/esp_diagnostics/include/esp_diagnostics.h:238:29: error: format '%u' expects argument of type 'unsigned int', but argument 3 has type 'uint32_t' {aka 'long unsigned int'} [-Werror=format=]
238 | esp_diag_log_event(tag, "EV (%u) %s: " format, esp_log_timestamp(), tag, ##__VA_ARGS__); \
| ^~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~

View File

@ -22,7 +22,7 @@ Updated dependency setup:
idf_component_register(...
REQUIRES spi_flash esp_partition)
.. note::
.. note::
Please update relevant ``REQUIRES`` or ``PRIV_REQUIRES`` section according to your project. The above-presented code snippet is just an example.

View File

@ -6,7 +6,7 @@ Peripherals
Drivers
-------
In order to control the dependence of other components on drivers at a smaller granularity, the original peripheral drivers under the `driver`` component were split into separate components:
In order to control the dependence of other components on drivers at a smaller granularity, the original peripheral drivers under the ``driver`` component were split into separate components:
- `esp_driver_gptimer` - Driver for general purpose timers
- `esp_driver_pcnt` - Driver for pulse counter
@ -28,7 +28,7 @@ In order to control the dependence of other components on drivers at a smaller g
- `esp_driver_parlio` - Driver for Parallel IO
- `esp_driver_usb_serial_jtag` - Driver for USB_SERIAL_JTAG
For compatibility, the original `driver`` component is still treated as an all-in-one component by registering these `esp_driver_xyz`` components as its public dependencies. In other words, you do not need to modify the CMake file of an existing project, but you now have a way to specify the specific peripheral driver that your project depends on.
For compatibility, the original ``driver`` component is still treated as an all-in-one component by registering these `esp_driver_xyz` components as its public dependencies. In other words, you do not need to modify the CMake file of an existing project, but you now have a way to specify the specific peripheral driver that your project depends on.
Originally, you may have used **linker.lf** to specify the link location of some driver functions in memory space, but now, because the location of the driver files have been moved, you need to make changes your **linker.lf** file accordingly. For example, a linker.lf file with the following entries:

View File

@ -270,13 +270,13 @@ In this case, all the eFuses related to flash encryption are written with help o
6. Burn flash encryption-related security eFuses as listed below:
A) Burn security eFuses:
.. important::
For production use cases, it is highly recommended to burn all the eFuses listed below.
.. list::
:esp32: - ``DISABLE_DL_ENCRYPT``: Disable the UART bootloader encryption access.
:esp32: - ``DISABLE_DL_DECRYPT``: Disable the UART bootloader decryption access.
:esp32: - ``DISABLE_DL_CACHE``: Disable the UART bootloader flash cache access.
@ -291,68 +291,68 @@ In this case, all the eFuses related to flash encryption are written with help o
:SOC_EFUSE_DIS_PAD_JTAG: - ``DIS_PAD_JTAG``: Disable JTAG permanently
:not esp32: - ``DIS_DOWNLOAD_MANUAL_ENCRYPT``: Disable UART bootloader encryption access
:SOC_EFUSE_DIS_DOWNLOAD_MSPI: - ``DIS_DOWNLOAD_MSPI``: Disable the MSPI access in download mode
The respective eFuses can be burned by running:
.. code:: bash
espefuse.py burn_efuse --port PORT EFUSE_NAME 0x1
.. note::
Please update the EFUSE_NAME with the eFuse that you need to burn. Multiple eFuses can be burned at the same time by appending them to the above command (e.g., EFUSE_NAME VAL EFUSE_NAME2 VAL2). More documentation about `espefuse.py` can be found `here <https://docs.espressif.com/projects/esptool/en/latest/esp32/espefuse/index.html>`_
B) Write protect security eFuses:
After burning the respective eFuses we need to write_protect the security configurations
.. only:: esp32
.. code:: bash
espefuse.py --port PORT write_protect_efuse MAC
.. note::
The write disable bit for MAC also write disables DIS_CACHE which is required to prevent accidental burning of this bit.
C) Disable UART ROM DL mode:
.. only:: not esp32
.. code:: bash
espefuse.py --port PORT write_protect_efuse DIS_ICACHE
.. note::
The write protection of above eFuse also write protects multiple other eFuses, Please refer to the {IDF_TARGET_NAME} eFuse table for more details.
C) Enable Security Download mode:
.. warning::
Please burn the following bit at the very end. After this bit is burned, the espefuse tool can no longer be used to burn additional eFuses.
.. list::
:esp32: - ``UART_DOWNLOAD_DIS`` : Disable the UART ROM Download mode.
:not esp32: - ``ENABLE_SECURITY_DOWNLOAD``: Enable Secure ROM download mode
.. only:: esp32
The eFuse can be burned by running:
.. code:: bash
espefuse.py --port PORT burn_efuse UART_DOWNLOAD_DIS
.. only:: not esp32
The eFuse can be burned by running:
.. code:: bash
espefuse.py --port PORT burn_efuse ENABLE_SECURITY_DOWNLOAD
.. important::
@ -511,13 +511,13 @@ In this workflow, we shall use ``espsecure`` tool to generate signing keys and u
7. Burn relevant eFuses.
A) Burn security eFuses:
.. important::
For production use cases, it is highly recommended to burn all the eFuses listed below.
.. list::
:esp32: - ``JTAG_DISABLE``: Disable the JTAG
:SOC_EFUSE_DIS_BOOT_REMAP: - ``DIS_BOOT_REMAP``: Disable capability to Remap ROM to RAM address space
:SOC_EFUSE_HARD_DIS_JTAG: - ``HARD_DIS_JTAG``: Hard disable JTAG peripheral
@ -527,76 +527,76 @@ In this workflow, we shall use ``espsecure`` tool to generate signing keys and u
:SOC_EFUSE_DIS_USB_JTAG: - ``DIS_USB_JTAG``: Disable USB switch to JTAG
:SOC_EFUSE_DIS_PAD_JTAG: - ``DIS_PAD_JTAG``: Disable JTAG permanently
:SOC_EFUSE_REVOKE_BOOT_KEY_DIGESTS: - ``SECURE_BOOT_AGGRESSIVE_REVOKE``: Aggressive revocation of key digests, see :ref:`secure-boot-v2-aggressive-key-revocation` for more details.
The respective eFuses can be burned by running:
.. code:: bash
espefuse.py burn_efuse --port PORT EFUSE_NAME 0x1
.. note::
Please update the EFUSE_NAME with the eFuse that you need to burn. Multiple eFuses can be burned at the same time by appending them to the above command (e.g., EFUSE_NAME VAL EFUSE_NAME2 VAL2). More documentation about `espefuse.py` can be found `here <https://docs.espressif.com/projects/esptool/en/latest/esp32/espefuse/index.html>`_
B) Secure Boot V2-related eFuses:
i) Disable the ability for read protection:
The secure boot digest burned in the eFuse must be kept readable otherwise secure boot operation would result in a failure. To prevent the accidental enabling of read protection for this key block we need to burn the following eFuse:
.. code:: bash
espefuse.py -p $ESPPORT write_protect_efuse RD_DIS
.. important::
After this eFuse has been burned, read protection cannot be enabled for any key. E.g., if flash encryption which requires read protection for its key is not enabled at this point then it cannot be enabled afterwards. Please ensure that no eFuse keys are going to need read protection after this.
.. only:: SOC_EFUSE_REVOKE_BOOT_KEY_DIGESTS
ii) Revoke key digests:
The unused digest slots need to be revoked when we are burning the secure boot key. The respective slots can be revoked by running
.. code:: bash
espefuse.py --port PORT --chip {IDF_TARGET_PATH_NAME} burn_efuse EFUSE_REVOKE_BIT
The ``EFUSE_REVOKE_BIT`` in the above command can be ``SECURE_BOOT_KEY_REVOKE0`` or ``SECURE_BOOT_KEY_REVOKE1`` or ``SECURE_BOOT_KEY_REVOKE2``. Please note that only the unused key digests must be revoked. Once revoked, the respective digest cannot be used again.
.. only:: esp32
C) Disable UART ROM DL mode:
.. only:: not esp32
C) Enable Security Download mode:
.. warning::
Please burn the following bit at the very end. After this bit is burned, the espefuse tool can no longer be used to burn additional eFuses.
.. list::
:esp32: - ``UART_DOWNLOAD_DIS`` : Disable the UART ROM Download mode.
:not esp32: - ``ENABLE_SECURITY_DOWNLOAD``: Enable Secure ROM download mode
.. only:: esp32
The eFuse can be burned by running:
.. code:: bash
espefuse.py --port PORT burn_efuse UART_DOWNLOAD_DIS
.. only:: not esp32
The eFuse can be burned by running:
.. code:: bash
espefuse.py --port PORT burn_efuse ENABLE_SECURITY_DOWNLOAD
Secure Boot V2 Guidelines
@ -607,5 +607,3 @@ Secure Boot V2 Guidelines
.. only:: SOC_EFUSE_REVOKE_BOOT_KEY_DIGESTS
* It is recommended to use all the available digest slots to reduce dependency on a single private key.

View File

@ -50,4 +50,4 @@ Next Steps
Here are some useful links for exploring the PlatformIO ecosystem:
- Learn more about `integrations with other IDEs or Text Editors <https://docs.platformio.org/en/latest/integration/ide/index.html?utm_source=docs.espressif.com>`_
- Get help from `PlatformIO community <https://community.platformio.org/?utm_source=docs.espressif.com>`_
- Get help from `PlatformIO community <https://community.platformio.org/?utm_source=docs.espressif.com>`_

View File

@ -1 +1 @@
.. include:: ../en/COPYRIGHT.rst
.. include:: ../en/COPYRIGHT.rst

View File

@ -5,9 +5,9 @@
.. only:: esp32
本指南为 `乐鑫 <https://espressif.com>`_ 公司 `{IDF_TARGET_NAME} <https://www.espressif.com/en/products/socs/esp32>`_ 官方应用开发框架 `ESP-IDF <https://github.com/espressif/esp-idf>`_ 的配套文档。
本指南为 `乐鑫 <https://espressif.com>`_ 公司 `{IDF_TARGET_NAME} <https://www.espressif.com/en/products/socs/esp32>`_ 官方应用开发框架 `ESP-IDF <https://github.com/espressif/esp-idf>`_ 的配套文档。
{IDF_TARGET_NAME} 芯片是一款 2.4 GHz Wi-Fi 和蓝牙双模芯片,内置 1 或 2 个 Xtensa® 32 位 LX6 处理器,运算能力最高可达 600 DMIPS。
{IDF_TARGET_NAME} 芯片是一款 2.4 GHz Wi-Fi 和蓝牙双模芯片,内置 1 或 2 个 Xtensa® 32 位 LX6 处理器,运算能力最高可达 600 DMIPS。
.. only:: esp32s2

View File

@ -221,41 +221,41 @@ Start 子命令的语法:
.. highlight:: none
1. 将 2048 个字节的跟踪数据收集到 ``trace.log`` 文件中,该文件将保存在 ``openocd-esp32`` 目录中。
1. 将 2048 个字节的跟踪数据收集到 ``trace.log`` 文件中,该文件将保存在 ``openocd-esp32`` 目录中。
::
::
esp apptrace start file://trace.log 1 2048 5 0 0
esp apptrace start file://trace.log 1 2048 5 0 0
跟踪数据会被检索并以非阻塞的模式保存到文件中,如果收集满 2048 字节的数据或者在 5 秒内都没有新的数据,那么该过程就会停止。
跟踪数据会被检索并以非阻塞的模式保存到文件中,如果收集满 2048 字节的数据或者在 5 秒内都没有新的数据,那么该过程就会停止。
.. note::
.. note::
在将数据提供给 OpenOCD 之前,会对其进行缓冲。如果看到 “Data timeout!” 的消息,则表示目标可能在超时之前没有向 OpenOCD 发送足够的数据以清空缓冲区。要解决这个问题,可以增加超时时间或者使用函数 ``esp_apptrace_flush()`` 以特定间隔刷新数据。
在将数据提供给 OpenOCD 之前,会对其进行缓冲。如果看到 “Data timeout!” 的消息,则表示目标可能在超时之前没有向 OpenOCD 发送足够的数据以清空缓冲区。要解决这个问题,可以增加超时时间或者使用函数 ``esp_apptrace_flush()`` 以特定间隔刷新数据。
2. 在非阻塞模式下无限地检索跟踪数据。
2. 在非阻塞模式下无限地检索跟踪数据。
::
::
esp apptrace start file://trace.log 1 -1 -1 0 0
esp apptrace start file://trace.log 1 -1 -1 0 0
对收集数据的大小没有限制,也不设置超时时间。要停止此过程,可以在 OpenOCD 的 telnet 会话窗口中发送 ``esp apptrace stop`` 命令,或者在 OpenOCD 窗口中使用快捷键 Ctrl+C。
对收集数据的大小没有限制,也不设置超时时间。要停止此过程,可以在 OpenOCD 的 telnet 会话窗口中发送 ``esp apptrace stop`` 命令,或者在 OpenOCD 窗口中使用快捷键 Ctrl+C。
3. 检索跟踪数据并无限期保存。
3. 检索跟踪数据并无限期保存。
::
::
esp apptrace start file://trace.log 0 -1 -1 0 0
esp apptrace start file://trace.log 0 -1 -1 0 0
在跟踪停止之前OpenOCD 的 telnet 会话窗口将不可用。要停止跟踪,请在 OpenOCD 的窗口中使用快捷键 Ctrl+C。
在跟踪停止之前OpenOCD 的 telnet 会话窗口将不可用。要停止跟踪,请在 OpenOCD 的窗口中使用快捷键 Ctrl+C。
4. 等待目标停止,然后恢复目标的操作并开始检索数据。当收集满 2048 字节的数据后就停止:
4. 等待目标停止,然后恢复目标的操作并开始检索数据。当收集满 2048 字节的数据后就停止:
::
::
esp apptrace start file://trace.log 0 2048 -1 1 0
esp apptrace start file://trace.log 0 2048 -1 1 0
想要复位后立即开始跟踪,请使用 OpenOCD 的 ``reset halt`` 命令。
想要复位后立即开始跟踪,请使用 OpenOCD 的 ``reset halt`` 命令。
.. _app_trace-logging-to-host:
@ -398,21 +398,21 @@ Start 子命令语法:
.. highlight:: none
1. 将 SystemView 跟踪数据收集到文件 ``pro-cpu.SVDat````pro-cpu.SVDat`` 中。这些文件会被保存在 ``openocd-esp32`` 目录中。
1. 将 SystemView 跟踪数据收集到文件 ``pro-cpu.SVDat````pro-cpu.SVDat`` 中。这些文件会被保存在 ``openocd-esp32`` 目录中。
::
::
esp sysview start file://pro-cpu.SVDat file://app-cpu.SVDat
esp sysview start file://pro-cpu.SVDat file://app-cpu.SVDat
跟踪数据被检索并以非阻塞的方式保存。要停止此过程,需要在 OpenOCD 的 telnet 会话窗口输入 ``esp sysview stop`` 命令,也可以在 OpenOCD 窗口中按下快捷键 Ctrl+C。
跟踪数据被检索并以非阻塞的方式保存。要停止此过程,需要在 OpenOCD 的 telnet 会话窗口输入 ``esp sysview stop`` 命令,也可以在 OpenOCD 窗口中按下快捷键 Ctrl+C。
2. 检索跟踪数据并无限保存。
2. 检索跟踪数据并无限保存。
::
::
esp32 sysview start file://pro-cpu.SVDat file://app-cpu.SVDat 0 -1 -1
esp32 sysview start file://pro-cpu.SVDat file://app-cpu.SVDat 0 -1 -1
OpenOCD 的 telnet 命令行在跟踪停止前会无法使用,要停止跟踪,请在 OpenOCD 窗口使用 Ctrl+C 快捷键。
OpenOCD 的 telnet 命令行在跟踪停止前会无法使用,要停止跟踪,请在 OpenOCD 窗口使用 Ctrl+C 快捷键。
数据可视化

View File

@ -1 +1 @@
.. include:: ../../en/api-guides/bluetooth.rst
.. include:: ../../en/api-guides/bluetooth.rst

View File

@ -32,12 +32,12 @@ ESP-IDF 软件引导加载程序 (Bootloader) 主要执行以下任务:
ESP-IDF V2.1 之前的版本
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
与新版本相比ESP-IDF V2.1 之前的版本构建的引导加载程序对硬件的配置更少。使用这些早期 ESP-IDF 版本的引导加载程序并构建新应用程序时,请启用配置选项 :ref:`CONFIG_APP_COMPATIBLE_PRE_V2_1_BOOTLOADERS`
与新版本相比ESP-IDF V2.1 之前的版本构建的引导加载程序对硬件的配置更少。使用这些早期 ESP-IDF 版本的引导加载程序并构建新应用程序时,请启用配置选项 :ref:`CONFIG_APP_COMPATIBLE_PRE_V2_1_BOOTLOADERS`
ESP-IDF V3.1 之前的版本
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ESP-IDF V3.1 之前的版本构建的引导加载程序不支持分区表二进制文件中的 MD5 校验。使用这些 ESP-IDF 版本的引导加载程序并构建新应用程序时,请启用配置选项 :ref:`CONFIG_APP_COMPATIBLE_PRE_V3_1_BOOTLOADERS`
ESP-IDF V3.1 之前的版本构建的引导加载程序不支持分区表二进制文件中的 MD5 校验。使用这些 ESP-IDF 版本的引导加载程序并构建新应用程序时,请启用配置选项 :ref:`CONFIG_APP_COMPATIBLE_PRE_V3_1_BOOTLOADERS`
ESP-IDF V5.1 之前的版本
^^^^^^^^^^^^^^^^^^^^^^^^^^

View File

@ -694,7 +694,7 @@ project_include.cmake
``project_include.cmake`` 文件在 ESP-IDF 内部使用,以定义项目范围内的构建功能,比如 ``esptool.py`` 的命令行参数和 ``bootloader`` 这个特殊的应用程序。
与组件 ``CMakeLists.txt`` 文件有所不同,在导入``project_include.cmake`` 文件的时候,当前源文件目录(即 ``CMAKE_CURRENT_SOURCE_DIR``和工作目录)为项目目录。如果想获得当前组件的绝对路径,可以使用 ``COMPONENT_PATH`` 变量。
与组件 ``CMakeLists.txt`` 文件有所不同,在导入 ``project_include.cmake`` 文件的时候,当前源文件目录(即 ``CMAKE_CURRENT_SOURCE_DIR`` 和工作目录)为项目目录。如果想获得当前组件的绝对路径,可以使用 ``COMPONENT_PATH`` 变量。
请注意,``project_include.cmake`` 对于大多数常见的组件并不是必需的。例如给项目添加 include 搜索目录,给最终的链接步骤添加 ``LDFLAGS`` 选项等等都可以通过 ``CMakeLists.txt`` 文件来自定义。详细信息请参考 :ref:`optional_project_variable`
@ -1311,7 +1311,7 @@ ESP-IDF 构建属性
- DEPENDENCIES_LOCK - 组件管理器使用的依赖关系锁定文件的路径。默认值为项目路径下的 `dependencies.lock`
- EXECUTABLE_NAME - 不含扩展名的项目可执行文件的名称;通过调用 ``idf_build_executable`` 设置。
- EXECUTABLE_DIR - 输出的可执行文件的路径
- IDF_COMPONENT_MANAGER - 默认启用组件管理器,但如果设置这个属性为`0``,则会被 IDF_COMPONENT_MANAGER 环境变量禁用。
- IDF_COMPONENT_MANAGER - 默认启用组件管理器,但如果设置这个属性为 ``0``,则会被 IDF_COMPONENT_MANAGER 环境变量禁用。
- IDF_PATH - ESP-IDF 路径;由 IDF_PATH 环境变量设置,或者从 ``idf.cmake`` 的位置推断。
- IDF_TARGET - 构建的目标芯片;由 ``idf_build_process`` 的目标参数设置。
- IDF_VER - ESP-IDF 版本;由版本文件或 IDF_PATH 仓库的 Git 版本设置。
@ -1414,7 +1414,7 @@ ESP-IDF 组件属性
- KCONFIG - 组件 Kconfig 文件;由 ``idf_build_component`` 设置。
- KCONFIG_PROJBUILD - 组件 Kconfig.projbuild``idf_build_component`` 设置。
- LDFRAGMENTS - 组件链接器片段文件列表;由 ``idf_component_register`` LDFRAGMENTS 参数设置。
- MANAGED_PRIV_REQUIRES - IDF 组件管理器从``idf_component.yml``清单文件中的依赖关系中添加的私有组件依赖关系列表。
- MANAGED_PRIV_REQUIRES - IDF 组件管理器从 ``idf_component.yml`` 清单文件中的依赖关系中添加的私有组件依赖关系列表。
- MANAGED_REQUIRES - IDF 组件管理器从 ``idf_component.yml`` 清单文件的依赖关系中添加的公共组件依赖关系列表。
- PRIV_INCLUDE_DIRS - 组件私有 include 目录列表;在 LIBRARY 类型的组件 ``idf_component_register`` PRIV_INCLUDE_DIRS 参数中设置。
- PRIV_REQUIRES - 私有组件依赖关系列表;根据 ``idf_component_register`` PRIV_REQUIRES 参数的值以及 ``idf_component.yml`` 清单文件中的依赖关系设置。
@ -1500,7 +1500,7 @@ ESP-IDF 构建系统的列表文件位于 :idf:`/tools/cmake` 中。实现构建
除了这些文件,还有两个重要的 CMake 脚本在 :idf:`/tools/cmake` 中:
- idf.cmake - 设置构建参数并导入上面列出的核心模块。之所以包括在 CMake 项目中,是为了方便访问 ESP-IDF 构建系统功能。
- project.cmake - 导入 ``idf.cmake``,并提供了一个自定义的``project()``命令,该命令负责处理建立可执行文件时所有的繁重工作。包含在标准 ESP-IDF 项目的顶层 CMakeLists.txt 中。
- project.cmake - 导入 ``idf.cmake``,并提供了一个自定义的 ``project()`` 命令,该命令负责处理建立可执行文件时所有的繁重工作。包含在标准 ESP-IDF 项目的顶层 CMakeLists.txt 中。
:idf:`/tools/cmake` 中的其它文件都是构建过程中的支持性文件或第三方脚本。
@ -1535,9 +1535,9 @@ ESP-IDF 构建系统的列表文件位于 :idf:`/tools/cmake` 中。实现构建
- 设置全局构建参数,即编译选项、编译定义、包括所有组件的 include 目录。
- 将 :idf:`components` 中的组件添加到构建中。
- 自定义 ``project()`` 命令的初始部分执行以下步骤:
- 在环境变量或 CMake 缓存中设置 ``IDF_TARGET`` 以及设置相应要使用的``CMAKE_TOOLCHAIN_FILE``
- 在环境变量或 CMake 缓存中设置 ``IDF_TARGET`` 以及设置相应要使用的 ``CMAKE_TOOLCHAIN_FILE``
- 添加 ``EXTRA_COMPONENT_DIRS`` 中的组件至构建中
- 从 ``COMPONENTS``/``EXCLUDE_COMPONENTS````SDKCONFIG````SDKCONFIG_DEFAULTS`` 等变量中为调用命令 ``idf_build_process()`` 准备参数。
- 从 ``COMPONENTS``/ ``EXCLUDE_COMPONENTS````SDKCONFIG````SDKCONFIG_DEFAULTS`` 等变量中为调用命令 ``idf_build_process()`` 准备参数。
调用 ``idf_build_process()`` 命令标志着这个阶段的结束。

View File

@ -121,15 +121,15 @@ ESP系列芯片最多支持三种射频收发模块: BluetoothBT 和 BLE,
default_group_color = none;
# node labels
Wi-Fi [shape = box];
Bluetooth [shape = box];
Coexistence [shape = box, label = 'Coexistence module'];
RF [shape = box, label = 'RF module'];
Wi-Fi [shape = box];
Bluetooth [shape = box];
Coexistence [shape = box, label = 'Coexistence module'];
RF [shape = box, label = 'RF module'];
# node connections
Wi-Fi -> Coexistence;
Bluetooth -> Coexistence;
Coexistence -> RF;
Wi-Fi -> Coexistence;
Bluetooth -> Coexistence;
Coexistence -> RF;
}
@ -253,4 +253,4 @@ BLE MESH 共存状态描述
.. note::
由于共存配置选项依赖于任何两个已启用的射频收发模块的存在,请在配置任何共存功能之前,确保至少使能了两个射频收发模块。
由于共存配置选项依赖于任何两个已启用的射频收发模块的存在,请在配置任何共存功能之前,确保至少使能了两个射频收发模块。

View File

@ -44,4 +44,4 @@
.. note::
上图隐藏了部分细节,仅展示当前版本的核心转储实现,在未来的发布版本中可能会发生变化。
上图隐藏了部分细节,仅展示当前版本的核心转储实现,在未来的发布版本中可能会发生变化。

View File

@ -1 +1 @@
.. include:: ../../en/api-guides/current-consumption-measurement-modules.rst
.. include:: ../../en/api-guides/current-consumption-measurement-modules.rst

View File

@ -1 +1 @@
.. include:: ../../en/api-guides/deep-sleep-stub.rst
.. include:: ../../en/api-guides/deep-sleep-stub.rst

View File

@ -98,7 +98,7 @@ USB 连接
Udev 规则(仅限 Linux
--------------------------------
Udev 是 Linux 内核的设备管理器,允许用户在没有 ``sudo`` 的情况下运行 ``dfu-util``(和 ``idf.py dfu-flash``)从而访问芯片。
Udev 是 Linux 内核的设备管理器,允许用户在没有 ``sudo`` 的情况下运行 ``dfu-util`` (和 ``idf.py dfu-flash``)从而访问芯片。
创建文件 ``/etc/udev/rules.d/40-dfuse.rules``,并在文件中添加如下内容::

View File

@ -149,9 +149,9 @@ ESP-IDF 中大多数函数会返回 :cpp:type:`esp_err_t` 类型的错误码,
1. 尝试恢复。根据具体情况不同,我们具体可以:
- 在一段时间后,重新调用该函数;
- 尝试删除该驱动,然后重新进行“初始化”;
- 采用其他带外机制,修改导致错误发生的条件(例如,对一直没有响应的外设进行复位等)。
- 在一段时间后,重新调用该函数;
- 尝试删除该驱动,然后重新进行“初始化”;
- 采用其他带外机制,修改导致错误发生的条件(例如,对一直没有响应的外设进行复位等)。
示例::

View File

@ -204,7 +204,7 @@ ESP-BLE-MESH 架构主要由以下 5 大部分组成:
``API /事件`` 与 ESP-BLE-MESH 协议栈的交互
- 用户使用的 API 主要调用``Mesh Networking````Mesh Provisioning````Mesh Models`` 提供的函数。
- 用户使用的 API 主要调用 ``Mesh Networking`` ``Mesh Provisioning````Mesh Models`` 提供的函数。
- ``API /事件`` 和协议栈的交互不会跨越协议栈的层级进行操作。比如 API 不会调用 ``Network Layer`` 相关的函数。

View File

@ -1 +1 @@
.. include:: ../../../en/api-guides/esp-ble-mesh/ble-mesh-feature-list.rst
.. include:: ../../../en/api-guides/esp-ble-mesh/ble-mesh-feature-list.rst

View File

@ -67,7 +67,7 @@ ESP-WIFI-MESH 概念
术语
^^^^^^^^^^^
.. list-table::
.. list-table::
:widths: 25 75
:header-rows: 1
@ -636,7 +636,7 @@ ESP-WIFI-MESH 允许通过配置启用或禁用自主信道切换。同样,也
下表说明了在不同参数/条件组合下是否允许信道切换和路由器切换。请注意,`X` 代表参数“不关心”。
.. list-table::
.. list-table::
:widths: 15 15 15 15 15 15
:header-rows: 1
@ -651,7 +651,7 @@ ESP-WIFI-MESH 允许通过配置启用或禁用自主信道切换。同样,也
- N
- X
- X
- 信道与路由器
- 信道与路由器
* - N
- X
- Y
@ -663,13 +663,13 @@ ESP-WIFI-MESH 允许通过配置启用或禁用自主信道切换。同样,也
- Y
- Y
- X
- 信道与路由器
- 信道与路由器
* - Y
- Y
- N
- X
- X
- 信道与路由器
- 信道与路由器
* - Y
- N
- N
@ -687,7 +687,7 @@ ESP-WIFI-MESH 允许通过配置启用或禁用自主信道切换。同样,也
- Y
- N
- X
- 仅信道
- 仅信道
* - Y
- N
- Y
@ -705,7 +705,7 @@ ESP-WIFI-MESH 允许通过配置启用或禁用自主信道切换。同样,也
- Y
- Y
- X
- 信道与路由器
- 信道与路由器
* - Y
- N
- Y

View File

@ -221,7 +221,7 @@
Backtrace:
0x42006686 in bar (ptr=ptr@entry=0x0) at ../main/hello_world_main.c:18
18 *ptr = 0x42424242;
18 *ptr = 0x42424242;
#0 0x42006686 in bar (ptr=ptr@entry=0x0) at ../main/hello_world_main.c:18
#1 0x42006692 in foo () at ../main/hello_world_main.c:22
#2 0x420066ac in app_main () at ../main/hello_world_main.c:28
@ -533,7 +533,7 @@ FreeRTOS 堆栈检查
- 移位基数或指数错误(如移位超过 32 位)
- 整数转换错误
请参考 `GCC 文档 <https://gcc.gnu.org/onlinedocs/gcc/Instrumentation-Options.html>`_ 中的``-fsanitize=undefined`` 选项,查看支持检查的完整列表。
请参考 `GCC 文档 <https://gcc.gnu.org/onlinedocs/gcc/Instrumentation-Options.html>`_ 中的 ``-fsanitize=undefined`` 选项,查看支持检查的完整列表。
使能 UBSAN
""""""""""""""

View File

@ -1 +1 @@
.. include:: ../../en/api-guides/flash_psram_config.rst
.. include:: ../../en/api-guides/flash_psram_config.rst

View File

@ -118,4 +118,4 @@ Xtensa 架构支持 32 个中断处理程序,这些中断分为从 1 到 7 的
- 中等优先级的中断理论上也可以通过上述方式处理,但 ESP-IDF 尚不支持此功能。
- 要检查 Xtensa 指令集架构 (ISA),请参阅 `Xtensa ISA 摘要 <https://www.cadence.com/content/dam/cadence-www/global/en_US/documents/tools/ip/tensilica-ip/isa-summary.pdf>`_
- 要检查 Xtensa 指令集架构 (ISA),请参阅 `Xtensa ISA 摘要 <https://www.cadence.com/content/dam/cadence-www/global/en_US/documents/tools/ip/tensilica-ip/isa-summary.pdf>`_

View File

@ -24,7 +24,7 @@ MacOS 环境下从源码编译 OpenOCD
使用 Homebrew 安装编译 OpenOCD 所需的软件包::
brew install automake libtool libusb wget gcc@4.9 pkg-config
brew install automake libtool libusb wget gcc@4.9 pkg-config
构建 OpenOCD

View File

@ -232,9 +232,9 @@
请检查你的目标板是否已经准备好,并加载了 :example:`get-started/blink` 示例代码,然后按照 :ref:`jtag-debugging-using-debugger-command-line` 中介绍的步骤配置和启动调试器,最后选择让应用程序在 ``app_main()`` 建立的断点处停止运行 ::
Temporary breakpoint 1, app_main () at /home/user-name/esp/blink/main/./blink.c:43
43 xTaskCreate(&blink_task, "blink_task", configMINIMAL_STACK_SIZE, NULL, 5, NULL);
(gdb)
Temporary breakpoint 1, app_main () at /home/user-name/esp/blink/main/./blink.c:43
43 xTaskCreate(&blink_task, "blink_task", configMINIMAL_STACK_SIZE, NULL, 5, NULL);
(gdb)
本小节的示例
@ -259,112 +259,112 @@
要找到代码暂停的位置,输入 ``l`` 或者 ``list`` 命令,调试器会打印出暂停点(``blink.c`` 代码文件的第 43 行)附近的几行代码 ::
(gdb) l
38 }
39 }
40
41 void app_main()
42 {
43 xTaskCreate(&blink_task, "blink_task", configMINIMAL_STACK_SIZE, NULL, 5, NULL);
44 }
(gdb)
(gdb) l
38 }
39 }
40
41 void app_main()
42 {
43 xTaskCreate(&blink_task, "blink_task", configMINIMAL_STACK_SIZE, NULL, 5, NULL);
44 }
(gdb)
也可以通过输入 ``l 30, 40`` 等命令来查看特定行号范围内的代码。
使用 ``bt`` 或者 ``backtrace`` 来查看哪些函数最终导致了此代码被调用::
(gdb) bt
#0 app_main () at /home/user-name/esp/blink/main/./blink.c:43
#1 0x400d057e in main_task (args=0x0) at /home/user-name/esp/esp-idf/components/{IDF_TARGET_PATH_NAME}/./cpu_start.c:339
(gdb)
(gdb) bt
#0 app_main () at /home/user-name/esp/blink/main/./blink.c:43
#1 0x400d057e in main_task (args=0x0) at /home/user-name/esp/esp-idf/components/{IDF_TARGET_PATH_NAME}/./cpu_start.c:339
(gdb)
输出的第 0 行表示应用程序暂停之前调用的最后一个函数,即我们之前列出的 ``app_main ()````app_main ()`` 又被位于 ``cpu_start.c`` 文件第 339 行的 ``main_task`` 函数调用。
想查看 ``cpu_start.c`` 文件中 ``main_task`` 函数的上下文,需要输入 ``frame N``,其中 N = 1因为根据前面的输出``main_task`` 位于 #1 下::
(gdb) frame 1
#1 0x400d057e in main_task (args=0x0) at /home/user-name/esp/esp-idf/components/{IDF_TARGET_PATH_NAME}/./cpu_start.c:339
339 app_main();
(gdb)
(gdb) frame 1
#1 0x400d057e in main_task (args=0x0) at /home/user-name/esp/esp-idf/components/{IDF_TARGET_PATH_NAME}/./cpu_start.c:339
339 app_main();
(gdb)
输入 ``l`` 将显示一段名为 ``app_main()`` 的代码(在第 339 行)::
(gdb) l
334 ;
335 }
336 #endif
337 //Enable allocation in region where the startup stacks were located.
338 heap_caps_enable_nonos_stack_heaps();
339 app_main();
340 vTaskDelete(NULL);
341 }
342
(gdb)
(gdb) l
334 ;
335 }
336 #endif
337 //Enable allocation in region where the startup stacks were located.
338 heap_caps_enable_nonos_stack_heaps();
339 app_main();
340 vTaskDelete(NULL);
341 }
342
(gdb)
通过打印前面的一些行,你会看到我们一直在寻找的 ``main_task`` 函数::
(gdb) l 326, 341
326 static void main_task(void* args)
327 {
328 // Now that the application is about to start, disable boot watchdogs
329 REG_CLR_BIT(TIMG_WDTCONFIG0_REG(0), TIMG_WDT_FLASHBOOT_MOD_EN_S);
330 REG_CLR_BIT(RTC_CNTL_WDTCONFIG0_REG, RTC_CNTL_WDT_FLASHBOOT_MOD_EN);
331 #if !CONFIG_FREERTOS_UNICORE
332 // Wait for FreeRTOS initialization to finish on APP CPU, before replacing its startup stack
333 while (port_xSchedulerRunning[1] == 0) {
334 ;
335 }
336 #endif
337 //Enable allocation in region where the startup stacks were located.
338 heap_caps_enable_nonos_stack_heaps();
339 app_main();
340 vTaskDelete(NULL);
341 }
(gdb)
(gdb) l 326, 341
326 static void main_task(void* args)
327 {
328 // Now that the application is about to start, disable boot watchdogs
329 REG_CLR_BIT(TIMG_WDTCONFIG0_REG(0), TIMG_WDT_FLASHBOOT_MOD_EN_S);
330 REG_CLR_BIT(RTC_CNTL_WDTCONFIG0_REG, RTC_CNTL_WDT_FLASHBOOT_MOD_EN);
331 #if !CONFIG_FREERTOS_UNICORE
332 // Wait for FreeRTOS initialization to finish on APP CPU, before replacing its startup stack
333 while (port_xSchedulerRunning[1] == 0) {
334 ;
335 }
336 #endif
337 //Enable allocation in region where the startup stacks were located.
338 heap_caps_enable_nonos_stack_heaps();
339 app_main();
340 vTaskDelete(NULL);
341 }
(gdb)
如果要查看其他代码,可以输入 ``i threads`` 命令,则会输出目标板上运行的线程列表::
(gdb) i threads
Id Target Id Frame
8 Thread 1073411336 (dport) 0x400d0848 in dport_access_init_core (arg=<optimized out>)
at /home/user-name/esp/esp-idf/components/{IDF_TARGET_PATH_NAME}/./dport_access.c:170
7 Thread 1073408744 (ipc0) xQueueGenericReceive (xQueue=0x3ffae694, pvBuffer=0x0, xTicksToWait=1644638200,
xJustPeeking=0) at /home/user-name/esp/esp-idf/components/freertos/./queue.c:1452
6 Thread 1073431096 (Tmr Svc) prvTimerTask (pvParameters=0x0)
at /home/user-name/esp/esp-idf/components/freertos/./timers.c:445
5 Thread 1073410208 (ipc1 : Running) 0x4000bfea in ?? ()
4 Thread 1073432224 (dport) dport_access_init_core (arg=0x0)
at /home/user-name/esp/esp-idf/components/{IDF_TARGET_PATH_NAME}/./dport_access.c:150
3 Thread 1073413156 (IDLE) prvIdleTask (pvParameters=0x0)
at /home/user-name/esp/esp-idf/components/freertos/./tasks.c:3282
2 Thread 1073413512 (IDLE) prvIdleTask (pvParameters=0x0)
at /home/user-name/esp/esp-idf/components/freertos/./tasks.c:3282
* 1 Thread 1073411772 (main : Running) app_main () at /home/user-name/esp/blink/main/./blink.c:43
(gdb)
(gdb) i threads
Id Target Id Frame
8 Thread 1073411336 (dport) 0x400d0848 in dport_access_init_core (arg=<optimized out>)
at /home/user-name/esp/esp-idf/components/{IDF_TARGET_PATH_NAME}/./dport_access.c:170
7 Thread 1073408744 (ipc0) xQueueGenericReceive (xQueue=0x3ffae694, pvBuffer=0x0, xTicksToWait=1644638200,
xJustPeeking=0) at /home/user-name/esp/esp-idf/components/freertos/./queue.c:1452
6 Thread 1073431096 (Tmr Svc) prvTimerTask (pvParameters=0x0)
at /home/user-name/esp/esp-idf/components/freertos/./timers.c:445
5 Thread 1073410208 (ipc1 : Running) 0x4000bfea in ?? ()
4 Thread 1073432224 (dport) dport_access_init_core (arg=0x0)
at /home/user-name/esp/esp-idf/components/{IDF_TARGET_PATH_NAME}/./dport_access.c:150
3 Thread 1073413156 (IDLE) prvIdleTask (pvParameters=0x0)
at /home/user-name/esp/esp-idf/components/freertos/./tasks.c:3282
2 Thread 1073413512 (IDLE) prvIdleTask (pvParameters=0x0)
at /home/user-name/esp/esp-idf/components/freertos/./tasks.c:3282
* 1 Thread 1073411772 (main : Running) app_main () at /home/user-name/esp/blink/main/./blink.c:43
(gdb)
线程列表显示了每个线程最后一个被调用的函数以及所在的 C 源文件名(如果存在的话)。
你可以通过输入 ``thread N`` 进入特定的线程,其中 ``N`` 是线程 ID。我们进入 5 号线程来看一下它是如何工作的::
(gdb) thread 5
[Switching to thread 5 (Thread 1073410208)]
#0 0x4000bfea in ?? ()
(gdb)
(gdb) thread 5
[Switching to thread 5 (Thread 1073410208)]
#0 0x4000bfea in ?? ()
(gdb)
然后查看回溯::
(gdb) bt
#0 0x4000bfea in ?? ()
#1 0x40083a85 in vPortCPUReleaseMutex (mux=<optimized out>) at /home/user-name/esp/esp-idf/components/freertos/./port.c:415
#2 0x40083fc8 in vTaskSwitchContext () at /home/user-name/esp/esp-idf/components/freertos/./tasks.c:2846
#3 0x4008532b in _frxt_dispatch ()
#4 0x4008395c in xPortStartScheduler () at /home/user-name/esp/esp-idf/components/freertos/./port.c:222
#5 0x4000000c in ?? ()
#6 0x4000000c in ?? ()
#7 0x4000000c in ?? ()
#8 0x4000000c in ?? ()
(gdb)
(gdb) bt
#0 0x4000bfea in ?? ()
#1 0x40083a85 in vPortCPUReleaseMutex (mux=<optimized out>) at /home/user-name/esp/esp-idf/components/freertos/./port.c:415
#2 0x40083fc8 in vTaskSwitchContext () at /home/user-name/esp/esp-idf/components/freertos/./tasks.c:2846
#3 0x4008532b in _frxt_dispatch ()
#4 0x4008395c in xPortStartScheduler () at /home/user-name/esp/esp-idf/components/freertos/./port.c:222
#5 0x4000000c in ?? ()
#6 0x4000000c in ?? ()
#7 0x4000000c in ?? ()
#8 0x4000000c in ?? ()
(gdb)
如上所示,回溯可能会包含多个条目,方便查看直至目标停止运行的函数调用顺序。如果找不到某个函数的源码文件,将会使用问号 ``??`` 替代,这表示该函数是以二进制格式提供的。像 ``0x4000bfea`` 这样的值是被调用函数所在的内存地址。
@ -435,16 +435,16 @@
在此之前,请删除所有的断点,然后输入 ``c`` 恢复程序运行。接着输入 Ctrl+C应用程序会停止在某个随机的位置此时 LED 也将停止闪烁。调试器会打印如下信息::
(gdb) c
Continuing.
^CTarget halted. PRO_CPU: PC=0x400D0C00 APP_CPU: PC=0x400D0C00 (active)
[New Thread 1073433352]
(gdb) c
Continuing.
^CTarget halted. PRO_CPU: PC=0x400D0C00 APP_CPU: PC=0x400D0C00 (active)
[New Thread 1073433352]
Program received signal SIGINT, Interrupt.
[Switching to Thread 1073413512]
0x400d0c00 in esp_vApplicationIdleHook () at /home/user-name/esp/esp-idf/components/{IDF_TARGET_PATH_NAME}/./freertos_hooks.c:52
52 asm("waiti 0");
(gdb)
Program received signal SIGINT, Interrupt.
[Switching to Thread 1073413512]
0x400d0c00 in esp_vApplicationIdleHook () at /home/user-name/esp/esp-idf/components/{IDF_TARGET_PATH_NAME}/./freertos_hooks.c:52
52 asm("waiti 0");
(gdb)
在上图所示的情况下,应用程序已经在 ``freertos_hooks.c`` 文件的第 52 行暂停运行,现在你可以通过输入 ``c`` 再次将其恢复运行或者进行如下所述的一些调试工作。

Some files were not shown because too many files have changed in this diff Show More