cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Adventurer
Adventurer
5,581 Views
Registered: ‎11-19-2010

EDK 13.3 DOES NOT modify FSL SLOT ID in XPARAMETERS.H.!!!!!! What is my FSL SLOT ID ? ? STRANGE Behaviour of FSL!

Jump to solution

Hello All, 

 

I am using EDK 13.3 to play around with FSL peripherals. and I do not see EDK modifying Xparameters.h file with appropriate FSL SLOT ID. Although number of links are updated properly in xparameters.h

 

Now have 2 FSL cores connected to a MB. 1) EDK Provided Accumulator Example 2 ) My Custom IP application 

 

Initially, I had just 1 FSL core which is EDK provided accumulator for testing purpose. So By default i assumed it would be 0 and, I was able to write and read from SLOT ID 0. I did not bother about anything else.  Everything worked fine.. 

 

Then,, I added my custom FSL core. Now I want to write and read from my core. But I do not know the slot ID of my custom FSL core. How do i know to which SLOT ID I should write and read from MB inorder to write to my custom FSL ? ? 

 

Another Strange thing is ,  after i added both the FSL cores (mentioned above) , writing to ANY EVEN FSL SLOTIDs (0,2,4,6,8,10,12. etc) my first peripheral (i.e. EDK provided accumulator responds with the the proper results  ..  Why is this happeneing ??  

 

 

 

So My questions are

1) Why does the EDK does not modify the XPARAMETERS.H file with SLOTID of the FSL

2) How do I know the FSL SLOTID of my coprocessors in case of more than ONE as in my case ? Is there any other way of knowing it.

3 ) Why is there the strange behavior of FSL ? ?  

 

Any replies would be much appreciated. 

 

Thank You very much, 

Venkat.

0 Kudos
Reply
1 Solution

Accepted Solutions
Xilinx Employee
Xilinx Employee
7,080 Views
Registered: ‎08-06-2007

Hi,

 

The FSL ports used on MicroBlaze is always 0 to C_FSL_LINKS-1.

You can't remove FSL links inbetween.

 

Can't really say much about the xparameter.h issue.

So what is the exact diff for xparameters.h file before and after you add your own FSL_core?

 

Göran

View solution in original post

0 Kudos
Reply
6 Replies
Adventurer
Adventurer
5,571 Views
Registered: ‎10-27-2011

1.) Dont know. I had the same problem.

2.) Just use the PORT-IDs you see in EDK. You already did with slot 0. The other FSL should be 1. Look at EDK. 

3.) I have no idea. But arent the FSL-Ports going from 0,1,2,3...to 10. Where did u read that they are 0,2,4...? 

0 Kudos
Reply
Adventurer
Adventurer
5,567 Views
Registered: ‎11-19-2010

Hi ,,, 

 

1) Yes ,, i think its a problem with many EDK version that Xilinx has to FIX ... 

 

2) Could you tell me, where exactly to look in the EDK to find the slot ID ? ?  

 

3)I Yes you are right.. ID 0 is for peripheral 1,, ID 1 is for peripheral two.. so on i suppose. ...

But, in my case,, i assumed that since I have only 2 FSL peripherals, writing to the other SLOT IDs (other than 0 and 1) ,,  like,, 2, 3, 4, 5 etc from SW should have no effect. i.e. produce no result or hang.. but strangely,, when i wrote to any even slot IDs such as 0 , 2 4 , 6, 8 etc,, my Peripheral 1 responded with correst results. 

And writing to 1, 3, 5, 7 etc,,, my peripheral 2 responded with results.. I found this very strange!!! 

 

--Venkat

0 Kudos
Reply
Xilinx Employee
Xilinx Employee
5,563 Views
Registered: ‎08-06-2007

Hi,

 

If you only configure MicroBlaze for 2 FSL interfaces, MicroBlaze will only look at the lsb bit to determine which FSL to communicate with.

So 0 = 2 = 4 = 6,....  and 1 = 3 = 5 = 7 = ...

 

Göran

Adventurer
Adventurer
5,556 Views
Registered: ‎11-19-2010

Hi Goran , 

 

Thanks for the reply. Just one more question i have already asked . Why is EDK not modifying xparameters ? is it a bug ? 

And how do i know the slot IDs ? Say  i add 10 FSL peripherals ? is it always 0 .... upto 9 in the increasing order ? 

say for instance i have 10 FSLs, and i delete 2 of them inbetween ... Then what will be my Slot IDs, ? will they be the original ones ? or will they get rearranged ? 

 

Thanks, 

Venkat. 

0 Kudos
Reply
Xilinx Employee
Xilinx Employee
7,081 Views
Registered: ‎08-06-2007

Hi,

 

The FSL ports used on MicroBlaze is always 0 to C_FSL_LINKS-1.

You can't remove FSL links inbetween.

 

Can't really say much about the xparameter.h issue.

So what is the exact diff for xparameters.h file before and after you add your own FSL_core?

 

Göran

View solution in original post

0 Kudos
Reply
Adventurer
Adventurer
5,549 Views
Registered: ‎11-19-2010

okie that makes things clear. ..   

 

Well the only difference in xparameters.h after I add my own FSL core is that, the 

 

#define XPAR_MICROBLAZE_0_FSL_LINKS 1

 

parameter gets updated.. to the number of FSL cores I add in the EDK

 

However ,, 

/******************************************************************/


/* Definitions for peripheral JPG_FSL_0 */

 

/******************************************************************/

 

Is just blank .. I would expect to see,,  a Slot ID defined here. Because, ,, when the EDK generates an example program ,,  it defines some parameters automatically and says the SLOT ID can be found in the xparameters.h file.. example prog generated is like the one found below

 

/* IMPORTANT:
* In order to run this self test, you need to modify the value of following
* micros according to the slot ID defined in xparameters.h file.
*/
#define input_slot_id XPAR_FSL_FSL1_0_INPUT_SLOT_ID
#define output_slot_id XPAR_FSL_FSL1_0_OUTPUT_SLOT_ID

 

 

But anyways,, now that I know SLOT IDs are always 0 to C_FSL_LINKS-1 and links cannot be removed inbetween,, figuring out the slot id is not a big deal .. However, it was, when I was using it for the first time with no experience in EDK and no direct tutorial given on how to use FSL in the Xilinx website... 

 

Thanks,

Venkat. 

 

 

 

0 Kudos
Reply