summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/build/Makefile20
-rw-r--r--src/build/img_defs.mk10
l---------src/build/import_hwp_mk/power_axone1
-rwxr-xr-xsrc/build/linkerscripts/power_axone/linkloader.cmd95
-rw-r--r--src/build/linkerscripts/power_axone/linkotprom.cmd43
-rw-r--r--src/build/linkerscripts/power_axone/linkseeprom.cmd203
-rw-r--r--src/build/power_axone_defs.mk99
7 files changed, 460 insertions, 11 deletions
diff --git a/src/build/Makefile b/src/build/Makefile
index d144fcc7..61ed136a 100644
--- a/src/build/Makefile
+++ b/src/build/Makefile
@@ -30,7 +30,7 @@ ifndef img
export img = seeprom
endif
-# pass argument project=power/zthemis
+# pass argument project=power/power_axone/zthemis
# By default power image is built
ifndef project
export project = power
@@ -56,6 +56,7 @@ LIB_DIRS += -L$(OBJDIR)/sbefw/core_pibmem
SBECORELIB := $(OBJDIR)/sbefw/core_pibmem/libsbecorepibmem.a
LLIBS += -lsbecorepibmem
+SEEPROM_SUBDIRS += targetseeprom_../sbefw/core
LIB_DIRS += -L$(OBJDIR)/sbefw/core_seeprom
SBECORESEEPROMLIB := $(OBJDIR)/sbefw/core_seeprom/libsbecoreseeprom.a
LLIBS += -lsbecoreseeprom
@@ -65,6 +66,7 @@ LIB_DIRS += -L$(OBJDIR)/sbefw/app/$(PROJECT_APP_DIR)_pibmem
SBEAPPLIB := $(OBJDIR)/sbefw/app/$(PROJECT_APP_DIR)_pibmem/lib$(PROJECT_APP_PIBMEM_LIB).a
LLIBS += -l$(PROJECT_APP_PIBMEM_LIB)
+SEEPROM_SUBDIRS += targetseeprom_../sbefw/app/$(PROJECT_APP_DIR)
LIB_DIRS += -L$(OBJDIR)/sbefw/app/$(PROJECT_APP_DIR)_seeprom
SBECORESEEPROMLIB := $(OBJDIR)/sbefw/app/$(PROJECT_APP_DIR)_seeprom/lib$(PROJECT_APP_SEEPROM_LIB).a
LLIBS += -l$(PROJECT_APP_SEEPROM_LIB)
@@ -74,6 +76,7 @@ LIB_DIRS += -L$(OBJDIR)/sbefw/app/common_pibmem
SBEAPPLIB := $(OBJDIR)/sbefw/app/common_pibmem/libsbeappcommonpibmem.a
LLIBS += -lsbeappcommonpibmem
+SEEPROM_SUBDIRS += targetseeprom_../sbefw/app/common
LIB_DIRS += -L$(OBJDIR)/sbefw/app/common_seeprom
SBECORESEEPROMLIB := $(OBJDIR)/sbefw/app/common_seeprom/libsbeappcommonseeprom.a
LLIBS += -lsbeappcommonseeprom
@@ -84,6 +87,7 @@ LIB_DIRS += -L$(OBJDIR)/fapi2
FAPI2LIB := $(OBJDIR)/fapi2/libfapi2.a
LLIBS += -lfapi2
+SEEPROM_SUBDIRS += targetseeprom_$(PLAT_FAPI2_DIR)
LIB_DIRS += -L$(OBJDIR)/fapi2_seeprom
FAPI2LIB := $(OBJDIR)/fapi2/libfapi2seeprom.a
LLIBS += -lfapi2seeprom
@@ -142,7 +146,7 @@ $(IMG_DIR)/$(IMAGE_SEEPROM_NAME).bin $(IMG_DIR)/$(IMAGE_SEEPROM_NAME).dis: $(IMG
$(OBJDUMP) -S $< > $(IMG_DIR)/$(IMAGE_SEEPROM_NAME).dis
#create a linked ELF executable
-$(IMG_DIR)/$(IMAGE_SEEPROM_NAME).out: ppe_trace_bin buildInfo $(SUBDIRS) _seeprom_libs $(LINK_OBJS) $(LINK_SCRIPT_SEEPROM)
+$(IMG_DIR)/$(IMAGE_SEEPROM_NAME).out: ppe_trace_bin buildInfo $(SUBDIRS) $(SEEPROM_SUBDIRS) $(LINK_OBJS) $(LINK_SCRIPT_SEEPROM)
$(LD) -n -T$(LINK_SCRIPT_SEEPROM) -Map $(IMG_DIR)/$(IMAGE_SEEPROM_NAME).map \
-Bstatic -o $(IMG_DIR)/$(IMAGE_SEEPROM_NAME).out $(BOOT_OBJDIR)/$(BOOT_OBJECTS) $(BUILDDATA_OBJDIR)/$(IMAGE_BASE_PPE_HEADER).o $(OBJS) $(LIB_DIRS) \
--start-group $(LLIBS) --end-group
@@ -162,7 +166,7 @@ $(IMG_DIR)/$(IMAGE_SBE_NAME).bin $(IMG_DIR)/$(IMAGE_SBE_NAME).dis: $(IMG_DIR)/$(
$(OBJDUMP) -S $< > $(IMG_DIR)/$(IMAGE_SBE_NAME).dis
# create a linked ELF executable
-$(IMG_DIR)/$(IMAGE_SBE_NAME).out: ppe_trace_bin buildInfo $(SUBDIRS) _seeprom_libs $(LINK_OBJS) $(LINK_SCRIPT_SBE)
+$(IMG_DIR)/$(IMAGE_SBE_NAME).out: ppe_trace_bin buildInfo $(SUBDIRS) $(SEEPROM_SUBDIRS) $(LINK_OBJS) $(LINK_SCRIPT_SBE)
$(LD) -e __system_reset -T$(LINK_SCRIPT_SBE) -Map $(IMG_DIR)/$(IMAGE_SBE_NAME).map -Bstatic -o $(IMG_DIR)/$(IMAGE_SBE_NAME).out $(LIB_DIRS) $(BUILDDATA_OBJDIR)/base_sbe_fixed.o --start-group $(LLIBS) --end-group
# pass the link command file through the C preprocessor to evaluate macros and remove comments
@@ -200,7 +204,7 @@ tar:
@echo "Generated simics.tar in Sbe images Directory"
.PHONY: all normalize compress defaultset appendloader add_LoaderAddr symbols report \
- appendoverrides xml security tracehash topfixedheaders $(SUBDIRS) _seeprom_libs \
+ appendoverrides xml security tracehash topfixedheaders $(SUBDIRS) $(SEEPROM_SUBDIRS) \
tar install
buildinfo: $(P9_XIP_TOOL) $(IMG_DIR)/$(IMAGE_SEEPROM_NAME).bin
@@ -266,12 +270,8 @@ platattr:
# Build the subdirectories
$(SUBDIRS):
$(MAKE) -I $(INCLUDES) -C $@ -f Makefile
-_seeprom_libs:
- $(MAKE) -I $(INCLUDES) -C ../hwpf -f Makefile img_mem=seeprom
- $(MAKE) -I $(INCLUDES) -C ../sbefw/core -f Makefile img_mem=seeprom
- $(MAKE) -I $(INCLUDES) -C ../sbefw/app/common -f Makefile img_mem=seeprom
- $(MAKE) -I $(INCLUDES) -C ../sbefw/app/$(PROJECT_APP_DIR) -f Makefile img_mem=seeprom
-
+$(SEEPROM_SUBDIRS):
+ $(MAKE) -I $(INCLUDES) -C $(subst targetseeprom_,, $@) -f Makefile img_mem=seeprom
#Build the SBE XIP Tools
$(SBE_TOOLS): $(P9_XIP_TOOL)
diff --git a/src/build/img_defs.mk b/src/build/img_defs.mk
index 24b82b95..cc22374e 100644
--- a/src/build/img_defs.mk
+++ b/src/build/img_defs.mk
@@ -172,7 +172,7 @@ export IMAGEPROCS_CEN_SRCDIR = $(IMPORT_SRCDIR)/chips/centaur/utils/imageProcs
endif
ifndef BASE_OBJDIR
-export BASE_OBJDIR = $(SBE_ROOT_DIR)/obj/$(IMAGE_SUFFIX)
+export BASE_OBJDIR = $(SBE_ROOT_DIR)/obj/$(project)/$(IMAGE_SUFFIX)
endif
ifndef TAR_OBJDIR
@@ -477,6 +477,10 @@ ifeq ($(SBE_S0_SUPPORT), 1)
GCC-DEFS += -D_S0_=$(SBE_S0_SUPPORT)
endif
+ifeq ($(project),power_axone)
+GCC-DEFS += -DSBE_AXONE_CONFIG
+endif
+
############################################################################
CFLAGS =
PPE-CFLAGS = $(CFLAGS) -c $(GCC-CFLAGS) $(PIPE-CFLAGS) $(GCC-O-LEVEL) $(INCLUDES)
@@ -496,6 +500,10 @@ ifeq ($(project),power)
include power_defs.mk
endif
+ifeq ($(project),power_axone)
+include power_axone_defs.mk
+endif
+
ifeq ($(project),z)
include z_defs.mk
endif
diff --git a/src/build/import_hwp_mk/power_axone b/src/build/import_hwp_mk/power_axone
new file mode 120000
index 00000000..7266847b
--- /dev/null
+++ b/src/build/import_hwp_mk/power_axone
@@ -0,0 +1 @@
+power \ No newline at end of file
diff --git a/src/build/linkerscripts/power_axone/linkloader.cmd b/src/build/linkerscripts/power_axone/linkloader.cmd
new file mode 100755
index 00000000..c10cf978
--- /dev/null
+++ b/src/build/linkerscripts/power_axone/linkloader.cmd
@@ -0,0 +1,95 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/build/linkerscripts/power_axone/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/power_axone/linkotprom.cmd b/src/build/linkerscripts/power_axone/linkotprom.cmd
new file mode 100644
index 00000000..59d9a37b
--- /dev/null
+++ b/src/build/linkerscripts/power_axone/linkotprom.cmd
@@ -0,0 +1,43 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/build/linkerscripts/power_axone/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/power_axone/linkseeprom.cmd b/src/build/linkerscripts/power_axone/linkseeprom.cmd
new file mode 100644
index 00000000..fc7e0ce4
--- /dev/null
+++ b/src/build/linkerscripts/power_axone/linkseeprom.cmd
@@ -0,0 +1,203 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/build/linkerscripts/power_axone/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* ) *\libfapi2seeprom.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_axone_defs.mk b/src/build/power_axone_defs.mk
new file mode 100644
index 00000000..172e185e
--- /dev/null
+++ b/src/build/power_axone_defs.mk
@@ -0,0 +1,99 @@
+# IBM_PROLOG_BEGIN_TAG
+# This is an automatically generated prolog.
+#
+# $Source: src/build/power_axone_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
+
+HOST_INTERFACE_AVAILABLE = 1
+PERIODIC_IO_TOGGLE_SUPPORTED = 1
+
+export SBE_S0_SUPPORT = 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
+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 := DD2
+GCC-DEFS += -DDD2
+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 := power
+PROJECT_APP_PIBMEM_LIB := sbeapppowerpibmem
+PROJECT_APP_SEEPROM_LIB := sbeapppowerseeprom
OpenPOWER on IntegriCloud