Add local CI scripts for TFM 1.0 release

These scripts are based on current CI scripts
    iot-sw/tfm-ci-scripts with commit 5acf417

Major changes:
    Add configs to build all combinations for release required
    Codebase dynamically change when build PSA suite and OTP for parallel
    Build rules for PSA DEV API/PSA FF/ARCH TEST/OTP
    Build with parallel as much at it can be on the host
    Add test PSA ARCH on AN521 FVP for PSA DEV API
    Support PSA FF/DEV API tests on AN521 FVP
    Add “Minsizerel” type support for FVP tests
    Some hard-code or temporary changes that need to refine

Change-Id: I497b97e7cc57924295321259068b333a81a8f1a6
Signed-off-by: Karl Zhang <karl.zhang@arm.com>
diff --git a/fastmodel_dispatcher/AN521.py b/fastmodel_dispatcher/AN521.py
index 8953aa1..533ae5a 100644
--- a/fastmodel_dispatcher/AN521.py
+++ b/fastmodel_dispatcher/AN521.py
@@ -32,7 +32,10 @@
 
     from tfm_ci_pylib.fastmodel_wrapper import \
         template_default_config, template_regression_config, \
-        template_coreipc_config, template_coreipctfmlevel2_config
+        template_coreipc_config, template_coreipctfmlevel2_config, \
+        template_regressionipc_config, template_regressionipctfmlevel2_config, \
+        template_psaapitestipctfmlevel2_config, \
+        template_psaapitestipc_config, template_psaapitest_config
 except ImportError:
     dir_path = os.path.dirname(os.path.realpath(__file__))
     sys.path.append(os.path.join(dir_path, "../"))
@@ -40,7 +43,10 @@
     from tfm_ci_pylib.fastmodel_wrapper import config_variant
     from tfm_ci_pylib.fastmodel_wrapper import \
         template_default_config, template_regression_config, \
-        template_coreipc_config, template_coreipctfmlevel2_config
+        template_coreipc_config, template_coreipctfmlevel2_config, \
+        template_regressionipc_config, template_regressionipctfmlevel2_config, \
+        template_psaapitestipctfmlevel2_config, \
+        template_psaapitestipc_config, template_psaapitest_config
 
 # =====================  AN521 Configuration Classes ======================
 # Configurations will be dynamically defined
