2022-12-13 12:16:56 -05:00
Bootloader Image Format
=======================
2023-09-26 03:47:19 -04:00
:link_to_translation:`zh_CN:[中文]`
The bootloader image consists of the same structures as the application image, see :ref: `Application Image Structures <app-image-structures>` . The only difference is in the :ref: `image-format-bootloader-description` structure.
2022-12-13 12:16:56 -05:00
To get information about the bootloader image, please run the following command:
.. code-block ::
2023-09-26 03:47:19 -04:00
esptool.py --chip {IDF_TARGET_PATH_NAME} image_info build/bootloader/bootloader.bin --version 2
The resultant output will resemble the following:
2022-12-13 12:16:56 -05:00
.. code-block ::
File size: 26576 (bytes)
ESP32 image header
==================
Image version: 1
Entry point: 0x40080658
Segments: 4
Flash size: 2MB
Flash freq: 40m
Flash mode: DIO
ESP32 extended image header
===========================
WP pin: 0xee
Flash pins drive settings: clk_drv: 0x0, q_drv: 0x0, d_drv: 0x0, cs0_drv: 0x0, hd_drv: 0x0, wp_drv: 0x0
Chip ID: 0
Minimal chip revision: v0.0, (legacy min_rev = 0)
Maximal chip revision: v3.99
Segments information
====================
Segment Length Load addr File offs Memory types
------- ------- ---------- ---------- ------------
1 0x01bb0 0x3fff0030 0x00000018 BYTE_ACCESSIBLE, DRAM, DIRAM_DRAM
2 0x03c90 0x40078000 0x00001bd0 CACHE_APP
3 0x00004 0x40080400 0x00005868 IRAM
4 0x00f2c 0x40080404 0x00005874 IRAM
ESP32 image footer
==================
Checksum: 0x65 (valid)
Validation hash: 6f31a7f8512f26f6bce7c3b270f93bf6cf1ee4602c322998ca8ce27433527e92 (valid)
Bootloader information
======================
Bootloader version: 1
ESP-IDF: v5.1-dev-4304-gcb51a3b-dirty
Compile time: Mar 30 2023 19:14:17
2023-09-26 03:47:19 -04:00
2022-12-13 12:16:56 -05:00
.. _image-format-bootloader-description:
Bootloader Description
----------------------
The `` DRAM0 `` segment of the bootloader binary starts with the :cpp:type: `esp_bootloader_desc_t` structure which carries specific fields describing the bootloader. This structure is located at a fixed offset = sizeof(:cpp:type: `esp_image_header_t` ) + sizeof(:cpp:type: `esp_image_segment_header_t` ).
2023-09-26 03:47:19 -04:00
* `` magic_byte `` : the magic byte for the esp_bootloader_desc structure
* `` reserved `` : reserved for the future IDF use
* `` version `` : bootloader version, see :ref: `CONFIG_BOOTLOADER_PROJECT_VER`
* `` idf_ver `` : ESP-IDF version. [#f1]_
* `` date `` and `` time `` : compile date and time
* `` reserved2 `` : reserved for the future IDF use
2022-12-13 12:16:56 -05:00
2023-09-26 03:47:19 -04:00
.. [#f1] The maximum length is 32 characters, including null-termination character.
2022-12-13 12:16:56 -05:00
To get the :cpp:type: `esp_bootloader_desc_t` structure from the running bootloader, use :cpp:func: `esp_bootloader_get_description` .
To get the :cpp:type: `esp_bootloader_desc_t` structure from a running application, use :cpp:func: `esp_ota_get_bootloader_description` .
API Reference
-------------
.. include-build-file :: inc/esp_bootloader_desc.inc