• Content Count

  • Joined

  • Last visited

  • Days Won


sbobrowicz last won the day on July 10 2018

sbobrowicz had the most liked content!

About sbobrowicz

  • Rank
    Prolific Poster

Contact Methods

  • Website URL

Profile Information

  • Gender
  • Location
    Seattle, WA

Recent Profile Visitors

6384 profile views
  1. Seems to be a problem with your petalinux install. Try following the instructions here to install the tools: Also, you will need to set your shell to bash by running the following: dpkg-reconfigure dash
  2. Sorry about that, I fixed the link. Yup, 5 is optional. The best place to refer to is the linux kernel documentation inside the source code itself. You can find this here: Just browse to the device you are trying to use and you should be able to find what you need with some examples. For a more high level understanding of what the device tree is, check out this guide (or one of the similar ones out there): . As for learning how petalinux glues together device trees, you should read UG1144 from Xilinx: . You will probably have to play around with it a bit before you fully understand how it works, but basically what I do is start by building only the device tree using: petalinux-build -c device-tree Then you can check out the automatically generated dts and dtsi files in the components folder of your project. What you will see is a bunch of automatically generated nodes that conveniently correspond to the IP cores in your vivado project, and then at the very end of the file, system-user.dtsi is included. This allows you to override any of the automatically generated nodes or their properties (most of the ones you will want to override you will find in pl.dtsi).
  3. @nardhini What version of petalinux are you using? I'm not super up to date on using the petalinux-create command, so I probably won't be able to answer your question right off the top of my head. You might want to hedge your bets here and also post your question on the Xilinx embedded linux forum to ensure you get the fastest possible response:
  4. Hi @patelviv There really isn't a tutorial for how to do this, but rather an example project that you can refer to. The Vivado project and petalinux project (that includes the properly configured device tree) are found here: K, so technically that project doesn't use the VGA output, but rather uses the HDMI output. If that doesn't work for your purposes, then you will need to replace the rgb2dvi core with an rgb2vga core, and also remove the I2C controller attached to the DDC bus on the the HDMI port (don't forget to modify the XDC). The use petalinux-config --get-hw-description to import the HDF from your modified project (see UG1144 from Xilinx for more detail on this). Finally, you should modify the system-user.dtsi device tree file in the petalinux project to remove the property in the digilent-encoder node that links to the DDC i2c controller you removed (since the VGA port doesn't have the DDC bus attached to the FPGA). This will cause the driver to just hard code to a resolution on boot, to see how to set the resolution refer to:
  5. @rfsweitzer Sorry for the delay. Unfortunately we don't have anything specifically for what you are asking, so all I can do is point you to some resources that should help out. First, I recommend starting with the 2018.2 Zedboard BSP from Xilinx (you can also check for one). Then you can follow UG1144 from Xilinx to learn how to build in any libraries that you may need (petalinux-config -c rootfs) and USB gadget drivers you may need (petalinux-config -c kernel), and finally how to build your sysroot and setup Xilinx SDK so that it will properly link in the libraries you've included in your rootfs. The final step will allow you to use Xilinx SDK as a nice IDE for writing you application, you could also skip it and just write it using a text editor, and then build it into your system as a Petalinux app (see UG1144). As for info on writing a USB-OTG application, you should just search around the internet for how to do this on any embedded linux platform. You should be able to find some resources out there (it is not really important what platform you are on).
  6. @stefanardo Looks like it has been a long time since you asked this, but I've got some time to help out if you are still stuck. The first thing I'd ask is whether you obtained the project using git clone --recursive The important part is the --recursive. @jpeyron and @artvvb, can you provide a link to a good tutorial for how to properly clone and build a project such as the one above? Note that the base-linux projects don't have releases (maybe this should change though?)
  7. @juergenR Going back to your initial problem, you should have been able to start with this project (assuming you are using the -20, not the -10): and then do the following: 1) modify that project to disable the I2C controllers (and make any other modifications). 2) Build the project and export the HDF. 3) Import the project into the Petalinux-Arty-Z7-20 project using petalinux-config --get-hw-description=<exported location> 4) Modify the project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi file to remove any references to devices you no longer include in the project. Also add nodes for any devices you added to the project. Save and close the file. 5) Use petalinux-config -c kernel to add any required drivers for new devices you added to the project. Note that it should not be required to disable any drivers for devices you removed: since you removed them from the device tree, the system should not try to use them. The only reason to remove drivers from the kernel you aren't using is to reduce the size/complexity of the kernel. Is this the procedure you followed?
  8. sbobrowicz

    Yocto Zedboard

    What yocto project and/or guide are you using? Hopefully this will give me more info, because I will need to know a lot more, including what version of yocto support and vivado you are using from Xilinx, and also how your VGA port is connected in your Vivado block diagram (VDMA?).
  9. @TAC Ahhhhh, I understand a bit more now... you are not using the PL (FPGA) in the Zynq, only the processors. I peaked at the meta-zybo layer hosted on github. I think you will need to do at least two things to make it work on any level: 1) Open and change the following: ps-clk-frequency = <50000000>; to: ps-clk-frequency = <33333333>; and also: ps7_ddr_0: [email protected] { device_type = "memory"; reg = <0x0 0x20000000>; } ; to: ps7_ddr_0: [email protected] { device_type = "memory"; reg = <0x0 0x40000000>; } ; 2) Replace ps7_init.c and ps7_init.h with those found here: I'm still not going to guarantee that this will work, but it might. If you can manage to get a terminal, ethernet and USB might not be working because I think some things may need to change in the device tree for those devices too. For an example of what the ethernet and USB modifications in the device tree dtsi should look like, you can refer here: . Only look at the ethernet and USB stuff, most of the other modifications are for devices that are expected to be in the FPGA. ... Also you could just follow this Digilent provided guide and use petalinux
  10. Any chance you are using the Zybo Z7-10, not the original ZYBO? The input oscillator on that board changed from 50MHz to 33.333MHz, which means if you try to run software made for the original ZYBO on it, I would expect things to run at about 66.66% of the expected speed, which explains your observation. I'd also expect a lot of other things to not function correctly, which would make me somewhat surprised you got as far as you did.
  11. @MauroChimenti Unfortunately we don't have Linux examples for the Pmod IP cores. In general, for devices that have good Linux support you should modify system-user.dtsi in your petalinux project to load the required drivers. Often times you will need to add the device as a child node of an existing I2C or SPI bus. To find out if the external device you are trying to use has drivers in the kernel, look for a document that corresponds to it here: . If you find one, then it will describe what your device tree will need to look like in order for the driver to get loaded. For devices that don't seem to have good linux support, I would look around for petalinux examples that describe how to use /dev/mem or UIO to gain access to the register maps of devices in the PL. From there it will be a matter of porting any existing SDK examples to use the mmaped files to access the registers.
  12. @mmongu @nicmoseli Sorry for the delay, hit a couple unexpected speed bumps. Anyways, Pcam 5C support has now been integrated into the Petalinux project: I'm on to reVISION support now.
  13. I'd bet this is a caching issue. You should try calling some functions to flush the cache after the DMA transfer completes. You could also try using the ACP port (instead of the HP0) to keep the cache coherent, but I'm not really sure if that requires some additional work in the PL or software. See here for some info on functions that can be used to flush the cache: . Also, you should probably reserve the range of memory you are using for your buffers in your device tree so that the system doesn't try to use it. See here for example:
  14. @fandrei I'll admit I haven't used a Linaro image in a while, but I used to start by finding an armhf image here that seemed suitable for my needs: . Here is one that is an example of a good, light-weight desktop that is built around Ubuntu 16.04 LTS: . Then I would do the following to get it to work with my Petalinux system: 1) Set the root file system to "SD" using petalinux-config. Follow the instructions here to do this, but stop before you get to the "dd" command: . 2)Download the root fs from Linaro and extract it 3)Copy the contents of the extracted archive to the second partition of your SD card using "sudo rsync -a". The root of second partition should look like a standard Linux root filesystem if done correctly (/lib, /usr, /home, /mnt, /media, ...). 4) Execute "sync" to ensure all data is copied to the SD card, then unmount both partitions and eject it from your computer. In my experience that used to work most of the time, but you need to make sure you are using a kernel that is pretty close to the one that is expected to be packaged with the image. Also, you will need to manually copy over any kernel modules you need from petalinux.
  15. @jacobfeder USB wifi drivers tend to require there to be firmware blobs installed into your rootfs at /lib/firmware. The drivers use these blobs to configure the proprietary SoC's in the wifi dongle. In your case, you need "/lib/firmware/rtlwifi/rtl8192cufw_TMSC.bin" and/or "/lib/firmware/rtlwifi/rtl8192cufw.bin" to be present. You can find these files in the linux-firmware package, which can be installed from standard linux distros using apt-get, dnf, yum, etc., and then simply copy them to where they need to be on your rootfs. If you are using petalinux, you could build a simple app that copies the files into the rootfs during the build process, which might be most convenient in the long run. A third option is to find a yocto recipe out there for linux-firmware and just point your project towards it (UG1144 describes how to do this).