10-17-2020 06:45 AM
Changes in IPI followed by export hardware results in a new xsa file, which includes a change such as a new IP block or a change to the base address.
Then using Vitis, we want to update the hardware changes in an existing "platform project" that points to the xsa file that has been changed in the previous step.
Right click on the platform project, then choosing update hardware specification, the xsct console reports "opening hardware design" then "info hsi 55-1673 peripheral x is added".
Everything indicates success "BSP settings x synced with hw change" and "loading the sw platform from spr", and finally a popup window says "platform is updated"
In the explorer view, the platform now appears as "out of date" , so we right click and refresh followed by build. Console reports "incremental build" and "buildplatfor.bat 52937 platform no_domain_build", then build finished.
I would expect at this point that all changes from IPI are available. The xsa file properties/last modified identifies the file as recently changed. However, double clicking platform/hw/xsa file shows the old state without recent changes. Inspecting the xsa file further shows the changes are there, but they are not being shown as changed.
Platform project spr lists IP blocks present in the design, but xsa (as reported in Vitis design information and address map) retains the old state, so the application project can't see the hw changes.
Platform project clean/build does not cause the new xsa state to become visible in design info/address map.
What am I doing wrong here?
10-19-2020 07:53 AM
Did you try rebuilding an application project attached to the platform?
I have found that Vitis is a bit inconsistant about when the libraries are rebuilt after updating the hardware spec. Sometimes it rebuilds them when the platform is updated, sometimes it doesn't. If it doesn't, rebuild one of the application projects and you should see it rebuild the libraries first.
Another weird bug. I have found that one needs pay very careful attention to both Vitis and Vivado as they both have inconsistencies, like Vivado updating hls ip.
10-19-2020 08:40 AM
Thanks for the tip. I have done clean + build, and although the files were reported as being rebuilt, the memory map from IPI would most often remain stuck at the previous version. This was causing uncertainty for the software expecting to see the new IP hardware. As a workaround I found that creating a new platform each time is at least consistent and less time consuming.