From 72e1958953bdc3c4d3549d06435806e88a5acb4e Mon Sep 17 00:00:00 2001 From: Alexandre Abadie Date: Tue, 1 Dec 2020 10:22:26 +0100 Subject: [PATCH] makefiles/tools: add common esptool configuration --- makefiles/tools/esptool.inc.mk | 56 ++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 makefiles/tools/esptool.inc.mk diff --git a/makefiles/tools/esptool.inc.mk b/makefiles/tools/esptool.inc.mk new file mode 100644 index 0000000000..facec3c718 --- /dev/null +++ b/makefiles/tools/esptool.inc.mk @@ -0,0 +1,56 @@ +ifneq (,$(filter esp_log_colored,$(USEMODULE))) + BOOTLOADER_COLOR = _colors +endif +ifneq (,$(filter esp_log_startup,$(USEMODULE))) + BOOTLOADER_INFO = _info +endif + +BOOTLOADER_BIN = bootloader$(BOOTLOADER_COLOR)$(BOOTLOADER_INFO).bin + +ESPTOOL ?= $(RIOTTOOLS)/esptool/esptool.py + +# The ELFFILE is the base one used for flashing +FLASHFILE ?= $(ELFFILE) + +# configure preflasher to convert .elf to .bin before flashing +PREFLASHER = $(ESPTOOL) +PREFFLAGS = --chip $(FLASH_CHIP) elf2image +PREFFLAGS += --flash_mode $(FLASH_MODE) --flash_size $(FLASH_SIZE)MB +PREFFLAGS += --flash_freq $(FLASH_FREQ) $(FLASH_OPTS) +PREFFLAGS += -o $(FLASHFILE).bin $(FLASHFILE); +PREFFLAGS += printf "\n" > $(BINDIR)/partitions.csv; +PREFFLAGS += printf "nvs, data, nvs, 0x9000, 0x6000\n" >> $(BINDIR)/partitions.csv; +PREFFLAGS += printf "phy_init, data, phy, 0xf000, 0x1000\n" >> $(BINDIR)/partitions.csv; +PREFFLAGS += printf "factory, app, factory, 0x10000, " >> $(BINDIR)/partitions.csv; +PREFFLAGS += ls -l $(FLASHFILE).bin | awk '{ print $$5 }' >> $(BINDIR)/partitions.csv; + +PREFFLAGS += python3 $(RIOTTOOLS)/esptool/gen_esp32part.py +PREFFLAGS += --verify $(BINDIR)/partitions.csv $(BINDIR)/partitions.bin +FLASHDEPS += preflash + +# flasher configuration +ifneq (,$(filter esp_qemu,$(USEMODULE))) + FLASHER = dd + FFLAGS += if=/dev/zero bs=1M count=$(FLASH_SIZE) | + FFLAGS += tr "\\000" "\\377" > tmp.bin && cat tmp.bin | + FFLAGS += head -c $$(($(BOOTLOADER_POS))) | + FFLAGS += cat - $(RIOTCPU)/$(CPU)/bin/$(BOOTLOADER_BIN) tmp.bin | + FFLAGS += head -c $$((0x8000)) | + FFLAGS += cat - $(BINDIR)/partitions.bin tmp.bin | + FFLAGS += head -c $$((0x10000)) | + FFLAGS += cat - $(FLASHFILE).bin tmp.bin | + FFLAGS += head -c $(FLASH_SIZE)MB > $(BINDIR)/$(CPU)flash.bin && rm tmp.bin; +else + PROGRAMMER_SPEED ?= 460800 + FLASHER = $(ESPTOOL) + FFLAGS += --chip $(FLASH_CHIP) --port $(PROG_DEV) --baud $(PROGRAMMER_SPEED) + FFLAGS += --before default_reset write_flash -z + FFLAGS += --flash_mode $(FLASH_MODE) --flash_freq $(FLASH_FREQ) + FFLAGS += $(BOOTLOADER_POS) $(RIOTCPU)/$(CPU)/bin/$(BOOTLOADER_BIN) + FFLAGS += 0x8000 $(BINDIR)/partitions.bin + FFLAGS += 0x10000 $(FLASHFILE).bin +endif + +# reset tool configuration +RESET ?= $(RIOTTOOLS)/esptool/espreset.py +RESET_FLAGS ?= --port $(PROG_DEV)