summaryrefslogtreecommitdiffstats
path: root/src/usr/hwpf
diff options
context:
space:
mode:
authorRichard J. Knight <rjknight@us.ibm.com>2013-05-08 11:39:38 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2013-06-14 11:19:22 -0500
commitdcfcbcdea8737802ff615efde01545d6d6137b9f (patch)
treef4b3e96b83ec090c8f48779c18c03f077e638e00 /src/usr/hwpf
parent0f4bb93bb0255db58725cac3979c58784d2563f3 (diff)
downloadtalos-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.C5
-rw-r--r--src/usr/hwpf/hwp/common_attributes.xml2
-rw-r--r--src/usr/hwpf/hwp/dmi_training/dmi_training.C24
-rw-r--r--src/usr/hwpf/plat/fapiPlatAttrOverrideSync.C3
-rw-r--r--src/usr/hwpf/test/fapiTargetTest.C124
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;
+}
+
}
OpenPOWER on IntegriCloud