ubldr vs ubldr.bin?
Ian Lepore
ian at freebsd.org
Wed Jul 15 16:38:15 UTC 2015
On Wed, 2015-07-15 at 15:04 +0200, Ronald Klop wrote:
> Hello,
>
> What is the difference between ubldr and ubldr.bin?
>
> [root at sheeva ~]# ls -l /boot/ubldr*
> -r--r--r-- 1 root wheel 283086 Jul 11 00:34 /boot/ubldr
> -r--r--r-- 1 root wheel 235212 Jul 11 00:34 /boot/ubldr.bin
> -r-xr-xr-x 1 root wheel 214432 Jan 8 2015 /boot/ubldr.old
>
>
> Regards,
> Ronald.
ubldr is an elf binary that must be loaded at the address it was built
for (the UBLDR_LOADADDR address). ubldr.bin is a raw executable image
(no elf headers) which is self-relocating and can be loaded at any
address. ubldr is launched with the bootelf command, and thus requires
CONFIG_ELF in u-boot. ubldr.bin is launched with "go ${loadaddr}".
So all in all, ubldr.bin is the new way of things, and ubldr is still
being built only for compatibility with people that have older u-boot
installed. (Right now that's pretty much everybody, because I haven't
actually updated any of the u-boot ports yet to use ubldr.bin, because
I've been too busy with $work.)
The big thing ubldr.bin gets us is a common armv6[hf] userland that runs
on any board. Previously the single userland difference between various
arm boards is that UBLDR_LOADADDR was different for each board.
-- Ian
More information about the freebsd-arm
mailing list