diff --git a/lib/code_update_utils.robot b/lib/code_update_utils.robot
index cea4721..d6c0be6 100644
--- a/lib/code_update_utils.robot
+++ b/lib/code_update_utils.robot
@@ -537,3 +537,16 @@
     Rprint Vars  version
 
     [Return]  ${version}
+
+
+Set ApplyTime
+    [Documentation]  Set and verify the firmware "ApplyTime" policy.
+    [Arguments]  ${policy}
+
+    # Description of argument(s):
+    # policy     ApplyTime allowed values (e.g. "OnReset", "Immediate").
+
+    Redfish.Patch  ${REDFISH_BASE_URI}UpdateService  body={'ApplyTime' : '${policy}'}
+    ${apply_time}=  Read Attribute   ${SOFTWARE_VERSION_URI}apply_time  RequestedApplyTime
+    Rvalid Value  apply_time  valid_values=["xyz.openbmc_project.Software.ApplyTime.RequestedApplyTimes.${policy}"]
+    Rprint Vars  apply_time
diff --git a/lib/tftp_update_utils.py b/lib/tftp_update_utils.py
new file mode 100644
index 0000000..2d0f7e3
--- /dev/null
+++ b/lib/tftp_update_utils.py
@@ -0,0 +1,50 @@
+#!/usr/bin/env python
+
+r"""
+This module contains functions for tftp update.
+"""
+
+from robot.libraries.BuiltIn import BuiltIn
+
+import state as st
+import gen_print as gp
+
+
+def get_pre_reboot_state():
+    r"""
+    Get and return a custom state which is comprised of the
+    st.default_req_states plus epoch_seconds.
+    """
+
+    global state
+
+    req_states = ['epoch_seconds'] + st.default_req_states
+
+    gp.qprint_timen("Get system state.")
+    state = st.get_state(req_states=req_states, quiet=0)
+    gp.qprint_var(state)
+    return state
+
+
+def wait_for_reboot(start_boot_seconds):
+    r"""
+    Wait for the BMC to complete a previously initiated reboot.
+
+    Description of argument(s):
+    start_boot_seconds  The time that the boot test started.  The format is the
+                        epoch time in seconds, i.e. the number of seconds since
+                        1970-01-01 00:00:00 UTC.  This value should be obtained
+                        from the BMC so that it is not dependent on any kind of
+                        synchronization between this machine and the target BMC
+                        This will allow this program to work correctly even in
+                        a simulated environment.  This value should be obtained
+                        by the caller prior to initiating a reboot.  It can be
+                        obtained as follows:
+                        state = st.get_state(req_states=['epoch_seconds'])
+
+    """
+
+    st.wait_for_comm_cycle(int(start_boot_seconds))
+
+    gp.qprintn()
+    st.wait_state(st.standby_match_state, wait_time="10 mins", interval="10 seconds")
diff --git a/redfish/update_service/test_firmware_tftp_upload_image.robot b/redfish/update_service/test_firmware_tftp_upload_image.robot
index 3a4e278..ca80115 100644
--- a/redfish/update_service/test_firmware_tftp_upload_image.robot
+++ b/redfish/update_service/test_firmware_tftp_upload_image.robot
@@ -17,10 +17,11 @@
 Resource         ../../lib/code_update_utils.robot
 Library          ../../lib/code_update_utils.py
 Library          ../../lib/gen_robot_valid.py
+Library          ../../lib/tftp_update_utils.py
 
 Suite Setup      Suite Setup Execution
 Suite Teardown   Redfish.Logout
-Test Setup       Printn
+Test Setup       Run Keywords  Redfish Power Off  stack_mode=skip  quiet=1  AND  Redfish.Login
 Test Teardown    FFDC On Test Case Fail
 
 Force Tags       tftp_update
@@ -30,12 +31,59 @@
 TFTP Download Install With ApplyTime OnReset Policy
     [Documentation]  Download image to BMC using TFTP with OnReset policy and verify installation.
     [Tags]  TFTP_Download_Install_With_ApplyTime_OnReset_Policy
+    [Template]  TFTP Download Install
 
