diff --git a/extended/code_update/update_bmc.robot b/extended/code_update/update_bmc.robot
index 2acd439..dbdd7d1 100644
--- a/extended/code_update/update_bmc.robot
+++ b/extended/code_update/update_bmc.robot
@@ -51,29 +51,6 @@
 
 *** Test Cases ***
 
-Test Basic BMC Performance Before Code Update
-    [Documentation]   Check performance of memory, CPU & file system of BMC.
-    [Tags]  Test_Basic_BMC_Performance_Before_Code_Update
-    Open Connection And Log In
-    Check BMC CPU Performance
-    Check BMC Mem Performance
-    Check BMC File System Performance
-
-Check Core Dump Exist Before Code Update
-    [Documentation]  Check core dump existence on BMC before code update.
-    [Tags]  Check_Core_Dump_Exist_Before_Code_Update
-    Check For Core Dumps
-
-Check URLs Before Code Update
-    [Documentation]  Check available URLs before code update.
-    [Tags]  Check_URLs_Before_Code_Update
-
-    ${url_list}=  Get URL List  ${OPENBMC_BASE_URI}
-    Set Global Variable  ${URL_BEFORE_CU}  ${url_list}
-
-    ${bmc_version}=  Get BMC Version
-    Set Suite Variable  ${bmc_version_before}  ${bmc_version}
-
 Initiate Code Update BMC
     [Documentation]  Initiate a code update on the BMC.
     [Tags]  Initiate_Code_Update_BMC
@@ -98,44 +75,6 @@
     Run Keyword If  ${BOOT_COUNT} == ${1}
     ...  Log  Boot time not updated by kernel.  level=WARN
 
-Install BMC Debug Tarball
-    [Documentation]  Install the downloaded debug tarball on BMC.
-    [Tags]  Install_BMC_Debug_Tarball
-    Run Keyword If  '${DEBUG_TARBALL_PATH}' != '${EMPTY}'
-    ...  Install Debug Tarball On BMC  ${DEBUG_TARBALL_PATH}
-
-Compare URLs Before And After Code Update
-    [Documentation]  Compare URLs before and after code update.
-    [Tags]  Compare_URLs_Before_And_After_Code_Update
-
-    ${bmc_version}=  Get BMC Version
-    Set Suite Variable  ${bmc_version_after}  ${bmc_version}
-
-    # Exit test for same firmware version.
-    Pass Execution If  '${bmc_version_before}' == '${bmc_version_after}'
-    ...  Same BMC firmware version found
-
-    ${url_after_cu}=  Get URL List  ${OPENBMC_BASE_URI}
-    Compare URL List After Code Update  ${URL_BEFORE_CU}  ${url_after_cu}
-
-Test Basic BMC Performance At Ready State
-    [Documentation]   Check performance of memory, CPU & file system of BMC.
-    [Tags]  Test_Basic_BMC_Performance_At_Ready_State
-    Open Connection And Log In
-    Check BMC CPU Performance
-    Check BMC Mem Performance
-    Check BMC File System Performance
-
-Check Core Dump Exist After Code Update
-    [Documentation]  Check core dump existence on BMC after code update.
-    [Tags]  Check_Core_Dump_Exist_After_Code_Update
-    Check For Core Dumps
-
-Enable Core Dump File Size To Be Unlimited
-    [Documentation]  Set core dump file size to unlimited.
-    [Tags]  Enable_Core_Dump_File_size_To_Be_unlimited
-    Set Core Dump File Size Unlimited
-
 *** Keywords ***
 
 Prepare BMC For Update
@@ -169,45 +108,7 @@
     ${resp}=  Openbmc Get Request  /xyz/openbmc_project/state/BMC0/
     Should Be Equal As Strings  ${resp.status_code}  ${HTTP_OK}
 
-Check Temp BMC State
-    [Documentation]  BMC state should be "Ready".
-    # quiet - Suppress REST output logging to console.
-    ${state}=
-    ...  Read Attribute  /xyz/openbmc_project/state/BMC0/  CurrentBMCState
-    Should Be Equal  Ready  ${state.rsplit('.', 1)[1]}
-
 Wait For Temp BMC Ready
     [Documentation]  Check for BMC "Ready" until timedout.
     Wait Until Keyword Succeeds
     ...  10 min  10 sec  Check Temp BMC State
-
-Compare URL List After Code Update
-    [Documentation]  Compare URL list before and after code update.
-    [Arguments]  ${url_before_cu}  ${url_after_cu}
-    # Description of arguments:
-    # url_before_cu  List of URLs available before code update.
-    # url_after_cu   List of URLs available after code update.
-
-    ${url_removed_list}=  Subtract Lists  ${url_before_cu}  ${url_after_cu}
-    ${url_added_list}=  Subtract Lists  ${url_after_cu}  ${url_before_cu}
-    Log  ${url_removed_list}
-    Log  ${url_added_list}
-
-    Return From Keyword If  '${REST_URL_FILE_PATH}' == '${EMPTY}'
-
-    # Create file with BMC firmware version before and after code update.
-    # i.e. <Before_Version>--<After_Version>
-    # Example v1.99.6-141-ge662190--v1.99.6-141-ge664242
-
-    ${file_name}=  Catenate  SEPARATOR=--
-    ...  ${bmc_version_before}  ${bmc_version_after}
-    ${REST_URL_FILE}=  Catenate  ${REST_URL_FILE_PATH}/${file_name}
-    Create File  ${REST_URL_FILE}  URL Removed${\n}
-
-    Return From Keyword If
-    ...  ${url_removed_list} == [] and ${url_added_list} == []
-
-    Create File  ${REST_URL_FILE}  URL Removed${\n}
-    Append To File  ${REST_URL_FILE}  [${url_removed_list}]
-    Append To File  ${REST_URL_FILE}  ${\n}URL Added${\n}
-    Append To File  ${REST_URL_FILE}  [${url_added_list}]
