This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos 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]

why jump from hal_cpu_merge_int to hal_null_call() ?


Hi,

I am trying to port eCos on to a demo board which uses MPC8245. So I use
csb281 as a baseline. I am able to bring up Redboot with minimum hardware
initialized (e.g. UART). I am trying to load the simple eCos 'hello world'
application but failed. I have a VisualClick EJTAG to help debugging,  and I
found that when execute to hal_cpu_merge_int macro, right after the first
'sync',  the program will jump to hal_null_call(), which is at address 0x0.
The MSR register is 0x3032 and r0 is 0xb032 right after 'rlwimi' instruction,
  and MSR becomes 0 after jumping to hal_null_call(). Since I am not an
expert of eCos or PowerPC, I will really need some info about what could go
wrong to cause this scenorio. Could someone give me some suggestion?

I've attached the source code of hal_cpu_merge_int for easy reference.

.macro hal_cpu_merge_int
mfmsr r0
rlwimi     r0, \sr, 0,16,16
sync
mtmsr r0
sync
.endm


Thanks

Zi


-- 
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss


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