TF-M CI: Support Profile M

TF-M has added Profile M as a new feature.
CI needs to support Profile M.

Change-Id: I6dc7f42cca5797a7999939cf3a02f39709ca8b3f
Signed-off-by: Xinyu Zhang <xinyu.zhang@arm.com>
diff --git a/build_helper/build_helper_configs.py b/build_helper/build_helper_configs.py
index 2324168..6181d86 100755
--- a/build_helper/build_helper_configs.py
+++ b/build_helper/build_helper_configs.py
@@ -40,7 +40,8 @@
                    "with_otp",
                    "with_bl2",
                    "with_ns",
-                   "profile"],
+                   "profile",
+                   "partition_ps"],
 
     # Keys for the templace will come from the combinations of parameters
     # provided in the seed dictionary.
@@ -61,6 +62,7 @@
         "-DPSA_ARCH_TESTS_PATH=%(codebase_root_dir)s/../psa-arch-tests " + \
         "-DMCUBOOT_PATH=%(codebase_root_dir)s/../mcuboot " + \
         "-DTFM_PROFILE=%(profile)s " + \
+        "-DTFM_PARTITION_PS=%(partition_ps)s " + \
         "%(codebase_root_dir)s",
 
     # A small subset of  string substitution params is allowed in commands.
@@ -134,22 +136,43 @@
 
 # List of all build configs that are impossible under all circumstances
 _common_tfm_invalid_configs = [
-    ("*", "*", False, "2", "*", "*", "*", "*", "*", "*", "*"), # LVL2 requires PSA api
-    ("*", "*", "*", "*", True, "*", "*", "*", "*", False, "*"), # Regression requires NS
-    ("*", "*", "*", "*", True, "IPC", "*", "*", "*", "*", "*"), # No PSA_ACK with regression
-    ("*", "*", "*", "*", True, "CRYPTO", "*", "*", "*", "*", "*"), # No PSA_ACK with regression
-    ("*", "*", "*", "*", True, "PROTECTED_STORAGE", "*", "*", "*", "*", "*"), # No PSA_ACK with regression
-    ("*", "*", "*", "*", True, "INITIAL_ATTESTATION", "*", "*", "*", "*", "*"), # No PSA_ACK with regression
-    ("*", "*", "*", "*", True, "INTERNAL_TRUSTED_STORAGE", "*", "*", "*", "*", "*"), # No PSA_ACK with regression
-    ("*", "*", "*", "*", "*", "IPC", "*", "*", "*", False, "*"), # PSA_ACK requires NS
-    ("*", "*", "*", "*", "*", "CRYPTO", "*", "*", "*", False, "*"), # PSA_ACK requires NS
-    ("*", "*", "*", "*", "*", "PROTECTED_STORAGE", "*", "*", "*", False, "*"), # PSA_ACK requires NS
-    ("*", "*", "*", "*", "*", "INITIAL_ATTESTATION", "*", "*", "*", False, "*"), # PSA_ACK requires NS
-    ("*", "*", "*", "*", "*", "INTERNAL_TRUSTED_STORAGE", "*", "*", "*", False, "*"), # PSA_ACK requires NS
-    ("musca_a", "*", "*", "*", "*", "*", "*",  "*", False, "*", "*"), # Musca a requires BL2
-    ("musca_b1", "*", "*", "*", "*", "*", "*",  "*", False, "*", "*"), # Musca b1 requires BL2
-    ("musca_s1", "*", "*", "*", "*", "*", "*",  "*", False, "*", "*"), # Musca s1 requires BL2
-    ("cypress/psoc64", "*", "*", "*", "*", "*", "*",  "*", True, "*", "*"), # psoc64 cannot use BL2
+    # LVL2 requires PSA api
+    ("*", "*", False, "2", "*", "*", "*", "*", "*", "*", "*", "*"),
+    # Regression requires NS
+    ("*", "*", "*", "*", True, "*", "*", "*", "*", False, "*", "*"),
+    # No PSA_ACK with regression
+    ("*", "*", "*", "*", True, "IPC", "*", "*", "*", "*", "*", "*"),
+    ("*", "*", "*", "*", True, "CRYPTO", "*", "*", "*", "*", "*", "*"),
+    ("*", "*", "*", "*", True, "PROTECTED_STORAGE", "*", "*", "*", "*", "*", "*"),
+    ("*", "*", "*", "*", True, "INITIAL_ATTESTATION", "*", "*", "*", "*", "*", "*"),
+    ("*", "*", "*", "*", True, "INTERNAL_TRUSTED_STORAGE", "*", "*", "*", "*", "*", "*"),
+    # PSA_ACK requires NS
+    ("*", "*", "*", "*", "*", "IPC", "*", "*", "*", False, "*", "*"),
+    ("*", "*", "*", "*", "*", "CRYPTO", "*", "*", "*", False, "*", "*"),
+    ("*", "*", "*", "*", "*", "PROTECTED_STORAGE", "*", "*", "*", False, "*", "*"),
+    ("*", "*", "*", "*", "*", "INITIAL_ATTESTATION", "*", "*", "*", False, "*", "*"),
+    ("*", "*", "*", "*", "*", "INTERNAL_TRUSTED_STORAGE", "*", "*", "*", False, "*", "*"),
+    # Musca requires BL2
+    ("musca_a", "*", "*", "*", "*", "*", "*",  "*", False, "*", "*", "*"),
+    ("musca_b1", "*", "*", "*", "*", "*", "*",  "*", False, "*", "*", "*"),
+    ("musca_s1", "*", "*", "*", "*", "*", "*",  "*", False, "*", "*", "*"),
+    # psoc64 cannot use BL2
+    ("cypress/psoc64", "*", "*", "*", "*", "*", "*",  "*", True, "*", "*", "*"),
+    # Musca b1 does not support Profile S
+    ("musca_b1", "*", "*", "*", "*", "*", "*",  "*", "*", "*", "profile_small", "*"),
+    # PARTITION_PS could only be OFF for Profile M
+    ("*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "", "OFF"),
+    ("*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "profile_small", "OFF"),
+    # Proile M only support for PSA_API
+    ("*", "*", False, "*", "*", "*", "*", "*", "*", "*", "profile_medium", "*"),
+    # Profile M only support for Isolation Level 2
+    ("*", "*", "*", "1", "*", "*", "*",  "*", "*", "*", "profile_medium", "*"),
+    # Profile S does not support MUSCA_B1
+    ("musca_b1", "*", "*", "*", "*", "*", "*",  "*", "*", "*", "profile_small", "*"),
+    # Profile S does not support PSA_API
+    ("*", "*", True, "*", "*", "*", "*",  "*", "*", "*", "profile_small", "*"),
+    # Profile S only supports Isolation Level 2
+    ("*", "*", "*", "2", "*", "*", "*",  "*", "*", "*", "profile_small", "*"),
     ]
 
 # Configure build manager to build several combinations
@@ -166,6 +189,7 @@
                 "with_bl2":         [True, False],
                 "with_ns":          [True, False],
                 "profile":          [""],
+                "partition_ps":     ["ON"],
                 },
                 "common_params": _common_tfm_builder_cfg,
                 "invalid": _common_tfm_invalid_configs + []
@@ -184,6 +208,7 @@
                 "with_bl2":         [True, False],
                 "with_ns":          [True, False],
                 "profile":          [""],
+                "partition_ps":     ["ON"],
                 },
                 "common_params": _common_tfm_builder_cfg,
                 "invalid": _common_tfm_invalid_configs + []