@@ -111,6 +117,37 @@
 class an521_gnuarm_configdefault_release_nobl2(template_default_config):
     pass
 
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                build_type="Minsizerel",
+                bootloader="BL2")
+class an521_armclang_configdefault_minsizerel_bl2(template_default_config):
+    pass
+
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                build_type="Minsizerel",
+                bootloader="BL2")
+class an521_gnuarm_configdefault_minsizerel_bl2(template_default_config):
+    pass
+
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                build_type="Minsizerel",
+                bootloader="NOBL2")
+class an521_armclang_configdefault_minsizerel_nobl2(template_default_config):
+    pass
+
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                build_type="Minsizerel",
+                bootloader="NOBL2")
+class an521_gnuarm_configdefault_minsizerel_nobl2(template_default_config):
+    pass
+
 # =====================  Regressions Config ======================
 
 @config_variant(platform="AN521",
@@ -177,6 +214,233 @@
 class an521_gnuarm_configregression_release_nobl2(template_regression_config):
     pass
 
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                build_type="Minsizerel",
+                bootloader="BL2")
+class an521_armclang_configregression_minsizerel_bl2(template_regression_config):
+    pass
+
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                build_type="Minsizerel",
+                bootloader="BL2")
+class an521_gnuarm_configregression_minsizerel_bl2(template_regression_config):
+    pass
+
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                build_type="Minsizerel",
+                bootloader="NOBL2")
+class an521_armclang_configregression_minsizerel_nobl2(template_regression_config):
+    pass
+
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                build_type="Minsizerel",
+                bootloader="NOBL2")
+class an521_gnuarm_configregression_minsizerel_nobl2(template_regression_config):
+    pass
+
+# =====================  RegressionIPC Config ======================
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                build_type="Debug",
+                bootloader="BL2")
+class an521_armclang_configregressionipc_debug_bl2(template_regressionipc_config):
+    pass
+
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                build_type="Debug",
+                bootloader="BL2")
+class an521_gnuarm_configregressionipc_debug_bl2(template_regressionipc_config):
+    pass
+
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                build_type="Debug",
+                bootloader="NOBL2")
+class an521_armclang_configregressionipc_debug_nobl2(template_regressionipc_config):
+    pass
+
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                build_type="Debug",
+                bootloader="NOBL2")
+class an521_gnuarm_configregressionipc_debug_nobl2(template_regressionipc_config):
+    pass
+
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                build_type="Release",
+                bootloader="BL2")
+class an521_armclang_configregressionipc_release_bl2(template_regressionipc_config):
+    pass
+
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                build_type="Release",
+                bootloader="BL2")
+class an521_gnuarm_configregressionipc_release_bl2(template_regressionipc_config):
+    pass
+
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                build_type="Release",
+                bootloader="NOBL2")
+class an521_armclang_configregressionipc_release_nobl2(
+        template_regressionipc_config):
+    pass
+
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                build_type="Release",
+                bootloader="NOBL2")
+class an521_gnuarm_configregressionipc_release_nobl2(template_regressionipc_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                build_type="Minsizerel",
+                bootloader="BL2")
+class an521_armclang_configregressionipc_minsizerel_bl2(template_regressionipc_config):
+    pass
+
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                build_type="Minsizerel",
+                bootloader="BL2")
+class an521_gnuarm_configregressionipc_minsizerel_bl2(template_regressionipc_config):
+    pass
+
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                build_type="Minsizerel",
+                bootloader="NOBL2")
+class an521_armclang_configregressionipc_minsizerel_nobl2(
+        template_regressionipc_config):
+    pass
+
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                build_type="Minsizerel",
+                bootloader="NOBL2")
+class an521_gnuarm_configregressionipc_minsizerel_nobl2(template_regressionipc_config):
+    pass
+
+# =====================  RegressionIPCTfmLevel2 Config ======================
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                build_type="Debug",
+                bootloader="BL2")
+class an521_armclang_configregressionipctfmlevel2_debug_bl2(template_regressionipctfmlevel2_config):
+    pass
+
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                build_type="Debug",
+                bootloader="BL2")
+class an521_gnuarm_configregressionipctfmlevel2_debug_bl2(template_regressionipctfmlevel2_config):
+    pass
+
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                build_type="Debug",
+                bootloader="NOBL2")
+class an521_armclang_configregressionipctfmlevel2_debug_nobl2(template_regressionipctfmlevel2_config):
+    pass
+
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                build_type="Debug",
+                bootloader="NOBL2")
+class an521_gnuarm_configregressionipctfmlevel2_debug_nobl2(template_regressionipctfmlevel2_config):
+    pass
+
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                build_type="Release",
+                bootloader="BL2")
+class an521_armclang_configregressionipctfmlevel2_release_bl2(template_regressionipctfmlevel2_config):
+    pass
+
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                build_type="Release",
+                bootloader="BL2")
+class an521_gnuarm_configregressionipctfmlevel2_release_bl2(template_regressionipctfmlevel2_config):
+    pass
+
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                build_type="Release",
+                bootloader="NOBL2")
+class an521_armclang_configregressionipctfmlevel2_release_nobl2(
+        template_regressionipctfmlevel2_config):
+    pass
+
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                build_type="Release",
+                bootloader="NOBL2")
+class an521_gnuarm_configregressionipctfmlevel2_release_nobl2(template_regressionipctfmlevel2_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                build_type="Minsizerel",
+                bootloader="BL2")
+class an521_armclang_configregressionipctfmlevel2_minsizerel_bl2(template_regressionipctfmlevel2_config):
+    pass
+
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                build_type="Minsizerel",
+                bootloader="BL2")
+class an521_gnuarm_configregressionipctfmlevel2_minsizerel_bl2(template_regressionipctfmlevel2_config):
+    pass
+
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                build_type="Minsizerel",
+                bootloader="NOBL2")
+class an521_armclang_configregressionipctfmlevel2_minsizerel_nobl2(
+        template_regressionipctfmlevel2_config):
+    pass
+
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                build_type="Minsizerel",
+                bootloader="NOBL2")
+class an521_gnuarm_configregressionipctfmlevel2_minsizerel_nobl2(template_regressionipctfmlevel2_config):
+    pass
+
 # =====================  CoreIPC Config ======================
 
 
