diff options
author | Shakeeb <shakeebbk@in.ibm.com> | 2016-09-16 11:56:24 -0500 |
---|---|---|
committer | AMIT J. TENDOLKAR <amit.tendolkar@in.ibm.com> | 2016-09-29 13:18:55 -0400 |
commit | 903d03d03e658837d0ef5944b36f2b100232cd62 (patch) | |
tree | 7565c50ca1062c68b398d717ac7be0d09d1dc145 /src/build | |
parent | 7ebc5456f9cd6efe03d9d17139f2f1a4aa3c5f77 (diff) | |
download | talos-sbe-903d03d03e658837d0ef5944b36f2b100232cd62.tar.gz talos-sbe-903d03d03e658837d0ef5944b36f2b100232cd62.zip |
PIBMEM Image support
Change-Id: I0a88f8963b28905791ddfe92ad649b1584a0b943
RTC:158600
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/29852
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: RAJA DAS <rajadas2@in.ibm.com>
Reviewed-by: Sachin Gupta <sgupta2m@in.ibm.com>
Reviewed-by: AMIT J. TENDOLKAR <amit.tendolkar@in.ibm.com>
Diffstat (limited to 'src/build')
-rw-r--r-- | src/build/Makefile | 25 | ||||
-rw-r--r-- | src/build/img_defs.mk | 18 | ||||
-rw-r--r-- | src/build/linkerscripts/linksbe.cmd | 28 |
3 files changed, 48 insertions, 23 deletions
diff --git a/src/build/Makefile b/src/build/Makefile index 11413045..f83fab18 100644 --- a/src/build/Makefile +++ b/src/build/Makefile @@ -98,15 +98,14 @@ LIB_DIRS += -L$(OBJDIR)/pm PMLIB := $(OBJDIR)/pm/libpm.a LLIBS += -lpm -SIMICS_PPE_TAR_FILES += $(IMG_DIR)/$(IMAGE_SBE_NAME).out -SIMICS_PPE_TAR_FILES += $(IMG_DIR)/$(IMAGE_SBE_NAME).map -SIMICS_PPE_TAR_FILES += $(IMG_DIR)/$(IMAGE_SBE_NAME).dis SIMICS_PPE_TAR_FILES += $(BOOT_OBJDIR)/$(IMAGE_LOADER_NAME).out SIMICS_PPE_TAR_FILES += $(BOOT_OBJDIR)/$(IMAGE_LOADER_NAME).map SIMICS_PPE_TAR_FILES += $(BOOT_OBJDIR)/$(IMAGE_LOADER_NAME).dis +ifeq ($(img), seeprom) SIMICS_PPE_TAR_FILES += $(IMG_DIR)/$(IMAGE_SEEPROM_NAME).out SIMICS_PPE_TAR_FILES += $(IMG_DIR)/$(IMAGE_SEEPROM_NAME).map SIMICS_PPE_TAR_FILES += $(IMG_DIR)/$(IMAGE_SEEPROM_NAME).dis +endif SIMICS_PPE_TAR_FILES += $(IMG_DIR)/sbe.syms SIMICS_PPE_TAR_FILES += $(TEST_SRCDIR)/*.xml SIMICS_PPE_TAR_FILES += $(TEST_SRCDIR)/*.py @@ -154,6 +153,7 @@ $(IMG_DIR)/$(IMAGE_SEEPROM_NAME).out: ppe_trace_bin buildInfo $(SUBDIRS) $(LINK_ $(LINK_SCRIPT_SEEPROM): $(LINKER_DIR)/linkseeprom.cmd $(CPP) -I $(INCLUDES) -E -x c++ -P $(DEFS) $(LINKER_DIR)/linkseeprom.cmd -o $(LINK_SCRIPT_SEEPROM) +ifeq ($(img), pibmem) # ---- PIBMEM Image ------ #This removes all unecessary headers from the ELF executable $(IMG_DIR)/$(IMAGE_SBE_NAME).bin $(IMG_DIR)/$(IMAGE_SBE_NAME).dis: $(IMG_DIR)/$(IMAGE_SBE_NAME).out @@ -161,7 +161,6 @@ $(IMG_DIR)/$(IMAGE_SBE_NAME).bin $(IMG_DIR)/$(IMAGE_SBE_NAME).dis: $(IMG_DIR)/$( 0x`/usr/bin/nm $(IMG_DIR)/$(IMAGE_SBE_NAME).out | grep "A _sbe_end" \ | cut -d " " -f 1` $(OBJDUMP) -S $< > $(IMG_DIR)/$(IMAGE_SBE_NAME).dis - $(NM) $< > $(IMG_DIR)/$(IMAGE_SBE_NAME).syms # create a linked ELF executable $(IMG_DIR)/$(IMAGE_SBE_NAME).out: ppe_trace_bin buildInfo $(SUBDIRS) $(LINK_OBJS) $(LINK_SCRIPT_SBE) @@ -170,10 +169,18 @@ $(IMG_DIR)/$(IMAGE_SBE_NAME).out: ppe_trace_bin buildInfo $(SUBDIRS) $(LINK_OBJ # pass the link command file through the C preprocessor to evaluate macros and remove comments $(LINK_SCRIPT_SBE): $(LINKER_DIR)/linksbe.cmd $(CPP) -E -x c++ -I $(INCLUDES) -P $(DEFS) $(LINKER_DIR)/linksbe.cmd -o $(LINK_SCRIPT_SBE) +endif -all: $(OBJDIR) xml $(IMG_DIR)/$(IMAGE_SEEPROM_NAME).bin $(IMG_DIR)/$(IMAGE_SBE_NAME).bin \ +ifeq ($(img), pibmem) +all: $(OBJDIR) xml \ + $(IMG_DIR)/$(IMAGE_SBE_NAME).bin \ + symbols tracehash +endif +ifeq ($(img), seeprom) +all: $(OBJDIR) xml $(IMG_DIR)/$(IMAGE_SEEPROM_NAME).bin \ $(SBE_TOOLS) normalize defaultset $(IMG_DIR)/fixed.bin appendloader \ appendoverrides add_LoaderAddr symbols tracehash buildinfo report +endif install: all @echo "Installing simics.tar" @@ -203,9 +210,15 @@ add_LoaderAddr: $(P9_XIP_TOOL) $(IMG_DIR)/$(IMAGE_SEEPROM_NAME).out $(P9_XIP_TOOL) $(IMG_DIR)/$(IMAGE_SEEPROM_NAME).bin set L2_LoaderAddr 0x`nm $(BOOT_OBJDIR)/$(IMAGE_LOADER_NAME).out | grep __l2_loader_setup | cut -f 1 -d " "` $(P9_XIP_TOOL) $(IMG_DIR)/$(IMAGE_SEEPROM_NAME).bin set kernelAddr 0x`nm $(IMG_DIR)/$(IMAGE_SEEPROM_NAME).out | grep __pk_boot | cut -f 1 -d " "` -symbols: $(IMG_DIR)/$(IMAGE_SEEPROM_NAME).out $(BOOT_OBJDIR)/$(IMAGE_LOADER_NAME).out $(IMG_DIR)/$(IMAGE_SBE_NAME).out +ifeq ($(img), seeprom) +symbols: $(IMG_DIR)/$(IMAGE_SEEPROM_NAME).out $(BOOT_OBJDIR)/$(IMAGE_LOADER_NAME).out $(NM) $(IMG_DIR)/$(IMAGE_SEEPROM_NAME).out > $(IMG_DIR)/$(SBE_SYMBOLS_NAME) $(NM) $(BOOT_OBJDIR)/$(IMAGE_LOADER_NAME).out >> $(IMG_DIR)/$(SBE_SYMBOLS_NAME) +endif +ifeq ($(img), pibmem) +symbols: $(IMG_DIR)/$(IMAGE_SBE_NAME).out + $(NM) $(IMG_DIR)/$(IMAGE_SBE_NAME).out > $(IMG_DIR)/$(SBE_SYMBOLS_NAME) +endif report: $(P9_XIP_TOOL) $(IMG_DIR)/$(IMAGE_SEEPROM_NAME).bin $(P9_XIP_TOOL) $(IMG_DIR)/$(IMAGE_SEEPROM_NAME).bin report > $(IMG_DIR)/$(IMAGE_SEEPROM_NAME).rpt diff --git a/src/build/img_defs.mk b/src/build/img_defs.mk index ad8f3a9c..999d7105 100644 --- a/src/build/img_defs.mk +++ b/src/build/img_defs.mk @@ -433,6 +433,23 @@ GCC-CFLAGS += -mcpu=ppe42 GCC-CFLAGS += -ffunction-sections GCC-CFLAGS += -fdata-sections endif +############################################################################ +# Image settings +# pass argument img=seeprom/pibmem +# By default seeprom image is built +ifndef img +img = seeprom +endif + +ifeq ($(img), seeprom) +GCC-DEFS += -DSEEPROM_IMAGE +endif +ifeq ($(img), pibmem) +GCC-DEFS += -DPIBMEM_ONLY_IMAGE +endif + +########################################################################### + CFLAGS = PPE-CFLAGS = $(CFLAGS) -c $(GCC-CFLAGS) $(PIPE-CFLAGS) $(GCC-O-LEVEL) $(INCLUDES) @@ -446,7 +463,6 @@ ifdef P2P_ENABLE #use this to disable optimizations (fused compare/branch etc.) PCP-FLAG = -b endif - ############################################################################ #override the GNU Make implicit rule for going from a .C to a .o diff --git a/src/build/linkerscripts/linksbe.cmd b/src/build/linkerscripts/linksbe.cmd index 12250a9d..7a5cc5bf 100644 --- a/src/build/linkerscripts/linksbe.cmd +++ b/src/build/linkerscripts/linksbe.cmd @@ -35,20 +35,16 @@ OUTPUT_FORMAT(elf32-powerpc); MEMORY { - // increasing ram size as workaround so that pibmem image compilation - // doe not fail. - // TODO: Reducing the SBE_BASE_ORIGIN by 0x1F000 to reduce the size of - // generated sbe_pibmem.bin. Just a workaround to use pibmem for poweron - sram : ORIGIN = SBE_BASE_ORIGIN - 0x1F000, LENGTH = SBE_BASE_LENGTH + 0x1F000 + pibmem : ORIGIN = SBE_BASE_ORIGIN, LENGTH = SBE_BASE_LENGTH } SECTIONS { - . = SBE_BASE_ORIGIN - 0x1F000; + . = SBE_BASE_ORIGIN; - .vectors : {. = ALIGN(512); *(.vectors)} > sram - .fixed . : {. = ALIGN(512); *(.fixed) } > sram - .text . : {. = ALIGN(512); *(.text)} > sram + .vectors : {. = ALIGN(512); *(.vectors)} > pibmem + .fixed . : {. = ALIGN(512); *(.fixed) } > pibmem + .text . : {. = ALIGN(512); *(.text)} > pibmem //////////////////////////////// // Read-only Data @@ -62,8 +58,8 @@ SECTIONS // offsets. _SDA2_BASE_ = .; - .sdata2 . : { *(.sdata2*) } > sram - .sbss2 . : { *(.sbss2*) } > sram + .sdata2 . : { *(.sdata2*) } > pibmem + .sbss2 . : { *(.sbss2*) } > pibmem // Other read-only data. @@ -71,7 +67,7 @@ SECTIONS .rodata . : { ctor_start_address = .; *(.ctors) *(.ctors.*) ctor_end_address = .; - *(rodata*) *(.got2) } > sram + *(rodata*) *(.got2) } > pibmem _RODATA_SECTION_SIZE = . - _RODATA_SECTION_BASE; @@ -87,16 +83,16 @@ SECTIONS // offsets. _SDA_BASE_ = .; - .sdata . : { *(.sdata*) } > sram + .sdata . : { *(.sdata*) } > pibmem _sbss_start = .; - .sbss . : { *(.sbss*) } > sram + .sbss . : { *(.sbss*) } > pibmem _sbss_end = .; // Other read-write data // It's not clear why boot.S is generating empty .glink,.iplt - .rela . : { *(.rela*) } > sram - .rwdata . : { *(.data*) *(.bss*) } > sram + .rela . : { *(.rela*) } > pibmem + .rwdata . : { *(.data*) *(.bss*) } > pibmem . = ALIGN(8); _PK_INITIAL_STACK_LIMIT = .; |