@@ -202,6 +227,7 @@
                 "with_bl2":         [True, False],
                 "with_ns":          [True, False],
                 "profile":          [""],
+                "partition_ps":     ["ON"],
                 },
                 "common_params": _common_tfm_builder_cfg,
                 "invalid": _common_tfm_invalid_configs + []
@@ -223,6 +249,7 @@
                 "with_bl2":         [True],
                 "with_ns":          [True, False],
                 "profile":          [""],
+                "partition_ps":     ["ON"],
                 },
                 "common_params": _common_tfm_builder_cfg,
                 "invalid": _common_tfm_invalid_configs + []
@@ -241,6 +268,7 @@
                 "with_bl2":         [True],
                 "with_ns":          [True, False],
                 "profile":          [""],
+                "partition_ps":     ["ON"],
                 },
                 "common_params": _common_tfm_builder_cfg,
                 "invalid": _common_tfm_invalid_configs + []
@@ -262,6 +290,7 @@
                 "with_bl2":         [True],
                 "with_ns":          [True, False],
                 "profile":          [""],
+                "partition_ps":     ["ON"],
                 },
                 "common_params": _common_tfm_builder_cfg,
                 "invalid": _common_tfm_invalid_configs + []
@@ -280,6 +309,7 @@
                 "with_bl2":         [True],
                 "with_ns":          [True, False],
                 "profile":          [""],
+                "partition_ps":     ["ON"],
                 },
                 "common_params": _common_tfm_builder_cfg,
                 "invalid": _common_tfm_invalid_configs + []
@@ -298,6 +328,7 @@
                 "with_bl2":         [False],
                 "with_ns":          [True, False],
                 "profile":          [""],
+                "partition_ps":     ["ON"],
                 },
                 "common_params": _common_tfm_builder_cfg,
                 "invalid": _common_tfm_invalid_configs + []
@@ -316,6 +347,7 @@
                 "with_bl2":         [True, False],
                 "with_ns":          [True, False],
                 "profile":          [""],
