summaryrefslogtreecommitdiffstats
path: root/src/sbefw/sbeglobals.H
diff options
context:
space:
mode:
authorspashabk-in <shakeebbk@in.ibm.com>2017-03-09 01:20:04 -0600
committerSachin Gupta <sgupta2m@in.ibm.com>2017-03-20 11:02:35 -0400
commitbed103fa4c741d2c22764e45e496b3af5ea104ac (patch)
treeeff92b12a3a965f23396aaccf954f92118d2bb59 /src/sbefw/sbeglobals.H
parent8b4dd3ccc9b28c1d62a4425e529161c2ca8bd729 (diff)
downloadtalos-sbe-bed103fa4c741d2c22764e45e496b3af5ea104ac.tar.gz
talos-sbe-bed103fa4c741d2c22764e45e496b3af5ea104ac.zip
Consolidating globals in SBE
Overall an increase in size of 88bytes Change-Id: I975ec1536bc2d8153772133d26f750688a849a70 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/37714 Reviewed-by: Sachin Gupta <sgupta2m@in.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Diffstat (limited to 'src/sbefw/sbeglobals.H')
-rw-r--r--src/sbefw/sbeglobals.H112
1 files changed, 112 insertions, 0 deletions
diff --git a/src/sbefw/sbeglobals.H b/src/sbefw/sbeglobals.H
new file mode 100644
index 00000000..26f89391
--- /dev/null
+++ b/src/sbefw/sbeglobals.H
@@ -0,0 +1,112 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/sbefw/sbeglobals.H $ */
+/* */
+/* OpenPOWER sbe 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 */
+#ifndef __SBE_GLOBALS_H
+#define __SBE_GLOBALS_H
+
+#include "sbeutil.H"
+#include "sbeSpMsg.H"
+#include "sbeHostMsg.H"
+#include "sbestates.H"
+#include "sbeexeintf.H"
+
+#define SBE_GLOBAL sbeGlobal
+
+class SBEGlobalsSingleton
+{
+ public:
+ // Disable copy contructor and assingment operator
+ SBEGlobalsSingleton(const SBEGlobalsSingleton&) = delete;
+ SBEGlobalsSingleton& operator=(const SBEGlobalsSingleton&) = delete;
+ static SBEGlobalsSingleton& getInstance();
+
+ sbeFifoCmdReqBuf_t sbeFifoCmdHdr;
+ sbeCmdRespHdr_t sbeCmdRespHdr;
+ sbePsu2SbeCmdReqHdr_t sbePsu2SbeCmdReqHdr;
+ sbeSbe2PsuRespHdr_t sbeSbe2PsuRespHdr;
+ sbeIntrHandle_t sbeIntrSource;
+ ////////////////////////////////////////////////////////////////
+ //// @brief Global semaphores
+ /////////////////////////////////////////////////////////////////
+ /**
+ * @brief Global semaphore : SBE_GLOBAL->sbeSemCmdRecv
+ *
+ * This is used to synchronize between the ISR and
+ * the command receiver thread.
+ *
+ */
+ PkSemaphore sbeSemCmdRecv;
+ /**
+ * @brief Global semaphore : SBE_GLOBAL->sbeSemCmdProcess
+ *
+ * This is used to synchronize between command receiver thread
+ * and synchronous command processor thread.
+ *
+ */
+ PkSemaphore sbeSemCmdProcess;
+ sbeRole SBERole;
+ // SBE Frequency. Initially nest frequency is 133 MHZ
+ uint32_t sbefreq;
+
+ ////////////////////////////////////////////////////////////////
+ //// @brief Stacks for Non-critical Interrupts and Threads
+ //////////////////////////////////////////////////////////////////
+ uint8_t sbe_Kernel_NCInt_stack[SBE_NONCRITICAL_STACK_SIZE];
+ uint8_t sbeCommandReceiver_stack[SBE_THREAD_CMD_RECV_STACK_SIZE];
+ uint8_t sbeSyncCommandProcessor_stack[SBE_THREAD_SYNC_CMD_PROC_STACK_SIZE];
+ uint8_t sbeAsyncCommandProcessor_stack[SBE_THREAD_ASYNC_CMD_PROC_STACK_SIZE];
+
+ ////////////////////////////////////////////////////////////////
+ //// @brief PkThread structure for SBE Command Receiver thread
+ //////////////////////////////////////////////////////////////////
+ PkThread sbeCommandReceiver_thread;
+ ////////////////////////////////////////////////////////////////
+ //// @brief PkThread structure for SBE Synchronous ChipOps
+ //// processing thread
+ //////////////////////////////////////////////////////////////////
+ PkThread sbeSyncCommandProcessor_thread;
+ ////////////////////////////////////////////////////////////////
+ ////// @brief PkThread structure for SBE Asynchronous ChipOps
+ ////// processing thread
+ //////////////////////////////////////////////////////////////////
+ PkThread sbeAsyncCommandProcessor_thread;
+ private:
+ /* Constructor
+ */
+ SBEGlobalsSingleton():
+ sbeFifoCmdHdr(),
+ sbeCmdRespHdr(),
+ sbePsu2SbeCmdReqHdr(),
+ sbeSbe2PsuRespHdr(),
+ sbeIntrSource(),
+ sbeSemCmdRecv(),
+ sbeSemCmdProcess(),
+ SBERole(SBE_ROLE_MASTER),
+ sbefreq(( 133 * 1000 * 1000)/SBE::SBE_TO_NEST_FREQ_FACTOR)
+ {
+ }
+};
+extern SBEGlobalsSingleton* sbeGlobal;
+#endif //__SBE_GLOBALS_H
+
OpenPOWER on IntegriCloud