lava_helper: Add multiple image support to jinja2 binary templating
Signed-off-by: Gergely Korcsák <gergely.korcsak@arm.com>
Change-Id: I1cf213f50dd8e6aa566ee985637ed0e4c2c9a931
diff --git a/lava_helper/jinja2_templates/b_u585i_iot02a.jinja2 b/lava_helper/jinja2_templates/b_u585i_iot02a.jinja2
index c1aa3c4..e51b2aa 100644
--- a/lava_helper/jinja2_templates/b_u585i_iot02a.jinja2
+++ b/lava_helper/jinja2_templates/b_u585i_iot02a.jinja2
@@ -1,5 +1,5 @@
{#------------------------------------------------------------------------------
-# Copyright (c) 2020-2023, Arm Limited and Contributors. All rights reserved.
+# Copyright (c) 2020-2024, Arm Limited and Contributors. All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause
#
@@ -12,8 +12,10 @@
minutes: 12
to: flasher
images:
- tarball:
- url: {{ tarball_url }}
+{% for name, img in binaries.items() %}
+ {{ name }}:
+ url: {{ data_url_prefix }}/{{ img.data }}
+{% endfor %}
- boot:
method: minimal
diff --git a/lava_helper/jinja2_templates/fvp_corstone1000.jinja2 b/lava_helper/jinja2_templates/fvp_corstone1000.jinja2
index ec2c841..d70c65f 100644
--- a/lava_helper/jinja2_templates/fvp_corstone1000.jinja2
+++ b/lava_helper/jinja2_templates/fvp_corstone1000.jinja2
@@ -1,5 +1,5 @@
{#------------------------------------------------------------------------------
-# Copyright (c) 2018-2022, Arm Limited and Contributors. All rights reserved.
+# Copyright (c) 2018-2024, Arm Limited and Contributors. All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause
#
@@ -20,10 +20,14 @@
namespace: docker
to: fvp
images:
- app:
- url: {{ application_url }}
- data:
- url: {{ data_url }}
+{% for name, img in binaries.items() %}
+ {{ name }}:
+ {% if img.application is defined %}
+ url: {{ data_url_prefix }}/{{ img.application }}
+ {% else %}
+ url: {{ data_url_prefix }}/{{ img.data }}
+ {% endif %}
+{% endfor %}
- boot:
failure_retry: 3
namespace: docker
@@ -40,14 +44,19 @@
license_variable: '{{ license_variable }}'
use_telnet: True
arguments:
- - "-C se.trustedBootROMloader.fname=\"{APP}\""
+{% for name, img in binaries.items() %}
+ {% if img.application is defined %}
+ - "-C se.trustedBootROMloader.fname=\"{{ '{' ~ name.upper() ~ '}' }}\""
+ {% else %}
+ - "--data board.flash0={{ '{' ~ name.upper() ~ '}' }}@{{ img.offset }}"
+ {% endif %}
+{% endfor %}
- "-C board.flashloader0.fname=\"none\""
- "-C board.xnvm_size=64"
- "-C se.trustedSRAM_config=6"
- "-C se.BootROM_config=\"3\""
- "-C board.smsc_91c111.enabled=0"
- "-C board.hostbridge.userNetworking=true"
- - "--data board.flash0={DATA}@{{ data_bin_offset }}"
- "-C diagnostics=4"
- "-C disable_visualisation=true"
- "-C board.se_flash_size=8192"
diff --git a/lava_helper/jinja2_templates/fvp_mps2.jinja2 b/lava_helper/jinja2_templates/fvp_mps2.jinja2
index d650670..e203f40 100644
--- a/lava_helper/jinja2_templates/fvp_mps2.jinja2
+++ b/lava_helper/jinja2_templates/fvp_mps2.jinja2
@@ -1,5 +1,5 @@
{#------------------------------------------------------------------------------
-# Copyright (c) 2018-2022, Arm Limited and Contributors. All rights reserved.
+# Copyright (c) 2018-2024, Arm Limited and Contributors. All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause
#
@@ -20,10 +20,14 @@
namespace: docker
to: fvp
images:
- app:
- url: {{ application_url }}
- data:
- url: {{ data_url }}
+{% for name, img in binaries.items() %}
+ {{ name }}:
+ {% if img.application is defined %}
+ url: {{ data_url_prefix }}/{{ img.application }}
+ {% else %}
+ url: {{ data_url_prefix }}/{{ img.data }}
+ {% endif %}
+{% endfor %}
{%- if enable_code_coverage %}
cc:
url: {{ coverage_trace_plugin }}
@@ -57,8 +61,13 @@
- "/opt/model/FVP_ARM_Std_Library/FVP_MPS2/FVP_MPS2_AEMv8M"
{%- endif %}
- "--simlimit 900"
- - "--application cpu0={APP}"
- - "--data cpu0={DATA}@{{ data_bin_offset }}"
+{% for name, img in binaries.items() %}
+ {% if img.application is defined %}
+ - "--application cpu0={{ '{' ~ name.upper() ~ '}' }}"
+ {% else %}
+ - "--data cpu0={{ '{' ~ name.upper() ~ '}' }}@{{ img.offset }}"
+ {% endif %}
+{% endfor %}
- "--parameter fvp_mps2.platform_type=2"
- "--parameter cpu0.baseline={{ cpu0_baseline }}"
- "--parameter cpu0.INITVTOR_S={{ cpu0_initvtor_s }}"
diff --git a/lava_helper/jinja2_templates/fvp_mps3.jinja2 b/lava_helper/jinja2_templates/fvp_mps3.jinja2
index 1b6d95e..5e7c0cf 100644
--- a/lava_helper/jinja2_templates/fvp_mps3.jinja2
+++ b/lava_helper/jinja2_templates/fvp_mps3.jinja2
@@ -1,5 +1,5 @@
{#------------------------------------------------------------------------------
-# Copyright (c) 2018-2023, Arm Limited and Contributors. All rights reserved.
+# Copyright (c) 2018-2024, Arm Limited and Contributors. All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause
#
@@ -20,10 +20,14 @@
namespace: docker
to: fvp
images:
- app:
- url: {{ application_url }}
- data:
- url: {{ data_url }}
+{% for name, img in binaries.items() %}
+ {{ name }}:
+ {% if img.application is defined %}
+ url: {{ data_url_prefix }}/{{ img.application }}
+ {% else %}
+ url: {{ data_url_prefix }}/{{ img.data }}
+ {% endif %}
+{% endfor %}
{%- if enable_code_coverage %}
cc:
url: {{ coverage_trace_plugin }}
@@ -45,8 +49,13 @@
use_telnet: False
arguments:
- "--simlimit 900"
- - "--application cpu0={APP}"
- - "--data cpu0={DATA}@{{ data_bin_offset }}"
+{% for name, img in binaries.items() %}
+ {% if img.application is defined %}
+ - "--application cpu0={{ '{' ~ name.upper() ~ '}' }}"
+ {% else %}
+ - "--data cpu0={{ '{' ~ name.upper() ~ '}' }}@{{ img.offset }}"
+ {% endif %}
+{% endfor %}
- "--parameter mps3_board.platform_type=1"
- "--parameter cpu0.INITSVTOR={{ cpu0_initvtor_s }}"
- "--parameter cpu0.semihosting-enable=0"
diff --git a/lava_helper/jinja2_templates/lpcxpresso55s69.jinja2 b/lava_helper/jinja2_templates/lpcxpresso55s69.jinja2
index f95c437..e51b2aa 100644
--- a/lava_helper/jinja2_templates/lpcxpresso55s69.jinja2
+++ b/lava_helper/jinja2_templates/lpcxpresso55s69.jinja2
@@ -1,5 +1,5 @@
{#------------------------------------------------------------------------------
-# Copyright (c) 2020-2022, Arm Limited and Contributors. All rights reserved.
+# Copyright (c) 2020-2024, Arm Limited and Contributors. All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause
#
@@ -12,8 +12,10 @@
minutes: 12
to: flasher
images:
- tarball:
- url: {{ tarball_url }}
+{% for name, img in binaries.items() %}
+ {{ name }}:
+ url: {{ data_url_prefix }}/{{ img.data }}
+{% endfor %}
- boot:
method: minimal
diff --git a/lava_helper/jinja2_templates/mps2.jinja2 b/lava_helper/jinja2_templates/mps2.jinja2
index 2df0641..bc5f4df 100644
--- a/lava_helper/jinja2_templates/mps2.jinja2
+++ b/lava_helper/jinja2_templates/mps2.jinja2
@@ -1,5 +1,5 @@
{#------------------------------------------------------------------------------
-# Copyright (c) 2018-2022, Arm Limited and Contributors. All rights reserved.
+# Copyright (c) 2018-2024, Arm Limited and Contributors. All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause
#
@@ -21,10 +21,10 @@
recovery_image:
url: {{ recovery_image_url }}
compression: gz
- test_binary_1:
- url: {{ firmware_url }}
- test_binary_2:
- url: {{ bootloader_url }}
+{% for name, img in binaries.items() %}
+ {{ name }}:
+ url: {{ data_url_prefix }}/{{ img.data }}
+{% endfor %}
namespace: target
- boot:
diff --git a/lava_helper/jinja2_templates/musca_b1.jinja2 b/lava_helper/jinja2_templates/musca_b1.jinja2
index 7bc2d88..c1396f9 100644
--- a/lava_helper/jinja2_templates/musca_b1.jinja2
+++ b/lava_helper/jinja2_templates/musca_b1.jinja2
@@ -1,5 +1,5 @@
{#------------------------------------------------------------------------------
-# Copyright (c) 2020-2022, Arm Limited and Contributors. All rights reserved.
+# Copyright (c) 2020-2024, Arm Limited and Contributors. All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause
#
@@ -12,8 +12,10 @@
minutes: 12
to: musca
images:
- test_binary:
- url: {{ firmware_url }}
+{% for name, img in binaries.items() %}
+ {{ name }}:
+ url: {{ data_url_prefix }}/{{ img.data }}
+{% endfor %}
- boot:
method: musca
diff --git a/lava_helper/jinja2_templates/psoc64.jinja2 b/lava_helper/jinja2_templates/psoc64.jinja2
index cc40483..88031ec 100644
--- a/lava_helper/jinja2_templates/psoc64.jinja2
+++ b/lava_helper/jinja2_templates/psoc64.jinja2
@@ -1,5 +1,5 @@
{#------------------------------------------------------------------------------
-# Copyright (c) 2020-2022, Arm Limited and Contributors. All rights reserved.
+# Copyright (c) 2020-2024, Arm Limited and Contributors. All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause
#
@@ -12,10 +12,10 @@
minutes: 12
to: flasher
images:
- spe:
- url: {{ spe_url }}
- nspe:
- url: {{ nspe_url }}
+{% for name, img in binaries.items() %}
+ {{ name }}:
+ url: {{ data_url_prefix }}/{{ img.data }}
+{% endfor %}
- boot:
method: minimal
diff --git a/lava_helper/jinja2_templates/qemu_mps2_bl2.jinja2 b/lava_helper/jinja2_templates/qemu_mps2_bl2.jinja2
index 2a6da2d..84f32fd 100644
--- a/lava_helper/jinja2_templates/qemu_mps2_bl2.jinja2
+++ b/lava_helper/jinja2_templates/qemu_mps2_bl2.jinja2
@@ -1,5 +1,5 @@
{#------------------------------------------------------------------------------
-# Copyright (c) 2019-2022, Arm Limited and Contributors. All rights reserved.
+# Copyright (c) 2019-2024, Arm Limited and Contributors. All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause
#
@@ -7,8 +7,11 @@
actions:
- deploy:
images:
- mcuboot: {image_arg: '-device loader,file={mcuboot},addr=0x10000000', url: '{{ bootloader_url }}'}
- tfm: {image_arg: '-device loader,file={tfm},addr=0x10080000', url: '{{ firmware_url }}'}
+{% for name, img in binaries.items() %}
+ {{ name }}:
+ image_arg: "{{ '-device loader,file={' ~ name ~ '},addr=' ~ img.offset }}"
+ url: {{ data_url_prefix }}/{{ img.data }}
+{% endfor %}
to: tmpfs
- boot:
docker: {binary: /usr/bin/qemu-system-arm, image: 'trustedfirmware/ci-amd64-tf-m-qemu-debian:bullseye'}
diff --git a/lava_helper/jinja2_templates/stm32h573i_dk.jinja2 b/lava_helper/jinja2_templates/stm32h573i_dk.jinja2
index c1aa3c4..e51b2aa 100644
--- a/lava_helper/jinja2_templates/stm32h573i_dk.jinja2
+++ b/lava_helper/jinja2_templates/stm32h573i_dk.jinja2
@@ -1,5 +1,5 @@
{#------------------------------------------------------------------------------
-# Copyright (c) 2020-2023, Arm Limited and Contributors. All rights reserved.
+# Copyright (c) 2020-2024, Arm Limited and Contributors. All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause
#
@@ -12,8 +12,10 @@
minutes: 12
to: flasher
images:
- tarball:
- url: {{ tarball_url }}
+{% for name, img in binaries.items() %}
+ {{ name }}:
+ url: {{ data_url_prefix }}/{{ img.data }}
+{% endfor %}
- boot:
method: minimal
diff --git a/lava_helper/jinja2_templates/stm32l562e_dk.jinja2 b/lava_helper/jinja2_templates/stm32l562e_dk.jinja2
index 8c00dd7..8b9426d 100644
--- a/lava_helper/jinja2_templates/stm32l562e_dk.jinja2
+++ b/lava_helper/jinja2_templates/stm32l562e_dk.jinja2
@@ -1,5 +1,5 @@
{#------------------------------------------------------------------------------
-# Copyright (c) 2020-2022, Arm Limited and Contributors. All rights reserved.
+# Copyright (c) 2020-2024, Arm Limited and Contributors. All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause
#
@@ -12,8 +12,10 @@
minutes: 12
to: flasher
images:
- tarball:
- url: {{ tarball_url }}
+{% for name, img in binaries.items() %}
+ {{ name }}:
+ url: {{ data_url_prefix }}/{{ img.data }}
+{% endfor %}
- boot:
method: musca
diff --git a/lava_helper/lava_create_jobs.py b/lava_helper/lava_create_jobs.py
index 3c0e3dd..3bd7b39 100755
--- a/lava_helper/lava_create_jobs.py
+++ b/lava_helper/lava_create_jobs.py
@@ -4,7 +4,7 @@
__copyright__ = """
/*
- * Copyright (c) 2020-2022, Arm Limited. All rights reserved.
+ * Copyright (c) 2020-2024, Arm Limited. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*
@@ -77,22 +77,16 @@
"monitors": config['monitors'].get(monitor_name, []),
"platform": platform,
"recovery_image_url": recovery_image_url,
- "data_bin_offset": config.get('data_bin_offset', ''),
"docker_prefix": vars(user_args).get('docker_prefix', ''),
"license_variable": vars(user_args).get('license_variable', ''),
"enable_code_coverage": user_args.enable_code_coverage == "TRUE",
"coverage_trace_plugin": coverage_trace_plugin,
- "build_job_url": os.getenv("BUILD_URL"),
"cpu0_baseline": config.get("cpu0_baseline", 0),
"cpu0_initvtor_s": config.get("cpu0_initvtor_s", "0x10000000"),
"psa_api_suite": os.getenv("TEST_PSA_API") if os.getenv("TEST_PSA_API") == "IPC" else "",
+ "binaries": config.get('binaries', []),
+ "data_url_prefix": "{}/artifact/ci_build".format(os.getenv("BUILD_URL"))
}
- for binary_type, binary_name in config["binaries"].items():
- params.update(
- {
- "{}_url".format(binary_type): "{}/artifact/ci_build/{}".format(params["build_job_url"], binary_name)
- }
- )
if len(params["monitors"]) == 0:
break
diff --git a/lava_helper/lava_helper_configs.py b/lava_helper/lava_helper_configs.py
index fe02a98..3bc6ab3 100644
--- a/lava_helper/lava_helper_configs.py
+++ b/lava_helper/lava_helper_configs.py
@@ -102,8 +102,14 @@
"recovery_store_url": "https://ci.trustedfirmware.org/userContent/",
"platforms": {"arm/mps2/an521": "mps2_sse200_an512_new.tar.gz"},
"binaries": {
- "firmware": "nspe/tfm_s_ns_signed.bin",
- "bootloader": "spe/bin/bl2.bin"
+ # Run script references to test_.*/.*.bin
+ # These files will be saved under folders: test_firmware and test_bootloader
+ "test_firmware": {
+ "data": "nspe/tfm_s_ns_signed.bin"
+ },
+ "test_bootloader": {
+ "data": "spe/bin/bl2.bin"
+ }
},
"monitors": {
'no_reg_tests': no_reg_tests_monitors,
@@ -126,10 +132,14 @@
"monitor_timeout": 15,
"poweroff_timeout": 1,
"platforms": {"arm/mps3/corstone300/fvp": ""},
- "data_bin_offset": "0x38000000",
"binaries": {
- "application": "spe/bin/bl2.axf",
- "data": "nspe/tfm_s_ns_signed.bin"
+ "bl2": {
+ "application": "spe/bin/bl2.axf"
+ },
+ "tfm_s_ns_img": {
+ "data": "nspe/tfm_s_ns_signed.bin",
+ "offset": "0x38000000",
+ }
},
"monitors": {
'no_reg_tests': no_reg_tests_monitors,
@@ -147,10 +157,14 @@
"monitor_timeout": 15,
"poweroff_timeout": 1,
"platforms": {"arm/corstone1000": ""},
- "data_bin_offset": "0x68000000",
"binaries": {
- "application": "spe/bin/bl1.bin",
- "data": "spe/bin/cs1000.bin"
+ "bl1": {
+ "application": "spe/bin/bl1.bin"
+ },
+ "tfm_s_ns_img": {
+ "data": "spe/bin/cs1000.bin",
+ "offset": "0x68000000",
+ }
},
"monitors": {
'reg_tests': reg_tests_monitors if "FVP" in os.getenv('EXTRA_PARAMS') else [],
@@ -169,10 +183,14 @@
"monitor_timeout": 15,
"poweroff_timeout": 1,
"platforms": {"arm/mps2/an521": ""},
- "data_bin_offset": "0x10080000",
"binaries": {
- "application": "spe/bin/bl2.axf",
- "data": "nspe/tfm_s_ns_signed.bin"
+ "bl2": {
+ "application": "spe/bin/bl2.axf"
+ },
+ "tfm_s_ns_img": {
+ "data": "nspe/tfm_s_ns_signed.bin",
+ "offset": "0x10080000",
+ }
},
"monitors": {
'no_reg_tests': no_reg_tests_monitors,
@@ -194,11 +212,15 @@
"monitor_timeout": 15,
"poweroff_timeout": 1,
"platforms": {"arm/mps2/an519": ""},
- "data_bin_offset": "0x10080000",
"cpu0_baseline": 1,
"binaries": {
- "application": "spe/bin/bl2.axf",
- "data": "nspe/tfm_s_ns_signed.bin"
+ "bl2": {
+ "application": "spe/bin/bl2.axf"
+ },
+ "tfm_s_ns_img": {
+ "data": "nspe/tfm_s_ns_signed.bin",
+ "offset": "0x10080000",
+ }
},
"monitors": {
'no_reg_tests': no_reg_tests_monitors,
@@ -239,8 +261,14 @@
"poweroff_timeout": 1,
"platforms": {"arm/mps2/an521": ""},
"binaries": {
- "firmware": "nspe/tfm_s_ns_signed.bin",
- "bootloader": "spe/bin/bl2.bin"
+ "mcuboot": {
+ "data": "spe/bin/bl2.bin",
+ "offset": "0x10000000"
+ },
+ "tfm": {
+ "data": "nspe/tfm_s_ns_signed.bin",
+ "offset": "0x10080000"
+ }
},
"monitors": {
# FPU test on AN521 qemu not supported yet
@@ -262,7 +290,9 @@
"poweroff_timeout": 5,
"platforms": {"arm/musca_b1": ""},
"binaries": {
- "firmware": "spe/bin/tfm.hex",
+ "test_binary": {
+ "data": "spe/bin/tfm.hex" # firmware
+ }
},
"monitors": {
'no_reg_tests': no_reg_tests_monitors,
@@ -281,7 +311,9 @@
"poweroff_timeout": 5,
"platforms": {"stm/stm32l562e_dk": ""},
"binaries": {
- "tarball": "spe/api_ns/bin/stm32l562e-dk-tfm.tar.bz2",
+ "tarball": {
+ "data": "spe/api_ns/bin/stm32l562e-dk-tfm.tar.bz2"
+ }
},
"monitors": {
'reg_tests': reg_tests_monitors,
@@ -299,7 +331,9 @@
"poweroff_timeout": 2,
"platforms": {"stm/b_u585i_iot02a": ""},
"binaries": {
- "tarball": "spe/api_ns/bin/b_u585i_iot02a-tfm.tar.bz2",
+ "tarball": {
+ "data": "spe/api_ns/bin/b_u585i_iot02a-tfm.tar.bz2"
+ }
},
"monitors": {
'reg_tests': reg_tests_monitors,
@@ -317,7 +351,9 @@
"poweroff_timeout": 2,
"platforms": {"stm/stm32h573i_dk": ""},
"binaries": {
- "tarball": "spe/api_ns/bin/stm32h573i_dk-tfm.tar.bz2",
+ "tarball": {
+ "data": "spe/api_ns/bin/stm32h573i_dk-tfm.tar.bz2"
+ }
},
"monitors": {
'reg_tests': reg_tests_monitors,
@@ -335,7 +371,9 @@
"poweroff_timeout": 5,
"platforms": {"nxp/lpcxpresso55s69": ""},
"binaries": {
- "tarball": "nspe/bin/lpcxpresso55s69-tfm.tar.bz2",
+ "tarball": {
+ "data": "nspe/bin/lpcxpresso55s69-tfm.tar.bz2"
+ }
},
"monitors": {
'no_reg_tests': no_reg_tests_monitors,
@@ -354,8 +392,12 @@
"poweroff_timeout": 5,
"platforms": {"cypress/psoc64": ""},
"binaries": {
- "spe": "spe/bin/tfm_s_signed.hex",
- "nspe": "nspe/tfm_ns_signed.hex",
+ "spe": {
+ "data": "spe/bin/tfm_s_signed.hex"
+ },
+ "nspe": {
+ "data": "nspe/tfm_ns_signed.hex"
+ }
},
"monitors": {
'reg_tests': reg_tests_monitors,