From owner-freebsd-arm@FreeBSD.ORG Sat Oct 20 04:09:07 2012 Return-Path: Delivered-To: freebsd-arm@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 6AF66351 for ; Sat, 20 Oct 2012 04:09:07 +0000 (UTC) (envelope-from tim@kientzle.com) Received: from monday.kientzle.com (99-115-135-74.uvs.sntcca.sbcglobal.net [99.115.135.74]) by mx1.freebsd.org (Postfix) with ESMTP id 431018FC14 for ; Sat, 20 Oct 2012 04:09:06 +0000 (UTC) Received: (from root@localhost) by monday.kientzle.com (8.14.4/8.14.4) id q9K48pLj000299; Sat, 20 Oct 2012 04:08:51 GMT (envelope-from tim@kientzle.com) Received: from [192.168.2.143] (CiscoE3000 [192.168.1.65]) by kientzle.com with SMTP id u587xwsn98itgbndbcy2scr3ys; Sat, 20 Oct 2012 04:08:51 +0000 (UTC) (envelope-from tim@kientzle.com) Subject: Re: ubldr hangs on Exynos 4412 Mime-Version: 1.0 (Apple Message framework v1283) Content-Type: text/plain; charset=us-ascii From: Tim Kientzle In-Reply-To: <20121019200522.GA24298@jail.io> Date: Fri, 19 Oct 2012 21:08:49 -0700 Content-Transfer-Encoding: 7bit Message-Id: References: <20121015060703.GA58633@jail.io> <6F20448B-96A0-428B-ACC1-1B2E08E53EEE@kientzle.com> <20121019200522.GA24298@jail.io> To: Ruslan Bukin X-Mailer: Apple Mail (2.1283) Cc: freebsd-arm X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Porting FreeBSD to the StrongARM Processor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 20 Oct 2012 04:09:07 -0000 > Thanks, Tim, it helps: > bootelf 0x40008000 > ## Starting application at 0x40008054 ... > Consoles: U-Boot console > Compatible API signature found @c3d000c0 > > but now, ubldr hangs on first syscall in glue.c (function ub_dev_enum) > syscall(API_DEV_ENUM, NULL, di) > > why it can happen? Are you using the U-Boot from Arago project? Check disk/part.c to make sure it has this fix: diff --git a/disk/part.c b/disk/part.c index f07a17f..e0022d1 100644 --- a/disk/part.c +++ b/disk/part.c @@ -80,6 +80,8 @@ block_dev_desc_t *get_dev(char* ifname, int dev) block_dev_desc_t* (*reloc_get_dev)(int dev); char *name; + if (ifname == NULL) + return NULL; name = drvr->name; #ifdef CONFIG_NEEDS_MANUAL_RELOC name += gd->reloc_off;