summaryrefslogtreecommitdiffstats
path: root/src/usr/isteps
diff options
context:
space:
mode:
authorMarty Gloff <mgloff@us.ibm.com>2016-07-27 11:55:38 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2016-08-10 14:14:54 -0400
commit0f64c7b414998e6f9b1b7211f55f0ca481208070 (patch)
treebaac50f47ccab0274015612fa1faf9c8172fc10f /src/usr/isteps
parent15a7b3ec80e826ed07c57739693d9e98a17d2b33 (diff)
downloadtalos-hostboot-0f64c7b414998e6f9b1b7211f55f0ca481208070.tar.gz
talos-hostboot-0f64c7b414998e6f9b1b7211f55f0ca481208070.zip
Handle 8MB reduced cache mode
Check scom register (0x1001181B) for reduced cache mode and expand the memory footprint appropriately, reduced 8MB or full 10MB. Change-Id: I5920572077cdcee317e7b3b9abe999e6de295459 RTC:152954 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/27522 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/isteps')
-rw-r--r--src/usr/isteps/istep06/thread_activate/thread_activate.C43
1 files changed, 40 insertions, 3 deletions
diff --git a/src/usr/isteps/istep06/thread_activate/thread_activate.C b/src/usr/isteps/istep06/thread_activate/thread_activate.C
index 1d5d2de14..84fdd8187 100644
--- a/src/usr/isteps/istep06/thread_activate/thread_activate.C
+++ b/src/usr/isteps/istep06/thread_activate/thread_activate.C
@@ -46,12 +46,14 @@
#include <arch/pirformat.H>
// targeting support
+#include <targeting/common/target.H>
#include <targeting/common/commontargeting.H>
#include <targeting/common/utilFilter.H>
// fapi support
#include <fapi2.H>
#include <fapi2_target.H>
+#include <fapi2_hw_access.H>
#include <plat_hwp_invoker.H>
#include <istep_reasoncodes.H>
#include <p9_cpu_special_wakeup.H>
@@ -417,9 +419,44 @@ void activate_threads( errlHndl_t& io_rtaskRetErrl )
if ((!PNOR::usingL3Cache()) &&
(!getCacheDeconfig(l_masterCoreID)))
{
- TRACFCOMP( g_fapiTd,
- "activate_threads: Extending cache to 8MB" );
- mm_extend(MM_EXTEND_FULL_CACHE);
+ // Get EX
+ TARGETING::Target* l_ex =
+ (TARGETING::Target*)getExChiplet(l_masterCore);
+ assert(l_ex != NULL);
+
+ // Check SCOM 0x1001181B for reduced cache mode
+ uint64_t l_reducedCacheMode = 0;
+ size_t l_size = sizeof(l_reducedCacheMode);
+ l_errl = deviceRead(l_ex,
+ reinterpret_cast<void*>(&l_reducedCacheMode),
+ l_size,
+ DEVICE_SCOM_ADDRESS(
+ EX_L3_EDRAM_BANK_FAIL_SCOM_RD));
+
+ if(l_errl)
+ {
+ TRACFCOMP( g_fapiTd,
+ ERR_MRK"activate_threads: Could not get "
+ "SCOM 0x%.8X, reason code 0x%.8X, EX HUID=%.8X",
+ EX_L3_EDRAM_BANK_FAIL_SCOM_RD,
+ l_errl->reasonCode(),
+ TARGETING::get_huid(l_ex) );
+ break;
+ }
+
+ if(l_reducedCacheMode)
+ {
+ TRACFCOMP( g_fapiTd,
+ "activate_threads: Extending cache to 8MB" );
+ mm_extend(MM_EXTEND_REDUCED_CACHE);
+ }
+ else
+ {
+ TRACFCOMP( g_fapiTd,
+ "activate_threads: Extending cache to 10MB" );
+ mm_extend(MM_EXTEND_FULL_CACHE);
+ }
+
}
} while(0);
OpenPOWER on IntegriCloud