Subject: Re: 1.6 miniroot won't boot
To: None <eeh@netbsd.org>
From: Manuel Bouyer <bouyer@antioche.lip6.fr>
List: port-sparc64
Date: 06/07/2002 18:37:57
On Fri, Jun 07, 2002 at 04:24:28PM -0000, eeh@netbsd.org wrote:
> 
> | On Fri, Jun 07, 2002 at 03:48:14PM -0000, eeh@netbsd.org wrote:
> | > So you get the stack dump during the trace?  Neat!
> | > 
> | > | buf-read-file            
> | > |
> | > | and here it hangs.
> | > 
> | > I'm surpised debug isn't on in all the children as well.  Could you
> | > try turning debug on in buf-read-file as well?
> |
> | Here it is:
> | ok boot disk0:b -DV
> | Boot device: /sbus/espdma@e,8400000/esp@e,8800000/sd@0,0:b  File and args: -DV
> | The file just loaded does not appear to be executable.
> | ok debug buf-read-file
> | Stepper keys: <space> Down Up Continue Forth Go Help ? See $tring Quit
> | ok " /ofwboot" do-boot
> | NetBSD IEEE 1275 Bootblock
> | Loading file /ofwboot
> | from device /sbus@1f,0/espdma@e,8400000/esp@e,8800000/sd@0,0:b
> | ufs-open complete
> | .Looking for ofwboot in directory...
> | : buf-read-file           ( 2 fffebca9 0 fffebca2 7 fff7bff0 )
> | cur-offset                ( 2 fffebca9 0 fffebca2 7 fff7bff0 0 )
> | swap                      ( 2 fffebca9 0 fffebca2 7 0 fff7bff0 )
> | 2dup                      ( 2 fffebca9 0 fffebca2 7 0 fff7bff0 0 fff7bff0 )
> | blkoff                    ( 2 fffebca9 0 fffebca2 7 0 fff7bff0 0 )
> | -rot                      ( 2 fffebca9 0 fffebca2 7 0 0 fff7bff0 )
> | 2dup                      ( 2 fffebca9 0 fffebca2 7 0 0 fff7bff0 0 fff7bff0 )
> | lblkno                    ( 2 fffebca9 0 fffebca2 7 0 0 fff7bff0 0 )
> | swap                      ( 2 fffebca9 0 fffebca2 7 0 0 0 fff7bff0 )
> | 2dup                      ( 2 fffebca9 0 fffebca2 7 0 0 0 fff7bff0 0 fff7bff0 )
> | cur-inode                 ( 2 fffebca9 0 fffebca2 7 0 0 0 fff7bff0 0 fff7bff0 fff73f60 )
> | swap                      ( 2 fffebca9 0 fffebca2 7 0 0 0 fff7bff0 0 fff73f60 fff7bff0 )
> | dblksize                  ( 2 fffebca9 0 fffebca2 7 0 0 0 fff7bff0 800 )
> | rot                       ( 2 fffebca9 0 fffebca2 7 0 0 fff7bff0 800 0 )
> | dup                       ( 2 fffebca9 0 fffebca2 7 0 0 fff7bff0 800 0 0 )
> | cur-blockno               ( 2 fffebca9 0 fffebca2 7 0 0 fff7bff0 800 0 0 60 )
> | l<>                       ( 2 fffebca9 0 fffebca2 7 0 0 fff7bff0 800 0 ffffffffffffffff )
> | l->n                      ( 2 fffebca9 0 fffebca2 7 0 0 fff7bff0 800 0 ffffffffffffffff )
> | if                        ( 2 fffebca9 0 fffebca2 7 0 0 fff7bff0 800 0 )
> | block-map                 ( 2 fffebca9 0 fffebca2 7 0 0 fff7bff0 800 51 )
> | dup                       ( 2 fffebca9 0 fffebca2 7 0 0 fff7bff0 800 51 51 )
> | l0=                       ( 2 fffebca9 0 fffebca2 7 0 0 fff7bff0 800 51 0 )
> | l->n                      ( 2 fffebca9 0 fffebca2 7 0 0 fff7bff0 800 51 0 )
> | if                        ( 2 fffebca9 0 fffebca2 7 0 0 fff7bff0 800 51 )
> | 2dup                      ( 2 fffebca9 0 fffebca2 7 0 0 fff7bff0 800 51 800 51 )
> | sb-buf                    ( 2 fffebca9 0 fffebca2 7 0 0 fff7bff0 800 51 800 51 fff7bff0 )
> | fsbtodb                   ( 2 fffebca9 0 fffebca2 7 0 0 fff7bff0 800 51 800 144 )
> | cur-block                 ( 2 fffebca9 0 fffebca2 7 0 0 fff7bff0 800 51 800 144 fff73ff0 )
> | -rot                      ( 2 fffebca9 0 fffebca2 7 0 0 fff7bff0 800 51 fff73ff0 800 144 )
> | strategy                  ( 2 fffebca9 0 fffebca2 7 0 0 fff7bff0 800 51 0 )
> 
> Hm...  All strategy does is try to read a single block from the disk.
> It's trying to read 0x800 bytes from 0x144 blocks in and deposit the
> results at address fff73ff0.  It returns the amount read, which in this
> case is 0, so it failed.  Could you try to debug strategy?  It appears
> that the read operation on the disk is not succeeding.

