Port-sparc archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Data Access Exception when trying to Boot installed NetBSD of hard drive



On Mon, 13 Oct 2014, Adrian Christiansen wrote:

> Hi Eduardo!
> 
> I see, thought this would be the case too.
> 
> Here's the output of those two if it would help anyone:
> 
> ok .s
> Empty
> 
> ok ctrace
> PC: ffe9a430
> Last leaf: call ffe9985c    from ffea5da4
>      0 w  %o0-%o5: (        1   38786f        1 ffd40000 ffefffbf ffe8ef04 )
> 
> jmpl  ffea794c    from 388e7c
>      1 w  %o0-%o5: ( ffefb8a0        0     2000 ffd40000       ff       66 )
> 
> jmpl  ffea794c    from 388180
>      2 w  %o0-%o5: (        0        0     2000        0        0        0 )
> 
> jmpl  ffea794c    from 38d1c4
>      3 w  %o0-%o5: (   398c60        1        0       10     2000   398e50 )
> 
> jmpl  ffea794c    from 391924
>      4 w  %o0-%o5: (   387ee8   398bd8   398400   387df4   387e44        0 )
> 
> call 391818    from 39113c
>      5 w  %o0-%o5: (   387ee8        1   387ecc       1f fff7fffc ffea6fd8 )
> 
> call 391134    from 38a898
>      6 w  %o0-%o5: (   387ee8        0   396dc8 ffffddbb ffeffd7f        0 )
> 
> call 38a4f0    from 38811c
>      7 w  %o0-%o5: (   3960f0   396120   396178   384000     2000 ffffc000 )
> 
> jmpl  ffea794c    from 300c40
>      8 w  %o0-%o5: ( ffe8f3c8   388000   2fff9c ffd40000 ffefffbf ffe8ef04 )
> 
> call 300b64    from 30011c
>      9 w  %o0-%o5: ( ffe8f3c8   301c00        0 ffd40000       ff  fffffff )
> 
> XXXXXXX    from 0
>      a w  %o0-%o5: ( ffe8f3c8   300000        0        0        0        0 )
> 
> That looks even less helpful, is there a way to find some declarations
> or labels for those addresses?

What you need to do is run objdump or gcc on the two bootloader binaries 
to get the code and data addresses.  Then just correlate them with the 
values from the stack.

Assuming the firmware is dumping the correct values, the first value you 
see is the instruction being used, either call or jump and link, followed 
by the branch destination, and I think the next field is the address of 
the calling instruction itself.   You also have the first 5 function 
parameters.  

OBP resides at address 0xff000000.  The stuff at 0x380000 and 0x300000 are 
probably the bootloaders.

OBP 3.x has mechanisms to load symbols, something I'm not sure 2.x 
supports.

(Another option would be to see if the sparc64 FCode bootblock can be made 
to run on OBP 2.x.  That's capable of walking the filesystem in 7.5KB, 
instead of having a list of absolute disk blocks to read.)

Eduardo


Home | Main Index | Thread Index | Old Index