diff --git a/jenkins/lava-submit.jpl b/jenkins/lava-submit.jpl
index 9e27631..84eaf78 100644
--- a/jenkins/lava-submit.jpl
+++ b/jenkins/lava-submit.jpl
@@ -1,11 +1,17 @@
 #!/usr/bin/env groovy
 //-------------------------------------------------------------------------------
-// Copyright (c) 2020, Arm Limited and Contributors. All rights reserved.
+// Copyright (c) 2020-2021, Arm Limited and Contributors. All rights reserved.
 //
 // SPDX-License-Identifier: BSD-3-Clause
 //
 //-------------------------------------------------------------------------------
 
+@NonCPS
+def getUpstreamJob() {
+  def cause = manager.build.getAction(hudson.model.CauseAction.class).getCauses()
+  return cause
+}
+
 node("docker-amd64-tf-m-bionic") {
   stage("Init") {
     cleanWs()
@@ -14,6 +20,14 @@
     }
   }
   stage("LAVA") {
+
+    def fvp_only_cmd = ""
+    def upstreamProject = getUpstreamJob()[0].upstreamProject
+    if (upstreamProject == "tf-m-build-and-test") {
+      fvp_only_cmd = "--fvp-only "
+      print("Run test cases only on FVP in per-patch.")
+    }
+
     withCredentials([usernamePassword(credentialsId: env.LAVA_CREDENTIALS, passwordVariable: 'LAVA_TOKEN', usernameVariable: 'LAVA_USER')]) {
       print("Generating LAVA jobs...")
       def bl2_string = ""
@@ -27,7 +41,7 @@
       }
       dir("tf-m-ci-scripts") {
         def res = sh(script: """./lava_helper/lava_create_jobs.py \
---build-number ${env.BUILD_NUMBER} --output-dir lava_jobs \
+--build-number ${env.BUILD_NUMBER} --output-dir lava_jobs ${fvp_only_cmd}\
 --compiler ${env.COMPILER} --platform ${env.TARGET_PLATFORM} \
 ${bl2_string} ${psa_string} --build-type ${env.CMAKE_BUILD_TYPE} \
 --jenkins-build-url ${env.BUILD_URL} --proj-config ${env.PROJ_CONFIG} \
diff --git a/lava_helper/lava_create_jobs.py b/lava_helper/lava_create_jobs.py
index 2e803c3..1cffdb8 100755
--- a/lava_helper/lava_create_jobs.py
+++ b/lava_helper/lava_create_jobs.py
@@ -4,7 +4,7 @@
 
 __copyright__ = """
 /*
- * Copyright (c) 2020, Arm Limited. All rights reserved.
+ * Copyright (c) 2020-2021, Arm Limited. All rights reserved.
  *
  * SPDX-License-Identifier: BSD-3-Clause
  *
@@ -195,7 +195,11 @@
 
 def main(user_args):
     user_args.template_dir = "jinja2_templates"
-    config_keys = lava_gen_config_map.keys()
+    config_keys = list(lava_gen_config_map.keys())
+    if user_args.fvp_only:
+        for key in config_keys:
+            if "fvp" not in key:
+                config_keys.remove(key)
     if user_args.config_key:
         config_keys = [user_args.config_key]
     for config_key in config_keys:
@@ -257,6 +261,12 @@
         help="Set the jenkins job name",
     )
     cmdargs.add_argument(
+        "--fvp-only",
+        dest="fvp_only",
+        action="store_true",
+        help="Run test cases on FVP only",
+    )
+    cmdargs.add_argument(
         "--proj-config", dest="proj_config", action="store", help="Proj config"
     )
     cmdargs.add_argument(