No problems, here it is:
Rebooting with command: boot disk0:b -DV                              
Boot device: /sbus/espdma@e,8400000/esp@e,8800000/sd@0,0:b  File and args: -DV
The file just loaded does not appear to be executable.
ok debug strategy
Stepper keys: <space> Down Up Continue Forth Go Help ? See $tring Quit
ok " /ofwboot" do-boot
NetBSD IEEE 1275 Bootblock
Loading file /ofwboot
from device /sbus@1f,0/espdma@e,8400000/esp@e,8800000/sd@0,0:b
ufs-open complete
.
: strategy                ( fffe6809 fffebca1 8 2 2 fffadff0 fff97ff0 4000 fff97ff0 4000 60 )
raid-offset               ( fffe6809 fffebca1 8 2 2 fffadff0 fff97ff0 4000 fff97ff0 4000 60 0 )
+                         ( fffe6809 fffebca1 8 2 2 fffadff0 fff97ff0 4000 fff97ff0 4000 60 )
bsize                     ( fffe6809 fffebca1 8 2 2 fffadff0 fff97ff0 4000 fff97ff0 4000 60 200 )
*                         ( fffe6809 fffebca1 8 2 2 fffadff0 fff97ff0 4000 fff97ff0 4000 c000 )
0                         ( fffe6809 fffebca1 8 2 2 fffadff0 fff97ff0 4000 fff97ff0 4000 c000 0 )
" seek"                   ( fffe6809 fffebca1 8 2 2 fffadff0 fff97ff0 4000 fff97ff0 4000 c000 0 f007a565 4 )
boot-ihandle              ( fffe6809 fffebca1 8 2 2 fffadff0 fff97ff0 4000 fff97ff0 4000 c000 0 f007a565 4 fffad940 )
$call-method              ( fffe6809 fffebca1 8 2 2 fffadff0 fff97ff0 4000 fff97ff0 4000 0 )
-1                        ( fffe6809 fffebca1 8 2 2 fffadff0 fff97ff0 4000 fff97ff0 4000 0 ffffffffffffffff )
l=                        ( fffe6809 fffebca1 8 2 2 fffadff0 fff97ff0 4000 fff97ff0 4000 0 )
l->n                      ( fffe6809 fffebca1 8 2 2 fffadff0 fff97ff0 4000 fff97ff0 4000 0 )
if                        ( fffe6809 fffebca1 8 2 2 fffadff0 fff97ff0 4000 fff97ff0 4000 )
" read"                   ( fffe6809 fffebca1 8 2 2 fffadff0 fff97ff0 4000 fff97ff0 4000 f007a5b5 4 )
boot-ihandle              ( fffe6809 fffebca1 8 2 2 fffadff0 fff97ff0 4000 fff97ff0 4000 f007a5b5 4 fffad940 )
$call-method              ( fffe6809 fffebca1 8 2 2 fffadff0 fff97ff0 4000 4000 )
;                        
Looking for ofwboot in directory...
: strategy                ( fffe6809 2 fffebca9 0 fffebca2 7 0 0 fffadff0 800 51 fff97ff0 800 144 )
raid-offset               ( fffe6809 2 fffebca9 0 fffebca2 7 0 0 fffadff0 800 51 fff97ff0 800 144 0 )
+                         ( fffe6809 2 fffebca9 0 fffebca2 7 0 0 fffadff0 800 51 fff97ff0 800 144 )
bsize                     ( fffe6809 2 fffebca9 0 fffebca2 7 0 0 fffadff0 800 51 fff97ff0 800 144 200 )
*                         ( fffe6809 2 fffebca9 0 fffebca2 7 0 0 fffadff0 800 51 fff97ff0 800 28800 )
0                         ( fffe6809 2 fffebca9 0 fffebca2 7 0 0 fffadff0 800 51 fff97ff0 800 28800 0 )
" seek"                   ( fffe6809 2 fffebca9 0 fffebca2 7 0 0 fffadff0 800 51 fff97ff0 800 28800 0 f007a565 4 )
boot-ihandle              ( fffe6809 2 fffebca9 0 fffebca2 7 0 0 fffadff0 800 51 fff97ff0 800 28800 0 f007a565 4 fffad940 )
$call-method              ( fffe6809 2 fffebca9 0 fffebca2 7 0 0 fffadff0 800 51 fff97ff0 800 0 )
-1                        ( fffe6809 2 fffebca9 0 fffebca2 7 0 0 fffadff0 800 51 fff97ff0 800 0 ffffffffffffffff )
l=                        ( fffe6809 2 fffebca9 0 fffebca2 7 0 0 fffadff0 800 51 fff97ff0 800 0 )
l->n                      ( fffe6809 2 fffebca9 0 fffebca2 7 0 0 fffadff0 800 51 fff97ff0 800 0 )
if                        ( fffe6809 2 fffebca9 0 fffebca2 7 0 0 fffadff0 800 51 fff97ff0 800 )
" read"                   ( fffe6809 2 fffebca9 0 fffebca2 7 0 0 fffadff0 800 51 fff97ff0 800 f007a5b5 4 )
boot-ihandle              ( fffe6809 2 fffebca9 0 fffebca2 7 0 0 fffadff0 800 51 fff97ff0 800 f007a5b5 4 fffad940 )
$call-method              ( fffe6809 2 fffebca9 0 fffebca2 7 0 0 fffadff0 800 51 0 )
;


ok


I guess $call-method jumps into OFW ?
BTW, is 0x144 a block offset from the start of the disk ? In which unit is it ?
My partition table is :
a:  3073440        0     4.2BSD     1024  8192    16   # (Cyl.    0 - 2021)
b:  1080720  3073440     4.2BSD     1024  8192    16   # (Cyl. 2022 - 2732)
c:  4152640        0    unknown                        # (Cyl.    0 - 2731)

0x144 is 324 in decimal, and if it's inside the b partition I can't see
which unit it is ... 

--
Manuel Bouyer, LIP6, Universite Paris VI.           Manuel.Bouyer@lip6.fr
     NetBSD: 23 ans d'experience feront toujours la difference
--