diff --git a/lava_helper/jinja2_templates/base.jinja2 b/lava_helper/jinja2_templates/base.jinja2
index 8e88e35..6bb5039 100644
--- a/lava_helper/jinja2_templates/base.jinja2
+++ b/lava_helper/jinja2_templates/base.jinja2
@@ -7,9 +7,6 @@
 {%- block metadata %}
 metadata:
   build_no: {{ build_no }}
-  compiler: {{ compiler }}
-  build_type: {{ build_type }}
-  boot_type: {{ boot_type }}
   name: {{ name }}
   platform: {{ platform }}
   build_name: {{ build_name }}
diff --git a/lava_helper/jinja2_templates/fvp_corstone1000.jinja2 b/lava_helper/jinja2_templates/fvp_corstone1000.jinja2
index 3eebf42..a2ec56d 100644
--- a/lava_helper/jinja2_templates/fvp_corstone1000.jinja2
+++ b/lava_helper/jinja2_templates/fvp_corstone1000.jinja2
@@ -61,7 +61,7 @@
 - test:
     namespace: target
     monitors:
-    {%- for monitor in test.monitors %}
+    {%- for monitor in monitors %}
     - name: "{{monitor.name}}"
       start: "{{monitor.start}}"
       end: "{{monitor.end}}"
diff --git a/lava_helper/jinja2_templates/fvp_mps2.jinja2 b/lava_helper/jinja2_templates/fvp_mps2.jinja2
index 243e58e..7ca4625 100644
--- a/lava_helper/jinja2_templates/fvp_mps2.jinja2
+++ b/lava_helper/jinja2_templates/fvp_mps2.jinja2
@@ -44,7 +44,7 @@
     image: /opt/model/FVP_MPS2_AEMv8M/models/Linux64_GCC-6.4/FVP_MPS2_AEMv8M
     timeout:
       minutes: 10
-{%- if psa_api_suite == "FF" %}
+{%- if psa_api_suite == "IPC" %}
     console_string: 'telnetterminal2: Listening for serial connection on port (?P<PORT>\d+)'
     use_telnet: True
 {%- else %}
@@ -82,7 +82,7 @@
 - test:
     namespace: target
     monitors:
-    {%- for monitor in test.monitors %}
+    {%- for monitor in monitors %}
     - name: "{{monitor.name}}"
       start: "{{monitor.start}}"
       end: "{{monitor.end}}"
@@ -93,7 +93,9 @@
          {%- if monitor.fixup.skip %}
          '{{monitor.fixup.skip}}': skip
          {%- endif %}
-         'SIM ERROR': fail
+         {%- if monitor.fixup.sim_error %}
+         '{{monitor.fixup.sim_error}}': fail
+         {%- endif %}
     {%- endfor %}
 
 {%- if enable_code_coverage %}
diff --git a/lava_helper/jinja2_templates/fvp_mps3.jinja2 b/lava_helper/jinja2_templates/fvp_mps3.jinja2
index f02063f..744d84c 100644
--- a/lava_helper/jinja2_templates/fvp_mps3.jinja2
+++ b/lava_helper/jinja2_templates/fvp_mps3.jinja2
@@ -72,7 +72,7 @@
 - test:
     namespace: target
     monitors:
-    {%- for monitor in test.monitors %}
+    {%- for monitor in monitors %}
     - name: "{{monitor.name}}"
       start: "{{monitor.start}}"
       end: "{{monitor.end}}"
diff --git a/lava_helper/jinja2_templates/lpcxpresso55s69.jinja2 b/lava_helper/jinja2_templates/lpcxpresso55s69.jinja2
index 5de0d9b..f95c437 100644
--- a/lava_helper/jinja2_templates/lpcxpresso55s69.jinja2
+++ b/lava_helper/jinja2_templates/lpcxpresso55s69.jinja2
@@ -20,7 +20,7 @@
 
     - test:
         monitors:
-        {%- for monitor in test.monitors %}
+        {%- for monitor in monitors %}
         - name: "{{monitor.name}}"
           start: "{{monitor.start}}"
           end: "{{monitor.end}}"
@@ -37,9 +37,6 @@
 {% block metadata %}
 metadata:
   build_no: {{ build_no }}
-  compiler: {{ compiler }}
-  build_type: {{ build_type }}
-  boot_type: {{ boot_type }}
   name: {{ name }}
   platform: {{ platform }}
   build_name: {{ build_name }}
diff --git a/lava_helper/jinja2_templates/mps2.jinja2 b/lava_helper/jinja2_templates/mps2.jinja2
index c1a726c..2df0641 100644
--- a/lava_helper/jinja2_templates/mps2.jinja2
+++ b/lava_helper/jinja2_templates/mps2.jinja2
@@ -36,7 +36,7 @@
 - test:
     namespace: target
     monitors:
-    {%- for monitor in test.monitors %}
+    {%- for monitor in monitors %}
     - name: "{{monitor.name}}"
       start: "{{monitor.start}}"
       end: "{{monitor.end}}"
@@ -47,5 +47,5 @@
          {%- if monitor.fixup.skip %}
          '{{monitor.fixup.skip}}': skip
          {%- endif %}
-    {% endfor %}
+    {%- endfor %}
 {% endblock %}
diff --git a/lava_helper/jinja2_templates/musca_b1.jinja2 b/lava_helper/jinja2_templates/musca_b1.jinja2
index 5233e95..7bc2d88 100644
--- a/lava_helper/jinja2_templates/musca_b1.jinja2
+++ b/lava_helper/jinja2_templates/musca_b1.jinja2
@@ -20,7 +20,7 @@
 
     - test:
         monitors:
-        {%- for monitor in test.monitors %}
+        {%- for monitor in monitors %}
         - name: "{{monitor.name}}"
           start: "{{monitor.start}}"
           end: "{{monitor.end}}"
@@ -37,9 +37,6 @@
 {% block metadata %}
 metadata:
   build_no: {{ build_no }}
-  compiler: {{ compiler }}
-  build_type: {{ build_type }}
-  boot_type: {{ boot_type }}
   name: {{ name }}
   platform: {{ platform }}
   build_name: {{ build_name }}
diff --git a/lava_helper/jinja2_templates/psoc64.jinja2 b/lava_helper/jinja2_templates/psoc64.jinja2
index e89c9f0..cc40483 100644
--- a/lava_helper/jinja2_templates/psoc64.jinja2
+++ b/lava_helper/jinja2_templates/psoc64.jinja2
@@ -22,7 +22,7 @@
 
     - test:
         monitors:
-        {%- for monitor in test.monitors %}
+        {%- for monitor in monitors %}
         - name: "{{monitor.name}}"
           start: "{{monitor.start}}"
           end: "{{monitor.end}}"
@@ -36,9 +36,6 @@
 {% block metadata %}
 metadata:
   build_no: {{ build_no }}
-  compiler: {{ compiler }}
-  build_type: {{ build_type }}
-  boot_type: {{ boot_type }}
   name: {{ name }}
   platform: {{ platform }}
   build_name: {{ build_name }}
diff --git a/lava_helper/jinja2_templates/qemu_mps2_bl2.jinja2 b/lava_helper/jinja2_templates/qemu_mps2_bl2.jinja2
index 644b6c4..1cb7602 100644
--- a/lava_helper/jinja2_templates/qemu_mps2_bl2.jinja2
+++ b/lava_helper/jinja2_templates/qemu_mps2_bl2.jinja2
@@ -17,7 +17,7 @@
       minutes: 10
 - test:
     monitors:
