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

Gedare Bloom gedare at rtems.org
Thu Oct 31 14:25:10 UTC 2013


On Thu, Oct 31, 2013 at 10:16 AM, Daniel Hellstrom <daniel at gaisler.com> wrote:
>
> 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.
>
OK thanks it makes sense.

>
>>
>> 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