Add STM32H573i-DK platform

Signed-off-by: Arthur She <arthur.she@linaro.org>
Change-Id: I7aceb3ef7fdff7eaf149149a4d5f2b861611fe12
diff --git a/build_helper/build_helper_config_maps.py b/build_helper/build_helper_config_maps.py
index c9022e2..04f74d0 100644
--- a/build_helper/build_helper_config_maps.py
+++ b/build_helper/build_helper_config_maps.py
@@ -34,6 +34,7 @@
     "nxp/lpcxpresso55s69"                : "lpcxpresso55s69",
     "stm/stm32l562e_dk"                  : "stm32l562e_dk",
     "stm/b_u585i_iot02a"                 : "b_u585i_iot02a",
+    "stm/stm32h573i_dk"                  : "stm32h573i_dk",
     "stm/nucleo_l552ze_q"                : "nucleo_l552ze_q",
 }
 
diff --git a/build_helper/build_helper_configs.py b/build_helper/build_helper_configs.py
index 8e663b3..a15d489 100755
--- a/build_helper/build_helper_configs.py
+++ b/build_helper/build_helper_configs.py
@@ -131,7 +131,17 @@
                                           "bin/tfm_s_signed.bin "
                                           "image_signing/scripts/tfm_ns_signed.bin ;"
                                           "popd"),
