blob: 18acb42dfc261b4e49794f474fe79f3ca47d200a [file] [log] [blame]
Sridevi Ramesh3ed96342018-01-15 05:14:37 -06001*** Settings ***
2Documentation This suite tests checkstop operations through HOST.
Sridevi Ramesh9c6ec282019-03-25 03:35:46 -05003
George Keishingbba33902018-06-06 13:39:27 -05004Resource ../../lib/openbmc_ffdc.robot
Sridevi Ramesh9c6ec282019-03-25 03:35:46 -05005Resource ../../lib/openbmc_ffdc_utils.robot
George Keishingbba33902018-06-06 13:39:27 -05006Resource ../../lib/openbmc_ffdc_methods.robot
Sridevi Ramesh1d85af02019-02-22 04:08:15 -06007Resource ../../openpower/ras/ras_utils.robot
Sridevi Ramesh4adb3f22019-03-12 03:31:35 -05008Variables ../../lib/ras/variables.py
9Variables ../../data/variables.py
Sridevi Ramesh3ed96342018-01-15 05:14:37 -060010
11Library DateTime
12Library OperatingSystem
13Library random
14Library Collections
15
16Suite Setup RAS Suite Setup
17Test Setup RAS Test Setup
18Test Teardown FFDC On Test Case Fail
19Suite Teardown RAS Suite Cleanup
20
21Force Tags Host_RAS
Sridevi Ramesh9c6ec282019-03-25 03:35:46 -050022
Sridevi Ramesh3ed96342018-01-15 05:14:37 -060023*** Variables ***
24${stack_mode} normal
25
26*** Test Cases ***
27# Memory channel (MCACALIFIR) related error injection.
28
29Verify Recoverable Callout Handling For MCA With Threshold 1
30 [Documentation] Verify recoverable callout handling for MCACALIFIR with
31 ... threshold 1.
32 [Tags] Verify_Recoverable_Callout_Handling_For_MCA_With_Threshold_1
33
34 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} MCACALIFIR_RECV1
35 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}mcacalfir_th1
Sridevi Ramesh1d85af02019-02-22 04:08:15 -060036 Inject Recoverable Error With Threshold Limit
37 ... HOST ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path}
Sridevi Ramesh3ed96342018-01-15 05:14:37 -060038
39Verify Recoverable Callout Handling For MCA With Threshold 32
40 [Documentation] Verify recoverable callout handling for MCACALIFIR with
41 ... threshold 32.
42 [Tags] Verify_Recoverable_Callout_Handling_For_MCA_With_Threshold_32
43
44 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} MCACALIFIR_RECV32
45 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}mcacalfir_th32
Sridevi Ramesh1d85af02019-02-22 04:08:15 -060046 Inject Recoverable Error With Threshold Limit
47 ... HOST ${value[0]} ${value[1]} 32 ${value[2]} ${err_log_path}
Sridevi Ramesh3ed96342018-01-15 05:14:37 -060048
Sridevi Ramesh5f9fee52019-03-21 06:25:45 -050049Verify Unrecoverable Callout Handling For MCA
50 [Documentation] Verify unrecoverable callout handling for MCACALIFIR.
51 [Tags] Verify_Unrecoverable_Callout_Handling_For_MCA
52
53 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} MCACALIFIR_UE
54 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}mcacalfir
Sridevi Ramesh9c6ec282019-03-25 03:35:46 -050055 Inject Unrecoverable Error HOST
Sridevi Ramesh5f9fee52019-03-21 06:25:45 -050056 ... ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path}
57
Sridevi Ramesh3ed96342018-01-15 05:14:37 -060058# Memory buffer (MCIFIR) related error injection.
59
60Verify Recoverable Callout Handling For MCI With Threshold 1
61 [Documentation] Verify recoverable callout handling for mci with
62 ... threshold 1.
63 [Tags] Verify_Recoverable_Callout_Handling_For_MCI_With_Threshold_1
64
Sridevi Ramesh4adb3f22019-03-12 03:31:35 -050065 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} MCI_RECV1
Sridevi Ramesh3ed96342018-01-15 05:14:37 -060066 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}mcifir_th1
Sridevi Ramesh1d85af02019-02-22 04:08:15 -060067 Inject Recoverable Error With Threshold Limit
68 ... HOST ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path}
Sridevi Ramesh3ed96342018-01-15 05:14:37 -060069
Sridevi Ramesh5f9fee52019-03-21 06:25:45 -050070Verify Unrecoverable Callout Handling For MCI
71 [Documentation] Verify unrecoverable callout handling for mci.
72 [Tags] Verify_Unrecoverable_Callout_Handling_For_MCI
73
Sridevi Ramesh4adb3f22019-03-12 03:31:35 -050074 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} MCI_UE
Sridevi Ramesh5f9fee52019-03-21 06:25:45 -050075 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}mcifir
Sridevi Ramesh9c6ec282019-03-25 03:35:46 -050076 Inject Unrecoverable Error HOST
Sridevi Ramesh5f9fee52019-03-21 06:25:45 -050077 ... ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path}
78
Sridevi Ramesh3ed96342018-01-15 05:14:37 -060079# CAPP accelerator (CXAFIR) related error injection.
80
81Verify Recoverable Callout Handling For CXA With Threshold 5
82 [Documentation] Verify recoverable callout handling for CXA with
83 ... threshold 5.
84 [Tags] Verify_Recoverable_Callout_Handling_For_CXA_With_Threshold_5
85
86 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} CXA_RECV5
87 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}cxafir_th5
Sridevi Ramesh1d85af02019-02-22 04:08:15 -060088 Inject Recoverable Error With Threshold Limit
89 ... HOST ${value[0]} ${value[1]} 5 ${value[2]} ${err_log_path}
Sridevi Ramesh3ed96342018-01-15 05:14:37 -060090
91Verify Recoverable Callout Handling For CXA With Threshold 32
92 [Documentation] Verify recoverable callout handling for CXA with
93 ... threshold 32.
94 [Tags] Verify_Recoverable_Callout_Handling_For_CXA_With_Threshold_32
95
96 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} CXA_RECV32
97 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}cxafir_th32
Sridevi Ramesh1d85af02019-02-22 04:08:15 -060098 Inject Recoverable Error With Threshold Limit
99 ... HOST ${value[0]} ${value[1]} 32 ${value[2]} ${err_log_path}
Sridevi Ramesh3ed96342018-01-15 05:14:37 -0600100
Sridevi Ramesh5f9fee52019-03-21 06:25:45 -0500101Verify Unrecoverable Callout Handling For CXA
102 [Documentation] Verify unrecoverable callout handling for CXAFIR.
103 [Tags] Verify_Unrecoverable_Callout_Handling_For_CXA
104
105 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} CXA_UE
106 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}cxafir_ue
Sridevi Ramesh9c6ec282019-03-25 03:35:46 -0500107 Inject Unrecoverable Error HOST
Sridevi Ramesh5f9fee52019-03-21 06:25:45 -0500108 ... ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path}
109
Sridevi Ramesh3ed96342018-01-15 05:14:37 -0600110
111# OBUSFIR related error injection.
112
113Verify Recoverable Callout Handling For OBUS With Threshold 32
114 [Documentation] Verify recoverable callout handling for OBUS with
115 ... threshold 32.
116 [Tags] Verify_Recoverable_Callout_Handling_For_OBUS_With_Threshold_32
117
118 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} OBUS_RECV32
119 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}obusfir_th32
Sridevi Ramesh1d85af02019-02-22 04:08:15 -0600120 Inject Recoverable Error With Threshold Limit
121 ... HOST ${value[0]} ${value[1]} 32 ${value[2]} ${err_log_path}
Sridevi Ramesh3ed96342018-01-15 05:14:37 -0600122
123# Nvidia graphics processing units (NPU0FIR) related error injection.
124
125Verify Recoverable Callout Handling For NPU0 With Threshold 32
126 [Documentation] Verify recoverable callout handling for NPU0 with
127 ... threshold 32.
128 [Tags] Verify_Recoverable_Callout_Handling_For_NPU0_With_Threshold_32
129
130 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} NPU0_RECV32
131 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}npu0fir_th32
Sridevi Ramesh1d85af02019-02-22 04:08:15 -0600132 Inject Recoverable Error With Threshold Limit
133 ... HOST ${value[0]} ${value[1]} 32 ${value[2]} ${err_log_path}
Sridevi Ramesh3ed96342018-01-15 05:14:37 -0600134
135# Nest accelerator NXDMAENGFIR related error injection.
136
137Verify Recoverable Callout Handling For NXDMAENG With Threshold 1
138 [Documentation] Verify recoverable callout handling for NXDMAENG with
139 ... threshold 1.
140 [Tags] Verify_Recoverable_Callout_Handling_For_NXDMAENG_With_Threshold_1
141
142 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} NX_RECV1
143 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}nxfir_th1
Sridevi Ramesh1d85af02019-02-22 04:08:15 -0600144 Inject Recoverable Error With Threshold Limit
145 ... HOST ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path}
Sridevi Ramesh3ed96342018-01-15 05:14:37 -0600146
147
148Verify Recoverable Callout Handling For NXDMAENG With Threshold 32
149 [Documentation] Verify recoverable callout handling for NXDMAENG with
150 ... threshold 32.
151 [Tags] Verify_Recoverable_Callout_Handling_For_NXDMAENG_With_Threshold_32
152
153 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} NX_RECV32
154 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}nxfir_th32
Sridevi Ramesh1d85af02019-02-22 04:08:15 -0600155 Inject Recoverable Error With Threshold Limit
156 ... HOST ${value[0]} ${value[1]} 32 ${value[2]} ${err_log_path}
Sridevi Ramesh3ed96342018-01-15 05:14:37 -0600157
Sridevi Ramesh3ed96342018-01-15 05:14:37 -0600158# L2FIR related error injection.
159
160Verify Recoverable Callout Handling For L2FIR With Threshold 1
161 [Documentation] Verify recoverable callout handling for L2FIR with
162 ... threshold 1.
163 [Tags] Verify_Recoverable_Callout_Handling_For_L2FIR_With_Threshold_1
164
165 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} L2FIR_RECV1
166 ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX
167 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}l2fir_th1
Sridevi Ramesh1d85af02019-02-22 04:08:15 -0600168 Inject Recoverable Error With Threshold Limit
169 ... HOST ${translated_fir} ${value[1]} 1 ${value[2]} ${err_log_path}
Sridevi Ramesh3ed96342018-01-15 05:14:37 -0600170
171Verify Recoverable Callout Handling For L2FIR With Threshold 32
172 [Documentation] Verify recoverable callout handling for L2FIR with
173 ... threshold 32.
174 [Tags] Verify_Recoverable_Callout_Handling_For_L2FIR_With_Threshold_32
175
176 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} L2FIR_RECV32
177 ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX
178 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}l2fir_th32
Sridevi Ramesh1d85af02019-02-22 04:08:15 -0600179 Inject Recoverable Error With Threshold Limit
180 ... HOST ${translated_fir} ${value[1]} 32 ${value[2]} ${err_log_path}
Sridevi Ramesh3ed96342018-01-15 05:14:37 -0600181
Sridevi Ramesh5f9fee52019-03-21 06:25:45 -0500182Verify Unrecoverable Callout Handling For L2FIR
183 [Documentation] Verify unrecoverable callout handling for L2FIR.
184 [Tags] Verify_Unrecoverable_Callout_Handling_For_L2FIR
185
186 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} L2FIR_UE
187 ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX
188 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}l2fir_ue
Sridevi Ramesh9c6ec282019-03-25 03:35:46 -0500189 Inject Unrecoverable Error HOST
Sridevi Ramesh5f9fee52019-03-21 06:25:45 -0500190 ... ${translated_fir} ${value[1]} 1 ${value[2]} ${err_log_path}
191
Sridevi Ramesh3ed96342018-01-15 05:14:37 -0600192
193# L3FIR related error injection.
194
195Verify Recoverable Callout Handling For L3FIR With Threshold 1
196 [Documentation] Verify recoverable callout handling for L3FIR with
197 ... threshold 1.
198 [Tags] Verify_Recoverable_Callout_Handling_For_L3FIR_With_Threshold_1
199
200 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} L3FIR_RECV1
201 ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX
202 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}l3fir_th1
Sridevi Ramesh1d85af02019-02-22 04:08:15 -0600203 Inject Recoverable Error With Threshold Limit
204 ... HOST ${translated_fir} ${value[1]} 1 ${value[2]} ${err_log_path}
Sridevi Ramesh3ed96342018-01-15 05:14:37 -0600205
206Verify Recoverable Callout Handling For L3FIR With Threshold 32
207 [Documentation] Verify recoverable callout handling for L3FIR with
208 ... threshold 32.
209 [Tags] Verify_Recoverable_Callout_Handling_For_L3FIR_With_Threshold_32
210
211 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} L3FIR_RECV32
212 ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX
213 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}l3fir_th32
Sridevi Ramesh1d85af02019-02-22 04:08:15 -0600214 Inject Recoverable Error With Threshold Limit
215 ... HOST ${translated_fir} ${value[1]} 32 ${value[2]} ${err_log_path}
Sridevi Ramesh3ed96342018-01-15 05:14:37 -0600216
Sridevi Ramesh5f9fee52019-03-21 06:25:45 -0500217Verify Unrecoverable Callout Handling For L3FIR
218 [Documentation] Verify unrecoverable callout handling for L3FIR.
219 [Tags] Verify_Unrecoverable_Callout_Handling_For_L3FIR
220
221 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} L3FIR_UE
222 ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX
223 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}l3fir_ue
Sridevi Ramesh9c6ec282019-03-25 03:35:46 -0500224 Inject Unrecoverable Error HOST
Sridevi Ramesh5f9fee52019-03-21 06:25:45 -0500225 ... ${translated_fir} ${value[1]} 1 ${value[2]} ${err_log_path}
226
Sridevi Ramesh3ed96342018-01-15 05:14:37 -0600227
228# On chip controller (OCCFIR) related error injection.
229
230Verify Recoverable Callout Handling For OCC With Threshold 1
231 [Documentation] Verify recoverable callout handling for OCCFIR with
232 ... threshold 1.
233 [Tags] Verify_Recoverable_Callout_Handling_For_OCC_With_Threshold_1
234
235 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} OCCFIR_RECV1
236 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}occfir_th1
Sridevi Ramesh1d85af02019-02-22 04:08:15 -0600237 Inject Recoverable Error With Threshold Limit
238 ... HOST ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path}
Sridevi Ramesh3ed96342018-01-15 05:14:37 -0600239
240# Core management engine (CMEFIR) related error injection.
241
242Verify Recoverable Callout Handling For CMEFIR With Threshold 1
243 [Documentation] Verify recoverable callout handling for CMEFIR with
244 ... threshold 1.
245 [Tags] Verify_Recoverable_Callout_Handling_For_CMEFIR_With_Threshold_1
246
247 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} CMEFIR_RECV1
248 ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX
249 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}cmefir_th1
Sridevi Ramesh1d85af02019-02-22 04:08:15 -0600250 Inject Recoverable Error With Threshold Limit
251 ... HOST ${translated_fir} ${value[1]} 1 ${value[2]} ${err_log_path}
Sridevi Ramesh3ed96342018-01-15 05:14:37 -0600252
253# Nest control vunit (NCUFIR) related error injection.
254
255Verify Recoverable Callout Handling For NCUFIR With Threshold 1
256 [Documentation] Verify recoverable callout handling for NCUFIR with
257 ... threshold 1.
258 [Tags] Verify_Recoverable_Callout_Handling_For_NCUFIR_With_Threshold_1
259
260 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} NCUFIR_RECV1
261 ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX
262 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}ncufir_th1
Sridevi Ramesh1d85af02019-02-22 04:08:15 -0600263 Inject Recoverable Error With Threshold Limit
264 ... HOST ${translated_fir} ${value[1]} 1 ${value[2]} ${err_log_path}
Sridevi Ramesh3ed96342018-01-15 05:14:37 -0600265
Sridevi Ramesh5f9fee52019-03-21 06:25:45 -0500266Verify Unrecoverable Callout Handling For NCUFIR
267 [Documentation] Verify unrecoverable callout handling for NCUFIR.
268 [Tags] Verify_Unrecoverable_Callout_Handling_For_NCUFIR
269
270 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} NCUFIR_UE
271 ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX
272 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}ncufir_ue
Sridevi Ramesh9c6ec282019-03-25 03:35:46 -0500273 Inject Unrecoverable Error HOST
Sridevi Ramesh5f9fee52019-03-21 06:25:45 -0500274 ... ${translated_fir} ${value[1]} 1 ${value[2]} ${err_log_path}
275
Sridevi Ramesh3ed96342018-01-15 05:14:37 -0600276
277# Core FIR related error injection.
278
279Verify Recoverable Callout Handling For CoreFIR With Threshold 5
280 [Documentation] Verify recoverable callout handling for CoreFIR with
281 ... threshold 5.
282 [Tags] Verify_Recoverable_Callout_Handling_For_CoreFIR_With_Threshold_5
283
284 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} COREFIR_RECV5
285 ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX
286 Disable CPU States Through HOST
287 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}corefir_th5
Sridevi Ramesh1d85af02019-02-22 04:08:15 -0600288 Inject Recoverable Error With Threshold Limit
289 ... HOST ${value[0]} ${value[1]} 5 ${value[2]} ${err_log_path}
Sridevi Ramesh3ed96342018-01-15 05:14:37 -0600290
291Verify Recoverable Callout Handling For CoreFIR With Threshold 1
292 [Documentation] Verify recoverable callout handling for CoreFIR with
293 ... threshold 1.
294 [Tags] Verify_Recoverable_Callout_CoreFIR_Handling_For_With_Threshold_1
295
296 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} COREFIR_RECV1
297 ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX
298 Disable CPU States Through HOST
299 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}corefir_th1
Sridevi Ramesh1d85af02019-02-22 04:08:15 -0600300 Inject Recoverable Error With Threshold Limit
301 ... HOST ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path}
Sridevi Ramesh3ed96342018-01-15 05:14:37 -0600302
Sridevi Ramesh5f9fee52019-03-21 06:25:45 -0500303Verify Unrecoverable Callout Handling For CoreFIR
304 [Documentation] Verify unrecoverable callout handling for CoreFIR.
305 [Tags] Verify_Unrecoverable_Callout_Handling_For_CoreFIR
306
307 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} COREFIR_UE
308 ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX
309 Disable CPU States Through HOST
310 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}corefir_ue
Sridevi Ramesh9c6ec282019-03-25 03:35:46 -0500311 Inject Unrecoverable Error HOST
Sridevi Ramesh5f9fee52019-03-21 06:25:45 -0500312 ... ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path}
313
Sridevi Ramesh3ed96342018-01-15 05:14:37 -0600314Verify Recoverable Callout Handling For EQFIR With Threshold 32
315 [Documentation] Verify recoverable callout handling for L3FIR with
316 ... threshold 32.
317 [Tags] Verify_Recoverable_Callout_Handling_For_EQFIR_With_Threshold_32
318
319 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} EQFIR_RECV32
320 ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EQ
321 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}eqfir_th32
Sridevi Ramesh1d85af02019-02-22 04:08:15 -0600322 Inject Recoverable Error With Threshold Limit
323 ... HOST ${translated_fir} ${value[1]} 32 ${value[2]} ${err_log_path}