From: morris Date: Thu, 14 Mar 2019 14:03:04 +0000 (+0800) Subject: merge esp_flash_data_types into esp_flash_partitions X-Git-Tag: v4.0-beta1~487^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=fae39dc326c8bf0060a96a9233d9df8dba864e40;p=esp-idf merge esp_flash_data_types into esp_flash_partitions --- diff --git a/components/app_update/esp_ota_ops.c b/components/app_update/esp_ota_ops.c index 02eab8eb6b..d5c87b4271 100644 --- a/components/app_update/esp_ota_ops.c +++ b/components/app_update/esp_ota_ops.c @@ -36,7 +36,7 @@ #include "rom/crc.h" #include "soc/dport_reg.h" #include "esp_log.h" -#include "esp_flash_data_types.h" +#include "esp_flash_partitions.h" #include "bootloader_common.h" #include "sys/param.h" #include "esp_system.h" diff --git a/components/app_update/include/esp_ota_ops.h b/components/app_update/include/esp_ota_ops.h index 635144638d..73ca8a3028 100644 --- a/components/app_update/include/esp_ota_ops.h +++ b/components/app_update/include/esp_ota_ops.h @@ -21,7 +21,7 @@ #include "esp_err.h" #include "esp_partition.h" #include "esp_image_format.h" -#include "esp_flash_data_types.h" +#include "esp_flash_partitions.h" #ifdef __cplusplus extern "C" diff --git a/components/bootloader_support/include/bootloader_common.h b/components/bootloader_support/include/bootloader_common.h index d18b97ceb3..c7136d4aa5 100644 --- a/components/bootloader_support/include/bootloader_common.h +++ b/components/bootloader_support/include/bootloader_common.h @@ -13,7 +13,7 @@ // limitations under the License. #pragma once -#include "esp_flash_data_types.h" +#include "esp_flash_partitions.h" #include "esp_image_format.h" /// Type of hold a GPIO in low state diff --git a/components/bootloader_support/include/esp_flash_data_types.h b/components/bootloader_support/include/esp_flash_data_types.h new file mode 100644 index 0000000000..fda6d5c645 --- /dev/null +++ b/components/bootloader_support/include/esp_flash_data_types.h @@ -0,0 +1,2 @@ +#warning esp_flash_data_types.h has been merged into esp_flash_partitions.h, please include esp_flash_partitions.h instead +#include "esp_flash_partitions.h" diff --git a/components/bootloader_support/include/esp_flash_partitions.h b/components/bootloader_support/include/esp_flash_partitions.h index b5f37aa5fc..e5305d836d 100644 --- a/components/bootloader_support/include/esp_flash_partitions.h +++ b/components/bootloader_support/include/esp_flash_partitions.h @@ -11,14 +11,37 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. -#ifndef __ESP_FLASH_PARTITIONS_H -#define __ESP_FLASH_PARTITIONS_H +#pragma once #include "esp_err.h" -#include "esp_flash_data_types.h" -#include +#include "esp_types.h" #include "sdkconfig.h" +#ifdef __cplusplus +extern "C" { +#endif + +#define ESP_PARTITION_MAGIC 0x50AA +#define ESP_PARTITION_MAGIC_MD5 0xEBEB + +#define PART_TYPE_APP 0x00 +#define PART_SUBTYPE_FACTORY 0x00 +#define PART_SUBTYPE_OTA_FLAG 0x10 +#define PART_SUBTYPE_OTA_MASK 0x0f +#define PART_SUBTYPE_TEST 0x20 + +#define PART_TYPE_DATA 0x01 +#define PART_SUBTYPE_DATA_OTA 0x00 +#define PART_SUBTYPE_DATA_RF 0x01 +#define PART_SUBTYPE_DATA_WIFI 0x02 +#define PART_SUBTYPE_DATA_NVS_KEYS 0x04 +#define PART_SUBTYPE_DATA_EFUSE_EM 0x05 + +#define PART_TYPE_END 0xff +#define PART_SUBTYPE_END 0xff + +#define PART_FLAG_ENCRYPTED (1<<0) + /* Pre-partition table fixed flash offsets */ #define ESP_BOOTLOADER_DIGEST_OFFSET 0x0 #define ESP_BOOTLOADER_OFFSET 0x1000 /* Offset of bootloader image. Has matching value in bootloader KConfig.projbuild file. */ @@ -27,6 +50,43 @@ #define ESP_PARTITION_TABLE_MAX_LEN 0xC00 /* Maximum length of partition table data */ #define ESP_PARTITION_TABLE_MAX_ENTRIES (ESP_PARTITION_TABLE_MAX_LEN / sizeof(esp_partition_info_t)) /* Maximum length of partition table data, including terminating entry */ +/// OTA_DATA states for checking operability of the app. +typedef enum { + ESP_OTA_IMG_NEW = 0x0U, /*!< Monitor the first boot. In bootloader this state is changed to ESP_OTA_IMG_PENDING_VERIFY. */ + ESP_OTA_IMG_PENDING_VERIFY = 0x1U, /*!< First boot for this app was. If while the second boot this state is then it will be changed to ABORTED. */ + ESP_OTA_IMG_VALID = 0x2U, /*!< App was confirmed as workable. App can boot and work without limits. */ + ESP_OTA_IMG_INVALID = 0x3U, /*!< App was confirmed as non-workable. This app will not selected to boot at all. */ + ESP_OTA_IMG_ABORTED = 0x4U, /*!< App could not confirm the workable or non-workable. In bootloader IMG_PENDING_VERIFY state will be changed to IMG_ABORTED. This app will not selected to boot at all. */ + ESP_OTA_IMG_UNDEFINED = 0xFFFFFFFFU, /*!< Undefined. App can boot and work without limits. */ +} esp_ota_img_states_t; + +/* OTA selection structure (two copies in the OTA data partition.) + Size of 32 bytes is friendly to flash encryption */ +typedef struct { + uint32_t ota_seq; + uint8_t seq_label[20]; + uint32_t ota_state; + uint32_t crc; /* CRC32 of ota_seq field only */ +} esp_ota_select_entry_t; + + +typedef struct { + uint32_t offset; + uint32_t size; +} esp_partition_pos_t; + +/* Structure which describes the layout of partition table entry. + * See docs/partition_tables.rst for more information about individual fields. + */ +typedef struct { + uint16_t magic; + uint8_t type; + uint8_t subtype; + esp_partition_pos_t pos; + uint8_t label[16]; + uint32_t flags; +} esp_partition_info_t; + /* @brief Verify the partition table * * @param partition_table Pointer to at least ESP_PARTITION_TABLE_MAX_ENTRIES of potential partition table data. (ESP_PARTITION_TABLE_MAX_LEN bytes.) @@ -43,5 +103,6 @@ inline static __attribute__((deprecated)) esp_err_t esp_partition_table_basic_ve { return esp_partition_table_verify(partition_table, log_errors, num_partitions); } - +#ifdef __cplusplus +} #endif diff --git a/components/bootloader_support/include_bootloader/bootloader_config.h b/components/bootloader_support/include_bootloader/bootloader_config.h index d6ec5da1bc..1d69195f0c 100644 --- a/components/bootloader_support/include_bootloader/bootloader_config.h +++ b/components/bootloader_support/include_bootloader/bootloader_config.h @@ -21,7 +21,7 @@ extern "C" { #endif -#include "esp_flash_data_types.h" +#include "esp_flash_partitions.h" #include "soc/soc.h" #define SPI_SEC_SIZE 0x1000 diff --git a/components/bootloader_support/src/bootloader_common.c b/components/bootloader_support/src/bootloader_common.c index 29e591d1af..92b8246690 100644 --- a/components/bootloader_support/src/bootloader_common.c +++ b/components/bootloader_support/src/bootloader_common.c @@ -21,7 +21,6 @@ #include "rom/crc.h" #include "rom/ets_sys.h" #include "rom/gpio.h" -#include "esp_flash_data_types.h" #include "esp_secure_boot.h" #include "esp_flash_partitions.h" #include "bootloader_flash.h" diff --git a/components/bootloader_support/src/flash_encrypt.c b/components/bootloader_support/src/flash_encrypt.c index 814bb39259..c79531f13a 100644 --- a/components/bootloader_support/src/flash_encrypt.c +++ b/components/bootloader_support/src/flash_encrypt.c @@ -18,7 +18,6 @@ #include "esp_image_format.h" #include "esp_flash_encrypt.h" #include "esp_flash_partitions.h" -#include "esp_flash_data_types.h" #include "esp_secure_boot.h" #include "esp_efuse.h" #include "esp_log.h" @@ -340,11 +339,11 @@ esp_err_t esp_flash_encrypt_region(uint32_t src_addr, size_t data_length) return err; } -void esp_flash_write_protect_crypt_cnt() +void esp_flash_write_protect_crypt_cnt() { uint32_t efuse_blk0 = REG_READ(EFUSE_BLK0_RDATA0_REG); bool flash_crypt_wr_dis = efuse_blk0 & EFUSE_WR_DIS_FLASH_CRYPT_CNT; - if(!flash_crypt_wr_dis) { + if(!flash_crypt_wr_dis) { REG_WRITE(EFUSE_BLK0_WDATA0_REG, EFUSE_WR_DIS_FLASH_CRYPT_CNT); esp_efuse_burn_new_values(); } diff --git a/components/bootloader_support/src/flash_partitions.c b/components/bootloader_support/src/flash_partitions.c index 6686457338..bf499fcade 100644 --- a/components/bootloader_support/src/flash_partitions.c +++ b/components/bootloader_support/src/flash_partitions.c @@ -16,7 +16,6 @@ #include "esp_log.h" #include "rom/spi_flash.h" #include "rom/md5_hash.h" -#include "esp_flash_data_types.h" static const char *TAG = "flash_parts"; diff --git a/components/esp32/include/esp_flash_data_types.h b/components/esp32/include/esp_flash_data_types.h deleted file mode 100644 index 998e522f06..0000000000 --- a/components/esp32/include/esp_flash_data_types.h +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at - -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -#ifndef __ESP_BIN_TYPES_H__ -#define __ESP_BIN_TYPES_H__ - -#include - -#ifdef __cplusplus -extern "C" -{ -#endif - -#define ESP_PARTITION_MAGIC 0x50AA -#define ESP_PARTITION_MAGIC_MD5 0xEBEB - -/// OTA_DATA states for checking operability of the app. -typedef enum { - ESP_OTA_IMG_NEW = 0x0U, /*!< Monitor the first boot. In bootloader this state is changed to ESP_OTA_IMG_PENDING_VERIFY. */ - ESP_OTA_IMG_PENDING_VERIFY = 0x1U, /*!< First boot for this app was. If while the second boot this state is then it will be changed to ABORTED. */ - ESP_OTA_IMG_VALID = 0x2U, /*!< App was confirmed as workable. App can boot and work without limits. */ - ESP_OTA_IMG_INVALID = 0x3U, /*!< App was confirmed as non-workable. This app will not selected to boot at all. */ - ESP_OTA_IMG_ABORTED = 0x4U, /*!< App could not confirm the workable or non-workable. In bootloader IMG_PENDING_VERIFY state will be changed to IMG_ABORTED. This app will not selected to boot at all. */ - ESP_OTA_IMG_UNDEFINED = 0xFFFFFFFFU, /*!< Undefined. App can boot and work without limits. */ -} esp_ota_img_states_t; - -/* OTA selection structure (two copies in the OTA data partition.) - Size of 32 bytes is friendly to flash encryption */ -typedef struct { - uint32_t ota_seq; - uint8_t seq_label[20]; - uint32_t ota_state; - uint32_t crc; /* CRC32 of ota_seq field only */ -} esp_ota_select_entry_t; - - -typedef struct { - uint32_t offset; - uint32_t size; -} esp_partition_pos_t; - -/* Structure which describes the layout of partition table entry. - * See docs/partition_tables.rst for more information about individual fields. - */ -typedef struct { - uint16_t magic; - uint8_t type; - uint8_t subtype; - esp_partition_pos_t pos; - uint8_t label[16]; - uint32_t flags; -} esp_partition_info_t; - -#define PART_TYPE_APP 0x00 -#define PART_SUBTYPE_FACTORY 0x00 -#define PART_SUBTYPE_OTA_FLAG 0x10 -#define PART_SUBTYPE_OTA_MASK 0x0f -#define PART_SUBTYPE_TEST 0x20 - -#define PART_TYPE_DATA 0x01 -#define PART_SUBTYPE_DATA_OTA 0x00 -#define PART_SUBTYPE_DATA_RF 0x01 -#define PART_SUBTYPE_DATA_WIFI 0x02 -#define PART_SUBTYPE_DATA_NVS_KEYS 0x04 -#define PART_SUBTYPE_DATA_EFUSE_EM 0x05 - -#define PART_TYPE_END 0xff -#define PART_SUBTYPE_END 0xff - -#define PART_FLAG_ENCRYPTED (1<<0) - -#ifdef __cplusplus -} -#endif - -#endif //__ESP_BIN_TYPES_H__ diff --git a/components/spi_flash/partition.c b/components/spi_flash/partition.c index 7f546e9933..77c13bd57b 100644 --- a/components/spi_flash/partition.c +++ b/components/spi_flash/partition.c @@ -19,7 +19,6 @@ #include #include "esp_flash_partitions.h" #include "esp_attr.h" -#include "esp_flash_data_types.h" #include "esp_spi_flash.h" #include "esp_partition.h" #include "esp_flash_encrypt.h" diff --git a/components/spi_flash/sim/SpiFlash.cpp b/components/spi_flash/sim/SpiFlash.cpp index 46b09bccfa..f2991e01a5 100644 --- a/components/spi_flash/sim/SpiFlash.cpp +++ b/components/spi_flash/sim/SpiFlash.cpp @@ -23,7 +23,7 @@ #include #include "sdkconfig.h" -#include "esp_flash_data_types.h" +#include "esp_flash_partitions.h" using namespace std;