diff options
Diffstat (limited to 'src/usr/isteps/istep10')
-rw-r--r-- | src/usr/isteps/istep10/call_host_rng_bist.C | 5 | ||||
-rw-r--r-- | src/usr/isteps/istep10/call_host_slave_sbe_update.C | 22 | ||||
-rw-r--r-- | src/usr/isteps/istep10/call_host_update_redundant_tpm.C | 25 | ||||
-rw-r--r-- | src/usr/isteps/istep10/call_proc_abus_scominit.C | 3 | ||||
-rw-r--r-- | src/usr/isteps/istep10/call_proc_build_smp.C | 2 | ||||
-rw-r--r-- | src/usr/isteps/istep10/call_proc_cen_ref_clk_enable.C | 60 | ||||
-rw-r--r-- | src/usr/isteps/istep10/call_proc_chiplet_scominit.C | 6 | ||||
-rw-r--r-- | src/usr/isteps/istep10/call_proc_enable_osclite.C | 3 | ||||
-rw-r--r-- | src/usr/isteps/istep10/call_proc_npu_scominit.C | 4 | ||||
-rw-r--r-- | src/usr/isteps/istep10/call_proc_pcie_scominit.C | 3 | ||||
-rw-r--r-- | src/usr/isteps/istep10/call_proc_scomoverride_chiplets.C | 3 | ||||
-rw-r--r-- | src/usr/isteps/istep10/host_proc_pcie_scominit.C | 1 | ||||
-rw-r--r-- | src/usr/isteps/istep10/makefile | 3 |
13 files changed, 103 insertions, 37 deletions
diff --git a/src/usr/isteps/istep10/call_host_rng_bist.C b/src/usr/isteps/istep10/call_host_rng_bist.C index 68d243547..70b82a274 100644 --- a/src/usr/isteps/istep10/call_host_rng_bist.C +++ b/src/usr/isteps/istep10/call_host_rng_bist.C @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2015,2017 */ +/* Contributors Listed Below - COPYRIGHT 2015,2019 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -55,7 +55,6 @@ #include <devicefw/userif.H> #include <vpd/mvpdenums.H> -#include <config.h> #include <fapi2/plat_hwp_invoker.H> #include <p9_rng_init_phase1.H> @@ -121,7 +120,7 @@ void* call_host_rng_bist( void *io_pArgs ) { l_err->addHwCallout( l_nxTarget, HWAS::SRCI_PRIORITY_HIGH, - HWAS::DECONFIG, + HWAS::DELAYED_DECONFIG, HWAS::GARD_NULL ); } } diff --git a/src/usr/isteps/istep10/call_host_slave_sbe_update.C b/src/usr/isteps/istep10/call_host_slave_sbe_update.C index 6e230fc38..d008e8cbd 100644 --- a/src/usr/isteps/istep10/call_host_slave_sbe_update.C +++ b/src/usr/isteps/istep10/call_host_slave_sbe_update.C @@ -249,6 +249,7 @@ void* call_host_slave_sbe_update (void *io_pArgs) { errlHndl_t l_errl = NULL; IStepError l_StepError; + bool l_testAltMaster = true; TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_host_slave_sbe_update entry" ); @@ -275,7 +276,6 @@ void* call_host_slave_sbe_update (void *io_pArgs) errlCommit( l_errl, HWPF_COMP_ID ); } - #ifndef CONFIG_AXONE_BRING_UP // Call to check state of Processor SBE SEEPROMs and // make any necessary updates l_errl = SBE::updateProcessorSbeSeeproms( @@ -290,8 +290,6 @@ void* call_host_slave_sbe_update (void *io_pArgs) break; } - #endif - // Run LPC Init on Alt Master Procs // Get list of all processors TARGETING::TargetHandleList l_procList; @@ -325,6 +323,7 @@ void* call_host_slave_sbe_update (void *io_pArgs) l_errl->removeDeconfigure(); // Commit error errlCommit( l_errl, HWPF_COMP_ID ); + l_testAltMaster = false; } else { @@ -337,14 +336,17 @@ void* call_host_slave_sbe_update (void *io_pArgs) // Call to Validate any Alternative Master's connection to PNOR // Any error returned should not fail istep - l_errl = PNOR::validateAltMaster(); - if (l_errl) + if (l_testAltMaster == true) { - //Remove any deconfigure information, we only need the PNOR Part callout and do not want - // to deconfigure the entire proc because of a PNOR part problem - l_errl->removeDeconfigure(); - // Commit error - errlCommit( l_errl, HWPF_COMP_ID ); + l_errl = PNOR::validateAltMaster(); + if (l_errl) + { + //Remove any deconfigure information, we only need the PNOR Part callout and do not want + // to deconfigure the entire proc because of a PNOR part problem + l_errl->removeDeconfigure(); + // Commit error + errlCommit( l_errl, HWPF_COMP_ID ); + } } // Set SEEPROM_VERSIONS_MATCH attributes for each processor diff --git a/src/usr/isteps/istep10/call_host_update_redundant_tpm.C b/src/usr/isteps/istep10/call_host_update_redundant_tpm.C index 878b1b1e3..4f872f995 100644 --- a/src/usr/isteps/istep10/call_host_update_redundant_tpm.C +++ b/src/usr/isteps/istep10/call_host_update_redundant_tpm.C @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2015,2018 */ +/* Contributors Listed Below - COPYRIGHT 2015,2019 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -35,11 +35,11 @@ #include <errl/errludtarget.H> #include <attributetraits.H> -#include <config.h> #include <util/align.H> #include <util/algorithm.H> #include <istepHelperFuncs.H> #include <secureboot/trustedbootif.H> +#include <secureboot/phys_presence_if.H> namespace ISTEP_10 { @@ -50,6 +50,7 @@ void* call_host_update_redundant_tpm (void *io_pArgs) ENTER_MRK"call_host_update_redundant_tpm"); ISTEP_ERROR::IStepError l_istepError; + #ifdef CONFIG_TPMDD TARGETING::Target* l_backupTpm = nullptr; @@ -67,6 +68,26 @@ void* call_host_update_redundant_tpm (void *io_pArgs) } while(0); #endif +#ifdef CONFIG_PHYS_PRES_PWR_BUTTON + // Check to see if a Physical Presence Window should be opened, + // and if so, open it. This could result in the system being shutdown + // to allow the system administrator to assert physical presence + errlHndl_t l_err = nullptr; + l_err = SECUREBOOT::handlePhysPresenceWindow(); + if (l_err) + { + // @TODO RTC 210301 - Handle Error Log Correctly, but for now + // just delete it + TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, + "call_host_update_redundant_tpm: Error back from " + "SECUREBOOT::handlePhysPresence: rc=0x%X, plid=0x%X. " + "Deleting error for now", + ERRL_GETRC_SAFE(l_err), ERRL_GETPLID_SAFE(l_err)); + delete l_err; + l_err = nullptr; + } +#endif + TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, EXIT_MRK"call_host_update_redundant_tpm"); diff --git a/src/usr/isteps/istep10/call_proc_abus_scominit.C b/src/usr/isteps/istep10/call_proc_abus_scominit.C index 745fabae3..cefb9f6d0 100644 --- a/src/usr/isteps/istep10/call_proc_abus_scominit.C +++ b/src/usr/isteps/istep10/call_proc_abus_scominit.C @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2015,2017 */ +/* Contributors Listed Below - COPYRIGHT 2015,2019 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -58,7 +58,6 @@ #include <devicefw/userif.H> #include <vpd/mvpdenums.H> -#include <config.h> namespace ISTEP_10 diff --git a/src/usr/isteps/istep10/call_proc_build_smp.C b/src/usr/isteps/istep10/call_proc_build_smp.C index b3ce48516..599e6f98e 100644 --- a/src/usr/isteps/istep10/call_proc_build_smp.C +++ b/src/usr/isteps/istep10/call_proc_build_smp.C @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2015,2018 */ +/* Contributors Listed Below - COPYRIGHT 2015,2019 */ /* [+] International Business Machines Corp. */ /* */ /* */ 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 67a11b775..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. */ /* */ /* */ @@ -80,7 +80,6 @@ #include <errl/errludtarget.H> #include <attributetraits.H> -#include <config.h> #include <util/align.H> #include <util/algorithm.H> @@ -1064,9 +1063,25 @@ void* call_proc_cen_ref_clk_enable(void *io_pArgs ) "for 0x%.08X", TARGETING::get_huid(l_ocmb)); fapi2::Target <fapi2::TARGET_TYPE_OCMB_CHIP> 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) { @@ -1086,8 +1101,41 @@ void* call_proc_cen_ref_clk_enable(void *io_pArgs ) else { TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, - "SUCCESS : exp_check_for_ready" + "SUCCESS : exp_check_for_ready " "completed ok"); + + size_t size = 0; + + TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, + "Read IDEC from OCMB 0x%.8X", + TARGETING::get_huid(l_ocmb)); + + // This write gets translated into a read of the explorer chip + // in the device driver. First, a read of the chip's IDEC + // register occurs then ATTR_EC, ATTR_HDAT_EC, and ATTR_CHIP_ID + // are set with the values found in that register. So, this + // deviceWrite functions more as a setter for an OCMB target's + // attributes. + // Pass 2 as a va_arg to signal the ocmbIDEC function to execute + // phase 2 of it's read process. + const uint64_t Phase2 = 2; + l_errl = DeviceFW::deviceWrite(l_ocmb, + nullptr, + size, + DEVICE_IDEC_ADDRESS(), + Phase2); + if (l_errl) + { + // read of ID/EC failed even though we THOUGHT we were + // present. + TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, + "OCMB 0x%.8X - read IDEC failed (eid 0x%X) - bad", + TARGETING::get_huid(l_ocmb), l_errl->eid()); + + // commit the error but keep going + errlCommit(l_errl, HWAS_COMP_ID); + // l_errl is now nullptr + } } } #endif diff --git a/src/usr/isteps/istep10/call_proc_chiplet_scominit.C b/src/usr/isteps/istep10/call_proc_chiplet_scominit.C index 8e2950163..c0b9f2619 100644 --- a/src/usr/isteps/istep10/call_proc_chiplet_scominit.C +++ b/src/usr/isteps/istep10/call_proc_chiplet_scominit.C @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2015,2018 */ +/* Contributors Listed Below - COPYRIGHT 2015,2020 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -74,6 +74,8 @@ void* call_proc_chiplet_scominit( void *io_pArgs ) TRACFCOMP(g_trac_isteps_trace, ENTER_MRK"call_proc_chiplet_scominit entry" ); + do{ + if (!INITSERVICE::isSMPWrapConfig()) { // Make the FAPI call to p9_chiplet_scominit @@ -108,6 +110,8 @@ void* call_proc_chiplet_scominit( void *io_pArgs ) } } + }while(0); + TRACFCOMP(g_trac_isteps_trace, EXIT_MRK"call_proc_chiplet_scominit exit" ); return l_stepError.getErrorHandle(); diff --git a/src/usr/isteps/istep10/call_proc_enable_osclite.C b/src/usr/isteps/istep10/call_proc_enable_osclite.C index dd3c6147e..ccfa653b6 100644 --- a/src/usr/isteps/istep10/call_proc_enable_osclite.C +++ b/src/usr/isteps/istep10/call_proc_enable_osclite.C @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2015,2017 */ +/* Contributors Listed Below - COPYRIGHT 2015,2019 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -55,7 +55,6 @@ #include <devicefw/userif.H> #include <vpd/mvpdenums.H> -#include <config.h> // -- prototype includes -- // Add any customized routines that you don't want overwritten into diff --git a/src/usr/isteps/istep10/call_proc_npu_scominit.C b/src/usr/isteps/istep10/call_proc_npu_scominit.C index c29be9535..7fd76d010 100644 --- a/src/usr/isteps/istep10/call_proc_npu_scominit.C +++ b/src/usr/isteps/istep10/call_proc_npu_scominit.C @@ -67,7 +67,6 @@ void* call_proc_npu_scominit( void *io_pArgs ) { IStepError l_stepError; - #ifndef CONFIG_AXONE_BRING_UP TRACFCOMP(g_trac_isteps_trace, ENTER_MRK"call_proc_npu_scominit entry"); if (!INITSERVICE::isSMPWrapConfig()) { @@ -76,9 +75,6 @@ void* call_proc_npu_scominit( void *io_pArgs ) HWPF_COMP_ID, TYPE_PROC); } TRACFCOMP(g_trac_isteps_trace, EXIT_MRK"call_proc_npu_scominit exit"); - #else - TRACFCOMP(g_trac_isteps_trace, "Skipping call_proc_npu_scominit in Axone during bringup"); - #endif return l_stepError.getErrorHandle(); } diff --git a/src/usr/isteps/istep10/call_proc_pcie_scominit.C b/src/usr/isteps/istep10/call_proc_pcie_scominit.C index 664a966e9..82bd05f55 100644 --- a/src/usr/isteps/istep10/call_proc_pcie_scominit.C +++ b/src/usr/isteps/istep10/call_proc_pcie_scominit.C @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2015,2017 */ +/* Contributors Listed Below - COPYRIGHT 2015,2019 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -58,7 +58,6 @@ #include <devicefw/userif.H> #include <vpd/mvpdenums.H> -#include <config.h> #include "host_proc_pcie_scominit.H" #include <p9_pcie_scominit.H> diff --git a/src/usr/isteps/istep10/call_proc_scomoverride_chiplets.C b/src/usr/isteps/istep10/call_proc_scomoverride_chiplets.C index 0d4c6d58f..9476672e8 100644 --- a/src/usr/isteps/istep10/call_proc_scomoverride_chiplets.C +++ b/src/usr/isteps/istep10/call_proc_scomoverride_chiplets.C @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2015,2017 */ +/* Contributors Listed Below - COPYRIGHT 2015,2019 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -58,7 +58,6 @@ #include <devicefw/userif.H> #include <vpd/mvpdenums.H> -#include <config.h> #include <p9_scomoverride_chiplets.H> diff --git a/src/usr/isteps/istep10/host_proc_pcie_scominit.C b/src/usr/isteps/istep10/host_proc_pcie_scominit.C index 8895ed405..69a41ab36 100644 --- a/src/usr/isteps/istep10/host_proc_pcie_scominit.C +++ b/src/usr/isteps/istep10/host_proc_pcie_scominit.C @@ -44,7 +44,6 @@ #include <fapi2/target.H> #include <fapi2/plat_hwp_invoker.H> #include <devicefw/userif.H> -#include <config.h> #include "host_proc_pcie_scominit.H" #include <hwas/common/hwas.H> #include <hwas/common/deconfigGard.H> diff --git a/src/usr/isteps/istep10/makefile b/src/usr/isteps/istep10/makefile index ac6233867..2590c4f63 100644 --- a/src/usr/isteps/istep10/makefile +++ b/src/usr/isteps/istep10/makefile @@ -5,7 +5,7 @@ # # OpenPOWER HostBoot Project # -# Contributors Listed Below - COPYRIGHT 2015,2019 +# Contributors Listed Below - COPYRIGHT 2015,2020 # [+] International Business Machines Corp. # # @@ -51,6 +51,7 @@ EXTRAINCDIR += ${INITFILES_HWP_PATH} EXTRAINCDIR += ${PERV_HWP_PATH} EXTRAINCDIR += ${OCMB_HWP_PATH} EXTRAINCDIR += ${ROOTPATH}/src/import/ +EXTRAINCDIR += ${ROOTPATH}/obj/genfiles/chips/ocmb/explorer/procedures/hwp/memory/lib/ OBJS += call_proc_build_smp.o |