diff --git a/jenkins/build-config.jpl b/jenkins/build-config.jpl
index 5d72ed1..365b608 100644
--- a/jenkins/build-config.jpl
+++ b/jenkins/build-config.jpl
@@ -33,20 +33,6 @@
     dir("tf-m-ci-scripts") {
       git url: '$CI_SCRIPTS_REPO', branch: '$CI_SCRIPTS_BRANCH', credentialsId: 'GIT_SSH_KEY'
     }
-    dir("mbed-crypto") {
-      checkout(
-        changelog: false,
-        poll: false,
-        scm: [
-          $class: 'GitSCM',
-          branches: [[name: 'FETCH_HEAD']],
-          userRemoteConfigs: [[
-            refspec: 'refs/tags/$MBEDCRYPTO_VERSION',
-            url: params.MBEDCRYPTO_URL
-          ]]
-        ]
-      )
-    }
     dir("mbedtls") {
       checkout(
         changelog: false,
diff --git a/jenkins/build-docs.jpl b/jenkins/build-docs.jpl
index 29dbc5c..d42dbe1 100644
--- a/jenkins/build-docs.jpl
+++ b/jenkins/build-docs.jpl
@@ -28,20 +28,6 @@
     dir("tf-m-ci-scripts") {
       git url: '$CI_SCRIPTS_REPO', branch: '$CI_SCRIPTS_BRANCH', credentialsId: 'GIT_SSH_KEY'
     }
-    dir("mbed-crypto") {
-      checkout(
-        changelog: false,
-        poll: false,
-        scm: [
-          $class: 'GitSCM',
-          branches: [[name: 'FETCH_HEAD']],
-          userRemoteConfigs: [[
-            refspec: 'refs/tags/$MBEDCRYPTO_VERSION',
-            url: params.MBEDCRYPTO_URL
-          ]]
-        ]
-      )
-    }
     dir("mbedtls") {
       checkout(
         changelog: false,
diff --git a/jenkins/checkpatch.jpl b/jenkins/checkpatch.jpl
index e771b52..9d04984 100644
--- a/jenkins/checkpatch.jpl
+++ b/jenkins/checkpatch.jpl
@@ -28,20 +28,6 @@
     dir("tf-m-ci-scripts") {
       git url: '$CI_SCRIPTS_REPO', branch: '$CI_SCRIPTS_BRANCH', credentialsId: 'GIT_SSH_KEY'
     }
-    dir("mbed-crypto") {
-      checkout(
-        changelog: false,
-        poll: false,
-        scm: [
-          $class: 'GitSCM',
-          branches: [[name: 'FETCH_HEAD']],
-          userRemoteConfigs: [[
-            refspec: 'refs/tags/$MBEDCRYPTO_VERSION',
-            url: params.MBEDCRYPTO_URL
-          ]]
-        ]
-      )
-    }
   }
   stage("Check") {
     def verify = 1
diff --git a/jenkins/ci.jpl b/jenkins/ci.jpl
index 0c4d5f3..f7bdc9c 100644
--- a/jenkins/ci.jpl
+++ b/jenkins/ci.jpl
@@ -45,7 +45,6 @@
   params += string(name: 'GERRIT_CHANGE_NUMBER', value: env.GERRIT_CHANGE_NUMBER)
   params += string(name: 'GERRIT_PATCHSET_REVISION', value: env.GERRIT_PATCHSET_REVISION)
   params += string(name: 'GERRIT_REFSPEC', value: env.GERRIT_REFSPEC)
-  params += string(name: 'MBEDCRYPTO_VERSION', value: env.MBEDCRYPTO_VERSION)
   params += string(name: 'MBEDTLS_VERSION', value: env.MBEDTLS_VERSION)
   params += string(name: 'CODE_REPO', value: env.CODE_REPO)
   params += string(name: 'CODE_COVERAGE_EN', value: env.CODE_COVERAGE_EN)
@@ -84,7 +83,6 @@
   params += string(name: 'GERRIT_CHANGE_NUMBER', value: env.GERRIT_CHANGE_NUMBER)
   params += string(name: 'GERRIT_PATCHSET_REVISION', value: env.GERRIT_PATCHSET_REVISION)
   params += string(name: 'GERRIT_REFSPEC', value: env.GERRIT_REFSPEC)
-  params += string(name: 'MBEDCRYPTO_VERSION', value: env.MBEDCRYPTO_VERSION)
   params += string(name: 'MBEDTLS_VERSION', value: env.MBEDTLS_VERSION)
   params += string(name: 'CODE_REPO', value: env.CODE_REPO)
   return { -> results
diff --git a/jenkins/cppcheck.jpl b/jenkins/cppcheck.jpl
index cb76ebb..6a6d2cb 100644
--- a/jenkins/cppcheck.jpl
+++ b/jenkins/cppcheck.jpl
@@ -28,20 +28,6 @@
     dir("tf-m-ci-scripts") {
       git url: '$CI_SCRIPTS_REPO', branch: '$CI_SCRIPTS_BRANCH', credentialsId: 'GIT_SSH_KEY'
     }
-    dir("mbed-crypto") {
-      checkout(
-        changelog: false,
-        poll: false,
-        scm: [
-          $class: 'GitSCM',
-          branches: [[name: 'FETCH_HEAD']],
-          userRemoteConfigs: [[
-            refspec: 'refs/tags/$MBEDCRYPTO_VERSION',
-            url: params.MBEDCRYPTO_URL
-          ]]
-        ]
-      )
-    }
     dir("mbedtls") {
       checkout(
         changelog: false,
diff --git a/jenkins/static.jpl b/jenkins/static.jpl
index fb5b4f8..f23b56e 100644
--- a/jenkins/static.jpl
+++ b/jenkins/static.jpl
@@ -15,7 +15,6 @@
     params += string(name: 'GERRIT_REFSPEC', value: env.GERRIT_REFSPEC ?: '')
     params += string(name: 'GERRIT_CHANGE_NUMBER', value: env.GERRIT_CHANGE_NUMBER ?: '')
     params += string(name: 'GERRIT_PATCHSET_REVISION', value: env.GERRIT_PATCHSET_REVISION ?: '')
-    params += string(name: 'MBEDCRYPTO_VERSION', value: env.MBEDCRYPTO_VERSION)
     params += string(name: 'MBEDTLS_VERSION', value: env.MBEDTLS_VERSION)
     params += string(name: 'CODE_REPO', value: env.CODE_REPO)
     build(job: job_name, parameters: params)
diff --git a/run-cppcheck.sh b/run-cppcheck.sh
index c9a356b..5540625 100755
--- a/run-cppcheck.sh
+++ b/run-cppcheck.sh
@@ -159,13 +159,6 @@
 fi
 CPPCHECK_ARGS="$EXTRA_ARGS --enable="$additional_checklist" --library="$library_file" --project=$cmake_commands --suppressions-list="$suppress_file" --inline-suppr"
 
-#Build the external projects to get all headers installed to places from where
-#tf-m code uses them
-echo
-echo '******* Install external projects to their final place ***************'
-echo
-make -j mbedcrypto_mcuboot_lib_install
-
 #Now run cppcheck.
 echo
 echo '******* checking cppcheck configuration ***************'
diff --git a/tfm_ci_pylib/tfm_builder.py b/tfm_ci_pylib/tfm_builder.py
index fbfa0c8..a045514 100644
--- a/tfm_ci_pylib/tfm_builder.py
+++ b/tfm_ci_pylib/tfm_builder.py
@@ -183,45 +183,6 @@
 
                 raise Exception("Build Failed please check log: %s" %
                                 self._tfb_log_f)
-    def copy_tfm(self):
-        """ Copy a new TFM for crypto compile """
-
-        cp_cmd = "cp -r " + self._tfb_cfg["codebase_root_dir"] + " " + \
-            self._tfb_build_dir
-        if subprocess_log(cp_cmd,
-                          self._tfb_log_f,
-                          append=True,
-                          prefix=cp_cmd,
-                          silent=self._tfb_silent):
-
-            raise Exception("Build Failed please check log: %s" %
-                            self._tfb_log_f)
-
-        cp_cmd = "cp -r " + self._tfb_cfg["codebase_root_dir"] + "/../mbed-crypto " + \
-            self._tfb_build_dir
-        if subprocess_log(cp_cmd,
-                          self._tfb_log_f,
-                          append=True,
-                          prefix=cp_cmd,
-                          silent=self._tfb_silent):
-
-            raise Exception("Build Failed please check log: %s" %
-                            self._tfb_log_f)
-
-        cp_cmd = "cp -r " + self._tfb_cfg["codebase_root_dir"] + "/../psa-arch-tests " + \
-            self._tfb_build_dir
-        if subprocess_log(cp_cmd,
-                          self._tfb_log_f,
-                          append=True,
-                          prefix=cp_cmd,
-                          silent=self._tfb_silent):
-
-            raise Exception("Build Failed please check log: %s" %
-                            self._tfb_log_f)
-
-        self._tfb_cfg["build_cmds"][0] = \
-            self._tfb_cfg["build_cmds"][0].replace(self._tfb_cfg["codebase_root_dir"],
-            self._tfb_build_dir + "/tf-m")
 
     def task_exec(self):
         """ Main tasks """
@@ -243,13 +204,6 @@
                 raise Exception("Build Failed please check log: %s" %
                                 self._tfb_log_f)
 
-        if self._tfb_cfg["build_cmds"].__str__().find( \
-                "CRYPTO_HW_ACCELERATOR_OTP_STATE=ENABLED") > 0:
-            self.copy_tfm()
-            time.sleep(15)
-            os.sync()
-            print("new build cmd ", self._tfb_cfg["build_cmds"][0])
-
         print("Go to build directory")
         # Go to build directory
         os.chdir(self._tfb_build_dir)
