03-01-2013 01:47 PM
I have multiple projects targeted for the ZC702 evaluation board and am using Xilinx SDK 14.4 to work in all of them. In some of the projects I need to modify some of the bsp drivers. It is easy to go into the source files for the drivers and make the modifications I need; however, if I ever do a clean operation on the project, all of the BSP source files get erased. Typically a clean operation only removes compilation/linking artifacts and leaves the source code alone, so a was a bit surprised when this happened.
Is there any way to keep clean from removing bsp source files? Never doing a clean build is not really an option.
03-01-2013 05:27 PM
The way SDK works is when you do a clean it blows away the BSP directories entirely, and runs a program called libgen that re-builds them. A header file is also generated that contains the various configurable parameters for your hardware setup so that the drivers know the correct CPU frequency and so on. Therefore, you cannot modify the BSP files that are part of your project. Well, you can, but the changes will be gone next time you clean anything.
What you need to do if you want to customize something in the whole BSP realm, is make your own suppository (sorry, repository) directory structure, copy the files from the Xilinx repository there, and then modify them. Basically you need to build your own BSP thing. The Xilinx repository for BSPs on my system is located at C:\Xilinx\14.3\ISE_DS\EDK\sw, have a look around in there. You're going to have to deal with .mld files and .mss files and TCL scripts and all kinds of fun stuff. You will need to go into the SDK configuration menu and add your repository path. You'll probably end up with conflicts for the names of stuff and versions and so on, so be ready to spend a lot of time digging around looking at the naming conventions and the version numbers in the files within the data subdirectories and so on.
I never did find comprehensive documentation on the whole thing, just tidbits here and there. Copy, modify, curse, delete, copy, modify again, and so on until you either give up or get things to a state you can at least use.
03-01-2013 06:58 PM
Is there a way to disable the BSP check? The build complains if you don't have a BSP, but I was not able to find a way to disable that. In theory it is not needed as long as the developer does not change versions of the IP. I understand there is risk to this, but as long as the contract is held that there is no migration without warning... it should not be a problem.
Otherwise, there must be a standard method to develop IP for the end user. Is there a component creation tutorial that might be leveraged for this sort of thing?.
03-02-2013 10:05 AM - edited 03-02-2013 10:07 AM
Adding IP is a separate but related issue. When you add or modify IP that's part of your project, the BSP rebuild process is what picks up the changes and modifies the header files and brings in the proper drivers and such. Have a look at UG873 Zynq Concepts Tools & Techniques for an example of adding IP to a project.
10-09-2013 07:18 AM
I am having a similar if not more severe problem. All of the source code - everything is gone. I have to literally import the bsp from a backup copy every time I do a clean, even if nothing changed.
I guess I do not understand the rationing here. If I create a BSP, that belongs to my project. I should be able to change things all I want. The root code for generating another BSP would still be contained in the Xilinx directories.
01-15-2015 10:48 AM
What I just ran into is that one of the libraries within the bsp got updated in some overnite tools update. My build script is such that it completely regenerates all the components in the design that are factory generated and then imports the permanent application source code written by me. All of a sudden, my code would not compile despite having made no changes in weeks.
I found a the difference in the version number built into the name of the PS iic routines in the bsp. They removed the REPEATED_START_OPTION for PS IIC routines completely. This kills you if you are using the HDMI chip found on most Xilinx reference board and hosting it from the PS IIC.
After reading all the errata, I am remaking my board rather than deal with it. Here is the money quote:
"I2C Master Generates Invalid Read Transactions" "No Plan to Fix"
from AR47916 and AR61664
I could freeze the toolset at 14.3 or something like that, but I don't think that is viable for the long term.
01-22-2015 05:07 PM
Would that be possible to copy the drivers that you would need and rename it to a different version and copy it into a different location and try building BSP? Once you are trying to generate the BSP set the location of these copied drivers