Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 15 Dec 2012 18:51:23 +0100
From:      "Ronald Klop" <ronald-freebsd8@klop.yi.org>
To:        freebsd-arm@freebsd.org
Subject:   Re: sheevaplug boot from nandfs hangs
Message-ID:  <op.wpdc7xlc8527sy@212-182-167-131.ip.telfort.nl>
In-Reply-To: <op.wpc9v5ew8527sy@212-182-167-131.ip.telfort.nl>
References:  <op.wo8dciyp8527sy@212-182-167-131.ip.telfort.nl> <1355364418.87661.489.camel@revolution.hippie.lan> <op.wpc9v5ew8527sy@212-182-167-131.ip.telfort.nl>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 15 Dec 2012 17:39:31 +0100, Ronald Klop  
<ronald-freebsd8@klop.yi.org> wrote:

> On Thu, 13 Dec 2012 03:06:58 +0100, Ian Lepore  
> <freebsd@damnhippie.dyndns.org> wrote:
>
>> 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: <software crypto>
>>> 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: <Marvell> at usbus0
>>> uhub0: <Marvell EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on  
>>> usbus0
>>> uhub0: 1 port with 1 removable, self powered
>>> Root mount waiting for: usbus0
>>> ugen0.2: <USB 2.0> at usbus0
>>> umass0: <USB 2.0 USB Flash Drive, class 0/0, rev 2.00/11.00, addr 2> 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: <USB 2.0 USB Flash Drive 1100> 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: <AT91 Integrated NAND controller> mem 0xe0000000-0xefffffff on  
>> atmelarm0
>> nandbus0: <NAND bus> on nand0
>> onand0: <ONFI compliant NAND> on nandbus0
>> onand0: Found BBT table for chip
>> Timecounters tick every 10.000 msec
>> usbus0: 12Mbps Full Speed USB v1.0
>> ugen0.1: <Atmel> at usbus0
>> uhub0: <Atmel OHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus0
>> mmcsd0: 1876MB <SD SU02G 8.0 SN 3406901 MFG 09/2010 by 48 SD> 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: <Novatel Inc.> at usbus0
>> Root mount waiting for: usbus0
>> Root mount waiting for: usbus0
>> ugen0.3: <Unknown> 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
>
> Hi,
>
> Thanks for the hint. Compiling a new kernel with printf now. I saw  
> bootverbose also prints more information. How do I enable that on ARM  
> from the bootprompt?
> NB: break to debugger works on my Sheevaplug. But I am not familiar with  
> its commands to see what it is doing. Can I force a coredump and would  
> somebody be interested to look at it?
>
> Ronald.

I also defaulted bootverbose to 1 in init_main.c. Now I get this.

ipfw2 initialized, divert loadable, nat loadable, default to accept,  
logging disabled
lo0: bpf attached
GEOM: new disk gnand0
GEOM: new disk gnand.raw0
usbus0: 480Mbps High Speed USB v2.0
gnand0: slice 00000000-001fffff: u-boot (2047KB)
gnand0: slice 00200000-007fffff: fbsd-boot (6143KB)
gnand0: slice 00800000-1fffffff: root (516095KB)
ugen0.1: <Marvell> at usbus0
uhub0: <Marvell EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus0
gnand.raw0: slice 00000000-001fffff: u-boot (2047KB)
gnand.raw0: slice 00200000-007fffff: fbsd-boot (6143KB)
gnand.raw0: slice 00800000-1fffffff: root (516095KB)
uhub0: 1 port with 1 removable, self powered
Trying to mount root from nandfs:/dev/gnand0s.root []...
WARNING: NANDFS is considered to be a highly experimental feature in  
FreeBSD.
mountroot: unable to remount devfs under /dev (error 2).
mountroot: unable to unlink /dev/dev (error 2)
after vfs_mountroot()
start_init: trying /sbin/init

The 'after vfs_mountroot()' is my own printf. I also verified sys_execve  
of /sbin/init returned 0.
How do I go from here?

Ronald.



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