+                "partition_ps":     ["ON"],
                 },
                 "common_params": _common_tfm_builder_cfg,
                 "invalid": _common_tfm_invalid_configs + []
@@ -334,6 +366,7 @@
                "with_bl2":         [True, False],
                "with_ns":          [True, False],
                "profile":          [""],
+               "partition_ps":     ["ON"],
                },
               "common_params": _common_tfm_builder_cfg,
               "invalid": _common_tfm_invalid_configs + []
@@ -355,13 +388,14 @@
                "with_bl2":         [True, False],
                "with_ns":          [True, False],
                "profile":          [""],
+               "partition_ps":     ["ON"],
                },
                "common_params": _common_tfm_builder_cfg,
                "invalid": _common_tfm_invalid_configs + [
                    ("cypress/psoc64", "*", "*", "*",
-                    "*", "*", "Debug",  "*", "*", "*", "*"),
+                    "*", "*", "Debug",  "*", "*", "*", "*", "*"),
                    ("cypress/psoc64", "*", "*", "*",
-                    "*", "*", "*",  "*", True, True, "*"),
+                    "*", "*", "*",  "*", True, True, "*", "*"),
                ]
                }
 
@@ -380,13 +414,14 @@
                "with_bl2":         [True, False],
                "with_ns":          [True, False],
                "profile":          [""],
+               "partition_ps":     ["ON"],
                },
                "common_params": _common_tfm_builder_cfg,
                "invalid": _common_tfm_invalid_configs + [
                    ("cypress/psoc64", "*", "*", "*",
-                    "*", "*", "Debug",  "*", "*", "*", "*"),
+                    "*", "*", "Debug",  "*", "*", "*", "*", "*"),
                    ("cypress/psoc64", "*", "*", "*",
-                    "*", "*", "*",  "*", True, True, "*"),
+                    "*", "*", "*",  "*", True, True, "*", "*"),
                ]
                }
 
@@ -404,6 +439,7 @@
                 "with_bl2":         [True, False],
                 "with_ns":          [True, False],
                 "profile":          [""],
+                "partition_ps":     ["ON"],
                 },
                 "common_params": _common_tfm_builder_cfg,
                 "invalid": _common_tfm_invalid_configs + []
@@ -423,32 +459,35 @@
                 "with_bl2":         [True, False],
                 "with_ns":          [True, False],
                 "profile":          [""],
+                "partition_ps":     ["ON"],
                 },
                 "common_params": _common_tfm_builder_cfg,
                 "invalid": _common_tfm_invalid_configs + [
                     ("mps2/an519", "toolchain_GNUARM.cmake", "*",
-                     "*", "*", "*", "Minsizerel", "*", "*", "*", "*"),
+                     "*", "*", "*", "Minsizerel", "*", "*", "*", "*", "*"),
                 ]
                 }
 
 config_tfm_profile = {"seed_params": {
-                "tfm_platform":     ["mps2/an519", "mps2/an521"],
+                "tfm_platform":     ["mps2/an519", "mps2/an521",
+                                     "musca_b1"],
                 "toolchain_file":   ["toolchain_ARMCLANG.cmake",
                                      "toolchain_GNUARM.cmake"],
-                "psa_api":          [False],
-                "isolation_level":  ["1"],
+                "psa_api":          [True, False],
+                "isolation_level":  ["1", "2"],
                 "test_regression":  [True, False],
                 "test_psa_api":     ["OFF"],
                 "cmake_build_type": ["Debug", "Release", "Minsizerel"],
                 "with_otp":         [False],
                 "with_bl2":         [True, False],
                 "with_ns":          [True, False],
-                "profile":          ["profile_small"],
+                "profile":          ["profile_small", "profile_medium"],
+                "partition_ps":     ["ON", "OFF"],
                 },
                 "common_params": _common_tfm_builder_cfg,
                 "invalid": _common_tfm_invalid_configs + [
                     ("mps2/an519", "toolchain_GNUARM.cmake", "*",
-                     "*", "*", "*", "Minsizerel", "*", "*", "*", "*"),
+                     "*", "*", "*", "Minsizerel", "*", "*", "*", "*", "*"),
                 ]
                 }
 
@@ -465,6 +504,7 @@
                 "with_bl2":         [True],
                 "with_ns":          [True, False],
                 "profile":          [""],
+                "partition_ps":     ["ON"],
                 },
                 "common_params": _common_tfm_builder_cfg,
                 "invalid": _common_tfm_invalid_configs + []
@@ -483,6 +523,7 @@
                 "with_bl2":         [True],
                 "with_ns":          [True, False],
                 "profile":          [""],
+                "partition_ps":     ["ON"],
                 },
                 "common_params": _common_tfm_builder_cfg,
                 "invalid": _common_tfm_invalid_configs + []
