# IBM_PROLOG_BEGIN_TAG # This is an automatically generated prolog. # # $Source: src/makefile $ # # IBM CONFIDENTIAL # # COPYRIGHT International Business Machines Corp. 2010,2013 # # p1 # # Object Code Only (OCO) source materials # Licensed Internal Code Source Materials # IBM HostBoot Licensed Internal Code # # The source code for this program is not published or otherwise # divested of its trade secrets, irrespective of what has been # deposited with the U.S. Copyright Office. # # Origin: 30 # # IBM_PROLOG_END_TAG ROOTPATH = .. SUBDIRS = kernel.d lib.d libc++.d sys.d usr.d build.d IMGS = hbicore hbicore_test BASE_OBJECTS = console.o spinlock.o string.o string_ext.o stdlib.o ctype.o \ assert.o stdio.o builtins.o vfs_init.o heapmgr.o pagemgr.o \ math.o barrier.o idebug.o intmsghandler.o deferred.o \ idletask.o splaytree.o ifdef HOSTBOOT_PROFILE BASE_OBJECTS += gcov.o endif DIRECT_BOOT_OBJECTS = start.o kernel.o taskmgr.o cpumgr.o syscall.o \ scheduler.o exception.o vmmmgr.o timemgr.o \ syscall_stub.o syscall_task.o syscall_misc.o \ syscall_msg.o syscall_mmio.o syscall_time.o \ syscall_mm.o init_main.o vfs_main.o sync.o futexmgr.o \ ptmgr.o segmentmgr.o basesegment.o devicesegment.o \ block.o cxxtest_data.o cpuid.o misc.o msghandler.o \ blockmsghdlr.o stacksegment.o softpatch_p8.o \ shutdown.o forceattn_p8.o terminate.o ipc.o machchk.o BASE_MODULES = trace errl devicefw scom xscom initservice \ secureboot_base pnor vfs EXTENDED_MODULES = targeting ecmddatabuffer fapi hwp plat \ extinitsvc istepdisp hwas fsi fsiscom i2c intr scan \ vpd dmi_training fapiporeve poreve util tracedaemon \ sbe_centaur_init mc_config dram_training \ mdia mbox prdf bus_training \ activate_powerbus build_winkle_images \ core_activate dram_initialization edi_ei_initialization \ establish_system_smp occ\ nest_chiplets start_payload thread_activate slave_sbe \ attn runtime ibscom dump tod_init secureboot_ext \ devtree TESTCASE_MODULES = cxxtest testtrace testerrl testdevicefw testsyslib \ testscom testxscom testtargeting testinitservice testkernel \ testhwpf testecmddatabuffer initsvctesttask testcxxtest \ testpnor testi2c testfsi testvfs testhwas testintr testvpd \ testpore testutil testmbox testmdia testprdf testattn \ testscan testruntime testibscom testdump testsecureboot RELOCATABLE_IMAGE_LDFLAGS = -pie --export-dynamic hbicore_OBJECTS = ${BASE_OBJECTS} ${DIRECT_BOOT_OBJECTS} hbicore_MODULES = ${BASE_MODULES} hbicore_EXTENDED_MODULES = ${EXTENDED_MODULES} # for PRDR_RULE_TABLE_TARGETS include ${ROOTPATH}/src/usr/diag/prdf/common/prd_ruletable.mk #@todo - Temporary workaround # The centaur.sbe_pnor.bin is manually built from CVS SBE procedure files in # CVS then copy into HostBoot for now. # HostBoot build team will have a process of building centaur.sbe_pnor.bin # image later. hbicore_DATA_MODULES = sample.if p8.dmi.scom.if cen.dmi.scom.if \ p8.fbc.scom.if mbs_def.if mba_def.if cen_ddrphy.if \ p8.pe.phase1.scom.if p8.pe.phase2.scom.if \ centaur.sbe_pnor.bin ${PRDR_RULE_TABLE_TARGETS} \ p8.abus.scom.if p8.xbus.scom.if p8.mcs.scom.if \ p8.as.scom.if p8.nx.scom.if p8.dmi.custom.scom.if \ cen.dmi.custom.scom.if p8.abus.custom.scom.if \ p8.xbus.custom.scom.if p8.psi.scom.if p8.tpbridge.scom.if \ p8.cxa.scom.if hbicore_test_OBJECTS = ${hbicore_OBJECTS} hbicore_test_MODULES = ${hbicore_MODULES} hbicore_test_EXTENDED_MODULES = ${hbicore_EXTENDED_MODULES} ${TESTCASE_MODULES} hbicore_test_DATA_MODULES = ${hbicore_DATA_MODULES} testdata \ test_signed_container IMAGE_PASS_POST += buildpnor imgsizecheck IMAGE_PASS_POST += $(IMGDIR)/hbotStringFile CLEAN_TARGETS += $(IMGDIR)/hbotStringFile include ${ROOTPATH}/config.mk buildpnor: ${IMAGES} cd build/buildpnor/ && ${MAKE} buildpnor $(IMGDIR)/hbotStringFile : $(IMAGES) $(ROOTPATH)/src/build/trace/tracehash_hb.pl -c -d $(ROOTPATH)/obj -s $@ .PHONY: imgsizecheck #make sure base image isn't over 508k (512K - 4K for secure header) #PROCESS: get size of hbicore.bin, sort with respect to 508k (520192), then see if #last word is 508k. If not, the base image is too big. MAX_BASE_SIZE = 520192 imgsizecheck: ${IMGDIR}/hbicore.bin $(if $(findstring $(shell (stat -c%s ${IMGDIR}/hbicore.bin; echo $(MAX_BASE_SIZE)) | sort -n | tail -n1), $(MAX_BASE_SIZE)),true, @echo ERROR: ${IMGDIR}/hbicore.bin too large. Max allowed size is $(MAX_BASE_SIZE); false)