BSP for MIPS32 4KC
mikeci at acm.org
mikeci at acm.org
Wed Sep 10 18:09:03 UTC 2003
>
> You sent this to me and not to the list. Did you mean for it to
> go to everyone?
>
> mikeci at acm.org wrote:
>
>> Hi!
>>
>> There is another thing here. Modules compiled with mips=3 and mips=1
>> or mips=32 can't be linked together. This is main reason why I think
>> we should stick with mips=32 instead of doing everything with mips=3.
>> Does anyone have better solution?
>
> And no. The problem Ralf mentioned on the p4xx BSPs is exactly this
> type of thing. The RTEMS traditional solution is to have LOTS of
> multilibs where needed and then depend on the linker to do the right
> thing.
>
>> Regards
>>
>> Ivica
>>
Hi!
Yes, this was post for the list. Ok. I am satisfied with the BSP I
currently have. There is still one more thing. I don't know if I should
file this as a bug or not. This is the code defined in vectorisrs.c for
r46xx or p4000:
void mips_vector_isr_handlers( CPU_Interrupt_frame *frame )
{
unsigned int sr;
unsigned int cause;
unsigned int i;
unsigned int mask;
mips_get_sr( sr );
mips_get_cause( cause );
cause &= (sr & SR_IMASK);
cause >>= CAUSE_IPSHIFT;
/* XXX check this and think about it. */
for ( i=1, mask=0x80 ; i<=8 ; i++, mask >>= 1 ) {
if ( cause & mask )
CALL_ISR( MIPS_EXCEPTION_BASE + 8 - i, frame );
}
}
The line CALL_ISR( MIPS_EXCEPTION_BASE + 8 - i, frame );
is in error. It should be:
CALL_ISR( MIPS_INTERRUPT_BASE + 8 - i, frame );
Regards
Ivica
More information about the users
mailing list