-    {%- for monitor in test.monitors %}
+    {%- for monitor in monitors %}
     - name: "{{monitor.name}}"
       start: "{{monitor.start}}"
       end: "{{monitor.end}}"
@@ -28,7 +28,9 @@
          {%- if monitor.fixup.skip %}
          '{{monitor.fixup.skip}}': skip
          {%- endif %}
-         'SIM ERROR': fail
+         {%- if monitor.fixup.sim_error %}
+         '{{monitor.fixup.sim_error}}': fail
+         {%- endif %}
     {%- endfor %}
 
 context:
@@ -59,9 +61,6 @@
 
 metadata:
   build_no: {{ build_no }}
-  compiler: {{ compiler }}
-  build_type: {{ build_type }}
-  boot_type: {{ boot_type }}
   name: {{ name }}
   platform: {{ platform }}
   build_name: {{ build_name }}
diff --git a/lava_helper/jinja2_templates/stm32l562e_dk.jinja2 b/lava_helper/jinja2_templates/stm32l562e_dk.jinja2
index dbe9bcb..8c00dd7 100644
--- a/lava_helper/jinja2_templates/stm32l562e_dk.jinja2
+++ b/lava_helper/jinja2_templates/stm32l562e_dk.jinja2
@@ -20,7 +20,7 @@
 
     - test:
         monitors:
-        {%- for monitor in test.monitors %}
+        {%- for monitor in monitors %}
         - name: "{{monitor.name}}"
           start: "{{monitor.start}}"
           end: "{{monitor.end}}"
@@ -37,9 +37,6 @@
 {% block metadata %}
 metadata:
   build_no: {{ build_no }}
-  compiler: {{ compiler }}
-  build_type: {{ build_type }}
-  boot_type: {{ boot_type }}
   name: {{ name }}
   platform: {{ platform }}
   build_name: {{ build_name }}
diff --git a/lava_helper/jinja2_templates/test_summary_csv.jinja2 b/lava_helper/jinja2_templates/test_summary_csv.jinja2
index b7aa4ae..eeca62b 100644
--- a/lava_helper/jinja2_templates/test_summary_csv.jinja2
+++ b/lava_helper/jinja2_templates/test_summary_csv.jinja2
@@ -1,12 +1,12 @@
-LAVA_JOB_ID,LAVA_HEALTH,LAVA_DEVICE_TYPE,BUILD_FULL_NAME,BUILD_NUMBER,COMPILER,BUILD_TYPE,BOOT_TYPE,PLATFORM,RESULT_SUITE,RESULT_NAME,RESULT
+LAVA_JOB_ID,LAVA_HEALTH,LAVA_DEVICE_TYPE,BUILD_FULL_NAME,BUILD_NUMBER,PLATFORM,RESULT_SUITE,RESULT_NAME,RESULT
 {%- for job in jobs %}
 {%- for job_id, data in job.items() -%}
 {%- if data[1] %}
 {%- for result in data[1] %}
-{{ job_id }},{{ data[0]['health']}},{{ data[0]['device_type']}},{{ data[0]['metadata']['build_name'] }},{{ data[0]['metadata']['build_no'] }},{{ data[0]['metadata']['compiler'] }},{{ data[0]['metadata']['build_type'] }},{{ data[0]['metadata']['boot_type'] }},{{ data[0]['metadata']['platform'] }},{{ result['suite'] }},{{ result['name'] }},{{ result['result'] }}
+{{ job_id }},{{ data[0]['health']}},{{ data[0]['device_type']}},{{ data[0]['metadata']['build_name'] }},{{ data[0]['metadata']['build_no'] }},{{ data[0]['metadata']['platform'] }},{{ result['suite'] }},{{ result['name'] }},{{ result['result'] }}
 {%- endfor %}
 {%- else %}
-{{ job_id }},{{ data[0]['health']}},{{ data[0]['device_type']}},{{ data[0]['metadata']['build_name'] }},{{ data[0]['metadata']['build_no'] }},{{ data[0]['metadata']['compiler'] }},{{ data[0]['metadata']['build_type'] }},{{ data[0]['metadata']['boot_type'] }},{{ data[0]['metadata']['platform'] }},,,
+{{ job_id }},{{ data[0]['health']}},{{ data[0]['device_type']}},{{ data[0]['metadata']['build_name'] }},{{ data[0]['metadata']['build_no'] }},{{ data[0]['metadata']['platform'] }},,,
 {%- endif %}
 {%- endfor %}
 {%- endfor %}
diff --git a/lava_helper/lava_create_jobs.py b/lava_helper/lava_create_jobs.py
index ce14d24..cfee0ed 100755
--- a/lava_helper/lava_create_jobs.py
+++ b/lava_helper/lava_create_jobs.py
@@ -22,15 +22,6 @@
 from lava_helper_configs import *
 
 
-def get_artifact_url(artifact_store_url, params, filename):
-    platform = params["platform"]
-    if params["device_type"] == "fvp":
-        platform = "fvp"
-
-    url = "{}/artifact/trusted-firmware-m/build/bin/{}".format(artifact_store_url.rstrip("/"), filename)
-    return url
-
-
 def get_recovery_url(recovery_store_url, recovery):
     return "{}/{}".format(recovery_store_url.rstrip('/'), recovery)
 
@@ -46,9 +37,6 @@
         print("No template found for config: %s" % config_key)
         sys.exit(1)
 
-    config["build_no"] = user_args.build_no
-    config["artifact_store_url"] = user_args.jenkins_build_url
-
     # Add the template folder
     config["templ"] = os.path.join(user_args.template_dir, config["templ"])
     return config
@@ -61,74 +49,58 @@
     template_loader = FileSystemLoader(searchpath=work_dir)
     template_env = Environment(loader=template_loader)
     recovery_store_url = config.get('recovery_store_url', '')
-    build_no = user_args.build_no
-    artifact_store_url = config["artifact_store_url"]
     template_file = config.pop("templ")
 
     definitions = {}
 
     for platform, recovery in config["platforms"].items():
-        if platform != user_args.platform:
+        if platform != os.getenv('TFM_PLATFORM'):
             continue
         recovery_image_url = get_recovery_url(recovery_store_url, recovery)
