Corstone1000 FVP integration in OpenCI
FVP boots and runs regression test.
Protected storage regression is disabled as few test
cases are failing in the platform.
Signed-off-by: Satish Kumar <satish.kumar01@arm.com>
Change-Id: I74d62cb06415e1b1fe905aa4cfd41b0fabb55de0
diff --git a/build_helper/build_helper_configs.py b/build_helper/build_helper_configs.py
index 12db50c..d9282b7 100755
--- a/build_helper/build_helper_configs.py
+++ b/build_helper/build_helper_configs.py
@@ -89,6 +89,18 @@
"-fill 0xFF 0xA020000 0xA200000 "
"-o %(_tbm_build_dir_)s/bin/"
"tfm.hex -Intel")],
+ "arm/corstone1000": [("cat "
+ "%(_tbm_build_dir_)s/bin/"
+ "bl2_signed.bin "
+ "%(_tbm_build_dir_)s/bin/"
+ "bl2_signed.bin "
+ "%(_tbm_build_dir_)s/bin/"
+ "tfm_s_signed.bin "
+ "%(_tbm_build_dir_)s/bin/"
+ "tfm_s_signed.bin "
+ "> "
+ "%(_tbm_build_dir_)s/bin/"
+ "flash.bin")],
"arm/musca_s1": [("srec_cat "
"%(_tbm_build_dir_)s/bin/"
"bl2.bin "
@@ -692,7 +704,7 @@
"compiler": ["GCC_7_3_1"],
"lib_model": [False],
"isolation_level": ["1"],
- "test_regression": [False],
+ "test_regression": [True],
"test_psa_api": ["OFF"],
"cmake_build_type": ["Debug"],
"with_bl2": [True],
diff --git a/jenkins/ci.jpl b/jenkins/ci.jpl
index e1ed300..ec34b99 100644
--- a/jenkins/ci.jpl
+++ b/jenkins/ci.jpl
@@ -252,6 +252,11 @@
env.JOB_NAME.equals("tf-m-build-and-test")) {
print("LAVA is not needed for ${build_url}")
}
+ // LAVA tests on Corstone1000 FPGA config is not supported
+ else if (params_collection["TFM_PLATFORM"].contains("corstone1000") && \
+ params_collection["EXTRA_PARAMS"].contains("FPGA")) {
+ print("LAVA is not needed for ${build_url}")
+ }
// Submit LAVA tests
else {
submit_lava_tests(config, results, build_res, params, params_collection)
diff --git a/lava_helper/jinja2_templates/fvp_corstone1000.jinja2 b/lava_helper/jinja2_templates/fvp_corstone1000.jinja2
new file mode 100644
index 0000000..3eebf42
--- /dev/null
+++ b/lava_helper/jinja2_templates/fvp_corstone1000.jinja2
@@ -0,0 +1,77 @@
+{#------------------------------------------------------------------------------
+# Copyright (c) 2018-2022, 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:
+ app:
+ url: {{ application_url }}
+ data:
+ url: {{ data_url }}
+- boot:
+ failure_retry: 3
+ namespace: docker
+ method: fvp
+ docker:
+ name: {{ docker_prefix }}/fvp:fvp_corstone_1000_11.17_23
+ local: true
+ prompts:
+ - 'root@lava '
+ image: /opt/model/FVP_Corstone_1000/models/Linux64_GCC-9.3/FVP_Corstone-1000
+ timeout:
+ minutes: 5
+ console_string: 'secenc_terminal: Listening for serial connection on port (?P<PORT>\d+)'
+ license_variable: '{{ license_variable }}'
+ use_telnet: True
+ arguments:
+ - "-C se.trustedBootROMloader.fname=\"{APP}\""
+ - "-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"
+ - "-C se.secenc_terminal.start_telnet=1"
+ - "-C extsys0.extsys_terminal.start_telnet=0"
+ - "-C host.host_terminal_0.start_telnet=1"
+ - "-C host.host_terminal_1.start_telnet=1"
+ prompts:
+ - '(.*)'
+
+- test:
+ namespace: target
+ monitors:
+ {%- for monitor in test.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 %}
+
+{% endblock %}
diff --git a/lava_helper/lava_helper_configs.py b/lava_helper/lava_helper_configs.py
index 6d51509..d1de754 100644
--- a/lava_helper/lava_helper_configs.py
+++ b/lava_helper/lava_helper_configs.py
@@ -59,10 +59,10 @@
}
]
-# LAVA test-monitor definition for configs with regression tests.
+# LAVA test-monitor definitions for configs with regression tests.
# Results of each test case is parsed separately, capturing test case id.
# Works across any test suites enabled.
-monitors_reg_tests = [
+monitors_ns_reg_tests = [
{
'name': 'regression_suite',
'start': 'Execute test suites',
@@ -71,6 +71,15 @@
'fixup': {"pass": "PASSED", "fail": "FAILED", "skip": "SKIPPED"},
},
] # Monitors
+monitors_s_reg_tests = [
+ {
+ 'name': 'regression_suite',
+ 'start': 'Execute test suites',
+ 'end': 'End of Secure test suites',
+ 'pattern': r"TEST: (?P<test_case_id>.+?) - (?P<result>(PASSED|FAILED|SKIPPED))",
+ 'fixup': {"pass": "PASSED", "fail": "FAILED", "skip": "SKIPPED"},
+ },
+] # Monitors
# LAVA test-monitor definition for PSA API testsuites, testcases identified
# by "UT" value in output (testcase identifier).
@@ -149,25 +158,25 @@
"monitors": monitors_no_reg_tests
}, # DefaultProfileL
'Regression': {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
}, # Regression
'RegressionProfileM': {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
}, # RegressionProfileM
'RegressionProfileS': {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
}, # RegressionProfileS
'RegressionProfileL': {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
}, # RegressionProfileL
'RegressionIPC': {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
}, # Regression
'RegressionIPCTfmLevel2': {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
}, # Regression
'RegressionIPCTfmLevel3': {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
}, # Regression
'CoreIPC': {
"monitors": monitors_no_reg_tests
@@ -242,16 +251,16 @@
"monitors": monitors_no_reg_tests
}, # Default
'Regression': {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
}, # Regression
'RegressionIPC': {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
}, # Regression
'RegressionIPCTfmLevel2': {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
}, # Regression
'RegressionIPCTfmLevel3': {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
}, # Regression
'CoreIPC': {
"monitors": monitors_no_reg_tests
@@ -266,6 +275,32 @@
} # Tests
}
+# FVP with BL1 and BL2 bootloader
+fvp_corstone1000 = {
+ "templ": "fvp_corstone1000.jinja2",
+ "job_name": "fvp_corstone1000",
+ "device_type": "fvp",
+ "job_timeout": 15,
+ "action_timeout": 10,
+ "monitor_timeout": 15,
+ "poweroff_timeout": 1,
+ "platforms": {"corstone1000": ""},
+ "compilers": ["GCC"],
+ "build_types": ["Debug"],
+ "boot_types": ["BL2"],
+ "data_bin_offset": "0x68100000",
+ "binaries": {
+ "application": "bl1.bin",
+ "data": "flash.bin"
+ },
+ "tests": {
+ 'RegressionIPC': {
+ "monitors": monitors_s_reg_tests
+ }, # Regression
+
+ } # Tests
+}
+
# FVP with BL2 bootloader
# application: --application cpu0=bl2.axf
# data: --data cpu0=tfm_s_ns_signed.bin@0x10080000
@@ -300,25 +335,25 @@
"monitors": monitors_no_reg_tests
}, # DefaultProfileL
'Regression': {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
}, # Regression
'RegressionProfileM': {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
}, # RegressionProfileM
'RegressionProfileS': {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
}, # RegressionProfileS
'RegressionProfileL': {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
}, # RegressionProfileL
'RegressionIPC': {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
}, # Regression
'RegressionIPCTfmLevel2': {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
}, # Regression
'RegressionIPCTfmLevel3': {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
}, # Regression
'CoreIPC': {
"monitors": monitors_no_reg_tests
@@ -413,25 +448,25 @@
"monitors": monitors_no_reg_tests
}, # DefaultProfileL
'Regression': {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
}, # Regression
'RegressionProfileM': {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
}, # RegressionProfileM
'RegressionProfileS': {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
}, # RegressionProfileS
'RegressionProfileL': {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
}, # RegressionProfileL
'RegressionIPC': {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
}, # RegressionIPC
'RegressionIPCTfmLevel2': {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
}, # RegressionIPCTfmLevel2
'RegressionIPCTfmLevel3': {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
}, # RegressionIPCTfmLevel3
'CoreIPC': {
"monitors": monitors_no_reg_tests
@@ -486,19 +521,19 @@
"monitors": monitors_no_reg_tests
}, # DefaultProfileM
'Regression': {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
}, # Regression
'RegressionProfileM': {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
}, # RegressionProfileM
'RegressionProfileS': {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
}, # RegressionProfileS
'RegressionIPC': {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
}, # Regression
'RegressionIPCTfmLevel2': {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
}, # Regression
'CoreIPC': {
"monitors": monitors_no_reg_tests
@@ -542,19 +577,19 @@
"monitors": monitors_no_reg_tests
}, # DefaultProfileM
'Regression': {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
}, # Regression
'RegressionProfileM': {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
}, # RegressionProfileM
'RegressionProfileS': {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
}, # RegressionProfileS
'RegressionIPC': {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
}, # RegressionIPC
'RegressionIPCTfmLevel2': {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
}, # RegressionIPCTfmLevel2
'CoreIPC': {
"monitors": monitors_no_reg_tests
@@ -584,19 +619,19 @@
},
"tests": {
'Regression': {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
}, # Regression
'RegressionProfileS': {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
}, # RegressionProfileS
'RegressionIPC': {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
}, # Regression
'RegressionIPCTfmLevel2': {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
}, # Regression
'RegressionIPCTfmLevel3': {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
}, # Regression
}
}
@@ -640,22 +675,22 @@
"monitors": monitors_no_reg_tests
},
"Regression": {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
},
"RegressionIPC": {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
},
"RegressionIPCTfmLevel2": {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
},
"RegressionIPCTfmLevel3": {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
},
"RegressionProfileM": {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
},
"RegressionProfileS": {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
},
},
}
@@ -678,16 +713,16 @@
},
"tests": {
"Regression": {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
},
"RegressionIPC": {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
},
"RegressionIPCTfmLevel2": {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
},
"RegressionIPCTfmLevel3": {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
},
},
}
@@ -713,7 +748,7 @@
"monitors": monitors_no_reg_tests
},
"RegressionProfileM": {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
},
}
}
@@ -737,16 +772,16 @@
},
"tests": {
"Regression": {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
},
"RegressionIPC": {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
},
"RegressionIPCTfmLevel2": {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
},
"RegressionIPCTfmLevel3": {
- "monitors": monitors_reg_tests
+ "monitors": monitors_ns_reg_tests
},
},
}
@@ -755,6 +790,7 @@
lava_gen_config_map = {
"mps2_an521_bl2": tfm_mps2_sse_200,
"fvp_mps3_an552_bl2": fvp_mps3_an552_bl2,
+ "fvp_corstone1000": fvp_corstone1000,
"fvp_mps2_an521_bl2": fvp_mps2_an521_bl2,
"fvp_mps2_an521_nobl2": fvp_mps2_an521_nobl2,
"fvp_mps2_an519_bl2": fvp_mps2_an519_bl2,