ci: update RMM build command with additional options
Refactor the build_rmm function to include more configurable options
for the RMM build process. Introduced new options such as
RMM_TOOLCHAIN, RMM_FPU_USE_AT_REL2, ATTEST_EL3_TOKEN_SIGN, and
RMM_V1_1.
Change-Id: Iff1c9205637cb8a76ac693cf3be4859ec2d19286
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
diff --git a/script/build_package.sh b/script/build_package.sh
index 6c928be..3ee22ad 100755
--- a/script/build_package.sh
+++ b/script/build_package.sh
@@ -518,9 +518,16 @@
get_rmm_opt() {
(
name="${1:?}"
+ default="$2"
if config_valid "$rmm_config_file"; then
source "$rmm_config_file"
- echo "${!name}"
+ # If !name is not defined, go with the default
+ # value (if defined)
+ if [ -z "${!name}" ]; then
+ echo "$default"
+ else
+ echo "${!name}"
+ fi
fi
)
}
@@ -911,7 +918,6 @@
config_file="${rmm_build_config:-$rmm_config_file}"
# Build fiptool and all targets by default
- build_targets="${rmm_build_targets}"
export CROSS_COMPILE="${aarch64_none_elf_prefix}"
source "$config_file"
@@ -938,21 +944,29 @@
rm -rf $rmm_build_root
fi
+ if not_upon "$local_ci"; then
+ connect_debugger=0
+ fi
+
# Log build command line. It is left unfolded on purpose to assist
# copying to clipboard.
cat <<EOF | log_separator >/dev/null
Build command line:
- cmake -DRMM_CONFIG=${plat}_defcfg $cmake_gen -S $rmm_root -B $rmm_build_root -DCMAKE_BUILD_TYPE=$cmake_build_type
- cmake --build $rmm_build_root $make_j_opts -v
-EOF
- if not_upon "$local_ci"; then
- connect_debugger=0
- fi
+ cmake -DRMM_CONFIG=${plat}_defcfg "$cmake_gen" -S $rmm_root -B $rmm_build_root -DRMM_TOOLCHAIN=$rmm_toolchain -DRMM_FPU_USE_AT_REL2=$rmm_fpu_use_at_rel2 -DATTEST_EL3_TOKEN_SIGN=$rmm_attest_el3_token_sign -DRMM_V1_1=$rmm_v1_1 ${extra_options}
+ cmake --build $rmm_build_root --config $cmake_build_type $make_j_opts -v ${extra_targets+-- $extra_targets}
- cmake -DRMM_CONFIG=${plat}_defcfg $cmake_gen -S $rmm_root -B $rmm_build_root -DCMAKE_BUILD_TYPE=$cmake_build_type
- cmake --build $rmm_build_root $make_j_opts -v 3>&1 &>>"$build_log" || fail_build
- )
+EOF
+ cmake \
+ -DRMM_CONFIG=${plat}_defcfg $cmake_gen \
+ -S $rmm_root -B $rmm_build_root \
+ -DRMM_TOOLCHAIN=$rmm_toolchain \
+ -DRMM_FPU_USE_AT_REL2=$rmm_fpu_use_at_rel2 \
+ -DATTEST_EL3_TOKEN_SIGN=$rmm_attest_el3_token_sign \
+ -DRMM_V1_1=$rmm_v1_1 \
+ ${extra_options}
+ cmake --build $rmm_build_root --config $cmake_build_type $make_j_opts -v ${extra_targets+-- $extra_targets} 3>&1 &>>"$build_log" || fail_build
+ )
}
# Set metadata for the whole package so that it can be used by both Jenkins and
@@ -1625,6 +1639,12 @@
if [ -z ${plat_utils} ]; then
# Source platform-specific utilities.
plat="$(get_rmm_opt PLAT)"
+ extra_options="$(get_rmm_opt EXTRA_OPTIONS)"
+ extra_targets="$(get_rmm_opt EXTRA_TARGETS "")"
+ rmm_toolchain="$(get_rmm_opt TOOLCHAIN gnu)"
+ rmm_fpu_use_at_rel2="$(get_rmm_opt RMM_FPU_USE_AT_REL2 OFF)"
+ rmm_attest_el3_token_sign="$(get_rmm_opt ATTEST_EL3_TOKEN_SIGN OFF)"
+ rmm_v1_1="$(get_rmm_opt RMM_V1_1 ON)"
plat_utils="$ci_root/${plat}_utils.sh"
else
# Source platform-specific utilities by