EDK : FSL macros defined by Xilinx are wrong

Apr 19, 2006 4 Replies

Hi everyone,



I hope someone @Xilinx will read this.



In the new EDK 8.1 the FSL access macros have changed name. And they also introduced _interruptible versions. Theses are defined in ${EDK_HOME}/sw/lib/bsp/standalone_v1_00_a/src/microblaze/mb_interface.h



The definitions for getfsl_interruptible and cgetfsl_interruptible are correct. But the ones for putfsl_interruptible and cputfsl_interruptible are incorrect. For example putfsl_interruptible is :



#define putfsl_interruptible(val, id) \ asm volatile ("\n1:\n\tnput\t%0,rfsl" #id "\n\t" \ "addic\tr18,r0,0\n\t" \ "bnei\tr18,1b\n" \ : "=d" (val) :: "r18")



and it should be :



#define putfsl_interruptible(val, id) \ asm volatile ("\n1:\n\tnput\t%0,rfsl" #id "\n\t" \ "addic\tr18,r0,0\n\t" \ "bnei\tr18,1b\n" \ :: "d" (val) : "r18")



Obviously val is a input in the case of a 'put' and not an output.


Another related question : In my code, when a replace all non _interruptible versions by their _interruptible counter parts, it doesn't behave as excpected anymore ... Does theses version require some hw support ?


Sylvain


PS: I know I should submit a webcase but when I try to login I just get "Server Error" ... and so I obviously can't even submit a webcase about my problem of being unable to log in into the webcase ...


Can anyone @Xilinx can confirm they read this and will take care of it ?

Sylva> Hi everyone,

Sylvain,

I got it.

I will find out what happened, and report back.

Thanks,

Aust> Can anyone @Xilinx can confirm they read this and will take

All,

Here is the answer:

"Hi,

Yes this is a bug. This issue is being fixed for the next EDK release (8.2i). Also, your patches seem correct."

Aust> Sylvain,

GReat, thanks for the followup.

Sylvain

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required