diff options
author | Ankit Dhingra <ankidhin@in.ibm.com> | 2018-04-23 03:14:28 -0500 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2018-05-31 13:22:26 -0400 |
commit | 8a3c6293dff79b925856325e9f04f38716fe0912 (patch) | |
tree | 1697677cfd674e3ec7bd1bd8c6bdd25fdb4c31ac /src | |
parent | caa0f8a5bd325ad11fc7974f10b5642666e3c5e9 (diff) | |
download | talos-hostboot-8a3c6293dff79b925856325e9f04f38716fe0912.tar.gz talos-hostboot-8a3c6293dff79b925856325e9f04f38716fe0912.zip |
Add support for TOD osc switch interrupt
Change-Id: I088f2131372cd74e837bc0dc8f54be875fd052aa
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/57624
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: HWSV CI <hwsv-ci+hostboot@us.ibm.com>
Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com>
Reviewed-by: Manish K. Chowdhary <manichow@in.ibm.com>
Reviewed-by: James N. Klazynski <jklazyns@us.ibm.com>
Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com>
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/57722
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/import/chips/p9/procedures/hwp/nest/p9_tod_init.C | 20 | ||||
-rw-r--r-- | src/import/chips/p9/procedures/xml/error_info/p9_tod_errors.xml | 28 |
2 files changed, 46 insertions, 2 deletions
diff --git a/src/import/chips/p9/procedures/hwp/nest/p9_tod_init.C b/src/import/chips/p9/procedures/hwp/nest/p9_tod_init.C index 411dded8f..29400f3ad 100644 --- a/src/import/chips/p9/procedures/hwp/nest/p9_tod_init.C +++ b/src/import/chips/p9/procedures/hwp/nest/p9_tod_init.C @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2015,2017 */ +/* Contributors Listed Below - COPYRIGHT 2015,2018 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -94,6 +94,8 @@ fapi2::ReturnCode init_tod_node( // Timeout counter for bits that are cleared by hardware uint32_t l_tod_init_pending_count = 0; fapi2::buffer<uint64_t> l_tod_fsm_reg; + // Flag to check if the TOD FSM is running + bool l_tod_running = false; FAPI_DBG("Start"); // Sequence details are in TOD Workbook section 1.6.3 @@ -161,12 +163,28 @@ fapi2::ReturnCode init_tod_node( if (l_tod_fsm_reg.getBit<PERV_TOD_FSM_REG_IS_RUNNING>()) { FAPI_DBG("TOD is running!"); + l_tod_running = true; break; } ++l_tod_init_pending_count; } + if (l_tod_running == false) + { + FAPI_DBG("TOD FSM failed !"); + fapi2::buffer<uint64_t> l_tod_err_reg = 0; + FAPI_TRY(fapi2::getScom(*(i_tod_node->i_target), + PERV_TOD_ERROR_REG, + l_tod_err_reg), + "Error from getScom (PERV_TOD_ERROR_REG)!"); + + FAPI_ASSERT(!l_tod_err_reg.getBit<PERV_TOD_ERROR_ROUTING_REG_OSCSWITCH_INTERRUPT>(), + fapi2::P9_TOD_MF_CLK_FAILURE() + .set_TARGET(*(i_tod_node->i_target)), + "Interrupt from TOD Oscillator Switch"); + } + FAPI_ASSERT((l_tod_init_pending_count < P9_TOD_UTIL_TIMEOUT_COUNT), fapi2::P9_TOD_INIT_NOT_RUNNING() .set_TARGET(*(i_tod_node->i_target)) diff --git a/src/import/chips/p9/procedures/xml/error_info/p9_tod_errors.xml b/src/import/chips/p9/procedures/xml/error_info/p9_tod_errors.xml index 0696166f5..bd7022fe3 100644 --- a/src/import/chips/p9/procedures/xml/error_info/p9_tod_errors.xml +++ b/src/import/chips/p9/procedures/xml/error_info/p9_tod_errors.xml @@ -5,7 +5,7 @@ <!-- --> <!-- OpenPOWER HostBoot Project --> <!-- --> -<!-- Contributors Listed Below - COPYRIGHT 2016,2017 --> +<!-- Contributors Listed Below - COPYRIGHT 2016,2018 --> <!-- [+] International Business Machines Corp. --> <!-- --> <!-- --> @@ -243,5 +243,31 @@ <!-- no callout, deconfig, gard tags as FW does not consume --> </hwpError> <!-- ******************************************************************** --> + <hwpError> + <rc>RC_P9_TOD_MF_CLK_FAILURE</rc> + <description> + Procedure: p9_tod_init + TOD FSM did not reach running state due + to interrupt from TOD Oscillator switch + </description> + <ffdc>TARGET</ffdc> + <collectRegisterFfdc> + <id>REG_FFDC_TOD_STATUS</id> + <targetType>TARGET_TYPE_PROC_CHIP</targetType> + <target>TARGET</target> + </collectRegisterFfdc> + <callout> + <hw> + <hwid>PCI_REF_CLOCK</hwid> + <refTarget>TARGET</refTarget> + </hw> + <priority>HIGH</priority> + </callout> + <callout> + <target>TARGET</target> + <priority>LOW</priority> + </callout> + </hwpError> + <!-- ******************************************************************** --> </hwpErrors> |