-    # Set and verify the firmware OnReset policy.
-    Redfish.Patch  ${REDFISH_BASE_URI}UpdateService  body={'ApplyTime' : 'OnReset'}
-    ${apply_time}=  Read Attribute   ${SOFTWARE_VERSION_URI}apply_time  RequestedApplyTime
-    Rvalid Value  apply_time  valid_values=['xyz.openbmc_project.Software.ApplyTime.RequestedApplyTimes.OnReset']
-    Rprint Vars  apply_time
+    # policy
+    OnReset
+
+
+TFTP Download Install With ApplyTime Immediate Policy
+    [Documentation]  Download image to BMC using TFTP with Immediate policy and verify installation.
+    [Tags]  TFTP_Download_Install_With_ApplyTime_Immediate_Policy
+    [Template]  TFTP Download Install
+
+    # policy
+    Immediate
+
+
+ImageURI Download Install With ApplyTime OnReset Policy
+    [Documentation]  Download image to BMC using ImageURI with OnReset policy and verify installation.
+    [Tags]  ImageURI_Download_Install_With_ApplyTime_OnReset_Policy
+    [Template]  ImageURI Download Install
+
+    # policy
+    OnReset
+
+
+ImageURI Download Install With ApplyTime Immediate Policy
+    [Documentation]  Download image to BMC using ImageURI with Immediate policy and verify installation.
+    [Tags]  ImageURI_Download_Install_With_ApplyTime_Immediate_Policy
+    [Template]  ImageURI Download Install
+
+    # policy
+    Immediate
+
+*** Keywords ***
+
+Suite Setup Execution
+    [Documentation]  Do the suite setup.
+
+    Redfish.Login
+    Rvalid Value  TFTP_SERVER
+    Rvalid Value  IMAGE_FILE_NAME
+
+
+TFTP Download Install
+    [Documentation]  Download image to BMC using TFTP with ApplyTime policy and verify installation.
+    [Arguments]  ${policy}
+
+    # Description of argument(s):
+    # policy     ApplyTime allowed values (e.g. "OnReset", "Immediate").
+
+    ${state}=  Get Pre Reboot State
+    Rprint Vars  state
+
+    Set ApplyTime  policy=${policy}
 
     # Download image from TFTP server to BMC.
     Redfish.Post  /redfish/v1/UpdateService/Actions/UpdateService.SimpleUpdate
@@ -56,10 +104,10 @@
     Check Image Update Progress State  match_state='Updating'  image_id=${image_id}
 
     # Wait for the image to install complete.
-    Wait Until Keyword Succeeds  5 min  15 sec
+    Wait Until Keyword Succeeds  8 min  15 sec
     ...  Check Image Update Progress State  match_state='Enabled'  image_id=${image_id}
 
-    Redfish OBMC Reboot (off)
+    Reboot And Wait For BMC Standby  policy=${policy}  start_boot_seconds=${state['epoch_seconds']}
 
     # Verify the image is installed and functional.
     ${cmd}=  Set Variable  grep ^VERSION_ID= /etc/os-release | cut -f 2 -d '=' | sed 's/"//g'
@@ -68,11 +116,57 @@
     Rprint Vars  functional_version
 
 
-*** Keywords ***
+ImageURI Download Install
+    [Documentation]  Download image to BMC using ImageURI with ApplyTime policy and verify installation.
+    [Arguments]  ${policy}
 
-Suite Setup Execution
-    [Documentation]  Do the suite setup.
+    # Description of argument(s):
+    # policy     ApplyTime allowed values (e.g. "OnReset", "Immediate").
 
-    Redfish.Login
-    Rvalid Value  TFTP_SERVER
-    Rvalid Value  IMAGE_FILE_NAME
+    ${state}=  Get Pre Reboot State
+    Rprint Vars  state
+
+    Set ApplyTime  policy=${policy}
+
+    # Download image from TFTP server via ImageURI to BMC.
+    Redfish.Post  /redfish/v1/UpdateService/Actions/UpdateService.SimpleUpdate
+    ...  body={"ImageURI": "tftp://${TFTP_SERVER}/${IMAGE_FILE_NAME}"}
+
+    # Wait for image tar file download to complete.
+    ${image_id}=  Wait Until Keyword Succeeds  60 sec  10 sec  Get Latest Image ID
+    Rprint Vars  image_id
+
+    # Let the image get extracted and it should not fail.
+    Sleep  5s
+    Check Image Update Progress State  match_state='Disabled', 'Updating'  image_id=${image_id}
+
+    ${install_version}=  Get Firmware Image Version  image_id=${image_id}
+    Rprint Vars  install_version
+
+    Check Image Update Progress State  match_state='Updating'  image_id=${image_id}
+
+    # Wait for the image to install complete.
+    Wait Until Keyword Succeeds  8 min  15 sec
+    ...  Check Image Update Progress State  match_state='Enabled'  image_id=${image_id}
+
+    Reboot And Wait For BMC Standby  policy=${policy}  start_boot_seconds=${state['epoch_seconds']}
+
+    # Verify the image is installed and functional.
+    ${cmd}=  Set Variable  grep ^VERSION_ID= /etc/os-release | cut -f 2 -d '=' | sed 's/"//g'
+    ${functional_version}  ${stderr}  ${rc}=  BMC Execute Command  ${cmd}
+    Rvalid Value  functional_version  valid_values=['${install_version}']
+    Rprint Vars  functional_version
+
+
+Reboot And Wait For BMC Standby
+    [Documentation]  Reboot or wait for BMC standby post reboot.
+    [Arguments]  ${policy}  ${start_boot_seconds}
+
+    # Description of argument(s):
+    # policy                ApplyTime allowed values (e.g. "OnReset", "Immediate").
+    # start_boot_seconds    See 'Wait For Reboot' for details.
+
+    Run Keyword If  '${policy}' == 'OnReset'
+    ...    Redfish OBMC Reboot (off)
+    ...  ELSE
+    ...    Wait For Reboot  start_boot_seconds=${start_boot_seconds}
