From 0d85e9abbe8705170194fa97a3f2b4c40c776efe Mon Sep 17 00:00:00 2001 From: Mahavir Jain Date: Fri, 11 Oct 2019 14:35:22 +0530 Subject: [PATCH] bootloader_support: fix logging prints around chip revision --- .../bootloader_support/include/bootloader_common.h | 10 ++++++++-- components/bootloader_support/src/bootloader_common.c | 8 ++++---- components/bootloader_support/src/bootloader_init.c | 2 +- components/bootloader_support/src/esp_image_format.c | 2 +- 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/components/bootloader_support/include/bootloader_common.h b/components/bootloader_support/include/bootloader_common.h index 8b2470d6d..8b2ad215b 100644 --- a/components/bootloader_support/include/bootloader_common.h +++ b/components/bootloader_support/include/bootloader_common.h @@ -23,6 +23,11 @@ typedef enum { GPIO_NOT_HOLD = 0 /*!< If the GPIO input is not low */ } esp_comm_gpio_hold_t; +typedef enum { + ESP_IMAGE_BOOTLOADER, + ESP_IMAGE_APPLICATION +} esp_image_type; + /** * @brief Calculate crc for the OTA data partition. * @@ -80,9 +85,10 @@ uint8_t bootloader_common_get_chip_revision(void); /** * @brief Check if the image (bootloader and application) has valid chip ID and revision * - * @param img_hdr: image header + * @param[in] img_hdr: image header + * @param[in] type: image type, bootloader or application * @return * - ESP_OK: image and chip are matched well * - ESP_FAIL: image doesn't match to the chip */ -esp_err_t bootloader_common_check_chip_validity(const esp_image_header_t* img_hdr); +esp_err_t bootloader_common_check_chip_validity(const esp_image_header_t* img_hdr, esp_image_type type); diff --git a/components/bootloader_support/src/bootloader_common.c b/components/bootloader_support/src/bootloader_common.c index c4478892f..70557dbf1 100644 --- a/components/bootloader_support/src/bootloader_common.c +++ b/components/bootloader_support/src/bootloader_common.c @@ -179,20 +179,20 @@ uint8_t bootloader_common_get_chip_revision(void) return chip_ver; } -esp_err_t bootloader_common_check_chip_validity(const esp_image_header_t* img_hdr) +esp_err_t bootloader_common_check_chip_validity(const esp_image_header_t* img_hdr, esp_image_type type) { esp_err_t err = ESP_OK; esp_chip_id_t chip_id = CONFIG_IDF_FIRMWARE_CHIP_ID; if (chip_id != img_hdr->chip_id) { - ESP_LOGE(TAG, "mismatch chip ID, expect %d, found %d", chip_id, img_hdr->chip_id); + ESP_LOGE(TAG, "mismatch chip ID, expected %d, found %d", chip_id, img_hdr->chip_id); err = ESP_FAIL; } uint8_t revision = bootloader_common_get_chip_revision(); if (revision < img_hdr->min_chip_rev) { - ESP_LOGE(TAG, "can't run on lower chip revision, expect %d, found %d", revision, img_hdr->min_chip_rev); + ESP_LOGE(TAG, "can't run on lower chip revision, expected %d, found %d", revision, img_hdr->min_chip_rev); err = ESP_FAIL; } else if (revision != img_hdr->min_chip_rev) { - ESP_LOGI(TAG, "mismatch chip revision, expect %d, found %d", revision, img_hdr->min_chip_rev); + ESP_LOGI(TAG, "chip revision: %d, min. %s chip revision: %d", revision, type == ESP_IMAGE_BOOTLOADER ? "bootloader" : "application", img_hdr->min_chip_rev); } return err; } diff --git a/components/bootloader_support/src/bootloader_init.c b/components/bootloader_support/src/bootloader_init.c index 385a17e4c..d749e1e67 100644 --- a/components/bootloader_support/src/bootloader_init.c +++ b/components/bootloader_support/src/bootloader_init.c @@ -130,7 +130,7 @@ static esp_err_t bootloader_main() /* Check chip ID and minimum chip revision that supported by this image */ uint8_t revision = bootloader_common_get_chip_revision(); ESP_LOGI(TAG, "Chip Revision: %d", revision); - if (bootloader_common_check_chip_validity(&fhdr) != ESP_OK) { + if (bootloader_common_check_chip_validity(&fhdr, ESP_IMAGE_BOOTLOADER) != ESP_OK) { return ESP_FAIL; } bootloader_init_flash_configure(&fhdr); diff --git a/components/bootloader_support/src/esp_image_format.c b/components/bootloader_support/src/esp_image_format.c index fa74897ee..b17d23707 100644 --- a/components/bootloader_support/src/esp_image_format.c +++ b/components/bootloader_support/src/esp_image_format.c @@ -254,7 +254,7 @@ static esp_err_t verify_image_header(uint32_t src_addr, const esp_image_header_t } err = ESP_ERR_IMAGE_INVALID; } - if (bootloader_common_check_chip_validity(image) != ESP_OK) { + if (bootloader_common_check_chip_validity(image, ESP_IMAGE_APPLICATION) != ESP_OK) { err = ESP_ERR_IMAGE_INVALID; } if (!silent) {