*** Settings *** Documentation Update firmware on a target MCU via Redifsh. # Test Parameters: # IMAGE_MCU_FILE_PATH The path to the MCU image file. # # Firmware update states: # Enabled Image is installed and either functional or active. # Disabled Image installation failed or ready for activation. # Updating Image installation currently in progress. Resource ../lib/resource.robot Resource ../lib/bmc_redfish_resource.robot Resource ../lib/boot_utils.robot Resource ../lib/openbmc_ffdc.robot Resource ../lib/common_utils.robot Resource ../lib/code_update_utils.robot Resource ../lib/dump_utils.robot Resource ../lib/logging_utils.robot Resource ../lib/redfish_code_update_utils.robot Resource ../lib/utils.robot 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 Teardown FFDC On Test Case Fail Force Tags Mcu_Code_Update *** Test Cases *** Redfish Mcu Code Update With ApplyTime OnReset [Documentation] Update the firmaware image with ApplyTime of OnReset. [Tags] Redfish_Mcu_Code_Update_With_ApplyTime_OnReset [Template] Redfish Update Firmware # policy OnReset ${IMAGE_MCU_FILE_PATH_0} Redfish Mcu Code Update With ApplyTime Immediate [Documentation] Update the firmaware image with ApplyTime of Immediate. [Tags] Redfish_Mcu_Code_Update_With_ApplyTime_Immediate [Template] Redfish Update Firmware # policy Immediate ${IMAGE_MCU_FILE_PATH_1} *** Keywords *** Suite Setup Execution [Documentation] Do the suite setup. # Checking for file existence. Valid File Path IMAGE_MCU_FILE_PATH_0 Valid File Path IMAGE_MCU_FILE_PATH_1 Redfish.Login Delete All BMC Dump Redfish Purge Event Log Redfish Verify MCU Version [Documentation] Verify that the version on the MCU is the same as the ... version in the given image via Redfish. [Arguments] ${image_file_path} # Description of argument(s): # image_file_path Path to the image tarball. # Extract the version from the image tarball on our local system. ${tar_version}= Get Version Tar ${image_file_path} ${image_info}= Get Software Inventory State By Version ${tar_version} ${image_id}= Get Image Id By Image Info ${image_info} ${mcu_version}= Redfish.Get Attribute /redfish/v1/UpdateService/FirmwareInventory/${image_id} Version Valid Value mcu_version valid_values=['${tar_version}'] Redfish Update Firmware [Documentation] Update the BMC firmware via redfish interface. [Arguments] ${apply_time} ${image_file_path} # Description of argument(s): # policy ApplyTime allowed values (e.g. "OnReset", "Immediate"). Redfish.Login Set ApplyTime policy=${apply_time} Redfish Upload Image /redfish/v1/UpdateService ${image_file_path} Sleep 30s ${image_version}= Get Version Tar ${image_file_path} ${image_info}= Get Software Inventory State By Version ${image_version} ${image_id}= Get Image Id By Image Info ${image_info} Redfish.Login Redfish Verify MCU Version ${image_file_path} Get Image Id By Image Info [Documentation] Get image ID from image_info. [Arguments] ${image_info} [Return] ${image_info["image_id"]}