Showing results for 
Show  only  | Search instead for 
Did you mean: 
Registered: ‎05-11-2015

Linux platform with Vitis

Stuck and confused with Vitis.

I could create the vivado project and export the xsa.

I could create the linux image, u-boot, fsbl, etc with petalinux from the hw above.

If I boot the board with the petalinux-created boot.bin and image.ub, it boots, so no problem with that.

Now, what I want is to create a Linux app to run on top of that hw + linux.

I created the platform project in Linux. In the linux domain tab there are some paths to fill. Here is where my confusion begins.

First, there is the option in Vitis to generate or not the boot components. First I chose not to (as I already have them, apparently)

Then, for Boot components directory and Linux Image directory, I set the same path, the images/linux folder in the petalinux project folder (I wonder why two paths for things that are together... anyways...)

For bif file, I create one with Xilinx > Create boot image. I filled it with fsbl, bitstream, pmufw, bl31 and u-boot from the images/linux petalinux folder (I wonder if this is correct as it looks redundant with specifying boot components path)

Build the vitis configuration

Create image with Xilinx > Create boot image, using the same bif file as above.

Make the boot SD card with the created boot.bin and image.ub from petalinux


Xilinx Zynq MP First Stage Boot Loader
Release 2019.2   Jan  6 2021  -  14:39:43
NOTICE:  ATF running on XCZU4EV/silicon v4/RTL5.1 at 0xfffea000
NOTICE:  BL31: Secure code at 0x0
NOTICE:  BL31: Non secure code at 0x0
NOTICE:  BL31: v2.0(release):xilinx-v2019.1-12-g713dace9
NOTICE:  BL31: Built : 14:38:46, Jan  6 2021

Any ideas?

One curious thing is that I'm using Vivado 2019.2, Vitis 2019.2 and petalinux 2019.2, I wonder where that 2019.1 comes from




0 Kudos
2 Replies
Registered: ‎05-11-2015

If I skip the apparently offending bl31.elf from the bif file, I get a funnier result:


Xilinx Zynq MP First Stage Boot Loader
Release 2019.2   Jan  6 2021  -  14:39:43
"Synchronous Abort" handler, esr 0x5e000000
elr: 00000000080019f8 lr : 00000000000f7b80
x0 : 00000000c2000001 x1 : 0000000000000000
x2 : 0000000000000000 x3 : 0000000000000000
x4 : 00000000080c2e38 x5 : 0000000000000001
x6 : 00000000080b26e8 x7 : 0000000000000002
x8 : 00000000080c25f8 x9 : 0000000000000080
x10: 00000000000009e8 x11: 00000000000f7c4c
x12: 0000000000000925 x13: 00000000000009ec
x14: 00000000000f7c6c x15: 00000000080c25f8
x16: 0000000000000000 x17: 0000000000000000
x18: 00000000000f7d20 x19: 00000000000f7ca8
x20: 00000000080ab000 x21: 00000000ffd80604
x22: 0000000000000000 x23: 0000000000000001
x24: 00000000fffd8010 x25: 0000000000000000
x26: 0000000000000001 x27: 00000000fffd0273
x28: 00000000fffd8080 x29: 00000000000f7b50

Resetting CPU ...

### ERROR ### Please RESET the board ###


0 Kudos
Registered: ‎05-11-2015

I finally got it to work, I think the basic reason was I wanted to just boot fsbl and u-boot from the platform project and that doesn't seem to be possible, so I created a HelloWorld app and, at least, linux boots.

Next for me is to skip the root login and auto-start the app, but that's another issue.