-        for compiler in config["compilers"]:
-            if compiler != user_args.compiler:
-                continue
-            for build_type in config["build_types"]:
-                if build_type != user_args.build_type:
-                    continue
-                for boot_type in config["boot_types"]:
-                    bl2_string = "BL2" if user_args.bl2 else "NOBL2"
-                    if boot_type != bl2_string:
-                        continue
-                    for test_name, test_dict in config["tests"].items():
-                        if "Config{}".format(test_name) != user_args.proj_config:
-                            continue
-                        params = {
-                            "device_type": config["device_type"],
-                            "job_timeout": config["job_timeout"],
-                            "action_timeout": config.get("action_timeout", ''),
-                            "monitor_timeout": config.get("monitor_timeout", ''),
-                            "poweroff_timeout": config.get("poweroff_timeout", ''),
-                            "compiler": compiler,
-                            "build_type": build_type,
-                            "build_no": build_no,
-                            "boot_type": boot_type,
-                            "name": test_name,
-                            "test": test_dict,
-                            "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": artifact_store_url,
-                            "cpu0_baseline": config.get("cpu0_baseline", 0),
-                            "cpu0_initvtor_s": config.get("cpu0_initvtor_s", "0x10000000"),
-                            "psa_api_suite": user_args.psa_suite,
-                        }
-                        for binary_type, binary_name in config["binaries"].items():
-                            params.update(
-                                {
-                                    "{}_url".format(binary_type): get_artifact_url(
-                                        artifact_store_url,
-                                        params,
-                                        binary_name
-                                    )
-                                }
-                            )
-                        params.update(
-                            {
-                                "job_name": "{}_{}_{}".format(os.getenv('CONFIG_NAME'), params['build_no'], params["device_type"]),
-                                "build_name": os.getenv('CONFIG_NAME')
-                            }
-                        )
+        if os.getenv("TEST_REGRESSION") == "True":
+            monitor_name = "reg_tests"
+        elif os.getenv("TEST_PSA_API") != "OFF":
+            monitor_name = "arch_tests"
+        else:
+            monitor_name = "no_reg_tests"
+        params = {
+            "job_name": "{}_{}_{}".format(os.getenv('CONFIG_NAME'), os.getenv("BUILD_NUMBER"), config["device_type"]),
+            "build_name": os.getenv('CONFIG_NAME'),
+            "device_type": config["device_type"],
+            "job_timeout": config["job_timeout"],
+            "action_timeout": config.get("action_timeout", ''),
+            "monitor_timeout": config.get("monitor_timeout", ''),
+            "poweroff_timeout": config.get("poweroff_timeout", ''),
+            "build_no": os.getenv("BUILD_NUMBER"),
+            "name": monitor_name,
+            "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 "",
+        }
+        for binary_type, binary_name in config["binaries"].items():
+            params.update(
+                {
+                    "{}_url".format(binary_type): "{}/artifact/trusted-firmware-m/build/bin/{}".format(params["build_job_url"], binary_name)
+                }
+            )
 
-                        definition = template_env.get_template(template_file).render(
-                            params
-                        )
-                        definitions.update({params["job_name"]: definition})
+        if len(params["monitors"]) == 0:
+            break
+
+        definition = template_env.get_template(template_file).render(
+            params
+        )
+        definitions.update({params["job_name"]: definition})
+
     return definitions
 
 
@@ -138,10 +110,10 @@
     # Evaluate current directory
     work_dir = os.path.abspath(os.path.dirname(__file__))
 
-    # If a single platform is requested and it exists in the platform
-    if user_args.platform and user_args.platform in config["platforms"]:
+    # If platform exists in the LAVA platforms
+    if os.getenv("TFM_PLATFORM") in config["platforms"]:
         # Only test this platform
-        platform = user_args.platform
+        platform = os.getenv("TFM_PLATFORM")
         config["platforms"] = {platform: config["platforms"][platform]}
     # Generate the output definition
     definitions = generate_test_definitions(config, work_dir, user_args)