@@ -247,6 +511,36 @@
 class an521_gnuarm_configcoreipc_release_nobl2(template_coreipc_config):
     pass
 
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                build_type="Minsizerel",
+                bootloader="BL2")
+class an521_armclang_configcoreipc_minsizerel_bl2(template_coreipc_config):
+
+    pass
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                build_type="Minsizerel",
+                bootloader="NOBL2")
+class an521_armclang_configcoreipc_minsizerel_nobl2(template_coreipc_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                build_type="Minsizerel",
+                bootloader="BL2")
+class an521_gnuarm_configcoreipc_minsizerel_bl2(template_coreipc_config):
+
+    pass
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                build_type="Minsizerel",
+                bootloader="NOBL2")
+class an521_gnuarm_configcoreipc_minsizerel_nobl2(template_coreipc_config):
+    pass
+
 # =====================  CoreIPCTfmLevel2 Config ======================
 
 
@@ -313,6 +607,714 @@
 class an521_gnuarm_configcoreipctfmlevel2_release_nobl2(template_coreipctfmlevel2_config):
     pass
 
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                build_type="Minsizerel",
+                bootloader="BL2")
+class an521_armclang_configcoreipctfmlevel2_minsizerel_bl2(template_coreipctfmlevel2_config):
+    pass
+
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                build_type="Minsizerel",
+                bootloader="NOBL2")
+class an521_armclang_configcoreipctfmlevel2_minsizerel_nobl2(template_coreipctfmlevel2_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                build_type="Minsizerel",
+                bootloader="BL2")
+class an521_gnuarm_configcoreipctfmlevel2_minsizerel_bl2(template_coreipctfmlevel2_config):
+    pass
+
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                build_type="Minsizerel",
+                bootloader="NOBL2")
+class an521_gnuarm_configcoreipctfmlevel2_minsizerel_nobl2(template_coreipctfmlevel2_config):
+    pass
+
+# =====================  ConfigPsaApiTestIPCTfmLevel2 Config ======================
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                psa_suite="Crypto",
+                build_type="Debug",
+                bootloader="BL2")
+class an521_gnuarm_configpsaapitestipctfmlevel2_crypto_debug_bl2(template_psaapitestipctfmlevel2_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                psa_suite="Crypto",
+                build_type="Release",
+                bootloader="BL2")
+class an521_gnuarm_configpsaapitestipctfmlevel2_crypto_release_bl2(template_psaapitestipctfmlevel2_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                psa_suite="Crypto",
+                build_type="Minsizerel",
+                bootloader="BL2")
+class an521_gnuarm_configpsaapitestipctfmlevel2_crypto_minsizerel_bl2(template_psaapitestipctfmlevel2_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                psa_suite="PS",
+                build_type="Debug",
+                bootloader="BL2")
+class an521_gnuarm_configpsaapitestipctfmlevel2_ps_debug_bl2(template_psaapitestipctfmlevel2_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                psa_suite="PS",
+                build_type="Release",
+                bootloader="BL2")
+class an521_gnuarm_configpsaapitestipctfmlevel2_ps_release_bl2(template_psaapitestipctfmlevel2_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                psa_suite="PS",
+                build_type="Minsizerel",
+                bootloader="BL2")
+class an521_gnuarm_configpsaapitestipctfmlevel2_ps_minsizerel_bl2(template_psaapitestipctfmlevel2_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                psa_suite="ITS",
+                build_type="Debug",
+                bootloader="BL2")
+class an521_gnuarm_configpsaapitestipctfmlevel2_its_debug_bl2(template_psaapitestipctfmlevel2_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                psa_suite="ITS",
+                build_type="Release",
+                bootloader="BL2")
+class an521_gnuarm_configpsaapitestipctfmlevel2_its_release_bl2(template_psaapitestipctfmlevel2_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                psa_suite="ITS",
+                build_type="Minsizerel",
+                bootloader="BL2")
+class an521_gnuarm_configpsaapitestipctfmlevel2_its_minsizerel_bl2(template_psaapitestipctfmlevel2_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                psa_suite="Attest",
+                build_type="Debug",
+                bootloader="BL2")
+class an521_gnuarm_configpsaapitestipctfmlevel2_attest_debug_bl2(template_psaapitestipctfmlevel2_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                psa_suite="Attest",
+                build_type="Release",
+                bootloader="BL2")
+class an521_gnuarm_configpsaapitestipctfmlevel2_attest_release_bl2(template_psaapitestipctfmlevel2_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                psa_suite="Attest",
+                build_type="Minsizerel",
+                bootloader="BL2")
+class an521_gnuarm_configpsaapitestipctfmlevel2_attest_minsizerel_bl2(template_psaapitestipctfmlevel2_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                psa_suite="Crypto",
+                build_type="Debug",
+                bootloader="BL2")
+class an521_armclang_configpsaapitestipctfmlevel2_crypto_debug_bl2(template_psaapitestipctfmlevel2_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                psa_suite="Crypto",
+                build_type="Release",
+                bootloader="BL2")
+class an521_armclang_configpsaapitestipctfmlevel2_crypto_release_bl2(template_psaapitestipctfmlevel2_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                psa_suite="Crypto",
+                build_type="Minsizerel",
+                bootloader="BL2")
+class an521_armclang_configpsaapitestipctfmlevel2_crypto_minsizerel_bl2(template_psaapitestipctfmlevel2_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                psa_suite="PS",
+                build_type="Debug",
+                bootloader="BL2")
+class an521_armclang_configpsaapitestipctfmlevel2_ps_debug_bl2(template_psaapitestipctfmlevel2_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                psa_suite="PS",
+                build_type="Release",
+                bootloader="BL2")
+class an521_armclang_configpsaapitestipctfmlevel2_ps_release_bl2(template_psaapitestipctfmlevel2_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                psa_suite="PS",
+                build_type="Minsizerel",
+                bootloader="BL2")
+class an521_armclang_configpsaapitestipctfmlevel2_ps_minsizerel_bl2(template_psaapitestipctfmlevel2_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                psa_suite="ITS",
+                build_type="Debug",
+                bootloader="BL2")
+class an521_armclang_configpsaapitestipctfmlevel2_its_debug_bl2(template_psaapitestipctfmlevel2_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                psa_suite="ITS",
+                build_type="Release",
+                bootloader="BL2")
+class an521_armclang_configpsaapitestipctfmlevel2_its_release_bl2(template_psaapitestipctfmlevel2_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                psa_suite="ITS",
+                build_type="Minsizerel",
+                bootloader="BL2")
+class an521_armclang_configpsaapitestipctfmlevel2_its_minsizerel_bl2(template_psaapitestipctfmlevel2_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                psa_suite="Attest",
+                build_type="Debug",
+                bootloader="BL2")
+class an521_armclang_configpsaapitestipctfmlevel2_attest_debug_bl2(template_psaapitestipctfmlevel2_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                psa_suite="Attest",
+                build_type="Release",
+                bootloader="BL2")
+class an521_armclang_configpsaapitestipctfmlevel2_attest_release_bl2(template_psaapitestipctfmlevel2_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                psa_suite="Attest",
+                build_type="Minsizerel",
+                bootloader="BL2")
+class an521_armclang_configpsaapitestipctfmlevel2_attest_minsizerel_bl2(template_psaapitestipctfmlevel2_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                psa_suite="FF",
+                build_type="Debug",
+                bootloader="BL2")
+class an521_gnuarm_configpsaapitestipctfmlevel2_ff_debug_bl2(template_psaapitestipctfmlevel2_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                psa_suite="FF",
+                build_type="Release",
+                bootloader="BL2")
+class an521_gnuarm_configpsaapitestipctfmlevel2_ff_release_bl2(template_psaapitestipctfmlevel2_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                psa_suite="FF",
+                build_type="Minsizerel",
+                bootloader="BL2")
+class an521_gnuarm_configpsaapitestipctfmlevel2_ff_minsizerel_bl2(template_psaapitestipctfmlevel2_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                psa_suite="FF",
+                build_type="Debug",
+                bootloader="BL2")
+class an521_armclang_configpsaapitestipctfmlevel2_ff_debug_bl2(template_psaapitestipctfmlevel2_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                psa_suite="FF",
+                build_type="Release",
+                bootloader="BL2")
+class an521_armclang_configpsaapitestipctfmlevel2_ff_release_bl2(template_psaapitestipctfmlevel2_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                psa_suite="FF",
+                build_type="Minsizerel",
+                bootloader="BL2")
+class an521_armclang_configpsaapitestipctfmlevel2_ff_minsizerel_bl2(template_psaapitestipctfmlevel2_config):
+    pass
+
+# =====================  ConfigPsaApiTestIPC Config ======================
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                psa_suite="Crypto",
+                build_type="Debug",
+                bootloader="BL2")
+class an521_gnuarm_configpsaapitestipc_crypto_debug_bl2(template_psaapitestipc_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                psa_suite="Crypto",
+                build_type="Release",
+                bootloader="BL2")
+class an521_gnuarm_configpsaapitestipc_crypto_release_bl2(template_psaapitestipc_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                psa_suite="Crypto",
+                build_type="Minsizerel",
+                bootloader="BL2")
+class an521_gnuarm_configpsaapitestipc_crypto_minsizerel_bl2(template_psaapitestipc_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                psa_suite="PS",
+                build_type="Debug",
+                bootloader="BL2")
+class an521_gnuarm_configpsaapitestipc_ps_debug_bl2(template_psaapitestipc_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                psa_suite="PS",
+                build_type="Release",
+                bootloader="BL2")
+class an521_gnuarm_configpsaapitestipc_ps_release_bl2(template_psaapitestipc_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                psa_suite="PS",
+                build_type="Minsizerel",
+                bootloader="BL2")
+class an521_gnuarm_configpsaapitestipc_ps_minsizerel_bl2(template_psaapitestipc_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                psa_suite="ITS",
+                build_type="Debug",
+                bootloader="BL2")
+class an521_gnuarm_configpsaapitestipc_its_debug_bl2(template_psaapitestipc_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                psa_suite="ITS",
+                build_type="Release",
+                bootloader="BL2")
+class an521_gnuarm_configpsaapitestipc_its_release_bl2(template_psaapitestipc_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                psa_suite="ITS",
+                build_type="Minsizerel",
+                bootloader="BL2")
+class an521_gnuarm_configpsaapitestipc_its_minsizerel_bl2(template_psaapitestipc_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                psa_suite="Attest",
+                build_type="Debug",
+                bootloader="BL2")
+class an521_gnuarm_configpsaapitestipc_attest_debug_bl2(template_psaapitestipc_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                psa_suite="Attest",
+                build_type="Release",
+                bootloader="BL2")
+class an521_gnuarm_configpsaapitestipc_attest_release_bl2(template_psaapitestipc_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                psa_suite="Attest",
+                build_type="Minsizerel",
+                bootloader="BL2")
+class an521_gnuarm_configpsaapitestipc_attest_minsizerel_bl2(template_psaapitestipc_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                psa_suite="Crypto",
+                build_type="Debug",
+                bootloader="BL2")
+class an521_armclang_configpsaapitestipc_crypto_debug_bl2(template_psaapitestipc_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                psa_suite="Crypto",
+                build_type="Release",
+                bootloader="BL2")
+class an521_armclang_configpsaapitestipc_crypto_release_bl2(template_psaapitestipc_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                psa_suite="Crypto",
+                build_type="Minsizerel",
+                bootloader="BL2")
+class an521_armclang_configpsaapitestipc_crypto_minsizerel_bl2(template_psaapitestipc_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                psa_suite="PS",
+                build_type="Debug",
+                bootloader="BL2")
+class an521_armclang_configpsaapitestipc_ps_debug_bl2(template_psaapitestipc_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                psa_suite="PS",
+                build_type="Release",
+                bootloader="BL2")
+class an521_armclang_configpsaapitestipc_ps_release_bl2(template_psaapitestipc_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                psa_suite="PS",
+                build_type="Minsizerel",
+                bootloader="BL2")
+class an521_armclang_configpsaapitestipc_ps_minsizerel_bl2(template_psaapitestipc_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                psa_suite="ITS",
+                build_type="Debug",
+                bootloader="BL2")
+class an521_armclang_configpsaapitestipc_its_debug_bl2(template_psaapitestipc_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                psa_suite="ITS",
+                build_type="Release",
+                bootloader="BL2")
+class an521_armclang_configpsaapitestipc_its_release_bl2(template_psaapitestipc_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                psa_suite="ITS",
+                build_type="Minsizerel",
+                bootloader="BL2")
+class an521_armclang_configpsaapitestipc_its_minsizerel_bl2(template_psaapitestipc_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                psa_suite="Attest",
+                build_type="Debug",
+                bootloader="BL2")
+class an521_armclang_configpsaapitestipc_attest_debug_bl2(template_psaapitestipc_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                psa_suite="Attest",
+                build_type="Release",
+                bootloader="BL2")
+class an521_armclang_configpsaapitestipc_attest_release_bl2(template_psaapitestipc_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                psa_suite="Attest",
+                build_type="Minsizerel",
+                bootloader="BL2")
+class an521_armclang_configpsaapitestipc_attest_minsizerel_bl2(template_psaapitestipc_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                psa_suite="FF",
+                build_type="Debug",
+                bootloader="BL2")
+class an521_gnuarm_configpsaapitestipc_ff_debug_bl2(template_psaapitestipc_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                psa_suite="FF",
+                build_type="Release",
+                bootloader="BL2")
+class an521_gnuarm_configpsaapitestipc_ff_release_bl2(template_psaapitestipc_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                psa_suite="FF",
+                build_type="Minsizerel",
+                bootloader="BL2")
+class an521_gnuarm_configpsaapitestipc_ff_minsizerel_bl2(template_psaapitestipc_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                psa_suite="FF",
+                build_type="Debug",
+                bootloader="BL2")
+class an521_armclang_configpsaapitestipc_ff_debug_bl2(template_psaapitestipc_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                psa_suite="FF",
+                build_type="Release",
+                bootloader="BL2")
+class an521_armclang_configpsaapitestipc_ff_release_bl2(template_psaapitestipc_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                psa_suite="FF",
+                build_type="Minsizerel",
+                bootloader="BL2")
+class an521_armclang_configpsaapitestipc_ff_minsizerel_bl2(template_psaapitestipc_config):
+    pass
+
+# =====================  ConfigPsaApiTest Config ======================
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                psa_suite="Crypto",
+                build_type="Debug",
+                bootloader="BL2")
+class an521_gnuarm_configpsaapitest_crypto_debug_bl2(template_psaapitest_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                psa_suite="Crypto",
+                build_type="Release",
+                bootloader="BL2")
+class an521_gnuarm_configpsaapitest_crypto_release_bl2(template_psaapitest_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                psa_suite="Crypto",
+                build_type="Minsizerel",
+                bootloader="BL2")
+class an521_gnuarm_configpsaapitest_crypto_minsizerel_bl2(template_psaapitest_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                psa_suite="PS",
+                build_type="Debug",
+                bootloader="BL2")
+class an521_gnuarm_configpsaapitest_ps_debug_bl2(template_psaapitest_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                psa_suite="PS",
+                build_type="Release",
+                bootloader="BL2")
+class an521_gnuarm_configpsaapitest_ps_release_bl2(template_psaapitest_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                psa_suite="PS",
+                build_type="Minsizerel",
+                bootloader="BL2")
+class an521_gnuarm_configpsaapitest_ps_minsizerel_bl2(template_psaapitest_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                psa_suite="ITS",
+                build_type="Debug",
+                bootloader="BL2")
+class an521_gnuarm_configpsaapitest_its_debug_bl2(template_psaapitest_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                psa_suite="ITS",
+                build_type="Release",
+                bootloader="BL2")
+class an521_gnuarm_configpsaapitest_its_release_bl2(template_psaapitest_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                psa_suite="ITS",
+                build_type="Minsizerel",
+                bootloader="BL2")
+class an521_gnuarm_configpsaapitest_its_minsizerel_bl2(template_psaapitest_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                psa_suite="Attest",
+                build_type="Debug",
+                bootloader="BL2")
+class an521_gnuarm_configpsaapitest_attest_debug_bl2(template_psaapitest_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                psa_suite="Attest",
+                build_type="Release",
+                bootloader="BL2")
+class an521_gnuarm_configpsaapitest_attest_release_bl2(template_psaapitest_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="GNUARM",
+                psa_suite="Attest",
+                build_type="Minsizerel",
+                bootloader="BL2")
+class an521_gnuarm_configpsaapitest_attest_minsizerel_bl2(template_psaapitest_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                psa_suite="Crypto",
+                build_type="Debug",
+                bootloader="BL2")
+class an521_armclang_configpsaapitest_crypto_debug_bl2(template_psaapitest_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                psa_suite="Crypto",
+                build_type="Release",
+                bootloader="BL2")
+class an521_armclang_configpsaapitest_crypto_release_bl2(template_psaapitest_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                psa_suite="Crypto",
+                build_type="Minsizerel",
+                bootloader="BL2")
+class an521_armclang_configpsaapitest_crypto_minsizerel_bl2(template_psaapitest_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                psa_suite="PS",
+                build_type="Debug",
+                bootloader="BL2")
+class an521_armclang_configpsaapitest_ps_debug_bl2(template_psaapitest_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                psa_suite="PS",
+                build_type="Release",
+                bootloader="BL2")
+class an521_armclang_configpsaapitest_ps_release_bl2(template_psaapitest_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                psa_suite="PS",
+                build_type="Minsizerel",
+                bootloader="BL2")
+class an521_armclang_configpsaapitest_ps_minsizerel_bl2(template_psaapitest_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                psa_suite="ITS",
+                build_type="Debug",
+                bootloader="BL2")
+class an521_armclang_configpsaapitest_its_debug_bl2(template_psaapitest_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                psa_suite="ITS",
+                build_type="Release",
+                bootloader="BL2")
+class an521_armclang_configpsaapitest_its_release_bl2(template_psaapitest_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                psa_suite="ITS",
+                build_type="Minsizerel",
+                bootloader="BL2")
+class an521_armclang_configpsaapitest_its_minsizerel_bl2(template_psaapitest_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                psa_suite="Attest",
+                build_type="Debug",
+                bootloader="BL2")
+class an521_armclang_configpsaapitest_attest_debug_bl2(template_psaapitest_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                psa_suite="Attest",
+                build_type="Release",
+                bootloader="BL2")
+class an521_armclang_configpsaapitest_attest_release_bl2(template_psaapitest_config):
+    pass
+
+@config_variant(platform="AN521",
+                compiler="ARMCLANG",
+                psa_suite="Attest",
+                build_type="Minsizerel",
+                bootloader="BL2")
+class an521_armclang_configpsaapitest_attest_minsizerel_bl2(template_psaapitest_config):
+    pass
+
 AN521 = FastmodelConfigMap(globals(), "AN521")
 
 if __name__ == "__main__":
