CS315: Enable Regression tests for Corstone-315
Signed-off-by: Gergely Korcsák <gergely.korcsak@arm.com>
Change-Id: Ied1a769cbb27a00c751df11e37fd45c0df0f8247
diff --git a/build_helper/build_helper_configs.py b/build_helper/build_helper_configs.py
index 6d25d40..b29b2c2 100755
--- a/build_helper/build_helper_configs.py
+++ b/build_helper/build_helper_configs.py
@@ -880,7 +880,7 @@
"tfm_platform": ["arm/mps4/corstone315"],
"compiler": ["GCC_10_3", "ARMCLANG_6_21"],
"isolation_level": ["1"],
- "test_regression": ["OFF"],
+ "test_regression": ["OFF", "RegBL2, RegS, RegNS"],
"test_psa_api": ["OFF"],
"cmake_build_type": ["Debug", "Release"],
"with_bl2": [True],
diff --git a/lava_helper/jinja2_templates/fvp_mps4.jinja2 b/lava_helper/jinja2_templates/fvp_mps4.jinja2
new file mode 100644
index 0000000..c9a026d
--- /dev/null
+++ b/lava_helper/jinja2_templates/fvp_mps4.jinja2
@@ -0,0 +1,103 @@
+{#------------------------------------------------------------------------------
+# Copyright (c) 2024, Arm Limited and Contributors. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+#-----------------------------------------------------------------------------#}
+{% extends 'jinja2_templates/base.jinja2' %}
+{% block metadata %}
+{{ super() }}
+{% endblock %}
+{% block base %}
+{{ super() }}
+{% endblock %}
+{% block actions %}
+context:
+ kernel_start_message: ''
+
+actions:
+- deploy:
+ namespace: docker
+ to: fvp
+ images:
+{% for name, img in binaries.items() %}
+ {{ name }}:
+ url: {{ data_url_prefix }}/{{ img.data }}
+{% endfor %}
+{%- if enable_code_coverage %}
+ cc:
+ url: {{ coverage_trace_plugin }}
+{%- endif %}
+- boot:
+ failure_retry: 3
+ namespace: docker
+ method: fvp
+ docker:
+ name: {{ docker_prefix }}/fvp:fvp_corstone_sse-315_11.24_22_linux64
+ local: true
+ prompts:
+ - 'root@lava '
+ image: /opt/model/FVP_Corstone_SSE-315/models/Linux64_GCC-9.3/FVP_Corstone_SSE-315
+ timeout:
+ minutes: 5
+ console_string: 'telnetterminal0: Listening for serial connection on port (?P<PORT>\d+)'
+ license_variable: '{{ license_variable }}'
+ use_telnet: False
+ arguments:
+ - "--simlimit 900"
+{% for name, img in binaries.items() %}
+ - "--data {{ '{' ~ name.upper() ~ '}' }}@{{ img.offset }}"
+{% endfor %}
+ - "--parameter mps4_board.subsystem.cpu0.semihosting-enable=0"
+ - "--parameter mps4_board.DISABLE_GATING=0"
+ - "--parameter mps4_board.telnetterminal0.start_telnet=1"
+ - "--parameter mps4_board.telnetterminal1.start_telnet=1"
+ - "--parameter mps4_board.telnetterminal2.start_telnet=1"
+ - "--parameter mps4_board.telnetterminal0.quiet=0"
+ - "--parameter mps4_board.telnetterminal1.quiet=0"
+ - "--parameter mps4_board.telnetterminal2.quiet=0"
+ - "--parameter mps4_board.uart0.shutdown_on_eot=1"
+ - "--parameter 'mps4_board.uart0.out_file=-'"
+ - "--parameter mps4_board.visualisation.disable-visualisation=1"
+{%- if enable_code_coverage %}
+ - "--plugin {CC}"
+ - "--parameter mps4_board.uart0.shutdown_tag=\x04"
+ - "--cpulimit 240"
+{%- endif %}
+
+ prompts:
+ - '(.*)'
+
+- test:
+ namespace: target
+ monitors:
+ {%- for monitor in monitors %}
+ - name: "{{monitor.name}}"
+ start: "{{monitor.start}}"
+ end: "{{monitor.end}}"
+ pattern: "{{monitor.pattern}}"
+ fixupdict:
+ '{{monitor.fixup.pass}}': pass
+ '{{monitor.fixup.fail}}': fail
+ {%- if monitor.fixup.skip %}
+ '{{monitor.fixup.skip}}': skip
+ {%- endif %}
+ {%- endfor %}
+
+{%- if enable_code_coverage %}
+- test:
+ namespace: target
+ interactive:
+ - name: fvp_stopped
+ prompts: ['/OSCI/SystemC: Simulation stopped by user.']
+ script:
+ - name: fvp_stopped_1
+ command:
+ - name: fvp_trace_end
+ prompts: ['Trace path: FVP_Corstone_SSE-315.cpu1']
+ script:
+ - name: fvp_trace_end_1
+ command:
+{%- endif %}
+
+{% endblock %}
diff --git a/lava_helper/lava_helper_configs.py b/lava_helper/lava_helper_configs.py
index 3bc6ab3..2949c81 100644
--- a/lava_helper/lava_helper_configs.py
+++ b/lava_helper/lava_helper_configs.py
@@ -147,6 +147,44 @@
}
}
+# FVP with BL1 and BL2 bootloader for Corstone315
+fvp_mps4_cs315_bl1_bl2 = {
+ "templ": "fvp_mps4.jinja2",
+ "job_name": "fvp_mps4_cs315_bl1_bl2",
+ "device_type": "fvp",
+ "job_timeout": 15,
+ "action_timeout": 10,
+ "monitor_timeout": 15,
+ "poweroff_timeout": 1,
+ "platforms": {"arm/mps4/corstone315": ""},
+ "binaries": {
+ "bl1": {
+ "data": "spe/bin/bl1_1.bin",
+ "offset": "0x11000000",
+ },
+ "bl2": {
+ "data": "spe/bin/bl2_signed.bin",
+ "offset": "0x12031400",
+ },
+ "cm_prov": {
+ "data": "spe/bin/cm_provisioning_bundle.bin",
+ "offset": "0x12024000",
+ },
+ "dm_prov": {
+ "data": "spe/bin/dm_provisioning_bundle.bin",
+ "offset": "0x1202aa00",
+ },
+ "tfm_s_ns_img": {
+ "data": "nspe/tfm_s_ns_signed.bin",
+ "offset": "0x38000000",
+ }
+ },
+ "monitors": {
+ 'no_reg_tests': no_reg_tests_monitors,
+ 'reg_tests': reg_tests_monitors,
+ }
+}
+
# FVP with BL1 and BL2 bootloader for Corstone1000
fvp_corstone1000 = {
"templ": "fvp_corstone1000.jinja2",
@@ -411,6 +449,7 @@
"fvp_mps3_cs300_bl2": fvp_mps3_cs300_bl2,
"fvp_mps2_an521_bl2": fvp_mps2_an521_bl2,
"fvp_mps2_an519_bl2": fvp_mps2_an519_bl2,
+ "fvp_mps4_cs315_bl1_bl2": fvp_mps4_cs315_bl1_bl2,
"fvp_corstone1000": fvp_corstone1000,
"fvp_rse_tc": fvp_rse_tc,
"qemu_mps2_bl2": qemu_mps2_bl2,