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;