*** Settings *** Documentation This suite test various boot types with boot source. Resource ../../lib/resource.robot Resource ../../lib/bmc_redfish_resource.robot Resource ../../lib/common_utils.robot Resource ../../lib/openbmc_ffdc.robot Resource ../../lib/ipmi_client.robot Test Setup Test Setup Execution Test Teardown Test Teardown Execution Suite Teardown Suite Teardown Execution *** Variables *** # Maps for correlating redfish data values to IPMI data values. # The redfish values are obtained with Redfish.Get or Redfish.Get Properties. # The corresponding IPMI values are obtained with the "chassis bootparam get # 5" IPMI command. # This dictionary maps the redfish 'BootSourceOverrideEnabled' value to the # corresponding IPMI output value. &{redfish_ipmi_enabled_map} Once=Options apply to only next boot ... Continuous=Options apply to all future boots ... Disabled=Options apply to all future boots # This dictionary maps the redfish 'BootSourceOverrideTarget' value to the # corresponding IPMI output value. &{redfish_ipmi_target_map} Hdd=Force Boot from default Hard-Drive ... Pxe=Force PXE ... Diags=Force Boot from default Hard-Drive, request Safe-Mode ... Cd=Force Boot from CD/DVD ... BiosSetup=Force Boot into BIOS Setup ... None=No override # This dictionary maps the redfish 'BootSourceOverrideMode' value to the # corresponding IPMI output value. &{redfish_ipmi_mode_map} Legacy=BIOS PC Compatible (legacy) boot ... UEFI=BIOS EFI boot *** Test Cases *** Verify BMC Redfish Boot Source Override with Enabled Mode As Once [Documentation] Verify BMC Redfish Boot Source Override with Enabled Mode As Once. [Tags] Verify_BMC_Redfish_Boot_Source_Override_with_Enabled_Mode_As_Once [Template] Set And Verify Boot Source Override #BootSourceOverrideEnabled BootSourceOverrideTarget BootSourceOverrideMode Once Hdd UEFI Once Pxe UEFI Once Diags UEFI Once Cd UEFI Once BiosSetup UEFI Once Hdd Legacy Once Pxe Legacy Once Diags Legacy Once Cd Legacy Once BiosSetup Legacy Verify BMC Redfish Boot Source Override with Enabled Mode As Continuous [Documentation] Verify BMC Redfish Boot Source Override with Enabled Mode As Continuous. [Tags] Verify_BMC_Redfish_Boot_Source_Override_with_Enabled_Mode_As_Continuous [Template] Set And Verify Boot Source Override #BootSourceOverrideEnabled BootSourceOverrideTarget BootSourceOverrideMode Continuous Hdd UEFI Continuous Pxe UEFI Continuous Diags UEFI Continuous Cd UEFI Continuous BiosSetup UEFI Continuous Hdd Legacy Continuous Pxe Legacy Continuous Diags Legacy Continuous Cd Legacy Continuous BiosSetup Legacy *** Keywords *** Set And Verify Boot Source Override [Documentation] Set and Verify Boot source override [Arguments] ${override_enabled} ${override_target} ${override_mode}=UEFI # Description of argument(s): # override_enabled Boot source override enable type. # ('Once', 'Continuous', 'Disabled'). # override_target Boot source override target. # ('Pxe', 'Cd', 'Hdd', 'Diags', 'BiosSetup', 'None'). # override_mode Boot source override mode (relevant only for x86 arch). # ('Legacy', 'UEFI'). # Example: # "Boot": { # "BootSourceOverrideEnabled": "Disabled", # "BootSourceOverrideMode": "Legacy", # "BootSourceOverrideTarget": "None", # "BootSourceOverrideTarget@Redfish.AllowableValues": [ # "None", # "Pxe", # "Hdd", # "Cd", # "Diags", # "BiosSetup"]} # The values set using Redfish are verified via IPMI using the command: # chassis bootparam get 5 # Option 5 returns the boot parameters. # # Sample output: # Boot parameter version: 1 # Boot parameter 5 is valid/unlocked # Boot parameter data: c000000000 # Boot Flags : # - Boot Flag Valid # - Options apply to all future boots # - BIOS PC Compatible (legacy) boot # - Boot Device Selector : No override # - Console Redirection control : System Default # - BIOS verbosity : Console redirection occurs per BIOS configuration # setting (default) # - BIOS Mux Control Override : BIOS uses recommended setting of the mux at # the end of POST Redfish Set Boot Default ${override_enabled} ${override_target} ${override_mode} ${output}= Run IPMI Standard Command chassis bootparam get 5 Should Contain ${output} ${redfish_ipmi_enabled_map['${override_enabled}']} Should Contain ${output} ${redfish_ipmi_target_map['${override_target}']} Run Keyword If '${PLATFORM_ARCH_TYPE}' == 'x86' ... Should Contain ${output} ${redfish_ipmi_mode_map['${override_mode}']} Suite Teardown Execution [Documentation] Do the post suite teardown. Redfish.Login Set And Verify Boot Source Override Disabled None UEFI Redfish.Logout Test Setup Execution [Documentation] Do test case setup tasks. Redfish.Login Test Teardown Execution [Documentation] Do the post test teardown. FFDC On Test Case Fail Redfish.Logout