-                  "nxp/lpcxpresso55s69": ("echo 'LPCXpresso55S69 board post process\n';"
+                   "stm/stm32h573i_dk": ("echo 'STM32H573I-DK board post process';"
+                                          "%(ci_build_root_dir)s/spe/api_ns/postbuild.sh;"
+                                          "pushd %(ci_build_root_dir)s/spe/api_ns;"
+                                          "mkdir -p image_signing/scripts ;"
+                                          "cp %(ci_build_root_dir)s/nspe/bin/tfm_ns_signed.bin image_signing/scripts ;"
+                                          "tar jcf ./bin/stm32h573i_dk-tfm.tar.bz2 regression.sh TFM_UPDATE.sh "
+                                          "bin/bl2.bin "
+                                          "bin/tfm_s_signed.bin "
+                                          "image_signing/scripts/tfm_ns_signed.bin ;"
+                                          "popd"),
+                   "nxp/lpcxpresso55s69": ("echo 'LPCXpresso55S69 board post process\n';"
                                             "if [ -f \"%(ci_build_root_dir)s/spe/bin/bl2.hex\" ]; then FLASH_FILE='flash_bl2_JLink.py'; else FLASH_FILE='flash_JLink.py'; fi;"
                                             "mkdir -p %(codebase_root_dir)s/build/bin ;"
                                             # Workaround for flash_JLink.py
@@ -317,6 +327,12 @@
                     # b_u585i_iot02a_ARMCLANG_2_RegS_RegNS_Release_BL2
                     ("stm/b_u585i_iot02a", "ARMCLANG_6_21", "2",
                      "RegS, RegNS", "OFF", "Release", True, "", ""),
+                    # stm32h573i_dk_GCC_1_RegS_RegNS_Release_BL2
+                    ("stm/stm32h573i_dk", "GCC_10_3", "1",
+                     "RegS, RegNS", "OFF", "Release", True, "", ""),
+                    # stm32h573i_dk_ARMCLANG_2_RegS_RegNS_Release_BL2
+                    ("stm/stm32h573i_dk", "ARMCLANG_6_21", "2",
+                     "RegS, RegNS", "OFF", "Release", True, "", ""),
                     # psoc64_GCC_2_RegS_RegNS_Release
                     ("cypress/psoc64", "GCC_10_3", "2",
                      "RegS, RegNS", "OFF", "Release", False, "", ""),
@@ -906,6 +922,21 @@
                 "invalid": _common_tfm_invalid_configs + []
                 }
 
+config_stm32h573i_dk = {"seed_params": {
+                "tfm_platform":     ["stm/stm32h573i_dk"],
+                "compiler":         ["GCC_10_3", "ARMCLANG_6_21"],
+                "isolation_level":  ["1", "2"],
+                "test_regression":  ["OFF", "RegS, RegNS"],
+                "test_psa_api":     ["OFF"],
+                "cmake_build_type": ["Release"],
+                "with_bl2":         [True],
+                "profile":          [""],
+                "extra_params":     [""]
+                },
+                "common_params": _common_tfm_builder_cfg,
+                "invalid": _common_tfm_invalid_configs + []
+                }
+
 config_nucleo_l552ze_q = {"seed_params": {
                 "tfm_platform":     ["stm/nucleo_l552ze_q"],
                 "compiler":         ["GCC_10_3"],
@@ -1125,6 +1156,7 @@
                     "nightly_psoc64": config_psoc64,
                     "nightly_stm32l562e_dk": config_stm32l562e_dk,
                     "nightly_b_u585i_iot02a": config_b_u585i_iot02a,
+                    "nightly_stm32h573i_dk": config_stm32h573i_dk,
                     "nightly_lpcxpresso55s69": config_lpcxpresso55s69,
 
                     # release test groups
@@ -1147,6 +1179,7 @@
                     "release_psoc64": config_psoc64,
                     "release_stm32l562e_dk": config_stm32l562e_dk,
                     "release_b_u585i_iot02a": config_b_u585i_iot02a,
+                    "release_stm32h573i_dk": config_stm32h573i_dk,
                     "release_lpcxpresso55s69": config_lpcxpresso55s69,
 
                     # code coverage test groups
@@ -1177,6 +1210,7 @@
                     "corstone1000": config_corstone1000,
                     "stm_stm32l562e_dk": config_stm32l562e_dk,
                     "stm_b_u585i_iot02a": config_b_u585i_iot02a,
+                    "stm_stm32h573i_dk": config_stm32h573i_dk,
                     "stm_nucleo_l552ze_q": config_nucleo_l552ze_q,
                     "nxp_lpcxpresso55s69": config_lpcxpresso55s69,
                     "laird_bl5340": config_bl5340,
diff --git a/lava_helper/jinja2_templates/stm32h573i_dk.jinja2 b/lava_helper/jinja2_templates/stm32h573i_dk.jinja2
new file mode 100644
index 0000000..c1aa3c4
--- /dev/null
+++ b/lava_helper/jinja2_templates/stm32h573i_dk.jinja2
@@ -0,0 +1,45 @@
+{#------------------------------------------------------------------------------
+# Copyright (c) 2020-2023, Arm Limited and Contributors. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+#-----------------------------------------------------------------------------#}
+{% extends 'jinja2_templates/base.jinja2' %}
+{% block actions %}
+actions:
+    - deploy:
+        timeout:
+          minutes: 12
+        to: flasher
+        images:
+          tarball:
+            url: {{ tarball_url }}
+
+    - boot:
+        method: minimal
+
+    - test:
+        monitors:
+        {%- for monitor in monitors %}
+        - name: "{{monitor.name}}"
+          start: "{{monitor.start}}"
+          end: "{{monitor.end}}"
+          pattern: "{{monitor.pattern}}"
+          fixupdict:
+              '{{monitor.fixup.pass}}': pass
+              '{{monitor.fixup.fail}}': fail
+              {%- if monitor.fixup.skip %}
+              '{{monitor.fixup.skip}}': skip
+              {%- endif %}
+        {% endfor %}
+{% endblock %}
+
+{% block metadata %}
+metadata:
+  build_no: {{ build_no }}
+  name: {{ name }}
+  platform: {{ platform }}
+  build_name: {{ build_name }}
+  device_type: {{ device_type }}
+  build_job_url: {{ build_job_url }}
+{% endblock %}
diff --git a/lava_helper/lava_helper_configs.py b/lava_helper/lava_helper_configs.py
index 95fb698..d842fe8 100644
--- a/lava_helper/lava_helper_configs.py
+++ b/lava_helper/lava_helper_configs.py
@@ -285,6 +285,24 @@
     }
 }
 
+# STM32H5 STM32H573I-DK
+stm32h573i_dk = {
+    "templ": "stm32h573i_dk.jinja2",
+    "job_name": "stm32h573i_dk",
+    "device_type": "stm32h573i-dk",
+    "job_timeout": 5,
+    "action_timeout": 3,
+    "monitor_timeout": 3,
+    "poweroff_timeout": 2,
+    "platforms": {"stm/stm32h573i_dk": ""},
+    "binaries": {
+        "tarball": "spe/api_ns/bin/stm32h573i_dk-tfm.tar.bz2",
+    },
+    "monitors": {
+        'reg_tests': reg_tests_monitors,
+    }
+}
+
 # LPCxpresso55S69
 lpcxpresso55s69 = {
     "templ": "lpcxpresso55s69.jinja2",
@@ -335,6 +353,7 @@
     "musca_b1": musca_b1_bl2,
     "stm32l562e_dk": stm32l562e_dk,
     "b_u585i_iot02a": b_u585i_iot02a,
+    "stm32h573i_dk": stm32h573i_dk
 }
 
 # Configs without bl2