| *** Settings *** |
| Documentation This suite tests checkstop operations through BMC using |
| ... pdbg utility. |
| |
| Resource ../../lib/openbmc_ffdc.robot |
| Resource ../../lib/openbmc_ffdc_methods.robot |
| Resource ../../lib/openbmc_ffdc_utils.robot |
| Resource ../../openpower/ras/ras_utils.robot |
| Variables ../../lib/ras/variables.py |
| Variables ../../data/variables.py |
| |
| Library DateTime |
| Library OperatingSystem |
| Library random |
| Library Collections |
| |
| Suite Setup RAS Suite Setup |
| Test Setup RAS Test Setup |
| Test Teardown FFDC On Test Case Fail |
| Suite Teardown RAS Suite Cleanup |
| |
| Test Tags BMC_RAS |
| |
| *** Variables *** |
| ${stack_mode} normal |
| |
| |
| *** Test Cases *** |
| |
| # Memory Controller Async (MCACALIFIR) related error injection. |
| |
| Verify Pdbg Recoverable Callout Handling For MCA With Threshold 1 |
| [Documentation] Verify recoverable callout handling for MCACALIFIR |
| ... with threshold 1 using pdbg tool. |
| [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_MCA_With_Threshold_1 |
| |
| ${value}= Get From Dictionary ${ERROR_INJECT_DICT} MCACALIFIR_RECV1 |
| ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}mcacalfir_th1 |
| Inject Recoverable Error With Threshold Limit |
| ... BMC ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path} |
| |
| Verify Pdbg Recoverable Callout Handling For MCA With Threshold 32 |
| [Documentation] Verify recoverable callout handling for MCACALIFIR |
| ... with threshold 32 using pdbg tool. |
| [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_MCA_With_Threshold_32 |
| |
| ${value}= Get From Dictionary ${ERROR_INJECT_DICT} MCACALIFIR_RECV32 |
| ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}mcacalfir_th32 |
| Inject Recoverable Error With Threshold Limit |
| ... BMC ${value[0]} ${value[1]} 32 ${value[2]} ${err_log_path} |
| |
| Verify Pdbg Unrecoverable Callout Handling For MCA |
| [Documentation] Verify unrecoverable callout handling for MCACALIFIR |
| ... with pdbg tool. |
| [Tags] Verify_Pdbg_Unrecoverable_Callout_Handling_For_MCA |
| |
| ${value}= Get From Dictionary ${ERROR_INJECT_DICT} MCACALIFIR_UE |
| ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}mcacalfir |
| Inject Unrecoverable Error BMC |
| ... ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path} |
| |
| # Memory controller Interface (MCIFIR) related error injection. |
| |
| Verify Pdbg Recoverable Callout Handling For MCI With Threshold 1 |
| [Documentation] Verify recoverable callout handling for MCI |
| ... with threshold 1 using pdbg tool. |
| [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_MCI_With_Threshold_1 |
| |
| ${value}= Get From Dictionary ${ERROR_INJECT_DICT} MCI_RECV1 |
| ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}mcifir_th1 |
| Inject Recoverable Error With Threshold Limit |
| ... BMC ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path} |
| |
| Verify Pdbg Unrecoverable Callout Handling For MCI |
| [Documentation] Verify unrecoverable callout handling for mci |
| ... with pdbg tool. |
| [Tags] Verify_Pdbg_Unrecoverable_Callout_Handling_For_MCI |
| |
| ${value}= Get From Dictionary ${ERROR_INJECT_DICT} MCI_UE |
| ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}mcifir |
| Inject Unrecoverable Error BMC |
| ... ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path} |
| |
| |
| # CAPP accelerator (CXAFIR) related error injection. |
| |
| Verify Pdbg Recoverable Callout Handling For CXA With Threshold 5 |
| [Documentation] Verify recoverable callout handling for CXA |
| ... with threshold 5 using pdbg tool. |
| [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_CXA_With_Threshold_5 |
| |
| ${value}= Get From Dictionary ${ERROR_INJECT_DICT} CXA_RECV5 |
| ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}cxafir_th5 |
| Inject Recoverable Error With Threshold Limit |
| ... BMC ${value[0]} ${value[1]} 5 ${value[2]} ${err_log_path} |
| |
| Verify Pdbg Recoverable Callout Handling For CXA With Threshold 32 |
| [Documentation] Verify recoverable callout handling for CXA |
| ... with threshold 32 using pdbg tool. |
| [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_CXA_With_Threshold_32 |
| |
| ${value}= Get From Dictionary ${ERROR_INJECT_DICT} CXA_RECV32 |
| ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}cxafir_th32 |
| Inject Recoverable Error With Threshold Limit |
| ... BMC ${value[0]} ${value[1]} 32 ${value[2]} ${err_log_path} |
| |
| Verify Pdbg Unrecoverable Callout Handling For CXA |
| [Documentation] Verify unrecoverable callout handling for CXAFIR |
| ... with pdbg tool. |
| [Tags] Verify_Pdbg_Unrecoverable_Callout_Handling_For_CXA |
| |
| ${value}= Get From Dictionary ${ERROR_INJECT_DICT} CXA_UE |
| ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}cxafir_ue |
| Inject Unrecoverable Error BMC |
| ... ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path} |
| |
| # Optical BUS (OBUSFIR) related error injection. |
| |
| Verify Pdbg Recoverable Callout Handling For OBUS With Threshold 32 |
| [Documentation] Verify recoverable callout handling for OBUS |
| ... with threshold 32 using pdbg tool. |
| [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_OBUS_With_Threshold_32 |
| |
| ${value}= Get From Dictionary ${ERROR_INJECT_DICT} OBUS_RECV32 |
| ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}obusfir_th32 |
| Inject Recoverable Error With Threshold Limit |
| ... BMC ${value[0]} ${value[1]} 32 ${value[2]} ${err_log_path} |
| |
| # NVIDIA graphics processing units (NPU0FIR) related error injection. |
| |
| Verify Pdbg Recoverable Callout Handling For NPU0 With Threshold 32 |
| [Documentation] Verify recoverable callout handling for NPU0 |
| ... with threshold 32 using pdbg tool. |
| [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_NPU0_With_Threshold_32 |
| |
| ${value}= Get From Dictionary ${ERROR_INJECT_DICT} NPU0_RECV32 |
| ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}npu0fir_th32 |
| Inject Recoverable Error With Threshold Limit |
| ... BMC ${value[0]} ${value[1]} 32 ${value[2]} ${err_log_path} |
| |
| # NEST accelerator DMA Engine (NXDMAENGFIR) related error injection. |
| |
| Verify Pdbg Recoverable Callout Handling For NXDMAENG With Threshold 1 |
| [Documentation] Verify recoverable callout handling for NXDMAENG |
| ... with threshold 1 using pdbg tool. |
| [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_NXDMAENG_With_Threshold_1 |
| |
| ${value}= Get From Dictionary ${ERROR_INJECT_DICT} NX_RECV1 |
| ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}nxfir_th1 |
| Inject Recoverable Error With Threshold Limit |
| ... BMC ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path} |
| |
| |
| Verify Pdbg Recoverable Callout Handling For NXDMAENG With Threshold 32 |
| [Documentation] Verify recoverable callout handling for NXDMAENG |
| ... with threshold 32 using pdbg tool. |
| [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_NXDMAENG_With_Threshold_32 |
| |
| ${value}= Get From Dictionary ${ERROR_INJECT_DICT} NX_RECV32 |
| ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}nxfir_th32 |
| Inject Recoverable Error With Threshold Limit |
| ... BMC ${value[0]} ${value[1]} 32 ${value[2]} ${err_log_path} |
| |
| |
| # L2FIR related error injection. |
| |
| Verify Pdbg Recoverable Callout Handling For L2FIR With Threshold 1 |
| [Documentation] Verify recoverable callout handling for L2FIR |
| ... with threshold 1 using pdbg tool. |
| [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_L2FIR_With_Threshold_1 |
| |
| ${value}= Get From Dictionary ${ERROR_INJECT_DICT} L2FIR_RECV1 |
| ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX |
| ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}l2fir_th1 |
| Inject Recoverable Error With Threshold Limit |
| ... BMC ${translated_fir} ${value[1]} 1 ${value[2]} ${err_log_path} |
| |
| Verify Pdbg Recoverable Callout Handling For L2FIR With Threshold 32 |
| [Documentation] Verify recoverable callout handling for L2FIR |
| ... with threshold 32 using pdbg tool. |
| [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_L2FIR_With_Threshold_32 |
| |
| ${value}= Get From Dictionary ${ERROR_INJECT_DICT} L2FIR_RECV32 |
| ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX |
| ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}l2fir_th32 |
| Inject Recoverable Error With Threshold Limit |
| ... BMC ${translated_fir} ${value[1]} 32 ${value[2]} ${err_log_path} |
| |
| Verify Pdbg Unrecoverable Callout Handling For L2FIR |
| [Documentation] Verify unrecoverable callout handling for L2FIR |
| ... with pdbg tool. |
| [Tags] Verify_Pdbg_Unrecoverable_Callout_Handling_For_L2FIR |
| |
| ${value}= Get From Dictionary ${ERROR_INJECT_DICT} L2FIR_UE |
| ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX |
| ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}l2fir_ue |
| Inject Unrecoverable Error BMC |
| ... ${translated_fir} ${value[1]} 1 ${value[2]} ${err_log_path} |
| |
| # L3FIR related error injection. |
| |
| Verify Pdbg Recoverable Callout Handling For L3FIR With Threshold 1 |
| [Documentation] Verify recoverable callout handling for L3FIR |
| ... with threshold 1 using pdbg tool. |
| [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_L3FIR_With_Threshold_1 |
| |
| ${value}= Get From Dictionary ${ERROR_INJECT_DICT} L3FIR_RECV1 |
| ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX |
| ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}l3fir_th1 |
| Inject Recoverable Error With Threshold Limit |
| ... BMC ${translated_fir} ${value[1]} 1 ${value[2]} ${err_log_path} |
| |
| Verify Pdbg Recoverable Callout Handling For L3FIR With Threshold 32 |
| [Documentation] Verify recoverable callout handling for L3FIR |
| ... with threshold 32 using pdbg tool. |
| [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_L3FIR_With_Threshold_32 |
| |
| ${value}= Get From Dictionary ${ERROR_INJECT_DICT} L3FIR_RECV32 |
| ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX |
| ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}l3fir_th32 |
| Inject Recoverable Error With Threshold Limit |
| ... BMC ${translated_fir} ${value[1]} 32 ${value[2]} ${err_log_path} |
| |
| Verify Pdbg Unrecoverable Callout Handling For L3FIR |
| [Documentation] Verify unrecoverable callout handling for L3FIR |
| ... with pdbg tool. |
| [Tags] Verify_Pdbg_Unrecoverable_Callout_Handling_For_L3FIR |
| |
| ${value}= Get From Dictionary ${ERROR_INJECT_DICT} L3FIR_UE |
| ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX |
| ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}l3fir_ue |
| Inject Unrecoverable Error BMC |
| ... ${translated_fir} ${value[1]} 1 ${value[2]} ${err_log_path} |
| |
| # On chip controller (OCCFIR) related error injection. |
| |
| Verify Pdbg Recoverable Callout Handling For OCC With Threshold 1 |
| [Documentation] Verify recoverable callout handling for OCCFIR |
| ... with threshold 1 using pdbg tool. |
| [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_OCC_With_Threshold_1 |
| |
| ${value}= Get From Dictionary ${ERROR_INJECT_DICT} OCCFIR_RECV1 |
| ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}occfir_th1 |
| Inject Recoverable Error With Threshold Limit |
| ... BMC ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path} |
| |
| # Core management engine (CMEFIR) related error injection. |
| |
| Verify Pdbg Recoverable Callout Handling For CMEFIR With Threshold 1 |
| [Documentation] Verify recoverable callout handling for CMEFIR |
| ... with threshold 1 using pdbg tool. |
| [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_CMEFIR_With_Threshold_1 |
| |
| ${value}= Get From Dictionary ${ERROR_INJECT_DICT} CMEFIR_RECV1 |
| ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX |
| ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}cmefir_th1 |
| Inject Recoverable Error With Threshold Limit |
| ... BMC ${translated_fir} ${value[1]} 1 ${value[2]} ${err_log_path} |
| |
| # Nest control vunit (NCUFIR) related error injection. |
| |
| Verify Pdbg Recoverable Callout Handling For NCUFIR With Threshold 1 |
| [Documentation] Verify recoverable callout handling for NCUFIR |
| ... with threshold 1 using pdbg tool. |
| [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_NCUFIR_With_Threshold_1 |
| |
| ${value}= Get From Dictionary ${ERROR_INJECT_DICT} NCUFIR_RECV1 |
| ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX |
| ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}ncufir_th1 |
| Inject Recoverable Error With Threshold Limit |
| ... BMC ${translated_fir} ${value[1]} 1 ${value[2]} ${err_log_path} |
| |
| Verify Pdbg Unrecoverable Callout Handling For NCUFIR |
| [Documentation] Verify unrecoverable callout handling for NCUFIR |
| ... with pdbg tool. |
| [Tags] Verify_Pdbg_Unrecoverable_Callout_Handling_For_NCUFIR |
| |
| ${value}= Get From Dictionary ${ERROR_INJECT_DICT} NCUFIR_UE |
| ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX |
| ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}ncufir_ue |
| Inject Unrecoverable Error BMC |
| ... ${translated_fir} ${value[1]} 1 ${value[2]} ${err_log_path} |
| |
| # Core FIR related error injection. |
| |
| Verify Pdbg Recoverable Callout Handling For CoreFIR With Threshold 5 |
| [Documentation] Verify recoverable callout handling for CoreFIR |
| ... with threshold 5 using pdbg tool. |
| [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_CoreFIR_With_Threshold_5 |
| |
| ${value}= Get From Dictionary ${ERROR_INJECT_DICT} COREFIR_RECV5 |
| ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX |
| Disable CPU States Through HOST |
| ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}corefir_th5 |
| Inject Recoverable Error With Threshold Limit |
| ... BMC ${value[0]} ${value[1]} 5 ${value[2]} ${err_log_path} |
| |
| Verify Pdbg Recoverable Callout Handling For CoreFIR With Threshold 1 |
| [Documentation] Verify recoverable callout handling for CoreFIR |
| ... with threshold 1 using pdbg tool. |
| [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_CoreFIR_With_Threshold_1 |
| |
| ${value}= Get From Dictionary ${ERROR_INJECT_DICT} COREFIR_RECV1 |
| ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX |
| Disable CPU States Through HOST |
| ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}corefir_th1 |
| Inject Recoverable Error With Threshold Limit |
| ... BMC ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path} |
| |
| Verify Pdbg Unrecoverable Callout Handling For CoreFIR |
| [Documentation] Verify unrecoverable callout handling for CoreFIR |
| ... with pdbg tool. |
| [Tags] Verify_Pdbg_Unrecoverable_Callout_Handling_For_CoreFIR |
| |
| ${value}= Get From Dictionary ${ERROR_INJECT_DICT} COREFIR_UE |
| ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX |
| Disable CPU States Through HOST |
| ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}corefir_ue |
| Inject Unrecoverable Error BMC |
| ... ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path} |
| |
| Verify Pdbg Recoverable Callout Handling For EQFIR With Threshold 32 |
| [Documentation] Verify recoverable callout handling for L3FIR |
| ... with threshold 32 using pdbg tool. |
| [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_EQFIR_With_Threshold_32 |
| |
| ${value}= Get From Dictionary ${ERROR_INJECT_DICT} EQFIR_RECV32 |
| ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EQ |
| ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}eqfir_th32 |
| Inject Recoverable Error With Threshold Limit |
| ... BMC ${translated_fir} ${value[1]} 32 ${value[2]} ${err_log_path} |