1*** Settings *** 2Documentation Redfish BMC/Host signed and unsigned code update 3... over BMC functional signed image. 4 5# Test Parameters: 6# IMAGE_FILE_PATH The path to the BMC/Host image file. 7# 8# Firmware update states: 9# Enabled Image is installed and either functional or active. 10# Disabled Image installation failed or ready for activation. 11# Updating Image installation currently in progress. 12 13Resource ../../lib/resource.robot 14Resource ../../lib/bmc_redfish_resource.robot 15Resource ../../lib/openbmc_ffdc.robot 16Resource ../../lib/common_utils.robot 17Resource ../../lib/code_update_utils.robot 18Resource ../../lib/redfish_code_update_utils.robot 19Resource ../../extended/code_update/update_bmc.robot 20Library ../../lib/gen_robot_valid.py 21Library ../../lib/var_funcs.py 22 23Suite Setup Suite Setup Execution 24Suite Teardown Redfish.Logout 25Test Setup Printn 26Test Teardown FFDC On Test Case Fail 27 28*** Test Cases *** 29 30Redfish Signed Code Update 31 [Documentation] BMC/Host signed code update over functional signed 32 ... image, when FieldMode is set to true value. 33 [Tags] Redfish_Signed_Code_Update 34 [Template] Redfish Signed Firmware Update 35 36 # image_file_path 37 ${IMAGE_FILE_PATH} 38 39 40Redfish Fail Unsigned Code Update 41 [Documentation] BMC/Host unsigned code update over functional signed 42 ... image, when Field Mode is set to true to value. 43 [Tags] Redfish_Fail_Unsigned_Code_Update 44 [Template] Redfish Unsigned Firmware Update 45 46 # image_file_path 47 ${IMAGE_FILE_PATH} 48 49 50*** Keywords *** 51 52Suite Setup Execution 53 [Documentation] Do the suite setup. 54 55 Valid File Path IMAGE_FILE_PATH 56 Redfish.Login 57 Delete All BMC Dump 58 Redfish Purge Event Log 59 60 61Redfish Signed Firmware Update 62 [Documentation] Update the BMC/Host firmware via redfish interface. 63 [Arguments] ${image_file_path} 64 65 # Description of argument(s): 66 # IMAGE_FILE_PATH The path to the image file. 67 68 Field Mode Should Be Enabled 69 ${image_version}= Get Version Tar ${image_file_path} 70 ${state}= Get Pre Reboot State 71 Rprint Vars state 72 Redfish Upload Image And Check Progress State Immediate 73 ${image_info}= Get Software Inventory State By Version ${image_version} 74 Run Keyword If 'BMC update' == '${image_info["image_type"]}' 75 ... Reboot BMC And Verify BMC Image Immediate start_boot_seconds=${state['epoch_seconds']} 76 ... ELSE 77 ... Poweron Host And Verify Host Image 78 79 80Redfish Unsigned Firmware Update 81 [Documentation] Update the BMC/Host firmware via redfish interface. 82 [Arguments] ${image_file_path} 83 84 # Description of argument(s): 85 # IMAGE_FILE_PATH The path to the image file. 86 87 Field Mode Should Be Enabled 88 Set ApplyTime policy=Immediate 89 Redfish Upload Image ${REDFISH_BASE_URI}UpdateService ${image_file_path} 90 ${image_id}= Get Latest Image ID 91 Rprint Vars image_id 92 Sleep 5s 93 Wait Until Keyword Succeeds 8 min 20 sec 94 ... Check Image Update Progress State 95 ... match_state='Disabled', 'Updating', 'Disabled' image_id=${image_id} 96 Delete Software Object 97 ... /xyz/openbmc_project/software/${image_id} 98 99