diff --git a/data/boot_lists/All b/data/boot_lists/All
index 21b7da2..65edf4a 100755
--- a/data/boot_lists/All
+++ b/data/boot_lists/All
@@ -32,6 +32,18 @@
 IPMI MC Reset Warm (run) (mfg)
 IPMI MC Reset Warm (off)
 IPMI MC Reset Warm (off) (mfg)
+IPMI MC Reset Cold (off)
+IPMI MC Reset Cold (off) (mfg)
+IPMI MC Reset Cold (run)
+IPMI MC Reset Cold (run) (mfg)
+IPMI Std MC Reset Warm (off)
+IPMI Std MC Reset Warm (off) (mfg)
+IPMI Std MC Reset Warm (run)
+IPMI Std MC Reset Warm (run) (mfg)
+IPMI Std MC Reset Cold (off)
+IPMI Std MC Reset Cold (off) (mfg)
+IPMI Std MC Reset Cold (run)
+IPMI Std MC Reset Cold (run) (mfg)
 IPMI Power Cycle
 IPMI Power Cycle (mfg)
 IPMI Power Reset
diff --git a/data/boot_lists/Manufacturing b/data/boot_lists/Manufacturing
index 8a8bdd0..f157ee5 100755
--- a/data/boot_lists/Manufacturing
+++ b/data/boot_lists/Manufacturing
@@ -14,6 +14,12 @@
 PDU AC Cycle (off) (mfg)
 IPMI MC Reset Warm (run) (mfg)
 IPMI MC Reset Warm (off) (mfg)
+IPMI MC Reset Cold (off) (mfg)
+IPMI MC Reset Cold (run) (mfg)
+IPMI Std MC Reset Warm (off) (mfg)
+IPMI Std MC Reset Warm (run) (mfg)
+IPMI Std MC Reset Cold (off) (mfg)
+IPMI Std MC Reset Cold (run) (mfg)
 IPMI Power Cycle (mfg)
 IPMI Power Reset (mfg)
 Auto Reboot (mfg)
diff --git a/data/boot_lists/OBMC_reboot b/data/boot_lists/OBMC_reboot
index ba2ed82..29637d1 100755
--- a/data/boot_lists/OBMC_reboot
+++ b/data/boot_lists/OBMC_reboot
@@ -16,3 +16,15 @@
 IPMI MC Reset Warm (run) (mfg)
 IPMI MC Reset Warm (off)
 IPMI MC Reset Warm (off) (mfg)
+IPMI MC Reset Cold (off)
+IPMI MC Reset Cold (off) (mfg)
+IPMI MC Reset Cold (run)
+IPMI MC Reset Cold (run) (mfg)
+IPMI Std MC Reset Warm (off)
+IPMI Std MC Reset Warm (off) (mfg)
+IPMI Std MC Reset Warm (run)
+IPMI Std MC Reset Warm (run) (mfg)
+IPMI Std MC Reset Cold (off)
+IPMI Std MC Reset Cold (off) (mfg)
+IPMI Std MC Reset Cold (run)
+IPMI Std MC Reset Cold (run) (mfg)
diff --git a/data/boot_table.json b/data/boot_table.json
index d9b3b31..6a4fc33 100644
--- a/data/boot_table.json
+++ b/data/boot_table.json
@@ -374,6 +374,147 @@
         "method": "Run External IPMI Standard Command  mc reset warm -N 10 -R 1 ; Printn",
         "lib_file_path": "ipmi_client.robot:gen_print.py"
     },
