* DSI Exception
@ 2000-11-10 11:21 Rainer Kloud
2000-11-10 11:43 ` Gabriel Paubert
0 siblings, 1 reply; 3+ messages in thread
From: Rainer Kloud @ 2000-11-10 11:21 UTC (permalink / raw)
To: linuxppc-embedded
Dear All,
I have a problem when executeing the init process.
First to the configuration: I use the core of a MPC750
which is mapped into a MPC8260 (Motorola Scout Board in
Compagnion Mode).
Kernel: 2.4.0-test4
gcc: 2.95.2
glibc: 2.1.3 with ctype.patch
I can startup the kernel without problems, but when
executeing the first instructions of the init process
(statical linked sash) I get a DSI Exception.
When I debug the init process I can see, that the exception
occoures at the following point:
100000c0 <_start>:
100000c0: 7c 29 0b 78 mr r9,r1
100000c4: 54 21 00 36 rlwinm r1,r1,0,0,27
100000c8: 38 00 00 00 li r0,0
100000cc: 94 21 ff f0 stwu r1,-16(r1)
100000d0: 7c 08 03 a6 mtlr r0
100000d4: 90 01 00 00 stw r0,0(r1)
100000d8: 3d 00 10 06 lis r8,4102
100000dc: 85 a8 92 00 lwzu r13,-28160(r8)
100000e0: 48 00 ed c8 b 1000eea8 <__libc_start_main>
........
1000eea8 <__libc_start_main>:
1000eea8: 94 21 ff e0 stwu r1,-32(r1)
1000eeac: 7c 08 02 a6 mflr r0 <-------- DSI Exception
1000eeb0: 93 61 00 0c stw r27,12(r1)
At the beginning of _start GPR1 was 0xb, GPR1 (SP) 0x7fffff90,
GPR2 0xc0210000 and GPR3 0x0.
When the Exception occoures GPR0 has the value zero.
The DSISR register has the value 0x42000000 which means that
a store instruction results in a direct store error
exception (correct?). I don't know what that means for me?
What have I done (or what haven't I done) that I get these
exception?
Thank you in advance!
Rainer
--
Rainer Kloud mailto:rainer.kloud@siemens.at
Siemens AG, PSE ECT OTN 2, Rampengasse 3-5, A-1190 Vienna
Phone: +43-(0)51707-43873 Fax: +43-(0)51707-53581
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: DSI Exception
2000-11-10 11:21 DSI Exception Rainer Kloud
@ 2000-11-10 11:43 ` Gabriel Paubert
2000-11-16 18:25 ` Rainer Kloud
0 siblings, 1 reply; 3+ messages in thread
From: Gabriel Paubert @ 2000-11-10 11:43 UTC (permalink / raw)
To: Rainer Kloud; +Cc: linuxppc-embedded
Hi,
> I have a problem when executeing the init process.
>
> First to the configuration: I use the core of a MPC750
> which is mapped into a MPC8260 (Motorola Scout Board in
> Compagnion Mode).
> Kernel: 2.4.0-test4
> gcc: 2.95.2
> glibc: 2.1.3 with ctype.patch
>
> I can startup the kernel without problems, but when
> executeing the first instructions of the init process
> (statical linked sash) I get a DSI Exception.
> When I debug the init process I can see, that the exception
> occoures at the following point:
>
> 100000c0 <_start>:
> 100000c0: 7c 29 0b 78 mr r9,r1
> 100000c4: 54 21 00 36 rlwinm r1,r1,0,0,27
> 100000c8: 38 00 00 00 li r0,0
> 100000cc: 94 21 ff f0 stwu r1,-16(r1)
> 100000d0: 7c 08 03 a6 mtlr r0
> 100000d4: 90 01 00 00 stw r0,0(r1)
> 100000d8: 3d 00 10 06 lis r8,4102
> 100000dc: 85 a8 92 00 lwzu r13,-28160(r8)
> 100000e0: 48 00 ed c8 b 1000eea8 <__libc_start_main>
> ........
> 1000eea8 <__libc_start_main>:
> 1000eea8: 94 21 ff e0 stwu r1,-32(r1)
> 1000eeac: 7c 08 02 a6 mflr r0 <-------- DSI Exception
> 1000eeb0: 93 61 00 0c stw r27,12(r1)
Hmm, I suspect that you get the DSI exception on the store (the mflr can't
generate this exception since it is not a load or store insruction).
>
> At the beginning of _start GPR1 was 0xb, GPR1 (SP) 0x7fffff90,
^
Huh ? Do you truly mean GPR1 ?
> GPR2 0xc0210000 and GPR3 0x0.
> When the Exception occoures GPR0 has the value zero.
The stack is correct, I don't understand the problem. Probably some info
is missing. Accesses to the stack are already done and the TLB should
hold the stack address.
> The DSISR register has the value 0x42000000 which means that
> a store instruction results in a direct store error
> exception (correct?). I don't know what that means for me?
No, it means no translation found on a store (bits 1 and 6).
> What have I done (or what haven't I done) that I get these
> exception?
I dno't know, more info is probably needed.
Gabriel.
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: DSI Exception
2000-11-10 11:43 ` Gabriel Paubert
@ 2000-11-16 18:25 ` Rainer Kloud
0 siblings, 0 replies; 3+ messages in thread
From: Rainer Kloud @ 2000-11-16 18:25 UTC (permalink / raw)
To: linuxppc-embedded
Hi,
I have further information and questions about my problem.
As mentioned in my last mail my statical linked sash produces
a DSI Exception. Now I think I know the reason:
At the end of _init the program jumps to address 0x1000eea8
(__libc_start_main) but when I dump the memory at this address
the content is not the same as it should be (I have compared it
with the disassembled code of the executable).
When the kernel loads the executable it dumpes the following
addresses:
(start_brk) 1007688c
(start_code) 10000000
(end_code) 100630c8
(start_data) 100730c8
(end_data) 100744d4
(start_stack) 7fffff90
(brk) 1007688c
So I think when I dump the memory from 10000000 to 100630c8
I should see the same instructions as in the disassembled binary,
but I do not.
The content of the memory from 1000000 to 10000ffc is correct,
from 10000ffd to 1000dfff the debugger complains with 'Target
memory access failed' and finally from 1000e000 to 100630c8
I see some random values (not they I supposed to).
When I dump the memory in function load_elf_binary I get the
same result.
What is wrong with my loaded executable?
Thank you for any help.
Best Regards
Rainer
> > I have a problem when executeing the init process.
> >
> > First to the configuration: I use the core of a MPC750
> > which is mapped into a MPC8260 (Motorola Scout Board in
> > Compagnion Mode).
> > Kernel: 2.4.0-test4
> > gcc: 2.95.2
> > glibc: 2.1.3 with ctype.patch
> >
> > I can startup the kernel without problems, but when
> > executeing the first instructions of the init process
> > (statical linked sash) I get a DSI Exception.
> > When I debug the init process I can see, that the exception
> > occoures at the following point:
> >
> > 100000c0 <_start>:
> > 100000c0: 7c 29 0b 78 mr r9,r1
> > 100000c4: 54 21 00 36 rlwinm r1,r1,0,0,27
> > 100000c8: 38 00 00 00 li r0,0
> > 100000cc: 94 21 ff f0 stwu r1,-16(r1)
> > 100000d0: 7c 08 03 a6 mtlr r0
> > 100000d4: 90 01 00 00 stw r0,0(r1)
> > 100000d8: 3d 00 10 06 lis r8,4102
> > 100000dc: 85 a8 92 00 lwzu r13,-28160(r8)
> > 100000e0: 48 00 ed c8 b 1000eea8 <__libc_start_main>
> > ........
> > 1000eea8 <__libc_start_main>:
> > 1000eea8: 94 21 ff e0 stwu r1,-32(r1)
> > 1000eeac: 7c 08 02 a6 mflr r0 <-------- DSI Exception
> > 1000eeb0: 93 61 00 0c stw r27,12(r1)
>
> Hmm, I suspect that you get the DSI exception on the store (the mflr can't
> generate this exception since it is not a load or store insruction).
>
> >
> > At the beginning of _start GPR1 was 0xb, GPR1 (SP) 0x7fffff90,
> ^
> Huh ? Do you truly mean GPR1 ?
>
> > GPR2 0xc0210000 and GPR3 0x0.
> > When the Exception occoures GPR0 has the value zero.
>
> The stack is correct, I don't understand the problem. Probably some info
> is missing. Accesses to the stack are already done and the TLB should
> hold the stack address.
>
> > The DSISR register has the value 0x42000000 which means that
> > a store instruction results in a direct store error
> > exception (correct?). I don't know what that means for me?
>
> No, it means no translation found on a store (bits 1 and 6).
>
> > What have I done (or what haven't I done) that I get these
> > exception?
>
> I dno't know, more info is probably needed.
>
> Gabriel.
--
Rainer Kloud mailto:rainer.kloud@siemens.at
Siemens AG, PSE ECT OTN 2, Rampengasse 3-5, A-1190 Vienna
Phone: +43-(0)51707-43873 Fax: +43-(0)51707-53581
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2000-11-16 18:25 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2000-11-10 11:21 DSI Exception Rainer Kloud
2000-11-10 11:43 ` Gabriel Paubert
2000-11-16 18:25 ` Rainer Kloud
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.