blob: 0409a85dbc87998e054ade1f6a834bc23a946e76 [file] [log] [blame]
Sridevi Ramesh3ed96342018-01-15 05:14:37 -06001*** Settings ***
2Documentation This suite tests checkstop operations through HOST.
George Keishingbba33902018-06-06 13:39:27 -05003Resource ../../lib/utils.robot
4Resource ../../lib/openbmc_ffdc.robot
5Resource ../../lib/ras/host_utils.robot
6Resource ../../lib/resource.txt
7Resource ../../lib/state_manager.robot
8Resource ../../lib/openbmc_ffdc_methods.robot
9Resource ../../lib/boot_utils.robot
10Variables ../../lib/ras/variables.py
11Variables ../../data/variables.py
12Resource ../../lib/dump_utils.robot
Sridevi Ramesh3ed96342018-01-15 05:14:37 -060013
14Library DateTime
15Library OperatingSystem
16Library random
17Library Collections
18
19Suite Setup RAS Suite Setup
20Test Setup RAS Test Setup
21Test Teardown FFDC On Test Case Fail
22Suite Teardown RAS Suite Cleanup
23
24Force Tags Host_RAS
25*** Variables ***
26${stack_mode} normal
27
28*** Test Cases ***
29# Memory channel (MCACALIFIR) related error injection.
30
31Verify Recoverable Callout Handling For MCA With Threshold 1
32 [Documentation] Verify recoverable callout handling for MCACALIFIR with
33 ... threshold 1.
34 [Tags] Verify_Recoverable_Callout_Handling_For_MCA_With_Threshold_1
35
36 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} MCACALIFIR_RECV1
37 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}mcacalfir_th1
38 Inject Recoverable Error With Threshold Limit Through Host
39 ... ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path}
40
41
42Verify Recoverable Callout Handling For MCA With Threshold 32
43 [Documentation] Verify recoverable callout handling for MCACALIFIR with
44 ... threshold 32.
45 [Tags] Verify_Recoverable_Callout_Handling_For_MCA_With_Threshold_32
46
47 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} MCACALIFIR_RECV32
48 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}mcacalfir_th32
49 Inject Recoverable Error With Threshold Limit Through Host
50 ... ${value[0]} ${value[1]} 32 ${value[2]} ${err_log_path}
51
52Verify Unrecoverable Callout Handling For MCA
53 [Documentation] Verify unrecoverable callout handling for MCACALIFIR.
54 [Tags] Verify_Unrecoverable_Callout_Handling_For_MCA
55
56 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} MCACALIFIR_UE
57 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}mcacalfir
58 Inject Unrecoverable Error Through Host
59 ... ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path}
60
61# Memory buffer (MCIFIR) related error injection.
62
63Verify Recoverable Callout Handling For MCI With Threshold 1
64 [Documentation] Verify recoverable callout handling for mci with
65 ... threshold 1.
66 [Tags] Verify_Recoverable_Callout_Handling_For_MCI_With_Threshold_1
67
68 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} MCS_RECV1
69 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}mcifir_th1
70 Inject Recoverable Error With Threshold Limit Through Host
71 ... ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path}
72
73Verify Unrecoverable Callout Handling For MCI
74 [Documentation] Verify unrecoverable callout handling for mci.
75 [Tags] Verify_Unrecoverable_Callout_Handling_For_MCI
76
77 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} MCS_UE
78 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}mcifir
79 Inject Unrecoverable Error Through Host
80 ... ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path}
81
82# CAPP accelerator (CXAFIR) related error injection.
83
84Verify Recoverable Callout Handling For CXA With Threshold 5
85 [Documentation] Verify recoverable callout handling for CXA with
86 ... threshold 5.
87 [Tags] Verify_Recoverable_Callout_Handling_For_CXA_With_Threshold_5
88
89 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} CXA_RECV5
90 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}cxafir_th5
91 Inject Recoverable Error With Threshold Limit Through Host
92 ... ${value[0]} ${value[1]} 5 ${value[2]} ${err_log_path}
93
94Verify Recoverable Callout Handling For CXA With Threshold 32
95 [Documentation] Verify recoverable callout handling for CXA with
96 ... threshold 32.
97 [Tags] Verify_Recoverable_Callout_Handling_For_CXA_With_Threshold_32
98
99 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} CXA_RECV32
100 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}cxafir_th32
101 Inject Recoverable Error With Threshold Limit Through Host
102 ... ${value[0]} ${value[1]} 32 ${value[2]} ${err_log_path}
103
104Verify Unrecoverable Callout Handling For CXA
105 [Documentation] Verify unrecoverable callout handling for CXAFIR.
106 [Tags] Verify_Unrecoverable_Callout_Handling_For_CXA
107
108 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} CXA_UE
109 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}cxafir_ue
110 Inject Unrecoverable Error Through Host
111 ... ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path}
112
113# OBUSFIR related error injection.
114
115Verify Recoverable Callout Handling For OBUS With Threshold 32
116 [Documentation] Verify recoverable callout handling for OBUS with
117 ... threshold 32.
118 [Tags] Verify_Recoverable_Callout_Handling_For_OBUS_With_Threshold_32
119
120 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} OBUS_RECV32
121 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}obusfir_th32
122 Inject Recoverable Error With Threshold Limit Through Host
123 ... ${value[0]} ${value[1]} 32 ${value[2]} ${err_log_path}
124
125# Nvidia graphics processing units (NPU0FIR) related error injection.
126
127Verify Recoverable Callout Handling For NPU0 With Threshold 32
128 [Documentation] Verify recoverable callout handling for NPU0 with
129 ... threshold 32.
130 [Tags] Verify_Recoverable_Callout_Handling_For_NPU0_With_Threshold_32
131
132 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} NPU0_RECV32
133 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}npu0fir_th32
134 Inject Recoverable Error With Threshold Limit Through Host
135 ... ${value[0]} ${value[1]} 32 ${value[2]} ${err_log_path}
136
137# Nest accelerator NXDMAENGFIR related error injection.
138
139Verify Recoverable Callout Handling For NXDMAENG With Threshold 1
140 [Documentation] Verify recoverable callout handling for NXDMAENG with
141 ... threshold 1.
142 [Tags] Verify_Recoverable_Callout_Handling_For_NXDMAENG_With_Threshold_1
143
144 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} NX_RECV1
145 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}nxfir_th1
146 Inject Recoverable Error With Threshold Limit Through Host
147 ... ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path}
148
149
150Verify Recoverable Callout Handling For NXDMAENG With Threshold 32
151 [Documentation] Verify recoverable callout handling for NXDMAENG with
152 ... threshold 32.
153 [Tags] Verify_Recoverable_Callout_Handling_For_NXDMAENG_With_Threshold_32
154
155 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} NX_RECV32
156 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}nxfir_th32
157 Inject Recoverable Error With Threshold Limit Through Host
158 ... ${value[0]} ${value[1]} 32 ${value[2]} ${err_log_path}
159
160Verify Unrecoverable Callout Handling For NXDMAENG
161 [Documentation] Verify unrecoverable callout handling for NXDMAENG.
162 [Tags] Verify_Unrecoverable_Callout_Handling_For_NXDMAENG
163
164 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} NX_UE
165 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}nxfir_ue
166 Inject Unrecoverable Error Through Host
167 ... ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path}
168
169
170# L2FIR related error injection.
171
172Verify Recoverable Callout Handling For L2FIR With Threshold 1
173 [Documentation] Verify recoverable callout handling for L2FIR with
174 ... threshold 1.
175 [Tags] Verify_Recoverable_Callout_Handling_For_L2FIR_With_Threshold_1
176
177 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} L2FIR_RECV1
178 ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX
179 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}l2fir_th1
180 Inject Recoverable Error With Threshold Limit Through Host
181 ... ${translated_fir} ${value[1]} 1 ${value[2]} ${err_log_path}
182
183Verify Recoverable Callout Handling For L2FIR With Threshold 32
184 [Documentation] Verify recoverable callout handling for L2FIR with
185 ... threshold 32.
186 [Tags] Verify_Recoverable_Callout_Handling_For_L2FIR_With_Threshold_32
187
188 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} L2FIR_RECV32
189 ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX
190 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}l2fir_th32
191 Inject Recoverable Error With Threshold Limit Through Host
192 ... ${translated_fir} ${value[1]} 32 ${value[2]} ${err_log_path}
193
194Verify Unrecoverable Callout Handling For L2FIR
195 [Documentation] Verify unrecoverable callout handling for L2FIR.
196 [Tags] Verify_Unrecoverable_Callout_Handling_For_L2FIR
197
198 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} L2FIR_UE
199 ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX
200 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}l2fir_ue
201 Inject Unrecoverable Error Through Host
202 ... ${translated_fir} ${value[1]} 1 ${value[2]} ${err_log_path}
203
204# L3FIR related error injection.
205
206Verify Recoverable Callout Handling For L3FIR With Threshold 1
207 [Documentation] Verify recoverable callout handling for L3FIR with
208 ... threshold 1.
209 [Tags] Verify_Recoverable_Callout_Handling_For_L3FIR_With_Threshold_1
210
211 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} L3FIR_RECV1
212 ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX
213 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}l3fir_th1
214 Inject Recoverable Error With Threshold Limit Through Host
215 ... ${translated_fir} ${value[1]} 1 ${value[2]} ${err_log_path}
216
217Verify Recoverable Callout Handling For L3FIR With Threshold 32
218 [Documentation] Verify recoverable callout handling for L3FIR with
219 ... threshold 32.
220 [Tags] Verify_Recoverable_Callout_Handling_For_L3FIR_With_Threshold_32
221
222 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} L3FIR_RECV32
223 ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX
224 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}l3fir_th32
225 Inject Recoverable Error With Threshold Limit Through Host
226 ... ${translated_fir} ${value[1]} 32 ${value[2]} ${err_log_path}
227
228Verify Unrecoverable Callout Handling For L3FIR
229 [Documentation] Verify unrecoverable callout handling for L3FIR.
230 [Tags] Verify_Unrecoverable_Callout_Handling_For_L3FIR
231
232 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} L3FIR_UE
233 ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX
234 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}l3fir_ue
235 Inject Unrecoverable Error Through Host
236 ... ${translated_fir} ${value[1]} 1 ${value[2]} ${err_log_path}
237
238# On chip controller (OCCFIR) related error injection.
239
240Verify Recoverable Callout Handling For OCC With Threshold 1
241 [Documentation] Verify recoverable callout handling for OCCFIR with
242 ... threshold 1.
243 [Tags] Verify_Recoverable_Callout_Handling_For_OCC_With_Threshold_1
244
245 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} OCCFIR_RECV1
246 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}occfir_th1
247 Inject Recoverable Error With Threshold Limit Through Host
248 ... ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path}
249
250# Core management engine (CMEFIR) related error injection.
251
252Verify Recoverable Callout Handling For CMEFIR With Threshold 1
253 [Documentation] Verify recoverable callout handling for CMEFIR with
254 ... threshold 1.
255 [Tags] Verify_Recoverable_Callout_Handling_For_CMEFIR_With_Threshold_1
256
257 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} CMEFIR_RECV1
258 ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX
259 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}cmefir_th1
260 Inject Recoverable Error With Threshold Limit Through Host
261 ... ${translated_fir} ${value[1]} 1 ${value[2]} ${err_log_path}
262
263# Nest control vunit (NCUFIR) related error injection.
264
265Verify Recoverable Callout Handling For NCUFIR With Threshold 1
266 [Documentation] Verify recoverable callout handling for NCUFIR with
267 ... threshold 1.
268 [Tags] Verify_Recoverable_Callout_Handling_For_NCUFIR_With_Threshold_1
269
270 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} NCUFIR_RECV1
271 ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX
272 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}ncufir_th1
273 Inject Recoverable Error With Threshold Limit Through Host
274 ... ${translated_fir} ${value[1]} 1 ${value[2]} ${err_log_path}
275
George Keishingbba33902018-06-06 13:39:27 -0500276Verify Unrecoverable Callout Handling For NCUFIR
Sridevi Ramesh3ed96342018-01-15 05:14:37 -0600277 [Documentation] Verify unrecoverable callout handling for NCUFIR.
278 [Tags] Verify_Unrecoverable_Callout_Handling_For_NCUFIR
279
George Keishingbba33902018-06-06 13:39:27 -0500280 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} NCUFIR_UE
Sridevi Ramesh3ed96342018-01-15 05:14:37 -0600281 ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX
282 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}ncufir_ue
283 Inject Unrecoverable Error Through Host
284 ... ${translated_fir} ${value[1]} 1 ${value[2]} ${err_log_path}
285
286# Core FIR related error injection.
287
288Verify Recoverable Callout Handling For CoreFIR With Threshold 5
289 [Documentation] Verify recoverable callout handling for CoreFIR with
290 ... threshold 5.
291 [Tags] Verify_Recoverable_Callout_Handling_For_CoreFIR_With_Threshold_5
292
293 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} COREFIR_RECV5
294 ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX
295 Disable CPU States Through HOST
296 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}corefir_th5
297 Inject Recoverable Error With Threshold Limit Through Host
298 ... ${value[0]} ${value[1]} 5 ${value[2]} ${err_log_path}
299
300Verify Recoverable Callout Handling For CoreFIR With Threshold 1
301 [Documentation] Verify recoverable callout handling for CoreFIR with
302 ... threshold 1.
303 [Tags] Verify_Recoverable_Callout_CoreFIR_Handling_For_With_Threshold_1
304
305 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} COREFIR_RECV1
306 ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX
307 Disable CPU States Through HOST
308 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}corefir_th1
309 Inject Recoverable Error With Threshold Limit Through Host
310 ... ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path}
311
312Verify Unrecoverable Callout Handling For CoreFIR
313 [Documentation] Verify unrecoverable callout handling for CoreFIR.
314 [Tags] Verify_Unrecoverable_Callout_Handling_For_CoreFIR
315
316 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} COREFIR_UE
317 ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX
318 Disable CPU States Through HOST
319 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}corefir_ue
320 Inject Unrecoverable Error Through Host
321 ... ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path}
322
323Verify Recoverable Callout Handling For EQFIR With Threshold 32
324 [Documentation] Verify recoverable callout handling for L3FIR with
325 ... threshold 32.
326 [Tags] Verify_Recoverable_Callout_Handling_For_EQFIR_With_Threshold_32
327
328 ${value}= Get From Dictionary ${ERROR_INJECT_DICT} EQFIR_RECV32
329 ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EQ
330 ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}eqfir_th32
331 Inject Recoverable Error With Threshold Limit Through Host
332 ... ${translated_fir} ${value[1]} 32 ${value[2]} ${err_log_path}
333
334
335*** Keywords ***
336
337Verify And Clear Gard Records On HOST
338 [Documentation] Verify And Clear gard records on HOST.
339
340 ${output}= Gard Operations On OS list
341 Should Not Contain ${output} No GARD
342 Gard Operations On OS clear all
343
344Verify Error Log Entry
345 [Documentation] Verify error log entry & signature description.
346 [Arguments] ${signature_desc} ${log_prefix}
347 # Description of argument(s):
348 # signature_desc Error log signature description.
349 # log_prefix Log path prefix.
350
351 ${resp}= OpenBMC Get Request ${BMC_LOGGING_ENTRY}/list
352 Should Not Be Equal As Strings ${resp.status_code} ${HTTP_NOT_FOUND}
353
354 Collect eSEL Log ${log_prefix}
355 ${error_log_file_path}= Catenate ${log_prefix}esel.txt
356 ${rc} ${output} = Run and Return RC and Output
357 ... grep -i ${signature_desc} ${error_log_file_path}
Sridevi Ramesh76f2dbc2018-01-17 09:52:10 -0600358 Should Be Equal ${rc} ${0}
Sridevi Ramesh3ed96342018-01-15 05:14:37 -0600359 Should Not Be Empty ${output}
360
361Inject Recoverable Error With Threshold Limit Through Host
362 [Documentation] Inject and verify recoverable error on processor through
363 ... host.
364 ... Test sequence:
365 ... 1. Enable Auto Reboot Setting
366 ... 2. Inject Error on processor/centaur
367 ... 3. Check If HOST is running.
368 ... 4. Verify error log entry & signature description.
369 ... 4. Verify & clear gard records.
370 [Arguments] ${fir} ${chip_address} ${threshold_limit}
371 ... ${signature_desc} ${log_prefix}
372 # Description of argument(s):
373 # fir FIR (Fault isolation register) value (e.g. 2011400).
374 # chip_address Chip address (e.g 2000000000000000).
375 # threshold_limit Threshold limit (e.g 1, 5, 32).
376 # signature_desc Error log signature description.
377 # log_prefix Log path prefix.
378
379 Set Auto Reboot 1
380 Inject Error Through HOST ${fir} ${chip_address} ${threshold_limit}
381 ... ${master_proc_chip}
382
383 Is Host Running
384 ${output}= Gard Operations On OS list
385 Should Contain ${output} No GARD
386 Verify Error Log Entry ${signature_desc} ${log_prefix}
387
388
389Inject Unrecoverable Error Through Host
390 [Documentation] Inject and verify recoverable error on processor through
391 ... host.
392 ... Test sequence:
393 ... 1. Enable Auto Reboot Setting
394 ... 2. Inject Error on processor/centaur
395 ... 3. Check If HOST is rebooted.
Sridevi Ramesh3ed96342018-01-15 05:14:37 -0600396 ... 4. Verify & clear gard records.
Sridevi Ramesh9adda642018-01-29 04:12:33 -0600397 ... 5. Verify error log entry & signature description.
398 ... 6. Verify & clear dump entry.
Sridevi Ramesh3ed96342018-01-15 05:14:37 -0600399 [Arguments] ${fir} ${chip_address} ${threshold_limit}
400 ... ${signature_desc} ${log_prefix}
401 # Description of argument(s):
402 # fir FIR (Fault isolation register) value (e.g. 2011400).
403 # chip_address Chip address (e.g 2000000000000000).
404 # threshold_limit Threshold limit (e.g 1, 5, 32).
405 # signature_desc Error Log signature description.
406 # (e.g 'mcs(n0p0c0) (MCFIR[0]) mc internal recoverable')
407 # log_prefix Log path prefix.
408
409 Set Auto Reboot 1
410 Inject Error Through HOST ${fir} ${chip_address} ${threshold_limit}
411 ... ${master_proc_chip}
412 Wait Until Keyword Succeeds 500 sec 20 sec Is Host Rebooted
413 Wait for OS
414 Verify And Clear Gard Records On HOST
415 Verify Error Log Entry ${signature_desc} ${log_prefix}
Sridevi Ramesh9adda642018-01-29 04:12:33 -0600416 ${resp}= OpenBMC Get Request ${DUMP_ENTRY_URI}/list
417 Should Not Be Equal As Strings ${resp.status_code} ${HTTP_NOT_FOUND}
418 Delete All BMC Dump
Sridevi Ramesh3ed96342018-01-15 05:14:37 -0600419
420Fetch FIR Address Translation Value
421 [Documentation] Fetch FIR address translation value through HOST.
422 [Arguments] ${fir} ${target_type}
423 # Description of argument(s):
424 # fir FIR (Fault isolation register) value (e.g. 2011400).
425 # core_id Core ID (e.g. 9).
426 # target_type Target type (e.g. 'EX', 'EQ', 'C').
427
428 Login To OS Host
429 Copy Address Translation Utils To HOST OS
430
431 # Fetch processor chip IDs.
432 ${proc_chip_id}= Get ProcChipId From OS Processor ${master_proc_chip}
433 # Example output:
434 # 00000000
435
436 ${core_ids}= Get Core IDs From OS ${proc_chip_id[-1]}
437 # Example output:
438 #./probe_cpus.sh | grep 'CHIP ID: 0' | cut -c21-22
439 # ['14', '15', '16', '17']
440
441 # Ignoring master core ID.
442 ${output}= Get Slice From List ${core_ids} 1
443 # Feth random non-master core ID.
444 ${core_ids_sub_list}= Evaluate random.sample(${core_ids}, 1) random
445 ${core_id}= Get From List ${core_ids_sub_list} 0
446 ${translated_fir_addr}= FIR Address Translation Through HOST
447 ... ${fir} ${core_id} ${target_type}
448
449 [Return] ${translated_fir_addr}
450
451RAS Test SetUp
452 [Documentation] Validates input parameters.
453
454 Should Not Be Empty
455 ... ${OS_HOST} msg=You must provide DNS name/IP of the OS host.
456 Should Not Be Empty
457 ... ${OS_USERNAME} msg=You must provide OS host user name.
458 Should Not Be Empty
459 ... ${OS_PASSWORD} msg=You must provide OS host user password.
460
461 # Boot to OS.
462 REST Power On quiet=${1}
463 # Adding delay after host bring up.
464 Sleep 60s
465
466RAS Suite Setup
467 [Documentation] Create RAS log directory to store all RAS test logs.
468
469 ${RAS_LOG_DIR_PATH}= Catenate ${EXECDIR}/RAS_logs/
470 Set Suite Variable ${RAS_LOG_DIR_PATH}
471 Set Suite Variable ${master_proc_chip} False
472
473 Create Directory ${RAS_LOG_DIR_PATH}
474 OperatingSystem.Directory Should Exist ${RAS_LOG_DIR_PATH}
475 Empty Directory ${RAS_LOG_DIR_PATH}
476
Sridevi Ramesh76f2dbc2018-01-17 09:52:10 -0600477 Should Not Be Empty ${ESEL_BIN_PATH}
478 Set Environment Variable PATH %{PATH}:${ESEL_BIN_PATH}
479
Sridevi Ramesh3ed96342018-01-15 05:14:37 -0600480 # Boot to Os.
481 REST Power On quiet=${1}
482
Sridevi Rameshd079e9d2018-02-13 01:14:58 -0600483 # Check Opal-PRD service enabled on host.
484 ${opal_prd_state}= Is Opal-PRD Service Enabled
485 Run Keyword If '${opal_prd_state}' == 'disabled'
486 ... Enable Opal-PRD Service On HOST
487
Sridevi Ramesh3ed96342018-01-15 05:14:37 -0600488RAS Suite Cleanup
489 [Documentation] Perform RAS suite cleanup and verify that host
490 ... boots after test suite run.
491
492 # Boot to OS.
493 REST Power On quiet=${1}
494 Delete Error Logs
495 Gard Operations On OS clear all