@@ -186,13 +158,6 @@
         help="Select built-in configuration by name",
     )
     cmdargs.add_argument(
-        "--build-number",
-        dest="build_no",
-        action="store",
-        default="lastSuccessfulBuild",
-        help="JENKINS Build number selector. " "Default: lastSuccessfulBuild",
-    )
-    cmdargs.add_argument(
         "--output-dir",
         dest="lava_def_output",
         action="store",
@@ -200,18 +165,6 @@
         help="Set LAVA compatible .yaml output file",
     )
     cmdargs.add_argument(
-        "--platform",
-        dest="platform",
-        action="store",
-        help="Override platform.Only the provided one " "will be tested",
-    )
-    cmdargs.add_argument(
-        "--compiler",
-        dest="compiler",
-        action="store",
-        help="Compiler to build definitions for",
-    )
-    cmdargs.add_argument(
         "--jenkins-build-url",
         dest="jenkins_build_url",
         action="store",
@@ -225,12 +178,6 @@
         help="Set the jenkins job name",
     )
     cmdargs.add_argument(
-        "--proj-config", dest="proj_config", action="store", help="Proj config"
-    )
-    cmdargs.add_argument(
-        "--build-type", dest="build_type", action="store", help="Build type"
-    )
-    cmdargs.add_argument(
         "--docker-prefix", dest="docker_prefix", action="store", help="Prefix string for the FVP docker registry location"
     )
     cmdargs.add_argument(
@@ -239,10 +186,6 @@
     cmdargs.add_argument(
         "--enable-code-coverage", dest="enable_code_coverage", action="store", default="FALSE", help="Enable trace-base code coverage"
     )
-    cmdargs.add_argument("--bl2", dest="bl2", action="store_true", help="BL2")
-    cmdargs.add_argument(
-        "--psa-api-suite", dest="psa_suite", action="store", help="PSA API Suite name"
-    )
 
     device_type.add_argument(
         "--fvp-only",
diff --git a/lava_helper/lava_helper_configs.py b/lava_helper/lava_helper_configs.py
index eb465df..db4985a 100644
--- a/lava_helper/lava_helper_configs.py
+++ b/lava_helper/lava_helper_configs.py
@@ -19,110 +19,64 @@
 __project__ = "Trusted Firmware-M Open CI"
 __version__ = "1.4.0"
 
+
+import os
+
+
 tf_downloads="https://downloads.trustedfirmware.org"
 coverage_trace_plugin=tf_downloads + "/coverage-plugin/qa-tools/coverage-tool/coverage-plugin/coverage_trace.so"
 
-def lava_gen_get_config_subset(config,
-                               default=True,
-                               core=True,
-                               regression=True):
-    """ Allow dynamic generation of configuration combinations by subtracking
-    undesired ones """
 
-    from copy import deepcopy
-    cfg = deepcopy(config)
-    tests = deepcopy(config["tests"])
-
-    # Remove all configs not requests by the caller
-    if not default:
-        tests.pop("Default")
-    if not core:
-        tests.pop("CoreIPC")
-        tests.pop("CoreIPCTfmLevel2")
-        tests.pop("CoreIPCTfmLevel3")
-    if not regression:
-        tests.pop("Regression")
-
-    cfg["tests"] = tests
-    return cfg
-
-# LAVA test-monitor definition for configs with regression tests.
+# LAVA test-monitor definition for configs without regression tests.
 # "Non-Secure system starting..." is expected to indicate
 # that TF-M has been booted successfully.
-monitors_no_reg_tests = [
-    {
-        'name': 'NS_SYSTEM_BOOTING',
-        'start': 'Non-Secure system',
-        'end': r'starting\\.{3}',
-        'pattern': r'Non-Secure system starting\\.{3}',
-        'fixup': {"pass": "!", "fail": ""},
-    }
-]
+monitors_no_reg_tests = {
+    'name': 'NS_SYSTEM_BOOTING',
+    'start': 'Non-Secure system',
+    'end': r'starting\\.{3}',
+    'pattern': r'Non-Secure system starting\\.{3}',
+    'fixup': {"pass": "!", "fail": ""},
+}
 
-# LAVA test-monitor definitions for configs with regression tests.
+# LAVA test-monitor definitions for configs with tests.
 # Results of each test case is parsed separately, capturing test case id.
 # Works across any test suites enabled.
-monitors_ns_reg_tests = [
-    {
-        'name': 'regression_suite',
-        'start': 'Execute test suites',
-        'end': 'End of Non-secure test suites',
-        'pattern': r"TEST: (?P<test_case_id>.+?) - (?P<result>(PASSED|FAILED|SKIPPED))",
-        '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
+monitors_mcuboot_tests = {
+    'name': 'mcuboot_suite',
+    'start': 'Execute test suites for the MCUBOOT area',
+    'end': 'End of MCUBOOT test suites',
+    'pattern': r"TEST: (?P<test_case_id>.+?) - (?P<result>(PASSED|FAILED|SKIPPED))",
+    'fixup': {"pass": "PASSED", "fail": "FAILED", "skip": "SKIPPED"},
+}
 
-# LAVA test-monitor definition for PSA API testsuites, testcases identified
-# by "UT" value in output (testcase identifier).
-monitors_psaapitest_by_ut = [
-    {
-        'name': 'psa_api_suite',
-        'start': 'Running..',
-        'end': 'Entering standby..',
-        'pattern': r" UT: +(?P<test_case_id>[A-Za-z0-9_]+)\r?\n"
-                   r".+?"
-                   r"TEST RESULT: (?P<result>(PASSED|FAILED|SKIPPED))",
-        'fixup': {"pass": "PASSED", "fail": "FAILED", "skip": "SKIPPED"},
-    },
-]
+monitors_s_reg_tests = {
+    'name': 'secure_regression_suite',
+    'start': 'Execute test suites for the Secure area',
+    '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"},
+}
 
-# LAVA test-monitor definition for PSA API testsuites, testcases identified
-# by description in output (for when UT is not set to unique identifier).
-monitors_psaapitest_by_desc = [
-    {
-        'name': 'psa_api_suite',
-        'start': 'Running..',
-        'end': 'Entering standby..',
-        'pattern': r" DESCRIPTION: +(?P<test_case_id>.+?) \\|"
-                   r".+?"
-                   r"TEST RESULT: (?P<result>(PASSED|FAILED|SKIPPED))",
-        'fixup': {"pass": "PASSED", "fail": "FAILED", "skip": "SKIPPED"},
-    },
-]
+monitors_ns_reg_tests = {
+    'name': 'non_secure_regression_suite',
+    'start': 'Execute test suites for the Non-secure area',
+    'end': 'End of Non-secure test suites',
+    'pattern': r"TEST: (?P<test_case_id>.+?) - (?P<result>(PASSED|FAILED|SKIPPED))",
+    'fixup': {"pass": "PASSED", "fail": "FAILED", "skip": "SKIPPED"},
+}
 
-monitors_psaapitest_ff = [
-    {
-        'name': 'psa_api_suite',
-        'start': 'Running..',
-        'end': 'Entering standby..',
-        'pattern': r" DESCRIPTION: +(?P<test_case_id>.+?)\r?\n"
-                   r".+"
-                   r"TEST RESULT: (?P<result>(PASSED|FAILED|SKIPPED|SIM ERROR))",
-        'fixup': {"pass": "PASSED", "fail": "FAILED", "skip": "SKIPPED"},
-    },
-]
+monitors_arch_tests = {
+    'name': 'psa_api_suite',
+    'start': 'Running..',
+    'end': 'Entering standby..',
+    'pattern': r" DESCRIPTION: +(?P<test_case_id>.+?)\r?\n"
+                r".+?"
+                r"TEST RESULT: (?P<result>(PASSED|FAILED|SKIPPED|SIM ERROR))",
+    'fixup': {"pass": "PASSED", "fail": "FAILED", "skip": "SKIPPED", "sim_error": "SIM ERROR"},
+}
 
 
-# MPS2 with BL2 bootloader
+# MPS2 with BL2 bootloader for AN521
 # IMAGE0ADDRESS: 0x10000000
 # IMAGE0FILE: \Software\bl2.bin  ; BL2 bootloader
 # IMAGE1ADDRESS: 0x10080000
@@ -136,97 +90,19 @@
     "monitor_timeout": 15,
     "poweroff_timeout": 1,
     "recovery_store_url": "https://ci.trustedfirmware.org/userContent/",
-    "platforms": {"AN521": "mps2_sse200_an512_new.tar.gz"},
-    "compilers": ["GCC", "ARMCLANG"],
-    "build_types": ["Debug", "Release", "Minsizerel"],
-    "boot_types": ["BL2"],
+    "platforms": {"arm/mps2/an521": "mps2_sse200_an512_new.tar.gz"},
     "binaries": {
         "firmware": "tfm_s_ns_signed.bin",
         "bootloader": "bl2.bin"
     },
-    "tests": {
-        'Default': {
-            "monitors": monitors_no_reg_tests
-        },  # Default
-        'DefaultProfileS': {
-            "monitors": monitors_no_reg_tests
-        },  # DefaultProfileS
-        'DefaultProfileM': {
-            "monitors": monitors_no_reg_tests
-        },  # DefaultProfileM
-        'DefaultProfileL': {
-            "monitors": monitors_no_reg_tests
-        },  # DefaultProfileL
-        'Regression': {
-            "monitors": monitors_ns_reg_tests
-        },  # Regression
-        'RegressionProfileM': {
-            "monitors": monitors_ns_reg_tests
-        },  # RegressionProfileM
-        'RegressionProfileS': {
-            "monitors": monitors_ns_reg_tests
-        },  # RegressionProfileS
-        'RegressionProfileL': {
-            "monitors": monitors_ns_reg_tests
-        },  # RegressionProfileL
-        'RegressionIPC': {
-            "monitors": monitors_ns_reg_tests
-        },  # Regression
-        'RegressionIPCTfmLevel2': {
-            "monitors": monitors_ns_reg_tests
-        },  # Regression
-        'RegressionIPCTfmLevel3': {
-            "monitors": monitors_ns_reg_tests
-        },  # Regression
-        'CoreIPC': {
-            "monitors": monitors_no_reg_tests
-        },  # CoreIPC
-        'CoreIPCTfmLevel2': {
-            "monitors": monitors_no_reg_tests
-        },  # CoreIPCTfmLevel2
-        'CoreIPCTfmLevel3': {
-            "monitors": monitors_no_reg_tests
-        },  # CoreIPCTfmLevel3
-        'PsaApiTest_Crypto': {
-            "monitors": monitors_psaapitest_by_ut,
-        }, # PsaApiTest_Crypto
-        'PsaApiTestIPC_Crypto': {
-            "monitors": monitors_psaapitest_by_ut,
-        },
-        'PsaApiTestIPCTfmLevel2_Crypto': {
-            "monitors": monitors_psaapitest_by_ut,
-        },
-        'PsaApiTestIPCTfmLevel3_Crypto': {
-            "monitors": monitors_psaapitest_by_ut,
-        },
-        'PsaApiTest_STORAGE': {
-            "monitors": monitors_psaapitest_by_desc,
-        }, # PsaApiTest_Storage
-        'PsaApiTestIPC_STORAGE': {
-            "monitors": monitors_psaapitest_by_desc,
-        }, # PsaApiTestIPC_Storage
-        'PsaApiTestIPCTfmLevel2_STORAGE': {
-            "monitors": monitors_psaapitest_by_desc,
-        },
-        'PsaApiTestIPCTfmLevel3_STORAGE': {
-            "monitors": monitors_psaapitest_by_desc,
-        },
-        'PsaApiTest_Attest': {
-            "monitors": monitors_psaapitest_by_ut,
-        }, # PsaApiTest_Attest
-        'PsaApiTestIPC_Attest': {
-            "monitors": monitors_psaapitest_by_ut,
-        }, # PsaApiTestIPC_Attest
-        'PsaApiTestIPCTfmLevel2_Attest': {
-            "monitors": monitors_psaapitest_by_ut,
-        },
-        'PsaApiTestIPCTfmLevel3_Attest': {
-            "monitors": monitors_psaapitest_by_ut,
-        },
-    }  # Tests
+    "monitors": {
+        'no_reg_tests': [monitors_no_reg_tests],
+        'reg_tests': [monitors_mcuboot_tests, monitors_s_reg_tests, monitors_ns_reg_tests],
+        'arch_tests': [monitors_arch_tests] if os.getenv("TEST_PSA_API") != "IPC" else [], # FF test on FPGA not supported in LAVA yet
+    }
 }
 
-# FVP with BL2 bootloader
+# FVP with BL2 bootloader for AN552
 # firmware <-> ns <-> application: --application cpu0=bl2.axf
 # bootloader <-> s <-> data: --data cpu0=tfm_s_ns_signed.bin@0x01000000
 fvp_mps3_an552_bl2 = {
@@ -237,45 +113,19 @@
     "action_timeout": 10,
     "monitor_timeout": 15,
     "poweroff_timeout": 1,
-    "platforms": {"AN552": ""},
-    "compilers": ["GCC", "ARMCLANG"],
-    "build_types": ["Debug", "Release"],
-    "boot_types": ["BL2"],
+    "platforms": {"arm/mps3/an552": ""},
     "data_bin_offset": "0x01000000",
     "binaries": {
         "application": "bl2.axf",
         "data": "tfm_s_ns_signed.bin"
     },
-       "tests": {
-        'Default': {
-            "monitors": monitors_no_reg_tests
-        },  # Default
-        'Regression': {
-            "monitors": monitors_ns_reg_tests
-        },  # Regression
-        'RegressionIPC': {
-            "monitors": monitors_ns_reg_tests
-        },  # Regression
-        'RegressionIPCTfmLevel2': {
-            "monitors": monitors_ns_reg_tests
-        },  # Regression
-        'RegressionIPCTfmLevel3': {
-            "monitors": monitors_ns_reg_tests
-        },  # Regression
-        'CoreIPC': {
-            "monitors": monitors_no_reg_tests
-        },  # CoreIPC
-        'CoreIPCTfmLevel2': {
-            "monitors": monitors_no_reg_tests
-        },  # CoreIPCTfmLevel2
-        'CoreIPCTfmLevel3': {
-            "monitors": monitors_no_reg_tests
-        },  # CoreIPCTfmLevel3
-
-    }  # Tests
+    "monitors": {
+        'no_reg_tests': [monitors_no_reg_tests],
+        'reg_tests': [monitors_mcuboot_tests, monitors_s_reg_tests, monitors_ns_reg_tests],
+    }
 }
 
-# FVP with BL1 and BL2 bootloader
+# FVP with BL1 and BL2 bootloader for Corstone1000
 fvp_corstone1000 = {
     "templ": "fvp_corstone1000.jinja2",
     "job_name": "fvp_corstone1000",
@@ -284,24 +134,18 @@
     "action_timeout": 10,
     "monitor_timeout": 15,
     "poweroff_timeout": 1,
-    "platforms": {"corstone1000": ""},
-    "compilers": ["GCC"],
-    "build_types": ["Debug"],
-    "boot_types": ["BL2"],
+    "platforms": {"arm/corstone1000": ""},
     "data_bin_offset": "0x68100000",
     "binaries": {
         "application": "bl1.bin",
         "data": "flash.bin"
     },
-       "tests": {
-        'RegressionIPC': {
-            "monitors": monitors_s_reg_tests
-        },  # Regression
-
-    }  # Tests
+    "monitors": {
+        'reg_tests': [monitors_mcuboot_tests, monitors_s_reg_tests] if "FVP" in os.getenv('EXTRA_PARAMS') else [],
+    }
 }
 
-# FVP with BL2 bootloader
+# FVP with BL2 bootloader for AN521
 # application: --application cpu0=bl2.axf
 # data: --data cpu0=tfm_s_ns_signed.bin@0x10080000
 fvp_mps2_an521_bl2 = {
@@ -312,184 +156,21 @@
     "action_timeout": 10,
     "monitor_timeout": 15,
     "poweroff_timeout": 1,
-    "platforms": {"AN521": ""},
-    "compilers": ["GCC", "ARMCLANG"],
-    "build_types": ["Debug", "Release", "Minsizerel"],
-    "boot_types": ["BL2"],
+    "platforms": {"arm/mps2/an521": ""},
     "data_bin_offset": "0x10080000",
     "binaries": {
         "application": "bl2.axf",
         "data": "tfm_s_ns_signed.bin"
     },
-    "tests": {
-        'Default': {
-            "monitors": monitors_no_reg_tests
-        },  # Default
-        'DefaultProfileS': {
-            "monitors": monitors_no_reg_tests
-        },  # DefaultProfileS
-        'DefaultProfileM': {
-            "monitors": monitors_no_reg_tests
-        },  # DefaultProfileM
-        'DefaultProfileL': {
-            "monitors": monitors_no_reg_tests
-        },  # DefaultProfileL
-        'Regression': {
-            "monitors": monitors_ns_reg_tests
-        },  # Regression
-        'RegressionProfileM': {
-            "monitors": monitors_ns_reg_tests
-        },  # RegressionProfileM
-        'RegressionProfileS': {
-            "monitors": monitors_ns_reg_tests
-        },  # RegressionProfileS
-        'RegressionProfileL': {
-            "monitors": monitors_ns_reg_tests
-        },  # RegressionProfileL
-        'RegressionIPC': {
-            "monitors": monitors_ns_reg_tests
-        },  # Regression
-        'RegressionIPCTfmLevel2': {
-            "monitors": monitors_ns_reg_tests
-        },  # Regression
-        'RegressionIPCTfmLevel3': {
-            "monitors": monitors_ns_reg_tests
-        },  # Regression
-        'CoreIPC': {
-            "monitors": monitors_no_reg_tests
-        },  # CoreIPC
-        'CoreIPCTfmLevel2': {
-            "monitors": monitors_no_reg_tests
-        },  # CoreIPCTfmLevel2
-        'CoreIPCTfmLevel3': {
-            "monitors": monitors_no_reg_tests
-        },  # CoreIPCTfmLevel3
-        'PsaApiTest_Crypto': {
-            "monitors": monitors_psaapitest_by_ut,
-        }, # PsaApiTest_Crypto
-        'PsaApiTestIPC_Crypto': {
-            "monitors": monitors_psaapitest_by_ut,
-        },
-        'PsaApiTestIPCTfmLevel2_Crypto': {
-            "monitors": monitors_psaapitest_by_ut,
-        },
-        'PsaApiTestIPCTfmLevel3_Crypto': {
-            "monitors": monitors_psaapitest_by_ut,
-        },
-        'PsaApiTest_STORAGE': {
-            "monitors": monitors_psaapitest_by_desc,
-        }, # PsaApiTest_Storage
-
-        'PsaApiTestIPC_STORAGE': {
-            "monitors": monitors_psaapitest_by_desc,
-        }, # PsaApiTestIPC_Storage
-        'PsaApiTestIPCTfmLevel2_STORAGE': {
-            "monitors": monitors_psaapitest_by_desc,
-        },
-        'PsaApiTestIPCTfmLevel3_STORAGE': {
-            "monitors": monitors_psaapitest_by_desc,
-        },
-        'PsaApiTest_Attest': {
-            "monitors": monitors_psaapitest_by_ut,
-        }, # PsaApiTest_Attest
-        'PsaApiTestIPC_Attest': {
-            "monitors": monitors_psaapitest_by_ut,
-        }, # PsaApiTestIPC_Attest
-        'PsaApiTestIPCTfmLevel2_Attest': {
-            "monitors": monitors_psaapitest_by_ut,
-        },
-        'PsaApiTestIPCTfmLevel3_Attest': {
-            "monitors": monitors_psaapitest_by_ut,
-        },
-
-        'PsaApiTestIPC_FF': {
-            "monitors": monitors_psaapitest_ff,
-        },
-        'PsaApiTestIPCTfmLevel2_FF': {
-            "monitors": monitors_psaapitest_ff,
-        },
-
-    }  # Tests
+    "monitors": {
+        'no_reg_tests': [monitors_no_reg_tests],
+        'reg_tests': [monitors_mcuboot_tests, monitors_s_reg_tests, monitors_ns_reg_tests],
+        'arch_tests': [monitors_arch_tests],
+    }
 }
 
 
-# FVP without BL2 bootloader
-# application: --application cpu0=tfm_s.axf
-# data: --data cpu0=tfm_ns.bin@0x00100000
-fvp_mps2_an521_nobl2 = {
-    "templ": "fvp_mps2.jinja2",
-    "job_name": "fvp_mps2_an521_nobl2",
-    "device_type": "fvp",
-    "job_timeout": 15,
-    "action_timeout": 10,
-    "monitor_timeout": 15,
-    "poweroff_timeout": 1,
-    "platforms": {"AN521": ""},
-    "compilers": ["GCC", "ARMCLANG"],
-    "build_types": ["Debug", "Release", "Minsizerel"],
-    "boot_types": ["NOBL2"],
-    "data_bin_offset": "0x00100000",
-    "cpu_baseline": 1,
-    "binaries": {
-        "application": "tfm_s.axf",
-        "data": "tfm_ns.bin"
-    },
-    "tests": {
-        'Default': {
-            "monitors": monitors_no_reg_tests
-        },  # Default
-        'DefaultProfileS': {
-            "monitors": monitors_no_reg_tests
-        },  # DefaultProfileS
-        'DefaultProfileM': {
-            "monitors": monitors_no_reg_tests
-        },  # DefaultProfileM
-        'DefaultProfileL': {
-            "monitors": monitors_no_reg_tests
-        },  # DefaultProfileL
-        'Regression': {
-            "monitors": monitors_ns_reg_tests
-        },  # Regression
-        'RegressionProfileM': {
-            "monitors": monitors_ns_reg_tests
-        },  # RegressionProfileM
-        'RegressionProfileS': {
-            "monitors": monitors_ns_reg_tests
-        },  # RegressionProfileS
-        'RegressionProfileL': {
-            "monitors": monitors_ns_reg_tests
-        },  # RegressionProfileL
-        'RegressionIPC': {
-            "monitors": monitors_ns_reg_tests
-        },  # RegressionIPC
-        'RegressionIPCTfmLevel2': {
-            "monitors": monitors_ns_reg_tests
-        },  # RegressionIPCTfmLevel2
-        'RegressionIPCTfmLevel3': {
-            "monitors": monitors_ns_reg_tests
-        },  # RegressionIPCTfmLevel3
-        'CoreIPC': {
-            "monitors": monitors_no_reg_tests
-        },  # CoreIPC
-        'CoreIPCTfmLevel2': {
-            "monitors": monitors_no_reg_tests
-        },  # CoreIPCTfmLevel2
-        'CoreIPCTfmLevel3': {
-            "monitors": monitors_no_reg_tests
-        },  # CoreIPCTfmLevel3
-
-        'PsaApiTestIPC_FF': {
-            "monitors": monitors_psaapitest_ff,
-        },
-        'PsaApiTestIPCTfmLevel2_FF': {
-            "monitors": monitors_psaapitest_ff,
-        },
-
-    }  # Tests
-}
-
-
-# FVP with BL2 bootloader
+# FVP with BL2 bootloader for AN519
 # application: --application cpu0=bl2.axf
 # data: --data cpu0=tfm_s_ns_signed.bin@0x10080000
 fvp_mps2_an519_bl2 = {
@@ -500,108 +181,21 @@
     "action_timeout": 10,
     "monitor_timeout": 15,
     "poweroff_timeout": 1,
-    "platforms": {"AN519": ""},
-    "compilers": ["GCC", "ARMCLANG"],
-    "build_types": ["Debug", "Release", "Minsizerel"],
-    "boot_types": ["BL2"],
+    "platforms": {"arm/mps2/an519": ""},
     "data_bin_offset": "0x10080000",
     "cpu0_baseline": 1,
     "binaries": {
         "application": "bl2.axf",
         "data": "tfm_s_ns_signed.bin"
     },
-    "tests": {
-        'Default': {
-            "monitors": monitors_no_reg_tests
-        },  # Default
-        'DefaultProfileS': {
-            "monitors": monitors_no_reg_tests
-        },  # DefaultProfileS
-        'DefaultProfileM': {
-            "monitors": monitors_no_reg_tests
-        },  # DefaultProfileM
-        'Regression': {
-            "monitors": monitors_ns_reg_tests
-        },  # Regression
-        'RegressionProfileM': {
-            "monitors": monitors_ns_reg_tests
-        },  # RegressionProfileM
-        'RegressionProfileS': {
-            "monitors": monitors_ns_reg_tests
-        },  # RegressionProfileS
-        'RegressionIPC': {
-            "monitors": monitors_ns_reg_tests
-        },  # Regression
-        'RegressionIPCTfmLevel2': {
-            "monitors": monitors_ns_reg_tests
-        },  # Regression
-        'CoreIPC': {
-            "monitors": monitors_no_reg_tests
-        },  # CoreIPC
-        'CoreIPCTfmLevel2': {
-            "monitors": monitors_no_reg_tests
-        },  # CoreIPCTfmLevel2
-    }  # Tests
+    "monitors": {
+        'no_reg_tests': [monitors_no_reg_tests],
+        'reg_tests': [monitors_mcuboot_tests, monitors_s_reg_tests, monitors_ns_reg_tests],
+    }
 }
 
 
-# FVP without BL2 bootloader
-# application: --application cpu0=tfm_s.axf
-# data: --data cpu0=tfm_ns.bin@0x00100000
-fvp_mps2_an519_nobl2 = {
-    "templ": "fvp_mps2.jinja2",
-    "job_name": "fvp_mps2_an519_nobl2",
-    "device_type": "fvp",
-    "job_timeout": 15,
-    "action_timeout": 10,
-    "monitor_timeout": 15,
-    "poweroff_timeout": 1,
-    "platforms": {"AN519": ""},
-    "compilers": ["GCC", "ARMCLANG"],
-    "build_types": ["Debug", "Release", "Minsizerel"],
-    "boot_types": ["NOBL2"],
-    "data_bin_offset": "0x00100000",
-    "cpu0_baseline": 1,
-    "binaries": {
-        "application": "tfm_s.axf",
-        "data": "tfm_ns.bin"
-    },
-    "tests": {
-        'Default': {
-            "monitors": monitors_no_reg_tests
-        },  # Default
-        'DefaultProfileS': {
-            "monitors": monitors_no_reg_tests
-        },  # DefaultProfileS
-        'DefaultProfileM': {
-            "monitors": monitors_no_reg_tests
-        },  # DefaultProfileM
-        'Regression': {
-            "monitors": monitors_ns_reg_tests
-        },  # Regression
-        'RegressionProfileM': {
-            "monitors": monitors_ns_reg_tests
-        },  # RegressionProfileM
-        'RegressionProfileS': {
-            "monitors": monitors_ns_reg_tests
-        },  # RegressionProfileS
-        'RegressionIPC': {
-            "monitors": monitors_ns_reg_tests
-        },  # RegressionIPC
-        'RegressionIPCTfmLevel2': {
-            "monitors": monitors_ns_reg_tests
-        },  # RegressionIPCTfmLevel2
-        'CoreIPC': {
-            "monitors": monitors_no_reg_tests
-        },  # CoreIPC
-        'CoreIPCTfmLevel2': {
-            "monitors": monitors_no_reg_tests
-        },  # CoreIPCTfmLevel2
-    }  # Tests
-}
-
-
-# QEMU for MPS2 with BL2 bootloader
+# QEMU for AN521 with BL2 bootloader
 qemu_mps2_bl2 = {
     "templ": "qemu_mps2_bl2.jinja2",
     "job_name": "qemu_mps2_bl2",
@@ -610,30 +204,13 @@
     "action_timeout": 10,
     "monitor_timeout": 15,
     "poweroff_timeout": 1,
-    "platforms": {"AN521": ""},
-    "compilers": ["GCC", "ARMCLANG"],
-    "build_types": ["Debug", "Release"],
-    "boot_types": ["BL2"],
+    "platforms": {"arm/mps2/an521": ""},
     "binaries": {
         "firmware": "tfm_s_ns_signed.bin",
         "bootloader": "bl2.bin"
     },
-    "tests": {
-        'Regression': {
-            "monitors": monitors_ns_reg_tests
-        },  # Regression
-        'RegressionProfileS': {
-            "monitors": monitors_ns_reg_tests
-        },  # RegressionProfileS
-        'RegressionIPC': {
-            "monitors": monitors_ns_reg_tests
-        },  # Regression
-        'RegressionIPCTfmLevel2': {
-            "monitors": monitors_ns_reg_tests
-        },  # Regression
-        'RegressionIPCTfmLevel3': {
-            "monitors": monitors_ns_reg_tests
-        },  # Regression
+    "monitors": {
+        'reg_tests': [monitors_mcuboot_tests, monitors_s_reg_tests, monitors_ns_reg_tests],
     }
 }
 
@@ -649,51 +226,14 @@
     "action_timeout": 20,
     "monitor_timeout": 30,
     "poweroff_timeout": 40,
-    "platforms": {"MUSCA_B1": ""},
-    "compilers": ["GCC", "ARMCLANG"],
-    "build_types": ["Debug", "Release", "Minsizerel"],
-    "boot_types": ["BL2"],
+    "platforms": {"arm/musca_b1": ""},
     "binaries": {
         "firmware": "tfm.hex",
     },
-    "tests": {
-        "Default": {
-            "monitors": monitors_no_reg_tests
-        },
-        "CoreIPC": {
-            "monitors": monitors_no_reg_tests
-        },
-        "CoreIPCTfmLevel2": {
-            "monitors": monitors_no_reg_tests
-        },
-        "CoreIPCTfmLevel3": {
-            "monitors": monitors_no_reg_tests
-        },
-        "DefaultProfileM": {
-            "monitors": monitors_no_reg_tests
-        },
-        "DefaultProfileS": {
-            "monitors": monitors_no_reg_tests
-        },
-        "Regression": {
-            "monitors": monitors_ns_reg_tests
-        },
-        "RegressionIPC": {
-            "monitors": monitors_ns_reg_tests
-        },
-        "RegressionIPCTfmLevel2": {
-            "monitors": monitors_ns_reg_tests
-        },
-        "RegressionIPCTfmLevel3": {
-            "monitors": monitors_ns_reg_tests
-        },
-        "RegressionProfileM": {
-            "monitors": monitors_ns_reg_tests
-        },
-        "RegressionProfileS": {
-            "monitors": monitors_ns_reg_tests
-        },
-    },
+    "monitors": {
+        'no_reg_tests': [monitors_no_reg_tests],
+        'reg_tests': [monitors_mcuboot_tests, monitors_s_reg_tests, monitors_ns_reg_tests],
+    }
 }
 
 # STM32L562E-DK
@@ -705,27 +245,13 @@
     "action_timeout": 15,
     "monitor_timeout": 15,
     "poweroff_timeout": 5,
-    "platforms": {"stm32l562e_dk": ""},
-    "compilers": ["GCC", "ARMCLANG"],
-    "build_types": ["Release", "Minsizerel"],
-    "boot_types": ["BL2"],
+    "platforms": {"stm/stm32l562e_dk": ""},
     "binaries": {
         "tarball": "stm32l562e-dk-tfm.tar.bz2",
     },
-    "tests": {
-        "Regression": {
-            "monitors": monitors_ns_reg_tests
-        },
-        "RegressionIPC": {
-            "monitors": monitors_ns_reg_tests
-        },
-        "RegressionIPCTfmLevel2": {
-            "monitors": monitors_ns_reg_tests
-        },
-        "RegressionIPCTfmLevel3": {
-            "monitors": monitors_ns_reg_tests
-        },
-    },
+    "monitors": {
+        'reg_tests': [monitors_mcuboot_tests, monitors_s_reg_tests, monitors_ns_reg_tests],
+    }
 }
 
 # LPCxpresso55S69
@@ -737,20 +263,13 @@
     "action_timeout": 15,
     "monitor_timeout": 15,
     "poweroff_timeout": 5,
-    "platforms": {"lpcxpresso55s69": ""},
-    "compilers": ["GCC"],
-    "build_types": ["Relwithdebinfo"],
-    "boot_types": ["NOBL2"],
+    "platforms": {"nxp/lpcxpresso55s69": ""},
     "binaries": {
         "tarball": "lpcxpresso55s69-tfm.tar.bz2",
     },
-    "tests": {
-        "DefaultProfileM": {
-            "monitors": monitors_no_reg_tests
-        },
-        "RegressionProfileM": {
-            "monitors": monitors_ns_reg_tests
-        },
+    "monitors": {
+        'no_reg_tests': [monitors_no_reg_tests],
+        'reg_tests': [monitors_s_reg_tests, monitors_ns_reg_tests],
     }
 }
 
@@ -763,28 +282,14 @@
     "action_timeout": 120,
     "monitor_timeout": 120,
     "poweroff_timeout": 5,
-    "platforms": {"psoc64": ""},
-    "compilers": ["GCC", "ARMCLANG"],
-    "build_types": ["Release", "Minsizerel"],
-    "boot_types": ["NOBL2"],
+    "platforms": {"cypress/psoc64": ""},
     "binaries": {
         "spe": "tfm_s_signed.hex",
         "nspe": "tfm_ns_signed.hex",
     },
-    "tests": {
-        "Regression": {
-            "monitors": monitors_ns_reg_tests
-        },
-        "RegressionIPC": {
-            "monitors": monitors_ns_reg_tests
-        },
-        "RegressionIPCTfmLevel2": {
-            "monitors": monitors_ns_reg_tests
-        },
-        "RegressionIPCTfmLevel3": {
-            "monitors": monitors_ns_reg_tests
-        },
-    },
+    "monitors": {
+        'reg_tests': [monitors_s_reg_tests, monitors_ns_reg_tests],
+    }
 }
 
 # All configurations should be mapped here
@@ -793,9 +298,7 @@
     "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,
-    "fvp_mps2_an519_nobl2": fvp_mps2_an519_nobl2,
     "qemu_mps2_bl2": qemu_mps2_bl2,
     "musca_b1": musca_b1_bl2,
     "stm32l562e_dk": stm32l562e_dk,
@@ -811,12 +314,8 @@
     "action_timeout",
     "monitor_timeout",
     "recovery_store_url",
-    "artifact_store_url",
     "platforms",
-    "compilers",
-    "build_types",
-    "boot_types",
-    "tests"
+    "monitors"
 ]
 
 lava_gen_monitor_sort_order = [
diff --git a/lava_helper/lava_submit_jobs.py b/lava_helper/lava_submit_jobs.py
index 655417d..7f36f26 100755
--- a/lava_helper/lava_submit_jobs.py
+++ b/lava_helper/lava_submit_jobs.py
@@ -18,7 +18,6 @@
 import glob
 import argparse
 from lava_helper import test_lava_dispatch_credentials
-from lava_helper_configs import *
 
 
 def list_files_from_dir(user_args, job_dir=""):
diff --git a/lava_helper/lava_wait_jobs.py b/lava_helper/lava_wait_jobs.py
index 80bd3fd..abd9c8a 100755
--- a/lava_helper/lava_wait_jobs.py
+++ b/lava_helper/lava_wait_jobs.py
@@ -16,46 +16,16 @@
 """
 
 import os
-import sys
 import time
 import yaml
 import argparse
-import csv
 import shutil
 from jinja2 import Environment, FileSystemLoader
-from lava_helper_configs import *
 from lava_helper import test_lava_dispatch_credentials
 from lava_submit_jobs import submit_lava_jobs
 import codecov_helper
 
 
-cfgs = ["Default", "CoreIPC", "CoreIPCTfmLevel2", "CoreIPCTfmLevel3",
-        "Regression", "RegressionIPC",
-        "RegressionIPCTfmLevel2", "RegressionIPCTfmLevel3",
-        "DefaultProfileS", "RegressionProfileS",
-        "DefaultProfileM", "RegressionProfileM", "RegressionProfileM PSOFF",
-        "DefaultProfileL", "RegressionProfileL",
-        "PsaApiTest (Attest)", "PsaApiTestIPC (Attest)",
-        "PsaApiTestIPCTfmLevel2 (Attest)",
-        "PsaApiTest (Crypto)", "PsaApiTestIPC (Crypto)",
-        "PsaApiTestIPCTfmLevel2 (Crypto)",
-        "PsaApiTest (PS)", "PsaApiTestIPC (PS)",
-        "PsaApiTestIPCTfmLevel2 (PS)",
-        "PsaApiTest (ITS)", "PsaApiTestIPC (ITS)",
-        "PsaApiTestIPCTfmLevel2 (ITS)",
-        "PsaApiTestIPC (FF)",
-        "PsaApiTestIPCTfmLevel2 (FF)",
-        "PsaApiTest (STORAGE)",
-        "PsaApiTestIPC (STORAGE)",
-        "PsaApiTestIPCTfmLevel2 (STORAGE)",
-        "PsaApiTestIPCTfmLevel3 (STORAGE)",
-        "PsaApiTestIPCTfmLevel3 (ITS)", "PsaApiTestIPCTfmLevel3 (PS)",
-        "PsaApiTestIPCTfmLevel3 (Crypto)", "PsaApiTestIPCTfmLevel3 (Attest)",
-        "PsaApiTestIPCTfmLevel3 (FF)"]
-
-# Convert test config identifiers to LAVA naming convention.
-cfgs = [x.replace(" (", "_").replace(")", "") for x in cfgs]
-
 def wait_for_jobs(user_args):
     job_list = user_args.job_ids.split(",")
     job_list = [int(x) for x in job_list if x != '']
@@ -68,7 +38,6 @@
         finished_jobs.update(finished_resubmit_jobs)
     return finished_jobs
 
-
 def process_finished_jobs(finished_jobs, user_args):
     print_lava_urls(finished_jobs, user_args)
     test_report(finished_jobs, user_args)
@@ -77,7 +46,6 @@
     csv_report(finished_jobs)
     codecov_helper.coverage_reports(finished_jobs, user_args)
 
-
 def get_finished_jobs(job_list, user_args, lava):
     finished_jobs = lava.block_wait_for_jobs(job_list, user_args.dispatch_timeout, 5)
     unfinished_jobs = [item for item in job_list if item not in finished_jobs]
@@ -110,7 +78,6 @@
     resubmitted_jobs = [int(x) for x in resubmitted_jobs if x != '']
     return resubmitted_jobs
 
-
 def fetch_artifacts(jobs, user_args, lava):
     if not user_args.artifacts_path:
         return
@@ -163,8 +130,8 @@
             if info['metadata']['platform']   == record["Platform"] and \
                info['metadata']['compiler']   == record["Compiler"] and \
                info['metadata']['build_type'] == record["Build Type"]:
-                if record[info['metadata']['name']] != "FAIL":
-                    record[info['metadata']['name']] = generateTestResult(info)
+                if record[info['metadata']['build_name']] != "FAIL":
+                    record[info['metadata']['build_name']] = generateTestResult(info)
                 exist = True
                 break
         if not exist:
@@ -172,14 +139,14 @@
             record["Platform"] = info['metadata']['platform']
             record["Compiler"] = info['metadata']['compiler']
             record["Build Type"] = info['metadata']['build_type']
-            record["Config Name"] = info['metadata']['name']
+            record["Config Name"] = info['metadata']['build_name']
             for cfg in cfgs:
                 record[cfg] = "N.A."
             record[info['metadata']['name']] = generateTestResult(info)
             lava_jobs.append(record)
     lava_jobs.sort(key=lambda x: x["Platform"] + x["Compiler"] + x["Build Type"])
     with open("test_results.csv", "w", newline="") as csvfile:
-        fieldnames = ["Platform", "Compiler", "Build Type"] + cfgs
+        fieldnames = ["Platform", "Compiler", "Build Type"] + list(cfgs)
         writer = csv.DictWriter(csvfile, fieldnames=fieldnames, extrasaction='ignore')
 
         writer.writeheader()
