Skip to content

Commit 10aaa96

Browse files
committed
Improved the Vorago build test script (combined). Further fixes for new IMAGE_HEADER_SIZE and WOLFBOOT_SECTOR_SIZE check
1 parent b0fa070 commit 10aaa96

File tree

4 files changed

+76
-93
lines changed

4 files changed

+76
-93
lines changed

config/examples/sim-ml-dsa-ecc-hybrid.config

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ SIGN_SECONDARY=ECC384
1313

1414
# sizes should be multiple of system page size
1515
WOLFBOOT_PARTITION_SIZE=0x40000
16-
WOLFBOOT_SECTOR_SIZE=0x1000
16+
# sector size must be larger than IMAGE_HEADER_SIZE
17+
WOLFBOOT_SECTOR_SIZE=0x2000
1718
WOLFBOOT_PARTITION_BOOT_ADDRESS=0x80000
1819
# if on external flash, it should be multiple of system page size
1920
WOLFBOOT_PARTITION_UPDATE_ADDRESS=0x100000
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
#!/bin/bash
2+
set -e
3+
4+
# Check arguments
5+
if [ $# -lt 1 ]; then
6+
echo "Usage: $0 <clean|update> [version_number]"
7+
echo " clean: Build and flash a clean factory image (version defaults to 1)"
8+
echo " update: Build and flash an update image (version defaults to 2)"
9+
echo " version_number: Version number for the signed image (optional, defaults to 1 for clean, 2 for update)"
10+
exit 1
11+
fi
12+
13+
MODE=$1
14+
[ "$MODE" != "clean" ] && [ "$MODE" != "update" ] && { echo "Error: Mode must be 'clean' or 'update'"; exit 1; }
15+
16+
# Set version: default to 1 for clean, default to 2 for update
17+
VERSION=$([ "$MODE" = "clean" ] && echo "${2:-1}" || echo "${2:-2}")
18+
19+
# Function to get value from .config file
20+
get_config_value() {
21+
grep "^${1}" .config | sed -E "s/^${1}[?]?=//" | head -n1
22+
}
23+
24+
# Extract values from .config
25+
BOOT_ADDRESS=$(get_config_value "WOLFBOOT_PARTITION_BOOT_ADDRESS")
26+
UPDATE_ADDRESS=$(get_config_value "WOLFBOOT_PARTITION_UPDATE_ADDRESS")
27+
IMAGE_HEADER_SIZE=$(get_config_value "IMAGE_HEADER_SIZE")
28+
SIGN=$(get_config_value "SIGN")
29+
HASH=$(get_config_value "HASH")
30+
SIGN_ARG="--${SIGN,,}"
31+
HASH_ARG="--${HASH,,}"
32+
33+
# Common build steps
34+
make clean && make wolfboot.bin && make test-app/image.bin
35+
36+
# Function to sign image
37+
sign_image() {
38+
IMAGE_HEADER_SIZE=${IMAGE_HEADER_SIZE} ./tools/keytools/sign ${SIGN_ARG} ${HASH_ARG} test-app/image.bin wolfboot_signing_private_key.der "$1"
39+
}
40+
41+
# Function to print summary
42+
print_summary() {
43+
echo "Computed addresses:"
44+
echo " BOOT_ADDRESS: ${BOOT_ADDRESS}"
45+
echo " UPDATE_ADDRESS: ${UPDATE_ADDRESS}"
46+
[ -n "$1" ] && echo " TRIGGER_ADDRESS: $1"
47+
echo "Sign/Hash configuration:"
48+
echo " SIGN: ${SIGN} (${SIGN_ARG})"
49+
echo " HASH: ${HASH} (${HASH_ARG})"
50+
[ -n "$2" ] && echo " PREV_VERSION: $2"
51+
echo " $([ -n "$2" ] && echo "NEW_VERSION" || echo "VERSION"): ${VERSION}"
52+
}
53+
54+
if [ "$MODE" = "clean" ]; then
55+
sign_image ${VERSION}
56+
dd if=/dev/zero of=blank_update.bin bs=1K count=108
57+
./tools/bin-assemble/bin-assemble factory.bin 0x0 wolfboot.bin \
58+
${BOOT_ADDRESS} test-app/image_v${VERSION}_signed.bin \
59+
${UPDATE_ADDRESS} blank_update.bin
60+
JLinkExe -CommanderScript tools/scripts/va416x0/flash_va416xx.jlink
61+
print_summary
62+
else
63+
PARTITION_SIZE=$(get_config_value "WOLFBOOT_PARTITION_SIZE")
64+
TRIGGER_ADDRESS=$(printf "0x%X" $((${UPDATE_ADDRESS} + ${PARTITION_SIZE} - 5)))
65+
PREV_VERSION=$((${VERSION} - 1))
66+
sign_image ${PREV_VERSION} && sign_image ${VERSION}
67+
echo -n "pBOOT" > trigger_magic.bin
68+
./tools/bin-assemble/bin-assemble update.bin 0x0 wolfboot.bin \
69+
${BOOT_ADDRESS} test-app/image_v${PREV_VERSION}_signed.bin \
70+
${UPDATE_ADDRESS} test-app/image_v${VERSION}_signed.bin \
71+
${TRIGGER_ADDRESS} trigger_magic.bin
72+
JLinkExe -CommanderScript tools/scripts/va416x0/flash_va416xx_update.jlink
73+
print_summary "${TRIGGER_ADDRESS}" "${PREV_VERSION}"
74+
fi

tools/scripts/va416x0/build_test_clean.sh

Lines changed: 0 additions & 42 deletions
This file was deleted.

tools/scripts/va416x0/build_test_update.sh

Lines changed: 0 additions & 50 deletions
This file was deleted.

0 commit comments

Comments
 (0)