Subject: Re: E250 support and failed boot
To: Mark Blackman <mark.blackman@dircon.net>
From: Eduardo Horvath <eeh@turbolinux.com>
List: port-sparc64
Date: 08/24/2000 13:25:39
On Thu, 24 Aug 2000, Mark Blackman wrote:

> > Could you type `ctrace', `.trap-registers', `.registers', and `0 .window'
> > here?
> > 
> > Eduardo Horvath				   
> > 
> (as requested)
> 
> Sun (TM) Enterprise 250 (UltraSPARC-II 296MHz), No Keyboard
> OpenBoot 3.16, 1024 MB memory installed, Serial #13619721.
> Ethernet address 8:0:20:cf:d2:9, Host ID: 80cfd209.
> 
> 
> 
> Rebooting with command: boot net                                      
> Boot device: /pci@1f,4000/network@1,1  File and args: 
> 15400 >> NetBSD/sparc64 OpenFirmware Boot, Revision 
> >> (mrg@powerofseven.eterna.com.au, Sat Aug 19 02:35:03 EST 2000)
> Using BOOTPARAMS protocol: ip address: 192.168.1.162, hostname: w02.test.net
> root addr=192.168.1.156 path=/export/w02.test.net/root
> loadfile: reading header
> elf64_exec: Booting /pci@1f,4000/network@1,1/netbsd
> 3021759@0xf1000000+221136@0xf1400000+433608@0xf1435fd0 
> symbols @ 0xfefa6300 74+242448+125126 start=0xf1000000
> chain: calling OF_chain(800000, ef18, f1000000, fff89a80, 18)
> [ using 368424 bytes of netbsd ELF symbol table ]
> Fast Data Access MMU Miss                        
> ok ctrace
> PC: f000b168 
> Last leaf: call f0008080    from f00104e0 
>      0 w  %o0-%o5: (f0014a38 0 0 5 fff89b70 0 )

Hm.  Inside the PROM.

> 
> jmpl  f007601c    from f100aaec 
>      1 w  %o0-%o5: (fff895a0 1 d d f007601c 0 )
			^^^^

That should the pointer to the PROM arguments.

> ok .trap-registers
> %TL:1 %TT:68 %TPC:f000b168 %TnPC:f000b16c 
> %TSTATE:4400000403  %CWP:3 
>    %PSTATE:4 AG:0 IE:0 PRIV:1 AM:0 PEF:0 RED:0 MM:0 TLE:0 CLE:0 MG:0 IG:0 
>    %ASI:0  %CCR:44  XCC:nZvc   ICC:nZvc

If you could take the %TPC value and do `<tpc> dis' we could see what
instruction trapped and thus look up the address in the register dumps.

Also you can do `<addr> <size> dump' to display parts of the
arguments.  The basic format is:

name	pointer to string
ins	integer
outs	integer
....

So by dumping the contents of the argument vector and selectively dumping
what the arguments point to we can find out what the operation is and
possibly if any of the arguments point to memory not mapped in the PROM.

Eduardo Horvath