Is your feature request related to a problem? Please describe.
Espressif devices now support different image formats in combination with a secondary bootloader/rom bootloader:
- ESP-IDF format bootable by the esp-idf bootloader,
- MCUBoot format bootable by mcuboot,
- Simpleboot booteable by the rom bootloader,
The first image format is receiving less support and focus is put on the MCUBoot format and the Simpleboot format.
The simpleboot format is closely related to the ESP-IDF format but there are 3 main differences:
- The Simpleboot image fixes it's location to a location known by the rom bootloader,
- The Simpleboot hides the rom segments (placed after the iram/dram segments) for the rom bootloader,
- The Simpleboot manages the mapping of irom/drom image segments at start,
A Simpleboot image can easily be made into an esp-idf bootable image by removing limitations 1 and 2:
introduce a location where the image will be placed and generate the image using esptool.py without the option --ram-only-header.
Describe the solution you'd like
To support the booting of Simpleboot images from a secondary bootloader I propose to introduce a Kconfig bool for SIMPLE_BOOT_SBLI (Simpleboot secondary bootloader image) and a variable SIMPLE_BOOT_SBLI_OFFSET (offset where the image will reside). Based on these two it is straight forward to modify the code and tools used to generate the image.
This change will allow the use of the esp-idf bootloader and other (secure) bootloaders that support the esp-idf bootloader format and allow NuttX to remain focussed on just the simpleboot and mcuboot format.
Describe alternatives you've considered
Leave it as is and be forced to use mcuboot as a secondary bootloader for secure images.
Verification
Is your feature request related to a problem? Please describe.
Espressif devices now support different image formats in combination with a secondary bootloader/rom bootloader:
The first image format is receiving less support and focus is put on the MCUBoot format and the Simpleboot format.
The simpleboot format is closely related to the ESP-IDF format but there are 3 main differences:
A Simpleboot image can easily be made into an esp-idf bootable image by removing limitations 1 and 2:
introduce a location where the image will be placed and generate the image using
esptool.pywithout the option--ram-only-header.Describe the solution you'd like
To support the booting of Simpleboot images from a secondary bootloader I propose to introduce a Kconfig bool for
SIMPLE_BOOT_SBLI(Simpleboot secondary bootloader image) and a variableSIMPLE_BOOT_SBLI_OFFSET(offset where the image will reside). Based on these two it is straight forward to modify the code and tools used to generate the image.This change will allow the use of the esp-idf bootloader and other (secure) bootloaders that support the esp-idf bootloader format and allow NuttX to remain focussed on just the simpleboot and mcuboot format.
Describe alternatives you've considered
Leave it as is and be forced to use mcuboot as a secondary bootloader for secure images.
Verification