summaryrefslogtreecommitdiffstats
path: root/src/sbefw
diff options
context:
space:
mode:
authorOliver Morlok <MARQUARO@de.ibm.com>2018-02-14 20:51:35 +0100
committerSachin Gupta <sgupta2m@in.ibm.com>2018-02-16 12:50:09 -0500
commit56e408e085ca612a5bdf708edbc313fae6e6815d (patch)
tree59f258bd3ea450a6f72bda3f97055a19f4c39930 /src/sbefw
parentcce76062ef2fc25aa421db4d98892b5ea5b5afae (diff)
downloadtalos-sbe-56e408e085ca612a5bdf708edbc313fae6e6815d.tar.gz
talos-sbe-56e408e085ca612a5bdf708edbc313fae6e6815d.zip
Get a z compile working
Change-Id: I8ca342778fb8fb5e8019f6f50c1b36c2b675d668 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/54062 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Shakeeb A. Pasha B K <shakeebbk@in.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Sachin Gupta <sgupta2m@in.ibm.com>
Diffstat (limited to 'src/sbefw')
-rw-r--r--src/sbefw/app/z/Makefile63
-rw-r--r--src/sbefw/app/z/appzfiles.mk41
-rw-r--r--src/sbefw/app/z/chipop_table.C101
-rw-r--r--src/sbefw/app/z/ipl_table.C357
-rw-r--r--src/sbefw/app/z/sbecmdcntrldmt.C50
-rw-r--r--src/sbefw/app/z/sbecmdcntrldmt.H40
-rw-r--r--src/sbefw/app/z/sbecmdiplcontrol.C76
-rw-r--r--src/sbefw/app/z/sbecmdiplcontrol.H58
-rw-r--r--src/sbefw/core/sbeFFDC.C4
-rw-r--r--src/sbefw/core/sbeHostUtils.C5
-rw-r--r--src/sbefw/core/sbeMemAccessInterface.C7
11 files changed, 801 insertions, 1 deletions
diff --git a/src/sbefw/app/z/Makefile b/src/sbefw/app/z/Makefile
new file mode 100644
index 00000000..4464817e
--- /dev/null
+++ b/src/sbefw/app/z/Makefile
@@ -0,0 +1,63 @@
+# IBM_PROLOG_BEGIN_TAG
+# This is an automatically generated prolog.
+#
+# $Source: src/sbefw/app/z/Makefile $
+#
+# OpenPOWER sbe Project
+#
+# Contributors Listed Below - COPYRIGHT 2016,2018
+#
+#
+# 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
+#export P2P_ENABLE = 1
+
+ifneq ($(img_mem), seeprom)
+export SUB_OBJDIR = /sbefw/app/z_pibmem
+OBJS = $(addprefix $(OBJDIR)/, $(APPPOWERPIBMEM_OBJECTS))
+LIBNAME = libsbeappzpibmem
+else
+export SUB_OBJDIR = /sbefw/app/z_seeprom
+GCC-CFLAGS += -mlongcall
+GCC-DEFS += -D__SBEFW_SEEPROM__=1
+OBJS = $(addprefix $(OBJDIR)/, $(APPPOWERSEEPROM_OBJECTS))
+LIBNAME = libsbeappzseeprom
+endif
+
+include img_defs.mk
+include appzfiles.mk
+
+$(LIBNAME).a: $(OBJS)
+ $(AR) crs $(OBJDIR)/$(LIBNAME).a $(OBJDIR)/*.o
+
+.PHONY: clean sbeapppower
+sbeapppower: $(OBJS)
+
+$(OBJS) $(OBJS:.o=.d): | $(OBJDIR)
+
+$(OBJDIR):
+ mkdir -p $(OBJDIR)
+
+#clean the kernel directory first, then the application level clean
+clean:
+ rm -fr $(OBJDIR)
+
+ifneq ($(MAKECMDGOALS),clean)
+include $(OBJS:.o=.d)
+endif
+
+
+
+
+
diff --git a/src/sbefw/app/z/appzfiles.mk b/src/sbefw/app/z/appzfiles.mk
new file mode 100644
index 00000000..228bb22f
--- /dev/null
+++ b/src/sbefw/app/z/appzfiles.mk
@@ -0,0 +1,41 @@
+# IBM_PROLOG_BEGIN_TAG
+# This is an automatically generated prolog.
+#
+# $Source: src/sbefw/app/z/appzfiles.mk $
+#
+# OpenPOWER sbe Project
+#
+# Contributors Listed Below - COPYRIGHT 2015,2018
+#
+#
+# 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
+
+APPPOWERPIBMEM-CPP-SOURCES = chipop_table.C
+APPPOWERPIBMEM-CPP-SOURCES += ipl_table.C
+APPPOWERPIBMEM-CPP-SOURCES += sbecmdiplcontrol.C
+APPPOWERPIBMEM-CPP-SOURCES += sbecmdcntrldmt.C
+
+APPPOWERPIBMEM-C-SOURCES =
+APPPOWERPIBMEM-S-SOURCES =
+
+APPPOWERPIBMEM_OBJECTS = $(APPPOWERPIBMEM-C-SOURCES:.c=.o) $(APPPOWERPIBMEM-CPP-SOURCES:.C=.o) $(APPPOWERPIBMEM-S-SOURCES:.S=.o)
+
+APPPOWERSEEPROM-CPP-SOURCES = ipl_table.C
+APPPOWERSEEPROM-CPP-SOURCES += sbecmdiplcontrol.C
+
+APPPOWERSEEPROM-C-SOURCES =
+APPPOWERSEEPROM-S-SOURCES =
+
+APPPOWERSEEPROM_OBJECTS = $(APPPOWERSEEPROM-C-SOURCES:.c=.o) $(APPPOWERSEEPROM-CPP-SOURCES:.C=.o) $(APPPOWERSEEPROM-S-SOURCES:.S=.o)
diff --git a/src/sbefw/app/z/chipop_table.C b/src/sbefw/app/z/chipop_table.C
new file mode 100644
index 00000000..805459b0
--- /dev/null
+++ b/src/sbefw/app/z/chipop_table.C
@@ -0,0 +1,101 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/sbefw/app/z/chipop_table.C $ */
+/* */
+/* OpenPOWER sbe Project */
+/* */
+/* Contributors Listed Below - COPYRIGHT 2017,2018 */
+/* */
+/* */
+/* 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 */
+#include "sbecmdscomaccess.H"
+#include "sbecmdiplcontrol.H"
+#include "sbecmdgeneric.H"
+#include "sbecmdmemaccess.H"
+#include "sbecmdregaccess.H"
+#include "sbecmdcntrldmt.H"
+#include "sbecmdringaccess.H"
+#include "sbecmdsram.H"
+#include "sbecmdcntlinst.H"
+#include "sbecmdringaccess.H"
+#include "sbetrace.H"
+#include "sbe_sp_intf.H"
+#include "sbeHostMsg.H"
+#include "sbe_host_intf.H"
+#include "sbestates.H"
+#include "sberegaccess.H"
+#include "sbecmdmpipl.H"
+#include "sbecmdtracearray.H"
+#include "sbecmdCntrlTimer.H"
+#include "sbecmdfastarray.H"
+
+#include "core/chipop_handler.H"
+
+#include "power/istep.H"
+
+static const uint16_t HARDWARE_FENCED_STATE =
+ SBE_FENCE_AT_CONTINUOUS_IPL|SBE_FENCE_AT_DMT;
+
+static const uint16_t PUT_HARDWARE_FENCED_STATE =
+ HARDWARE_FENCED_STATE|SBE_FENCE_AT_MPIPL;
+
+////////////////////////////////////////////////////////////////
+// @brief g_sbeScomCmdArray
+////////////////////////////////////////////////////////////////
+CMD_ARR(
+ A2,
+ {SBE_COMMON::sbeGetScom,
+ SBE_CMD_GETSCOM,
+ HARDWARE_FENCED_STATE,
+ },
+ {SBE_COMMON::sbePutScom,
+ SBE_CMD_PUTSCOM,
+ HARDWARE_FENCED_STATE,
+ },
+ {SBE_COMMON::sbeModifyScom,
+ SBE_CMD_MODIFYSCOM,
+ HARDWARE_FENCED_STATE,
+ },
+ {SBE_COMMON::sbePutScomUnderMask,
+ SBE_CMD_PUTSCOM_MASK,
+ HARDWARE_FENCED_STATE,
+ },
+ {SBE_COMMON::sbeMultiScom,
+ SBE_CMD_MULTISCOM,
+ HARDWARE_FENCED_STATE,
+ }
+)
+
+////////////////////////////////////////////////////////////////
+// @brief g_sbeIplControlCmdArray
+//
+////////////////////////////////////////////////////////////////
+/*CMD_ARR(
+ A1,
+ {SBEAPP_POWER::sbeHandleIstep,
+ SBE_CMD_EXECUTE_ISTEP,
+ HARDWARE_FENCED_STATE|SBE_FENCE_AT_DUMPING,
+ },
+ {sbeHandleSuspendIO,
+ SBE_CMD_SUSPEND_IO,
+ SBE_FENCE_AT_DUMPING,
+ }
+)*/
+
+
+
+// Mandatory macro inclusion
+CMD_CLASS_DEFAULT_INTIALISATION
diff --git a/src/sbefw/app/z/ipl_table.C b/src/sbefw/app/z/ipl_table.C
new file mode 100644
index 00000000..cb859288
--- /dev/null
+++ b/src/sbefw/app/z/ipl_table.C
@@ -0,0 +1,357 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/sbefw/app/z/ipl_table.C $ */
+/* */
+/* OpenPOWER sbe Project */
+/* */
+/* Contributors Listed Below - COPYRIGHT 2017,2018 */
+/* */
+/* */
+/* 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 */
+#include "core/ipl.H"
+
+#include "sbecmdiplcontrol.H"
+#include "sbefifo.H"
+#include "sbetrace.H"
+#include "sbe_sp_intf.H"
+#include "sbeFifoMsgUtils.H"
+#include "assert.h"
+#include "sberegaccess.H"
+#include "sbestates.H"
+#include "sbecmdcntrldmt.H"
+#include "sbeglobals.H"
+// TODO Workaround
+#include "plat_target_parms.H"
+
+#include "fapi2.H"
+
+#include "sbeXipUtils.H" // For getting hbbl offset
+#include "sbeutil.H" // For getting SBE_TO_NEST_FREQ_FACTOR
+
+#include "sbeSecureMemRegionManager.H"
+
+// Forward declaration
+using namespace fapi2;
+
+// constants
+static const uint32_t SBE_ROLE_MASK = 0x00000002;
+static const uint32_t SBE_SYSTEM_QUIESCE_TIMEOUT_LOOP = 20000;
+
+static const uint64_t SBE_LQA_DELAY_HW_US = 1000000ULL; // 1ms
+static const uint64_t SBE_LQA_DELAY_SIM_CYCLES = 0x1ULL;
+
+// Bit-33 used to checkstop the system, Since this is directly getting inserted
+// will have to use bit (63-33) = 30th bit
+static const uint64_t N3_FIR_SYSTEM_CHECKSTOP_BIT = 30; // 63-33 = 30
+
+// Externs
+
+//Utility function to mask special attention
+extern ReturnCode maskSpecialAttn( const Target<TARGET_TYPE_CORE>& i_target );
+
+
+
+
+#ifndef __SBEFW_SEEPROM__
+/*
+ * --------------------------------------------- start PIBMEM CODE
+ */
+
+istepTableEntry_t istepTableEntries[] = {
+
+};
+
+REGISTER_ISTEP_TABLE(istepTableEntries)
+
+//----------------------------------------------------------------------------
+
+ReturnCode istepAttrSetup( voidfuncptr_t i_hwp)
+{
+ return performAttrSetup();
+}
+//----------------------------------------------------------------------------
+
+ReturnCode istepWithProc( voidfuncptr_t i_hwp)
+{
+ ReturnCode rc = FAPI2_RC_SUCCESS;
+ return rc;
+}
+//----------------------------------------------------------------------------
+
+ReturnCode istepHwpTpSwitchGears( voidfuncptr_t i_hwp)
+{
+ ReturnCode rc = FAPI2_RC_SUCCESS;
+ return rc;
+}
+
+//----------------------------------------------------------------------------
+
+ReturnCode istepNestFreq( voidfuncptr_t i_hwp)
+{
+ #define SBE_FUNC "istepNestFreq "
+ ReturnCode rc = FAPI2_RC_SUCCESS;
+ return rc;
+ #undef SBE_FUNC
+}
+
+//----------------------------------------------------------------------------
+
+ReturnCode istepSelectEx( voidfuncptr_t i_hwp)
+{
+ ReturnCode rc = FAPI2_RC_SUCCESS;
+ return rc;
+}
+
+//----------------------------------------------------------------------------
+ReturnCode istepWithEq( voidfuncptr_t i_hwp)
+{
+ ReturnCode rc = FAPI2_RC_SUCCESS;
+ return rc;
+}
+
+//----------------------------------------------------------------------------
+ReturnCode istepCacheInitf (voidfuncptr_t i_hwp )
+{
+ #define SBE_FUNC "istepCacheInitf"
+ SBE_ENTER(SBE_FUNC);
+ ReturnCode l_rc = FAPI2_RC_SUCCESS;
+ SBE_EXIT(SBE_FUNC);
+ return l_rc;
+ #undef SBE_FUNC
+}
+
+//----------------------------------------------------------------------------
+ReturnCode istepWithCore( voidfuncptr_t i_hwp)
+{
+ #define SBE_FUNC "istepWithCore"
+ ReturnCode rc = FAPI2_RC_SUCCESS;
+ return rc;
+ #undef SBE_FUNC
+}
+//----------------------------------------------------------------------------
+
+ReturnCode istepWithEqConditional( voidfuncptr_t i_hwp)
+{
+ SBE_ENTER("istepWithEqCondtional");
+ ReturnCode rc = FAPI2_RC_SUCCESS;
+ SBE_EXIT("istepWithEqCondtional");
+ return rc;
+}
+//----------------------------------------------------------------------------
+
+ReturnCode istepWithCoreConditional( voidfuncptr_t i_hwp)
+{
+ SBE_ENTER("istepWithCoreCondtional");
+ fapi2::Target<fapi2::TARGET_TYPE_SYSTEM > sysTgt;
+ ReturnCode rc = FAPI2_RC_SUCCESS;
+ do
+ {
+ uint8_t iplPhase = ENUM_ATTR_SYSTEM_IPL_PHASE_HB_IPL;
+ FAPI_ATTR_GET(ATTR_SYSTEM_IPL_PHASE, sysTgt, iplPhase);
+ if( ENUM_ATTR_SYSTEM_IPL_PHASE_CACHE_CONTAINED == iplPhase )
+ {
+ break;
+ }
+ rc = istepWithCore(i_hwp);
+ }while(0);
+ SBE_EXIT("istepWithCoreCondtional");
+ return rc;
+}
+
+//----------------------------------------------------------------------------
+constexpr uint32_t HB_MEM_WINDOW_SIZE = 10*1024*1024; //10 MB
+ReturnCode istepLoadBootLoader( voidfuncptr_t i_hwp)
+{
+ ReturnCode rc = FAPI2_RC_SUCCESS;
+ return rc;
+}
+
+//----------------------------------------------------------------------------
+
+ReturnCode istepStartInstruction( voidfuncptr_t i_hwp)
+{
+ ReturnCode rc = FAPI2_RC_SUCCESS;
+ rc = istepWithCore(i_hwp);
+ if(rc == FAPI2_RC_SUCCESS)
+ {
+ (void)SbeRegAccess::theSbeRegAccess().stateTransition(
+ SBE_RUNTIME_EVENT);
+ }
+ return rc;
+}
+
+//----------------------------------------------------------------------------
+ReturnCode istepCheckSbeMaster( voidfuncptr_t i_hwp)
+{
+ #define SBE_FUNC "istepCheckSbeMaster "
+ ReturnCode rc = FAPI2_RC_SUCCESS;
+ return rc;
+ #undef SBE_FUNC
+}
+
+//----------------------------------------------------------------------------
+ReturnCode istepNoOp( voidfuncptr_t i_hwp)
+{
+ SBE_INFO("istepNoOp");
+ return FAPI2_RC_SUCCESS ;
+}
+
+//----------------------------------------------------------------------------
+ReturnCode istepLpcInit( voidfuncptr_t i_hwp)
+{
+ ReturnCode rc = FAPI2_RC_SUCCESS;
+ return rc;
+}
+/*
+ * end PIBMEMCODE -----------------------------------------------
+ */
+#endif // #ifndef __SBEFW_SEEPROM__
+
+#ifdef __SBEFW_SEEPROM__
+/*
+ * --------------------------------------------- start SEEPROM CODE
+ */
+//----------------------------------------------------------------------------
+ReturnCode istepWithCoreSetBlock( voidfuncptr_t i_hwp)
+{
+ #define SBE_FUNC "istepWithCoreSetBlock"
+ SBE_ENTER(SBE_FUNC);
+ ReturnCode l_rc = FAPI2_RC_SUCCESS;
+ SBE_EXIT(SBE_FUNC);
+ return l_rc;
+ #undef SBE_FUNC
+}
+
+//----------------------------------------------------------------------------
+ReturnCode istepWithCoreState( voidfuncptr_t i_hwp)
+{
+ #define SBE_FUNC "istepWithCoreState"
+ SBE_ENTER(SBE_FUNC);
+ ReturnCode l_rc = FAPI2_RC_SUCCESS;
+ SBE_EXIT(SBE_FUNC);
+ return l_rc;
+ #undef SBE_FUNC
+}
+
+//----------------------------------------------------------------------------
+ReturnCode istepMpiplRstClrTpmBits( voidfuncptr_t i_hwp)
+{
+ #define SBE_FUNC "istepMpiplRstClrTpmBits"
+ SBE_ENTER(SBE_FUNC);
+
+ ReturnCode l_rc = performTpmReset();
+ if( l_rc != FAPI2_RC_SUCCESS )
+ {
+ SBE_ERROR(SBE_FUNC" performTpmReset failed");
+ }
+
+ SBE_EXIT(SBE_FUNC);
+ return l_rc;
+ #undef SBE_FUNC
+}
+
+//----------------------------------------------------------------------------
+ReturnCode istepWithExL2Flush( voidfuncptr_t i_hwp)
+{
+ #define SBE_FUNC "istepWithExL2Flush"
+ SBE_ENTER(SBE_FUNC);
+ ReturnCode l_rc = FAPI2_RC_SUCCESS;
+ SBE_EXIT(SBE_FUNC);
+ return l_rc;
+ #undef SBE_FUNC
+}
+
+//----------------------------------------------------------------------------
+ReturnCode istepWithExL3Flush( voidfuncptr_t i_hwp)
+{
+ #define SBE_FUNC "istepWithExL3Flush"
+ SBE_ENTER(SBE_FUNC);
+ ReturnCode l_rc = FAPI2_RC_SUCCESS;
+ SBE_EXIT(SBE_FUNC);
+ return l_rc;
+ #undef SBE_FUNC
+}
+
+//----------------------------------------------------------------------------
+ReturnCode istepWithProcSequenceDrtm( voidfuncptr_t i_hwp)
+{
+ #define SBE_FUNC "istepWithProcSequenceDrtm"
+ SBE_ENTER(SBE_FUNC);
+ ReturnCode l_rc = FAPI2_RC_SUCCESS;
+ SBE_EXIT(SBE_FUNC);
+ return l_rc;
+ #undef SBE_FUNC
+}
+
+//----------------------------------------------------------------------------
+ReturnCode istepStartMpipl( voidfuncptr_t i_hwp)
+{
+ #define SBE_FUNC "istepStartMpipl"
+ SBE_ENTER(SBE_FUNC);
+ ReturnCode rc = FAPI2_RC_SUCCESS;
+ SBE_EXIT(SBE_FUNC);
+ return rc;
+ #undef SBE_FUNC
+}
+
+//----------------------------------------------------------------------------
+ReturnCode istepMpiplQuadPoweroff( voidfuncptr_t i_hwp)
+{
+ #define SBE_FUNC "istepMpiplQuadPoweroff"
+ SBE_ENTER(SBE_FUNC);
+ ReturnCode l_rc = FAPI2_RC_SUCCESS;
+ SBE_EXIT(SBE_FUNC);
+ return l_rc;
+ #undef SBE_FUNC
+}
+
+//----------------------------------------------------------------------------
+ReturnCode istepWithProcQuiesceLQASet( voidfuncptr_t i_hwp )
+{
+ #define SBE_FUNC "istepWithProcQuiesceLQASet"
+ SBE_ENTER(SBE_FUNC);
+ ReturnCode l_rc = FAPI2_RC_SUCCESS;
+ SBE_EXIT(SBE_FUNC);
+ return l_rc;
+ #undef SBE_FUNC
+}
+
+//----------------------------------------------------------------------------
+ReturnCode istepMpiplSetFunctionalState( voidfuncptr_t i_hwp )
+{
+ #define SBE_FUNC "istepMpiplSetFunctionalState"
+ SBE_ENTER(SBE_FUNC);
+ ReturnCode rc = FAPI2_RC_SUCCESS;
+ SBE_EXIT(SBE_FUNC);
+ return rc;
+ #undef SBE_FUNC
+}
+
+//----------------------------------------------------------------------------
+ReturnCode istepStopClockMpipl( voidfuncptr_t i_hwp )
+{
+ #define SBE_FUNC "istepStopClockMpipl"
+ SBE_ENTER(SBE_FUNC);
+ uint32_t l_fapiRc = FAPI2_RC_SUCCESS;
+ SBE_EXIT(SBE_FUNC);
+ return l_fapiRc;
+ #undef SBE_FUNC
+}
+
+/*
+ * end SEEPROM CODE --------------------------------------------------
+ */
+#endif // ifdef __SBEFW_SEEPROM__
diff --git a/src/sbefw/app/z/sbecmdcntrldmt.C b/src/sbefw/app/z/sbecmdcntrldmt.C
new file mode 100644
index 00000000..d3b7e919
--- /dev/null
+++ b/src/sbefw/app/z/sbecmdcntrldmt.C
@@ -0,0 +1,50 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/sbefw/app/z/sbecmdcntrldmt.C $ */
+/* */
+/* OpenPOWER sbe Project */
+/* */
+/* Contributors Listed Below - COPYRIGHT 2016,2018 */
+/* */
+/* */
+/* 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/sbefw/sbecmdcntrldmt.C
+ *
+ * @brief This file contains the Core State Control Messages
+ *
+ */
+
+#include "sbecmdcntrldmt.H"
+#include "sbetrace.H"
+#include "fapi2.H"
+#include "sbeFFDC.H"
+
+using namespace fapi2;
+
+
+/////////////////////////////////////////////////////////////////////
+/////////////////////////////////////////////////////////////////////
+uint32_t sbeCollectDeadmanFfdc (void)
+{
+ #define SBE_FUNC "sbeCollectDeadmanFfdc"
+ uint32_t rc = SBE_SEC_COMMAND_NOT_SUPPORTED;
+
+ // trace the saved aync ffdc reason and SBE
+
+ return rc;
+ #undef SBE_FUNC
+}
diff --git a/src/sbefw/app/z/sbecmdcntrldmt.H b/src/sbefw/app/z/sbecmdcntrldmt.H
new file mode 100644
index 00000000..9949486c
--- /dev/null
+++ b/src/sbefw/app/z/sbecmdcntrldmt.H
@@ -0,0 +1,40 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/sbefw/app/z/sbecmdcntrldmt.H $ */
+/* */
+/* OpenPOWER sbe Project */
+/* */
+/* Contributors Listed Below - COPYRIGHT 2016,2018 */
+/* */
+/* */
+/* 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: ppe/sbe/sbefw/sbecmdcntrldmt.H
+ *
+ * @brief This file contains the Core State Control Messages API header
+ *
+ */
+
+#ifndef __SBEFW_SBECMDCNTRLDMT_H
+#define __SBEFW_SBECMDCNTRLDMT_H
+
+#include <stdint.h>
+
+
+uint32_t sbeCollectDeadmanFfdc (void);
+
+
+#endif // __SBEFW_SBECMDCNTRLDMT_H
diff --git a/src/sbefw/app/z/sbecmdiplcontrol.C b/src/sbefw/app/z/sbecmdiplcontrol.C
new file mode 100644
index 00000000..bd37a845
--- /dev/null
+++ b/src/sbefw/app/z/sbecmdiplcontrol.C
@@ -0,0 +1,76 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/sbefw/app/z/sbecmdiplcontrol.C $ */
+/* */
+/* OpenPOWER sbe Project */
+/* */
+/* Contributors Listed Below - COPYRIGHT 2015,2018 */
+/* */
+/* */
+/* 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: ppe/sbe/sbefw/sbecmdiplcontrol.C
+ *
+ * @brief This file contains the SBE istep chipOps
+ *
+ */
+#include "sbecmdiplcontrol.H"
+#include "sbefifo.H"
+#include "sbetrace.H"
+#include "sbe_sp_intf.H"
+#include "sbeFifoMsgUtils.H"
+#include "assert.h"
+#include "sberegaccess.H"
+#include "sbestates.H"
+#include "sbecmdcntrldmt.H"
+#include "sbeglobals.H"
+// TODO Workaround
+#include "plat_target_parms.H"
+
+using namespace fapi2;
+
+static const uint32_t PEC_PHB_IOVALID_BIT_SHIFT = 59;
+static const uint64_t PEC_PHB_IOVALID_BIT_MASK = 0x1ULL;
+
+#ifdef __SBEFW_SEEPROM__
+/* ----------------------------------- start SEEPROM CODE */
+//Utility function to mask special attention
+//----------------------------------------------------------------------------
+/* end SEEPROM CODE ----------------------------- */
+#endif // ifdef __SBEFW_SEEPROM__
+
+#ifndef __SBEFW_SEEPROM__
+/* ----------------------------------- start PIBMEM CODE */
+
+
+//----------------------------------------------------------------------------
+
+ReturnCode performAttrSetup( )
+{
+ #define SBE_FUNC "performAttrSetup "
+ SBE_ENTER("performAttrSetup ");
+ ReturnCode rc = FAPI2_RC_SUCCESS;
+ do
+ {
+
+ }while(0);
+ SBE_EXIT(SBE_FUNC);
+ return rc;
+ #undef SBE_FUNC
+}
+
+/* end PIBMEM CODE ----------------------------- */
+#endif //#ifndef __SBEFW_SEEPROM__
diff --git a/src/sbefw/app/z/sbecmdiplcontrol.H b/src/sbefw/app/z/sbecmdiplcontrol.H
new file mode 100644
index 00000000..b6a60334
--- /dev/null
+++ b/src/sbefw/app/z/sbecmdiplcontrol.H
@@ -0,0 +1,58 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/sbefw/app/z/sbecmdiplcontrol.H $ */
+/* */
+/* OpenPOWER sbe Project */
+/* */
+/* Contributors Listed Below - COPYRIGHT 2015,2018 */
+/* */
+/* */
+/* 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: ppe/sbe/sbefw/sbecmdiplcontrol.H
+ *
+ * @brief This file contains the SBE command details
+ *
+ */
+
+#ifndef __SBEFW_SBECMDIPLCONTROL_H
+#define __SBEFW_SBECMDIPLCONTROL_H
+
+#include <stdint.h>
+#include "sbecmdgeneric.H"
+#include "fapi2.H"
+
+/**
+ * @brief execute suspend IO chip-op (0xA102)
+ *
+ * @param[in] i_pArg Buffer to be passed to the function (not used as of now)
+ *
+ * @return Rc from the FIFO access utility
+ */
+uint32_t sbeHandleSuspendIO(uint8_t *i_pArg);
+
+// Utility function to do TPM reset
+fapi2::ReturnCode performTpmReset();
+
+//Utility function to update PHB functional State
+fapi2::ReturnCode updatePhbFunctionalState( void );
+
+//Utility function to clear crest error latch
+fapi2::ReturnCode resetCrespErrLatch( void );
+
+fapi2::ReturnCode performAttrSetup( void );
+
+#endif // __SBEFW_SBECMDIPLCONTROL_H
diff --git a/src/sbefw/core/sbeFFDC.C b/src/sbefw/core/sbeFFDC.C
index b83b54dc..10c301f5 100644
--- a/src/sbefw/core/sbeFFDC.C
+++ b/src/sbefw/core/sbeFFDC.C
@@ -180,6 +180,7 @@ uint32_t SbeFFDCPackage::sendOverHostIntf(const uint32_t i_fieldsConfig,
{
#define SBE_FUNC "sendOverHostIntf"
SBE_ENTER(SBE_FUNC);
+ #if HOST_INTERFACE_AVAILABLE
uint32_t rc = SBE_SEC_OPERATION_SUCCESSFUL;
uint32_t length = 0;
bool isLastAccess = false;
@@ -263,6 +264,9 @@ uint32_t SbeFFDCPackage::sendOverHostIntf(const uint32_t i_fieldsConfig,
SBE_INFO(SBE_FUNC" [%d] bytes sent",
SBE_GLOBAL->hostFFDCAddr.size - i_allocatedSize);
+ #else //HOST_INTERFACE_AVAILABLE
+ uint32_t rc = SBE_SEC_COMMAND_NOT_SUPPORTED;
+ #endif //HOST_INTERFACE_AVAILABLE
SBE_EXIT(SBE_FUNC);
return rc;
#undef SBE_FUNC
diff --git a/src/sbefw/core/sbeHostUtils.C b/src/sbefw/core/sbeHostUtils.C
index a8c087ec..d936953c 100644
--- a/src/sbefw/core/sbeHostUtils.C
+++ b/src/sbefw/core/sbeHostUtils.C
@@ -201,8 +201,10 @@ void sbePSUSendResponse(sbeSbe2PsuRespHdr_t &i_sbe2PsuRespHdr,
uint32_t &i_fapiRc,
uint32_t &io_rc)
{
+
#define SBE_FUNC "sbePSUSendResponse"
SBE_ENTER(SBE_FUNC);
+ #if HOST_INTERFACE_AVAILABLE
do
{
// Making sure the PSU access utility is functional
@@ -319,5 +321,8 @@ void sbePSUSendResponse(sbeSbe2PsuRespHdr_t &i_sbe2PsuRespHdr,
"SBE_HOST_PSU_MBOX_REG4");
}
} while(0);
+ #else
+ io_rc = SBE_SEC_COMMAND_NOT_SUPPORTED;
+ #endif
#undef SBE_FUNC
}
diff --git a/src/sbefw/core/sbeMemAccessInterface.C b/src/sbefw/core/sbeMemAccessInterface.C
index bb341f38..8b42137e 100644
--- a/src/sbefw/core/sbeMemAccessInterface.C
+++ b/src/sbefw/core/sbeMemAccessInterface.C
@@ -5,7 +5,8 @@
/* */
/* OpenPOWER sbe Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2016,2017 */
+/* Contributors Listed Below - COPYRIGHT 2016,2018 */
+/* [+] International Business Machines Corp. */
/* */
/* */
/* Licensed under the Apache License, Version 2.0 (the "License"); */
@@ -23,6 +24,8 @@
/* IBM_PROLOG_END_TAG */
#include "sbeMemAccessInterface.H"
+#ifdef HOST_INTERFACE_AVAILABLE
+
#ifdef SEEPROM_IMAGE
// Using Function pointer to force long call
p9_adu_access_FP_t p9_adu_access_hwp = &p9_adu_access;
@@ -268,3 +271,5 @@ void sbeMemAccessInterface::alignAccessWithBuffer()
}
#undef SBE_FUNC
}
+
+#endif
OpenPOWER on IntegriCloud