From owner-freebsd-arm@freebsd.org Wed Jul 15 16:38:14 2015 Return-Path: Delivered-To: freebsd-arm@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E232C9A1EED for ; Wed, 15 Jul 2015 16:38:14 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from pmta2.delivery6.ore.mailhop.org (pmta2.delivery6.ore.mailhop.org [54.200.129.228]) by mx1.freebsd.org (Postfix) with SMTP id B81A91468 for ; Wed, 15 Jul 2015 16:38:14 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from ilsoft.org (unknown [73.34.117.227]) by outbound2.ore.mailhop.org (Halon Mail Gateway) with ESMTPSA; Wed, 15 Jul 2015 16:38:53 +0000 (UTC) Received: from rev (rev [172.22.42.240]) by ilsoft.org (8.14.9/8.14.9) with ESMTP id t6FGc5Dd052170; Wed, 15 Jul 2015 10:38:05 -0600 (MDT) (envelope-from ian@freebsd.org) Message-ID: <1436978285.1334.335.camel@freebsd.org> Subject: Re: ubldr vs ubldr.bin? From: Ian Lepore To: Ronald Klop Cc: freebsd-arm@freebsd.org Date: Wed, 15 Jul 2015 10:38:05 -0600 In-Reply-To: References: Content-Type: text/plain; charset="us-ascii" X-Mailer: Evolution 3.12.10 FreeBSD GNOME Team Port Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "Porting FreeBSD to ARM processors." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Jul 2015 16:38:15 -0000 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