[PATCH 2/5] LEON3 SMP: CPU ack irq on trap vector entry execution

Daniel Hellstrom daniel at gaisler.com
Thu Oct 31 14:16:15 UTC 2013


On 10/31/2013 03:15 PM, Gedare Bloom wrote:
> I guess this interrupt vector gets "cleared" by the ISR return path?

The LEON Interrupt model is edge so to speak. The CPU will acknoledge the IRQ when the trap vector is entered, so normally software need to do nothing. On level interrupts however we must take care by 
software acking, and we can not mix edge with level. The IPI is edge in the RTEMS case and we could potentially miss an IPI by clearing.

>
> On Thu, Oct 31, 2013 at 9:58 AM, Daniel Hellstrom <daniel at gaisler.com> wrote:
>> Signed-off-by: Daniel Hellstrom <daniel at gaisler.com>
>> ---
>>   c/src/lib/libbsp/sparc/leon3/smp/smp_leon3.c |    1 -
>>   1 files changed, 0 insertions(+), 1 deletions(-)
>>
>> diff --git a/c/src/lib/libbsp/sparc/leon3/smp/smp_leon3.c b/c/src/lib/libbsp/sparc/leon3/smp/smp_leon3.c
>> index f7b70f3..ec2b4a8 100644
>> --- a/c/src/lib/libbsp/sparc/leon3/smp/smp_leon3.c
>> +++ b/c/src/lib/libbsp/sparc/leon3/smp/smp_leon3.c
>> @@ -37,7 +37,6 @@ static rtems_isr bsp_ap_ipi_isr(
>>     rtems_vector_number vector
>>   )
>>   {
>> -  LEON_Clear_interrupt(LEON3_MP_IRQ);
>>     rtems_smp_process_interrupt();
>>   }
>>
>> --
>> 1.7.0.4
>>
>> _______________________________________________
>> rtems-devel mailing list
>> rtems-devel at rtems.org
>> http://www.rtems.org/mailman/listinfo/rtems-devel




More information about the devel mailing list