Post Go back to editing

ZU11EG RFSOM Building Correct Vivado Project for use with Petalinux

Category: Software
Software Version: 2023.2/2022.2

We are trying to use the github code here (main branch) to build an XSA file. We made sure to generate all of the libs and IPs with 2022.2 since that is what is supported and then converted the project to 2023.2 due to some internal requirements. When trying to use the XSA file to generate a Petalinux build, we are unable to mount our system as read/write (r/w) and it will only mount a read only (ro).

  • Is the switch from the SD card adaptor on the write protected end?


  • No, We have verified that it isn't the switch on the SD card itself. We have tried both the uSD card slot on the RFSOM itself and the SD card slot on the carrier. We have even tried 5 different SD cards.

    Using the SD card provided from AD, it is able to work just fine. We are thinking it is something in the HDL code from AD since our same Petalinux build is able to work on a ZCU102 dev board.

  • I'm not familiar with the Petalux flow. I'm waiting for a comment from someone who is.
    I don't see any reason why this would be a HDL issue. More of an bootloader config issue.
    My recommendation is to check for similar issues/thread on Xilinx forums.


  • We think it is a HDL issue because the card is showing up as hardware write protected even though the hardware clearly says it isn't. The same hardware and SD card works fine when we put a prebuilt Kuiper Linux image on it. So, electrically the card is not protected but the software thinks it is. By HDL, I mean what is in the .xsa file that comes out of the build-- which is both FPGA bitstream and device-tree. Those two components are the suspects-- might be only one of them but because they come together as a set in the .xsa, that is what is the raw input to our PetaLinux build. When we do the same PetaLinux build for ZCU102, the system works, using the .xsa we build in Vivado. When we use the template HDL for ZU11EG, build in Vivado and provide that .xsa to the PetaLinux build, we end up with an SD card that is R/O on the ZU11EG

  • Hi  ,

    In this case the ADRV9009-based SOM is a custom board, have you added all the corresponding descriptions (dts/dtsi) that are present on the GitHub repository (for that board) in corresponding system-user.dtsi of the petalinux project (project-spec/meta-user/recipes-bsp/device-tree/files/)(including the elements that will be used in the PL and has a connection to memory through AXI's ports of the ZynqMPSoC in this case). Thanks.

    Best regards,


  • Hi-- I am working with NaN952 on this problem and we have followed the recipe here,, which is ADI's meta-layer for the various boards they support, including ZU11EG.  Therefore, we believed that the HDL and the device tree source were being properly integrated into the PetaLinux build.    For this effort, we are not changing the HDL at all, and simply want to build the reference design version of PetaLinux to run on this board as it comes out of the box.   So far, we are unable to do that, with the result always generating an image that finds the SD card read-only.   We have confirmed that the hardware is NOT read-only because as was mentioned, we can put the Kuiper Linux from here on the same SD card and it will boot and run read-write without issue.   So, we believe our hardware is in a correct configuration.

    Do people believe that more work is required to modify the .dts/.dtsi files that are a part of the ADI meta-layer before it will build a successful, working image?  If so, where do we find that correct .dts and .dtsi files if they are not in the meta-layer as linked to above?

    Thank you,


  • Hi,

    By default, petalinux will generate a simple initrd image. Likely that's the reason why you have an RO filesystem. You can run 'petalinux-config' and select the filesystem type to ext4 (check the README in meta-adi), then it will use whatever you have formatted in your sdcard (but you should likely flash the ext4 filesystem generated by the build int your sdcard).

    Have you done the above and still have RO?

    - Nuno Sá

  • yes, we have changed the filesystem to be ext4 and it is still RO

  • Alright... I have some doubts that has anything to do with meta-adi. May very well be some petalinux configuration... But I'll have to test this on my end. I'll try to get some time for it next week.

    - Nuno Sá

  • Thank you! We very much appreciate another data point.  We believe we know how to "drive" the PetaLinux build system since we can successfully generate a working build for ZCU102.   But following the recipe linked above and using the meta-adi layer, we are still very stuck for the ZU11EG.

    I should also note that booting the image we build over the network and running from RAM, still results in the SD card being treated as R/O.  So, basically anything we build with PetaLinux cannot write to the SD card.   Running with the Kuiper Linux image, as I noted earlier, does work just fine with R/W access to the SD.

    We are using SD card for now but ultimately will move to eMMC which we are putting on our carrier board on which we will mount the ZU11EG.

    So, we would very much appreciate another view point and if you are successful, we can hopefully find what we are doing wrong.