[OpenBIOS] OpenSolaris starts to live on SPARC64
Blue Swirl
blauwirbel at gmail.com
Fri Apr 2 18:48:38 CEST 2010
On 4/2/10, Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk> wrote:
> Blue Swirl wrote:
>
>
> > Sorry, I misread that you had loaded the kernel manually.
> >
> > The crash seems to happen within OpenBIOS.
> >
>
> Yeah, it did seem to lie within the OpenBIOS symbol range. Perhaps it's
> something going wrong in one of the CIF calls from the kernel into OB? I
> seem to recall there's a DEBUG_CIF in libopenbios/client.c that traces these
> things...
No, this is fetch from kernel/forth.c:589. Pretty difficult to use
breakpoints directly.
But I put a breakpoint in trap table to get at least the registers:
Breakpoint 3, 0x00000000ffd00680 in trap_table ()
at ../arch/sparc64/vectors.S:123
123 BTRAPS(0x30) BTRAPS(0x38)
Current language: auto; currently asm
(gdb) info registers
g0 0x0 0x0
g1 0x1b3c059d7 0x1b3c059d7
g2 0x1b327c357 0x1b327c357
g3 0x0 0x0
g4 0x0 0x0
g5 0x0 0x0
g6 0x0 0x0
g7 0x0 0x0
o0 0xffe13a08 0xffe13a08
o1 0x20 0x20
o2 0xffee3000 0xffee3000
o3 0x108 0x108
o4 0xffee3c00 0xffee3c00
o5 0x138 0x138
sp 0xffe019f9 0xffe019f9
o7 0xffd0ce70 0xffd0ce70
l0 0x18125a0 0x18125a0
l1 0x1c00 0x1c00
l2 0x10ba168 0x10ba168
l3 0x10ba000 0x10ba000
l4 0x2 0x2
l5 0x5 0x5
l6 0x10ba128 0x10ba128
l7 0x10ba000 0x10ba000
i0 0x1b8 0x1b8
i1 0xffe28280 0xffe28280
i2 0x0 0x0
i3 0x1a 0x1a
i4 0xd8 0xd8
i5 0xffee3000 0xffee3000
fp 0xffe01ab9 0xffe01ab9
i7 0xffd0f714 0xffd0f714
pc 0xffd00680 0xffd00680 <trap_table+1664>
npc 0xffd00684 0xffd00684 <trap_table+1668>
state 0x4400001505 0x4400001505
fsr 0x0 [ ]
fprs 0x0 [ ]
y 0x0 0x0
cwp 0x5 0x5
pstate 0x15 [ AG PRIV PEF ]
asi 0x0 0x0
ccr 0x44 0x44
The offending instruction is:
0x00000000ffd0e920 <fetch+64>: ldx [ %g2 ], %g2
I can't remember offhand if the global registers are from the caller
or alternate ones. If they are already from alternate sets, then we
have to use additional GDB to debug also QEMU.
More information about the OpenBIOS
mailing list