1*d6ec8369SGeorge Keishing*** Settings ***
2*d6ec8369SGeorge KeishingDocumentation    Test MPIPL.
3*d6ec8369SGeorge Keishing
4*d6ec8369SGeorge KeishingResource         ../../lib/resource.robot
5*d6ec8369SGeorge KeishingResource         ../../lib/openbmc_ffdc.robot
6*d6ec8369SGeorge KeishingResource         ../../lib/bmc_redfish_utils.robot
7*d6ec8369SGeorge KeishingResource         ../../lib/bmc_redfish_resource.robot
8*d6ec8369SGeorge KeishingResource         ../../lib/boot_utils.robot
9*d6ec8369SGeorge Keishing
10*d6ec8369SGeorge KeishingTest Teardown    Test Teardown Execution
11*d6ec8369SGeorge Keishing
12*d6ec8369SGeorge Keishing*** Variables ***
13*d6ec8369SGeorge Keishing
14*d6ec8369SGeorge Keishing${user_initated_mpipl}  systemctl start obmc-host-crash@0.target
15*d6ec8369SGeorge Keishing
16*d6ec8369SGeorge Keishing** Test Cases **
17*d6ec8369SGeorge Keishing
18*d6ec8369SGeorge KeishingTrigger And Verify User Initiated Dump Using Diagnostic Mode Target
19*d6ec8369SGeorge Keishing    [Documentation]  Trigger And Verify user initiated dump using diagnostic mode target
20*d6ec8369SGeorge Keishing    [Tags]  Trigger_And_Verify_User_Initiated_Dump_Using_Diagnostic_Mode_Target
21*d6ec8369SGeorge Keishing
22*d6ec8369SGeorge Keishing    Redfish.Login
23*d6ec8369SGeorge Keishing
24*d6ec8369SGeorge Keishing    # Power off
25*d6ec8369SGeorge Keishing    Redfish Power Off
26*d6ec8369SGeorge Keishing
27*d6ec8369SGeorge Keishing    # Power on
28*d6ec8369SGeorge Keishing    Redfish Power On
29*d6ec8369SGeorge Keishing
30*d6ec8369SGeorge Keishing    # Trigger MPIPL
31*d6ec8369SGeorge Keishing    BMC Execute Command  ${user_initated_mpipl}
32*d6ec8369SGeorge Keishing    Sleep  240
33*d6ec8369SGeorge Keishing
34*d6ec8369SGeorge Keishing    # Confirm boot after MPIPL
35*d6ec8369SGeorge Keishing    ${res}  ${stderr}  ${rc} =  BMC Execute Command  obmcutil state
36*d6ec8369SGeorge Keishing    Should Contain  ${res}  OSStatus.Standby
37*d6ec8369SGeorge Keishing
38*d6ec8369SGeorge Keishing    ${p0_cfam}  ${stderr}  ${rc} =  BMC Execute Command  pdbg -p0 getcfam 0x2809
39*d6ec8369SGeorge Keishing    Should Contain  ${p0_cfam}  0x854
40*d6ec8369SGeorge Keishing    Printn  ${p0_cfam}
41*d6ec8369SGeorge Keishing
42*d6ec8369SGeorge Keishing    ${p1_cfam}  ${stderr}  ${rc} =  BMC Execute Command  pdbg -p1 getcfam 0x2809
43*d6ec8369SGeorge Keishing    Should Contain  ${p1_cfam}  0x854
44*d6ec8369SGeorge Keishing    Printn  ${p1_cfam}
45*d6ec8369SGeorge Keishing
46*d6ec8369SGeorge KeishingTrigger And Verify User Initiated Dump Using Redfish
47*d6ec8369SGeorge Keishing    [Documentation]  Verify redfish triggered MPIPL flow
48*d6ec8369SGeorge Keishing    [Tags]  Trigger_And_Verify_User_Initiated_Dump_Using_Redfish
49*d6ec8369SGeorge Keishing
50*d6ec8369SGeorge Keishing    Redfish.Login
51*d6ec8369SGeorge Keishing
52*d6ec8369SGeorge Keishing    # Power off
53*d6ec8369SGeorge Keishing    Redfish Power Off
54*d6ec8369SGeorge Keishing
55*d6ec8369SGeorge Keishing    # Power on
56*d6ec8369SGeorge Keishing    Redfish Power On
57*d6ec8369SGeorge Keishing
58*d6ec8369SGeorge Keishing    # Trigger MPIPL
59*d6ec8369SGeorge Keishing    ${payload} =  Create Dictionary
60*d6ec8369SGeorge Keishing    ...  DiagnosticDataType=OEM  OEMDiagnosticDataType=System
61*d6ec8369SGeorge Keishing    Redfish.Post  ${DUMP_URI}/Dump/Actions/LogService.CollectDiagnosticData  body=&{payload}
62*d6ec8369SGeorge Keishing    ...  valid_status_codes=[${HTTP_ACCEPTED}]
63*d6ec8369SGeorge Keishing
64*d6ec8369SGeorge Keishing    ${p0_cfam}  ${stderr}  ${rc} =  BMC Execute Command  pdbg -p0 getcfam 0x2809
65*d6ec8369SGeorge Keishing    Should Contain  ${p0_cfam}  0x854
66*d6ec8369SGeorge Keishing    Printn  ${p0_cfam}
67*d6ec8369SGeorge Keishing
68*d6ec8369SGeorge Keishing    ${p1_cfam}  ${stderr}  ${rc} =  BMC Execute Command  pdbg -p1 getcfam 0x2809
69*d6ec8369SGeorge Keishing    Should Contain  ${p1_cfam}  0x854
70*d6ec8369SGeorge Keishing    Printn  ${p1_cfam}
71*d6ec8369SGeorge Keishing
72*d6ec8369SGeorge Keishing
73*d6ec8369SGeorge Keishing*** Keywords ***
74*d6ec8369SGeorge Keishing
75*d6ec8369SGeorge KeishingTest Teardown Execution
76*d6ec8369SGeorge Keishing    [Documentation]  Do the post test teardown.
77*d6ec8369SGeorge Keishing
78*d6ec8369SGeorge Keishing    Run Keyword And Ignore Error  Redfish.Logout
79*d6ec8369SGeorge Keishing    FFDC On Test Case Fail
80*d6ec8369SGeorge Keishing
81