summaryrefslogtreecommitdiffstats
path: root/Documentation/boards/zynqmp.rst
blob: 05d41c401dc250dfd351082722806d3cf5aaaaf3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
Xilinx ZynqMP Ultrascale+
=========================

Barebox has support as a second stage boot loader for the Xilinx ZynqMP
Ultrascale+.

Image creation
--------------

Currently, Barebox only supports booting as a second stage boot loader from an
SD-card. It relies on the FSBL_ to initialize the base system including sdram
setup and pin muxing.

The ZynqMP defconfig supports the ZCU104 reference board. Use it to build the
Barebox image::

   make ARCH=arm64 zynqmp_defconfig
   make ARCH=arm64

.. note:: The resulting image ``images/barebox-zynqmp-zcu104.img`` is **not** an image
  that can directly be booted on the ZynqMP.

For a bootable BOOT.BIN image, you also need to build the FSBL_ and a ZynqMP
TF-A. Prepare these separately using the respective instructions.

Use bootgen_ or ``mkimage -T zynqmpbif`` from the U-boot tools to build the
final BOOT.BIN image that can be loaded by the ROM code. Check the
instructions for these tools how to prepare the BOOT.BIN image.

Create a FAT partition as the first partition of the SD card and copy the
produced BOOT.BIN into this partition.

.. _FSBL: `https://github.com/Xilinx/embeddedsw/`
.. _bootgen: `https://github.com/Xilinx/bootgen`

Booting Barebox
---------------

The FSBL loads the TF-A and Barebox, jumps to the TF-A, which will then return
to Barebox. Afterwards, you can use Barebox as usual.