diff --git a/tfm_ci_pylib/tfm_build_manager.py b/tfm_ci_pylib/tfm_build_manager.py
index d8a58bb..673771c 100644
--- a/tfm_ci_pylib/tfm_build_manager.py
+++ b/tfm_ci_pylib/tfm_build_manager.py
@@ -8,7 +8,7 @@
 
 __copyright__ = """
 /*
- * Copyright (c) 2018-2021, Arm Limited. All rights reserved.
+ * Copyright (c) 2018-2022, Arm Limited. All rights reserved.
  *
  * SPDX-License-Identifier: BSD-3-Clause
  *
@@ -65,17 +65,18 @@
               "profile_medium": "MEDIUM",
               "profile_large":  "LARGE"}
 
-mapSFPOption = {"0": "SFP0",
-                "1": "SFP1",
-                "2": "SFP2"}
-
 mapExtraParams = {"":              "",
                   "CRYPTO_OFF":   ("-DTEST_S_CRYPTO=OFF "
                                    "-DTEST_NS_CRYPTO=OFF "),
                   "CRYPTO_ON":    ("-DTEST_S_CRYPTO=ON "
                                    "-DTEST_NS_CRYPTO=ON "),
                   "NSCE":          "-DTFM_NS_MANAGE_NSID=ON ",
-                  "MMIO":          "-DPSA_FRAMEWORK_HAS_MM_IOVEC=ON "}
+                  "MMIO":          "-DPSA_FRAMEWORK_HAS_MM_IOVEC=ON ",
+                  "FPSOFT":        "-DCONFIG_TFM_FP=soft ",
+                  "FPHARD":        "-DCONFIG_TFM_FP=hard ",
+                  "FPHARD_LOFF":   ("-DCONFIG_TFM_FP=hard "
+                                    "-DCONFIG_TFM_LAZY_STACKING=OFF ")
+                  }
 
 class TFM_Build_Manager(structuredTask):
     """ Class that will load a configuration out of a json file, schedule
@@ -124,8 +125,12 @@
         compiler_version = ""
         # Set GCC version
         if "GNUARM" in config.toolchain_file:
-            # Use GCC v7.3.1 by default
-            compiler_version = "GCC_7_3_1"
+            if "FPHARD" in config.extra_params:
+                # TF-M FPU feature requires GCC v10.3
+                compiler_version = "GCC_10_3"
+            else:
+                # Use GCC v7.3.1 by default
+                compiler_version = "GCC_7_3_1"
         # Set ARMClang version
         elif "ARMCLANG" in config.toolchain_file:
             # Use ARMClang v6.13 by default
@@ -161,8 +166,6 @@
             "NS={}",
             "PROFILE={}",
             "PARTITION_PS={}",
-            "FP={}",
-            "LAZY={}",
             "EXTRA_PARAMS={}"
         ]
         print(
@@ -182,8 +185,6 @@
                 config_details.with_ns,
                 "N.A" if not config_details.profile else config_details.profile,
                 config_details.partition_ps,
-                config_details.fp,
-                config_details.lazy,
                 "N.A" if not config_details.extra_params else config_details.extra_params,
             )
             .strip()
@@ -443,14 +444,12 @@
                             "with_ns": i.with_ns,
                             "profile": "" if i.profile=="N.A" else i.profile,
                             "partition_ps": i.partition_ps,
-                            "fp": i.fp,
-                            "lazy": i.lazy,
                             "extra_params": mapExtraParams[i.extra_params]}
         if i.test_psa_api == "IPC":
             overwrite_params["test_psa_api"] += " -DINCLUDE_PANIC_TESTS=1"
             if i.tfm_platform == "arm/musca_b1/sse_200":
                 overwrite_params["test_psa_api"] += " -DITS_RAM_FS=ON -DPS_RAM_FS=ON"
-        if i.fp == "1" or i.fp == "2":
+        if i.extra_params == "FPHARD" or i.extra_params == "FPHARD_LOFF":
             overwrite_params["test_psa_api"] += " -DTEST_S_FPU=ON -DTEST_NS_FPU=ON"
         build_cfg["config_template"] %= overwrite_params
         if len(build_cfg["build_cmds"]) > 1:
@@ -634,12 +633,8 @@
                 config_param.append(mapProfile[list(i)[10]])
             if list(i)[11] == "OFF":    #PARTITION_PS
                 config_param.append("PSOFF")
-            if list(i)[12] == "1" or list(i)[12] == "2":
-                config_param.append(mapSFPOption[list(i)[12]]) #FP
-            if list(i)[13] == "ON": # LAZY
-                config_param.append("SLAZY")
-            if list(i)[14]: # EXTRA_PARAMS
-                config_param.append(list(i)[14])
+            if list(i)[12]: # EXTRA_PARAMS
+                config_param.append(list(i)[12])
             i_str = "_".join(config_param)
             ret_cfg[i_str] = i
         return ret_cfg
