Support Profile Large in TF-M CI
TF-M adds Profile Large as a new feature in V1.3 Release.
It needs to be supported in TF-M CI.
Signed-off-by: Xinyu Zhang <xinyu.zhang@arm.com>
Change-Id: I53caeee59c8de9ee09531697521f5e050bd9d517
diff --git a/build_helper/build_helper_configs.py b/build_helper/build_helper_configs.py
index ea6e16e..923a50f 100755
--- a/build_helper/build_helper_configs.py
+++ b/build_helper/build_helper_configs.py
@@ -186,6 +186,7 @@
("musca_b1/secure_enclave", "*", "*", "*", "*", "*", "*", "*", "*", True, "*", "*"),
# PARTITION_PS could be OFF only for Profile S and M
("*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "", "OFF"),
+ ("*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "profile_large", "OFF"),
# PARTITION_PS should be OFF for Profile S
("*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "profile_small", "ON"),
# Proile M only support for PSA_API
@@ -193,6 +194,9 @@
# Profile M only support for Isolation Level 2
("*", "*", "*", "1", "*", "*", "*", "*", "*", "*", "profile_medium", "*"),
("*", "*", "*", "3", "*", "*", "*", "*", "*", "*", "profile_medium", "*"),
+ # Profile L only support for Isolation Level 3
+ ("*", "*", "*", "1", "*", "*", "*", "*", "*", "*", "profile_large", "*"),
+ ("*", "*", "*", "2", "*", "*", "*", "*", "*", "*", "profile_large", "*"),
# Profile S does not support PSA_API
("*", "*", True, "*", "*", "*", "*", "*", "*", "*", "profile_small", "*"),
# Profile S only supports Isolation Level 2
@@ -479,13 +483,18 @@
"with_otp": ["off"],
"with_bl2": [True],
"with_ns": [True],
- "profile": ["profile_small", "profile_medium"],
+ "profile": ["profile_small", "profile_medium", "profile_large"],
"partition_ps": ["ON", "OFF"],
},
"common_params": _common_tfm_builder_cfg,
"invalid": _common_tfm_invalid_configs + [
("mps2/an519", "toolchain_GNUARM.cmake", "*",
"*", "*", "*", "Minsizerel", "*", "*", "*", "*", "*"),
+ # Profile Large is only supported by AN521
+ ("mps2/an519", "*", "*",
+ "*", "*", "*", "*", "*", "*", "*", "profile_large", "*"),
+ ("musca_b1/sse_200", "*", "*",
+ "*", "*", "*", "*", "*", "*", "*", "profile_large", "*"),
]
}
@@ -713,13 +722,18 @@
"with_otp": ["off"],
"with_bl2": [True],
"with_ns": [True],
- "profile": ["profile_small", "profile_medium"],
+ "profile": ["profile_small", "profile_medium", "profile_large"],
"partition_ps": ["ON", "OFF"],
},
"common_params": _common_tfm_builder_cfg,
"invalid": _common_tfm_invalid_configs + [
("mps2/an519", "toolchain_GNUARM.cmake", "*",
"*", "*", "*", "Minsizerel", "*", "*", "*", "*", "*"),
+ # Profile Large is only supported by AN521
+ ("mps2/an519", "*", "*",
+ "*", "*", "*", "*", "*", "*", "*", "profile_large", "*"),
+ ("musca_b1/sse_200", "*", "*",
+ "*", "*", "*", "*", "*", "*", "*", "profile_large", "*"),
]
}
diff --git a/jenkins/ci.jpl b/jenkins/ci.jpl
index 40711a3..e67eeae 100644
--- a/jenkins/ci.jpl
+++ b/jenkins/ci.jpl
@@ -42,12 +42,14 @@
["True", "True", "True", "3", "False", "OFF", "N.A", "CoreIPCTfmLevel3"],
["True", "True", "False", "1", "False", "OFF", "profile_small", "DefaultProfileS"],
["True", "True", "True", "2", "False", "OFF", "profile_medium", "DefaultProfileM"],
+ ["True", "True", "True", "3", "False", "OFF", "profile_large", "DefaultProfileL"],
["True", "True", "False", "1", "True", "OFF", "N.A", "Regression"],
["True", "True", "True", "1", "True", "OFF", "N.A", "RegressionIPC"],
["True", "True", "True", "2", "True", "OFF", "N.A", "RegressionIPCTfmLevel2"],
["True", "True", "True", "3", "True", "OFF", "N.A", "RegressionIPCTfmLevel3"],
["True", "True", "False", "1", "True", "OFF", "profile_small", "RegressionProfileS"],
["True", "True", "True", "2", "True", "OFF", "profile_medium", "RegressionProfileM"],
+ ["True", "True", "True", "3", "True", "OFF", "profile_large", "RegressionProfileL"],
["True", "True", "False", "1", "False", "INTERNAL_TRUSTED_STORAGE", "N.A", "PsaApiTest (ITS)"],
["True", "True", "False", "1", "False", "PROTECTED_STORAGE", "N.A", "PsaApiTest (PS)"],
["True", "True", "False", "1", "False", "CRYPTO", "N.A", "PsaApiTest (Crypto)"],
@@ -75,6 +77,7 @@
"RegressionIPCTfmLevel2", "RegressionIPCTfmLevel3",
"DefaultProfileS", "RegressionProfileS",
"DefaultProfileM", "RegressionProfileM", "RegressionProfileM PSOFF",
+ "DefaultProfileL", "RegressionProfileL",
"PsaApiTest (Attest)", "PsaApiTestIPC (Attest)",
"PsaApiTestIPCTfmLevel2 (Attest)",
"PsaApiTest (Crypto)", "PsaApiTestIPC (Crypto)",
diff --git a/lava_helper/lava_helper_configs.py b/lava_helper/lava_helper_configs.py
index e41ef96..8826abe 100644
--- a/lava_helper/lava_helper_configs.py
+++ b/lava_helper/lava_helper_configs.py
@@ -112,6 +112,22 @@
} # Monitors
]
}, # DefaultProfileM
+ 'DefaultProfileL': {
+ "binaries": {
+ "firmware": "tfm_s_ns_signed.bin",
+ "bootloader": "bl2.bin"
+ },
+ "monitors": [
+ {
+ 'name': 'Secure_Test_Suites_Summary',
+ 'start': 'Non-Secure system',
+ 'end': r'starting\\.{3}',
+ 'pattern': r'Non-Secure system starting\\.{3}',
+ 'fixup': {"pass": "!", "fail": ""},
+ 'required': ["secure_image_initializing"]
+ } # Monitors
+ ]
+ }, # DefaultProfileL
'Regression': {
"binaries": {
@@ -273,6 +289,59 @@
}
] # Monitors
}, # RegressionProfileS
+ 'RegressionProfileL': {
+ "binaries": {
+ "firmware": "tfm_s_ns_signed.bin",
+ "bootloader": "bl2.bin"
+ },
+ "monitors": [
+ {
+ 'name': 'Secure_Test_Suites_Summary',
+ 'start': 'Secure test suites summary',
+ 'end': 'End of Secure test suites',
+ 'pattern': r"Test suite '(?P<"
+ r"test_case_id>[^\n]+)' has (.*) "
+ r"(?P<result>PASSED|FAILED)",
+ 'fixup': {"pass": "PASSED", "fail": "FAILED"},
+ 'required': [
+ ("psa_protected_storage_"
+ "s_interface_tests_tfm_sst_test_2xxx_"),
+ "sst_reliability_tests_tfm_sst_test_3xxx_",
+ "sst_rollback_protection_tests_tfm_sst_test_4xxx_",
+ ("psa_internal_trusted_storage_"
+ "s_interface_tests_tfm_its_test_2xxx_"),
+ "its_reliability_tests_tfm_its_test_3xxx_",
+ ("audit_"
+ "logging_secure_interface_test_tfm_audit_test_1xxx_"),
+ "crypto_secure_interface_tests_tfm_crypto_test_5xxx_",
+ ("initial_attestation_service_"
+ "secure_interface_tests_tfm_attest_test_1xxx_"),
+ ]
+ },
+ {
+ 'name': 'Non_Secure_Test_Suites_Summary',
+ 'start': 'Non-secure test suites summary',
+ 'end': r'End of Non-secure test suites',
+ 'pattern': r"Test suite '(?P<"
+ r"test_case_id>[^\n]+)' has (.*) "
+ r"(?P<result>PASSED|FAILED)",
+ 'fixup': {"pass": "PASSED", "fail": "FAILED"},
+ 'required': [
+ ("psa_protected_storage"
+ "_ns_interface_tests_tfm_sst_test_1xxx_"),
+ ("psa_internal_trusted_storage"
+ "_ns_interface_tests_tfm_its_test_1xxx_"),
+ ("auditlog_"
+ "non_secure_interface_test_tfm_audit_test_1xxx_"),
+ ("crypto_"
+ "non_secure_interface_test_tfm_crypto_test_6xxx_"),
+ ("initial_attestation_service_"
+ "non_secure_interface_tests_tfm_attest_test_2xxx_"),
+ "core_non_secure_positive_tests_tfm_core_test_1xxx_"
+ ]
+ }
+ ] # Monitors
+ }, # RegressionProfileL
'RegressionIPC': {
"binaries": {
@@ -550,6 +619,22 @@
} # Monitors
]
}, # DefaultProfileM
+ 'DefaultProfileL': {
+ "binaries": {
+ "firmware": "bl2.axf",
+ "bootloader": "tfm_s_ns_signed.bin"
+ },
+ "monitors": [
+ {
+ 'name': 'Secure_Test_Suites_Summary',
+ 'start': 'Non-Secure system',
+ 'end': r'starting\\.{3}',
+ 'pattern': r'Non-Secure system starting\\.{3}',
+ 'fixup': {"pass": "!", "fail": ""},
+ 'required': ["secure_image_initializing"]
+ } # Monitors
+ ]
+ }, # DefaultProfileL
'Regression': {
"binaries": {
@@ -711,6 +796,59 @@
}
] # Monitors
}, # RegressionProfileS
+ 'RegressionProfileL': {
+ "binaries": {
+ "firmware": "bl2.axf",
+ "bootloader": "tfm_s_ns_signed.bin"
+ },
+ "monitors": [
+ {
+ 'name': 'Secure_Test_Suites_Summary',
+ 'start': 'Secure test suites summary',
+ 'end': 'End of Secure test suites',
+ 'pattern': r"Test suite '(?P<"
+ r"test_case_id>[^\n]+)' has (.*) "
+ r"(?P<result>PASSED|FAILED)",
+ 'fixup': {"pass": "PASSED", "fail": "FAILED"},
+ 'required': [
+ ("psa_protected_storage_"
+ "s_interface_tests_tfm_sst_test_2xxx_"),
+ "sst_reliability_tests_tfm_sst_test_3xxx_",
+ "sst_rollback_protection_tests_tfm_sst_test_4xxx_",
+ ("psa_internal_trusted_storage_"
+ "s_interface_tests_tfm_its_test_2xxx_"),
+ "its_reliability_tests_tfm_its_test_3xxx_",
+ ("audit_"
+ "logging_secure_interface_test_tfm_audit_test_1xxx_"),
+ "crypto_secure_interface_tests_tfm_crypto_test_5xxx_",
+ ("initial_attestation_service_"
+ "secure_interface_tests_tfm_attest_test_1xxx_"),
+ ]
+ },
+ {
+ 'name': 'Non_Secure_Test_Suites_Summary',
+ 'start': 'Non-secure test suites summary',
+ 'end': r'End of Non-secure test suites',
+ 'pattern': r"Test suite '(?P<"
+ r"test_case_id>[^\n]+)' has (.*) "
+ r"(?P<result>PASSED|FAILED)",
+ 'fixup': {"pass": "PASSED", "fail": "FAILED"},
+ 'required': [
+ ("psa_protected_storage"
+ "_ns_interface_tests_tfm_sst_test_1xxx_"),
+ ("psa_internal_trusted_storage"
+ "_ns_interface_tests_tfm_its_test_1xxx_"),
+ ("auditlog_"
+ "non_secure_interface_test_tfm_audit_test_1xxx_"),
+ ("crypto_"
+ "non_secure_interface_test_tfm_crypto_test_6xxx_"),
+ ("initial_attestation_service_"
+ "non_secure_interface_tests_tfm_attest_test_2xxx_"),
+ "core_non_secure_positive_tests_tfm_core_test_1xxx_"
+ ]
+ }
+ ] # Monitors
+ }, # RegressionProfileL
'RegressionIPC': {
"binaries": {
@@ -989,6 +1127,22 @@
} # Monitors
]
}, # DefaultProfileM
+ 'DefaultProfileL': {
+ "binaries": {
+ "firmware": "tfm_s.axf",
+ "bootloader": "tfm_ns.bin"
+ },
+ "monitors": [
+ {
+ 'name': 'Secure_Test_Suites_Summary',
+ 'start': 'Non-Secure system',
+ 'end': r'starting\\.{3}',
+ 'pattern': r'Non-Secure system starting\\.{3}',
+ 'fixup': {"pass": "!", "fail": ""},
+ 'required': ["secure_image_initializing"]
+ } # Monitors
+ ]
+ }, # DefaultProfileL
'Regression': {
"binaries": {
@@ -1149,6 +1303,59 @@
}
] # Monitors
}, # RegressionProfileS
+ 'RegressionProfileL': {
+ "binaries": {
+ "firmware": "tfm_s.axf",
+ "bootloader": "tfm_ns.bin"
+ },
+ "monitors": [
+ {
+ 'name': 'Secure_Test_Suites_Summary',
+ 'start': 'Secure test suites summary',
+ 'end': 'End of Secure test suites',
+ 'pattern': r"Test suite '(?P<"
+ r"test_case_id>[^\n]+)' has (.*) "
+ r"(?P<result>PASSED|FAILED)",
+ 'fixup': {"pass": "PASSED", "fail": "FAILED"},
+ 'required': [
+ ("psa_protected_storage_"
+ "s_interface_tests_tfm_sst_test_2xxx_"),
+ "sst_reliability_tests_tfm_sst_test_3xxx_",
+ "sst_rollback_protection_tests_tfm_sst_test_4xxx_",
+ ("psa_internal_trusted_storage_"
+ "s_interface_tests_tfm_its_test_2xxx_"),
+ "its_reliability_tests_tfm_its_test_3xxx_",
+ ("audit_"
+ "logging_secure_interface_test_tfm_audit_test_1xxx_"),
+ "crypto_secure_interface_tests_tfm_crypto_test_5xxx_",
+ ("initial_attestation_service_"
+ "secure_interface_tests_tfm_attest_test_1xxx_"),
+ ]
+ },
+ {
+ 'name': 'Non_Secure_Test_Suites_Summary',
+ 'start': 'Non-secure test suites summary',
+ 'end': r'End of Non-secure test suites',
+ 'pattern': r"Test suite '(?P<"
+ r"test_case_id>[^\n]+)' has (.*) "
+ r"(?P<result>PASSED|FAILED)",
+ 'fixup': {"pass": "PASSED", "fail": "FAILED"},
+ 'required': [
+ ("psa_protected_storage"
+ "_ns_interface_tests_tfm_sst_test_1xxx_"),
+ ("psa_internal_trusted_storage"
+ "_ns_interface_tests_tfm_its_test_1xxx_"),
+ ("auditlog_"
+ "non_secure_interface_test_tfm_audit_test_1xxx_"),
+ ("crypto_"
+ "non_secure_interface_test_tfm_crypto_test_6xxx_"),
+ ("initial_attestation_service_"
+ "non_secure_interface_tests_tfm_attest_test_2xxx_"),
+ "core_non_secure_positive_tests_tfm_core_test_1xxx_"
+ ]
+ }
+ ] # Monitors
+ }, # RegressionProfileL
'RegressionIPC': {
"binaries": {
diff --git a/lava_helper/lava_wait_jobs.py b/lava_helper/lava_wait_jobs.py
index e0fb12c..b1937e6 100755
--- a/lava_helper/lava_wait_jobs.py
+++ b/lava_helper/lava_wait_jobs.py
@@ -41,6 +41,7 @@
"RegressionIPCTfmLevel2", "RegressionIPCTfmLevel3",
"DefaultProfileS", "RegressionProfileS",
"DefaultProfileM", "RegressionProfileM", "RegressionProfileM PSOFF",
+ "DefaultProfileL", "RegressionProfileL",
"PsaApiTest (Attest)", "PsaApiTestIPC (Attest)",
"PsaApiTestIPCTfmLevel2 (Attest)",
"PsaApiTest (Crypto)", "PsaApiTestIPC (Crypto)",
diff --git a/tfm_ci_pylib/tfm_build_manager.py b/tfm_ci_pylib/tfm_build_manager.py
index ecc7881..a1c7c45 100644
--- a/tfm_ci_pylib/tfm_build_manager.py
+++ b/tfm_ci_pylib/tfm_build_manager.py
@@ -52,7 +52,8 @@
"INTERNAL_TRUSTED_STORAGE": "ITS"}
mapProfile = {"profile_small": "SMALL",
- "profile_medium": "MEDIUM"}
+ "profile_medium": "MEDIUM",
+ "profile_large": "LARGE"}
class TFM_Build_Manager(structuredTask):