This is the mail archive of the sid@sources.redhat.com mailing list for the SID project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

FW: Trying to run on pid7t board


I have done some more debugging on the problem I reported earlier regarding
exception handling in the ARM pid7t implementation. It actually threw an
abort_prefetch exception. I did a trace-semantics on what SID was doing and
it works fine until trying to return from exception:

0x8240: LDR_PRE_INC_IMM_OFFSET	gr[0]:=0x13
0x8244: MSR_S	spsr:=0x13
0x8248: AND_IMM	gr[1]:=0x13
0x824c: CMP_IMM	zbit:=0x1  nbit:=0x0  cbit:=0x1  vbit:=0x0
0x8250: X_INVALID
0x4: AND_REG_IMM_SHIFT	gr[0]:=0x13
0x8: AND_REG_IMM_SHIFT	gr[0]:=0x13
0xc: LDR_PRE_INC_IMM_OFFSET	pc:=0x81ac

(it has now hit breakpoint at 0x81ac i.e. abort_prefetch exception handler)

The instruction at 0x8250 is:

ldmeqfd sp,{r0-r14,pc}^

The opcode for this is 0x08ddffff, which looks like

|COND|<4>|P|U|S|W|L| Rn |     Reglist    |
------------------------------------------
|0000|100|0|1|1|0|1|1101|1111111111111111|
------------------------------------------
| EQ |   |FD |^| |L| sp |   r0-r14,pc    |

I confess I know very little about this, but I notice in CGEN, in arm7.cpu,
only two ldmia's are supported (PUSWL = 01001 and PUSWL = 01011). The opcode
above (PUSWL: 01101) (i.e. restore user mode banked registers) is not
included, so does this need to be in here too in some guise? Would this be
causing the invalid prefetch?

Robert Cragie, Design Engineer
_______________________________________________________________
Jennic Ltd, Furnival Street, Sheffield, S1 4QT,  UK
http://www.jennic.com  Tel: +44 (0) 114 281 2655


-----Original Message-----
From: sid-owner@sources.redhat.com
[mailto:sid-owner@sources.redhat.com]On Behalf Of Robert Cragie
Sent: 22 August 2002 18:09
To: Frank Ch. Eigler
Cc: sid@sources.redhat.com
Subject: RE: Trying to run on pid7t board

[snip]

With some further juggling of eCos configuration, I have got it printing to
the gdb console (-uart1:gdb), to the console sid was run from (-uart1:stdio)
and the tksm tty window. Excellent! Now I am having problems with the
timer-related calls (cyg_thread_delay() etc.) - I notice in the list this
was also seen by Cristiano Pereira (04-Mar-02). I have done some debugging,
and timer interrupt seems to fire once, then a data_abort exception is
thrown a bit later; looks like the pc was 0xe59d0044. Ho hum. I will try to
get to the bottom of what is going on - if anyone has any ideas, I'd
appreciate them.



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]