mirror of
https://github.com/espressif/esp-idf.git
synced 2025-08-03 20:54:32 +02:00
bootloader: Do not obfuscate RAM if we are not doing image validation
No need to take this step if we are not doing image validation. The obfuscation only buys us a tiny bit of "security" anyways since the main parts of flash are memory mapped, too. This saves a little bit of wake-up time when waking up from deep sleep when the BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP option is set. Signed-off-by: Tim Nordell <tim.nordell@nimbelink.com>
This commit is contained in:
@@ -225,7 +225,7 @@ static esp_err_t image_load(esp_image_load_mode_t mode, const esp_partition_pos_
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef BOOTLOADER_BUILD
|
#ifdef BOOTLOADER_BUILD
|
||||||
if (do_load) { // Need to deobfuscate RAM
|
if (do_load && ram_obfs_value[0] != 0 && ram_obfs_value[1] != 0) { // Need to deobfuscate RAM
|
||||||
for (int i = 0; i < data->image.segment_count; i++) {
|
for (int i = 0; i < data->image.segment_count; i++) {
|
||||||
uint32_t load_addr = data->segments[i].load_addr;
|
uint32_t load_addr = data->segments[i].load_addr;
|
||||||
if (should_load(load_addr)) {
|
if (should_load(load_addr)) {
|
||||||
@@ -403,6 +403,12 @@ static esp_err_t process_segment_data(intptr_t load_addr, uint32_t data_addr, ui
|
|||||||
return ESP_FAIL;
|
return ESP_FAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (checksum == NULL && sha_handle == NULL) {
|
||||||
|
memcpy((void *)load_addr, data, data_len);
|
||||||
|
bootloader_munmap(data);
|
||||||
|
return ESP_OK;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef BOOTLOADER_BUILD
|
#ifdef BOOTLOADER_BUILD
|
||||||
// Set up the obfuscation value to use for loading
|
// Set up the obfuscation value to use for loading
|
||||||
while (ram_obfs_value[0] == 0 || ram_obfs_value[1] == 0) {
|
while (ram_obfs_value[0] == 0 || ram_obfs_value[1] == 0) {
|
||||||
|
Reference in New Issue
Block a user