BSP for MIPS32 4KC
Joel Sherrill
joel.sherrill at OARcorp.com
Wed Sep 10 18:47:12 UTC 2003
Feel free to file a PR on this and it will get fixed.
--joel
mikeci at acm.org wrote:
>>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
>
>
>
>
--
Joel Sherrill, Ph.D. Director of Research & Development
joel at OARcorp.com On-Line Applications Research
Ask me about RTEMS: a free RTOS Huntsville AL 35805
Support Available (256) 722-9985
More information about the users
mailing list