@@ -501,6 +542,7 @@
                 "with_bl2":         [True],
                 "with_ns":          [True, False],
                 "profile":          [""],
+                "partition_ps":     ["ON"],
                 },
                 "common_params": _common_tfm_builder_cfg,
                 "invalid": _common_tfm_invalid_configs + []
@@ -519,6 +561,7 @@
                 "with_bl2":         [True],
                 "with_ns":          [True, False],
                 "profile":          [""],
+                "partition_ps":     ["ON"],
                 },
                 "common_params": _common_tfm_builder_cfg,
                 "invalid": _common_tfm_invalid_configs + []
@@ -539,11 +582,12 @@
                 "with_bl2":         [True, False],
                 "with_ns":          [True, False],
                 "profile":          [""],
+                "partition_ps":     ["ON"],
                 },
                 "common_params": _common_tfm_builder_cfg,
                 "invalid": _common_tfm_invalid_configs + [
                     ("mps2/an519", "toolchain_GNUARM.cmake", "*",
-                     "*", "*", "*", "Minsizerel", "*", "*", "*", "*"),
+                     "*", "*", "*", "Minsizerel", "*", "*", "*", "*", "*"),
                 ]
                 }
 
@@ -566,11 +610,12 @@
                 "with_bl2":         [True],
                 "with_ns":          [True, False],
                 "profile":          [""],
+                "partition_ps":     ["ON"],
                 },
                 "common_params": _common_tfm_builder_cfg,
                 "invalid": _common_tfm_invalid_configs + [
                     ("mps2/an519", "toolchain_GNUARM.cmake", "*",
-                     "*", "*", "*", "Minsizerel", "*", "*", "*", "*"),
+                     "*", "*", "*", "Minsizerel", "*", "*", "*", "*", "*"),
                 ]
                 }
 
@@ -588,11 +633,12 @@
                 "with_bl2":         [True],
                 "with_ns":          [True, False],
                 "profile":          [""],
+                "partition_ps":     ["ON"],
                 },
                 "common_params": _common_tfm_builder_cfg,
                 "invalid": _common_tfm_invalid_configs + [
                     ("mps2/an519", "toolchain_GNUARM.cmake", "*",
-                     "*", "*", "*", "Minsizerel", "*", "*", "*", "*"),
+                     "*", "*", "*", "Minsizerel", "*", "*", "*", "*", "*"),
                 ]
                 }
 
@@ -612,36 +658,39 @@
                 "with_bl2":         [True, False],
                 "with_ns":          [True, False],
                 "profile":          [""],
+                "partition_ps":     ["ON"],
                 },
                 "common_params": _common_tfm_builder_cfg,
                 "invalid": _common_tfm_invalid_configs + [
                     ("mps2/an519", "toolchain_GNUARM.cmake", "*",
-                     "*", "*", "*", "Minsizerel", "*", "*", "*", "*"),
+                     "*", "*", "*", "Minsizerel", "*", "*", "*", "*", "*"),
                     ("cypress/psoc64", "*", "*", "*",
-                     "*", "*", "Debug",  "*", "*", "*", "*"),
+                     "*", "*", "Debug",  "*", "*", "*", "*", "*"),
                     ("cypress/psoc64", "*", "*", "*",
-                     "*", "*", "*",  "*", True, True, "*"),
+                     "*", "*", "*",  "*", True, True, "*", "*"),
                 ]
                 }
 
 config_nightly_profile = {"seed_params": {
-                "tfm_platform":     ["mps2/an519", "mps2/an521"],
+                "tfm_platform":     ["mps2/an519", "mps2/an521",
+                                     "musca_b1"],
                 "toolchain_file":   ["toolchain_ARMCLANG.cmake",
                                      "toolchain_GNUARM.cmake"],
-                "psa_api":          [False],
-                "isolation_level":  ["1"],
+                "psa_api":          [True, False],
+                "isolation_level":  ["1", "2"],
                 "test_regression":  [True, False],
                 "test_psa_api":     ["OFF"],
                 "cmake_build_type": ["Debug", "Release", "Minsizerel"],
                 "with_otp":         [False],
                 "with_bl2":         [True, False],
                 "with_ns":          [True, False],
-                "profile":          ["profile_small"],
+                "profile":          ["profile_small", "profile_medium"],
+                "partition_ps":     ["ON", "OFF"],
                 },
                 "common_params": _common_tfm_builder_cfg,
                 "invalid": _common_tfm_invalid_configs + [
                     ("mps2/an519", "toolchain_GNUARM.cmake", "*",
-                     "*", "*", "*", "Minsizerel", "*", "*", "*", "*"),
+                     "*", "*", "*", "Minsizerel", "*", "*", "*", "*", "*"),
                 ]
                 }
 
