Page MenuHomeFreeBSD

D33362.diff
No OneTemporary

D33362.diff

diff --git a/share/mk/src.opts.mk b/share/mk/src.opts.mk
--- a/share/mk/src.opts.mk
+++ b/share/mk/src.opts.mk
@@ -314,8 +314,8 @@
.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.
diff --git a/stand/Makefile b/stand/Makefile
--- a/stand/Makefile
+++ b/stand/Makefile
@@ -81,6 +81,11 @@
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>
diff --git a/stand/arm/Makefile b/stand/arm/Makefile
deleted file mode 100644
--- a/stand/arm/Makefile
+++ /dev/null
@@ -1,7 +0,0 @@
-# $FreeBSD$
-
-NO_OBJ=t
-
-SUBDIR= uboot
-
-.include <bsd.subdir.mk>
diff --git a/stand/arm/Makefile.inc b/stand/arm/Makefile.inc
deleted file mode 100644
--- a/stand/arm/Makefile.inc
+++ /dev/null
@@ -1,3 +0,0 @@
-# $FreeBSD$
-
-.include "../Makefile.inc"
diff --git a/stand/arm/uboot/Makefile b/stand/arm/uboot/Makefile
deleted file mode 100644
--- a/stand/arm/uboot/Makefile
+++ /dev/null
@@ -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>
diff --git a/stand/arm/uboot/version b/stand/arm/uboot/version
deleted file mode 100644
--- a/stand/arm/uboot/version
+++ /dev/null
@@ -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).
diff --git a/stand/powerpc/Makefile b/stand/powerpc/Makefile
--- a/stand/powerpc/Makefile
+++ b/stand/powerpc/Makefile
@@ -6,10 +6,6 @@
SUBDIR.yes= boot1.chrp ofw
-.if "${MACHINE_ARCH}" != "powerpc64le"
-SUBDIR.${MK_FDT}+= uboot
-.endif
-
.if "${MACHINE_ARCH}" == "powerpc64"
SUBDIR.${MK_FDT}+= kboot
.endif
diff --git a/stand/powerpc/uboot/Makefile b/stand/powerpc/uboot/Makefile
deleted file mode 100644
--- a/stand/powerpc/uboot/Makefile
+++ /dev/null
@@ -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>
diff --git a/stand/powerpc/uboot/version b/stand/powerpc/uboot/version
deleted file mode 100644
--- a/stand/powerpc/uboot/version
+++ /dev/null
@@ -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.
diff --git a/stand/uboot.mk b/stand/uboot.mk
deleted file mode 100644
--- a/stand/uboot.mk
+++ /dev/null
@@ -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
diff --git a/stand/uboot/Makefile b/stand/uboot/Makefile
--- a/stand/uboot/Makefile
+++ b/stand/uboot/Makefile
@@ -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"
+
+.if ${MK_PIE} == "yes"
+FILES+= ubldr ubldr.bin
+OBJS+= ${SRCS:N*.h:R:S/$/.o/g}
+.else
+PROG= ubldr
+.endif
+
+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
-SUBDIR.${MK_FDT}+=fdt
+DPADD= ${LDR_INTERP} ${LIBFDT} ${LIBSA}
+LDADD= ${LDR_INTERP} ${LIBFDT} ${LIBSA}
-.include <bsd.subdir.mk>
+.include <bsd.prog.mk>
diff --git a/stand/uboot/Makefile.inc b/stand/uboot/Makefile.inc
deleted file mode 100644
--- a/stand/uboot/Makefile.inc
+++ /dev/null
@@ -1,3 +0,0 @@
-# $FreeBSD$
-
-.include "../Makefile.inc"
diff --git a/stand/uboot/lib/api_public.h b/stand/uboot/api_public.h
rename from stand/uboot/lib/api_public.h
rename to stand/uboot/api_public.h
diff --git a/stand/uboot/arch/arm/Makefile.inc b/stand/uboot/arch/arm/Makefile.inc
new file mode 100644
--- /dev/null
+++ b/stand/uboot/arch/arm/Makefile.inc
@@ -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
+
diff --git a/stand/arm/uboot/conf.c b/stand/uboot/arch/arm/conf.c
rename from stand/arm/uboot/conf.c
rename to stand/uboot/arch/arm/conf.c
diff --git a/stand/arm/uboot/ldscript.arm b/stand/uboot/arch/arm/ldscript.arm
rename from stand/arm/uboot/ldscript.arm
rename to stand/uboot/arch/arm/ldscript.arm
diff --git a/stand/arm/uboot/start.S b/stand/uboot/arch/arm/start.S
rename from stand/arm/uboot/start.S
rename to stand/uboot/arch/arm/start.S
diff --git a/stand/uboot/arch/powerpc/Makefile.inc b/stand/uboot/arch/powerpc/Makefile.inc
new file mode 100644
--- /dev/null
+++ b/stand/uboot/arch/powerpc/Makefile.inc
@@ -0,0 +1,6 @@
+
+SRCS+= start.S conf.c ppc64_elf_freebsd.c
+.PATH: ${SYSDIR}/libkern
+SRCS+= ucmpdi2.c
+
+MK_PIE= no
diff --git a/stand/powerpc/uboot/conf.c b/stand/uboot/arch/powerpc/conf.c
rename from stand/powerpc/uboot/conf.c
rename to stand/uboot/arch/powerpc/conf.c
diff --git a/stand/powerpc/uboot/ldscript.powerpc b/stand/uboot/arch/powerpc/ldscript.powerpc
rename from stand/powerpc/uboot/ldscript.powerpc
rename to stand/uboot/arch/powerpc/ldscript.powerpc
diff --git a/stand/powerpc/uboot/ppc64_elf_freebsd.c b/stand/uboot/arch/powerpc/ppc64_elf_freebsd.c
rename from stand/powerpc/uboot/ppc64_elf_freebsd.c
rename to stand/uboot/arch/powerpc/ppc64_elf_freebsd.c
diff --git a/stand/powerpc/uboot/start.S b/stand/uboot/arch/powerpc/start.S
rename from stand/powerpc/uboot/start.S
rename to stand/uboot/arch/powerpc/start.S
diff --git a/stand/uboot/lib/copy.c b/stand/uboot/copy.c
rename from stand/uboot/lib/copy.c
rename to stand/uboot/copy.c
diff --git a/stand/uboot/lib/devicename.c b/stand/uboot/devicename.c
rename from stand/uboot/lib/devicename.c
rename to stand/uboot/devicename.c
diff --git a/stand/uboot/lib/elf_freebsd.c b/stand/uboot/elf_freebsd.c
rename from stand/uboot/lib/elf_freebsd.c
rename to stand/uboot/elf_freebsd.c
diff --git a/stand/uboot/fdt/Makefile b/stand/uboot/fdt/Makefile
deleted file mode 100644
--- a/stand/uboot/fdt/Makefile
+++ /dev/null
@@ -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>
diff --git a/stand/uboot/lib/glue.h b/stand/uboot/glue.h
rename from stand/uboot/lib/glue.h
rename to stand/uboot/glue.h
diff --git a/stand/uboot/lib/glue.c b/stand/uboot/glue.c
rename from stand/uboot/lib/glue.c
rename to stand/uboot/glue.c
diff --git a/stand/arm/uboot/help.uboot b/stand/uboot/help.uboot
rename from stand/arm/uboot/help.uboot
rename to stand/uboot/help.uboot
diff --git a/stand/uboot/lib/Makefile b/stand/uboot/lib/Makefile
deleted file mode 100644
--- a/stand/uboot/lib/Makefile
+++ /dev/null
@@ -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>
diff --git a/stand/uboot/lib/libuboot.h b/stand/uboot/libuboot.h
rename from stand/uboot/lib/libuboot.h
rename to stand/uboot/libuboot.h
diff --git a/stand/uboot/common/main.c b/stand/uboot/main.c
rename from stand/uboot/common/main.c
rename to stand/uboot/main.c
diff --git a/stand/uboot/lib/net.c b/stand/uboot/net.c
rename from stand/uboot/lib/net.c
rename to stand/uboot/net.c
diff --git a/stand/uboot/lib/reboot.c b/stand/uboot/reboot.c
rename from stand/uboot/lib/reboot.c
rename to stand/uboot/reboot.c
diff --git a/stand/uboot/lib/time.c b/stand/uboot/time.c
rename from stand/uboot/lib/time.c
rename to stand/uboot/time.c
diff --git a/stand/uboot/lib/console.c b/stand/uboot/uboot_console.c
rename from stand/uboot/lib/console.c
rename to stand/uboot/uboot_console.c
diff --git a/stand/uboot/lib/disk.c b/stand/uboot/uboot_disk.c
rename from stand/uboot/lib/disk.c
rename to stand/uboot/uboot_disk.c
diff --git a/stand/uboot/fdt/uboot_fdt.c b/stand/uboot/uboot_fdt.c
rename from stand/uboot/fdt/uboot_fdt.c
rename to stand/uboot/uboot_fdt.c
diff --git a/stand/uboot/lib/module.c b/stand/uboot/uboot_module.c
rename from stand/uboot/lib/module.c
rename to stand/uboot/uboot_module.c
diff --git a/stand/uboot/version b/stand/uboot/version
new file mode 100644
--- /dev/null
+++ b/stand/uboot/version
@@ -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

File Metadata

Mime Type
text/plain
Expires
Fri, Nov 15, 12:54 AM (9 h, 34 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
14636027
Default Alt Text
D33362.diff (14 KB)

Event Timeline