diff --git a/lib/secureboot/secureboot.py b/lib/secureboot/secureboot.py
new file mode 100644
index 0000000..99728c8
--- /dev/null
+++ b/lib/secureboot/secureboot.py
@@ -0,0 +1,64 @@
+#!/usr/bin/env python
+
+r"""
+This module provides some functions for Secure Boot verification.
+"""
+
+import bmc_ssh_utils as bsu
+import var_funcs as vf
+from robot.libraries.BuiltIn import BuiltIn
+
+
+# Define 'constant' functions.
+def secure_boot_mask():
+
+    return 0x08000000
+
+
+def jumper_mask():
+
+    return 0x04000000
+
+
+class secureboot(object):
+
+    def get_secure_boot_info(self, quiet=None):
+        r"""
+        Get secure-boot information and return it as a tuple consisting of
+        num_procs, secure_boot, jumper.
+
+        num_procs is the number of processors containing the information.
+
+        secure_boot will be set to True if each and every register value
+        in question has its secureboot bit set (Bit 4).
+
+        jumper will be set to True if each and every register value
+        in question has its jumper bit set (Bit 5).
+
+        Description of argument(s):
+        quiet                           See shell_cmd for details.
+        """
+
+        cmd_buf = "pdbg -d p9w -a getcfam 0x2801"
+        out_buf, stderr, rc = bsu.bmc_execute_command(cmd_buf, quiet=quiet)
+
+        # Convert result to a dictionary with one key for each processor:
+        # result:
+        #   [p0:0x2801]:               0x80c00002
+        #   [p1:0x2801]:               0x90c00002
+        result = vf.key_value_outbuf_to_dict(out_buf, delim="=")
+
+        num_procs = len(result)
+        # Initialize values to True.
+        secure_boot = True
+        jumper = True
+
+        for key, value in result.items():
+            # Convert hex string to int.
+            reg_value = int(value, 16)
+            if not reg_value & secure_boot_mask():
+                secure_boot = False
+            if not reg_value & jumper_mask():
+                jumper = False
+
+        return num_procs, secure_boot, jumper
