1183878Sraj# $FreeBSD$ 2183878Sraj 3209125Sraj.include <bsd.own.mk> 4209125Sraj 5183878SrajPROG= ubldr 6183878SrajNEWVERSWHAT= "U-Boot loader" ${MACHINE_ARCH} 7183878SrajBINDIR?= /boot 8183878SrajINSTALLFLAGS= -b 9183878SrajWARNS?= 1 10236159Skientzle# Address at which ubldr will be loaded. 11236159Skientzle# This varies for different boards and SOCs. 12236159SkientzleUBLDR_LOADADDR?= 0x1000000 13183878Sraj 14183878Sraj# Architecture-specific loader code 15183878SrajSRCS= start.S conf.c vers.c 16183878Sraj 17240277Sae.if !defined(LOADER_NO_DISK_SUPPORT) 18185099SrajLOADER_DISK_SUPPORT?= yes 19240277Sae.else 20240277SaeLOADER_DISK_SUPPORT= no 21240277Sae.endif 22185099SrajLOADER_UFS_SUPPORT?= yes 23183878SrajLOADER_CD9660_SUPPORT?= no 24183878SrajLOADER_EXT2FS_SUPPORT?= no 25235537Sgber.if ${MK_NAND} != "no" 26235537SgberLOADER_NANDFS_SUPPORT?= yes 27235537Sgber.else 28235537SgberLOADER_NANDFS_SUPPORT?= no 29235537Sgber.endif 30183878SrajLOADER_NET_SUPPORT?= yes 31183878SrajLOADER_NFS_SUPPORT?= yes 32183878SrajLOADER_TFTP_SUPPORT?= no 33183878SrajLOADER_GZIP_SUPPORT?= no 34183878SrajLOADER_BZIP2_SUPPORT?= no 35209125Sraj.if ${MK_FDT} != "no" 36208538SrajLOADER_FDT_SUPPORT= yes 37208538Sraj.else 38208538SrajLOADER_FDT_SUPPORT= no 39208538Sraj.endif 40183878Sraj 41183878Sraj.if ${LOADER_DISK_SUPPORT} == "yes" 42183878SrajCFLAGS+= -DLOADER_DISK_SUPPORT 43183878Sraj.endif 44183878Sraj.if ${LOADER_UFS_SUPPORT} == "yes" 45183878SrajCFLAGS+= -DLOADER_UFS_SUPPORT 46183878Sraj.endif 47183878Sraj.if ${LOADER_CD9660_SUPPORT} == "yes" 48183878SrajCFLAGS+= -DLOADER_CD9660_SUPPORT 49183878Sraj.endif 50183878Sraj.if ${LOADER_EXT2FS_SUPPORT} == "yes" 51183878SrajCFLAGS+= -DLOADER_EXT2FS_SUPPORT 52183878Sraj.endif 53235537Sgber.if ${LOADER_NANDFS_SUPPORT} == "yes" 54235537SgberCFLAGS+= -DLOADER_NANDFS_SUPPORT 55235537Sgber.endif 56183878Sraj.if ${LOADER_GZIP_SUPPORT} == "yes" 57183878SrajCFLAGS+= -DLOADER_GZIP_SUPPORT 58183878Sraj.endif 59183878Sraj.if ${LOADER_BZIP2_SUPPORT} == "yes" 60183878SrajCFLAGS+= -DLOADER_BZIP2_SUPPORT 61183878Sraj.endif 62183878Sraj.if ${LOADER_NET_SUPPORT} == "yes" 63183878SrajCFLAGS+= -DLOADER_NET_SUPPORT 64183878Sraj.endif 65183878Sraj.if ${LOADER_NFS_SUPPORT} == "yes" 66183878SrajCFLAGS+= -DLOADER_NFS_SUPPORT 67183878Sraj.endif 68183878Sraj.if ${LOADER_TFTP_SUPPORT} == "yes" 69183878SrajCFLAGS+= -DLOADER_TFTP_SUPPORT 70183878Sraj.endif 71208538Sraj.if ${LOADER_FDT_SUPPORT} == "yes" 72208538SrajCFLAGS+= -I${.CURDIR}/../../fdt 73208538SrajCFLAGS+= -I${.OBJDIR}/../../fdt 74208538SrajCFLAGS+= -DLOADER_FDT_SUPPORT 75208538SrajLIBFDT= ${.OBJDIR}/../../fdt/libfdt.a 76208538Sraj.endif 77183878Sraj 78183878Sraj.if !defined(NO_FORTH) 79183878Sraj# Enable BootForth 80183878SrajBOOT_FORTH= yes 81183878SrajCFLAGS+= -DBOOT_FORTH -I${.CURDIR}/../../ficl -I${.CURDIR}/../../ficl/arm 82183878SrajLIBFICL= ${.OBJDIR}/../../ficl/libficl.a 83183878Sraj.endif 84183878Sraj 85183878Sraj# Always add MI sources 86183878Sraj.PATH: ${.CURDIR}/../../common 87183878Sraj.include "${.CURDIR}/../../common/Makefile.inc" 88183878SrajCFLAGS+= -I${.CURDIR}/../../common 89183878SrajCFLAGS+= -I. 90183878Sraj 91185375SrajCLEANFILES+= vers.c loader.help 92183878Sraj 93265064SianCFLAGS+= -ffreestanding -msoft-float 94183878Sraj 95236159SkientzleLDFLAGS= -nostdlib -static 96236159SkientzleLDFLAGS+= -T ldscript.generated 97236159SkientzleLDFLAGS+= -T ${.CURDIR}/ldscript.${MACHINE_CPUARCH} 98183878Sraj 99183878Sraj# Pull in common loader code 100183878Sraj.PATH: ${.CURDIR}/../../uboot/common 101183878Sraj.include "${.CURDIR}/../../uboot/common/Makefile.inc" 102183878SrajCFLAGS+= -I${.CURDIR}/../../uboot/common 103183878Sraj 104183878Sraj# U-Boot standalone support library 105183878SrajLIBUBOOT= ${.OBJDIR}/../../uboot/lib/libuboot.a 106183878SrajCFLAGS+= -I${.CURDIR}/../../uboot/lib 107183878SrajCFLAGS+= -I${.OBJDIR}/../../uboot/lib 108183878Sraj 109183878Sraj# where to get libstand from 110183878SrajCFLAGS+= -I${.CURDIR}/../../../../lib/libstand/ 111183878Sraj 112244278Sandrew# clang doesn't understand %D as a specifier to printf 113244278SandrewNO_WERROR.clang= 114244278Sandrew 115246369SandrewDPADD= ${LIBFICL} ${LIBUBOOT} ${LIBFDT} ${LIBSTAND} 116246369SandrewLDADD= ${LIBFICL} ${LIBUBOOT} ${LIBFDT} -lstand 117183878Sraj 118183878Srajvers.c: ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version 119183878Sraj sh ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version ${NEWVERSWHAT} 120183878Sraj 121246647Skientzleloader.help: help.common help.uboot ${.CURDIR}/../../fdt/help.fdt 122183878Sraj cat ${.ALLSRC} | \ 123183878Sraj awk -f ${.CURDIR}/../../common/merge_help.awk > ${.TARGET} 124183878Sraj 125236159Skientzle${PROG}: ldscript.generated ${.CURDIR}/ldscript.${MACHINE_CPUARCH} 126236159Skientzle 127236159Skientzleldscript.generated:: 128236159Skientzle rm -f ldscript.generated.tmp 129236159Skientzle echo "UBLDR_LOADADDR = ${UBLDR_LOADADDR};" >ldscript.generated.tmp 130236159Skientzle if diff ldscript.generated ldscript.generated.tmp > /dev/null; then \ 131236159Skientzle true; \ 132236159Skientzle else \ 133236159Skientzle rm -f ldscript.generated; \ 134236159Skientzle mv ldscript.generated.tmp ldscript.generated; \ 135236159Skientzle fi 136236159Skientzle 137253714Skientzle.if !defined(LOADER_ONLY) 138183878Sraj.PATH: ${.CURDIR}/../../forth 139253714SkientzleFILES+= loader.help loader.4th support.4th loader.conf 140253714SkientzleFILES+= screen.4th frames.4th beastie.4th 141253714SkientzleFILES+= brand.4th check-password.4th color.4th delay.4th 142253714SkientzleFILES+= menu.4th menu-commands.4th menusets.4th shortcuts.4th version.4th 143253714SkientzleFILESDIR_loader.conf= /boot/defaults 144183878Sraj 145253714Skientzle# Put sample loader.rc and menu.rc on disk but don't enable them 146253714Skientzle# by default. 147253714SkientzleFILES+= loader.rc 148253714SkientzleFILESNAME_loader.rc= loader.rc.sample 149253714SkientzleFILES+= menu.rc 150253714SkientzleFILESNAME_menu.rc= menu.rc.sample 151253714Skientzle.endif 152253714Skientzle 153183878Sraj.include <bsd.prog.mk> 154