sbobrowicz

Members
  • Content count

    349
  • Joined

  • Last visited

  • Days Won

    22

sbobrowicz last won the day on December 29 2017

sbobrowicz had the most liked content!

7 Followers

About sbobrowicz

  • Rank
    Prolific Poster

Contact Methods

  • Website URL
    www.elite-embedded.com

Profile Information

  • Gender
    Male
  • Location
    Seattle, WA

Recent Profile Visitors

4143 profile views
  1. There is no "digilent_zed_defconfig"

    I wrote that guide 5 years ago... A lot has changed since then in the kernel and u-boot. I can get you past this problem, but I'm not going to guarantee that you don't just run into another one. How Digilent is supporting embedded linux these days is via petalinux projects. Digilent doesn't directly provide one for the Zedboard, however Xilinx does and it can be obtained directly from the Petalinux download page (It's called a BSP). The xilinx petalinux manual reads a lot like a tutorial and can be followed along with the ZedBoard BSP to get things going. But if you want to continue pushing through the ol` GSwEL guide, I can try to get you through it with the newer kernel and u-boot. I actually think it does a good job of explaining the various components needed to boot Linux on Zynq, and that info is still accurate today (though it is packaged differently these days). Anyways, we (following Xilinx's lead) stopped including board specific config files, and just use one for all Zynq-7000 devices. To use, you should run: make ARCH=arm xilinx_zynq_defconfig
  2. zybo won't boot on sd card FSBL LED D4 (LD_MIO)

    Hi Frank, LD4 is a software controlled LED. Its most common use is to indicate CPU or Disk activity when running Linux. This is handled entirely in the device tree, and you can tell if one of your designs is doing this by searching the dts and dtsi files for a gpio-leds node (or reverse compiling the dtb), as described here: https://www.kernel.org/doc/Documentation/devicetree/bindings/leds/leds-gpio.txt . Back to the point, I'm not really sure what it is doing in the design that is failing to boot. LD10 indicates that the PL (FPGA) portion of the Zynq has been configured. Though it is possible to boot into Linux without programming the PL, I doubt this is the intention. With that in mind, it is likely that either (1) your FSBL is failing and hanging somewhere in an error state or (2) The FSBL was created with .bit by accident, and your program is hanging early in the boot process, because the CPU tends to hang when it tries to access a peripheral in the PL that isn't there (because the FPGA isn't programmed). Does your second BOOT.BIN include a .bit file? If it already is, you could try to get some additional debugging messages from the FSBL. I recall being able to do this by defining an additional preprocessor symbol for the fsbl project in Xilinx SDK, DEBUG I think (you should probably search around the fsbl source to make sure the symbol is actually DEBUG). You can make sure gcc adds the symbol by adding -DDEBUG to the command line (the extra 'D' is on purpose here). I think you can do this by right-clicking your project, choosing C/C++ Build options, choosing compiler options, and looking for a place to add in "misc" settings (sorry this is all from memory). Then just add -DDEBUG Edit: I see you mentioned that you are using a .bitfile. So I expect the issue is your FSBL failing. You should definitely try to add the debugging messages. Also, make sure your bitfile can successfully program your board over JTAG (you can do this using the program FPGA button in Xilinx SDK, or the Hardware manager in Vivado).
  3. The amount of functionality you get will depend on what gets built into the ramdisk. In the case of petalinux, you are selectively building user space applications, libraries, and scripts into a ramdisk (or, alternatively, a persistent image to flash on the second partition of the SD card). So what features you have is dependent on what you choose. In the case of the prebuilt ramdisk that the older guides point to, it is a very basic, busybox based system. You will not have much functionality, except for a basic SSH server and some standard console and file commands. Don't expect a desktop or any serious sound support. Regarding Linaro, yes, you should be able to flash a prebuilt rootfs image to the second partition of your SD card and modify the bootargs in your device tree to use it. This will provide you with many features over the prebuilt Xilinx ramdisk that the guide is pointing you towards. The features you get depend on the Linaro rootfs "flavor" you choose. I'd recommend alip, which gives you an LXDE desktop and other lightweight features, but isn't as heavy as the gnome-based Ubuntu build. I think you might also get apt-get repo management, but that might only be in the full Ubuntu build. Also, you should note that things might not all work as expected, because those images will all be built against a specific version of the kernel, and you will be using your own kernel. To minimize these issues you should try to pick a rootfs image that targets a version of the kernel that is close to the version you are using. Also, you will need to make sure you manually install any kernel modules you require in order for modprobe to work correctly. I really feel like a petalinux salesman these days, but I'd recommend making a jump to the petalinux materials. I do believe that running through those older guides is a great way to learn about embedded linux on Zynq, the various components needed for boot, and the build process, but as a practical Zynq/FPGA build environment, petalinux (or yocto) is superior. If you are doing an academic exercise I would say complete it, but then check out the petalinux materials Digilent has for the Zybo. The value it offers should be clear then. It's also 100% free, I'm only pushing it because I think it provides the most productive solution.
  4. Arty-Z7-20 with Vivado 2018.1

    We tend to only update the Petalinux projects on an as needed basis and on the 20xx.4 release. If petalinux 2018.1 does not add compelling enough features or fix something that is significantly broken, we will probably skip it all together. That is why we are very verbose on our petalinux project support table what version each board supports. You should refer to that table first before going through the hassle of installing a version of petalinux. If you have feedback on this let us know.
  5. PetaLinux on Zybo

    You mentioned you are using the Zybo Z7-20, but I think I assumed you were using the regular ZYBO board, so I pointed towards the incorrect materials... apologies. You should have referred to the README for the Zybo Z7-20 on this page: https://reference.digilentinc.com/reference/software/petalinux/start Using the materials for the older ZYBO board would explain your symptoms, because that board has a 7010 and the bitstreams are incompatible.
  6. Arty-Z7-20 BSP 2017.4: GPIO with Switches

    That's great news!
  7. PetaLinux on Zybo

    No green LED typically means the BOOT.BIN never gets fully loaded. Here are some likely culprits: 1) Does the green LED illuminate and then go dark? This typically indicates a power issue when powering from USB. To solve this, you need to power from an external 5V supply. 2) Is the mode jumper (JP5) set to SD? 3) I've had corruption issues before when copying to SD. Make sure umount completely returns prior to ejecting the SD card. 4) To verify if it is the binary or your hardware setup, try downloading the BSP and copying the prebuilt files to your SD card. Then try booting it and let me know if it is successful.
  8. Arty-Z7-20 BSP 2017.4: GPIO with Switches

    Side note, to use gpioutil, first run "gpioutil -d" in order to get the needed uio number of the axi GPIO attached to the switches. Then use the following to read switch 0: gpioutil <uio#> 0 2 -i 0
  9. Arty-Z7-20 BSP 2017.4: GPIO with Switches

    Hello, Glad to hear you are making progress. The data input register for channel two is offset 0x8 bytes after the base address for the AXI-GPIO controller. You will need to read that register. How you do this depends on what method you ended up going with, dev/mem or uio. If you went uio, we wrote the libgpio library specifically for providing an API to UIO mapped AXI GPIO devices. I'd recommend building that in to your rootfs using petalinux-config (it should actually be built in by default). For an example of how to use libgpio, see the gpioutil source. gpioutil is a command-line tool for togging/getting GPIO bits (it should also be in rootfs by default, give it a shot in your running system). https://github.com/Digilent/libgpio https://github.com/Digilent/gpioutil
  10. no console in ttyPS0 : zybo 7010

    Are you using the Petalinux materials? They are here: https://reference.digilentinc.com/reference/software/petalinux/start Even if you do not want to use petalinux as your build environment, you can still download it and check it out as an example of what your device tree should look like, and where you should checkout the Digilent u-boot and linux repos. Note it targets this vivado project: https://github.com/Digilent/Zybo-Z7-10-base-linux
  11. Great, glad to hear it is working
  12. Arty-Z7-20 with 2017.4 BSP based petalinux build failed

    rrh, Thanks for finding this and posting your solution
  13. Ethernet for Zybo Linux

    That problem is probably caused by using your own kernel build with the linaro rootfs, which was built for a specific kernel. You should be able to work around it by building any kernel modules you need while building your kernel (mark them as "m" in the Kconfig menu). Then you can manually install them into the correct /lib/modules/ folder. I'm not sure how to make the modules.dep.bin, but you may need to make one of those too. That will fix modprobe on your system, and hopefully iptables (if you build in whatever module iptables needs). But I'm not convinced for certain that is your problem. Are you plugging ethernet directly from the board to the computer? Maybe try using a router or switch to connect the two devices. Also, are you using DHCP to assign an address to the board? It is also possible that you broke something in the Vivado block diagram when you were changing the Zynq Ethernet and MDIO settings. Those should be set to match what gets set when you "run block automation" on a newly inserted Zynq PS IP core (Assuming you have vivado-boards installed and your project targets the Zybo board). If you are communicating successfully with other devices, it is likely this is not the problem.
  14. PetaLinux on Zybo

    This is going to sound pretty annoying, but your best option if you plan on trying to avoid serious issues that everyone here is not going to know how to fix, you should actually use the Zybo materials described here: https://reference.digilentinc.com/reference/software/petalinux/start Click the README on that page for the ZYBO to get started. The annoying part is that this will require you to install 2017.4 petalinux and Vivado. Probably you will also have to uninstall the 2015.4 tools to make drive space. Speaking as the person who created all of Digilent's petalinux materials, you should avoid all of those older guides and versions of Petalinux. Our support for the tool is now miles ahead of what we did in the petalinux-bsps repo, and the petalinux tools have improved significantly in nearly every way: reliability, usability, extensibility, etc.
  15. Linux on Zybo made with Windows Vivado+SDK, Ubuntu VM

    Jon is right, you are going to need to install Vivado in your Ubuntu VM. And trust me, I understand how big of a pain this is. I use VM's for all of my Xilinx builds, I've actually found them very useful for addressing the never ending storage suck that is installing up to date Xilinx tools. What I do is have a single Ubuntu VM with 200 GB allocated present on my 512GB NVMe drive. I consider that active, and it typically has the most recent version of the Xilinx tools installed (Vivado, petalinux, SDx). When a new version of the tools comes out, I close the VM, copy all of the files to a 4 TB sata HDD, reopen the active VM, uninstall all of the old versions of the Xilinx tools, and install the newer versions of the Xilinx tools. Then, if I ever need to use an older version of the tools, I just close my active VM and open the old copy of the VM. It runs slower, because it is on spinning rust, but that is the best solution I've had so far. In the case of a laptop, where you don't have a 4TB drive, I would recommend using a cloud service or large, external USB3 HDD. Since you wouldn't be able to run a VM in the cloud and the USB3 HDD would probably be pretty slow, I'd recommend a USB3 SSD. Then, when you need to run an old version of the tools, copy the old VM to the USB3 SSD, and run the VM directly off of the USB3 SSD. I use this type of setup when I am on the road. I recommend this drive (or the 250GB model): https://www.amazon.com/Samsung-T5-Portable-SSD-MU-PA500B/dp/B073GZBT36/ref=dp_ob_title_ce?dpID=318I0KrjRKL&preST=_SX300_QL70_&dpSrc=detail If you are planning on doing any sort of long-ish term work with Xilinx tools, doing the work to setup a system such as this is the only way you will mitigate serious space related headaches. If you are looking for a short-term, free solution, just do what you need to do to free up enough space on your drives and then install the Xilinx tools in your VM. I recommend uninstalling the Xilinx tools on your Host machine.