71 lines
2.2 KiB
Makefile
71 lines
2.2 KiB
Makefile
ifdef WOLFBOOT_OFFSET
|
|
|
|
WOLFBOOT:=$(abspath $(RIOTBASE)/../../wolfBoot/)
|
|
CFLAGS += -I$(WOLFBOOT)/include
|
|
|
|
SIGNTOOL ?= python3 $(WOLFBOOT)/tools/keytools/sign.py
|
|
KEYGENTOOL ?= python3 $(WOLFBOOT)/tools/keytools/keygen.py
|
|
|
|
BINFILE ?= $(BINDIR)/$(APPLICATION).bin
|
|
SIGN_BINFILE = $(BINDIR)/$(APPLICATION)_v5_signed.bin
|
|
WOLFBOOT_KEYFILE ?= $(WOLFBOOT)/ed25519.der
|
|
WOLFBOOT_BIN ?= $(WOLFBOOT)/wolfboot.bin
|
|
|
|
|
|
|
|
export IMAGE_HDR_SIZE ?= 256
|
|
|
|
wolfboot-create-key: $(WOLFBOOT_KEYFILE)
|
|
|
|
$(WOLFBOOT_KEYFILE):
|
|
make -C $(WOLFBOOT) clean
|
|
make -C $(WOLFBOOT) distclean
|
|
make -C $(WOLFBOOT) TARGET=samr21 DEBUG=0 ed25519.der \
|
|
|
|
wolfboot: wolfboot-create-key link
|
|
@$(COLOR_ECHO)
|
|
@$(COLOR_ECHO) '$(COLOR_PURPLE)Re-linking for wolfBoot at $(WOLFBOOT_OFFSET)...$(COLOR_RESET)'
|
|
@$(COLOR_ECHO)
|
|
@$(COLOR_ECHO) 'sources:'
|
|
@$(COLOR_ECHO) $(SRC)
|
|
@$(COLOR_ECHO)
|
|
$(_LINK) $(LINKFLAGPREFIX)--defsym=_rom_start_addr="$$(($(WOLFBOOT_OFFSET) + $(IMAGE_HDR_SIZE)))" \
|
|
$(LINKFLAGPREFIX)--defsym=length="$$(($(WOLFBOOT_PARTITION_SIZE) - $(IMAGE_HDR_SIZE)))" \
|
|
$(LINKFLAGPREFIX)--defsym=image_header="$(IMAGE_HDR_SIZE)" -o $(ELFFILE) && \
|
|
$(OBJCOPY) $(OFLAGS) -Obinary $(ELFFILE) $(BINFILE) && \
|
|
$(SIGNTOOL) $(BINFILE) $(WOLFBOOT_KEYFILE) $(IMAGE_VERSION) $(WOLFBOOT_OFFSET)
|
|
@$(COLOR_ECHO)
|
|
@$(COLOR_ECHO) '$(COLOR_PURPLE)Signed with $(WOLFBOOT_KEYFILE) for version $(IMAGE_VERSION) \
|
|
$(COLOR_RESET)'
|
|
@$(COLOR_ECHO)
|
|
|
|
|
|
$(WOLFBOOT_BIN):
|
|
@$(COLOR_ECHO) 'sources:'
|
|
@$(COLOR_ECHO) $(SRC)
|
|
@$(COLOR_ECHO)
|
|
make -C $(WOLFBOOT) clean
|
|
make -C $(WOLFBOOT) TARGET=samr21 TARGET_ARCH= DEBUG=0 BOOT0_OFFSET=$(WOLFBOOT_OFFSET) \
|
|
WOLFBOOT_SECTOR_SIZE=0x100 \
|
|
WOLFBOOT_PARTITION_SIZE=0x1B000 \
|
|
WOLFBOOT_PARTITION_BOOT_ADDRESS=0x08000 \
|
|
WOLFBOOT_PARTITION_UPDATE_ADDRESS=0x23000 \
|
|
WOLFBOOT_PARTITION_SWAP_ADDRESS=0x3E000 \
|
|
wolfboot.bin
|
|
|
|
.PHONY: wolfboot-flash-bootloader wolfboot-flash
|
|
|
|
wolfboot-flash-bootloader: HEXFILE = $(WOLFBOOT_BIN)
|
|
wolfboot-flash-bootloader: $(WOLFBOOT_BIN) $(FLASHDEPS)
|
|
sudo $(FLASHER) $(FFLAGS) -o 0x0
|
|
|
|
wolfboot-flash: HEXFILE = $(SIGN_BINFILE)
|
|
wolfboot-flash: wolfboot $(FLASHDEPS) wolfboot-flash-bootloader
|
|
sudo $(FLASHER) $(FFLAGS) -o $(WOLFBOOT_OFFSET)
|
|
|
|
else
|
|
wolfboot:
|
|
$(Q)echo "error: wolfboot not supported on board $(BOARD)!"
|
|
$(Q)false
|
|
endif # WOLFBOOT_OFFSET
|