From 0297840939223544636d147ce4054b06ca9227ce Mon Sep 17 00:00:00 2001 From: Francisco Molina Date: Thu, 2 Sep 2021 12:43:12 +0200 Subject: [PATCH] makefiles/suit: move compiled files to $(BINDIR)/suit_files This avoid clutter under $(BINDIR) as well as making file renaming easier by just changing SUIT_MANIFEST_BASENAME. --- examples/suit_update/README.hardware.md | 8 +++---- makefiles/boot/riotboot.mk | 29 ++++++++++++++----------- makefiles/suit.inc.mk | 12 +++++----- 3 files changed, 26 insertions(+), 23 deletions(-) diff --git a/examples/suit_update/README.hardware.md b/examples/suit_update/README.hardware.md index f3ada5be5c31f..3495da61067d5 100644 --- a/examples/suit_update/README.hardware.md +++ b/examples/suit_update/README.hardware.md @@ -574,10 +574,10 @@ The following variables are defined in makefiles/suit.inc.mk: The following convention is used when naming a manifest - SUIT_MANIFEST ?= $(BINDIR_APP)-riot.suitv3.$(APP_VER).bin - SUIT_MANIFEST_LATEST ?= $(BINDIR_APP)-riot.suitv3.latest.bin - SUIT_MANIFEST_SIGNED ?= $(BINDIR_APP)-riot.suitv3_signed.$(APP_VER).bin - SUIT_MANIFEST_SIGNED_LATEST ?= $(BINDIR_APP)-riot.suitv3_signed.latest.bin + SUIT_MANIFEST ?= $(BINDIR_SUIT)/riot.suitv3.$(APP_VER).bin + SUIT_MANIFEST_LATEST ?= $(BINDIR_SUIT)/riot.suitv3.latest.bin + SUIT_MANIFEST_SIGNED ?= $(BINDIR_SUIT)/riot.suitv3_signed.$(APP_VER).bin + SUIT_MANIFEST_SIGNED_LATEST ?= $(BINDIR_SUIT)/riot.suitv3_signed.latest.bin The following default values are using for generating the manifest: diff --git a/makefiles/boot/riotboot.mk b/makefiles/boot/riotboot.mk index 94c6ed1f01807..36d14cf0f7f41 100644 --- a/makefiles/boot/riotboot.mk +++ b/makefiles/boot/riotboot.mk @@ -9,7 +9,10 @@ CFLAGS += -I$(BINDIR)/riotbuild HEADER_TOOL_DIR = $(RIOTBASE)/dist/tools/riotboot_gen_hdr HEADER_TOOL ?= $(HEADER_TOOL_DIR)/bin/genhdr -BINDIR_APP = $(BINDIR)/$(APPLICATION) +BINDIR_SUIT = $(BINDIR)/suit_files + +$(BINDIR_SUIT): + $(Q)mkdir -p $(BINDIR_SUIT) # export SLOT0_OFFSET SLOT0_LEN SLOT1_OFFSET SLOT1_LEN @@ -19,8 +22,8 @@ EPOCH := $(shell date +%s) APP_VER ?= $(EPOCH) # Final target for slot 0 with riot_hdr -SLOT0_RIOT_BIN = $(BINDIR_APP)-slot0.$(APP_VER).riot.bin -SLOT1_RIOT_BIN = $(BINDIR_APP)-slot1.$(APP_VER).riot.bin +SLOT0_RIOT_BIN = $(BINDIR_SUIT)/slot0.$(APP_VER).riot.bin +SLOT1_RIOT_BIN = $(BINDIR_SUIT)/slot1.$(APP_VER).riot.bin SLOT_RIOT_BINS = $(SLOT0_RIOT_BIN) $(SLOT1_RIOT_BIN) # if RIOTBOOT_SKIP_COMPILE is set to 1, "make riotboot/slot[01](-flash)" @@ -28,7 +31,7 @@ SLOT_RIOT_BINS = $(SLOT0_RIOT_BIN) $(SLOT1_RIOT_BIN) # This results in the equivalent to "make flash-only" for # "make riotboot/flash-slot[01]". ifneq (1, $(RIOTBOOT_SKIP_COMPILE)) -$(BINDIR_APP)-%.elf: $(BASELIBS) $(ARCHIVES) +$(BINDIR_SUIT)/%.elf: $(BASELIBS) $(ARCHIVES) $(BINDIR_SUIT) $(Q)$(_LINK) -o $@ endif @@ -37,11 +40,11 @@ SLOT0_IMAGE_OFFSET := $$(($(SLOT0_OFFSET) + $(RIOTBOOT_HDR_LEN))) SLOT1_IMAGE_OFFSET := $$(($(SLOT1_OFFSET) + $(RIOTBOOT_HDR_LEN))) # Link slots ELF *after* riot_hdr and limit the ROM to the slots length -$(BINDIR_APP)-slot0.elf: FW_ROM_LEN=$$((SLOT0_LEN - $(RIOTBOOT_HDR_LEN))) -$(BINDIR_APP)-slot0.elf: ROM_OFFSET=$(SLOT0_IMAGE_OFFSET) -$(BINDIR_APP)-slot1.elf: FW_ROM_LEN=$$((SLOT1_LEN - $(RIOTBOOT_HDR_LEN))) -$(BINDIR_APP)-slot1.elf: ROM_OFFSET=$(SLOT1_IMAGE_OFFSET) -SLOT_RIOT_ELFS = $(BINDIR_APP)-slot0.elf $(BINDIR_APP)-slot1.elf +$(BINDIR_SUIT)/slot0.elf: FW_ROM_LEN=$$((SLOT0_LEN - $(RIOTBOOT_HDR_LEN))) +$(BINDIR_SUIT)/slot0.elf: ROM_OFFSET=$(SLOT0_IMAGE_OFFSET) +$(BINDIR_SUIT)/slot1.elf: FW_ROM_LEN=$$((SLOT1_LEN - $(RIOTBOOT_HDR_LEN))) +$(BINDIR_SUIT)/slot1.elf: ROM_OFFSET=$(SLOT1_IMAGE_OFFSET) +SLOT_RIOT_ELFS = $(BINDIR_SUIT)/slot0.elf $(BINDIR_SUIT)/slot1.elf # ensure both slot elf files are always linked # this ensures that both "make test" and "make test-murdock" can rely on them @@ -68,8 +71,8 @@ $(HEADER_TOOL): FORCE %.hdr: $(HEADER_TOOL) %.bin FORCE $(Q)$(HEADER_TOOL) generate $< $(APP_VER) $$(($(ROM_START_ADDR)+$(OFFSET))) $(RIOTBOOT_HDR_LEN) - > $@ -$(BINDIR_APP)-slot0.hdr: OFFSET=$(SLOT0_IMAGE_OFFSET) -$(BINDIR_APP)-slot1.hdr: OFFSET=$(SLOT1_IMAGE_OFFSET) +$(BINDIR_SUIT)/slot0.hdr: OFFSET=$(SLOT0_IMAGE_OFFSET) +$(BINDIR_SUIT)/slot1.hdr: OFFSET=$(SLOT1_IMAGE_OFFSET) # Generic target to create a binary files for both slots riotboot: $(SLOT_RIOT_BINS) @@ -104,12 +107,12 @@ ifneq ($(BOOTLOADER_BIN)/riotboot.bin,$(BINFILE)) endif # Create combined binary booloader + RIOT firmware with header -RIOTBOOT_COMBINED_BIN = $(BINDIR_APP)-slot0-combined.bin +RIOTBOOT_COMBINED_BIN = $(BINDIR_SUIT)/slot0-combined.bin riotboot/combined-slot0: $(RIOTBOOT_COMBINED_BIN) $(RIOTBOOT_COMBINED_BIN): $(BOOTLOADER_BIN)/riotboot.extended.bin $(SLOT0_RIOT_BIN) $(Q)cat $^ > $@ -RIOTBOOT_EXTENDED_BIN = $(BINDIR_APP)-slot0-extended.bin +RIOTBOOT_EXTENDED_BIN = $(BINDIR_SUIT)/slot0-extended.bin # Generate a binary file from slot 0 which covers slot 1 riot_hdr # in order to invalidate slot 1 diff --git a/makefiles/suit.inc.mk b/makefiles/suit.inc.mk index bb196d424022f..e522bf6c39a45 100644 --- a/makefiles/suit.inc.mk +++ b/makefiles/suit.inc.mk @@ -4,20 +4,20 @@ # makefiles/suit.base.inc.mk # # -SUIT_COAP_BASEPATH ?= fw/$(BOARD) +SUIT_COAP_BASEPATH ?= fw/$(BOARD)/$(APPLICATION) SUIT_COAP_SERVER ?= localhost SUIT_COAP_ROOT ?= coap://$(SUIT_COAP_SERVER)/$(SUIT_COAP_BASEPATH) SUIT_COAP_FSROOT ?= $(RIOTBASE)/coaproot # SUIT_MANIFEST_BASENAME ?= riot.suit -SUIT_MANIFEST ?= $(BINDIR_APP)-$(SUIT_MANIFEST_BASENAME).$(APP_VER).bin -SUIT_MANIFEST_LATEST ?= $(BINDIR_APP)-$(SUIT_MANIFEST_BASENAME).latest.bin -SUIT_MANIFEST_SIGNED ?= $(BINDIR_APP)-$(SUIT_MANIFEST_BASENAME)_signed.$(APP_VER).bin -SUIT_MANIFEST_SIGNED_LATEST ?= $(BINDIR_APP)-$(SUIT_MANIFEST_BASENAME)_signed.latest.bin +SUIT_MANIFEST ?= $(BINDIR_SUIT)/$(SUIT_MANIFEST_BASENAME).$(APP_VER).bin +SUIT_MANIFEST_LATEST ?= $(BINDIR_SUIT)/$(SUIT_MANIFEST_BASENAME).latest.bin +SUIT_MANIFEST_SIGNED ?= $(BINDIR_SUIT)/$(SUIT_MANIFEST_BASENAME)_signed.$(APP_VER).bin +SUIT_MANIFEST_SIGNED_LATEST ?= $(BINDIR_SUIT)/$(SUIT_MANIFEST_BASENAME)_signed.latest.bin SUIT_NOTIFY_VERSION ?= latest -SUIT_NOTIFY_MANIFEST ?= $(APPLICATION)-$(SUIT_MANIFEST_BASENAME)_signed.$(SUIT_NOTIFY_VERSION).bin +SUIT_NOTIFY_MANIFEST ?= $(SUIT_MANIFEST_BASENAME)_signed.$(SUIT_NOTIFY_VERSION).bin # Long manifest names require more buffer space when parsing export CFLAGS += -DCONFIG_SOCK_URLPATH_MAXLEN=128