From 5820710976565a6b3d241bce91d97d3fdacd0396 Mon Sep 17 00:00:00 2001 From: Christian Geddes Date: Thu, 16 Jan 2020 14:05:21 -0600 Subject: Add hwp retry loop as workaround until we resolve timeout issue We were seeing check_for_ready timeout intermittently in driver tests. In locally built driver we saw that if we retried the hwp a few times we eventually passed. Incrementing the timeout value in the HWP itself did not seem to make the problem go away. We will remove this retry loop when we figure out the root of the problem. Change-Id: If39965268349891fc9170a5a29193aaf6fb8d583 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/89780 Tested-by: Jenkins Server Tested-by: Jenkins OP Build CI Tested-by: Jenkins OP HW Reviewed-by: Matt Derksen Tested-by: FSP CI Jenkins Reviewed-by: Yun Pan Reviewed-by: Daniel M Crowell --- .../isteps/istep10/call_proc_cen_ref_clk_enable.C | 24 ++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/src/usr/isteps/istep10/call_proc_cen_ref_clk_enable.C b/src/usr/isteps/istep10/call_proc_cen_ref_clk_enable.C index 993e8c5ba..81478303a 100644 --- a/src/usr/isteps/istep10/call_proc_cen_ref_clk_enable.C +++ b/src/usr/isteps/istep10/call_proc_cen_ref_clk_enable.C @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2015,2019 */ +/* Contributors Listed Below - COPYRIGHT 2015,2020 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -1063,9 +1063,25 @@ void* call_proc_cen_ref_clk_enable(void *io_pArgs ) "for 0x%.08X", TARGETING::get_huid(l_ocmb)); fapi2::Target l_fapi_ocmb_target(l_ocmb); - FAPI_INVOKE_HWP(l_errl, - exp_check_for_ready, - l_fapi_ocmb_target); + + // TODO CQ:SW482291 Remove this retry workaround when ocmb check_for_ready timeout issue is resolved + for(uint8_t i = 0; i < 10; i++) + { + FAPI_INVOKE_HWP(l_errl, + exp_check_for_ready, + l_fapi_ocmb_target); + + // Preserve the error log if this is the last loop. + if(l_errl == NULL || i == 9) + { + break; + } + else + { + delete l_errl; + l_errl = NULL; + } + } if (l_errl) { -- cgit v1.2.1