| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- #
- # Partition table
- #
- # The partition table is not a real component that gets linked into
- # the project. Instead, it is a standalone project to generate
- # the partition table binary as part of the build process. This
- # binary is then added to the list of files for esptool.py to flash.
- #
- .PHONY: partition_table partition_table-flash partition_table-clean
- # NB: gen_esp32part.py lives in the sdk/bin/ dir not component dir
- GEN_ESP32PART := $(PYTHON) $(COMPONENT_PATH)/gen_esp32part.py -q
- # Has a matching value in bootloader_support esp_flash_partitions.h
- PARTITION_TABLE_OFFSET := 0x8000
- ifndef PARTITION_TABLE_CSV_PATH
- # Path to partition CSV file is relative to project path for custom
- # partition CSV files, but relative to component dir otherwise.$
- PARTITION_TABLE_ROOT := $(call dequote,$(if $(CONFIG_PARTITION_TABLE_CUSTOM),$(PROJECT_PATH),$(COMPONENT_PATH)))
- PARTITION_TABLE_CSV_PATH := $(call dequote,$(abspath $(PARTITION_TABLE_ROOT)/$(subst $(quote),,$(CONFIG_PARTITION_TABLE_FILENAME))))
- endif
- PARTITION_TABLE_BIN := $(BUILD_DIR_BASE)/$(notdir $(PARTITION_TABLE_CSV_PATH:.csv=.bin))
- ifdef CONFIG_SECURE_BOOT_BUILD_SIGNED_BINARIES
- PARTITION_TABLE_BIN_UNSIGNED := $(PARTITION_TABLE_BIN:.bin=-unsigned.bin)
- # add an extra signing step for secure partition table
- $(PARTITION_TABLE_BIN): $(PARTITION_TABLE_BIN_UNSIGNED) $(SDKCONFIG_MAKEFILE) $(SECURE_BOOT_SIGNING_KEY)
- $(ESPSECUREPY) sign_data --keyfile $(SECURE_BOOT_SIGNING_KEY) -o $@ $<
- else
- # secure bootloader disabled, both files are the same
- PARTITION_TABLE_BIN_UNSIGNED := $(PARTITION_TABLE_BIN)
- endif
- $(PARTITION_TABLE_BIN_UNSIGNED): $(PARTITION_TABLE_CSV_PATH) $(SDKCONFIG_MAKEFILE)
- @echo "Building partitions from $(PARTITION_TABLE_CSV_PATH)..."
- $(GEN_ESP32PART) $< $@
- all_binaries: $(PARTITION_TABLE_BIN)
- PARTITION_TABLE_FLASH_CMD = $(ESPTOOLPY_SERIAL) write_flash $(PARTITION_TABLE_OFFSET) $(PARTITION_TABLE_BIN)
- ESPTOOL_ALL_FLASH_ARGS += $(PARTITION_TABLE_OFFSET) $(PARTITION_TABLE_BIN)
- partition_table: $(PARTITION_TABLE_BIN)
- @echo "Partition table binary generated. Contents:"
- @echo $(SEPARATOR)
- $(GEN_ESP32PART) $<
- @echo $(SEPARATOR)
- @echo "Partition flashing command:"
- @echo "$(PARTITION_TABLE_FLASH_CMD)"
- partition_table-flash: $(PARTITION_TABLE_BIN)
- @echo "Flashing partition table..."
- $(PARTITION_TABLE_FLASH_CMD)
- partition_table-clean:
- rm -f $(PARTITION_TABLE_BIN)
- clean: partition_table-clean
|