diff options
author | Derk Rembold <rembold@de.ibm.com> | 2015-04-28 10:48:11 +0200 |
---|---|---|
committer | Derk Rembold <rembold@de.ibm.com> | 2015-05-21 02:32:32 -0500 |
commit | 17fbff7a8a14bc1ee53217f9b316d611e0047a3e (patch) | |
tree | 6a86f8b9072367eb725bd73b423baea83169febb /sbe/image/Makefile | |
parent | a51afa0f5ea1320c0d55b0258eac6cfd64cd41cc (diff) | |
download | talos-sbe-17fbff7a8a14bc1ee53217f9b316d611e0047a3e.tar.gz talos-sbe-17fbff7a8a14bc1ee53217f9b316d611e0047a3e.zip |
files to create base image, corrected pervfiles.mk
Change-Id: I78f6f1aa49c2f11b2e3ede82f19b48d7f14a50a8
Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/17478
Reviewed-by: Brian Silver <bsilver@us.ibm.com>
Reviewed-by: Derk Rembold <rembold@de.ibm.com>
Tested-by: Derk Rembold <rembold@de.ibm.com>
Diffstat (limited to 'sbe/image/Makefile')
-rw-r--r-- | sbe/image/Makefile | 133 |
1 files changed, 124 insertions, 9 deletions
diff --git a/sbe/image/Makefile b/sbe/image/Makefile index 08583884..71a57456 100644 --- a/sbe/image/Makefile +++ b/sbe/image/Makefile @@ -1,6 +1,9 @@ #remove this once we have a real compiler export P2P_ENABLE = 1 +#remove this once we have a real compiler +export SBEFW_ENABLE = 1 + #Pull in the definitions that affect all makefiles for this image include img_defs.mk @@ -11,20 +14,76 @@ ifdef P2P_ENABLE include $(P2P_SRCDIR)/p2pfiles.mk endif +#Pull in PPE complier libraries . +# Sets up the following variables: +# $(GCCLIBS) -> Libary objects to be linked +# $(LIB_DIRS) -> Include directories +include ../../include/ppe_compiler.mk + + PK_MAKE_DIR := $(PK_SRCDIR)/$(PPE_TYPE) -OBJS := $(addprefix $(OBJDIR)/, $(TOP_OBJECTS)) +LIB_DIRS += -L$(OBJDIR)/pk PKLIB := $(OBJDIR)/pk/libpk.a +LLIBS += -lpk -LIB_DIRS = -L$(OBJDIR)/pk #-L$(OBJDIR)/commonlib -LINK_OBJS = $(OBJS) $(PKLIB) #$(COMMONLIB) -LINK_SCRIPT = $(addprefix $(OBJDIR)/, linkscript) +SBEFW_MAKE_DIR := ../sbefw +LIB_DIRS += -L$(OBJDIR)/sbefw +SBEFWLIB := $(OBJDIR)/sbefw/libsbefw.a +LLIBS += -lsbefw + +SAMPLE_MAKE_DIR := ../sample +LIB_DIRS += -L$(OBJDIR)/sample +SAMPLELIB := $(OBJDIR)/sample/libsample.a +#LLIBS += -lsample + +# FAPI2 library +FAPI2_MAKE_DIR := $(PLAT_FAPI2_DIR) +LIB_DIRS += -L$(OBJDIR)/fapi2 +FAPI2LIB := $(OBJDIR)/fapi2/libfapi2.a +LLIBS += -lfapi2 ifdef P2P_ENABLE -P2PLIB := $(OBJDIR)/p2p/libp2p.a LIB_DIRS += -L$(OBJDIR)/p2p +P2PLIB := $(OBJDIR)/p2p/libp2p.a LINK_OBJS += $(P2PLIB) +LLIBS += -lp2p endif +# HWP LIB library +HWPLIB_MAKE_DIR := $(HWPLIB_SRCDIR) +LIB_DIRS += -L$(OBJDIR)/lib +HWPLIB := $(OBJDIR)/libcommon.a +LLIBS += -lcommon + +# Common Cache HWP Exit library +CACHE_MAKE_DIR := $(CACHE_SRCDIR) +LIB_DIRS += -L$(OBJDIR)/cache +CACHELIB := $(OBJDIR)/cache/libcache.a +LLIBS += -lcache + + +# Common Core libraries +CORE_MAKE_DIR := $(CORE_SRCDIR) +LIB_DIRS += -L$(OBJDIR)/core +CORELIB := $(OBJDIR)/core/libcore.a +LLIBS += -lcore + +# Common Perv libraries +PERV_MAKE_DIR := $(PERV_SRCDIR) +LIB_DIRS += -L$(OBJDIR)/perv +PERVLIB := $(OBJDIR)/perv/libperv.a +LLIBS += -lperv + +LINK_OBJS = $(OBJS) $(PKLIB) $(SBEFWLIB) $(FAPI2LIB) $(CACHELIB) $(CORELIB) $(HWPLIB) $(P2PLIB) $(PERVLIB) + +# Define the objects +OBJS := $(addprefix $(OBJDIR)/, $(TOP_OBJECTS)) +LINK_OBJS += $(OBJS) $(GCCLIBS) +#LINK_OBJS += $(OBJS) $(PKLIB) $(CPPLIB) $(PPELIB) +LINK_SCRIPT = $(addprefix $(OBJDIR)/, linkscript) + + + #default target is to make a binary application image #This removes all unecessary headers from the ELF executable $(OBJDIR)/$(IMAGE_NAME).bin $(OBJDIR)/$(IMAGE_NAME).dis: $(OBJDIR)/$(IMAGE_NAME).out @@ -33,7 +92,7 @@ $(OBJDIR)/$(IMAGE_NAME).bin $(OBJDIR)/$(IMAGE_NAME).dis: $(OBJDIR)/$(IMAGE_NAME) #create a linked ELF executable $(OBJDIR)/$(IMAGE_NAME).out: $(LINK_OBJS) $(LINK_SCRIPT) - $(LD) -e __system_reset -T$(LINK_SCRIPT) -Map $(OBJDIR)/$(IMAGE_NAME).map -Bstatic -o $(OBJDIR)/$(IMAGE_NAME).out $(LIB_DIRS) $(OBJS) -lpk -lp2p #-lcommon + $(LD) -e __system_reset -T$(LINK_SCRIPT) -Map $(OBJDIR)/$(IMAGE_NAME).map -Bstatic -o $(OBJDIR)/$(IMAGE_NAME).out $(LIB_DIRS) $(OBJS) --start-group $(LLIBS) --end-group #pass the link command file through the C preprocessor to evaluate macros and remove comments $(LINK_SCRIPT): link.cmd @@ -43,17 +102,71 @@ $(LINK_SCRIPT): link.cmd $(LINK_OBJS) $(OBJS) $(OBJS:.o=.d): | $(OBJDIR) $(OBJDIR): + $(BASE_FAPI2_DIR)/tools/ppeParseProcSbeFixed.pl . $(TOOLS_ATTR_DIR)/p9_ppe_attributes1.xml $(ATTRFILES) + $(BASE_FAPI2_DIR)/tools/ppeParseAttributeInfo.pl $(PPE_FAPI2_DIR)/include $(TOOLS_ATTR_DIR)/p9_ppe_attributes1.xml $(ATTRFILES) + $(BASE_FAPI2_DIR)/tools/ppeCreateAttrGetSetMacros.pl -path $(BASE_FAPI2_DIR)/tools -inc $(PPE_FAPI2_DIR)/include -src $(PPE_FAPI2_DIR)/src + $(BASE_FAPI2_DIR)/tools/ppeCreateIfAttrService.pl $(PPE_FAPI2_DIR)/include $(TOOLS_ATTR_DIR)/p9_ppe_attributes1.xml $(ATTRFILES) mkdir -p $(OBJDIR) -.PHONY: clean $(PKLIB) $(P2PLIB) +.PHONY: clean topfixedheaders $(PKLIB) $(P2PLIB) $(SBEFWLIB) $(PPELIB) $(FAPI2LIB) $(CACHELIB) $(CORELIB) $(PERVLIB) $(HWPLIB) + +ATTRFILES += $(TOOLS_ATTR_DIR)/perv_attributes.xml +ATTRFILES += $(TOOLS_ATTR_DIR)/proc_attributes.xml +ATTRFILES += $(TOOLS_ATTR_DIR)/ex_attributes.xml +ATTRFILES += $(TOOLS_ATTR_DIR)/eq_attributes.xml +ATTRFILES += $(TOOLS_ATTR_DIR)/core_attributes.xml + +topfixedheaders: + $(BASE_FAPI2_DIR)/tools/ppeParseProcSbeFixed.pl . $(TOOLS_ATTR_DIR)/p9_ppe_attributes1.xml $(ATTRFILES) + +attrids: + $(BASE_FAPI2_DIR)/tools/ppeParseAttributeInfo.pl $(PPE_FAPI2_DIR)/include $(TOOLS_ATTR_DIR)/p9_ppe_attributes1.xml $(ATTRFILES) + +platattr: + $(BASE_FAPI2_DIR)/tools/ppeCreateAttrGetSetMacros.pl --path $(BASE_FAPI2_DIR)/tools --inc $(PPE_FAPI2_DIR)/include --src $(PPE_FAPI2_DIR)/src + +attrserv: + $(BASE_FAPI2_DIR)/tools/ppeCreateIfAttrService.pl $(PPE_FAPI2_DIR)/include $(TOOLS_ATTR_DIR)/p9_ppe_attributes1.xml $(ATTRFILES) + #Build macro-specific kernel code $(PKLIB): $(MAKE) -I $(IMAGE_SRCDIR) -C $(PK_MAKE_DIR) +#Build macro-specific kernel code +$(SBEFWLIB): + $(MAKE) -I $(IMAGE_SRCDIR) -C $(SBEFW_MAKE_DIR) + + #Build the code that is common for all processors (PPEs and 405) -#$(COMMONLIB): -# $(MAKE) -I $(IMAGE_SRCDIR) -C $(COMMONLIB_SRCDIR) +$(PPELIB): + @echo "Processing ppelibmakefile" + $(MAKE) -I $(IMAGE_SRCDIR) -C $(LIB_MAKE_DIR) + +#Build the cache exit code shared with the SBE +$(CACHELIB): + @echo "Processing cache makefile" + $(MAKE) -I $(IMAGE_SRCDIR) -C $(CACHE_MAKE_DIR) + +#Build the core exit code shared with the SBE +$(CORELIB): + @echo "Processing core makefile" + $(MAKE) -I $(IMAGE_SRCDIR) -C $(CORE_MAKE_DIR) + +#Build the perv code +$(PERVLIB): + @echo "Processing perv makefile" + $(MAKE) -I $(IMAGE_SRCDIR) -C $(PERV_MAKE_DIR) + +#Build the comming HWP lib procedures +$(HWPLIB): + @echo "Processing HWP lib makefile" + $(MAKE) -I $(IMAGE_SRCDIR) -C $(HWPLIB_MAKE_DIR) + +#Build the FAPI2 library +$(FAPI2LIB): + @echo "Processing fapi2 makefile" + $(MAKE) -I $(IMAGE_SRCDIR) -C $(FAPI2_MAKE_DIR)/src ifdef P2P_ENABLE $(P2PLIB): @@ -69,8 +182,10 @@ tracehash: #clean the kernel directory first, then the application level clean clean: rm -fr $(OBJDIR) + rm $(TOP-FIXED-HEADERS) rm *.dump + dump: objdump -s $(OBJDIR)/$(IMAGE_NAME).out > $(IMAGE_NAME).dump |