Skip to content

Commit f51a014

Browse files
utzigd3zd3z
authored andcommitted
ci: Update FIH tests for newer TFM
Update build to run on new TFM release to be used (eb8ff0d). Refactor hardcoded path usage to all come from a main configuration script. Signed-off-by: Fabio Utzig <[email protected]>
1 parent 6810e35 commit f51a014

File tree

4 files changed

+44
-30
lines changed

4 files changed

+44
-30
lines changed

ci/fih_test_docker/execute_test.sh

+19-17
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,7 @@
1616

1717
set -e
1818

19-
WORKING_DIRECTORY=/root/work/tfm
20-
MCUBOOT_PATH=$WORKING_DIRECTORY/mcuboot
21-
TFM_DIR=$WORKING_DIRECTORY/trusted-firmware-m
22-
TFM_BUILD_DIR=$TFM_DIR/build
19+
source $(dirname "$0")/paths.sh
2320

2421
SKIP_SIZE=$1
2522
BUILD_TYPE=$2
@@ -34,26 +31,31 @@ else
3431
fi
3532

3633
# build TF-M with MCUBoot
37-
mkdir -p $TFM_BUILD_DIR
38-
cd $TFM_DIR
39-
cmake -B $TFM_BUILD_DIR \
40-
-DTFM_SPM_LOG_LEVEL=TFM_SPM_LOG_LEVEL_INFO \
41-
-DCMAKE_BUILD_TYPE=$BUILD_TYPE \
42-
-DTFM_TOOLCHAIN_FILE=toolchain_GNUARM.cmake \
34+
mkdir -p $TFM_BUILD_PATH $TFM_SPE_BUILD_PATH
35+
36+
cmake -S $TFM_TESTS_PATH/tests_reg/spe \
37+
-B $TFM_SPE_BUILD_PATH \
4338
-DTFM_PLATFORM=arm/mps2/an521 \
44-
-DTEST_NS=ON \
39+
-DCONFIG_TFM_SOURCE_PATH=$TFM_PATH \
40+
-DCMAKE_BUILD_TYPE=$BUILD_TYPE \
41+
-DTFM_TOOLCHAIN_FILE=$TFM_PATH/toolchain_GNUARM.cmake \
4542
-DTEST_S=ON \
43+
-DTEST_NS=ON \
4644
-DTFM_PSA_API=ON \
4745
-DMCUBOOT_PATH=$MCUBOOT_PATH \
4846
-DMCUBOOT_LOG_LEVEL=INFO \
49-
$CMAKE_FIH_LEVEL \
50-
.
51-
cd $TFM_BUILD_DIR
52-
make -j install
47+
$CMAKE_FIH_LEVEL
48+
cmake --build $TFM_SPE_BUILD_PATH -- install
5349

54-
BOOTLOADER_AXF='./install/outputs/bl2.axf'
50+
cmake -S $TFM_TESTS_PATH/tests_reg \
51+
-B $TFM_BUILD_PATH \
52+
-DCONFIG_SPE_PATH=$TFM_SPE_BUILD_PATH/api_ns \
53+
-DCMAKE_BUILD_TYPE=$BUILD_TYPE \
54+
-DTFM_TOOLCHAIN_FILE=$TFM_SPE_BUILD_PATH/api_ns/cmake/toolchain_ns_GNUARM.cmake
55+
cmake --build $TFM_BUILD_PATH
5556

56-
$MCUBOOT_PATH/ci/fih_test_docker/run_fi_test.sh $BOOTLOADER_AXF $SKIP_SIZE $DAMAGE_TYPE> fih_test_output.yaml
57+
cd $TFM_BUILD_PATH
58+
$MCUBOOT_PATH/ci/fih_test_docker/run_fi_test.sh $BOOTLOADER_AXF_PATH $SKIP_SIZE $DAMAGE_TYPE> fih_test_output.yaml
5759

5860
echo ""
5961
echo "test finished with"

ci/fih_test_docker/fi_tester_gdb.sh

+7-6
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
# See the License for the specific language governing permissions and
1515
# limitations under the License.
1616