+    # Initiate an mc reset cold using the IPMI interface while chassis is
+    # powered on.
+    "IPMI MC Reset Cold (run)": {
+        "start": {
+            "rest": "^1$",
+            "chassis": "^On$",
+            "boot_progress": "^FW Progress, Starting OS|OSStart$",
+            "operating_system": "^BootComplete$",
+            "host": "^Running$",
+            "os_ping": "^1$",
+            "os_login": "^1$",
+            "os_run_cmd": "^1$"
+        },
+        "end": {
+            "rest": "^1$",
+            "chassis": "^On$",
+            "boot_progress": "^FW Progress, Starting OS|OSStart$",
+            "operating_system": "^BootComplete$",
+            "host": "^Running$",
+            "os_ping": "^1$",
+            "os_login": "^1$",
+            "os_run_cmd": "^1$"
+        },
+        "bmc_reboot": 1,
+        "method_type": "keyword",
+        "method": "Run External IPMI Standard Command  mc reset cold -N 10 -R 1 ; Printn",
+        "lib_file_path": "ipmi_client.robot:gen_print.py"
+    },
+    # Initiate an mc reset cold using the IPMI interface while chassis is
+    # powered off.
+    "IPMI MC Reset Cold (off)": {
+        "start": {
+            "rest": "^1$",
+            "chassis": "^Off$"
+        },
+        "end": {
+            "rest": "^1$",
+            "chassis": "^Off$",
+            "boot_progress": "^Off|Unspecified$",
+            "operating_system": "^Inactive$",
+            "host": "^Off$"
+        },
+        "bmc_reboot": 1,
+        "method_type": "keyword",
+        "method": "Run External IPMI Standard Command  mc reset cold -N 10 -R 1 ; Printn",
+        "lib_file_path": "ipmi_client.robot:gen_print.py"
+    },
+    # Initiate an mc reset warm using the IPMI standard interface while chassis
+    # is powered on.
+    "IPMI Std MC Reset Warm (run)": {
+        "start": {
+            "rest": "^1$",
+            "chassis": "^On$",
+            "boot_progress": "^FW Progress, Starting OS|OSStart$",
+            "operating_system": "^BootComplete$",
+            "host": "^Running$",
+            "os_ping": "^1$",
+            "os_login": "^1$",
+            "os_run_cmd": "^1$"
+        },
+        "end": {
+            "rest": "^1$",
+            "chassis": "^On$",
+            "boot_progress": "^FW Progress, Starting OS|OSStart$",
+            "operating_system": "^BootComplete$",
+            "host": "^Running$",
+            "os_ping": "^1$",
+            "os_login": "^1$",
+            "os_run_cmd": "^1$"
+        },
+        "bmc_reboot": 1,
+        "method_type": "keyword",
+        "method": "Run IPMI Standard Command  mc reset warm -N 10 -R 1 ; Printn",
+        "lib_file_path": "ipmi_client.robot:gen_print.py"
+    },
+    # Initiate an mc reset warm using the IPMI standard interface while chassis
+    # is powered off.
+    "IPMI Std MC Reset Warm (off)": {
+        "start": {
+            "rest": "^1$",
+            "chassis": "^Off$"
+        },
+        "end": {
+            "rest": "^1$",
+            "chassis": "^Off$",
+            "boot_progress": "^Off|Unspecified$",
+            "operating_system": "^Inactive$",
+            "host": "^Off$"
+        },
+        "bmc_reboot": 1,
+        "method_type": "keyword",
+        "method": "Run IPMI Standard Command  mc reset warm -N 10 -R 1 ; Printn",
+        "lib_file_path": "ipmi_client.robot:gen_print.py"
+    },
+    # Initiate an mc reset cold using the IPMI standard interface while chassis
+    # is powered on.
+    "IPMI Std MC Reset Cold (run)": {
+        "start": {
+            "rest": "^1$",
+            "chassis": "^On$",
+            "boot_progress": "^FW Progress, Starting OS|OSStart$",
+            "operating_system": "^BootComplete$",
+            "host": "^Running$",
+            "os_ping": "^1$",
+            "os_login": "^1$",
+            "os_run_cmd": "^1$"
+        },
+        "end": {
+            "rest": "^1$",
+            "chassis": "^On$",
+            "boot_progress": "^FW Progress, Starting OS|OSStart$",
+            "operating_system": "^BootComplete$",
+            "host": "^Running$",
+            "os_ping": "^1$",
+            "os_login": "^1$",
+            "os_run_cmd": "^1$"
+        },
+        "bmc_reboot": 1,
+        "method_type": "keyword",
+        "method": "Run IPMI Standard Command  mc reset cold -N 10 -R 1 ; Printn",
+        "lib_file_path": "ipmi_client.robot:gen_print.py"
+    },
+    # Initiate an mc reset cold using the IPMI standard interface while chassis
+    # is powered off.
+    "IPMI Std MC Reset Cold (off)": {
+        "start": {
+            "rest": "^1$",
+            "chassis": "^Off$"
+        },
+        "end": {
+            "rest": "^1$",
+            "chassis": "^Off$",
+            "boot_progress": "^Off|Unspecified$",
+            "operating_system": "^Inactive$",
+            "host": "^Off$"
+        },
+        "bmc_reboot": 1,
+        "method_type": "keyword",
+        "method": "Run IPMI Standard Command  mc reset cold -N 10 -R 1 ; Printn",
+        "lib_file_path": "ipmi_client.robot:gen_print.py"
+    },
 
     # Host OS re-boot boot types:
 
