[PATCH 2/2] sparc/leon2: LEON_Is_interrupt_masked for Leon2 in leon.h wrongly defined

Jiri Gaisler jiri at gaisler.se
Mon Nov 24 16:15:03 UTC 2014


On 11/24/2014 05:02 PM, Daniel Hellstrom wrote:
> Ok, what about ERC32 which has the same macros?

ERC32 is correctly defined. The leon2/3 were wrong because the
defines were copied from ERC32, but the mask bits have opposite
meaning ...

Jiri.

> 
> On 11/24/2014 04:41 PM, Gedare Bloom wrote:
>> Daniel commit these if you agree with the assessment.
>>
>> On Sun, Nov 23, 2014 at 4:53 PM, Jiri Gaisler <jiri at gaisler.se> wrote:
>>>      Condition needs to be inverted, as a 1 in the mask register means
>>>      that the interrupt is enabled. Solves ticket #1959 in trac.
>>> ---
>>>   c/src/lib/libbsp/sparc/leon2/include/leon.h | 2 +-
>>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/c/src/lib/libbsp/sparc/leon2/include/leon.h
>>> b/c/src/lib/libbsp/sparc/leon2/include/leon.h
>>> index 8d2f0c5c..7ec6b1d 100644
>>> --- a/c/src/lib/libbsp/sparc/leon2/include/leon.h
>>> +++ b/c/src/lib/libbsp/sparc/leon2/include/leon.h
>>> @@ -307,7 +307,7 @@ static __inline__ int bsp_irq_fixup(int irq)
>>>     (LEON_REG.Interrupt_Pending & (1 << (_source)))
>>>
>>>   #define LEON_Is_interrupt_masked( _source ) \
>>> -  (LEON_REG.Interrupt_Masked & (1 << (_source)))
>>> +  (!(LEON_REG.Interrupt_Mask & (1 << (_source))))
>>>
>>>   #define LEON_Mask_interrupt( _source ) \
>>>     do { \
>>> -- 
>>> 1.9.1
>>>
>>> _______________________________________________
>>> devel mailing list
>>> devel at rtems.org
>>> http://lists.rtems.org/mailman/listinfo/devel
> 




More information about the devel mailing list