17+
source $(dirname "$0")/paths.sh
18+
1719
function skip_instruction {
1820

1921
local SKIP_ADDRESS=$1
@@ -40,7 +42,7 @@ function skip_instruction {
4042

4143
cat >commands.gdb <<EOF
4244
target remote localhost: 1234
43-
file $IMAGE_DIR/bl2.axf
45+
file $AXF_FILE
4446
b boot_go_for_image_id if image_id == 0
4547
continue
4648
delete breakpoints 1
@@ -71,8 +73,8 @@ EOF
7173
/usr/bin/qemu-system-arm \
7274
-M mps2-an521 \
7375
-s -S \
74-
-kernel $IMAGE_DIR/bl2.axf \
75-
-device loader,file=$IMAGE_DIR/tfm_s_ns_signed.bin,addr=0x10080000 \
76+
-kernel $AXF_FILE \
77+
-device loader,file=$TFM_IMAGE_PATH,addr=0x10080000 \
7678
-chardev file,id=char0,path=$QEMU_LOG_FILE \
7779
-serial chardev:char0 \
7880
-display none \
@@ -100,7 +102,7 @@ EOF
100102
#print the address that was skipped, and some context to the console
101103
echo "" 1>&2
102104
echo "Boot success: address: $SKIP_ADDRESS skipped: $SKIP_SIZE" 1>&2
103-
arm-none-eabi-objdump -d $IMAGE_DIR/bl2.axf --start-address=$SKIP_ADDRESS -S | tail -n +7 | head -n 14 1>&2
105+
arm-none-eabi-objdump -d $AXF_FILE --start-address=$SKIP_ADDRESS -S | tail -n +7 | head -n 14 1>&2
104106
echo "" 1>&2
105107
echo "" 1>&2
106108
else
@@ -142,8 +144,7 @@ usage() {
142144

143145
#defaults
144146
SKIP=2
145-
BIN_DIR=$(pwd)/install/outputs
146-
AXF_FILE=$BIN_DIR/bl2.axf
147+
AXF_FILE=${BOOTLOADER_AXF_PATH}
147148
GDB=gdb-multiarch
148149
BOOTLOADER=true
149150

ci/fih_test_docker/paths.sh

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
WORK_PATH=/root/work/tfm
2+
MCUBOOT_PATH=$WORK_PATH/mcuboot
3+
TFM_PATH=$WORK_PATH/trusted-firmware-m
4+
TFM_TESTS_PATH=$WORK_PATH/tf-m-tests
5+
TFM_SPE_BUILD_PATH=$TFM_PATH/build_spe
6+
TFM_BUILD_PATH=$TFM_PATH/build
7+
BOOTLOADER_AXF_PATH=$TFM_SPE_BUILD_PATH/bin/bl2.axf
8+
TFM_IMAGE_NAME=tfm_s_ns_signed.bin
9+
TFM_IMAGE_OUTPUT_PATH=$TFM_BUILD_PATH
10+
TFM_IMAGE_PATH=$TFM_IMAGE_OUTPUT_PATH/$TFM_IMAGE_NAME

ci/fih_test_docker/run_fi_test.sh

+8-7
Original file line numberDiff line numberDiff line change
@@ -28,16 +28,17 @@ MCUBOOT_AXF=$1
2828
SKIP_SIZES=$2
2929
DAMAGE_TYPE=$3
3030

31+
source $(dirname "$0")/paths.sh
32+
3133
# Take an image and make it unbootable. This is done by replacing one of the
3234
# strings in the image with a different string. This causes the signature check
3335
# to fail
3436
function damage_image
3537
{
36-
IMAGEDIR=$(dirname $MCUBOOT_AXF)
37-
local IMAGE_NAME=tfm_s_ns_signed.bin
38-
local BACKUP_IMAGE_NAME=tfm_s_ns_signed.bin.orig
39-
local IMAGE=$IMAGEDIR/$IMAGE_NAME
40-
mv $IMAGE $IMAGEDIR/$BACKUP_IMAGE_NAME
38+
local IMAGE_NAME=${TFM_IMAGE_NAME}
39+
local BACKUP_IMAGE_NAME=${TFM_IMAGE_NAME}.orig
40+
local IMAGE=$TFM_IMAGE_OUTPUT_PATH/$IMAGE_NAME
41+
mv $IMAGE $TFM_IMAGE_OUTPUT_PATH/$BACKUP_IMAGE_NAME
4142

4243
if [ "$DAMAGE_TYPE" = "SIGNATURE" ]; then
4344
DAMAGE_PARAM="--signature"
@@ -48,7 +49,7 @@ function damage_image
4849
exit -1
4950
fi
5051

51-
python3 $DIR/damage_image.py -i $IMAGEDIR/$BACKUP_IMAGE_NAME -o $IMAGE $DAMAGE_PARAM 1>&2
52+
python3 $DIR/damage_image.py -i $TFM_IMAGE_OUTPUT_PATH/$BACKUP_IMAGE_NAME -o $IMAGE $DAMAGE_PARAM 1>&2
5253
}
5354

5455
function run_test
@@ -73,7 +74,7 @@ function run_test
7374
END=$(printf "0x%X" $((END + PAD)))
7475

7576
# Invoke the fi tester script
76-
$DIR/fi_tester_gdb.sh $IMAGEDIR $START $END --skip $SKIP_SIZE
77+
$DIR/fi_tester_gdb.sh $TFM_IMAGE_OUTPUT_PATH $START $END --skip $SKIP_SIZE
7778
done
7879
}
7980

0 commit comments

Comments
 (0)