2016-08-17 11:08:22 -04:00
|
|
|
# Component support for esptool.py. Doesn't do much by itself,
|
|
|
|
# components have their own flash targets that can use these variables.
|
|
|
|
ESPPORT ?= $(CONFIG_ESPTOOLPY_PORT)
|
|
|
|
ESPBAUD ?= $(CONFIG_ESPTOOLPY_BAUD)
|
2016-09-01 03:47:09 -04:00
|
|
|
ESPFLASHMODE ?= $(CONFIG_ESPTOOLPY_FLASHMODE)
|
2016-09-02 00:29:01 -04:00
|
|
|
ESPFLASHFREQ ?= $(CONFIG_ESPTOOLPY_FLASHFREQ)
|
2016-10-18 07:03:59 -04:00
|
|
|
ESPFLASHSIZE ?= $(CONFIG_ESPTOOLPY_FLASHSIZE)
|
2016-08-17 11:08:22 -04:00
|
|
|
|
|
|
|
PYTHON ?= $(call dequote,$(CONFIG_PYTHON))
|
|
|
|
|
|
|
|
# two commands that can be used from other components
|
|
|
|
# to invoke esptool.py (with or without serial port args)
|
|
|
|
#
|
2016-09-12 03:48:40 -04:00
|
|
|
ESPTOOLPY_SRC := $(COMPONENT_PATH)/esptool/esptool.py
|
|
|
|
ESPTOOLPY := $(PYTHON) $(ESPTOOLPY_SRC) --chip esp32
|
2016-08-17 11:08:22 -04:00
|
|
|
ESPTOOLPY_SERIAL := $(ESPTOOLPY) --port $(ESPPORT) --baud $(ESPBAUD)
|
|
|
|
|
2016-10-31 19:50:16 -04:00
|
|
|
# Supporting esptool command line tools
|
|
|
|
ESPEFUSEPY := $(PYTHON) $(COMPONENT_PATH)/esptool/espefuse.py
|
|
|
|
ESPSECUREPY := $(PYTHON) $(COMPONENT_PATH)/esptool/espsecure.py
|
2016-11-03 02:33:30 -04:00
|
|
|
export ESPSECUREPY # is used in bootloader_support component
|
2016-10-31 19:50:16 -04:00
|
|
|
|
2016-10-18 07:03:59 -04:00
|
|
|
ESPTOOL_FLASH_OPTIONS := --flash_mode $(ESPFLASHMODE) --flash_freq $(ESPFLASHFREQ) --flash_size $(ESPFLASHSIZE)
|
|
|
|
|
2016-10-31 19:50:16 -04:00
|
|
|
ESPTOOL_ELF2IMAGE_OPTIONS :=
|
|
|
|
|
2016-10-18 07:03:59 -04:00
|
|
|
ESPTOOLPY_WRITE_FLASH=$(ESPTOOLPY_SERIAL) write_flash $(if $(CONFIG_ESPTOOLPY_COMPRESSED),-z) $(ESPTOOL_FLASH_OPTIONS)
|
2016-08-22 06:43:47 -04:00
|
|
|
|
2016-08-18 05:11:27 -04:00
|
|
|
ESPTOOL_ALL_FLASH_ARGS += $(CONFIG_APP_OFFSET) $(APP_BIN)
|
2016-08-17 11:08:22 -04:00
|
|
|
|
2016-11-24 22:09:26 -05:00
|
|
|
ifdef CONFIG_SECURE_BOOT_ENABLED
|
2016-11-03 02:33:30 -04:00
|
|
|
ifndef IS_BOOTLOADER_BUILD
|
2016-11-06 23:45:57 -05:00
|
|
|
# for secure boot, add a signing step to get from unsiged app to signed app
|
|
|
|
APP_BIN_UNSIGNED := $(APP_BIN:.bin=-unsigned.bin)
|
|
|
|
|
|
|
|
$(APP_BIN): $(APP_BIN_UNSIGNED)
|
2016-11-13 22:48:10 -05:00
|
|
|
$(ESPSECUREPY) sign_data --keyfile $(SECURE_BOOT_SIGNING_KEY) -o $@ $^ # signed in-place
|
2016-11-03 02:33:30 -04:00
|
|
|
endif
|
|
|
|
endif
|
2016-11-06 23:45:57 -05:00
|
|
|
# non-secure boot (or bootloader), both these files are the same
|
|
|
|
APP_BIN_UNSIGNED ?= $(APP_BIN)
|
|
|
|
|
|
|
|
$(APP_BIN_UNSIGNED): $(APP_ELF) $(ESPTOOLPY_SRC)
|
2016-11-13 22:48:10 -05:00
|
|
|
$(ESPTOOLPY) elf2image $(ESPTOOL_FLASH_OPTIONS) $(ESPTOOL_ELF2IMAGE_OPTIONS) -o $@ $<
|
2016-08-17 11:08:22 -04:00
|
|
|
|
2016-09-12 03:48:40 -04:00
|
|
|
flash: all_binaries $(ESPTOOLPY_SRC)
|
2016-10-03 19:12:17 -04:00
|
|
|
@echo "Flashing binaries to serial port $(ESPPORT) (app at offset $(CONFIG_APP_OFFSET))..."
|
2016-11-24 22:09:26 -05:00
|
|
|
ifdef CONFIG_SECURE_BOOT_ENABLED
|
2016-10-31 19:50:16 -04:00
|
|
|
@echo "(Secure boot enabled, so bootloader not flashed automatically. See 'make bootloader' output)"
|
|
|
|
endif
|
2016-11-10 20:29:38 -05:00
|
|
|
$(ESPTOOLPY_WRITE_FLASH) $(ESPTOOL_ALL_FLASH_ARGS)
|
2016-08-17 11:08:22 -04:00
|
|
|
|
2016-09-12 03:48:40 -04:00
|
|
|
app-flash: $(APP_BIN) $(ESPTOOLPY_SRC)
|
2016-10-03 19:12:17 -04:00
|
|
|
@echo "Flashing app to serial port $(ESPPORT), offset $(CONFIG_APP_OFFSET)..."
|
2016-11-10 20:29:38 -05:00
|
|
|
$(ESPTOOLPY_WRITE_FLASH) $(CONFIG_APP_OFFSET) $(APP_BIN)
|
2016-09-12 03:48:40 -04:00
|
|
|
|
2016-11-15 19:12:48 -05:00
|
|
|
# Submodules normally added in component.mk, but can be added
|
|
|
|
# at the project level as long as qualified path
|
|
|
|
COMPONENT_SUBMODULES += $(COMPONENT_PATH)/esptool
|