diff --git a/tools/esp32/Config.mk b/tools/esp32/Config.mk index 229d18c142..71a033b1ec 100644 --- a/tools/esp32/Config.mk +++ b/tools/esp32/Config.mk @@ -128,10 +128,10 @@ define MERGEBIN endef endif -# POSTBUILD -- Perform post build operations +# SIGNBIN -- Sign the binary image file ifeq ($(CONFIG_ESP32_APP_FORMAT_MCUBOOT),y) -define POSTBUILD +define SIGNBIN $(Q) echo "MKIMAGE: ESP32 binary" $(Q) if ! imgtool version 1>/dev/null 2>&1; then \ echo ""; \ @@ -146,10 +146,13 @@ define POSTBUILD nuttx.bin nuttx.signed.bin $(Q) echo nuttx.signed.bin >> nuttx.manifest $(Q) echo "Generated: nuttx.signed.bin (MCUboot compatible)" - $(call MERGEBIN) endef -else -define POSTBUILD +endif + +# ELF2IMAGE -- Convert an ELF file into a binary file in Espressif application image format + +ifeq ($(CONFIG_ESP32_APP_FORMAT_LEGACY),y) +define ELF2IMAGE $(Q) echo "MKIMAGE: ESP32 binary" $(Q) if ! esptool.py version 1>/dev/null 2>&1; then \ echo ""; \ @@ -165,6 +168,19 @@ define POSTBUILD $(eval ESPTOOL_ELF2IMG_OPTS := -fs $(FLASH_SIZE) -fm $(FLASH_MODE) -ff $(FLASH_FREQ)) esptool.py -c esp32 elf2image $(ESPTOOL_ELF2IMG_OPTS) -o nuttx.bin nuttx $(Q) echo "Generated: nuttx.bin (ESP32 compatible)" +endef +endif + +# POSTBUILD -- Perform post build operations + +ifeq ($(CONFIG_ESP32_APP_FORMAT_MCUBOOT),y) +define POSTBUILD + $(call SIGNBIN) + $(call MERGEBIN) +endef +else ifeq ($(CONFIG_ESP32_APP_FORMAT_LEGACY),y) +define POSTBUILD + $(call ELF2IMAGE) $(call MERGEBIN) $(Q) $(MK_QEMU_IMG) endef diff --git a/tools/esp32c3/Config.mk b/tools/esp32c3/Config.mk index 0659b70dab..8030121ea6 100644 --- a/tools/esp32c3/Config.mk +++ b/tools/esp32c3/Config.mk @@ -52,8 +52,6 @@ else ifeq ($(CONFIG_ESP32C3_FLASH_FREQ_20M),y) FLASH_FREQ := 20m endif -ESPTOOL_ELF2IMG_OPTS := -fs $(FLASH_SIZE) -fm $(FLASH_MODE) -ff $(FLASH_FREQ) - ifeq ($(CONFIG_ESP32C3_FLASH_DETECT),y) ESPTOOL_WRITEFLASH_OPTS := -fs detect -fm dio -ff $(FLASH_FREQ) else @@ -72,6 +70,26 @@ endif ESPTOOL_BINS += 0x10000 nuttx.bin +# ELF2IMAGE -- Convert an ELF file into a binary file in Espressif application image format + +define ELF2IMAGE + $(Q) echo "MKIMAGE: ESP32-C3 binary" + $(Q) if ! esptool.py version 1>/dev/null 2>&1; then \ + echo ""; \ + echo "esptool.py not found. Please run: \"pip install esptool\""; \ + echo ""; \ + echo "Run make again to create the nuttx.bin image."; \ + exit 1; \ + fi + $(Q) if [ -z $(FLASH_SIZE) ]; then \ + echo "Missing Flash memory size configuration for the ESP32-C3 chip."; \ + exit 1; \ + fi + $(eval ESPTOOL_ELF2IMG_OPTS := -fs $(FLASH_SIZE) -fm $(FLASH_MODE) -ff $(FLASH_FREQ)) + esptool.py -c esp32c3 elf2image $(ESPTOOL_ELF2IMG_OPTS) -o nuttx.bin nuttx + $(Q) echo "Generated: nuttx.bin (ESP32-C3 compatible)" +endef + # MERGEBIN -- Merge raw binary files into a single file ifeq ($(CONFIG_ESP32C3_MERGE_BINS),y) @@ -99,20 +117,7 @@ endif # POSTBUILD -- Perform post build operations define POSTBUILD - $(Q) echo "MKIMAGE: ESP32-C3 binary" - $(Q) if ! esptool.py version 1>/dev/null 2>&1; then \ - echo ""; \ - echo "esptool.py not found. Please run: \"pip install esptool\""; \ - echo ""; \ - echo "Run make again to create the nuttx.bin image."; \ - exit 1; \ - fi - $(Q) if [ -z $(FLASH_SIZE) ]; then \ - echo "Missing Flash memory size configuration for the ESP32-C3 chip."; \ - exit 1; \ - fi - esptool.py -c esp32c3 elf2image $(ESPTOOL_ELF2IMG_OPTS) -o nuttx.bin nuttx - $(Q) echo "Generated: nuttx.bin (ESP32-C3 compatible)" + $(call ELF2IMAGE) $(call MERGEBIN) endef diff --git a/tools/esp32s2/Config.mk b/tools/esp32s2/Config.mk index bd61b102c0..f53f19e095 100644 --- a/tools/esp32s2/Config.mk +++ b/tools/esp32s2/Config.mk @@ -52,8 +52,6 @@ else ifeq ($(CONFIG_ESP32S2_FLASH_FREQ_20M),y) FLASH_FREQ := 20m endif -ESPTOOL_ELF2IMG_OPTS := -fs $(FLASH_SIZE) -fm $(FLASH_MODE) -ff $(FLASH_FREQ) - ifeq ($(CONFIG_ESP32S2_FLASH_DETECT),y) ESPTOOL_WRITEFLASH_OPTS := -fs detect -fm dio -ff $(FLASH_FREQ) else @@ -72,6 +70,26 @@ endif ESPTOOL_BINS += 0x10000 nuttx.bin +# ELF2IMAGE -- Convert an ELF file into a binary file in Espressif application image format + +define ELF2IMAGE + $(Q) echo "MKIMAGE: ESP32-S2 binary" + $(Q) if ! esptool.py version 1>/dev/null 2>&1; then \ + echo ""; \ + echo "esptool.py not found. Please run: \"pip install esptool\""; \ + echo ""; \ + echo "Run make again to create the nuttx.bin image."; \ + exit 1; \ + fi + $(Q) if [ -z $(FLASH_SIZE) ]; then \ + echo "Missing Flash memory size configuration for the ESP32-S2 chip."; \ + exit 1; \ + fi + $(eval ESPTOOL_ELF2IMG_OPTS := -fs $(FLASH_SIZE) -fm $(FLASH_MODE) -ff $(FLASH_FREQ)) + esptool.py -c esp32s2 elf2image $(ESPTOOL_ELF2IMG_OPTS) -o nuttx.bin nuttx + $(Q) echo "Generated: nuttx.bin (ESP32-S2 compatible)" +endef + # MERGEBIN -- Merge raw binary files into a single file ifeq ($(CONFIG_ESP32S2_MERGE_BINS),y) @@ -99,20 +117,7 @@ endif # POSTBUILD -- Perform post build operations define POSTBUILD - $(Q) echo "MKIMAGE: ESP32-S2 binary" - $(Q) if ! esptool.py version 1>/dev/null 2>&1; then \ - echo ""; \ - echo "esptool.py not found. Please run: \"pip install esptool\""; \ - echo ""; \ - echo "Run make again to create the nuttx.bin image."; \ - exit 1; \ - fi - $(Q) if [ -z $(FLASH_SIZE) ]; then \ - echo "Missing Flash memory size configuration for the ESP32-S2 chip."; \ - exit 1; \ - fi - esptool.py -c esp32s2 elf2image $(ESPTOOL_ELF2IMG_OPTS) -o nuttx.bin nuttx - $(Q) echo "Generated: nuttx.bin (ESP32-S2 compatible)" + $(call ELF2IMAGE) $(call MERGEBIN) endef