Posts

  • Patching U-Boot boot script in Petalinux 2021.1

    The U-Boot boot script process was changed in Petalinux 2021.1, and modifying it now requires a recipe to overwrite the original script.

  • Temperature sensor

    In this post we will look at controlling a temperature sensor IC over I2C from Linux, and pre-setting its critical output setpoint from U-Boot.

  • Upgrading to Petalinux 2021

    The latest Petalinux 2021.1 from Xilinx comes with a few improvements and changes that can also trip the unsuspecting user.

  • QSPI boot then loading from MMC

    The flexibility of U-Boot distro boot feature is exercised in this post, where we configure the target to boot from QSPI flash, then load the rest of the binaries from MMC.

  • U-Boot handling MAC address

    There’s several ways for U-Boot to store the Ethernet MAC address in non-volatile memory set at production time. In this post, we’ll analyze the different approaches and point to solutions how to implement them.

  • Using PS SPI to access flash

    The ZynqMP Processing System (PS) counts with two embedded SPI controllers that can be used to access SPI Flash devices. In this post, we configure the PS SPI to talk to an unsupported flash device, adding support by patching the Linux kernel.

  • U-Boot 2020.1 changes to distro boot

    One of the disrupting changes that Petalinux 2020.1 has brought, includes U-Boot moving to what’s called “distro boot”. In this post, we discuss how to handle them while upgrading from earlier versions.

  • JTAG boot in QSPI mode

    Booting a ZynqMP target over JTAG is very useful for a development cycle, as the alternative to programming the flash device is time consuming. However, while in previous Xilinx Vivado versions (<=2017.2) programming the QSPI flash was possible over JTAG, in the latest versions of the tool, the programming fails with errors.

  • Linux Userspace Memory & I/O

    In this post we’ll be looking at how Linux handles accesses to memory devices and I/O from userspace, and comparing the default method used for development (/dev/mem) against the one better prepared for deployment (/dev/uio). We’ll also look at how to reserve memory and make it available for DMA use.

  • Device tree hacking

    Upgrading to a newer version is always recommended, as it brings bug fixes and improvements to the code. However, sometimes upgrading is not smooth and things break, making the process often frustrating. Such was the case when I upgraded this design running smoothly in 2019.2 to the latest Petalinux 2020.1. The standalone device tree generator tool was used to detect and fix the issue.

  • Petalinux notes

    Petalinux tools provide a reference Linux distribution tailored for Xilinx embedded processors, such as Microblaze™ and Zynq™ devices. It’s a layer on top of Yocto, OpenEmbedded and BitBake tools, that makes working with these devices more straightforward. The following notes are the result of working with Petalinux on a custom product development. As always, the Xilinx documentation is indispensable to navigate the complex web of options, although it’s not sufficient to understand the whole flow.

  • Using Xilinx Parameterizable FIFO Macros

    XPM or Xilinx Parameterized Macros are simple modules provided by Xilinx that solve common use cases in an HDL flow, such as RAM or ROM, cross domain crossings and FIFOs.

  • Installing Lattice Diamond on Fedora 29

    Lattice Diamond is an IDE to design, compile and simulate several families of Lattice FPGA’s. While they support .rpm based distros such as RedHat and CentOS, the installation on Fedora 29 required a few tweaks.

  • Using Docker with Petalinux

    How to run Petalinux on a non-supported Linux distro without a VM. Docker is similar to a virtual machine in many respects, but much lighter and faster, and having a reproducible environment to run Petalinux may be of useful when switching versions.

  • Installing Petalinux 2018.2 on Fedora 28

    Fedora 28 is not a supported platform for Petalinux 2018.2, but with a little effort, it can be installed with a workaround. We will install bash-4.3 from source rpm and use it to install Petalinux.

  • Adding ethtool to Petalinux

    This post documents the steps required to add ethtool to an existing Petalinux project.

  • AXI Traffic Generator Tool

    File editor for the Xilinx AXI Traffic Generator IP

  • Git patch flow

    Git is a very flexible distributed source control system, so flexible in fact, that can be used in a variety of ways or flows. In this post, I describe a flow that I’ve been doing while working remotely and not having access to the central code repository.

  • Tweaks to Fedora 28

    Upgrading to Fedora 28 was quite a smooth experience, on all 3 of my computers, two upgraded from Fedora 27 and one installed from scratch. Here’s a few tweaks I did afterwards to make it better suited for my use case.

  • Vivado simulator fix on Fedora 28

    Xilinx Vivado HLx is not currently supported on the latest version of Fedora (28) but since living on the edge entails some suffering, I decided to stick with 28 and plough my way through the challenge. I installed Vivado 2018.1 on Fedora 28, and found some issues during installation, detailed on this post of mine in Xilinx’ forums: Installing Vivado 2018.1 on Fedora 28

  • Installing MCUxpresso Config Tools on Fedora

    MCUxpresso Config Tools package comes with its installer for Ubuntu (14,16) in .deb.bin format, a self-extracting command-line installer. In order to install it in Fedora (or CentOS or RHEL), we’ll extract it and then copy its files to the filesystem.

  • Installing MCUxpresso IDE on Fedora

    MCUxpresso IDE comes with its installer for Ubuntu (14,16) in .deb.bin format, a self-extracting command-line installer. In order to install it in Fedora (or CentOS or RHEL), we’ll extract it and then copy its files to the filesystem.

  • Installing jekyll on Fedora 26

    Installing the static site generator jekyll on Fedora should be a simple matter, but as usual, there’s always a few things that are needed.

  • VNC over reverse SSH

    Playing with network tunnels is fun, and almost magical. SSH is such a toolbox of neat surprises that keeps on giving the more you learn it.

Subscribe via RSS