Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F102557039
D33362.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
14 KB
Referenced Files
None
Subscribers
None
D33362.diff
View Options
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
Details
Attached
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)
Attached To
Mode
D33362: stand/uboot: reorg
Attached
Detach File
Event Timeline
Log In to Comment