Post Go back to editing

Update the Linux boot image (SD card) of AD9082-FMCA-EBZ FMC board with a modified FPGA bitstream

Category: Software
Software Version: Xilinx Vitis/Petalinux 2021.1

I'm using the AD9082-FMCA-EBZ FMC board and Xilinx ZCU102 board to evaluate the DACs and ADCs. I followed the Quick Guide and Kuiper Linux SD Card Guide.

I managed to create the boot SD card and run the IIO oscilloscope on the PC to monitor and control the board.

I also cloned the HDL Ref Design and compiled and build it successfully.

Now, I need to manipulate the HDL reference ( only the data flow, not the Zynq part), produce a new FPGA bit file, and update the boot files on the SD card in such a way that it loads the new FPGA image but the same Linux driver and software. How can I do it?

Probably, what I need is the Petalinux project + Application. So I can use petalinux-package --prebuilt --fpga to pack the Linux kernel with my own FPAG bit stream.

Thanks for your help in advance.

  • BOOT.BIN can be repackaged with the bootgen tools from Xilinx.


  • Thank you Travis for the reply.

    I read Xilinx Bootgen User Guid (UG1283). I couldn’t fine a command to repack the BOOT.BIN with the new FPGA bit file! Or any other command to extract u-boot.elf from the boot.bin! Could you please elaborate on the solution? Note that I don't have the u-boot.elf file to call in the bif file. It would be great if I could have all the required files to run bootgen. I mean, the bif file, u-boot.elf, .... 

    To clarify, what I have is the AD9082 boot SD card (including BOOT.BIN, image and system.dtb) + the HDL reference design. I need to replace the FPGA image in BOOT.BIN with the modified one. With Xilinx Petalinux however, it’s possible to do it file by rebuilding the Petalinux project, which I don’t have.

  • Finally, I managed to create a new boot file which has a modified bit stream. All you have have to do is as follows.

    • Get the right HDL reference design and modify it as you wish (only the data path not the things which have to do with the devicetree). Generate a bit and xsa files.
    • Get the boot image files from this link. You can find them in a tar file in this folder: “zynqmp-zcu102-rev10-ad9082-m4-l8”.
    • Replace the new bit and xsa files with the one in that folder and run the command below.

    $ bootgen -arch zynqmp -image zynqmp.bif -o BOOT.BIN

    • Now, all you have to do is to replace the generated BOOT.BIN and system.dtb file with the ones in your original SD card.