mirror of
https://git.FreeBSD.org/src.git
synced 2025-01-25 16:13:17 +00:00
stand/uboot: reorg
Build uboot ubldr and friends like we build efi binaries o move everything to be under stand/uboot o md code goes in arch/$ARCH o move everything over from the library - Had to rename console.c, disk.c and module.c due to conflicts o update version to 1.5 to reflect the new way of building This results in a more consistent build system and should represent no functional change, apart from powerpc version getting new help file. Also, moved to exlcuding uboot on powerpc64le by using BROKEN_OPTION instead of the incidental exclusion we had before due to Makefile reorgs. Sponsored by: Netflix Feedback by: stevek, jrtc27 Differential Revision: https://reviews.freebsd.org/D33362
This commit is contained in:
parent
aab8ed235a
commit
9dc70af83e
@ -314,8 +314,8 @@ BROKEN_OPTIONS+=EFI
|
||||
.if ${__T:Mpowerpc*} == ""
|
||||
BROKEN_OPTIONS+=LOADER_OFW
|
||||
.endif
|
||||
# UBOOT is only for arm, mips and powerpc, exclude others
|
||||
.if ${__T:Marm*} == "" && ${__T:Mmips*} == "" && ${__T:Mpowerpc*} == ""
|
||||
# UBOOT is only for arm, and big-endian powerpc
|
||||
.if (${__T:Marm*} == "" && ${__T:Mpowerpc*} == "") || ${__T} == "powerpc64le"
|
||||
BROKEN_OPTIONS+=LOADER_UBOOT
|
||||
.endif
|
||||
# GELI and Lua in loader currently cause boot failures on powerpc.
|
||||
|
@ -81,6 +81,11 @@ SUBDIR_DEPEND_efi+= ${INTERP_DEPENDS}
|
||||
SUBDIR_DEPEND_efi+= fdt
|
||||
.endif
|
||||
|
||||
SUBDIR_DEPEND_uboot+= ${INTERP_DEPENDS}
|
||||
.if ${MK_FDT} != "no"
|
||||
SUBDIR_DEPEND_uboot+= fdt
|
||||
.endif
|
||||
|
||||
SUBDIR_PARALLEL= yes
|
||||
|
||||
.include <bsd.subdir.mk>
|
||||
|
@ -1,7 +0,0 @@
|
||||
# $FreeBSD$
|
||||
|
||||
NO_OBJ=t
|
||||
|
||||
SUBDIR= uboot
|
||||
|
||||
.include <bsd.subdir.mk>
|
@ -1,3 +0,0 @@
|
||||
# $FreeBSD$
|
||||
|
||||
.include "../Makefile.inc"
|
@ -1,68 +0,0 @@
|
||||
# $FreeBSD$
|
||||
|
||||
LOADER_UFS_SUPPORT?= yes
|
||||
LOADER_CD9660_SUPPORT?= no
|
||||
LOADER_MSDOS_SUPPORT?= no
|
||||
LOADER_EXT2FS_SUPPORT?= no
|
||||
LOADER_NET_SUPPORT?= yes
|
||||
LOADER_NFS_SUPPORT?= yes
|
||||
LOADER_TFTP_SUPPORT?= no
|
||||
LOADER_GZIP_SUPPORT?= no
|
||||
LOADER_BZIP2_SUPPORT?= no
|
||||
|
||||
.include <bsd.init.mk>
|
||||
|
||||
FILES+= ubldr ubldr.bin
|
||||
|
||||
NEWVERSWHAT= "U-Boot loader" ${MACHINE_ARCH}
|
||||
INSTALLFLAGS= -b
|
||||
WARNS?= 1
|
||||
# Address at which ubldr will be loaded.
|
||||
# This varies for different boards and SOCs.
|
||||
UBLDR_LOADADDR?= 0x1000000
|
||||
|
||||
# Architecture-specific loader code
|
||||
SRCS= start.S conf.c self_reloc.c vers.c
|
||||
|
||||
.if ${COMPILER_TYPE} == "gcc"
|
||||
CWARNFLAGS.self_reloc.c+= -Wno-error=maybe-uninitialized
|
||||
.endif
|
||||
|
||||
HELP_FILES= ${.CURDIR}/help.uboot ${BOOTSRC}/fdt/help.fdt
|
||||
|
||||
# Always add MI sources
|
||||
.include "${BOOTSRC}/loader.mk"
|
||||
|
||||
LDFLAGS= -nostdlib -static -T ${.CURDIR}/ldscript.${MACHINE_CPUARCH}
|
||||
LDFLAGS+= -Wl,-znotext
|
||||
|
||||
# Pull in common loader code
|
||||
.include "${BOOTSRC}/uboot.mk"
|
||||
|
||||
CFLAGS+= -fPIC
|
||||
|
||||
DPADD= ${LDR_INTERP} ${LIBUBOOT} ${LIBFDT} ${LIBUBOOT_FDT} ${LIBSA}
|
||||
LDADD= ${LDR_INTERP} ${LIBUBOOT} ${LIBFDT} ${LIBUBOOT_FDT} ${LIBSA}
|
||||
|
||||
OBJS+= ${SRCS:N*.h:R:S/$/.o/g}
|
||||
|
||||
ldscript.abs:
|
||||
echo "UBLDR_LOADADDR = ${UBLDR_LOADADDR};" >${.TARGET}
|
||||
|
||||
ldscript.pie:
|
||||
echo "UBLDR_LOADADDR = 0;" >${.TARGET}
|
||||
|
||||
ubldr: ${OBJS} ldscript.abs ${.CURDIR}/ldscript.${MACHINE_CPUARCH} ${DPADD}
|
||||
${CC} ${CFLAGS} -T ldscript.abs ${LDFLAGS} \
|
||||
-o ${.TARGET} ${OBJS} ${LDADD}
|
||||
|
||||
ubldr.pie: ${OBJS} ldscript.pie ${.CURDIR}/ldscript.${MACHINE_CPUARCH} ${DPADD}
|
||||
${CC} ${CFLAGS} -T ldscript.pie ${LDFLAGS} -pie -Wl,-Bsymbolic \
|
||||
-o ${.TARGET} ${OBJS} ${LDADD}
|
||||
|
||||
ubldr.bin: ubldr.pie
|
||||
${OBJCOPY} -S -O binary ubldr.pie ${.TARGET}
|
||||
|
||||
CLEANFILES+= ldscript.abs ldscript.pie ubldr ubldr.pie ubldr.bin
|
||||
|
||||
.include <bsd.prog.mk>
|
@ -1,10 +0,0 @@
|
||||
$FreeBSD$
|
||||
|
||||
NOTE ANY CHANGES YOU MAKE TO THE BOOTBLOCKS HERE. The format of this
|
||||
file is important. Make sure the current version number is on line 6.
|
||||
|
||||
1.3: Remove NAND FS support.
|
||||
1.2: Extended with NAND FS support.
|
||||
1.1: Flattened Device Tree blob support.
|
||||
1.0: Added storage support. Booting from HDD, USB, etc. is now possible.
|
||||
0.5: Initial U-Boot/arm version (netbooting only).
|
@ -6,10 +6,6 @@ NO_OBJ=t
|
||||
|
||||
SUBDIR.yes= boot1.chrp ofw
|
||||
|
||||
.if "${MACHINE_ARCH}" != "powerpc64le"
|
||||
SUBDIR.${MK_FDT}+= uboot
|
||||
.endif
|
||||
|
||||
.if "${MACHINE_ARCH}" == "powerpc64"
|
||||
SUBDIR.${MK_FDT}+= kboot
|
||||
.endif
|
||||
|
@ -1,36 +0,0 @@
|
||||
# $FreeBSD$
|
||||
|
||||
LOADER_UFS_SUPPORT?= yes
|
||||
LOADER_CD9660_SUPPORT?= no
|
||||
LOADER_EXT2FS_SUPPORT?= no
|
||||
LOADER_NET_SUPPORT?= yes
|
||||
LOADER_NFS_SUPPORT?= yes
|
||||
LOADER_TFTP_SUPPORT?= no
|
||||
LOADER_GZIP_SUPPORT?= no
|
||||
LOADER_BZIP2_SUPPORT?= no
|
||||
|
||||
.include <bsd.init.mk>
|
||||
|
||||
BINDIR= /boot/uboot
|
||||
PROG= ubldr
|
||||
NEWVERSWHAT= "U-Boot loader" ${MACHINE_ARCH}
|
||||
INSTALLFLAGS= -b
|
||||
|
||||
# Architecture-specific loader code
|
||||
SRCS= start.S conf.c vers.c ppc64_elf_freebsd.c
|
||||
SRCS+= ucmpdi2.c
|
||||
|
||||
# Always add MI sources
|
||||
.include "${BOOTSRC}/loader.mk"
|
||||
.PATH: ${SYSDIR}/libkern
|
||||
|
||||
LDFLAGS= -nostdlib -static -T ${.CURDIR}/ldscript.powerpc
|
||||
|
||||
.include "${BOOTSRC}/uboot.mk"
|
||||
|
||||
DPADD= ${LDR_INTERP} ${LIBUBOOT} ${LIBFDT} ${LIBUBOOT_FDT} ${LIBSA}
|
||||
LDADD= ${LDR_INTERP} ${LIBUBOOT} ${LIBFDT} ${LIBUBOOT_FDT} ${LIBSA}
|
||||
|
||||
MK_PIE= no
|
||||
|
||||
.include <bsd.prog.mk>
|
@ -1,11 +0,0 @@
|
||||
$FreeBSD$
|
||||
|
||||
NOTE ANY CHANGES YOU MAKE TO THE BOOTBLOCKS HERE. The format of this
|
||||
file is important. Make sure the current version number is on line 6.
|
||||
|
||||
1.1: Flattened Device Tree blob support.
|
||||
1.0: Added storage support.
|
||||
0.6: Integrated with the new U-Boot API
|
||||
0.5: Full network functionality.
|
||||
0.2: Initial U-Boot/PowerPC version derived from the existing
|
||||
OpenFirmware-based.
|
@ -1,21 +0,0 @@
|
||||
# $FreeBSD$
|
||||
|
||||
SRCS+= main.c
|
||||
|
||||
.PATH: ${UBOOTSRC}/common
|
||||
|
||||
CFLAGS+= -I${UBOOTSRC}/common
|
||||
|
||||
# U-Boot standalone support library
|
||||
LIBUBOOT= ${BOOTOBJ}/uboot/lib/libuboot.a
|
||||
CFLAGS+= -I${UBOOTSRC}/lib
|
||||
CFLAGS+= -I${BOOTOBJ}/uboot/lib
|
||||
.if ${MACHINE_CPUARCH} == "arm"
|
||||
SRCS+= metadata.c
|
||||
.endif
|
||||
|
||||
.include "${BOOTSRC}/fdt.mk"
|
||||
|
||||
.if ${MK_FDT} == "yes"
|
||||
LIBUBOOT_FDT= ${BOOTOBJ}/uboot/fdt/libuboot_fdt.a
|
||||
.endif
|
@ -1,9 +1,81 @@
|
||||
# $FreeBSD$
|
||||
|
||||
LOADER_UFS_SUPPORT?= yes
|
||||
LOADER_CD9660_SUPPORT?= no
|
||||
LOADER_MSDOS_SUPPORT?= no
|
||||
LOADER_EXT2FS_SUPPORT?= no
|
||||
LOADER_NET_SUPPORT?= yes
|
||||
LOADER_NFS_SUPPORT?= yes
|
||||
LOADER_TFTP_SUPPORT?= no
|
||||
LOADER_GZIP_SUPPORT?= no
|
||||
LOADER_BZIP2_SUPPORT?= no
|
||||
LOADER_DISK_SUPPORT?= yes
|
||||
|
||||
.include <bsd.init.mk>
|
||||
|
||||
SUBDIR.yes= lib
|
||||
.include "${.CURDIR}/arch/${MACHINE_CPUARCH}/Makefile.inc"
|
||||
|
||||
SUBDIR.${MK_FDT}+=fdt
|
||||
.if ${MK_PIE} == "yes"
|
||||
FILES+= ubldr ubldr.bin
|
||||
OBJS+= ${SRCS:N*.h:R:S/$/.o/g}
|
||||
.else
|
||||
PROG= ubldr
|
||||
.endif
|
||||
|
||||
.include <bsd.subdir.mk>
|
||||
NEWVERSWHAT= "U-Boot loader" ${MACHINE_ARCH}
|
||||
BINDIR= /boot/uboot
|
||||
INSTALLFLAGS= -b
|
||||
WARNS?= 1
|
||||
|
||||
.PATH: ${BOOTSRC}/common
|
||||
.PATH: ${.CURDIR}/arch/${MACHINE_CPUARCH}
|
||||
|
||||
|
||||
.if ${COMPILER_TYPE} == "gcc"
|
||||
CWARNFLAGS.self_reloc.c+= -Wno-error=maybe-uninitialized
|
||||
.endif
|
||||
|
||||
HELP_FILES= ${.CURDIR}/help.uboot ${BOOTSRC}/fdt/help.fdt
|
||||
|
||||
# Always add MI sources
|
||||
.include "${BOOTSRC}/loader.mk"
|
||||
|
||||
LDSCRIPT= ${.CURDIR}/arch/${MACHINE_CPUARCH}/ldscript.${MACHINE_CPUARCH}
|
||||
LDFLAGS= -nostdlib -static -T ${LDSCRIPT}
|
||||
LDFLAGS+= -Wl,-znotext
|
||||
|
||||
SRCS+= main.c vers.c
|
||||
SRCS+= copy.c devicename.c elf_freebsd.c glue.c
|
||||
SRCS+= net.c reboot.c time.c gfx_fb_stub.c
|
||||
SRCS+= uboot_console.c uboot_disk.c uboot_fdt.c uboot_module.c
|
||||
|
||||
CFLAGS.gfx_fb_stub.c += -I${SRCTOP}/contrib/pnglite -I${SRCTOP}/sys/teken
|
||||
CFLAGS.glue.c+= -DHAVE_MEMCPY -I${SRCTOP}/sys/contrib/zlib
|
||||
|
||||
CFLAGS+= -I${BOOTSRC}/common
|
||||
CFLAGS+= -I${.CURDIR}
|
||||
CFLAGS+= -I${.OBJDIR}
|
||||
|
||||
.if ${MACHINE_CPUARCH} == "arm"
|
||||
SRCS+= metadata.c
|
||||
.endif
|
||||
|
||||
.include "${BOOTSRC}/fdt.mk"
|
||||
|
||||
CFLAGS+= -fPIC
|
||||
|
||||
# Pick up the bootstrap header for some interface items
|
||||
CFLAGS+= -I${LDRSRC}
|
||||
|
||||
# libfdt headers
|
||||
CFLAGS+= -I${FDTSRC}
|
||||
|
||||
.ifdef(BOOT_DISK_DEBUG)
|
||||
# Make the disk code more talkative
|
||||
CFLAGS+= -DDISK_DEBUG
|
||||
.endif
|
||||
|
||||
DPADD= ${LDR_INTERP} ${LIBFDT} ${LIBSA}
|
||||
LDADD= ${LDR_INTERP} ${LIBFDT} ${LIBSA}
|
||||
|
||||
.include <bsd.prog.mk>
|
||||
|
@ -1,3 +0,0 @@
|
||||
# $FreeBSD$
|
||||
|
||||
.include "../Makefile.inc"
|
25
stand/uboot/arch/arm/Makefile.inc
Normal file
25
stand/uboot/arch/arm/Makefile.inc
Normal file
@ -0,0 +1,25 @@
|
||||
# Address at which ubldr will be loaded.
|
||||
# This varies for different boards and SOCs.
|
||||
UBLDR_LOADADDR?= 0x1000000
|
||||
|
||||
SRCS+= start.S conf.c self_reloc.c
|
||||
|
||||
ldscript.abs:
|
||||
echo "UBLDR_LOADADDR = ${UBLDR_LOADADDR};" >${.TARGET}
|
||||
|
||||
ldscript.pie:
|
||||
echo "UBLDR_LOADADDR = 0;" >${.TARGET}
|
||||
|
||||
ubldr: ${OBJS} ldscript.abs ${LDSCRIPT} ${DPADD}
|
||||
${CC} ${CFLAGS} -T ldscript.abs ${LDFLAGS} \
|
||||
-o ${.TARGET} ${OBJS} ${LDADD}
|
||||
|
||||
ubldr.pie: ${OBJS} ldscript.pie ${LDSCRIPT} ${DPADD}
|
||||
${CC} ${CFLAGS} -T ldscript.pie ${LDFLAGS} -pie -Wl,-Bsymbolic \
|
||||
-o ${.TARGET} ${OBJS} ${LDADD}
|
||||
|
||||
ubldr.bin: ubldr.pie
|
||||
${OBJCOPY} -S -O binary ubldr.pie ${.TARGET}
|
||||
|
||||
CLEANFILES+= ldscript.abs ldscript.pie ubldr ubldr.pie ubldr.bin
|
||||
|
6
stand/uboot/arch/powerpc/Makefile.inc
Normal file
6
stand/uboot/arch/powerpc/Makefile.inc
Normal file
@ -0,0 +1,6 @@
|
||||
|
||||
SRCS+= start.S conf.c ppc64_elf_freebsd.c
|
||||
.PATH: ${SYSDIR}/libkern
|
||||
SRCS+= ucmpdi2.c
|
||||
|
||||
MK_PIE= no
|
@ -1,21 +0,0 @@
|
||||
# $FreeBSD$
|
||||
|
||||
.include <bsd.init.mk>
|
||||
|
||||
.PATH: ${LDRSRC}
|
||||
|
||||
LIB= uboot_fdt
|
||||
WARNS?= 2
|
||||
|
||||
SRCS= uboot_fdt.c
|
||||
|
||||
# U-Boot library headers
|
||||
CFLAGS+= -I${UBOOTSRC}/lib
|
||||
|
||||
# libfdt headers
|
||||
CFLAGS+= -I${FDTSRC}
|
||||
|
||||
# Pick up the bootstrap header for some interface items
|
||||
CFLAGS+= -I${LDRSRC}
|
||||
|
||||
.include <bsd.lib.mk>
|
@ -1,30 +0,0 @@
|
||||
# $FreeBSD$
|
||||
|
||||
.include <bsd.init.mk>
|
||||
|
||||
.PATH: ${LDRSRC}
|
||||
|
||||
LIB= uboot
|
||||
WARNS?= 2
|
||||
|
||||
SRCS= console.c copy.c devicename.c elf_freebsd.c glue.c
|
||||
SRCS+= module.c net.c reboot.c time.c gfx_fb_stub.c
|
||||
|
||||
CFLAGS.gfx_fb_stub.c += -I${SRCTOP}/contrib/pnglite -I${SRCTOP}/sys/teken
|
||||
CFLAGS.glue.c+= -DHAVE_MEMCPY -I${SRCTOP}/sys/contrib/zlib
|
||||
|
||||
.if ${LOADER_DISK_SUPPORT:Uyes} == "yes"
|
||||
SRCS+= disk.c
|
||||
.endif
|
||||
|
||||
.include "${BOOTSRC}/fdt.mk"
|
||||
|
||||
# Pick up the bootstrap header for some interface items
|
||||
CFLAGS+= -I${LDRSRC}
|
||||
|
||||
.ifdef(BOOT_DISK_DEBUG)
|
||||
# Make the disk code more talkative
|
||||
CFLAGS+= -DDISK_DEBUG
|
||||
.endif
|
||||
|
||||
.include <bsd.lib.mk>
|
6
stand/uboot/version
Normal file
6
stand/uboot/version
Normal file
@ -0,0 +1,6 @@
|
||||
$FreeBSD$
|
||||
|
||||
NOTE ANY CHANGES YOU MAKE TO THE BOOTBLOCKS HERE. The format of this
|
||||
file is important. Make sure the current version number is on line 6.
|
||||
|
||||
1.5: Unified ubldr build
|
Loading…
Reference in New Issue
Block a user