@@ -7,44 +7,57 @@ RIOTBASE ?= $(CURDIR)/../..
77# Activate FW slots
88FW_SLOTS = 1
99
10- # Select slot 1
11- FW_SLOT = 1
10+ # Define the parameters for the FW slot 1
11+ FW_IMAGE1_OFFSET = 0x08004000 # Start at page 8
12+ FW_IMAGE1_LENGTH = 0x3C000 # Reserve 120 pages
13+ FW_METADATA_SPACE = 0x100 # 76 bytes meta-data, 256 byte aligned
14+ FW_IMAGE1_END = 0x08040000 # FW_IMAGE_OFFSET + FW_IMAGE_LENGTH
15+ VERSION_IMG1 = 0x0
16+ UUID_IMG1 = 0xabcd1234
17+
18+ # Define the parameters for the FW slot 1
19+ FW_IMAGE2_OFFSET = 0x08040000 # Start at page 128
20+ FW_IMAGE2_LENGTH = 0x3C000 # Reserve 120 pages
21+ FW_METADATA_SPACE = 0x100 # 76 bytes meta-data, 256 byte aligned
22+ FW_IMAGE1_END = 0x0807C000 # FW_IMAGE_OFFSET + FW_IMAGE_LENGTH
23+ VERSION_IMG2 = 0x0
24+ UUID_IMG2 = 0xefab5678
1225
13- # Give a version to this build
14- VERSION = 0x0
15-
16- # Give an UUID
17- UUID = 0xabcd1234
18-
19- # Define the parameters for the FW Update
20- FW_IMAGE_OFFSET = 0x08004000 # Start at page 8
21- FW_IMAGE_LENGTH = 0x3C000 # Reserve 120 pages
22- FW_METADATA_SPACE = 0x100 # 108 bytes meta-data, 256 byte aligned
23- FW_IMAGE_END = 0x08040000 # FW_IMAGE_OFFSET + FW_IMAGE_LENGTH
24-
2526bootloader :
2627 @cd ../bootloader; \
2728 CFLAGS+=-DFW_METADATA_SPACE=$(FW_METADATA_SPACE ) make clean all; \
2829 cp bin/$(BOARD ) /bootloader.hex ../firmware_swapping
2930
3031gcoap-slot1 :
3132 @cd ../gcoap; \
32- CFLAGS=" -DFW_SLOT=$( FW_SLOT ) -DVERSION=$( VERSION ) -DUUID=$( UUID ) \
33+ CFLAGS=" -DFW_SLOT=1 -DVERSION=$( VERSION_IMG1 ) -DUUID=$( UUID_IMG1 ) \
3334 -DFW_SLOTS=$(FW_SLOTS ) " FW_SLOTS=$( FW_SLOTS) \
34- FW_METADATA_SPACE=$(FW_METADATA_SPACE ) FW_SLOT=$( FW_SLOT ) \
35- FW_IMAGE_OFFSET=$(FW_IMAGE_OFFSET ) FW_IMAGE_LENGTH=$(FW_IMAGE_LENGTH ) \
36- FW_IMAGE_END=$(FW_IMAGE_END ) VERSION=$(VERSION ) UUID=$(UUID ) \
35+ FW_METADATA_SPACE=$(FW_METADATA_SPACE ) FW_SLOT=1 \
36+ FW_IMAGE_OFFSET=$(FW_IMAGE1_OFFSET ) FW_IMAGE_LENGTH=$(FW_IMAGE1_LENGTH ) \
37+ FW_IMAGE_END=$(FW_IMAGE1_END ) VERSION=$(VERSION_IMG1 ) UUID=$(UUID_IMG1 ) \
3738 make clean all; \
38- cp bin/$(BOARD ) /slot-image-$(UUID ) -$(VERSION ) .bin ../firmware_swapping
39+ cp bin/$(BOARD ) /slot-image-$(UUID_IMG1 ) -$(VERSION_IMG1 ) .bin ../firmware_swapping
40+
41+ default-slot2 :
42+ @cd ../default; \
43+ CFLAGS=" -DFW_SLOT=2 -DVERSION=$( VERSION_IMG2) -DUUID=$( UUID_IMG2) \
44+ -DFW_SLOTS=$(FW_SLOTS ) " FW_SLOTS=$( FW_SLOTS) \
45+ FW_METADATA_SPACE=$(FW_METADATA_SPACE ) FW_SLOT=2 \
46+ FW_IMAGE_OFFSET=$(FW_IMAGE2_OFFSET ) FW_IMAGE_LENGTH=$(FW_IMAGE2_LENGTH ) \
47+ FW_IMAGE_END=$(FW_IMAGE2_END ) VERSION=$(VERSION_IMG2 ) UUID=$(UUID_IMG2 ) \
48+ make clean all; \
49+ cp bin/$(BOARD ) /slot-image-$(UUID_IMG2 ) -$(VERSION_IMG2 ) .bin ../firmware_swapping
3950
4051merge-binary :
41- srec_cat bootloader.hex -intel -crop 0x08000000 $(FW_IMAGE_OFFSET ) \
42- slot-image-$(UUID ) -$(VERSION ) .bin -binary -offset $(FW_IMAGE_OFFSET ) \
43- -crop $(FW_IMAGE_OFFSET ) $(FW_IMAGE_END ) \
44- -o firmware-slot-$(FW_SLOT ) .hex -intel
45-
46- master-hex : bootloader gcoap-slot1 merge-binary
52+ srec_cat bootloader.hex -intel -crop 0x08000000 $(FW_IMAGE1_OFFSET ) \
53+ slot-image-$(UUID_IMG1 ) -$(VERSION_IMG1 ) .bin -binary -offset $(FW_IMAGE1_OFFSET ) \
54+ -crop $(FW_IMAGE1_OFFSET ) $(FW_IMAGE1_END ) \
55+ slot-image-$(UUID_IMG2 ) -$(VERSION_IMG2 ) .bin -binary -offset $(FW_IMAGE2_OFFSET ) \
56+ -crop $(FW_IMAGE2_OFFSET ) $(FW_IMAGE2_END ) \
57+ -o firmware-slots.hex -intel
58+
59+ master-hex : bootloader gcoap-slot1 default-slot2 merge-binary
4760 @true
4861
4962clean :
50- @rm * .hex firmware * * .bin
63+ @rm * .hex * .bin
0 commit comments