#endif
bootloader_flash_update_id();
-#if !CONFIG_SPIRAM_BOOT_INIT // If psram is uninitialized, we need to improve some flash configuration.
- esp_image_header_t fhdr;
- const esp_partition_t *partition = esp_ota_get_running_partition();
- spi_flash_read(partition->address, &fhdr, sizeof(esp_image_header_t));
+#if !CONFIG_SPIRAM_BOOT_INIT
+ // Read the application binary image header. This will also decrypt the header if the image is encrypted.
+ esp_image_header_t fhdr = {0};
+ // 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_gpio_config(&fhdr);
bootloader_flash_dummy_config(&fhdr);