mirror of
				https://github.com/espressif/esp-idf.git
				synced 2025-10-27 21:21:44 +01:00 
			
		
		
		
	change(bootloader): remove ignore efuse check flag (temp) change(bootloader): use int for the minimum efuse blk rev (temp)
		
			
				
	
	
		
			82 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			82 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
 | |
|  *
 | |
|  * SPDX-License-Identifier: Apache-2.0
 | |
|  */
 | |
| 
 | |
| #pragma once
 | |
| 
 | |
| #include <stdint.h>
 | |
| #include <stdbool.h>
 | |
| #include <stddef.h>
 | |
| #include "esp_err.h"
 | |
| #include "esp_assert.h"
 | |
| #include "esp_attr.h"
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| extern "C"
 | |
| {
 | |
| #endif
 | |
| 
 | |
| #define ESP_APP_DESC_MAGIC_WORD (0xABCD5432)  /*!< The magic word for the esp_app_desc structure that is in DROM. */
 | |
| 
 | |
| /**
 | |
|  * @brief Description about application.
 | |
|  */
 | |
| typedef struct {
 | |
|     uint32_t magic_word;        /*!< Magic word ESP_APP_DESC_MAGIC_WORD */
 | |
|     uint32_t secure_version;    /*!< Secure version */
 | |
|     uint32_t reserv1[2];        /*!< reserv1 */
 | |
|     char version[32];           /*!< Application version */
 | |
|     char project_name[32];      /*!< Project name */
 | |
|     char time[16];              /*!< Compile time */
 | |
|     char date[16];              /*!< Compile date*/
 | |
|     char idf_ver[32];           /*!< Version IDF */
 | |
|     uint8_t app_elf_sha256[32]; /*!< sha256 of elf file */
 | |
|     uint16_t min_efuse_blk_rev_full; /*!< Minimal eFuse block revision supported by image, in format: major * 100 + minor */
 | |
|     uint16_t max_efuse_blk_rev_full; /*!< Maximal eFuse block revision supported by image, in format: major * 100 + minor */
 | |
|     uint32_t reserv2[19];       /*!< reserv2 */
 | |
| } esp_app_desc_t;
 | |
| 
 | |
| /** @cond */
 | |
| ESP_STATIC_ASSERT(sizeof(esp_app_desc_t) == 256, "esp_app_desc_t should be 256 bytes");
 | |
| ESP_STATIC_ASSERT(offsetof(esp_app_desc_t, secure_version) == 4, "secure_version field must be at 4 offset");
 | |
| /** @endcond */
 | |
| 
 | |
| /**
 | |
|  * @brief   Return esp_app_desc structure. This structure includes app version.
 | |
|  *
 | |
|  * Return description for running app.
 | |
|  * @return Pointer to esp_app_desc structure.
 | |
|  */
 | |
| const esp_app_desc_t *esp_app_get_description(void);
 | |
| 
 | |
| /**
 | |
|  * @brief   Fill the provided buffer with SHA256 of the ELF file, formatted as hexadecimal, null-terminated.
 | |
|  * If the buffer size is not sufficient to fit the entire SHA256 in hex plus a null terminator,
 | |
|  * the largest possible number of bytes will be written followed by a null.
 | |
|  * @param dst   Destination buffer
 | |
|  * @param size  Size of the buffer
 | |
|  * @return      Number of bytes written to dst (including null terminator)
 | |
|  */
 | |
| int esp_app_get_elf_sha256(char* dst, size_t size);
 | |
| 
 | |
| /** @cond */
 | |
| extern char app_elf_sha256_str[];
 | |
| /** @endcond */
 | |
| 
 | |
| /**
 | |
|  * @brief   Return SHA256 of the ELF file which is already formatted as hexadecimal, null-terminated included.
 | |
|  * Can be used in panic handler or core dump during when cache is disabled.
 | |
|  * The length is defined by CONFIG_APP_RETRIEVE_LEN_ELF_SHA option.
 | |
|  * @return  Hexadecimal SHA256 string
 | |
|  */
 | |
| FORCE_INLINE_ATTR char *esp_app_get_elf_sha256_str(void)
 | |
| {
 | |
|     return app_elf_sha256_str;
 | |
| }
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| }
 | |
| #endif
 |