7 NEWVERSWHAT= "U-Boot loader" ${MACHINE_ARCH}
11 # Address at which ubldr will be loaded.
12 # This varies for different boards and SOCs.
13 UBLDR_LOADADDR?= 0xffffffff80800000
15 # Architecture-specific loader code
16 SRCS= start.S conf.c vers.c
18 .if !defined(LOADER_NO_DISK_SUPPORT)
19 LOADER_DISK_SUPPORT?= yes
21 LOADER_DISK_SUPPORT= no
23 LOADER_MSDOS_SUPPORT?= yes
24 LOADER_UFS_SUPPORT?= yes
25 LOADER_CD9660_SUPPORT?= no
26 LOADER_EXT2FS_SUPPORT?= no
27 .if ${MK_NAND} != "no"
28 LOADER_NANDFS_SUPPORT?= yes
30 LOADER_NANDFS_SUPPORT?= no
32 LOADER_NET_SUPPORT?= yes
33 LOADER_NFS_SUPPORT?= yes
34 LOADER_TFTP_SUPPORT?= no
35 LOADER_GZIP_SUPPORT?= no
36 LOADER_BZIP2_SUPPORT?= no
38 LOADER_FDT_SUPPORT= yes
40 LOADER_FDT_SUPPORT= no
43 .if ${LOADER_DISK_SUPPORT} == "yes"
44 CFLAGS+= -DLOADER_DISK_SUPPORT
46 .if ${LOADER_MSDOS_SUPPORT} == "yes"
47 CFLAGS+= -DLOADER_MSDOS_SUPPORT
49 .if ${LOADER_UFS_SUPPORT} == "yes"
50 CFLAGS+= -DLOADER_UFS_SUPPORT
52 .if ${LOADER_CD9660_SUPPORT} == "yes"
53 CFLAGS+= -DLOADER_CD9660_SUPPORT
55 .if ${LOADER_EXT2FS_SUPPORT} == "yes"
56 CFLAGS+= -DLOADER_EXT2FS_SUPPORT
58 .if ${LOADER_NANDFS_SUPPORT} == "yes"
59 CFLAGS+= -DLOADER_NANDFS_SUPPORT
61 .if ${LOADER_GZIP_SUPPORT} == "yes"
62 CFLAGS+= -DLOADER_GZIP_SUPPORT
64 .if ${LOADER_BZIP2_SUPPORT} == "yes"
65 CFLAGS+= -DLOADER_BZIP2_SUPPORT
67 .if ${LOADER_NET_SUPPORT} == "yes"
68 CFLAGS+= -DLOADER_NET_SUPPORT
70 .if ${LOADER_NFS_SUPPORT} == "yes"
71 CFLAGS+= -DLOADER_NFS_SUPPORT
73 .if ${LOADER_TFTP_SUPPORT} == "yes"
74 CFLAGS+= -DLOADER_TFTP_SUPPORT
76 .if ${LOADER_FDT_SUPPORT} == "yes"
77 CFLAGS+= -I${.CURDIR}/../../fdt
78 CFLAGS+= -I${.OBJDIR}/../../fdt
79 CFLAGS+= -DLOADER_FDT_SUPPORT
80 LIBUBOOT_FDT= ${.OBJDIR}/../../uboot/fdt/libuboot_fdt.a
81 LIBFDT= ${.OBJDIR}/../../fdt/libfdt.a
84 .if ${MK_FORTH} != "no"
87 CFLAGS+= -DBOOT_FORTH -I${.CURDIR}/../../ficl
88 .if ${MACHINE_ARCH:Mmips64*} != ""
89 CFLAGS+= -I${.CURDIR}/../../ficl/mips64
91 CFLAGS+= -I${.CURDIR}/../../ficl/mips
93 LIBFICL= ${.OBJDIR}/../../ficl/libficl.a
96 # Always add MI sources
97 .PATH: ${.CURDIR}/../../common
98 .include "${.CURDIR}/../../common/Makefile.inc"
99 CFLAGS+= -I${.CURDIR}/../../common
102 CLEANFILES+= loader.help
104 CFLAGS+= -ffreestanding -msoft-float -g
106 LDFLAGS= -nostdlib -static -T ${.CURDIR}/ldscript.${MACHINE_CPUARCH}
108 # Pull in common loader code
109 .PATH: ${.CURDIR}/../../uboot/common
110 .include "${.CURDIR}/../../uboot/common/Makefile.inc"
111 CFLAGS+= -I${.CURDIR}/../../uboot/common
113 # U-Boot standalone support library
114 LIBUBOOT= ${.OBJDIR}/../../uboot/lib/libuboot.a
115 CFLAGS+= -I${.CURDIR}/../../uboot/lib
116 CFLAGS+= -I${.OBJDIR}/../../uboot/lib
118 # where to get libstand from
121 # clang doesn't understand %D as a specifier to printf
125 DPADD= ${LIBFICL} ${LIBUBOOT} ${LIBFDT} ${LIBUBOOT_FDT} ${LIBSA}
126 LDADD= ${LIBFICL} ${LIBUBOOT} ${LIBFDT} ${LIBUBOOT_FDT} ${LIBSA}
128 OBJS+= ${SRCS:N*.h:R:S/$/.o/g}
130 loader.help: help.common help.uboot ${.CURDIR}/../../fdt/help.fdt
132 awk -f ${.CURDIR}/../../common/merge_help.awk > ${.TARGET}
135 echo "UBLDR_LOADADDR = ${UBLDR_LOADADDR};" >${.TARGET}
138 echo "UBLDR_LOADADDR = 0;" >${.TARGET}
140 ubldr: ${OBJS} ldscript.abs ${.CURDIR}/ldscript.${MACHINE_CPUARCH} ${DPADD}
141 ${CC} ${CFLAGS} -T ldscript.abs ${LDFLAGS} \
142 -o ${.TARGET} ${OBJS} ${LDADD}
143 ${OBJCOPY} -S -O binary ubldr ubldr.bin
145 CLEANFILES+= ldscript.abs ldscript.pie ubldr ubldr.pie ubldr.bin
147 .if !defined(LOADER_ONLY)
148 .PATH: ${.CURDIR}/../../forth
149 .include "${.CURDIR}/../../forth/Makefile.inc"
153 # Put sample menu.rc on disk but don't enable it by default.
155 FILESNAME_menu.rc= menu.rc.sample
158 .include <bsd.stand.mk>
159 .include <bsd.prog.mk>