1*** Settings *** 2Documentation This suite tests checkstop operations through BMC using 3 pdbg utility. 4 5Resource ../../lib/utils.robot 6Resource ../../lib/openbmc_ffdc.robot 7Resource ../../lib/ras/host_utils.robot 8Resource ../../lib/resource.robot 9Resource ../../lib/state_manager.robot 10Resource ../../lib/openbmc_ffdc_methods.robot 11Resource ../../lib/boot_utils.robot 12Resource ../../lib/dump_utils.robot 13Resource ../../openpower/ras/ras_utils.robot 14Variables ../../lib/ras/variables.py 15Variables ../../data/variables.py 16 17Library DateTime 18Library OperatingSystem 19Library random 20Library Collections 21 22Suite Setup RAS Suite Setup 23Test Setup RAS Test Setup 24Test Teardown FFDC On Test Case Fail 25Suite Teardown RAS Suite Cleanup 26 27Force Tags BMC_RAS 28 29*** Variables *** 30${stack_mode} normal 31 32 33*** Test Cases *** 34 35# Memory Controller Async (MCACALIFIR) related error injection. 36 37Verify Pdbg Recoverable Callout Handling For MCA With Threshold 1 38 [Documentation] Verify recoverable callout handling for MCACALIFIR 39 ... with threshold 1 using pdbg tool. 40 [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_MCA_With_Threshold_1 41 42 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} MCACALIFIR_RECV1 43 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}mcacalfir_th1 44 Inject Recoverable Error With Threshold Limit 45 ... BMC ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path} 46 47Verify Pdbg Recoverable Callout Handling For MCA With Threshold 32 48 [Documentation] Verify recoverable callout handling for MCACALIFIR 49 ... with threshold 32 using pdbg tool. 50 [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_MCA_With_Threshold_32 51 52 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} MCACALIFIR_RECV32 53 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}mcacalfir_th32 54 Inject Recoverable Error With Threshold Limit 55 ... BMC ${value[0]} ${value[1]} 32 ${value[2]} ${err_log_path} 56 57# Memory controller Interface (MCIFIR) related error injection. 58 59Verify Pdbg Recoverable Callout Handling For MCI With Threshold 1 60 [Documentation] Verify recoverable callout handling for MCI 61 ... with threshold 1 using pdbg tool. 62 [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_MCI_With_Threshold_1 63 64 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} MCI_RECV1 65 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}mcifir_th1 66 Inject Recoverable Error With Threshold Limit 67 ... BMC ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path} 68 69# CAPP accelerator (CXAFIR) related error injection. 70 71Verify Pdbg Recoverable Callout Handling For CXA With Threshold 5 72 [Documentation] Verify recoverable callout handling for CXA 73 ... with threshold 5 using pdbg tool. 74 [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_CXA_With_Threshold_5 75 76 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} CXA_RECV5 77 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}cxafir_th5 78 Inject Recoverable Error With Threshold Limit 79 ... BMC ${value[0]} ${value[1]} 5 ${value[2]} ${err_log_path} 80 81Verify Pdbg Recoverable Callout Handling For CXA With Threshold 32 82 [Documentation] Verify recoverable callout handling for CXA 83 ... with threshold 32 using pdbg tool. 84 [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_CXA_With_Threshold_32 85 86 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} CXA_RECV32 87 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}cxafir_th32 88 Inject Recoverable Error With Threshold Limit 89 ... BMC ${value[0]} ${value[1]} 32 ${value[2]} ${err_log_path} 90 91 92# Optical BUS (OBUSFIR) related error injection. 93 94Verify Pdbg Recoverable Callout Handling For OBUS With Threshold 32 95 [Documentation] Verify recoverable callout handling for OBUS 96 ... with threshold 32 using pdbg tool. 97 [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_OBUS_With_Threshold_32 98 99 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} OBUS_RECV32 100 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}obusfir_th32 101 Inject Recoverable Error With Threshold Limit 102 ... BMC ${value[0]} ${value[1]} 32 ${value[2]} ${err_log_path} 103 104# NVIDIA graphics processing units (NPU0FIR) related error injection. 105 106Verify Pdbg Recoverable Callout Handling For NPU0 With Threshold 32 107 [Documentation] Verify recoverable callout handling for NPU0 108 ... with threshold 32 using pdbg tool. 109 [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_NPU0_With_Threshold_32 110 111 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} NPU0_RECV32 112 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}npu0fir_th32 113 Inject Recoverable Error With Threshold Limit 114 ... BMC ${value[0]} ${value[1]} 32 ${value[2]} ${err_log_path} 115 116# NEST accelerator DMA Engine (NXDMAENGFIR) related error injection. 117 118Verify Pdbg Recoverable Callout Handling For NXDMAENG With Threshold 1 119 [Documentation] Verify recoverable callout handling for NXDMAENG 120 ... with threshold 1 using pdbg tool. 121 [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_NXDMAENG_With_Threshold_1 122 123 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} NX_RECV1 124 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}nxfir_th1 125 Inject Recoverable Error With Threshold Limit 126 ... BMC ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path} 127 128 129Verify Pdbg Recoverable Callout Handling For NXDMAENG With Threshold 32 130 [Documentation] Verify recoverable callout handling for NXDMAENG 131 ... with threshold 32 using pdbg tool. 132 [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_NXDMAENG_With_Threshold_32 133 134 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} NX_RECV32 135 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}nxfir_th32 136 Inject Recoverable Error With Threshold Limit 137 ... BMC ${value[0]} ${value[1]} 32 ${value[2]} ${err_log_path} 138 139 140# L2FIR related error injection. 141 142Verify Pdbg Recoverable Callout Handling For L2FIR With Threshold 1 143 [Documentation] Verify recoverable callout handling for L2FIR 144 ... with threshold 1 using pdbg tool. 145 [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_L2FIR_With_Threshold_1 146 147 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} L2FIR_RECV1 148 ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX 149 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}l2fir_th1 150 Inject Recoverable Error With Threshold Limit 151 ... BMC ${translated_fir} ${value[1]} 1 ${value[2]} ${err_log_path} 152 153Verify Pdbg Recoverable Callout Handling For L2FIR With Threshold 32 154 [Documentation] Verify recoverable callout handling for L2FIR 155 ... with threshold 32 using pdbg tool. 156 [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_L2FIR_With_Threshold_32 157 158 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} L2FIR_RECV32 159 ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX 160 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}l2fir_th32 161 Inject Recoverable Error With Threshold Limit 162 ... BMC ${translated_fir} ${value[1]} 32 ${value[2]} ${err_log_path} 163 164# L3FIR related error injection. 165 166Verify Pdbg Recoverable Callout Handling For L3FIR With Threshold 1 167 [Documentation] Verify recoverable callout handling for L3FIR 168 ... with threshold 1 using pdbg tool. 169 [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_L3FIR_With_Threshold_1 170 171 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} L3FIR_RECV1 172 ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX 173 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}l3fir_th1 174 Inject Recoverable Error With Threshold Limit 175 ... BMC ${translated_fir} ${value[1]} 1 ${value[2]} ${err_log_path} 176 177Verify Pdbg Recoverable Callout Handling For L3FIR With Threshold 32 178 [Documentation] Verify recoverable callout handling for L3FIR 179 ... with threshold 32 using pdbg tool. 180 [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_L3FIR_With_Threshold_32 181 182 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} L3FIR_RECV32 183 ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX 184 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}l3fir_th32 185 Inject Recoverable Error With Threshold Limit 186 ... BMC ${translated_fir} ${value[1]} 32 ${value[2]} ${err_log_path} 187 188# On chip controller (OCCFIR) related error injection. 189 190Verify Pdbg Recoverable Callout Handling For OCC With Threshold 1 191 [Documentation] Verify recoverable callout handling for OCCFIR 192 ... with threshold 1 using pdbg tool. 193 [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_OCC_With_Threshold_1 194 195 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} OCCFIR_RECV1 196 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}occfir_th1 197 Inject Recoverable Error With Threshold Limit 198 ... BMC ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path} 199 200# Core management engine (CMEFIR) related error injection. 201 202Verify Pdbg Recoverable Callout Handling For CMEFIR With Threshold 1 203 [Documentation] Verify recoverable callout handling for CMEFIR 204 ... with threshold 1 using pdbg tool. 205 [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_CMEFIR_With_Threshold_1 206 207 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} CMEFIR_RECV1 208 ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX 209 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}cmefir_th1 210 Inject Recoverable Error With Threshold Limit 211 ... BMC ${translated_fir} ${value[1]} 1 ${value[2]} ${err_log_path} 212 213# Nest control vunit (NCUFIR) related error injection. 214 215Verify Pdbg Recoverable Callout Handling For NCUFIR With Threshold 1 216 [Documentation] Verify recoverable callout handling for NCUFIR 217 ... with threshold 1 using pdbg tool. 218 [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_NCUFIR_With_Threshold_1 219 220 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} NCUFIR_RECV1 221 ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX 222 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}ncufir_th1 223 Inject Recoverable Error With Threshold Limit 224 ... BMC ${translated_fir} ${value[1]} 1 ${value[2]} ${err_log_path} 225 226# Core FIR related error injection. 227 228Verify Pdbg Recoverable Callout Handling For CoreFIR With Threshold 5 229 [Documentation] Verify recoverable callout handling for CoreFIR 230 ... with threshold 5 using pdbg tool. 231 [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_CoreFIR_With_Threshold_5 232 233 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} COREFIR_RECV5 234 ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX 235 Disable CPU States Through HOST 236 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}corefir_th5 237 Inject Recoverable Error With Threshold Limit 238 ... BMC ${value[0]} ${value[1]} 5 ${value[2]} ${err_log_path} 239 240Verify Pdbg Recoverable Callout Handling For CoreFIR With Threshold 1 241 [Documentation] Verify recoverable callout handling for CoreFIR 242 ... with threshold 1 using pdbg tool. 243 [Tags] Verify_Pdbg_Recoverable_Callout_CoreFIR_Handling_For_With_Threshold_1 244 245 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} COREFIR_RECV1 246 ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX 247 Disable CPU States Through HOST 248 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}corefir_th1 249 Inject Recoverable Error With Threshold Limit 250 ... BMC ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path} 251 252Verify Pdbg Recoverable Callout Handling For EQFIR With Threshold 32 253 [Documentation] Verify recoverable callout handling for L3FIR 254 ... with threshold 32 using pdbg tool. 255 [Tags] Verify_Pdbg_Recoverable_Callout_Handling_For_EQFIR_With_Threshold_32 256 257 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} EQFIR_RECV32 258 ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EQ 259 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}eqfir_th32 260 Inject Recoverable Error With Threshold Limit 261 ... BMC ${translated_fir} ${value[1]} 32 ${value[2]} ${err_log_path} 262