diff --git a/lib/boot_utils.robot b/lib/boot_utils.robot
index e5f1fd1..fd41737 100644
--- a/lib/boot_utils.robot
+++ b/lib/boot_utils.robot
@@ -425,6 +425,168 @@
     Run Key U  ${cmd_buf}
 
 
+IPMI MC Reset Cold (run)
+    [Documentation]  Do "IPMI MC Reset Cold (run)" boot test.
+    [Arguments]  ${stack_mode}=${stack_mode}  ${quiet}=${quiet}
+
+    # Description of argument(s):
+    # stack_mode                    If stack_mode is set to "skip", each test
+    #                               specified in the boot_stack is only
+    #                               performed if the machine is not already in
+    #                               the state that would normally result from
+    #                               running the given boot test.  Otherwise,
+    #                               the test is skipped.  If stack_mode is set
+    #                               to "normal", all tests from the boot_stack
+    #                               are performed.  "skip" mode is useful when
+    #                               you simply want the machine in a desired
+    #                               state.  The default value is the global
+    #                               value of "${stack_mode}"
+    # quiet                         If this parameter is set to ${1}, this
+    #                               keyword will print only essential
+    #                               information.  The default value is the
+    #                               global value of "${quiet}"
+
+    ${cmd_buf}  Catenate  OBMC Boot Test
+    ...  \ loc_boot_stack=IPMI MC Reset Cold (run)
+    ...  \ loc_stack_mode=${stack_mode} \ loc_quiet=${quiet}
+    Run Key U  ${cmd_buf}
+
+
+IPMI MC Reset Cold (off)
+    [Documentation]  Do "IPMI MC Reset Cold (off)" boot test.
+    [Arguments]  ${stack_mode}=${stack_mode}  ${quiet}=${quiet}
+
+    # Description of argument(s):
+    # stack_mode                    If stack_mode is set to "skip", each test
+    #                               specified in the boot_stack is only
+    #                               performed if the machine is not already in
+    #                               the state that would normally result from
+    #                               running the given boot test.  Otherwise,
+    #                               the test is skipped.  If stack_mode is set
+    #                               to "normal", all tests from the boot_stack
+    #                               are performed.  "skip" mode is useful when
+    #                               you simply want the machine in a desired
+    #                               state.  The default value is the global
+    #                               value of "${stack_mode}"
+    # quiet                         If this parameter is set to ${1}, this
+    #                               keyword will print only essential
+    #                               information.  The default value is the
+    #                               global value of "${quiet}"
+
+    ${cmd_buf}  Catenate  OBMC Boot Test
+    ...  \ loc_boot_stack=IPMI MC Reset Cold (off)
+    ...  \ loc_stack_mode=${stack_mode} \ loc_quiet=${quiet}
+    Run Key U  ${cmd_buf}
+
+
+IPMI Std MC Reset Warm (run)
+    [Documentation]  Do "IPMI Std MC Reset Warm (run)" boot test.
+    [Arguments]  ${stack_mode}=${stack_mode}  ${quiet}=${quiet}
+
+    # Description of argument(s):
+    # stack_mode                    If stack_mode is set to "skip", each test
+    #                               specified in the boot_stack is only
+    #                               performed if the machine is not already in
+    #                               the state that would normally result from
+    #                               running the given boot test.  Otherwise,
+    #                               the test is skipped.  If stack_mode is set
+    #                               to "normal", all tests from the boot_stack
+    #                               are performed.  "skip" mode is useful when
+    #                               you simply want the machine in a desired
+    #                               state.  The default value is the global
+    #                               value of "${stack_mode}"
+    # quiet                         If this parameter is set to ${1}, this
+    #                               keyword will print only essential
+    #                               information.  The default value is the
+    #                               global value of "${quiet}"
+
+    ${cmd_buf}  Catenate  OBMC Boot Test
+    ...  \ loc_boot_stack=IPMI Std MC Reset Warm (run)
+    ...  \ loc_stack_mode=${stack_mode} \ loc_quiet=${quiet}
+    Run Key U  ${cmd_buf}
+
+
+IPMI Std MC Reset Warm (off)
+    [Documentation]  Do "IPMI Std MC Reset Warm (off)" boot test.
+    [Arguments]  ${stack_mode}=${stack_mode}  ${quiet}=${quiet}
+
+    # Description of argument(s):
+    # stack_mode                    If stack_mode is set to "skip", each test
+    #                               specified in the boot_stack is only
+    #                               performed if the machine is not already in
+    #                               the state that would normally result from
+    #                               running the given boot test.  Otherwise,
+    #                               the test is skipped.  If stack_mode is set
+    #                               to "normal", all tests from the boot_stack
+    #                               are performed.  "skip" mode is useful when
+    #                               you simply want the machine in a desired
+    #                               state.  The default value is the global
+    #                               value of "${stack_mode}"
+    # quiet                         If this parameter is set to ${1}, this
+    #                               keyword will print only essential
+    #                               information.  The default value is the
+    #                               global value of "${quiet}"
+
+    ${cmd_buf}  Catenate  OBMC Boot Test
+    ...  \ loc_boot_stack=IPMI Std MC Reset Warm (off)
+    ...  \ loc_stack_mode=${stack_mode} \ loc_quiet=${quiet}
+    Run Key U  ${cmd_buf}
+
+
+IPMI Std MC Reset Cold (run)
+    [Documentation]  Do "IPMI Std MC Reset Cold (run)" boot test.
+    [Arguments]  ${stack_mode}=${stack_mode}  ${quiet}=${quiet}
+
+    # Description of argument(s):
+    # stack_mode                    If stack_mode is set to "skip", each test
+    #                               specified in the boot_stack is only
+    #                               performed if the machine is not already in
+    #                               the state that would normally result from
+    #                               running the given boot test.  Otherwise,
+    #                               the test is skipped.  If stack_mode is set
+    #                               to "normal", all tests from the boot_stack
+    #                               are performed.  "skip" mode is useful when
+    #                               you simply want the machine in a desired
+    #                               state.  The default value is the global
+    #                               value of "${stack_mode}"
+    # quiet                         If this parameter is set to ${1}, this
+    #                               keyword will print only essential
+    #                               information.  The default value is the
+    #                               global value of "${quiet}"
+
+    ${cmd_buf}  Catenate  OBMC Boot Test
+    ...  \ loc_boot_stack=IPMI Std MC Reset Cold (run)
+    ...  \ loc_stack_mode=${stack_mode} \ loc_quiet=${quiet}
+    Run Key U  ${cmd_buf}
+
+
+IPMI Std MC Reset Cold (off)
+    [Documentation]  Do "IPMI Std MC Reset Cold (off)" boot test.
+    [Arguments]  ${stack_mode}=${stack_mode}  ${quiet}=${quiet}
+
+    # Description of argument(s):
+    # stack_mode                    If stack_mode is set to "skip", each test
+    #                               specified in the boot_stack is only
+    #                               performed if the machine is not already in
+    #                               the state that would normally result from
+    #                               running the given boot test.  Otherwise,
+    #                               the test is skipped.  If stack_mode is set
+    #                               to "normal", all tests from the boot_stack
+    #                               are performed.  "skip" mode is useful when
+    #                               you simply want the machine in a desired
+    #                               state.  The default value is the global
+    #                               value of "${stack_mode}"
+    # quiet                         If this parameter is set to ${1}, this
+    #                               keyword will print only essential
+    #                               information.  The default value is the
+    #                               global value of "${quiet}"
+
+    ${cmd_buf}  Catenate  OBMC Boot Test
+    ...  \ loc_boot_stack=IPMI Std MC Reset Cold (off)
+    ...  \ loc_stack_mode=${stack_mode} \ loc_quiet=${quiet}
+    Run Key U  ${cmd_buf}
+
+
 IPMI Power Cycle
     [Documentation]  Do "IPMI Power Cycle" boot test.
     [Arguments]  ${stack_mode}=${stack_mode}  ${quiet}=${quiet}
