mirror of
https://github.com/espressif/esp-idf.git
synced 2025-07-30 10:47:19 +02:00
esp32: cpu_start: read binary image header via cache
When flash encryption is enabled, reading via cache also decrypts the data, whereas spi_flash_read does not.
This commit is contained in:
@ -398,10 +398,13 @@ void start_cpu0_default(void)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
bootloader_flash_update_id();
|
bootloader_flash_update_id();
|
||||||
#if !CONFIG_SPIRAM_BOOT_INIT // If psram is uninitialized, we need to improve some flash configuration.
|
#if !CONFIG_SPIRAM_BOOT_INIT
|
||||||
esp_image_header_t fhdr;
|
// Read the application binary image header. This will also decrypt the header if the image is encrypted.
|
||||||
const esp_partition_t *partition = esp_ota_get_running_partition();
|
esp_image_header_t fhdr = {0};
|
||||||
spi_flash_read(partition->address, &fhdr, sizeof(esp_image_header_t));
|
// This assumes that DROM is the first segment in the application binary, i.e. that we can read
|
||||||
|
// the binary header through cache by accessing SOC_DROM_LOW address.
|
||||||
|
memcpy(&fhdr, (void*) SOC_DROM_LOW, sizeof(fhdr));
|
||||||
|
// If psram is uninitialized, we need to improve some flash configuration.
|
||||||
bootloader_flash_clock_config(&fhdr);
|
bootloader_flash_clock_config(&fhdr);
|
||||||
bootloader_flash_gpio_config(&fhdr);
|
bootloader_flash_gpio_config(&fhdr);
|
||||||
bootloader_flash_dummy_config(&fhdr);
|
bootloader_flash_dummy_config(&fhdr);
|
||||||
|
Reference in New Issue
Block a user