@@ -661,6 +710,7 @@
                 "with_bl2":         [True],
                 "with_ns":          [True, False],
                 "profile":          [""],
+                "partition_ps":     ["ON"],
                 },
                 "common_params": _common_tfm_builder_cfg,
                 "invalid": _common_tfm_invalid_configs + []
@@ -679,6 +729,7 @@
                 "with_bl2":         [True],
                 "with_ns":          [True, False],
                 "profile":          [""],
+                "partition_ps":     ["ON"],
                 },
                 "common_params": _common_tfm_builder_cfg,
                 "invalid": _common_tfm_invalid_configs + []
@@ -697,6 +748,7 @@
                 "with_bl2":         [True],
                 "with_ns":          [True, False],
                 "profile":          [""],
+                "partition_ps":     ["ON"],
                 },
                 "common_params": _common_tfm_builder_cfg,
                 "invalid": _common_tfm_invalid_configs + []
@@ -716,15 +768,16 @@
                 "with_bl2":         [True],
                 "with_ns":          [True, False],
                 "profile":          ["", "profile_small"],
+                "partition_ps":     ["ON"],
                 },
                 "common_params": _common_tfm_builder_cfg,
                 "invalid": _common_tfm_invalid_configs + [
                     ("musca_b1", "*", "*", "*", "*", "*",
-                     "*",  "*", "*", "*", "profile_small"),
+                     "*",  "*", "*", "*", "profile_small", "*"),
                     ("*", "*", True, "*", "*", "*",
-                     "*",  "*", "*", "*", "profile_small"),
+                     "*",  "*", "*", "*", "profile_small", "*"),
                     ("*", "*", "*", "2", "*", "*",
-                     "*",  "*", "*", "*", "profile_small"),
+                     "*",  "*", "*", "*", "profile_small", "*"),
                 ]
                 }
 
@@ -740,6 +793,7 @@
                 "with_bl2":         [True],
                 "with_ns":          [True, False],
                 "profile":          [""],
+                "partition_ps":     ["ON"],
                 },
                 "common_params": _common_tfm_builder_cfg,
                 "invalid": _common_tfm_invalid_configs + []
@@ -762,6 +816,7 @@
                 "with_bl2":         [True],
                 "with_ns":          [True, False],
                 "profile":          [""],
+                "partition_ps":     ["ON"],
                 },
                 "common_params": _common_tfm_builder_cfg,
                 "invalid": _common_tfm_invalid_configs + []
@@ -779,6 +834,7 @@
                 "with_bl2":         [False],
                 "with_ns":          [True, False],
                 "profile":          [""],
+                "partition_ps":     ["ON"],
                 },
                 "common_params": _common_tfm_builder_cfg,
                 "invalid": _common_tfm_invalid_configs + []
@@ -813,6 +869,7 @@
                 "with_bl2":         [True],
                 "with_ns":          [True],
                 "profile":          [""],
+                "partition_ps":     ["ON"],
                 },
                 "common_params": _common_tfm_builder_cfg,
                 "invalid": _common_tfm_invalid_configs + []
@@ -832,13 +889,14 @@
                 "with_bl2":         [True, False],
                 "with_ns":          [True],
                 "profile":          [""],
+                "partition_ps":     ["ON"],
                 },
                 "common_params": _common_tfm_builder_cfg,
                 "invalid": _common_tfm_invalid_configs + [
                     ("*", "toolchain_ARMCLANG.cmake", True, "*", "*", "*",
-                     "*",  "*", "*", "*", "*"),
+                     "*",  "*", "*", "*", "*", "*"),
                     ("*", "toolchain_ARMCLANG.cmake", False, "1", "*", "*",
-                     "*",  "*", False, "*", "*"),
+                     "*",  "*", False, "*", "*", "*"),
                 ]
                 }
 
@@ -856,15 +914,16 @@
                 "with_bl2":         [True, False],
                 "with_ns":          [True],
                 "profile":          [""],
+                "partition_ps":     ["ON"],
                 },
                 "common_params": _common_tfm_builder_cfg,
                 "invalid": _common_tfm_invalid_configs + [
                     ("*", "toolchain_ARMCLANG.cmake", True, "*", "*", "*",
-                     "*",  "*", "*", "*", "*"),
+                     "*",  "*", "*", "*", "*", "*"),
                     ("*", "toolchain_ARMCLANG.cmake", False, "1", "*", "*",
-                     "*",  "*", "False", "*", "*"),
+                     "*",  "*", "False", "*", "*", "*"),
                     ("*", "toolchain_ARMCLANG.cmake", "*", "*", "*", "*",
-                     "*",  "*", "*", "*", "*") # Disable ARMCLANG for now
+                     "*",  "*", "*", "*", "*", "*") # Disable ARMCLANG for now
                 ]
                 }
 
