From owner-freebsd-arm@FreeBSD.ORG Thu Dec 13 02:07:03 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 8DDFDE8B for ; Thu, 13 Dec 2012 02:07:03 +0000 (UTC) (envelope-from freebsd@damnhippie.dyndns.org) Received: from duck.symmetricom.us (duck.symmetricom.us [206.168.13.214]) by mx1.freebsd.org (Postfix) with ESMTP id 14E588FC0C for ; Thu, 13 Dec 2012 02:07:02 +0000 (UTC) Received: from damnhippie.dyndns.org (daffy.symmetricom.us [206.168.13.218]) by duck.symmetricom.us (8.14.5/8.14.5) with ESMTP id qBD271x8048346 for ; Wed, 12 Dec 2012 19:07:01 -0700 (MST) (envelope-from freebsd@damnhippie.dyndns.org) Received: from [172.22.42.240] (revolution.hippie.lan [172.22.42.240]) by damnhippie.dyndns.org (8.14.3/8.14.3) with ESMTP id qBD26wkT057202; Wed, 12 Dec 2012 19:06:58 -0700 (MST) (envelope-from freebsd@damnhippie.dyndns.org) Subject: Re: sheevaplug boot from nandfs hangs From: Ian Lepore To: Ronald Klop In-Reply-To: References: Content-Type: text/plain; charset="us-ascii" Date: Wed, 12 Dec 2012 19:06:58 -0700 Message-ID: <1355364418.87661.489.camel@revolution.hippie.lan> Mime-Version: 1.0 X-Mailer: Evolution 2.32.1 FreeBSD GNOME Team Port Content-Transfer-Encoding: 7bit Cc: freebsd-arm@freebsd.org 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: Thu, 13 Dec 2012 02:07:03 -0000 On Thu, 2012-12-13 at 02:06 +0100, Ronald Klop wrote: > Hello, > > I succeeded in installing and booting my kernel (SHEEVAPLUG 10-current > from 22 nov.) from nandfs. I followed all the advise at > http://wiki.freebsd.org/NAND. But the rootfs will not mount/start. > > The end of the bootinfo is this: > cryptosoft0: > Timecounters tick every 1.000 msec > ipfw2 initialized, divert loadable, nat loadable, default to accept, > logging disabled > usbus0: 480Mbps High Speed USB v2.0 > ugen0.1: at usbus0 > uhub0: on usbus0 > uhub0: 1 port with 1 removable, self powered > Root mount waiting for: usbus0 > ugen0.2: at usbus0 > umass0: on > usbus0 > umass0: SCSI over Bulk-Only; quirks = 0x4000 > umass0:0:0:-1: Attached to scbus0 > Trying to mount root from nandfs:/dev/gnand0s.root []... > WARNING: NANDFS is considered to be a highly experimental feature in > FreeBSD. > (probe0:umass-sim0:0:0:0): INQUIRY. CDB: 12 0 0 0 24 0 > (probe0:umass-sim0:0:0:0): CAM status: CCB request completed with an error > (probe0:umass-sim0:0:0:0): Retrying command > da0 at umass-sim0 bus 0 scbus0 target 0 lun 0 > da0: Removable Direct Access SCSI-0 device > da0: 40.000MB/s transfers > da0: 3894MB (7975296 512 byte sectors: 255H 63S/T 496C) > > The kernel is responsive because if I remove or insert the usb stick it > displays messages about it. (Not shown above) > I'm connected via serial. What could be wrong? What information can I give > more? > I installed /dev/gnand0s.root by tarring the content of / on my usb stick > to the mounted /dev/gnand0s.root. That looked ok. > > Regards, > Ronald. Hmm, so the root mount happens, but init never gets started, or never gets far enough to show signs of being started. Mounting root is invoked from sys/kern/init_main.c, I guess what I'd do next is add some printfs in there to see if vfs_mountroot() is returning and if so how much farther it gets. Hmmm, if your kernel is built with ALT_BREAK_TO_DEBUGGER then on the serial console maybe you can CR ~ ^B and poke around. Hmmm, or maybe not, because I just tried that on my dreamplug and it just spewed this many times: root@dpcur:/root # ~KDB: enter: Break to debugger [ thread pid 10 tid 100002 ] Stopped at kdb_enter+0x48:panic: mtx_lock() by idle thread 0xc3593c00 on sleep mutex pmap @ /local/build/staging/freebsd/dp10/src/sys/arm/arm/pmap.c:3662 panic: mtx_lock() by idle thread 0xc3593c00 on sleep mutex eventhandler @ /local/build/staging/freebsd/dp10/src/sys/kern/subr_eventhandler.c:251 KDB: enter: panic and apparently recursed until it ran out of stack and locked up. So I guess it'll be printf-debugging to the rescue. :) I can confirm that this should be working. I've got a similar setup going on Atmel arm chips, although I haven't sync'd up with -current for a while, I'm at r241077 on that project. Right now I still load the kernel from sdcard but root gets mounted from the nand and the system runs. Performance is horrible (this is a low end arm, 180mhz), but it works. nand0: mem 0xe0000000-0xefffffff on atmelarm0 nandbus0: on nand0 onand0: on nandbus0 onand0: Found BBT table for chip Timecounters tick every 10.000 msec usbus0: 12Mbps Full Speed USB v1.0 ugen0.1: at usbus0 uhub0: on usbus0 mmcsd0: 1876MB at mmc0 22.5MHz/1bit/64-block Root mount waiting for: usbus0 uhub0: 2 ports with 2 removable, self powered Root mount waiting for: usbus0 ugen0.2: at usbus0 Root mount waiting for: usbus0 Root mount waiting for: usbus0 ugen0.3: at usbus0 (disconnected) Trying to mount root from nandfs:/dev/gnand0s.root []... WARNING: NANDFS is considered to be a highly experimental feature in FreeBSD. warning: no time-of-day clock registered, system time will not be set accurately Starting file system checks: -- Ian