Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 15 Jul 2015 10:38:05 -0600
From:      Ian Lepore <ian@freebsd.org>
To:        Ronald Klop <ronald-lists@klop.ws>
Cc:        freebsd-arm@freebsd.org
Subject:   Re: ubldr vs ubldr.bin?
Message-ID:  <1436978285.1334.335.camel@freebsd.org>
In-Reply-To: <op.x1tfyc2ckndu52@53555a16.cm-6-6b.dynamic.ziggo.nl>
References:  <op.x1tfyc2ckndu52@53555a16.cm-6-6b.dynamic.ziggo.nl>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 2015-07-15 at 15:04 +0200, Ronald Klop wrote:
> Hello,
> 
> What is the difference between ubldr and ubldr.bin?
> 
> [root@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





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1436978285.1334.335.camel>