@@ -880,11 +939,12 @@
                 "with_bl2":         [True, False],
                 "with_ns":          [True, False],
                 "profile":          [""],
+                "partition_ps":     ["ON"],
                 },
                 "common_params": _common_tfm_builder_cfg,
                 "invalid": _common_tfm_invalid_configs + [
                     ("mps2/an521", "toolchain_GNUARM.cmake", True, "2", "*", "*",
-                     "*",  "*", True, "*", "*")
+                     "*",  "*", True, "*", "*", "*")
                 ]
                 }
 
@@ -903,15 +963,16 @@
                 "with_bl2":         [True, False],
                 "with_ns":          [True, False],
                 "profile":          [""],
+                "partition_ps":     ["ON"],
                 },
                 "common_params": _common_tfm_builder_cfg,
                 "invalid": _common_tfm_invalid_configs + [
                     ("musca_a", "*", "*",
-                     "*", "*", "*", "*", "*", False, "*", "*"),
+                     "*", "*", "*", "*", "*", False, "*", "*", "*"),
                     ("musca_b1", "*", "*",
-                     "*", "*", "*", "*", "*", False, "*", "*"),
+                     "*", "*", "*", "*", "*", False, "*", "*", "*"),
                     ("musca_s1", "*", "*",
-                     "*", "*", "*", "*", "*", False, "*", "*"),
+                     "*", "*", "*", "*", "*", False, "*", "*", "*"),
                 ]
                 }
 
@@ -929,32 +990,35 @@
                 "with_bl2":         [True, False],
                 "with_ns":          [True, False],
                 "profile":          [""],
+                "partition_ps":     ["ON"],
                 },
                 "common_params": _common_tfm_builder_cfg,
                 "invalid": _common_tfm_invalid_configs + [
                     ("mps2/an519", "toolchain_GNUARM.cmake", "*",
-                     "*", "*", "*", "Minsizerel", "*", "*", "*", "*"),
+                     "*", "*", "*", "Minsizerel", "*", "*", "*", "*", "*"),
                 ]
                 }
 
 # Configure build manager to build the maximum number of configurations
 config_tfm_profile_gnu = {"seed_params": {
-                "tfm_platform":     ["mps2/an519", "mps2/an521"],
+                "tfm_platform":     ["mps2/an519", "mps2/an521",
+                                     "musca_b1"],
                 "toolchain_file":   ["toolchain_GNUARM.cmake"],
-                "psa_api":          [False],
-                "isolation_level":  ["1"],
+                "psa_api":          [True, False],
+                "isolation_level":  ["1", "2"],
                 "test_regression":  [True, False],
                 "test_psa_api":     ["OFF"],
                 "cmake_build_type": ["Debug", "Release", "Minsizerel"],
                 "with_otp":         [False],
                 "with_bl2":         [True, False],
                 "with_ns":          [True, False],
-                "profile":          ["profile_small"],
+                "profile":          ["profile_small", "profile_medium"],
+                "partition_ps":     ["ON", "OFF"],
                 },
                 "common_params": _common_tfm_builder_cfg,
                 "invalid": _common_tfm_invalid_configs + [
                     ("mps2/an519", "toolchain_GNUARM.cmake", "*",
-                     "*", "*", "*", "Minsizerel", "*", "*", "*", "*"),
+                     "*", "*", "*", "Minsizerel", "*", "*", "*", "*", "*"),
                 ]
                 }
 
@@ -971,6 +1035,7 @@
                 "with_bl2":         [True],
                 "with_ns":          [True, False],
                 "profile":          [""],
+                "partition_ps":     ["ON"],
                 },
                 "common_params": _common_tfm_builder_cfg,
                 "invalid": _common_tfm_invalid_configs + []
@@ -992,6 +1057,7 @@
                 "with_bl2":         [True],
                 "with_ns":          [True, False],
                 "profile":          [""],
+                "partition_ps":     ["ON"],
                 },
                 "common_params": _common_tfm_builder_cfg,
                 "invalid": _common_tfm_invalid_configs + []
@@ -1010,6 +1076,7 @@
                 "with_bl2":         [True],
                 "with_ns":          [True, False],
                 "profile":          [""],
+                "partition_ps":     ["ON"],
                 },
                 "common_params": _common_tfm_builder_cfg,
                 "invalid": _common_tfm_invalid_configs + []
@@ -1031,6 +1098,7 @@
                 "with_bl2":         [True],
                 "with_ns":          [True, False],
                 "profile":          [""],
+                "partition_ps":     ["ON"],
                 },
                 "common_params": _common_tfm_builder_cfg,
                 "invalid": _common_tfm_invalid_configs + []
