summaryrefslogtreecommitdiffstats
path: root/src
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
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')
-rw-r--r--src/build/img_defs.mk6
-rwxr-xr-xsrc/build/linkerscripts/z/linkloader.cmd95
-rw-r--r--src/build/linkerscripts/z/linkotprom.cmd43
-rw-r--r--src/build/linkerscripts/z/linksbe.cmd104
-rw-r--r--src/build/linkerscripts/z/linkseeprom.cmd203
-rw-r--r--src/build/power_defs.mk2
-rw-r--r--src/build/z_defs.mk94
-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
18 files changed, 1348 insertions, 1 deletions
diff --git a/src/build/img_defs.mk b/src/build/img_defs.mk
index aefe69ff..02839183 100644
--- a/src/build/img_defs.mk
+++ b/src/build/img_defs.mk
@@ -361,6 +361,7 @@ ifdef FAPI_TRACE_LEVEL_ENV
FAPI_TRACE_LEVEL_DEF = $(FAPI_TRACE_LEVEL_ENV)
endif
+
GCC-DEFS += -DIMAGE_NAME=$(IMAGE_SEEPROM_NAME)
GCC-DEFS += -DPK_TIMER_SUPPORT=$(PK_TIMER_SUPPORT)
GCC-DEFS += -DPK_THREAD_SUPPORT=$(PK_THREAD_SUPPORT)
@@ -376,6 +377,7 @@ GCC-DEFS += -DSBE_TRACE_LEVEL=$(SBE_TRACE_LEVEL_DEF)
GCC-DEFS += -DPLAT_NO_THREAD_LOCAL_STORAGE=1
# disable assert
GCC-DEFS += -DNDEBUG
+GCC-DEFS += -DHOST_INTERFACE_AVAILABLE=$(HOST_INTERFACE_AVAILABLE)
# use the default settings in the code unless a size is defined
ifdef PK_TRACE_SZ
@@ -484,6 +486,10 @@ ifeq ($(project),power)
include power_defs.mk
endif
+ifeq ($(project),z)
+include z_defs.mk
+endif
+
############################################################################
#override the GNU Make implicit rule for going from a .C to a .o
diff --git a/src/build/linkerscripts/z/linkloader.cmd b/src/build/linkerscripts/z/linkloader.cmd
new file mode 100755
index 00000000..61e6eecb
--- /dev/null
+++ b/src/build/linkerscripts/z/linkloader.cmd
@@ -0,0 +1,95 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/build/linkerscripts/z/linkloader.cmd $ */
+/* */
+/* 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 */
+
+// Need to do this so that elf32-powerpc is not modified!
+#undef powerpc
+
+#ifndef BASE_LOADER_STACK_SIZE
+#define BASE_LOADER_STACK_SIZE 6144
+#endif
+#include "sbe_link.H"
+
+OUTPUT_FORMAT(elf32-powerpc);
+
+MEMORY
+{
+ sram : ORIGIN = SBE_LOADER_BASE_ORIGIN, LENGTH = SBE_LOADER_BASE_LENGTH
+}
+
+SECTIONS
+{
+ . = SBE_LOADER_BASE_ORIGIN;
+
+ ////////////////////////////////
+ // Read-only Data
+ ////////////////////////////////
+
+ . = ALIGN(8);
+ _RODATA_SECTION_BASE = .;
+
+ .text . : { *(.text) } > sram
+ .data . : { *(.data) } > sram
+
+ // SDA2 constant sections .sdata2 and .sbss2 must be adjacent to each
+ // other. Our SDATA sections are small so we'll use strictly positive
+ // offsets.
+
+ _SDA2_BASE_ = .;
+ .sdata2 . : { *(.sdata2) } > sram
+ .sbss2 . : { *(.sbss2) } > sram
+
+ // Other read-only data.
+
+ .rodata . : { *(.rodata*) *(.got2) } > sram
+
+ _RODATA_SECTION_SIZE = . - _RODATA_SECTION_BASE;
+
+ ////////////////////////////////
+ // Read-write Data
+ ////////////////////////////////
+
+ . = ALIGN(8);
+ _DATA_SECTION_BASE = .;
+
+ // SDA sections .sdata and .sbss must be adjacent to each
+ // other. Our SDATA sections are small so we'll use strictly positive
+ // offsets.
+
+ _SDA_BASE_ = .;
+ .sdata . : { *(.sdata) } > sram
+ .sbss . : { *(.sbss) } > sram
+
+ // Other read-write data
+ // It's not clear why boot.S is generating empty .glink,.iplt
+
+ .rela . : { *(.rela*) } > sram
+ .rwdata . : { *(.data) *(.bss) } > sram
+
+ _BASE_LOADER_STACK_LIMIT = .;
+ _BASE_LOADER_STACK_LIMIT = . + BASE_LOADER_STACK_SIZE - 1;
+
+ . = ALIGN(8);
+ _loader_end = . - 0;
+
+}
diff --git a/src/build/linkerscripts/z/linkotprom.cmd b/src/build/linkerscripts/z/linkotprom.cmd
new file mode 100644
index 00000000..f68267be
--- /dev/null
+++ b/src/build/linkerscripts/z/linkotprom.cmd
@@ -0,0 +1,43 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/build/linkerscripts/z/linkotprom.cmd $ */
+/* */
+/* 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 */
+
+// Need to do this so that elf32-powerpc is not modified!
+#undef powerpc
+
+#include "sbe_link.H"
+
+OUTPUT_FORMAT(elf32-powerpc);
+
+MEMORY
+{
+ sram : ORIGIN = OTPROM_ORIGIN, LENGTH = OTPROM_BLOCK_SIZE
+}
+
+SECTIONS
+{
+ . = OTPROM_ORIGIN;
+ .text . : { *(.text)}
+ . = OTPROM_FIXED_SIZE;
+ .fixed . : { *(.fixed)}
+}
diff --git a/src/build/linkerscripts/z/linksbe.cmd b/src/build/linkerscripts/z/linksbe.cmd
new file mode 100644
index 00000000..e68f4688
--- /dev/null
+++ b/src/build/linkerscripts/z/linksbe.cmd
@@ -0,0 +1,104 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/build/linkerscripts/z/linksbe.cmd $ */
+/* */
+/* 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 */
+
+// Need to do this so that elf32-powerpc is not modified!
+#undef powerpc
+
+#ifndef INITIAL_STACK_SIZE
+#define INITIAL_STACK_SIZE 256
+#endif
+#include "sbe_link.H"
+
+OUTPUT_FORMAT(elf32-powerpc);
+
+MEMORY
+{
+ pibmem : ORIGIN = SBE_BASE_ORIGIN, LENGTH = SBE_BASE_LENGTH
+}
+
+SECTIONS
+{
+ . = SBE_BASE_ORIGIN;
+
+ .vectors : {. = ALIGN(512); *(.vectors)} > pibmem
+ .fixed . : {. = ALIGN(512); *(.fixed) } > pibmem
+ .text . : {. = ALIGN(512); *(.text)} > pibmem
+
+ ////////////////////////////////
+ // Read-only Data
+ ////////////////////////////////
+
+ . = ALIGN(8);
+ _RODATA_SECTION_BASE = .;
+
+ // SDA2 constant sections .sdata2 and .sbss2 must be adjacent to each
+ // other. Our SDATA sections are small so we'll use strictly positive
+ // offsets.
+
+ _SDA2_BASE_ = .;
+ .sdata2 . : { *(.sdata2*) } > pibmem
+ .sbss2 . : { *(.sbss2*) } > pibmem
+
+ // Other read-only data.
+
+ . = ALIGN(8);
+ .rodata . : { ctor_start_address = .;
+ *(.ctors) *(.ctors.*)
+ ctor_end_address = .;
+ *(rodata*) *(.got2) } > pibmem
+
+ _RODATA_SECTION_SIZE = . - _RODATA_SECTION_BASE;
+
+ ////////////////////////////////
+ // Read-write Data
+ ////////////////////////////////
+
+ . = ALIGN(8);
+ _DATA_SECTION_BASE = .;
+
+ // SDA sections .sdata and .sbss must be adjacent to each
+ // other. Our SDATA sections are small so we'll use strictly positive
+ // offsets.
+
+ _SDA_BASE_ = .;
+ .sdata . : { *(.sdata*) } > pibmem
+ _sbss_start = .;
+ .sbss . : { *(.sbss*) } > pibmem
+ _sbss_end = .;
+
+ // Other read-write data
+ // It's not clear why boot.S is generating empty .glink,.iplt
+
+ .rela . : { *(.rela*) } > pibmem
+ .rwdata . : { *(.data*) *(.bss*) } > pibmem
+
+ . = ALIGN(8);
+ _PK_INITIAL_STACK_LIMIT = .;
+ . = . + INITIAL_STACK_SIZE;
+ _PK_INITIAL_STACK = . - 1;
+
+ . = ALIGN(8);
+ _sbe_end = . - 0;
+
+}
diff --git a/src/build/linkerscripts/z/linkseeprom.cmd b/src/build/linkerscripts/z/linkseeprom.cmd
new file mode 100644
index 00000000..93d0c9e5
--- /dev/null
+++ b/src/build/linkerscripts/z/linkseeprom.cmd
@@ -0,0 +1,203 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/build/linkerscripts/z/linkseeprom.cmd $ */
+/* */
+/* 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 */
+// Need to do this so that elf32-powerpc is not modified!
+#undef powerpc
+#include "sbe_link.H"
+OUTPUT_FORMAT(elf32-powerpc);
+
+#ifndef INITIAL_STACK_SIZE
+#define INITIAL_STACK_SIZE 256
+#endif
+
+MEMORY
+{
+ pibmem : ORIGIN = SBE_BASE_ORIGIN, LENGTH = SBE_BASE_LENGTH
+ seeprom : ORIGIN = SBE_SEEPROM_BASE_ORIGIN, LENGTH = 0x40000
+}
+
+SECTIONS
+{
+ . = SBE_SEEPROM_BASE_ORIGIN;
+ _sbe_image_start_addr = . + SIZEOF_HEADERS;
+
+ // TODO via RTC 149153
+ // It seems first section in elf image is 8 byte aligned.
+ // We need to verify this assumption.
+
+ // Get 8 byte alligned address
+ _sbe_image_start_addr = ( ( _sbe_image_start_addr % 8) == 0 ) ? _sbe_image_start_addr : ( _sbe_image_start_addr + ( 8 - ( _sbe_image_start_addr % 8)));
+
+ // Get the image offset after elf header
+ _sbe_image_start_offset = _sbe_image_start_addr - .;
+ _seeprom_origin = . - 0;
+ _pibmem_origin = SBE_BASE_ORIGIN;
+
+ ////////////////////////////////
+ // Header
+ ////////////////////////////////
+ .header : {
+ _header_origin = .; _header_offset = . - _seeprom_origin; *(.header);
+ } > seeprom
+ _header_size = . - _header_origin;
+
+ // @TODO via RTC 136215
+ // We have used allignment 0x200 so that it can be found
+ // at fixed location. once otprom loader support is enabled.
+ // alligment will not be required.
+
+ ////////////////////////////////
+ // LOADER_TEXT
+ ////////////////////////////////
+ .loader_text ALIGN(0x200): {
+ _loader_text_origin = .; _loader_text_offset = . - _seeprom_origin;
+ *(.loader_text);
+ } > seeprom
+ _loader_text_size = . - _loader_text_origin;
+
+ // @TODO via RTC 136215
+ // loader_text section should come after fixed and related
+ // sections as we want fixed section at knowon offset. Currently we
+ // have shared SEEPROM start address ( IVPR register value ) with
+ // multiple teams. So keeping loader_text as first section. Once
+ // WE have otprom loader support, we will put loader_text at right
+ // position
+
+ ////////////////////////////////
+ // FIXED
+ ////////////////////////////////
+ .fixed ALIGN(0x200) : {
+ _fixed_origin = .; _fixed_offset = . - _seeprom_origin;
+ *(.fixed)
+ } > seeprom
+ _fixed_size = . - _fixed_origin;
+
+ ////////////////////////////////
+ // text
+ ////////////////////////////////
+ .text ALIGN(8): {
+ _text_origin = .; _text_offset = . - _seeprom_origin;
+ *\libistep2.a:(.text* ) *\libistep3.a:(.text* ) *\libistep4.a:(.text* ) *\libistepmpipl.a:(.text* ) *\libistep5.a:(.text* ) *\libsbecoreseeprom.a:(.text* ) *\libsbeapppowerseeprom.a:(.text* ) *\libsbeappcommonseeprom.a:(.text* ) } > seeprom
+ _text_size = . - _text_origin;
+
+ ////////////////////////////////
+ // FIXED_TOC
+ ////////////////////////////////
+ .fixed_toc ALIGN(8) : {
+ _fixed_toc_origin = .; _fixed_toc_offset = . - _seeprom_origin; *(.fixed_toc);
+ } > seeprom
+ _fixed_toc_size = . - _fixed_toc_origin;
+
+ ////////////////////////////////
+ // TOC
+ ////////////////////////////////
+ .toc ALIGN(4): {
+ _toc_origin = .; _toc_offset = . - _seeprom_origin; *(.toc);
+ } > seeprom
+ _toc_size = . - _toc_origin;
+
+ ////////////////////////////////
+ // STRING
+ ////////////////////////////////
+ .strings : {
+ _strings_origin = .; _strings_offset = . - _seeprom_origin; *(.strings);
+ } > seeprom
+ _strings_size = . - _strings_origin;
+
+ _seeprom_size = . - _seeprom_origin;
+
+ // TODO via RTC 149153
+ // It seems when we jump across memory region, elf creates 32 byte offset.
+ // We need to verify this assumption.
+
+ _seeprom_size_with_elf_hdr = _seeprom_size + _sbe_image_start_offset;
+ _seeprom_size = ( ( _seeprom_size_with_elf_hdr % 32) == 0 ) ? _seeprom_size : ( _seeprom_size + ( 32 - (_seeprom_size_with_elf_hdr % 32)));
+
+
+ . = _pibmem_origin;
+ _base_origin = .;
+ _base_offset = . - _base_origin + _seeprom_size;
+
+ .pkVectors ALIGN(32) : {
+ *(.vectors)
+ } > pibmem
+
+ .base . : {
+ *(.text*) *(.eh_frame) *(.dtors*);
+ } > pibmem
+
+ . = ALIGN(8);
+ _RODATA_SECTION_BASE = .;
+
+ // SDA2 constant sections .sdata2 and .sbss2 must be adjacent to each
+ // other. Our SDATA sections are small so we'll use strictly positive
+ // offsets.
+
+ _SDA2_BASE_ = .;
+ .sdata2 . : { *(.sdata2*) } > pibmem
+ .sbss2 . : { *(.sbss2*) } > pibmem
+
+ . = ALIGN(8);
+ .rodata . : {
+ ctor_start_address = .;
+ *(.ctors) *(.ctors.*)
+ ctor_end_address = .;
+ *(.rodata*) *(.got2);
+ } > pibmem
+ _RODATA_SECTION_SIZE = . - _RODATA_SECTION_BASE;
+
+
+ . = ALIGN(8); _DATA_SECTION_BASE = .;
+ _SDA_BASE_ = .;
+ .data . : {
+ *(.data*) *(.comment)
+ } > pibmem
+ .sdata . : { *(.sdata*) } > pibmem
+ . = ALIGN(8);
+
+ // We do not want to store bss section in sbe image as laoder will take
+ // care of it while loading image on PIBMEM. It will save us space in
+ // SEEPROM. So define XIP image related variables here so that SBE image
+ // finishes here.
+
+ _base_size = . - _base_origin;
+ _pibmem_size = . - _pibmem_origin;
+ _sbe_image_size = _seeprom_size + ( . - _pibmem_origin );
+
+ _sbss_start = .;
+ .sbss . : {
+ *(.bss*) *(.sbss*);
+ . = ALIGN(8);
+ } > pibmem
+ _sbss_end = .;
+
+ . = ALIGN(8);
+ _sbss_size = SIZEOF(.sbss);
+
+ . = ALIGN(8);
+ _PK_INITIAL_STACK_LIMIT = .;
+ . = . + INITIAL_STACK_SIZE;
+ _PK_INITIAL_STACK = . - 1;
+ . = ALIGN(8);
+
+}
diff --git a/src/build/power_defs.mk b/src/build/power_defs.mk
index f4d4f751..ca676b80 100644
--- a/src/build/power_defs.mk
+++ b/src/build/power_defs.mk
@@ -32,6 +32,8 @@ SBE_TRACE_LEVEL_DEF = 2
FAPI_TRACE_LEVEL_DEF = 2
+HOST_INTERFACE_AVAILABLE = 1
+
ISTEP2_INFRA_DIR = $(IMPORT_HWP_MK_DIR)/istep2
ISTEP3_INFRA_DIR = $(IMPORT_HWP_MK_DIR)/istep3
ISTEP4_INFRA_DIR = $(IMPORT_HWP_MK_DIR)/istep4
diff --git a/src/build/z_defs.mk b/src/build/z_defs.mk
new file mode 100644
index 00000000..980f8f91
--- /dev/null
+++ b/src/build/z_defs.mk
@@ -0,0 +1,94 @@
+# IBM_PROLOG_BEGIN_TAG
+# This is an automatically generated prolog.
+#
+# $Source: src/build/z_defs.mk $
+#
+# 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
+# Levels of SBE logging
+# 0 - No tracing
+# 1 - Error
+# 2 - Error, info
+# 3 - Error, info, entry/exit
+# 4 - Error, info, entry/exit, debug
+SBE_TRACE_LEVEL_DEF = 2
+
+FAPI_TRACE_LEVEL_DEF = 2
+
+#ISTEP2_INFRA_DIR = $(IMPORT_HWP_MK_DIR)/istep2
+#ISTEP3_INFRA_DIR = $(IMPORT_HWP_MK_DIR)/istep3
+#ISTEP4_INFRA_DIR = $(IMPORT_HWP_MK_DIR)/istep4
+#ISTEP5_INFRA_DIR = $(IMPORT_HWP_MK_DIR)/istep5
+#ISTEPMPIPL_INFRA_DIR = $(IMPORT_HWP_MK_DIR)/istepmpipl
+#ISTEPCOMMON_INFRA_DIR = $(IMPORT_HWP_MK_DIR)/istepcommon
+#ARRAYACCESS_INFRA_DIR = $(IMPORT_HWP_MK_DIR)/arrayaccess
+
+#OBJDIR-ISTEP2 = $(BASE_OBJDIR)/$(IMPORT_OBJDIR)/istep2
+#OBJDIR-ISTEP3 = $(BASE_OBJDIR)/$(IMPORT_OBJDIR)/istep3
+#OBJDIR-ISTEP4 = $(BASE_OBJDIR)/$(IMPORT_OBJDIR)/istep4
+#OBJDIR-ISTEP5 = $(BASE_OBJDIR)/$(IMPORT_OBJDIR)/istep5
+#OBJDIR-ISTEPMPIPL = $(BASE_OBJDIR)/$(IMPORT_OBJDIR)/istepmpipl
+#OBJDIR-ISTEPCOMMON = $(BASE_OBJDIR)/$(IMPORT_OBJDIR)/istepcommon
+#OBJDIR-ARRAYACCESS = $(BASE_OBJDIR)/arrayaccess
+
+#PROJ_SUBDIRS += $(ISTEP2_INFRA_DIR)
+#PROJ_LIB_DIRS += -L$(OBJDIR-ISTEP2)
+#PROJ_LLIBS += -listep2
+
+#PROJ_SUBDIRS += $(ISTEP3_INFRA_DIR)
+#PROJ_LIB_DIRS += -L$(OBJDIR-ISTEP3)
+#PROJ_LLIBS += -listep3
+
+#PROJ_SUBDIRS += $(ISTEP4_INFRA_DIR)
+#PROJ_LIB_DIRS += -L$(OBJDIR-ISTEP4)
+#PROJ_LLIBS += -listep4
+
+#PROJ_SUBDIRS += $(ISTEP5_INFRA_DIR)
+#PROJ_LIB_DIRS += -L$(OBJDIR-ISTEP5)
+#PROJ_LLIBS += -listep5
+
+#PROJ_SUBDIRS += $(ISTEPMPIPL_INFRA_DIR)
+#PROJ_LIB_DIRS += -L$(OBJDIR-ISTEPMPIPL)
+#PROJ_LLIBS += -listepmpipl
+
+#PROJ_SUBDIRS += $(ISTEPCOMMON_INFRA_DIR)
+#PROJ_LIB_DIRS += -L$(OBJDIR-ISTEPCOMMON)
+#PROJ_LLIBS += -listepcommon
+
+#PROJ_SUBDIRS += $(ARRAYACCESS_INFRA_DIR)
+#PROJ_LIB_DIRS += -L$(OBJDIR-ARRAYACCESS)
+#PROJ_LLIBS += -larrayaccess
+#########################################################
+# mandatory defines #
+#########################################################
+IMAGE_SUFFIX := DD1
+GCC-DEFS += -DDD1
+IMAGE_SEEPROM_NAME := sbe_seeprom_$(IMAGE_SUFFIX)
+IMAGE_SBE_NAME := sbe_pibmem_$(IMAGE_SUFFIX)
+
+IMAGE_LOADER_NAME := sbe_loader
+IMAGE_OTPROM_NAME := sbe_otprom_$(IMAGE_SUFFIX)
+IMAGE_BASE_PPE_HEADER := base_ppe_header
+
+SBE_SYMBOLS_NAME := sbe_$(IMAGE_SUFFIX).syms
+SBE_STRINGFILE_NAME := sbeStringFile_$(IMAGE_SUFFIX)
+
+PROJECT_APP_DIR := z
+PROJECT_APP_PIBMEM_LIB := sbeappzpibmem
+PROJECT_APP_SEEPROM_LIB := sbeappzseeprom
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