Build: Upgrade ArmClang version to 6.21

Previously, ArmClang was upgraded to 6.18, but this version was found to
have issues when UBL licensing is enabled. So, upgrade to the latest as
of now to resolve them.

https://linaro.atlassian.net/browse/TFC-525

Signed-off-by: Paul Sokolovsky <paul.sokolovsky@linaro.org>
Change-Id: I2f6dffbdd8079cc22e0016c9be247aed508eb02a
diff --git a/build_helper/build_helper_configs.py b/build_helper/build_helper_configs.py
index 7edcd4c..8e663b3 100755
--- a/build_helper/build_helper_configs.py
+++ b/build_helper/build_helper_configs.py
@@ -189,11 +189,11 @@
 # List of all build configs that are impossible under all circumstances
 _common_tfm_invalid_configs = [
     # LR_CODE size exceeds limit on MUSCA_B1 & MUSCA_S1 with regression tests in Debug mode built with ARMCLANG
-    ("arm/musca_b1", "ARMCLANG_6_18", "*", "RegBL2, RegS, RegNS", "OFF", "Debug", "*", "", "*"),
-    ("arm/musca_s1", "ARMCLANG_6_18", "*", "RegBL2, RegS, RegNS", "OFF", "Debug", "*", "", "*"),
+    ("arm/musca_b1", "ARMCLANG_6_21", "*", "RegBL2, RegS, RegNS", "OFF", "Debug", "*", "", "*"),
+    ("arm/musca_s1", "ARMCLANG_6_21", "*", "RegBL2, RegS, RegNS", "OFF", "Debug", "*", "", "*"),
     # Load range overlap on Musca for IPC Debug type: T895
-    ("arm/musca_b1", "ARMCLANG_6_18", "*", "*", "IPC", "Debug", "*", "*", "*"),
-    ("arm/musca_s1", "ARMCLANG_6_18", "*", "*", "IPC", "Debug", "*", "*", "*"),
+    ("arm/musca_b1", "ARMCLANG_6_21", "*", "*", "IPC", "Debug", "*", "*", "*"),
+    ("arm/musca_s1", "ARMCLANG_6_21", "*", "*", "IPC", "Debug", "*", "*", "*"),
     # FF does not support L3
     ("*", "*", "3", "*", "IPC", "*", "*", "*", "*"),
     # Musca requires BL2
@@ -210,7 +210,7 @@
 config_pp_test = {"seed_params": {
                 # AN519_ARMCLANG_IPC_1_RegBL2_RegS_RegNS_Debug_BL2
                 "tfm_platform":     ["arm/mps2/an519"],
-                "compiler":         ["ARMCLANG_6_18"],
+                "compiler":         ["ARMCLANG_6_21"],
                 "isolation_level":  ["1"],
                 "test_regression":  ["RegBL2, RegS, RegNS"],
                 "test_psa_api":     ["OFF"],
@@ -222,7 +222,7 @@
                 "common_params": _common_tfm_builder_cfg,
                 "valid": [
                     # AN519_ARMCLANG_2_RegBL2_RegS_RegNS_Release_BL2
-                    ("arm/mps2/an519", "ARMCLANG_6_18", "2",
+                    ("arm/mps2/an519", "ARMCLANG_6_21", "2",
                      "RegBL2, RegS, RegNS", "OFF", "Release", True, "",  ""),
                     # AN519_GCC_1_RegBL2_RegS_RegNS_Debug_BL2
                     ("arm/mps2/an519", "GCC_10_3", "1",
@@ -234,22 +234,22 @@
                     ("arm/mps2/an519", "GCC_10_3", "1",
                      "RegBL2, RegS, RegNS", "OFF", "Debug", True, "", ""),
                     # AN521_ARMCLANG_1_RegBL2_RegS_RegNS_Debug_BL2_SMALL_PSOFF
-                    ("arm/mps2/an521", "ARMCLANG_6_18", "1",
+                    ("arm/mps2/an521", "ARMCLANG_6_21", "1",
                      "RegBL2, RegS, RegNS", "OFF", "Debug", True, "profile_small", "PSOFF"),
                     # AN521_ARMCLANG_1_RegBL2_RegS_RegNS_Debug_BL2
-                    ("arm/mps2/an521", "ARMCLANG_6_18", "1",
+                    ("arm/mps2/an521", "ARMCLANG_6_21", "1",
                      "RegBL2, RegS, RegNS", "OFF", "Debug", True, "", ""),
                     # AN521_ARMCLANG_1_RegBL2_RegS_RegNS_Debug_BL2_IPC
-                    ("arm/mps2/an521", "ARMCLANG_6_18", "1",
+                    ("arm/mps2/an521", "ARMCLANG_6_21", "1",
                      "RegBL2, RegS, RegNS", "OFF", "Debug", True, "", "IPC"),
                     # AN521_ARMCLANG_2_RegBL2_RegS_RegNS_Release_BL2
-                    ("arm/mps2/an521", "ARMCLANG_6_18", "2",
+                    ("arm/mps2/an521", "ARMCLANG_6_21", "2",
                      "RegBL2, RegS, RegNS", "OFF", "Release", True, "", ""),
                     # AN521_ARMCLANG_3_RegBL2_RegS_RegNS_Minsizerel_BL2
-                    ("arm/mps2/an521", "ARMCLANG_6_18", "3",
+                    ("arm/mps2/an521", "ARMCLANG_6_21", "3",
                      "RegBL2, RegS, RegNS", "OFF", "Minsizerel", True, "", ""),
                     # AN521_ARMCLANG_1_RegBL2_RegS_RegNS_Debug_BL2_SMALL_PSOFF
-                    ("arm/mps2/an521", "ARMCLANG_6_18", "1",
+                    ("arm/mps2/an521", "ARMCLANG_6_21", "1",
                      "RegBL2, RegS, RegNS", "OFF", "Debug", True, "profile_small", "PSOFF"),
                     # AN521_GCC_1_RegBL2_RegS_RegNS_Debug_BL2
                     ("arm/mps2/an521", "GCC_10_3", "1",
@@ -270,7 +270,7 @@
                     ("arm/mps2/an521", "GCC_10_3", "1",
                      "OFF", "IPC", "Release", True, "", ""),
                     # AN521_ARMCLANG_2_STORAGE_Debug_BL2
-                    ("arm/mps2/an521", "ARMCLANG_6_18", "2",
+                    ("arm/mps2/an521", "ARMCLANG_6_21", "2",
                      "OFF", "STORAGE", "Debug", True, "", ""),
                     # CS300_FVP_GNUARM_2_RegBL2_RegS_RegNS_Debug_BL2
                     ("arm/mps3/corstone300/fvp", "GCC_10_3", "2",
@@ -285,7 +285,7 @@
                     ("arm/musca_b1", "GCC_10_3", "1",
                      "RegBL2, RegS, RegNS", "OFF", "Minsizerel", True, "", ""),
                     # MUSCA_S1_ARMCLANG_2_RegBL2_RegS_RegNS_Release_BL2
-                    ("arm/musca_s1", "ARMCLANG_6_18", "2",
+                    ("arm/musca_s1", "ARMCLANG_6_21", "2",
                      "RegBL2, RegS, RegNS", "OFF", "Release", True, "", ""),
                     # MUSCA_S1_GCC_1_RegBL2_RegS_RegNS_Debug_BL2
                     ("arm/musca_s1", "GCC_10_3", "1",
@@ -303,7 +303,7 @@
                     ("arm/rss/tc", "GCC_10_3", "2",
                      "RegS, RegNS", "OFF", "Release", True, "", "PSOFF"),
                     # stm32l562e_dk_ARMCLANG_1_RegS_RegNS_Release_BL2_CRYPTO_OFF
-                    ("stm/stm32l562e_dk", "ARMCLANG_6_18", "1",
+                    ("stm/stm32l562e_dk", "ARMCLANG_6_21", "1",
                      "RegS, RegNS", "OFF", "Release", True, "", "CRYPTO_OFF"),
                     # stm32l562e_dk_GCC_2_Release_BL2_CRYPTO_ON
                     ("stm/stm32l562e_dk", "GCC_10_3", "2",
@@ -315,7 +315,7 @@
                     ("stm/b_u585i_iot02a", "GCC_10_3", "1",
                      "RegS, RegNS", "OFF", "Release", True, "", ""),
                     # b_u585i_iot02a_ARMCLANG_2_RegS_RegNS_Release_BL2
-                    ("stm/b_u585i_iot02a", "ARMCLANG_6_18", "2",
+                    ("stm/b_u585i_iot02a", "ARMCLANG_6_21", "2",
                      "RegS, RegNS", "OFF", "Release", True, "", ""),
                     # psoc64_GCC_2_RegS_RegNS_Release
                     ("cypress/psoc64", "GCC_10_3", "2",
@@ -331,7 +331,7 @@
                                      "arm/mps3/an524",
                                      "arm/musca_s1",
                                      "arm/musca_b1"],
-                "compiler":         ["GCC_10_3", "ARMCLANG_6_18"],
+                "compiler":         ["GCC_10_3", "ARMCLANG_6_21"],
                 "isolation_level":  ["1", "2", "3"],
                 "test_regression":  ["OFF", "RegBL2, RegS, RegNS"],
                 "test_psa_api":     ["OFF"],
@@ -351,7 +351,7 @@
                                      "arm/mps3/an524",
                                      "arm/musca_b1",
                                      "arm/musca_s1"],
-                "compiler":         ["GCC_10_3", "ARMCLANG_6_18"],
+                "compiler":         ["GCC_10_3", "ARMCLANG_6_21"],
                 "isolation_level":  ["1", "2", "3"],
                 "test_regression":  ["OFF", "RegBL2, RegS, RegNS"],
                 "test_psa_api":     ["OFF"],
@@ -374,7 +374,7 @@
 # Config groups for TF-M features
 config_profile_s = {"seed_params": {
                 "tfm_platform":     ["arm/mps2/an519", "arm/mps2/an521"],
-                "compiler":         ["GCC_10_3", "ARMCLANG_6_18"],
+                "compiler":         ["GCC_10_3", "ARMCLANG_6_21"],
                 "isolation_level":  ["1"],
                 "test_regression":  ["OFF", "RegBL2, RegS, RegNS"],
                 "test_psa_api":     ["OFF"],
@@ -394,7 +394,7 @@
                 "tfm_platform":     ["arm/mps2/an519",
                                      "arm/mps2/an521",
                                      "arm/musca_b1"],
-                "compiler":         ["GCC_10_3", "ARMCLANG_6_18"],
+                "compiler":         ["GCC_10_3", "ARMCLANG_6_21"],
                 "isolation_level":  ["2"],
                 "test_regression":  ["OFF", "RegBL2, RegS, RegNS"],
                 "test_psa_api":     ["OFF"],
@@ -409,7 +409,7 @@
 
 config_profile_m_arotless = {"seed_params": {
                 "tfm_platform":     ["arm/musca_b1"],
-                "compiler":         ["GCC_10_3", "ARMCLANG_6_18"],
+                "compiler":         ["GCC_10_3", "ARMCLANG_6_21"],
                 "isolation_level":  ["1"],
                 "test_regression":  ["OFF", "RegBL2, RegS, RegNS"],
                 "test_psa_api":     ["OFF"],
@@ -424,7 +424,7 @@
 
 config_profile_l = {"seed_params": {
                 "tfm_platform":     ["arm/mps2/an521"],
-                "compiler":         ["GCC_10_3", "ARMCLANG_6_18"],
+                "compiler":         ["GCC_10_3", "ARMCLANG_6_21"],
                 "isolation_level":  ["3"],
                 "test_regression":  ["OFF", "RegBL2, RegS, RegNS"],
                 "test_psa_api":     ["OFF"],
@@ -442,7 +442,7 @@
                                      "arm/mps2/an521",
                                      "arm/musca_s1",
                                      "arm/musca_b1"],
-                "compiler":         ["GCC_10_3", "ARMCLANG_6_18"],
+                "compiler":         ["GCC_10_3", "ARMCLANG_6_21"],
                 "isolation_level":  ["1"],
                 "test_regression":  ["OFF", "RegBL2, RegS, RegNS"],
                 "test_psa_api":     ["OFF"],
@@ -492,7 +492,7 @@
                 "tfm_platform":     ["arm/mps2/an521",
                                      "arm/musca_b1",
                                      "arm/musca_s1"],
-                "compiler":         ["GCC_10_3", "ARMCLANG_6_18"],
+                "compiler":         ["GCC_10_3", "ARMCLANG_6_21"],
                 "isolation_level":  ["1", "2", "3"],
                 "test_regression":  ["OFF"],
                 "test_psa_api":     ["IPC",
@@ -510,7 +510,7 @@
 
 config_nsce = {"seed_params": {
                "tfm_platform":      ["arm/mps2/an521"],
-                "compiler":         ["GCC_10_3", "ARMCLANG_6_18"],
+                "compiler":         ["GCC_10_3", "ARMCLANG_6_21"],
                 "isolation_level":  ["1", "2", "3"],
                 "test_regression":  ["RegBL2, RegS, RegNS"],
                 "test_psa_api":     ["OFF"],
@@ -525,7 +525,7 @@
 
 config_mmio = {"seed_params": {
                "tfm_platform":      ["arm/mps2/an521"],
-                "compiler":         ["GCC_10_3", "ARMCLANG_6_18"],
+                "compiler":         ["GCC_10_3", "ARMCLANG_6_21"],
                 "isolation_level":  ["1"],
                 "test_regression":  ["RegBL2, RegS, RegNS"],
                 "test_psa_api":     ["OFF"],
@@ -684,7 +684,7 @@
 # Config groups for platforms
 config_an519 = {"seed_params": {
                 "tfm_platform":     ["arm/mps2/an519"],
-                "compiler":         ["GCC_10_3", "ARMCLANG_6_18"],
+                "compiler":         ["GCC_10_3", "ARMCLANG_6_21"],
                 "isolation_level":  ["1", "2"],
                 "test_regression":  ["OFF", "RegBL2, RegS, RegNS"],
                 "test_psa_api":     ["OFF"],
@@ -699,7 +699,7 @@
 
 config_an521 = {"seed_params": {
                 "tfm_platform":     ["arm/mps2/an521"],
-                "compiler":         ["GCC_10_3", "ARMCLANG_6_18"],
+                "compiler":         ["GCC_10_3", "ARMCLANG_6_21"],
                 "isolation_level":  ["1", "2", "3"],
                 "test_regression":  ["OFF", "RegBL2, RegS, RegNS"],
                 "test_psa_api":     ["OFF"],
@@ -714,7 +714,7 @@
 
 config_an524 = {"seed_params": {
                 "tfm_platform":     ["arm/mps3/an524"],
-                "compiler":         ["GCC_10_3", "ARMCLANG_6_18"],
+                "compiler":         ["GCC_10_3", "ARMCLANG_6_21"],
                 "isolation_level":  ["1", "2"],
                 "test_regression":  ["OFF", "RegBL2, RegS, RegNS"],
                 "test_psa_api":     ["OFF"],
@@ -774,7 +774,7 @@
 
 config_musca_b1 = {"seed_params": {
                 "tfm_platform":     ["arm/musca_b1"],
-                "compiler":         ["GCC_10_3", "ARMCLANG_6_18"],
+                "compiler":         ["GCC_10_3", "ARMCLANG_6_21"],
                 "isolation_level":  ["1", "2", "3"],
                 "test_regression":  ["OFF", "RegBL2, RegS, RegNS"],
                 "test_psa_api":     ["OFF"],
@@ -789,7 +789,7 @@
 
 config_musca_s1 = {"seed_params": {
                 "tfm_platform":     ["arm/musca_s1"],
-                "compiler":         ["GCC_10_3", "ARMCLANG_6_18"],
+                "compiler":         ["GCC_10_3", "ARMCLANG_6_21"],
                 "isolation_level":  ["1", "2"],
                 "test_regression":  ["OFF", "RegBL2, RegS, RegNS"],
                 "test_psa_api":     ["OFF"],
@@ -838,7 +838,7 @@
 
 config_psoc64 = {"seed_params": {
                 "tfm_platform":     ["cypress/psoc64"],
-                "compiler":         ["GCC_10_3", "ARMCLANG_6_18"],
+                "compiler":         ["GCC_10_3", "ARMCLANG_6_21"],
                 "isolation_level":  ["1", "2"],
                 "test_regression":  ["RegS, RegNS"],
                 "test_psa_api":     ["OFF"],
@@ -868,7 +868,7 @@
 
 config_stm32l562e_dk = {"seed_params": {
                 "tfm_platform":     ["stm/stm32l562e_dk"],
-                "compiler":         ["GCC_10_3", "ARMCLANG_6_18"],
+                "compiler":         ["GCC_10_3", "ARMCLANG_6_21"],
                 "isolation_level":  ["1", "2", "3"],
                 "test_regression":  ["OFF", "RegBL2, RegS, RegNS"],
                 "test_psa_api":     ["OFF"],
@@ -880,7 +880,7 @@
                 "common_params": _common_tfm_builder_cfg,
                 "invalid": _common_tfm_invalid_configs + [
                     # Oversize issue on config stm32l562e_dk_ARMCLANG_1_RegBL2_RegS_RegNS_Release_BL2
-                    ("stm/stm32l562e_dk", "ARMCLANG_6_18", "1",
+                    ("stm/stm32l562e_dk", "ARMCLANG_6_21", "1",
                      "RegBL2, RegS, RegNS", "OFF", "Release", True, "", "*"),
                     # all other tests are off when CRYPTO is ON
                     ("stm/stm32l562e_dk", "*", "*", "RegBL2, RegS, RegNS", "*",
@@ -893,7 +893,7 @@
 
 config_b_u585i_iot02a = {"seed_params": {
                 "tfm_platform":     ["stm/b_u585i_iot02a"],
-                "compiler":         ["GCC_10_3", "ARMCLANG_6_18"],
+                "compiler":         ["GCC_10_3", "ARMCLANG_6_21"],
                 "isolation_level":  ["1", "2"],
                 "test_regression":  ["OFF", "RegS, RegNS"],
                 "test_psa_api":     ["OFF"],
@@ -1013,7 +1013,7 @@
 
 config_mem_footprint = {"seed_params": {
                "tfm_platform":      ["arm/mps2/an521"],
-                "compiler":         ["ARMCLANG_6_18"],
+                "compiler":         ["ARMCLANG_6_21"],
                 "isolation_level":  ["1"],
                 "test_regression":  ["OFF"],
                 "test_psa_api":     ["OFF"],
@@ -1025,13 +1025,13 @@
                 "common_params": _common_tfm_builder_cfg,
                 "valid": [
                     # AN521_ARMCLANG_1_Minsizerel_BL2_SMALL_PSOFF
-                    ("arm/mps2/an521", "ARMCLANG_6_18", "1",
+                    ("arm/mps2/an521", "ARMCLANG_6_21", "1",
                      "OFF", "OFF", "Minsizerel", True, "profile_small", "PSOFF"),
                     # AN521_ARMCLANG_2_Minsizerel_BL2_MEDIUM_PSOFF
-                    ("arm/mps2/an521", "ARMCLANG_6_18", "2",
+                    ("arm/mps2/an521", "ARMCLANG_6_21", "2",
                      "OFF", "OFF", "Minsizerel", True, "profile_medium", "PSOFF"),
                     # AN521_ARMCLANG_3_Minsizerel_BL2_LARGE_PSOFF
-                    ("arm/mps2/an521", "ARMCLANG_6_18", "3",
+                    ("arm/mps2/an521", "ARMCLANG_6_21", "3",
                      "OFF", "OFF", "Minsizerel", True, "profile_large", "PSOFF"),
                 ],
                 "invalid": _common_tfm_invalid_configs + []
@@ -1084,7 +1084,7 @@
 
 config_debug_PSA_API = {"seed_params": {
                 "tfm_platform":     ["arm/mps2/an521"],
-                "compiler":         ["ARMCLANG_6_18"],
+                "compiler":         ["ARMCLANG_6_21"],
                 "isolation_level":  ["1"],
                 "test_regression":  ["OFF"],
                 "test_psa_api":     ["CRYPTO",
diff --git a/performance.py b/performance.py
index 97c6554..e377898 100755
--- a/performance.py
+++ b/performance.py
@@ -144,7 +144,7 @@
 def main(user_args):
     if user_args.generate_memory:
         # Export ARMClang v6.13 to ENV PATH
-        os.environ['PATH'] += os.pathsep + os.getenv('ARMCLANG_6_18_PATH')
+        os.environ['PATH'] += os.pathsep + os.getenv('ARMCLANG_6_21_PATH')
         if os.getenv('CONFIG_NAME') in mem_configs.keys():
             print('Configuration ' + os.getenv('CONFIG_NAME') + ' is a reference')