@@ -1049,6 +1117,7 @@
                 "with_bl2":         [True],
                 "with_ns":          [True, False],
                 "profile":          [""],
+                "partition_ps":     ["ON"],
                 },
                 "common_params": _common_tfm_builder_cfg,
                 "invalid": _common_tfm_invalid_configs + []
@@ -1067,6 +1136,7 @@
                 "with_bl2":         [False],
                 "with_ns":          [True, False],
                 "profile":          [""],
+                "partition_ps":     ["ON"],
                 },
                 "common_params": _common_tfm_builder_cfg,
                 "invalid": _common_tfm_invalid_configs + []
@@ -1088,36 +1158,39 @@
                 "with_bl2":         [True, False],
                 "with_ns":          [True, False],
                 "profile":          [""],
+                "partition_ps":     ["ON"],
                 },
                 "common_params": _common_tfm_builder_cfg,
                 "invalid": _common_tfm_invalid_configs + [
                     ("mps2/an519", "toolchain_GNUARM.cmake", "*",
-                     "*", "*", "*", "Minsizerel", "*", "*", "*", "*"),
+                     "*", "*", "*", "Minsizerel", "*", "*", "*", "*", "*"),
                     ("cypress/psoc64", "*", "*", "*",
-                     "*", "*", "Debug",  "*", "*", "*", "*"),
+                     "*", "*", "Debug",  "*", "*", "*", "*", "*"),
                     ("cypress/psoc64", "*", "*", "*",
-                     "*", "*", "*",  "*", True, True, "*"),
+                     "*", "*", "*",  "*", True, True, "*", "*"),
                 ]
                 }
 
 # Configure build manager to build the maximum number of configurations
 config_nightly_profile_gnu = {"seed_params": {
-                "tfm_platform":     ["mps2/an519", "mps2/an521"],
+                "tfm_platform":     ["mps2/an519", "mps2/an521",
+                                     "musca_b1"],
                 "toolchain_file":   ["toolchain_GNUARM.cmake"],
-                "psa_api":          [False],
-                "isolation_level":  ["1"],
+                "psa_api":          [True, False],
+                "isolation_level":  ["1", "2"],
                 "test_regression":  [True, False],
                 "test_psa_api":     ["OFF"],
                 "cmake_build_type": ["Debug", "Release", "Minsizerel"],
                 "with_otp":         [False],
                 "with_bl2":         [True, False],
                 "with_ns":          [True, False],
-                "profile":          ["profile_small"],
+                "profile":          ["profile_small", "profile_medium"],
+                "partition_ps":     ["ON", "OFF"],
                 },
                 "common_params": _common_tfm_builder_cfg,
                 "invalid": _common_tfm_invalid_configs + [
                     ("mps2/an519", "toolchain_GNUARM.cmake", "*",
-                     "*", "*", "*", "Minsizerel", "*", "*", "*", "*"),
+                     "*", "*", "*", "Minsizerel", "*", "*", "*", "*", "*"),
                 ]
                 }
 
@@ -1137,6 +1210,7 @@
                 "with_bl2":         [True],
                 "with_ns":          [True, False],
                 "profile":          [""],
+                "partition_ps":     ["ON"],
                 },
                 "common_params": _common_tfm_builder_cfg,
                 "invalid": _common_tfm_invalid_configs + []
@@ -1155,6 +1229,7 @@
                 "with_bl2":         [True],
                 "with_ns":          [True, False],
                 "profile":          [""],
+                "partition_ps":     ["ON"],
                 },
                 "common_params": _common_tfm_builder_cfg,
                 "invalid": _common_tfm_invalid_configs + []
@@ -1173,6 +1248,7 @@
                 "with_bl2":         [True],
                 "with_ns":          [True, False],
                 "profile":          [""],
+                "partition_ps":     ["ON"],
                 },
                 "common_params": _common_tfm_builder_cfg,
                 "invalid": _common_tfm_invalid_configs + []
@@ -1192,15 +1268,16 @@
                 "with_bl2":         [True],
                 "with_ns":          [True, False],
                 "profile":          ["", "profile_small"],
+                "partition_ps":     ["ON"],
                 },
                 "common_params": _common_tfm_builder_cfg,
                 "invalid": _common_tfm_invalid_configs + [
                     ("musca_b1", "*", "*", "*", "*", "*",
-                     "*",  "*", "*", "*", "profile_small"),
+                     "*",  "*", "*", "*", "profile_small", "*"),
                     ("*", "*", True, "*", "*", "*",
-                     "*",  "*", "*", "*", "profile_small"),
+                     "*",  "*", "*", "*", "profile_small", "*"),
                     ("*", "*", "*", "2", "*", "*",
-                     "*",  "*", "*", "*", "profile_small"),
+                     "*",  "*", "*", "*", "profile_small", "*"),
                 ]
                 }
 
