From 035b8ccbe617bd2fa82498c185ea83eb62f02404 Mon Sep 17 00:00:00 2001 From: Joe McGill Date: Tue, 21 Mar 2017 17:20:59 -0500 Subject: cresp address error handling updates This commit sets up the FBC trace arrays to stop on a combined response address error, for MPIPL FFDC collection. It also adjusts the FIR configuration for several units, to trigger a system checkstop (based on their own LFIR) if they master a command which recieves a combined response address error cresp, and we do not support MPIPL from that condition. Unlike in past projects, the FBC level cresp address error FIR bit cannot be set to checkstop (in order to support MPIPL scenarios where the unacknowledged access eminates from the core) FIR action bits modified: PSIHB bits 15:20 PBA bit 1 Change-Id: Ie569600c2c937644740636e8a33097f7979d8d6f CQ: SW411054 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/52604 Tested-by: Jenkins Server Tested-by: PPE CI Tested-by: Hostboot CI Tested-by: FSP CI Jenkins Reviewed-by: Zane C. Shelley Reviewed-by: Joachim Fenkes Reviewed-by: Christian R. Geddes Reviewed-by: Jennifer A. Stofer Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/52634 Reviewed-by: Sachin Gupta --- .../chips/p9/procedures/hwp/nest/p9_sbe_scominit.C | 25 +++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) (limited to 'src/import/chips/p9') diff --git a/src/import/chips/p9/procedures/hwp/nest/p9_sbe_scominit.C b/src/import/chips/p9/procedures/hwp/nest/p9_sbe_scominit.C index 3f6c633d..29698fd9 100644 --- a/src/import/chips/p9/procedures/hwp/nest/p9_sbe_scominit.C +++ b/src/import/chips/p9/procedures/hwp/nest/p9_sbe_scominit.C @@ -50,6 +50,7 @@ #include #include #include +#include #include #include #include @@ -82,7 +83,7 @@ const uint64_t LPC_FIR_MASK = 0x18F0000000000000ULL; // PBA FIR constants const uint64_t PBA_FIR_ACTION0 = 0x0000000000000000ULL; const uint64_t PBA_FIR_ACTION1 = 0x0C0100600C000000ULL; -const uint64_t PBA_FIR_MASK = 0x7082448062FC0000ULL; +const uint64_t PBA_FIR_MASK = 0x3082448062FC0000ULL; // PPE FIR constants // FBC @@ -98,6 +99,9 @@ const uint64_t OB_PPE_FIR_ACTION0 = 0x0000000000000000ULL; const uint64_t OB_PPE_FIR_ACTION1 = 0xF1C0000000000000ULL; const uint64_t OB_PPE_FIR_MASK = 0x0E38000000000000ULL; +// nest trace setup constants +const uint8_t N1_PROBE1_SEL = 0x11; + // nest DTS enablement constants const uint8_t NEST_THERM_MODE_SAMPLE_PULSE_COUNT = 0xF; const uint8_t NEST_THERM_MODE_LOOP0_ENABLE = 0x2; @@ -477,6 +481,25 @@ p9_sbe_scominit(const fapi2::Target& i_target) } } + // configure NEST tracing logic + { + // mux N1 DBG broadcast(1) onto oob(5) + fapi2::buffer l_cplt_conf0; + FAPI_TRY(fapi2::getScom(i_target, PERV_N1_CPLT_CONF0, l_cplt_conf0), + "Error from getScom (PERV_N1_CPLT_CONF0)"); + l_cplt_conf0.insertFromRight(N1_PROBE1_SEL); + FAPI_TRY(fapi2::putScom(i_target, PERV_N1_CPLT_CONF0, l_cplt_conf0), + "Error from putScom (PERV_N1_CPLT_CONF0)"); + + // ungate global broadcast input on N3 DBG + FAPI_TRY(fapi2::getScom(i_target, PERV_N3_CPLT_CONF0, l_cplt_conf0), + "Error from getScom (PERV_N3_CPLT_CONF0)"); + l_cplt_conf0.setBit(); + FAPI_TRY(fapi2::putScom(i_target, PERV_N3_CPLT_CONF0, l_cplt_conf0), + "Error from putScom (PERV_N3_CPLT_CONF0)"); + } + // configure PCI tracing logic { for (auto& l_chplt_target : i_target.getChildren -- cgit v1.2.1