07-31-2012 06:02 AM
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.
08-08-2012 01:09 AM
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
08-03-2012 03:41 AM
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...?
08-03-2012 04:28 AM
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
08-07-2012 04:49 AM
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
08-08-2012 12:42 AM
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.
08-08-2012 01:09 AM
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
08-08-2012 02:04 AM
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.