diff options
author | Richard J. Knight <rjknight@us.ibm.com> | 2013-05-08 11:39:38 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2013-06-14 11:19:22 -0500 |
commit | dcfcbcdea8737802ff615efde01545d6d6137b9f (patch) | |
tree | f4b3e96b83ec090c8f48779c18c03f077e638e00 /src/usr/hwpf | |
parent | 0f4bb93bb0255db58725cac3979c58784d2563f3 (diff) | |
download | talos-hostboot-dcfcbcdea8737802ff615efde01545d6d6137b9f.tar.gz talos-hostboot-dcfcbcdea8737802ff615efde01545d6d6137b9f.zip |
MRU Callout Support Updates
Change-Id: If0e517a72c428b2cd5902900f13f6a3c17a68963
RTC:68487
Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/4813
Tested-by: Jenkins Server
Reviewed-by: Brian H. Horton <brianh@linux.ibm.com>
Reviewed-by: Van H. Lee <vanlee@us.ibm.com>
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/hwpf')
-rw-r--r-- | src/usr/hwpf/fapi/fapiTarget.C | 5 | ||||
-rw-r--r-- | src/usr/hwpf/hwp/common_attributes.xml | 2 | ||||
-rw-r--r-- | src/usr/hwpf/hwp/dmi_training/dmi_training.C | 24 | ||||
-rw-r--r-- | src/usr/hwpf/plat/fapiPlatAttrOverrideSync.C | 3 | ||||
-rw-r--r-- | src/usr/hwpf/test/fapiTargetTest.C | 124 |
5 files changed, 131 insertions, 27 deletions
diff --git a/src/usr/hwpf/fapi/fapiTarget.C b/src/usr/hwpf/fapi/fapiTarget.C index 9546f3d23..e1b901e61 100644 --- a/src/usr/hwpf/fapi/fapiTarget.C +++ b/src/usr/hwpf/fapi/fapiTarget.C @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2011,2012 */ +/* COPYRIGHT International Business Machines Corp. 2011,2013 */ /* */ /* p1 */ /* */ @@ -148,7 +148,8 @@ bool Target::isChiplet() const TARGET_TYPE_MBA_CHIPLET | TARGET_TYPE_MCS_CHIPLET | TARGET_TYPE_XBUS_ENDPOINT | - TARGET_TYPE_ABUS_ENDPOINT)) != 0); + TARGET_TYPE_ABUS_ENDPOINT | + TARGET_TYPE_L4 )) != 0); } //****************************************************************************** diff --git a/src/usr/hwpf/hwp/common_attributes.xml b/src/usr/hwpf/hwp/common_attributes.xml index 18988dda7..5db363d36 100644 --- a/src/usr/hwpf/hwp/common_attributes.xml +++ b/src/usr/hwpf/hwp/common_attributes.xml @@ -34,7 +34,7 @@ TARGET_TYPE_DIMM, TARGET_TYPE_PROC_CHIP, TARGET_TYPE_MEMBUF_CHIP, TARGET_TYPE_EX_CHIPLET, TARGET_TYPE_MBA_CHIPLET, TARGET_TYPE_MCS_CHIPLET, TARGET_TYPE_XBUS_ENDPOINT, - TARGET_TYPE_ABUS_ENDPOINT + TARGET_TYPE_ABUS_ENDPOINT, TARGET_TYPE_L4 </targetType> <description> 1 if the target is functional, else 0 diff --git a/src/usr/hwpf/hwp/dmi_training/dmi_training.C b/src/usr/hwpf/hwp/dmi_training/dmi_training.C index fa78b63d7..14d2133c4 100644 --- a/src/usr/hwpf/hwp/dmi_training/dmi_training.C +++ b/src/usr/hwpf/hwp/dmi_training/dmi_training.C @@ -265,11 +265,31 @@ void* call_mss_getecid( void *io_pArgs ) l_cache_enable); l_cache_enable = fapi::ENUM_ATTR_MSS_CACHE_ENABLE_OFF; - // TODO RTC 68487. Get the child L4 Target and deconfigure it + TargetHandleList l_list; + getChildChiplets(l_list, + l_pCentaur, + TYPE_L4, false ); + + TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, + "deconfigure %d - L4s assocated with this centaur " + "huid = 0x%.8X", l_list.size(), get_huid(l_pCentaur)); + + for (TargetHandleList::const_iterator + l_l4_iter = l_list.begin(); + l_l4_iter != l_list.end(); + ++l_l4_iter) + { + TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, + "deconfigure L4 0x%.8X", get_huid( *l_l4_iter)); + + // call HWAS to deconfigure + l_err = HWAS::theDeconfigGard(). + deconfigureTarget( **l_l4_iter , 0); + } } l_pCentaur->setAttr<TARGETING::ATTR_MSS_CACHE_ENABLE>( - l_cache_enable); + l_cache_enable); } TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, diff --git a/src/usr/hwpf/plat/fapiPlatAttrOverrideSync.C b/src/usr/hwpf/plat/fapiPlatAttrOverrideSync.C index 98a59e2e7..05b67d0ba 100644 --- a/src/usr/hwpf/plat/fapiPlatAttrOverrideSync.C +++ b/src/usr/hwpf/plat/fapiPlatAttrOverrideSync.C @@ -109,6 +109,9 @@ void directOverride() case fapi::TARGET_TYPE_ABUS_ENDPOINT: l_targetType = TARGETING::TYPE_ABUS; break; + case fapi::TARGET_TYPE_L4: + l_targetType = TARGETING::TYPE_L4; + break; } FAPI_IMP( diff --git a/src/usr/hwpf/test/fapiTargetTest.C b/src/usr/hwpf/test/fapiTargetTest.C index 92842c5b3..fe4db1904 100644 --- a/src/usr/hwpf/test/fapiTargetTest.C +++ b/src/usr/hwpf/test/fapiTargetTest.C @@ -1,25 +1,25 @@ -// IBM_PROLOG_BEGIN_TAG -// This is an automatically generated prolog. -// -// $Source: src/usr/hwpf/test/fapiTargetTest.C $ -// -// IBM CONFIDENTIAL -// -// COPYRIGHT International Business Machines Corp. 2011 -// -// p1 -// -// Object Code Only (OCO) source materials -// Licensed Internal Code Source Materials -// IBM HostBoot Licensed Internal Code -// -// The source code for this program is not published or other- -// wise divested of its trade secrets, irrespective of what has -// been deposited with the U.S. Copyright Office. -// -// Origin: 30 -// -// IBM_PROLOG_END +/* IBM_PROLOG_BEGIN_TAG */ +/* This is an automatically generated prolog. */ +/* */ +/* $Source: src/usr/hwpf/test/fapiTargetTest.C $ */ +/* */ +/* IBM CONFIDENTIAL */ +/* */ +/* COPYRIGHT International Business Machines Corp. 2011,2013 */ +/* */ +/* p1 */ +/* */ +/* Object Code Only (OCO) source materials */ +/* Licensed Internal Code Source Materials */ +/* IBM HostBoot Licensed Internal Code */ +/* */ +/* The source code for this program is not published or otherwise */ +/* divested of its trade secrets, irrespective of what has been */ +/* deposited with the U.S. Copyright Office. */ +/* */ +/* Origin: 30 */ +/* */ +/* IBM_PROLOG_END_TAG */ /** * @file fapitargetTest.C * @@ -338,5 +338,85 @@ uint32_t targetTest6() return l_result; } +//****************************************************************************** +// targetTest7 +//****************************************************************************** +uint32_t targetTest7() +{ + uint32_t l_result = 0; + uint8_t l_handle = 7; + void * l_pHandle = reinterpret_cast<void *>(&l_handle); + + // Create Target + Target l_target(TARGET_TYPE_L4, l_pHandle); + + // Ensure that the handle pointer is as expected + void * l_pHandleCheck = l_target.get(); + + if (l_pHandleCheck != l_pHandle) + { + FAPI_ERR("targetTest7. Handle is not as expected"); + l_result = 1; + } + else + { + // Ensure that the type is TARGET_TYPE_L4 + TargetType l_type = l_target.getType(); + + if (l_type != TARGET_TYPE_L4) + { + FAPI_ERR("targetTest7. Type is 0x%x, expected L4", l_type); + l_result = 2; + } + else + { + FAPI_INF("targetTest7. Success!"); + } + } + + // Set the handle pointer to NULL to prevent any problem on destruction + l_target.set(NULL); + + return l_result; +} +//****************************************************************************** +// targetTest8 +//****************************************************************************** +uint32_t targetTest8() +{ + uint32_t l_result = 0; + uint8_t l_handle = 7; + void * l_pHandle = reinterpret_cast<void *>(&l_handle); + + // Create Target + Target l_target(TARGET_TYPE_L4, l_pHandle); + + // an L4 Target is not a chip + if ( l_target.isChip() ) + { + FAPI_ERR("targetTest8. L4 target incorrectly" + " identified itself as a chip"); + l_result = 1; + } + else + { + + if ( !l_target.isChiplet() ) + { + FAPI_ERR("targetTest8. L4 target failed to identify as a chiplett" ); + l_result = 2; + } + else + { + FAPI_INF("targetTest8. Success!"); + } + } + + // Set the handle pointer to NULL to prevent any problem on destruction + l_target.set(NULL); + + return l_result; +} + } |