Skip to content

Commit

Permalink
Get a z compile working
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Oliver Morlok authored and sgupta2m committed Feb 16, 2018
1 parent cce7606 commit 56e408e
Show file tree
Hide file tree
Showing 18 changed files with 1,348 additions and 1 deletion.
6 changes: 6 additions & 0 deletions src/build/img_defs.mk
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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
Expand Down Expand Up @@ -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
Expand Down
95 changes: 95 additions & 0 deletions src/build/linkerscripts/z/linkloader.cmd
Original file line number Diff line number Diff line change
@@ -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;

}
43 changes: 43 additions & 0 deletions src/build/linkerscripts/z/linkotprom.cmd
Original file line number Diff line number Diff line change
@@ -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)}
}
104 changes: 104 additions & 0 deletions src/build/linkerscripts/z/linksbe.cmd
Original file line number Diff line number Diff line change
@@ -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;

}

0 comments on commit 56e408e

Please sign in to comment.