08-15-2019 04:31 PM - edited 08-16-2019 03:56 AM
We are planning to base a new development on the Avnet Ultrazed EG SOM. We are beginning development with the Ultrazed Starter Kit, ie. the SOM on a carrier board. The latest Petalinux BSP for that board is 2018.2. I tried to use Petalinux 2019.1 with that old BSP but got errors. Avnet claims they will have a 2019.1 BSP in August but it looks like they don't update those BSP often.
Going forward, we will not want to be held back to Petalinux 2019.1. Also, we are going to build custom hardware very similar to the Ultrazed Starter Kit and we will need a BSP for that I suppose. I think this all indicates that we will need to create our own custom BSPs.
Unfortunately, I have not found a good reference on how to construct a BSP for Petalinux 2019.1. I have seen mention of the "petalinux-package --bsp ..." command but it is not clear how to get to the point that we can run that command.
Is there a guide to BSP creation somewhere? What is the best reference to understand the flow for this? Is there a way to unpackage the 2018.2 BSP to extract the necessary files, etc? Do I really even need a bsp file to use Petalinux on the Ultrazed board?
Any general or specific advice is greatly appreciated.
08-18-2019 10:22 PM
To get to the point to run petalinux-package, pre-requisite is to have a petalinux project created using HDF and we have captured the steps in UG1144
Please refer to Page 49 of this UG guide
Also see the section: Importing Hardware Configuration
08-20-2019 08:36 AM
The trick is to not reference a BSP when creating the project. Here are the commands I used to get a .bsp file. I haven't tested the .bsp file in a complete Petalinux build but I'm guessing it will work for my purposes.
petalinux-create --force --type project --template zynqMP --name bspproj
petalinux-package --bsp -p bspproj/ --output uzed.bsp
The results folder is where my fpga compilation writes the .hdf file.
08-27-2019 02:35 AM
So just to clarify. There are two ways to generate the Petalinux Project.
Using The BSP:
This will give you a pre-canned project with the kernel config, devicetree nodes for external devices such as clock, phy, ect
It also may have some custom apps.
The command to create a rpject here is:
Using the Template and HDF:
Users can also create the petalinux project form scatch you the zynqMP template:
petalinux-create -t project --template zynqMP -n ultra96_linux
Users can also use the HDF to config the petalinux project; sch as the u-boot, devicetree, kernel settings
Users can update he DTG settings in the petalinux-config to use the avnet-ultra96-rev1
FYI: All the boards can be seen here:
Both of these flows are equivilant