diff --git a/fastmodel_dispatcher/fastmodel_dispatcher.py b/fastmodel_dispatcher/fastmodel_dispatcher.py
index 8c12dae..b6af86f 100644
--- a/fastmodel_dispatcher/fastmodel_dispatcher.py
+++ b/fastmodel_dispatcher/fastmodel_dispatcher.py
@@ -81,10 +81,12 @@
         # build and test configs share common key name enties
         config_list = list(map(str.lower,
                                (map(str, build_report["report"].keys()))))
+        print("zss config_list %s" % config_list)
 
         # Only choose the tests that have been defined in the map
         test_config_list = [n for n in fvp_config_map.list()
                             if n in config_list]
+        print("zss test_config_list original %s" % test_config_list)
 
         # Use the Build manager to calcuate the rejection list in the same
         # manner.
@@ -117,13 +119,14 @@
     else:
         pass
 
-    print("Working on Test list: \n%s" % "\n".join(sorted(test_config_list)))
-
+#    print("Working on Test list: \n%s" % "\n".join(sorted(test_config_list)))
+ 
     if user_args.p_command:
 
         for test_cfg in test_config_list:
 
             test_cfg_obj = fvp_config_map.get_config_object(test_cfg)
+
             _tmp_cfg = FastmodelWrapper(fvp_cfg=test_cfg_obj.get_config())
 
             print("\nCommand line:")
@@ -135,12 +138,17 @@
     # Run tests
     rep = []
     test_count = 0
+#    print("zss print_list list")
+#    fvp_config_map.print_list()
+    print("zss test_config_list", test_config_list)
     for test_cfg in test_config_list:
 
         # Check if the config hardcoded binary path is same as the one
         # in the build report. If not update the config
         test_cfg_obj = fvp_config_map.get_config_object(test_cfg)
+        print("+++test_cfg_obj %s\r\n %s\r\ntest_cfg %s" % (test_cfg_obj, test_cfg_obj.get_config(), test_cfg))
 
+        print("---- test_cfg_obj.get_config()", test_cfg_obj.get_config())
         rep.append(FastmodelWrapper(
                    fvp_cfg=test_cfg_obj.get_config())
                    .start().block_wait().test().save_report().get_report())
@@ -214,7 +222,7 @@
     parser.add_argument("-p", "--print-command",
                         dest="p_command",
                         action="store_true",
-                        help="Print the FPV launch command to console & exit")
+                        help="Print the FVP launch command to console & exit")
     return parser.parse_args()