diff --git a/CMakeLists.txt b/CMakeLists.txt
index ef673e0..03fe0ba 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -7,7 +7,7 @@
 
 cmake_minimum_required(VERSION 3.15)
 
-include(version.cmake)
+include(cmake/version.cmake)
 
 ############################ CONFIGURATION #####################################
 
diff --git a/cmake/version.cmake b/cmake/version.cmake
new file mode 100644
index 0000000..97750f5
--- /dev/null
+++ b/cmake/version.cmake
@@ -0,0 +1,15 @@
+#-------------------------------------------------------------------------------
+# Copyright (c) 2021-2022, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+#-------------------------------------------------------------------------------
+
+execute_process(COMMAND git describe --tags --always
+    OUTPUT_VARIABLE TFM_VERSION_FULL
+    OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+string(REGEX REPLACE "TF-M" "" TFM_VERSION_FULL ${TFM_VERSION_FULL})
+# remove a commit number
+string(REGEX REPLACE "-[0-9]+-g" "+" TFM_VERSION_FULL ${TFM_VERSION_FULL})
+string(REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]+" TFM_VERSION ${TFM_VERSION_FULL})
diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt
index c6caa21..69f129c 100644
--- a/docs/CMakeLists.txt
+++ b/docs/CMakeLists.txt
@@ -23,7 +23,7 @@
 
 ################################## ENV #########################################
 
-include(../version.cmake)
+include(../cmake/version.cmake)
 
 project("Trusted Firmware M. Documentation" VERSION ${TFM_VERSION} LANGUAGES)
 
diff --git a/docs/tfm_env.py.in b/docs/tfm_env.py.in
index c4f7a34..ca5a927 100644
--- a/docs/tfm_env.py.in
+++ b/docs/tfm_env.py.in
@@ -20,5 +20,5 @@
               "SPHINXCFG_TEMPLATE_FILE"    : "@SPHINXCFG_TEMPLATE_FILE@",
               "SPHINXCFG_COPY_FILES"       : "@SPHINXCFG_COPY_FILES@",
               "SPHINXCFG_RENDER_CONF"      : "@SPHINXCFG_RENDER_CONF@",
-              "SPHINXCFG_TFM_VERSION"      : "v@CMAKE_PROJECT_VERSION@",
+              "SPHINXCFG_TFM_VERSION"      : "@TFM_VERSION_FULL@",
             }
diff --git a/secure_fw/spm/cmsis_func/main.c b/secure_fw/spm/cmsis_func/main.c
index b08a0d4..c5fa6b5 100644
--- a/secure_fw/spm/cmsis_func/main.c
+++ b/secure_fw/spm/cmsis_func/main.c
@@ -183,7 +183,7 @@
     FIH_LABEL_CRITICAL_POINT();
 
     /* Print the TF-M version */