@@ -1217,6 +1294,7 @@
                 "with_bl2":         [True],
                 "with_ns":          [True, False],
                 "profile":          [""],
+                "partition_ps":     ["ON"],
                 },
                 "common_params": _common_tfm_builder_cfg,
                 "invalid": _common_tfm_invalid_configs + []
@@ -1239,6 +1317,7 @@
                 "with_bl2":         [True],
                 "with_ns":          [True, False],
                 "profile":          [""],
+                "partition_ps":     ["ON"],
                 },
                 "common_params": _common_tfm_builder_cfg,
                 "invalid": _common_tfm_invalid_configs + []
@@ -1257,6 +1336,7 @@
                 "with_bl2":         [False],
                 "with_ns":          [True, False],
                 "profile":          [""],
+                "partition_ps":     ["ON"],
                 },
                 "common_params": _common_tfm_builder_cfg,
                 "invalid": _common_tfm_invalid_configs + []
diff --git a/jenkins/ci.jpl b/jenkins/ci.jpl
index 3504d1b..fbb7726 100644
--- a/jenkins/ci.jpl
+++ b/jenkins/ci.jpl
@@ -80,8 +80,8 @@
       }
   else if (build_params["BL2"]        == "True"          && \
       build_params["NS"]              == "True"          && \
-      build_params["PSA_API"]         == "False"         && \
-      build_params["ISOLATION_LEVEL"] == "1"             && \
+      build_params["PSA_API"]         == "True"          && \
+      build_params["ISOLATION_LEVEL"] == "2"             && \
       build_params["PROFILE"]         == "profile_medium"&& \
       build_params["TEST_REGRESSION"] == "False"         && \
       build_params["TEST_PSA_API"]    == "OFF") {
@@ -125,8 +125,8 @@
       }
   else if (build_params["BL2"]        == "True"          && \
       build_params["NS"]              == "True"          && \
-      build_params["PSA_API"]         == "False"         && \
-      build_params["ISOLATION_LEVEL"] == "1"             && \
+      build_params["PSA_API"]         == "True"         && \
+      build_params["ISOLATION_LEVEL"] == "2"             && \
       build_params["PROFILE"]         == "profile_medium"&& \
       build_params["TEST_REGRESSION"] == "True"          && \
       build_params["TEST_PSA_API"]    == "OFF") {
@@ -213,7 +213,8 @@
     if (build_res.result in failure_states) {
       error("Build failed at ${build_url}")
     }
-    else if (params_collection["NS"] == "False") {
+    else if (params_collection["NS"] == "False" ||
+             params_collection["PARTITION_PS"] == "OFF") {
       print("LAVA is not needed for ${build_url}")
     }
     else {
diff --git a/tfm_ci_pylib/tfm_build_manager.py b/tfm_ci_pylib/tfm_build_manager.py
index 05c7c9c..2cc4f87 100644
--- a/tfm_ci_pylib/tfm_build_manager.py
+++ b/tfm_ci_pylib/tfm_build_manager.py
@@ -51,7 +51,8 @@
                  "INITIAL_ATTESTATION":      "ATTEST",
                  "INTERNAL_TRUSTED_STORAGE": "ITS"}
 
-mapProfile = {"profile_small": "SMALL"}
+mapProfile = {"profile_small":  "SMALL",
+              "profile_medium": "MEDIUM"}
 
 
 class TFM_Build_Manager(structuredTask):
@@ -122,7 +123,8 @@
             "OTP={}",
             "BL2={}",
             "NS={}",
-            "PROFILE={}"
+            "PROFILE={}",
+            "PARTITION_PS={}"
         ]
         print(
             "\n".join(argument_list)
@@ -138,7 +140,8 @@
                 config_details.with_otp,
                 config_details.with_bl2,
                 config_details.with_ns,
-                "N.A" if not config_details.profile else config_details.profile
+                "N.A" if not config_details.profile else config_details.profile,
+                config_details.partition_ps
             )
             .strip()
         )
@@ -393,7 +396,8 @@
                             "with_otp": i.with_otp,
                             "with_bl2": i.with_bl2,
                             "with_ns": i.with_ns,
-                            "profile": "" if i.profile=="N.A" else i.profile}
+                            "profile": "" if i.profile=="N.A" else i.profile,
+                            "partition_ps": i.partition_ps}
         build_cfg["config_template"] %= overwrite_params
         return build_cfg
 
@@ -559,6 +563,8 @@
                 config_param.append("NS")
             if list(i)[10]: # PROFILE
                 config_param.append(mapProfile[list(i)[10]])
+            if list(i)[11] == "OFF":    #PARTITION_PS
+                config_param.append("PSOFF")
             i_str = "_".join(config_param)
             ret_cfg[i_str] = i
         return ret_cfg