Sorry, you need to enable JavaScript to visit this website.

Configuring Minized Petalinux Wi-Fi with custom PL

Solved
7 posts / 0 new
caheike1's picture
caheike1
Junior(2)
Configuring Minized Petalinux Wi-Fi with custom PL

I programmed my logic into the PL on a minized and using the petalinux tools configured a 4.9 version of petalinux for it.  Linux and the PL work well, except networking.  The wifi.sh script that came with the minized does a ‘modprobe bcmdhd’.   This appears to be a custom kernel module that contains the Wi-Fi drivers.  I am unable to find the source for the module so that I can build it myself  or to configure the kernel to support this Wi-Fi chip without the module.  Also,  I would also like to get a copy of the configuration files for the petalinux kernel and rootfs that matches the image.ub that comes with the board so that I can create my own image.ub using my version of the PL.   Has anyone successfully built a petalinux image.ub and gotten Wi-Fi to work?    Does anyone know where to get the stock petalinux configuration files?
 
 

stefanrousseau's picture
stefanrousseau
Junior(1)
MiniZed Wi-Fi under PetaLinux 2017.2 and later

On the MiniZed page (http://zedboard.org/product/minized) under Reference Designs you will find the PetaLinux 2017.2 BSP.
If you create a new project with
petalinux-create -t project -n minized -s MiniZed.bsp
you will be able to build this with petalinux-build and the latest image.ub will be created.  This is the image.ub that goes on the MiniZed eMMC, from where it gets loaded after booting from QSPI flash.
Under PetaLinux 2016.4 we used bcmdhd and you had to modprobe it.  If you build your project from the 2016.4 BSP, you will still have to do that.  But under PetaLinux 2017.2 (Linux version 4.9.0-xilinx-v2017.2) and later Wi-Fi support is with brcmfmac and not bcmdhd anymore and a modprobe by the user is not required anymore.
You can establish which version of Linux you are running on MiniZed (and when it was created) with:
cat /proc/version
In the 2017.2 BSP, the user scripts such as wifi.sh are in the
project-spec/meta-user/recipes-modules/custom/custom
directory inside the project.

caheike1's picture
caheike1
Junior(2)
MiniZed Wi-Fi under PetaLinux 2017.2 and later

That’s exactly what I needed.   I looked for a the correct BSP on the Xilinx website, and could not find a minized version.   I failed to look at the minized reference designs.   I am now able to install petalinux with working Wi-Fi on my minized with a customized PL.  To summarize for those that may not know, here is what I am doing
 
#on the linux host
#set up the environment
source /opt/pkg/petalinux/settings.sh
 
#create the project once
petalinux-create -t project  -n MINIZED  -s MiniZed.bsp
cd MINIZED
 
#entry of the iteration loop
#Import the .hdf file (in this case the .hdf file is in ~/Xilinx)
petalinux-config --get-hw-description=~/Xilinx
 
#build the software, the image.ub will be in the images directory
petalinux-build
 
#from the minized, I tftp the image.ub on the linux host  to the minized eMMC memory, reboot and test on the new image.
#as things are usually not quite right, I go back to Vivado and tweak the logic and export a new .hdf file and re-enter the iteration loop
 
 

jcervant's picture
jcervant
Junior(0)
This post was a huge help. 

This post was a huge help.  Works perfectly.  Now I would like to add my own peripheral in the PL.  How can I approach this?  Is there a recommended design flow I can use?  Put another way, how would I recreate the project that was used to export this BSP?  I need a Vivado design as a starting point so I can add my IP to it.  Big thanks in advance for any hints here.

stefanrousseau's picture
stefanrousseau
Junior(1)
Rebuilding the QSPI flash image

If you look at http://zedboard.org/product/minized again, under Reference Designs where you found the BSP, you will see a heading "Prebuilt Platforms Using Hardware Definition Files (HDFs)".  If you follow these instructions, you will be able to re-build the Vivado project from the script on GitHub.  Once you have done this and created your own HDF, you will be able to import it into your PetaLinux environment using :
petalinux-config --get-hw-description <location-of-your-new-HDF-file>
The BSP environment you need for re-building the QSPI flash file with the PL is not the same BSP that you will use for creating image.ub.  That one is currently under "MiniZed_QSPI.bsp (2017.1 BSP for booting from QSPI flash only)".
If you do not want to follow the script or BSP, you could also follow the posted SpeedWay tutorials on the Reference Designs page to create the QSPI flash image from scratch.
 

jcervant's picture
jcervant
Junior(0)
Thanks - everything is now

Thanks - everything is now working as I had hoped.  I had not realized that I import a new hardware definition into an existing petalinux project.

JFoster's picture
JFoster
Moderator(48)
Hello,

Hello,

Have you tried taking a look at our github? We have quite a few builds there that take advantage of the wifi peripheral on the MiniZed.
 

--Josh