wolfBoot-examples/riotOS-nrf52840dk-ble/wolfboot.mk

66 lines
2.0 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)/ecc256.der
WOLFBOOT_BIN ?= $(WOLFBOOT)/wolfboot.bin
export IMAGE_HDR_SIZE = 256
wolfboot-create-key: $(WOLFBOOT_KEYFILE)
$(WOLFBOOT_KEYFILE):
make -C $(WOLFBOOT) clean
rm -f $(WOLFBOOT)/ecc256.der
rm -f $(WOLFBOOT)/src/ecc256_pub_key.c
cd $(WOLFBOOT) && make ecc256.der && make include/target.h
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) 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