summaryrefslogtreecommitdiffstats
path: root/src/usr/sbeio/sbe_systemConfig.C
diff options
context:
space:
mode:
authorcrgeddes <crgeddes@us.ibm.com>2016-10-12 10:25:35 -0500
committerMatthew A. Ploetz <maploetz@us.ibm.com>2016-10-19 11:39:47 -0400
commit57e83ceb340b9cfb81205eef3d64f657f3636a38 (patch)
tree552d89262c1665c5eafaf676b73d72a247536189 /src/usr/sbeio/sbe_systemConfig.C
parent1495fc95c7075fb68d520939b93df7ec4ab35954 (diff)
downloadtalos-hostboot-57e83ceb340b9cfb81205eef3d64f657f3636a38.tar.gz
talos-hostboot-57e83ceb340b9cfb81205eef3d64f657f3636a38.zip
Add infrastructure for sending setSystemConfig cmd to SBE
The SBE needs to know about other PROCs in the sytem. To do this we are sending a 64 bit string that encodes the system configuration down to the SBE at the end of the IPL. This commit just sets up some of the infrastructure that will be needed to send the message. Change-Id: I1a4dfb4e54e043d94697fa809acf1eee8ba9f726 RTC: 160666 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/31069 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> Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com> Reviewed-by: Matthew A. Ploetz <maploetz@us.ibm.com>
Diffstat (limited to 'src/usr/sbeio/sbe_systemConfig.C')
-rw-r--r--src/usr/sbeio/sbe_systemConfig.C87
1 files changed, 87 insertions, 0 deletions
diff --git a/src/usr/sbeio/sbe_systemConfig.C b/src/usr/sbeio/sbe_systemConfig.C
new file mode 100644
index 000000000..64774c64c
--- /dev/null
+++ b/src/usr/sbeio/sbe_systemConfig.C
@@ -0,0 +1,87 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/usr/sbeio/sbe_systemConfig.C $ */
+/* */
+/* OpenPOWER HostBoot Project */
+/* */
+/* Contributors Listed Below - COPYRIGHT 2012,2016 */
+/* [+] 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_systemConfig.C
+* @brief System Configuartion Setup Messages to inform the SBE of other
+ procs in the system.
+*/
+
+#include <config.h>
+#include <trace/interface.H>
+#include <errl/errlmanager.H>
+#include <sbeio/sbeioif.H>
+#include <sbeio/sbe_psudd.H>
+
+extern trace_desc_t* g_trac_sbeio;
+
+#define SBE_TRACD(printf_string,args...) \
+TRACDCOMP(g_trac_sbeio,"coreStateControl: " printf_string,##args)
+
+#define SBE_TRACF(printf_string,args...) \
+TRACFCOMP(g_trac_sbeio,"coreStateControl: " printf_string,##args)
+
+namespace SBEIO
+{
+
+ /**
+ * @brief Set the system configuration on the SBE so it is aware of
+ * the other procs in the system
+ *
+ * @param[in] i_systemConfig uint64 where each bit represents a proc in that position
+ * Bit position ATTR_PROC_FABRIC_CHIP_ID + (8 * ATTR_PROC_FABRIC_GROUP_ID) = 1
+ * if that proc is present and functional.
+ *
+ * @return errlHndl_t Error log handle on failure.
+ *
+ */
+
+ errlHndl_t sendSystemConfig(const uint64_t i_systemConfig )
+ {
+ errlHndl_t errl = NULL;
+
+ SBE_TRACD(ENTER_MRK "sending system configuration from HB -> SBE i_systemConfig=0x%x",i_systemConfig);
+
+ psuCommand l_psuCommand(
+ SBE_REQUIRE_RESPONSE, //control flags
+ SBE_PSU_GENERIC_MESSAGE, //command class
+ SBE_CMD_CONTROL_SYSTEM_CONFIG); //command
+ psuResponse l_psuResponse;
+
+ // set up PSU command message
+ l_psuCommand.cd2_SetSystemConfig_SystemFabricIdMap = i_systemConfig;
+
+ errl = performPsuChipOp(&l_psuCommand,
+ &l_psuResponse,
+ MAX_PSU_SHORT_TIMEOUT_NS,
+ SBE_SYSTEM_CONFIG_REQ_USED_REGS,
+ SBE_SYSTEM_CONFIG_RSP_USED_REGS);
+
+ SBE_TRACD(EXIT_MRK "sendSystemConfig");
+
+ return errl;
+ };
+
+} //end namespace SBEIO
+
OpenPOWER on IntegriCloud