summaryrefslogtreecommitdiffstats
path: root/src/usr/sbeio
diff options
context:
space:
mode:
authorChristian Geddes <crgeddes@us.ibm.com>2017-09-18 11:44:46 -0500
committerWilliam G. Hoffa <wghoffa@us.ibm.com>2017-09-21 10:35:12 -0400
commit932b398a055ef7ae4dce5f1d3a8803ba8d2fb8a8 (patch)
tree0501c1d6ca6149c020201a1c159c400e310bd5d0 /src/usr/sbeio
parent4b2859591b45f9b83c6856c4d242e20fc236ebf0 (diff)
downloadtalos-hostboot-932b398a055ef7ae4dce5f1d3a8803ba8d2fb8a8.tar.gz
talos-hostboot-932b398a055ef7ae4dce5f1d3a8803ba8d2fb8a8.zip
Move targ info getter func for sbechipOp into common code
Before we only needed to get the target info for the scan chipop, now more sbe chip ops require this functionality so we are moving it to common code Change-Id: Ifbb680db27c5975ee216d5d21ff78192c9ea2d34 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/46345 Reviewed-by: Martin Gloff <mgloff@us.ibm.com> Reviewed-by: Matt Derksen <mderkse1@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com>
Diffstat (limited to 'src/usr/sbeio')
-rw-r--r--src/usr/sbeio/makefile1
-rw-r--r--src/usr/sbeio/sbe_utils.C124
2 files changed, 125 insertions, 0 deletions
diff --git a/src/usr/sbeio/makefile b/src/usr/sbeio/makefile
index d5b2326bc..54cc6f04e 100644
--- a/src/usr/sbeio/makefile
+++ b/src/usr/sbeio/makefile
@@ -34,6 +34,7 @@ EXTRAINCDIR += ${ROOTPATH}/src/import/chips/p9/procedures/hwp/ffdc
EXTRAINCDIR += ${ROOTPATH}/src/import/chips/p9/procedures/hwp/perv
OBJS += sbe_psudd.o
+OBJS += sbe_utils.o
OBJS += sbe_coreStateControl.o
OBJS += sbe_psuQuiesce.o
OBJS += sbe_stashKeyAddr.o
diff --git a/src/usr/sbeio/sbe_utils.C b/src/usr/sbeio/sbe_utils.C
new file mode 100644
index 000000000..1bad658a7
--- /dev/null
+++ b/src/usr/sbeio/sbe_utils.C
@@ -0,0 +1,124 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/usr/sbeio/sbe_utils.C $ */
+/* */
+/* OpenPOWER HostBoot Project */
+/* */
+/* Contributors Listed Below - COPYRIGHT 2017 */
+/* [+] International Business Machines Corp. */
+/* */
+/* */
+/* Licensed under the Apache License, Version 2.0 (the "License"); */
+/* you may not use this file except in compliance with the License. */
+/* You may obtain a copy of the License at */
+/* */
+/* http://www.apache.org/licenses/LICENSE-2.0 */
+/* */
+/* Unless required by applicable law or agreed to in writing, software */
+/* distributed under the License is distributed on an "AS IS" BASIS, */
+/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or */
+/* implied. See the License for the specific language governing */
+/* permissions and limitations under the License. */
+/* */
+/* IBM_PROLOG_END_TAG */
+/**
+* @file sbe_psudd.C
+* @brief SBE PSU device driver
+*/
+
+#include <sbeio/sbe_utils.H>
+extern trace_desc_t* g_trac_sbeio;
+
+#define VIRTUAL_CHIPLET_ID_BASE_MCS_TARGET_TYPE (0x80)
+
+namespace SBEIO
+{
+ /// @brief translates HB target types to SBE target type groups
+ /// @param[in] i_hbTarget includes the HB target type
+ /// @return SBE_TARGET_TYPES returns SBE_TARGET_TYPE_UNKNOWN in error
+ SBE_TARGET_TYPES translateToSBETargetType(TARGETING::Target *i_hbTarget)
+ {
+ TRACDCOMP( g_trac_sbeio,
+ ENTER_MRK "entering translateToSBETargetType()");
+ SBE_TARGET_TYPES sbeType;
+ sbeType = SBE_TARGET_TYPE_UNKNOWN;
+
+ switch( i_hbTarget->getAttr<TARGETING::ATTR_TYPE>())
+ {
+ case(TARGETING::TYPE_PROC):
+ {
+ sbeType = SBE_TARGET_TYPE_PROC;
+ break;
+ }
+ case(TARGETING::TYPE_EX):
+ {
+ sbeType = SBE_TARGET_TYPE_EX;
+ break;
+ }
+ case(TARGETING::TYPE_PERV):
+ case(TARGETING::TYPE_XBUS):
+ case(TARGETING::TYPE_MCBIST):
+ case(TARGETING::TYPE_OBUS):
+ case(TARGETING::TYPE_PCI):
+ case(TARGETING::TYPE_L2):
+ case(TARGETING::TYPE_L3):
+ case(TARGETING::TYPE_L4):
+ case(TARGETING::TYPE_CORE):
+ {
+ sbeType = SBE_TARGET_TYPE_PERV;
+ break;
+ }
+ case(TARGETING::TYPE_MCS):
+ {
+ sbeType = SBE_TARGET_TYPE_MCS;
+ break;
+ }
+ default:
+ TRACFCOMP( g_trac_sbeio,
+ ERR_MRK "translateToSBETargetType:>"
+ " Not supported Target type =%.8X ",
+ i_hbTarget->getAttr<TARGETING::ATTR_TYPE>() );
+ break;
+ }
+ TRACDCOMP( g_trac_sbeio, EXIT_MRK "exiting translateToSBETargetType()");
+ return sbeType;
+ }
+
+ /// @brief returns a ChipletID for a give target
+ /// @param[in] i_hbTarget includes the HB target type
+ /// @return: ChipletID for i_hbTarget target
+ uint8_t getChipletIDForSBE(TARGETING::Target * i_hbTarget)
+ {
+ uint8_t l_chipletID = 0;
+ TRACDCOMP( g_trac_sbeio, ENTER_MRK "entering getChipletIDForSBE()");
+
+ //based on the Host to SBE Interface specification ver 0.70+
+ switch( i_hbTarget->getAttr<TARGETING::ATTR_TYPE>())
+ {
+ case(TARGETING::TYPE_PROC):
+ { //not all targets will have CHIPLET_IDs
+ l_chipletID = 0;
+ break;
+ }
+ //MCS has a virtual Chiplet ID
+ case (TARGETING::TYPE_MCS):
+ {
+ l_chipletID = VIRTUAL_CHIPLET_ID_BASE_MCS_TARGET_TYPE
+ + static_cast<uint8_t>(i_hbTarget->
+ getAttr<TARGETING::ATTR_CHIP_UNIT>());
+ break;
+ }
+ default:
+ {
+ l_chipletID = static_cast<uint8_t>(i_hbTarget->
+ getAttr<TARGETING::ATTR_CHIPLET_ID>());
+ break;
+ }
+ }
+
+ TRACDCOMP( g_trac_sbeio, EXIT_MRK "exiting getChipletIDForSBE()");
+ return l_chipletID;
+ }
+
+} \ No newline at end of file
OpenPOWER on IntegriCloud