1183878Sraj# $FreeBSD: stable/10/sys/boot/arm/uboot/Makefile 314922 2017-03-08 22:39:45Z pfg $ 2183878Sraj 3209125Sraj.include <bsd.own.mk> 4209125Sraj 5283505SianFILES= ubldr ubldr.bin 6283505Sian 7183878SrajNEWVERSWHAT= "U-Boot loader" ${MACHINE_ARCH} 8183878SrajBINDIR?= /boot 9183878SrajINSTALLFLAGS= -b 10183878SrajWARNS?= 1 11236159Skientzle# Address at which ubldr will be loaded. 12236159Skientzle# This varies for different boards and SOCs. 13236159SkientzleUBLDR_LOADADDR?= 0x1000000 14183878Sraj 15183878Sraj# Architecture-specific loader code 16283505SianSRCS= start.S conf.c self_reloc.c vers.c 17183878Sraj 18240277Sae.if !defined(LOADER_NO_DISK_SUPPORT) 19185099SrajLOADER_DISK_SUPPORT?= yes 20240277Sae.else 21240277SaeLOADER_DISK_SUPPORT= no 22240277Sae.endif 23185099SrajLOADER_UFS_SUPPORT?= yes 24183878SrajLOADER_CD9660_SUPPORT?= no 25183878SrajLOADER_EXT2FS_SUPPORT?= no 26235537Sgber.if ${MK_NAND} != "no" 27235537SgberLOADER_NANDFS_SUPPORT?= yes 28235537Sgber.else 29235537SgberLOADER_NANDFS_SUPPORT?= no 30235537Sgber.endif 31183878SrajLOADER_NET_SUPPORT?= yes 32183878SrajLOADER_NFS_SUPPORT?= yes 33183878SrajLOADER_TFTP_SUPPORT?= no 34183878SrajLOADER_GZIP_SUPPORT?= no 35183878SrajLOADER_BZIP2_SUPPORT?= no 36209125Sraj.if ${MK_FDT} != "no" 37208538SrajLOADER_FDT_SUPPORT= yes 38208538Sraj.else 39208538SrajLOADER_FDT_SUPPORT= no 40208538Sraj.endif 41183878Sraj 42183878Sraj.if ${LOADER_DISK_SUPPORT} == "yes" 43183878SrajCFLAGS+= -DLOADER_DISK_SUPPORT 44183878Sraj.endif 45183878Sraj.if ${LOADER_UFS_SUPPORT} == "yes" 46183878SrajCFLAGS+= -DLOADER_UFS_SUPPORT 47183878Sraj.endif 48183878Sraj.if ${LOADER_CD9660_SUPPORT} == "yes" 49183878SrajCFLAGS+= -DLOADER_CD9660_SUPPORT 50183878Sraj.endif 51183878Sraj.if ${LOADER_EXT2FS_SUPPORT} == "yes" 52183878SrajCFLAGS+= -DLOADER_EXT2FS_SUPPORT 53183878Sraj.endif 54235537Sgber.if ${LOADER_NANDFS_SUPPORT} == "yes" 55235537SgberCFLAGS+= -DLOADER_NANDFS_SUPPORT 56235537Sgber.endif 57183878Sraj.if ${LOADER_GZIP_SUPPORT} == "yes" 58183878SrajCFLAGS+= -DLOADER_GZIP_SUPPORT 59183878Sraj.endif 60183878Sraj.if ${LOADER_BZIP2_SUPPORT} == "yes" 61183878SrajCFLAGS+= -DLOADER_BZIP2_SUPPORT 62183878Sraj.endif 63183878Sraj.if ${LOADER_NET_SUPPORT} == "yes" 64183878SrajCFLAGS+= -DLOADER_NET_SUPPORT 65183878Sraj.endif 66183878Sraj.if ${LOADER_NFS_SUPPORT} == "yes" 67183878SrajCFLAGS+= -DLOADER_NFS_SUPPORT 68183878Sraj.endif 69183878Sraj.if ${LOADER_TFTP_SUPPORT} == "yes" 70183878SrajCFLAGS+= -DLOADER_TFTP_SUPPORT 71183878Sraj.endif 72208538Sraj.if ${LOADER_FDT_SUPPORT} == "yes" 73208538SrajCFLAGS+= -I${.CURDIR}/../../fdt 74208538SrajCFLAGS+= -I${.OBJDIR}/../../fdt 75208538SrajCFLAGS+= -DLOADER_FDT_SUPPORT 76275763SandrewLIBUBOOT_FDT= ${.OBJDIR}/../../uboot/fdt/libuboot_fdt.a 77208538SrajLIBFDT= ${.OBJDIR}/../../fdt/libfdt.a 78208538Sraj.endif 79183878Sraj 80283510SianCFLAGS+= -DNETIF_OPEN_CLOSE_ONCE 81283510Sian 82278604Sian.if ${MK_FORTH} != "no" 83183878Sraj# Enable BootForth 84183878SrajBOOT_FORTH= yes 85314922SpfgCFLAGS+= -DBOOT_FORTH -I${.CURDIR}/../../ficl 86314922SpfgCFLAGS+= -I${.CURDIR}/../../ficl/arm 87183878SrajLIBFICL= ${.OBJDIR}/../../ficl/libficl.a 88183878Sraj.endif 89183878Sraj 90183878Sraj# Always add MI sources 91183878Sraj.PATH: ${.CURDIR}/../../common 92183878Sraj.include "${.CURDIR}/../../common/Makefile.inc" 93183878SrajCFLAGS+= -I${.CURDIR}/../../common 94183878SrajCFLAGS+= -I. 95183878Sraj 96185375SrajCLEANFILES+= vers.c loader.help 97183878Sraj 98265064SianCFLAGS+= -ffreestanding -msoft-float 99183878Sraj 100283505SianLDFLAGS= -nostdlib -static -T ${.CURDIR}/ldscript.${MACHINE_CPUARCH} 101183878Sraj 102183878Sraj# Pull in common loader code 103183878Sraj.PATH: ${.CURDIR}/../../uboot/common 104183878Sraj.include "${.CURDIR}/../../uboot/common/Makefile.inc" 105183878SrajCFLAGS+= -I${.CURDIR}/../../uboot/common 106183878Sraj 107183878Sraj# U-Boot standalone support library 108183878SrajLIBUBOOT= ${.OBJDIR}/../../uboot/lib/libuboot.a 109183878SrajCFLAGS+= -I${.CURDIR}/../../uboot/lib 110183878SrajCFLAGS+= -I${.OBJDIR}/../../uboot/lib 111183878Sraj 112183878Sraj# where to get libstand from 113183878SrajCFLAGS+= -I${.CURDIR}/../../../../lib/libstand/ 114183878Sraj 115244278Sandrew# clang doesn't understand %D as a specifier to printf 116244278SandrewNO_WERROR.clang= 117244278Sandrew 118275763SandrewDPADD= ${LIBFICL} ${LIBUBOOT} ${LIBFDT} ${LIBUBOOT_FDT} ${LIBSTAND} 119275763SandrewLDADD= ${LIBFICL} ${LIBUBOOT} ${LIBFDT} ${LIBUBOOT_FDT} -lstand 120183878Sraj 121283505SianOBJS+= ${SRCS:N*.h:R:S/$/.o/g} 122283505Sian 123183878Srajvers.c: ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version 124183878Sraj sh ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version ${NEWVERSWHAT} 125183878Sraj 126246647Skientzleloader.help: help.common help.uboot ${.CURDIR}/../../fdt/help.fdt 127183878Sraj cat ${.ALLSRC} | \ 128183878Sraj awk -f ${.CURDIR}/../../common/merge_help.awk > ${.TARGET} 129183878Sraj 130283505Sianldscript.abs: 131283505Sian echo "UBLDR_LOADADDR = ${UBLDR_LOADADDR};" >${.TARGET} 132236159Skientzle 133283505Sianldscript.pie: 134283505Sian echo "UBLDR_LOADADDR = 0;" >${.TARGET} 135236159Skientzle 136283505Sianubldr: ${OBJS} ldscript.abs ${.CURDIR}/ldscript.${MACHINE_CPUARCH} ${DPADD} 137283505Sian ${CC} ${CFLAGS} -T ldscript.abs ${LDFLAGS} \ 138283505Sian -o ${.TARGET} ${OBJS} ${LDADD} 139283505Sian 140283505Sianubldr.pie: ${OBJS} ldscript.pie ${.CURDIR}/ldscript.${MACHINE_CPUARCH} ${DPADD} 141283505Sian ${CC} ${CFLAGS} -T ldscript.pie ${LDFLAGS} -pie -Wl,-Bsymbolic \ 142283505Sian -o ${.TARGET} ${OBJS} ${LDADD} 143283505Sian 144283505Sianubldr.bin: ubldr.pie 145283505Sian ${OBJCOPY} -S -O binary ubldr.pie ${.TARGET} 146283505Sian 147283505SianCLEANFILES+= ldscript.abs ldscript.pie ubldr ubldr.pie ubldr.bin 148283505Sian 149253714Skientzle.if !defined(LOADER_ONLY) 150183878Sraj.PATH: ${.CURDIR}/../../forth 151281843Sdteske.include "${.CURDIR}/../../forth/Makefile.inc" 152183878Sraj 153285298Sloos# Install loader.rc. 154253714SkientzleFILES+= loader.rc 155285298Sloos# Put sample menu.rc on disk but don't enable it by default. 156253714SkientzleFILES+= menu.rc 157253714SkientzleFILESNAME_menu.rc= menu.rc.sample 158253714Skientzle.endif 159253714Skientzle 160183878Sraj.include <bsd.prog.mk> 161