espressif: remove IDF git submodule and add its reference by param
Remove the ESP-IDF from git submodules to avoid potential
duplicated repo clones on the user system. IDF HAL code is still
a dependency for Espressif port, therefore now the HAL code
reference needs to be passed by parameter when building.
The Espressif port was also updated to work with last v5.1 IDF
code.
Signed-off-by: Almir Okato <almir.okato@espressif.com>
diff --git a/boot/espressif/port/esp32/ld/bootloader.ld b/boot/espressif/port/esp32/ld/bootloader.ld
index 4e3ad89..48b6ff5 100644
--- a/boot/espressif/port/esp32/ld/bootloader.ld
+++ b/boot/espressif/port/esp32/ld/bootloader.ld
@@ -12,9 +12,9 @@
MEMORY
{
- iram_seg (RWX) : org = 0x40093000, len = 0x8800
- iram_loader_seg (RWX) : org = 0x4009B800, len = 0x4800
- dram_seg (RW) : org = 0x3FFF5000, len = 0x8900
+ iram_seg (RWX) : org = 0x40093000, len = 0x7A00
+ iram_loader_seg (RWX) : org = 0x4009AA00, len = 0x5600
+ dram_seg (RW) : org = 0x3FFF5000, len = 0x9900
}
/* Default entry point: */
@@ -31,13 +31,13 @@
*libhal.a:bootloader_flash.*(.literal .text .literal.* .text.*)
*libhal.a:bootloader_flash_config_esp32.*(.literal .text .literal.* .text.*)
*libhal.a:bootloader_clock_loader.*(.literal .text .literal.* .text.*)
+ *libhal.a:bootloader_init.*(.literal .text .literal.* .text.*)
+ *libhal.a:bootloader_common.*(.literal .text .literal.* .text.*)
*libhal.a:bootloader_common_loader.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_init_common.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_flash.*(.literal .text .literal.* .text.*)
*libhal.a:bootloader_random.*(.literal .text .literal.* .text.*)
*libhal.a:bootloader_random*.*(.literal.bootloader_random_disable .text.bootloader_random_disable)
*libhal.a:bootloader_random*.*(.literal.bootloader_random_enable .text.bootloader_random_enable)
- *libhal.a:bootloader_efuse_esp32.*(.literal .text .literal.* .text.*)
+ *libhal.a:bootloader_efuse.*(.literal .text .literal.* .text.*)
*libhal.a:bootloader_utility.*(.literal .text .literal.* .text.*)
*libhal.a:bootloader_sha.*(.literal .text .literal.* .text.*)
*libhal.a:bootloader_console.*(.literal .text .literal.* .text.*)
@@ -51,12 +51,16 @@
*libhal.a:secure_boot.*(.literal .text .literal.* .text.*)
*libhal.a:secure_boot_secure_features.*(.literal .text .literal.* .text.*)
*libhal.a:secure_boot_signatures_bootloader.*(.literal .text .literal.* .text.*)
+ *libhal.a:mmu_hal.*(.literal .text .literal.* .text.*)
*libhal.a:wdt_hal_iram.*(.literal .text .literal.* .text.*)
+ *libhal.a:efuse_hal.*(.literal .text .literal.* .text.*)
*libhal.a:esp_efuse_table.*(.literal .text .literal.* .text.*)
*libhal.a:esp_efuse_fields.*(.literal .text .literal.* .text.*)
*libhal.a:esp_efuse_api.*(.literal .text .literal.* .text.*)
*libhal.a:esp_efuse_utility.*(.literal .text .literal.* .text.*)
- *libhal.a:esp_efuse_api_key_esp32.*(.literal .text .literal.* .text.*)
+ *libhal.a:esp_efuse_api_key.*(.literal .text .literal.* .text.*)
+ *libhal.a:rtc_clk.*(.literal .text .literal.* .text.*)
+ *libhal.a:rtc_time.*(.literal .text .literal.* .text.*)
*libhal.a:app_cpu_start.*(.literal .text .literal.* .text.*)
*esp_mcuboot.*(.literal .text .literal.* .text.*)
*esp_loader.*(.literal .text .literal.* .text.*)
diff --git a/boot/espressif/port/esp32/serial_adapter.c b/boot/espressif/port/esp32/serial_adapter.c
index 348ee9a..af32723 100644
--- a/boot/espressif/port/esp32/serial_adapter.c
+++ b/boot/espressif/port/esp32/serial_adapter.c
@@ -121,8 +121,9 @@
0, 0);
gpio_ll_output_enable(&GPIO, SERIAL_BOOT_GPIO_TX);
+ uart_ll_set_sclk(serial_boot_uart_dev, UART_SCLK_APB);
uart_ll_set_mode_normal(serial_boot_uart_dev);
- uart_ll_set_baudrate(serial_boot_uart_dev, 115200);
+ uart_ll_set_baudrate(serial_boot_uart_dev, 115200, UART_SCLK_APB);
uart_ll_set_stop_bits(serial_boot_uart_dev, 1u);
uart_ll_set_parity(serial_boot_uart_dev, UART_PARITY_DISABLE);
uart_ll_set_rx_tout(serial_boot_uart_dev, 16);
diff --git a/boot/espressif/port/esp32c3/ld/bootloader.ld b/boot/espressif/port/esp32c3/ld/bootloader.ld
index f200f5d..304e79f 100644
--- a/boot/espressif/port/esp32c3/ld/bootloader.ld
+++ b/boot/espressif/port/esp32c3/ld/bootloader.ld
@@ -13,8 +13,8 @@
MEMORY
{
iram_seg (RWX) : org = 0x403C8000, len = 0x8000
- iram_loader_seg (RWX) : org = 0x403D0000, len = 0x4800
- dram_seg (RW) : org = 0x3FCD5000, len = 0x8C00
+ iram_loader_seg (RWX) : org = 0x403D0000, len = 0x5000
+ dram_seg (RW) : org = 0x3FCD5000, len = 0x9000
}
/* Default entry point: */
@@ -31,12 +31,13 @@
*libhal.a:bootloader_flash.*(.literal .text .literal.* .text.*)
*libhal.a:bootloader_flash_config_esp32c3.*(.literal .text .literal.* .text.*)
*libhal.a:bootloader_clock_loader.*(.literal .text .literal.* .text.*)
+ *libhal.a:bootloader_init.*(.literal .text .literal.* .text.*)
+ *libhal.a:bootloader_common.*(.literal .text .literal.* .text.*)
*libhal.a:bootloader_common_loader.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_init_common.*(.literal .text .literal.* .text.*)
*libhal.a:bootloader_random.*(.literal .text .literal.* .text.*)
*libhal.a:bootloader_random*.*(.literal.bootloader_random_disable .text.bootloader_random_disable)
*libhal.a:bootloader_random*.*(.literal.bootloader_random_enable .text.bootloader_random_enable)
- *libhal.a:bootloader_efuse_esp32c3.*(.literal .text .literal.* .text.*)
+ *libhal.a:bootloader_efuse.*(.literal .text .literal.* .text.*)
*libhal.a:bootloader_utility.*(.literal .text .literal.* .text.*)
*libhal.a:bootloader_sha.*(.literal .text .literal.* .text.*)
*libhal.a:bootloader_console.*(.literal .text .literal.* .text.*)
@@ -51,11 +52,17 @@
*libhal.a:secure_boot_secure_features.*(.literal .text .literal.* .text.*)
*libhal.a:secure_boot_signatures_bootloader.*(.literal .text .literal.* .text.*)
*libhal.a:wdt_hal_iram.*(.literal .text .literal.* .text.*)
+ *libhal.a:mmu_hal.*(.literal .text .literal.* .text.*)
+ *libhal.a:cache_hal.*(.literal .text .literal.* .text.*)
+ *libhal.a:efuse_hal.*(.literal .text .literal.* .text.*)
*libhal.a:esp_efuse_table.*(.literal .text .literal.* .text.*)
*libhal.a:esp_efuse_fields.*(.literal .text .literal.* .text.*)
*libhal.a:esp_efuse_api.*(.literal .text .literal.* .text.*)
*libhal.a:esp_efuse_utility.*(.literal .text .literal.* .text.*)
- *libhal.a:esp_efuse_api_key_esp32xx.*(.literal .text .literal.* .text.*)
+ *libhal.a:esp_efuse_api_key.*(.literal .text .literal.* .text.*)
+ *libhal.a:rtc_clk.*(.literal .text .literal.* .text.*)
+ *libhal.a:rtc_time.*(.literal .text .literal.* .text.*)
+ *libhal.a:regi2c_ctrl.*(.literal .text .literal.* .text.*)
*esp_mcuboot.*(.literal .text .literal.* .text.*)
*esp_loader.*(.literal .text .literal.* .text.*)
*(.fini.literal)
diff --git a/boot/espressif/port/esp32c3/serial_adapter.c b/boot/espressif/port/esp32c3/serial_adapter.c
index c6265d4..09643a1 100644
--- a/boot/espressif/port/esp32c3/serial_adapter.c
+++ b/boot/espressif/port/esp32c3/serial_adapter.c
@@ -169,7 +169,7 @@
uart_ll_set_sclk(serial_boot_uart_dev, UART_SCLK_APB);
uart_ll_set_mode_normal(serial_boot_uart_dev);
- uart_ll_set_baudrate(serial_boot_uart_dev, 115200);
+ uart_ll_set_baudrate(serial_boot_uart_dev, 115200, UART_SCLK_APB);
uart_ll_set_stop_bits(serial_boot_uart_dev, 1u);
uart_ll_set_parity(serial_boot_uart_dev, UART_PARITY_DISABLE);
uart_ll_set_rx_tout(serial_boot_uart_dev, 16);
diff --git a/boot/espressif/port/esp32s2/ld/bootloader.ld b/boot/espressif/port/esp32s2/ld/bootloader.ld
index 75315e1..005c046 100644
--- a/boot/espressif/port/esp32s2/ld/bootloader.ld
+++ b/boot/espressif/port/esp32s2/ld/bootloader.ld
@@ -31,13 +31,14 @@
*libhal.a:bootloader_flash.*(.literal .text .literal.* .text.*)
*libhal.a:bootloader_flash_config_esp32s2.*(.literal .text .literal.* .text.*)
*libhal.a:bootloader_clock_loader.*(.literal .text .literal.* .text.*)
+ *libhal.a:bootloader_init.*(.literal .text .literal.* .text.*)
+ *libhal.a:bootloader_common.*(.literal .text .literal.* .text.*)
*libhal.a:bootloader_common_loader.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_init_common.*(.literal .text .literal.* .text.*)
*libhal.a:bootloader_flash.*(.literal .text .literal.* .text.*)
*libhal.a:bootloader_random.*(.literal .text .literal.* .text.*)
*libhal.a:bootloader_random*.*(.literal.bootloader_random_disable .text.bootloader_random_disable)
*libhal.a:bootloader_random*.*(.literal.bootloader_random_enable .text.bootloader_random_enable)
- *libhal.a:bootloader_efuse_esp32s2.*(.literal .text .literal.* .text.*)
+ *libhal.a:bootloader_efuse.*(.literal .text .literal.* .text.*)
*libhal.a:bootloader_utility.*(.literal .text .literal.* .text.*)
*libhal.a:bootloader_sha.*(.literal .text .literal.* .text.*)
*libhal.a:bootloader_console.*(.literal .text .literal.* .text.*)
@@ -52,11 +53,18 @@
*libhal.a:secure_boot_secure_features.*(.literal .text .literal.* .text.*)
*libhal.a:secure_boot_signatures_bootloader.*(.literal .text .literal.* .text.*)
*libhal.a:wdt_hal_iram.*(.literal .text .literal.* .text.*)
+ *libhal.a:mmu_hal.*(.literal .text .literal.* .text.*)
+ *libhal.a:cache_hal.*(.literal .text .literal.* .text.*)
+ *libhal.a:efuse_hal.*(.literal .text .literal.* .text.*)
*libhal.a:esp_efuse_table.*(.literal .text .literal.* .text.*)
*libhal.a:esp_efuse_fields.*(.literal .text .literal.* .text.*)
*libhal.a:esp_efuse_api.*(.literal .text .literal.* .text.*)
*libhal.a:esp_efuse_utility.*(.literal .text .literal.* .text.*)
- *libhal.a:esp_efuse_api_key_esp32xx.*(.literal .text .literal.* .text.*)
+ *libhal.a:esp_efuse_api_key.*(.literal .text .literal.* .text.*)
+ *libhal.a:rtc_clk.*(.literal .text .literal.* .text.*)
+ *libhal.a:rtc_time.*(.literal .text .literal.* .text.*)
+ *libhal.a:regi2c_ctrl.*(.literal .text .literal.* .text.*)
+ *libhal.a:esp_rom_regi2c_esp32s2.*(.literal .text .literal.* .text.*)
*esp_mcuboot.*(.literal .text .literal.* .text.*)
*esp_loader.*(.literal .text .literal.* .text.*)
*(.fini.literal)
diff --git a/boot/espressif/port/esp32s2/serial_adapter.c b/boot/espressif/port/esp32s2/serial_adapter.c
index 0706a0d..e22a6ba 100644
--- a/boot/espressif/port/esp32s2/serial_adapter.c
+++ b/boot/espressif/port/esp32s2/serial_adapter.c
@@ -135,7 +135,7 @@
uart_ll_set_sclk(serial_boot_uart_dev, UART_SCLK_APB);
uart_ll_set_mode_normal(serial_boot_uart_dev);
- uart_ll_set_baudrate(serial_boot_uart_dev, 115200);
+ uart_ll_set_baudrate(serial_boot_uart_dev, 115200, UART_SCLK_APB);
uart_ll_set_stop_bits(serial_boot_uart_dev, 1u);
uart_ll_set_parity(serial_boot_uart_dev, UART_PARITY_DISABLE);
uart_ll_set_rx_tout(serial_boot_uart_dev, 16);
diff --git a/boot/espressif/port/esp32s3/ld/bootloader.ld b/boot/espressif/port/esp32s3/ld/bootloader.ld
index 9217642..4fe9cd6 100644
--- a/boot/espressif/port/esp32s3/ld/bootloader.ld
+++ b/boot/espressif/port/esp32s3/ld/bootloader.ld
@@ -12,7 +12,7 @@
MEMORY
{
- iram_seg (RWX) : org = 0x403B2500, len = 0x7B00
+ iram_seg (RWX) : org = 0x403B2000, len = 0x8000
iram_loader_seg (RWX) : org = 0x403BA000, len = 0x6000
dram_seg (RW) : org = 0x3FCD8000, len = 0x9A00
}
@@ -31,13 +31,14 @@
*libhal.a:bootloader_flash.*(.literal .text .literal.* .text.*)
*libhal.a:bootloader_flash_config_esp32s3.*(.literal .text .literal.* .text.*)
*libhal.a:bootloader_clock_loader.*(.literal .text .literal.* .text.*)
+ *libhal.a:bootloader_init.*(.literal .text .literal.* .text.*)
+ *libhal.a:bootloader_common.*(.literal .text .literal.* .text.*)
*libhal.a:bootloader_common_loader.*(.literal .text .literal.* .text.*)
- *libhal.a:bootloader_init_common.*(.literal .text .literal.* .text.*)
*libhal.a:bootloader_flash.*(.literal .text .literal.* .text.*)
*libhal.a:bootloader_random.*(.literal .text .literal.* .text.*)
*libhal.a:bootloader_random*.*(.literal.bootloader_random_disable .text.bootloader_random_disable)
*libhal.a:bootloader_random*.*(.literal.bootloader_random_enable .text.bootloader_random_enable)
- *libhal.a:bootloader_efuse_esp32s3.*(.literal .text .literal.* .text.*)
+ *libhal.a:bootloader_efuse.*(.literal .text .literal.* .text.*)
*libhal.a:bootloader_utility.*(.literal .text .literal.* .text.*)
*libhal.a:bootloader_sha.*(.literal .text .literal.* .text.*)
*libhal.a:bootloader_console.*(.literal .text .literal.* .text.*)
@@ -52,11 +53,17 @@
*libhal.a:secure_boot_secure_features.*(.literal .text .literal.* .text.*)
*libhal.a:secure_boot_signatures_bootloader.*(.literal .text .literal.* .text.*)
*libhal.a:wdt_hal_iram.*(.literal .text .literal.* .text.*)
+ *libhal.a:mmu_hal.*(.literal .text .literal.* .text.*)
+ *libhal.a:cache_hal.*(.literal .text .literal.* .text.*)
+ *libhal.a:efuse_hal.*(.literal .text .literal.* .text.*)
*libhal.a:esp_efuse_table.*(.literal .text .literal.* .text.*)
*libhal.a:esp_efuse_fields.*(.literal .text .literal.* .text.*)
*libhal.a:esp_efuse_api.*(.literal .text .literal.* .text.*)
*libhal.a:esp_efuse_utility.*(.literal .text .literal.* .text.*)
- *libhal.a:esp_efuse_api_key_esp32xx.*(.literal .text .literal.* .text.*)
+ *libhal.a:esp_efuse_api_key.*(.literal .text .literal.* .text.*)
+ *libhal.a:rtc_clk.*(.literal .text .literal.* .text.*)
+ *libhal.a:rtc_time.*(.literal .text .literal.* .text.*)
+ *libhal.a:regi2c_ctrl.*(.literal .text .literal.* .text.*)
*libhal.a:app_cpu_start.*(.literal .text .literal.* .text.*)
*esp_mcuboot.*(.literal .text .literal.* .text.*)
*esp_loader.*(.literal .text .literal.* .text.*)
diff --git a/boot/espressif/port/esp32s3/serial_adapter.c b/boot/espressif/port/esp32s3/serial_adapter.c
index 4976bdc..7b244a6 100644
--- a/boot/espressif/port/esp32s3/serial_adapter.c
+++ b/boot/espressif/port/esp32s3/serial_adapter.c
@@ -172,7 +172,7 @@
uart_ll_set_sclk(serial_boot_uart_dev, UART_SCLK_APB);
uart_ll_set_mode_normal(serial_boot_uart_dev);
- uart_ll_set_baudrate(serial_boot_uart_dev, 115200);
+ uart_ll_set_baudrate(serial_boot_uart_dev, 115200, UART_SCLK_APB);
uart_ll_set_stop_bits(serial_boot_uart_dev, 1u);
uart_ll_set_parity(serial_boot_uart_dev, UART_PARITY_DISABLE);
uart_ll_set_rx_tout(serial_boot_uart_dev, 16);
diff --git a/boot/espressif/port/esp_loader.c b/boot/espressif/port/esp_loader.c
index abb9fdc..04d92c6 100644
--- a/boot/espressif/port/esp_loader.c
+++ b/boot/espressif/port/esp_loader.c
@@ -9,19 +9,11 @@
#include <bootutil/bootutil_log.h>
#include <bootutil/fault_injection_hardening.h>
+#include "bootloader_memory_utils.h"
#include "bootloader_flash_priv.h"
#include "esp_flash_encrypt.h"
-#include "soc/soc_memory_layout.h"
-#if CONFIG_IDF_TARGET_ESP32
-#include "esp32/rom/uart.h"
-#elif CONFIG_IDF_TARGET_ESP32S2
-#include "esp32s2/rom/uart.h"
-#elif CONFIG_IDF_TARGET_ESP32S3
-#include "esp32s3/rom/uart.h"
-#elif CONFIG_IDF_TARGET_ESP32C3
-#include "esp32c3/rom/uart.h"
-#endif
+#include "rom/uart.h"
#include "esp_mcuboot_image.h"
#include "esp_loader.h"
diff --git a/boot/espressif/port/esp_mcuboot.c b/boot/espressif/port/esp_mcuboot.c
index ea0661f..0ee9e38 100644
--- a/boot/espressif/port/esp_mcuboot.c
+++ b/boot/espressif/port/esp_mcuboot.c
@@ -212,7 +212,11 @@
static bool aligned_flash_write(size_t dest_addr, const void *src, size_t size)
{
- bool flash_encryption_enabled = esp_flash_encryption_enabled();
+#ifdef CONFIG_SECURE_FLASH_ENC_ENABLED
+ bool flash_encryption_enabled = esp_flash_encryption_enabled();
+#else
+ bool flash_encryption_enabled = false;
+#endif
if (IS_ALIGNED(dest_addr, 4) && IS_ALIGNED((uintptr_t)src, 4) && IS_ALIGNED(size, 4)) {
/* A single write operation is enough when all parameters are aligned */
@@ -327,7 +331,11 @@
static size_t align = 0;
if (align == 0) {
+#ifdef CONFIG_SECURE_FLASH_ENC_ENABLED
bool flash_encryption_enabled = esp_flash_encryption_enabled();
+#else
+ bool flash_encryption_enabled = false;
+#endif
if (flash_encryption_enabled) {
align = 32;