diff --git a/ironic_tempest_plugin/config.py b/ironic_tempest_plugin/config.py
index 95b29b3..90d55fc 100644
--- a/ironic_tempest_plugin/config.py
+++ b/ironic_tempest_plugin/config.py
@@ -150,6 +150,10 @@
                      "being used, this option should be set to True as "
                      "it lacks the needed components to make it locally "
                      "from a partition image."),
+    cfg.StrOpt('boot_mode',
+               default='bios',
+               choices=['bios', 'uefi'],
+               help="The desired boot_mode to be used on testing nodes."),
 ]
 
 BaremetalFeaturesGroup = [
diff --git a/ironic_tempest_plugin/tests/scenario/test_baremetal_basic_ops.py b/ironic_tempest_plugin/tests/scenario/test_baremetal_basic_ops.py
index cc6b0dd..e3c1929 100644
--- a/ironic_tempest_plugin/tests/scenario/test_baremetal_basic_ops.py
+++ b/ironic_tempest_plugin/tests/scenario/test_baremetal_basic_ops.py
@@ -45,7 +45,11 @@
           expected state transitions
     """
 
+    credentials = ['primary', 'admin']
+
     TEST_RESCUE_MODE = False
+    image_ref = None
+    wholedisk_image = None
 
     @classmethod
     def skip_checks(cls):
@@ -183,9 +187,15 @@
             # Flavor traits should be a subset of node traits.
             self.assertTrue(traits.issubset(set(node['traits'])))
 
-    @decorators.idempotent_id('549173a5-38ec-42bb-b0e2-c8b9f4a08943')
-    @utils.services('compute', 'image', 'network')
-    def test_baremetal_server_ops(self):
+    def validate_uefi(self, client):
+        efi_dir = '/sys/firmware/efi'
+        success_string = "Found " + efi_dir
+        cmd = 'test -d {dir} && echo "Found {dir}" ||'\
+              ' echo "{dir} not found"'.format(dir=efi_dir)
+        output = client.exec_command(cmd).rstrip()
+        self.assertEqual(success_string, output)
+
+    def baremetal_server_ops(self):
         self.add_keypair()
         self.instance, self.node = self.boot_instance()
         self.validate_ports()
@@ -202,6 +212,9 @@
             self.create_timestamp(
                 ip_address, private_key=self.keypair['private_key'])
 
+        if CONF.baremetal.boot_mode == "uefi":
+            self.validate_uefi(vm_client)
+
         # Test rescue mode
         if self.TEST_RESCUE_MODE:
             self.rescue_instance(self.instance, self.node, ip_address)
@@ -209,6 +222,20 @@
 
         self.terminate_instance(self.instance)
 
+    @decorators.idempotent_id('549173a5-38ec-42bb-b0e2-c8b9f4a08943')
+    @utils.services('compute', 'image', 'network')
+    def test_baremetal_server_ops_partition_image(self):
+        self.image_ref = CONF.baremetal.partition_image_ref
+        self.wholedisk_image = False
+        self.baremetal_server_ops()
+
+    @decorators.idempotent_id('d7d48aa1-0395-4f31-a908-60969adc4322')
+    @utils.services('compute', 'image', 'network')
+    def test_baremetal_server_ops_wholedisk_image(self):
+        self.image_ref = CONF.baremetal.whole_disk_image_ref
+        self.wholedisk_image = True
+        self.baremetal_server_ops()
+
 
 class BaremetalBasicOpsAndRescue(BaremetalBasicOps):
     """This test includes rescue/unrescue ops."""