-    SPMLOG_INFMSG("\033[1;34mBooting TFM v"VERSION_FULLSTR"\033[0m\r\n");
+    SPMLOG_INFMSG("\033[1;34mBooting TF-M "VERSION_FULLSTR"\033[0m\r\n");
 
     spm_err = tfm_spm_db_init();
     if (spm_err != SPM_ERR_OK) {
diff --git a/secure_fw/spm/cmsis_psa/main.c b/secure_fw/spm/cmsis_psa/main.c
index 1777e44..4e886bb 100644
--- a/secure_fw/spm/cmsis_psa/main.c
+++ b/secure_fw/spm/cmsis_psa/main.c
@@ -133,7 +133,7 @@
     FIH_LABEL_CRITICAL_POINT();
 
     /* Print the TF-M version */
-    SPMLOG_INFMSG("\033[1;34mBooting TFM v"VERSION_FULLSTR"\033[0m\r\n");
+    SPMLOG_INFMSG("\033[1;34mBooting TF-M "VERSION_FULLSTR"\033[0m\r\n");
 
     /*
      * Prioritise secure exceptions to avoid NS being able to pre-empt
diff --git a/secure_fw/spm/include/tfm_version.h.in b/secure_fw/spm/include/tfm_version.h.in
index fa815f7..ff19e49 100644
--- a/secure_fw/spm/include/tfm_version.h.in
+++ b/secure_fw/spm/include/tfm_version.h.in
@@ -11,13 +11,13 @@
 /*
  * Defines for TFM version.
  */
-#cmakedefine TFM_VERSION   @TFM_VERSION@
-
-#define VERSION_STRING     ""
+#cmakedefine TFM_VERSION        @TFM_VERSION@
+#cmakedefine TFM_VERSION_FULL   @TFM_VERSION_FULL@
 
 #define VERSTR(x)          #x
 #define VERCON(x)          VERSTR(x)
 
-#define VERSION_FULLSTR    VERCON(TFM_VERSION)""VERSION_STRING
+#define VERSION_STR        VERCON(TFM_VERSION)
+#define VERSION_FULLSTR    VERCON(TFM_VERSION_FULL)
 
 #endif /* __TFM_VERSION_H__ */
diff --git a/tools/documentation/tfm_cmake_defaults.py b/tools/documentation/tfm_cmake_defaults.py
index 5b15e5f..0acfbc8 100644
--- a/tools/documentation/tfm_cmake_defaults.py
+++ b/tools/documentation/tfm_cmake_defaults.py
@@ -128,6 +128,25 @@
     tfm_def_doxygen_loc = find_package("doxygen")
     tfm_def_doxygen_dot_loc = find_package("dot")
 
+    try:
+        vrex = re.compile(r'TF-M(?P<GIT_VERSION>v.+?)'
+                          r'(-[0-9]+-g)?(?P<GIT_SHA>[a-f0-9]{7,})?$')
+
+        tfm_def_tfm_version = check_output("git describe --tags --always",
+                                           shell = True, encoding = 'UTF-8')
+
+        _v = vrex.match(tfm_def_tfm_version)
+
+        tfm_def_tfm_version = _v.group("GIT_VERSION")
+        if _v.group("GIT_SHA"):
+            tfm_def_tfm_version += "+" + _v.group("GIT_SHA")[:7]
+
+    except Exception as E:
+        try:
+            tfm_def_tfm_version
+        except NameError:
+            tfm_def_tfm_version = "Unknown"
+
 else:
     # #################### Cmake Defaults ################################## #
     tfm_def_root_dir = os.path.abspath(cmake_env["TFM_ROOT_DIR"])
@@ -159,44 +178,6 @@
     with open("tfm_env.py", "w", encoding='utf-8') as F:
         F.write("cmake_env =" + json.dumps(cmake_env))
 
-
-# Version will be retrieved in that order Git -> Cmake -> Boilerplate
-try:
-    vrex = re.compile(r'(?P<GIT_HASH>[a-f0-9]{40})'
-                      r'+\s+tag\s+refs\/tags\/TF-Mv(?P<VER_MAJ>\d+).'
-                      r'(?P<VER_MIN>\d+).?(?P<VER_HOT>\d+)(?P<RC>-RC\d+)?')
-
-    tfm_def_tfm_version = check_output("git for-each-ref refs/tags --sort=-taggerdate --count=1",
-                                        shell = True, encoding = 'UTF-8')
-
-    _v = vrex.search(tfm_def_tfm_version)
-    version  = [ _v.group("VER_MAJ"),
-                 _v.group("VER_MIN"),
-                 _v.group("VER_HOT"),
-                 _v.group("RC")]
-    git_hash  = _v.group("GIT_HASH")
-
-    # Sanitize the verison and remove empty entries
-    version = [i.replace("-","") for i in version if i]
-    tfm_def_tfm_version = "v"+".".join(version)
-
-    vlrex = re.compile(r'^(?P<GIT_HASH_LATEST>[a-f0-9]{40})')
-
-    git_hash_latest = check_output("git rev-parse HEAD",
-                                    shell = True, encoding = 'UTF-8')
-
-    git_hash_latest = vlrex.search(git_hash_latest).group('GIT_HASH_LATEST')
-
-    if git_hash != git_hash_latest:
-        git_hash_latest = git_hash_latest[:7]
-        tfm_def_tfm_version += "+ ({})".format(git_hash_latest)
-
-except Exception as E:
-    try:
-        tfm_def_tfm_version
-    except NameError:
-        tfm_def_tfm_version = "Unknown"
-
 # #################### User Defaults ######################################## #
 
 # Directories, referenced by TF-M root, which may contain releval documents
diff --git a/version.cmake b/version.cmake
deleted file mode 100644
index 6261cd0..0000000
--- a/version.cmake
+++ /dev/null
@@ -1,7 +0,0 @@
-#-------------------------------------------------------------------------------
-# Copyright (c) 2021, Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-#-------------------------------------------------------------------------------
-set(TFM_VERSION 1.5.0)
