1*** Settings *** 2Documentation This suite test various boot types with boot source. 3Resource ../../lib/resource.robot 4Resource ../../lib/bmc_redfish_resource.robot 5Resource ../../lib/common_utils.robot 6Resource ../../lib/openbmc_ffdc.robot 7Resource ../../lib/ipmi_client.robot 8 9Test Setup Test Setup Execution 10Test Teardown Test Teardown Execution 11Suite Teardown Suite Teardown Execution 12 13Test Tags Boot_Devices 14 15*** Variables *** 16# Maps for correlating redfish data values to IPMI data values. 17# The redfish values are obtained with Redfish.Get or Redfish.Get Properties. 18# The corresponding IPMI values are obtained with the "chassis bootparam get 19# 5" IPMI command. 20 21# This dictionary maps the redfish 'BootSourceOverrideEnabled' value to the 22# corresponding IPMI output value. 23&{redfish_ipmi_enabled_map} Once=Options apply to only next boot 24... Continuous=Options apply to all future boots 25... Disabled=Boot Flag Invalid 26 27# This dictionary maps the redfish 'BootSourceOverrideTarget' value to the 28# corresponding IPMI output value. 29&{redfish_ipmi_target_map} Hdd=Force Boot from default Hard-Drive 30... Pxe=Force PXE 31... Diags=Force Boot from default Hard-Drive, request Safe-Mode 32... Cd=Force Boot from CD/DVD 33... BiosSetup=Force Boot into BIOS Setup 34... None=No override 35 36# This dictionary maps the redfish 'BootSourceOverrideMode' value to the 37# corresponding IPMI output value. 38&{redfish_ipmi_mode_map} Legacy=BIOS PC Compatible (legacy) boot 39... UEFI=BIOS EFI boot 40 41${loop_count} 2 42 43*** Test Cases *** 44 45Verify BMC Redfish Boot Source Override with Enabled Mode As Once 46 [Documentation] Verify BMC Redfish Boot Source Override with Enabled Mode As Once. 47 [Tags] Verify_BMC_Redfish_Boot_Source_Override_with_Enabled_Mode_As_Once 48 [Template] Set And Verify Boot Source Override 49 50 #BootSourceOverrideEnabled BootSourceOverrideTarget BootSourceOverrideMode 51 Once Hdd UEFI 52 Once Pxe UEFI 53 Once Diags UEFI 54 Once Cd UEFI 55 Once BiosSetup UEFI 56 Once None UEFI 57 Once Hdd Legacy 58 Once Pxe Legacy 59 Once Diags Legacy 60 Once Cd Legacy 61 Once BiosSetup Legacy 62 Once None Legacy 63 64 65Verify BMC Redfish Boot Source Override with Enabled Mode As Continuous 66 [Documentation] Verify BMC Redfish Boot Source Override with Enabled Mode As Continuous. 67 [Tags] Verify_BMC_Redfish_Boot_Source_Override_with_Enabled_Mode_As_Continuous 68 [Template] Set And Verify Boot Source Override 69 70 #BootSourceOverrideEnabled BootSourceOverrideTarget BootSourceOverrideMode 71 Continuous Hdd UEFI 72 Continuous Pxe UEFI 73 Continuous Diags UEFI 74 Continuous Cd UEFI 75 Continuous BiosSetup UEFI 76 Continuous None UEFI 77 Continuous Hdd Legacy 78 Continuous Pxe Legacy 79 Continuous Diags Legacy 80 Continuous Cd Legacy 81 Continuous BiosSetup Legacy 82 Continuous None Legacy 83 84 85Verify BMC Redfish Boot Source Override with Enabled Mode As Disabled 86 [Documentation] Verify BMC Redfish Boot Source Override with Enabled Mode As Disabled. 87 [Tags] Verify_BMC_Redfish_Boot_Source_Override_with_Enabled_Mode_As_Disabled 88 [Template] Set And Verify Boot Source Override 89 90 #BootSourceOverrideEnabled BootSourceOverrideTarget BootSourceOverrideMode 91 Disabled Hdd UEFI 92 Disabled Pxe UEFI 93 Disabled Diags UEFI 94 Disabled Cd UEFI 95 Disabled BiosSetup UEFI 96 Disabled None UEFI 97 Disabled Hdd Legacy 98 Disabled Pxe Legacy 99 Disabled Diags Legacy 100 Disabled Cd Legacy 101 Disabled BiosSetup Legacy 102 Disabled None Legacy 103 104 105Verify Boot Source Override Policy Persistency With Enabled Mode As Once After BMC Reboot 106 [Documentation] Verify Boot Source Override Policy Persistency with Enabled Mode As Once After BMC Reboot. 107 [Tags] Verify_Boot_Source_Override_Policy_Persistency_With_Enabled_Mode_As_Once_After_BMC_Reboot 108 [Template] Verify Boot Source Override After BMC Reboot 109 110 #BootSourceOverrideEnabled BootSourceOverrideTarget BootSourceOverrideMode 111 Once Hdd UEFI 112 Once Pxe UEFI 113 Once Diags UEFI 114 Once Cd UEFI 115 Once BiosSetup UEFI 116 Once None UEFI 117 Once Hdd Legacy 118 Once Pxe Legacy 119 Once Diags Legacy 120 Once Cd Legacy 121 Once BiosSetup Legacy 122 Once None Legacy 123 124 125Verify Boot Source Override Policy Persistency With Enabled Mode As Continuous After BMC Reboot 126 [Documentation] Verify Boot Source Override Policy Persistency with Enabled Mode As Continuous After BMC Reboot. 127 [Tags] Verify_Boot_Source_Override_Policy_Persistency_With_Enabled_Mode_As_Continuous_After_BMC_Reboot 128 [Template] Verify Boot Source Override After BMC Reboot 129 130 #BootSourceOverrideEnabled BootSourceOverrideTarget BootSourceOverrideMode 131 Continuous Hdd UEFI 132 Continuous Pxe UEFI 133 Continuous Diags UEFI 134 Continuous Cd UEFI 135 Continuous BiosSetup UEFI 136 Continuous None UEFI 137 Continuous Hdd Legacy 138 Continuous Pxe Legacy 139 Continuous Diags Legacy 140 Continuous Cd Legacy 141 Continuous BiosSetup Legacy 142 Continuous None Legacy 143 144 145Verify Boot Source Override Policy With Enabled Mode As Once After Host Reboot 146 [Documentation] Verify Boot Source Override Policy with Enabled Mode As Once After Host Reboot. 147 [Tags] Verify_Boot_Source_Override_Policy_With_Enabled_Mode_As_Once_After_Host_Reboot 148 [Template] Verify Boot Source Override with Enabled Mode As Once After Host Reboot 149 150 #BootSourceOverrideTarget BootSourceOverrideMode 151 Hdd UEFI 152 Pxe UEFI 153 Diags UEFI 154 Cd UEFI 155 None UEFI 156 Hdd Legacy 157 Pxe Legacy 158 Diags Legacy 159 Cd Legacy 160 None Legacy 161 162 163Verify Boot Source Override Policy With Enabled Mode As Continuous After Host Reboot 164 [Documentation] Verify Boot Source Override Policy With Enabled Mode As Continuous After Host Reboot. 165 [Tags] Verify_Boot_Source_Override_Policy_With_Enabled_Mode_As_Continuous_After_Host_Reboot 166 [Template] Verify Boot Source Override with Enabled Mode As Continuous After Host Reboot 167 168 #BootSourceOverrideTarget BootSourceOverrideMode 169 Hdd UEFI 170 Pxe UEFI 171 Diags UEFI 172 Cd UEFI 173 None UEFI 174 Hdd Legacy 175 Pxe Legacy 176 Diags Legacy 177 Cd Legacy 178 None Legacy 179 180 181Verify Boot Source Override With Enabled Mode As Once After Host Reboot For Bios Setup 182 [Documentation] Verify Boot Source Override with Enabled Mode As Once After Host Reboot For Bios Setup. 183 [Tags] Verify_Boot_Source_Override_With_Enabled_Mode_As_Once_After_Host_Reboot_For_Bios_Setup 184 [Template] Verify Boot Source Override with Enabled Mode As Once After Host Reboot 185 186 #BootSourceOverrideTarget BootSourceOverrideMode Biosflag 187 BiosSetup UEFI True 188 BiosSetup Legacy True 189 190 191Verify Boot Source Override With Enabled Mode As Continuous After Host Reboot For Bios Setup 192 [Documentation] Verify Boot Source Override with Enabled Mode As Continuous After Host Reboot For Bios Setup. 193 [Tags] Verify_Boot_Source_Override_With_Enabled_Mode_As_Continuous_After_Host_Reboot_For_Bios_Setup 194 [Template] Verify Boot Source Override with Enabled Mode As Continuous After Host Reboot 195 196 #BootSourceOverrideTarget BootSourceOverrideMode Biosflag 197 BiosSetup UEFI True 198 BiosSetup Legacy True 199 200 201*** Keywords *** 202 203Set And Verify Boot Source Override 204 [Documentation] Set and Verify Boot source override. 205 [Arguments] ${override_enabled} ${override_target} ${override_mode}=UEFI 206 207 # Description of argument(s): 208 # override_enabled Boot source override enable type. 209 # ('Once', 'Continuous', 'Disabled'). 210 # override_target Boot source override target. 211 # ('Pxe', 'Cd', 'Hdd', 'Diags', 'BiosSetup', 'None'). 212 # override_mode Boot source override mode (relevant only for x86 arch). 213 # ('Legacy', 'UEFI'). 214 215 # Example: 216 # "Boot": { 217 # "BootSourceOverrideEnabled": "Disabled", 218 # "BootSourceOverrideMode": "Legacy", 219 # "BootSourceOverrideTarget": "None", 220 # "BootSourceOverrideTarget@Redfish.AllowableValues": [ 221 # "None", 222 # "Pxe", 223 # "Hdd", 224 # "Cd", 225 # "Diags", 226 # "BiosSetup"]} 227 228 # The values set using Redfish are verified via IPMI using the command: 229 # chassis bootparam get 5 230 # Option 5 returns the boot parameters. 231 # 232 # Sample output: 233 # Boot parameter version: 1 234 # Boot parameter 5 is valid/unlocked 235 # Boot parameter data: c000000000 236 # Boot Flags : 237 # - Boot Flag Valid 238 # - Options apply to all future boots 239 # - BIOS PC Compatible (legacy) boot 240 # - Boot Device Selector : No override 241 # - Console Redirection control : System Default 242 # - BIOS verbosity : Console redirection occurs per BIOS configuration 243 # setting (default) 244 # - BIOS Mux Control Override : BIOS uses recommended setting of the mux at 245 # the end of POST 246 247 Redfish Set Boot Default ${override_enabled} ${override_target} ${override_mode} 248 249 ${output}= Run IPMI Standard Command chassis bootparam get 5 250 Should Contain ${output} ${redfish_ipmi_enabled_map['${override_enabled}']} 251 Should Contain ${output} ${redfish_ipmi_target_map['${override_target}']} 252 IF '${PLATFORM_ARCH_TYPE}' == 'x86' 253 Should Contain ${output} ${redfish_ipmi_mode_map['${override_mode}']} 254 END 255 256Verify Boot Source Override After BMC Reboot 257 [Documentation] Verify Boot Source Override After BMC Reboot. 258 [Arguments] ${override_enabled} ${override_target} ${override_mode}=UEFI 259 260 # Description of argument(s): 261 # override_enabled Boot source override enable type. 262 # ('Once', 'Continuous', 'Disabled'). 263 # override_target Boot source override target. 264 # ('Pxe', 'Cd', 'Hdd', 'Diags', 'BiosSetup', 'None'). 265 # override_mode Boot source override mode (relevant only for x86 arch). 266 # ('Legacy', 'UEFI'). 267 268 # Example: 269 # "Boot": { 270 # "BootSourceOverrideEnabled": "Disabled", 271 # "BootSourceOverrideMode": "Legacy", 272 # "BootSourceOverrideTarget": "None", 273 # "BootSourceOverrideTarget@Redfish.AllowableValues": [ 274 # "None", 275 # "Pxe", 276 # "Hdd", 277 # "Cd", 278 # "Diags", 279 # "BiosSetup"]} 280 281 # The values set using Redfish are verified via IPMI using the command: 282 # chassis bootparam get 5 283 # Option 5 returns the boot parameters. 284 # 285 # Sample output: 286 # Boot parameter version: 1 287 # Boot parameter 5 is valid/unlocked 288 # Boot parameter data: c000000000 289 # Boot Flags : 290 # - Boot Flag Valid 291 # - Options apply to all future boots 292 # - BIOS PC Compatible (legacy) boot 293 # - Boot Device Selector : No override 294 # - Console Redirection control : System Default 295 # - BIOS verbosity : Console redirection occurs per BIOS configuration 296 # setting (default) 297 # - BIOS Mux Control Override : BIOS uses recommended setting of the mux at 298 # the end of POST 299 300 Redfish Set Boot Default ${override_enabled} ${override_target} ${override_mode} 301 302 Redfish OBMC Reboot (run) 303 304 ${output}= Run IPMI Standard Command chassis bootparam get 5 305 Should Contain ${output} ${redfish_ipmi_enabled_map['${override_enabled}']} 306 Should Contain ${output} ${redfish_ipmi_target_map['${override_target}']} 307 IF '${PLATFORM_ARCH_TYPE}' == 'x86' 308 Should Contain ${output} ${redfish_ipmi_mode_map['${override_mode}']} 309 END 310 311 312Verify Boot Source Override with Enabled Mode As Once After Host Reboot 313 [Documentation] Verify Boot Source Override with Enabled Mode As Once After Host Reboot. 314 [Arguments] ${override_target} ${override_mode}=UEFI ${is_bios_setup}=False 315 316 # Description of argument(s): 317 # override_enabled Boot source override enable type. 318 # ('Once', 'Continuous', 'Disabled'). 319 # override_target Boot source override target. 320 # ('Pxe', 'Cd', 'Hdd', 'Diags', 'BiosSetup', 'None'). 321 # override_mode Boot source override mode (relevant only for x86 arch). 322 # ('Legacy', 'UEFI'). 323 324 # Example: 325 # "Boot": { 326 # "BootSourceOverrideEnabled": "Disabled", 327 # "BootSourceOverrideMode": "Legacy", 328 # "BootSourceOverrideTarget": "None", 329 # "BootSourceOverrideTarget@Redfish.AllowableValues": [ 330 # "None", 331 # "Pxe", 332 # "Hdd", 333 # "Cd", 334 # "Diags", 335 # "BiosSetup"]} 336 337 # The values set using Redfish are verified via IPMI using the command: 338 # chassis bootparam get 5 339 # Option 5 returns the boot parameters. 340 # 341 # Sample output: 342 # Boot parameter version: 1 343 # Boot parameter 5 is valid/unlocked 344 # Boot parameter data: c000000000 345 # Boot Flags : 346 # - Boot Flag Valid 347 # - Options apply to all future boots 348 # - BIOS PC Compatible (legacy) boot 349 # - Boot Device Selector : No override 350 # - Console Redirection control : System Default 351 # - BIOS verbosity : Console redirection occurs per BIOS configuration 352 # setting (default) 353 # - BIOS Mux Control Override : BIOS uses recommended setting of the mux at 354 # the end of POST 355 356 Redfish Set Boot Default Once ${override_target} ${override_mode} 357 358 IF '${is_bios_setup}' == 'True' 359 Repeat Keyword ${loop_count} times Host Reboot For Bios Setup 360 ELSE 361 RF SYS GracefulRestart 362 ${output}= Run IPMI Standard Command chassis bootparam get 5 363 Should Contain ${output} ${redfish_ipmi_enabled_map['Once']} 364 Should Contain ${output} ${redfish_ipmi_target_map['None']} 365 IF '${PLATFORM_ARCH_TYPE}' == 'x86' 366 Should Contain ${output} ${redfish_ipmi_mode_map['Legacy']} 367 END 368 END 369 370 ${resp}= Redfish.Get Attribute /redfish/v1/Systems/system Boot 371 Should Be Equal As Strings ${resp["BootSourceOverrideEnabled"]} Disabled 372 Should Be Equal As Strings ${resp["BootSourceOverrideTarget"]} None 373 IF '${PLATFORM_ARCH_TYPE}' == 'x86' 374 Should Be Equal As Strings ${resp["BootSourceOverrideMode"]} Legacy 375 END 376 377Verify Boot Source Override with Enabled Mode As Continuous After Host Reboot 378 [Documentation] Verify Boot Source Override with Enabled Mode As Continuous After Host Reboot. 379 [Arguments] ${override_target} ${override_mode}=UEFI ${is_bios_setup}=False 380 381 # Description of argument(s): 382 # override_enabled Boot source override enable type. 383 # ('Once', 'Continuous', 'Disabled'). 384 # override_target Boot source override target. 385 # ('Pxe', 'Cd', 'Hdd', 'Diags', 'BiosSetup', 'None'). 386 # override_mode Boot source override mode (relevant only for x86 arch). 387 # ('Legacy', 'UEFI'). 388 389 # Example: 390 # "Boot": { 391 # "BootSourceOverrideEnabled": "Disabled", 392 # "BootSourceOverrideMode": "Legacy", 393 # "BootSourceOverrideTarget": "None", 394 # "BootSourceOverrideTarget@Redfish.AllowableValues": [ 395 # "None", 396 # "Pxe", 397 # "Hdd", 398 # "Cd", 399 # "Diags", 400 # "BiosSetup"]} 401 402 # The values set using Redfish are verified via IPMI using the command: 403 # chassis bootparam get 5 404 # Option 5 returns the boot parameters. 405 # 406 # Sample output: 407 # Boot parameter version: 1 408 # Boot parameter 5 is valid/unlocked 409 # Boot parameter data: c000000000 410 # Boot Flags : 411 # - Boot Flag Valid 412 # - Options apply to all future boots 413 # - BIOS PC Compatible (legacy) boot 414 # - Boot Device Selector : No override 415 # - Console Redirection control : System Default 416 # - BIOS verbosity : Console redirection occurs per BIOS configuration 417 # setting (default) 418 # - BIOS Mux Control Override : BIOS uses recommended setting of the mux at 419 # the end of POST 420 421 Redfish Set Boot Default Continuous ${override_target} ${override_mode} 422 423 IF '${is_bios_setup}' == 'True' 424 Repeat Keyword ${loop_count} times Host Reboot For Bios Setup 425 ELSE 426 RF SYS GracefulRestart 427 ${output}= Run IPMI Standard Command chassis bootparam get 5 428 Should Contain ${output} ${redfish_ipmi_enabled_map['Continuous']} 429 Should Contain ${output} ${redfish_ipmi_target_map['${override_target}']} 430 IF '${PLATFORM_ARCH_TYPE}' == 'x86' 431 Should Contain ${output} ${redfish_ipmi_mode_map['${override_mode}']} 432 END 433 END 434 435 ${resp}= Redfish.Get Attribute /redfish/v1/Systems/system Boot 436 Should Be Equal As Strings ${resp["BootSourceOverrideEnabled"]} Continuous 437 Should Be Equal As Strings ${resp["BootSourceOverrideTarget"]} ${override_target} 438 439 IF '${PLATFORM_ARCH_TYPE}' == 'x86' 440 Should Be Equal As Strings ${resp["BootSourceOverrideMode"]} ${override_mode} 441 END 442 443Host Reboot For Bios Setup 444 [Documentation] Rebooting Host without checking Host state. 445 446 Redfish Power Operation GracefulRestart 447 448 Sleep 1min 449 450 451Suite Teardown Execution 452 [Documentation] Do the post suite teardown. 453 454 Redfish.Login 455 Set And Verify Boot Source Override Disabled None UEFI 456 Redfish.Logout 457 458 459Test Setup Execution 460 [Documentation] Do test case setup tasks. 461 462 Redfish.Login 463 464 465Test Teardown Execution 466 [Documentation] Do the post test teardown. 467 468 FFDC On Test Case Fail 469 Redfish.Logout 470