feat(esp_tee): Add support for flash memory isolation and protection (SPI1)
Closes IDF-10481, IDF-10083, and IDF-8915
See merge request espressif/esp-idf!36454
Also:
- Split the secure service table into two parts: one DRAM-resident and the
other DROM-resident. The former holds the services invoked when the cache is
disabled or suspended while the latter holds rest of the services.
Currently, several example dependencies rely on the fact that all
registered components are added to the build, along with components
specified in common requirements. This results in longer build times
because even unused components must be built. Switch all examples to use
idf_minimal_build to compile only the components actually required by
the example.
Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
Currently, several examples do not explicitly state their component
dependencies, relying instead on the default behavior that includes all
registered components and commonly required ones in the build.
Explicitly adding component dependencies can reduce build time when
set(COMPONENTS main) is used.
Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
The Flash encryption example was giving a warning
message related to the mount failure of the fatfs
partition. The change fixes the behaviour to
remove the warning
The issue is `esp_flash_write_encryped` function in ROM on ESP32C3, ESP32S3
calls legacy implementation, which uses old configuration. And this causes
write fails.
The solution in this commit is to compile and link this function(and related)
in IRAM instead of the ROM one.
The IRAM cost increases around 1.2KB after the fix
Addresses a build failure that occurs when flash encryption is enabled with default configurations.
The build failure did not manifest in the CI environment because the configuration
CONFIG_SECURE_FLASH_REQUIRE_ALREADY_ENABLED is set in sdkconfig.ci.
This configuration is responsible for reducing the bootloader size.
Closes https://github.com/espressif/esp-idf/issues/12619
flash_encryption pytest.
Earlier monkeypatching was done to add erase_partition functionality.
The required code has been added upstream in pytest-embedded