mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-06-09 23:36:03 +09:00
doc: board: xilinx: Add documentation for ZynqMP
Add missing documentation for Xilinx ZynqMP configuration with steps how to configure it and run it. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
This commit is contained in:
parent
4286f32a4e
commit
bbda59ed41
|
@ -8,3 +8,4 @@ Xilinx
|
|||
|
||||
xilinx
|
||||
zynq
|
||||
zynqmp
|
||||
|
|
115
doc/board/xilinx/zynqmp.rst
Normal file
115
doc/board/xilinx/zynqmp.rst
Normal file
|
@ -0,0 +1,115 @@
|
|||
.. SPDX-License-Identifier: GPL-2.0
|
||||
.. (C) Copyright 2020 Xilinx, Inc.
|
||||
|
||||
ZYNQMP
|
||||
======
|
||||
|
||||
About this
|
||||
----------
|
||||
|
||||
This document describes the information about Xilinx Zynq UltraScale+ MPSOC
|
||||
U-Boot support. Core support is available in arch/arm/mach-zynqmp folder.
|
||||
|
||||
ZynqMP boards
|
||||
-------------
|
||||
|
||||
* zcu100 (ultra96 v1), zcu102, zcu104, zcu106 - Evaluation boards
|
||||
* zc1232 - Characterization boards
|
||||
* zcu111, zcu208, zcu216 - RFSOC evaluation boards
|
||||
* zcu1254, zcu1275, zcu1285 - RFSOC characterization boards
|
||||
* a2197 - System Controller on Versal boards
|
||||
* mini - Mini U-Boot running out of OCM
|
||||
* zc1751 - Characterization Processor boards
|
||||
- zc1751-xm015-dc1
|
||||
- zc1751-xm016-dc2
|
||||
- zc1751-xm017-dc3
|
||||
- zc1751-xm018-dc4
|
||||
- zc1751-xm019-dc5
|
||||
|
||||
Building
|
||||
--------
|
||||
|
||||
Configure and build for zcu102 board::
|
||||
|
||||
$ source arm64 toolchain
|
||||
$ export DEVICE_TREE=zynqmp-zcu102-revA
|
||||
$ make xilinx_zynqmp_virt_defconfig
|
||||
$ make
|
||||
|
||||
U-Boot SPL flow
|
||||
---------------
|
||||
|
||||
For getting U-Boot SPL flow up and running it is necessary to do some additional
|
||||
steps because booting device requires external images which are not the part of
|
||||
U-Boot repository.
|
||||
|
||||
PMU firmware
|
||||
^^^^^^^^^^^^
|
||||
The Platform Management Unit (PMU) RAM can be loaded with a firmware (PMU
|
||||
Firmware) at run-time and can be used to extend or customize the functionality
|
||||
of PMU. The PMU firmware is the part of boot image (boot.bin) and it is
|
||||
automatically loaded by BootROM. boot.bin can be directly generated by mkimage
|
||||
tool as the part of make. If you want to create boot.bin with PMU Firmware
|
||||
include please point CONFIG_PMUFW_INIT_FILE to PMU firmware binary. For example:::
|
||||
|
||||
CONFIG_PMUFW_INIT_FILE="<path>/pmu.bin"
|
||||
|
||||
If you see below message you need to load PMU Firmware::
|
||||
|
||||
PMUFW is not found - Please load it!
|
||||
|
||||
The second external blob is PMU Configuration object which is object which is
|
||||
passed from U-Boot SPL to PMU Firmware for initial system configuration. PMU
|
||||
configuration object is the part of U-Boot SPL image. For pointing to this
|
||||
object please use CONFIG_ZYNQMP_SPL_PM_CFG_OBJ_FILE symbol. For example:::
|
||||
|
||||
CONFIG_ZYNQMP_SPL_PM_CFG_OBJ_FILE="<path>/pmu_obj.bin"
|
||||
|
||||
|
||||
PMU configuration object
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Object can be obtain in several ways. The easiest way is to take pm_cfg_obj.c
|
||||
from SDK/Vitis design and build it:::
|
||||
|
||||
$ git clone https://github.com/Xilinx/embeddedsw.git
|
||||
$ export EMBEDDED_SW=$PWD/embeddedsw
|
||||
$ gcc -c pm_cfg_obj.c -I ${EMBEDDED_SW}/lib/bsp/standalone/src/common/ -I ${EMBEDDED_SW}/lib/sw_services/xilpm/src/zynqmp/client/common/
|
||||
$ objcopy -O binary pm_cfg_obj.o pmu_obj.bin
|
||||
|
||||
The second way is to use tools/zynqmp_pm_cfg_obj_convert.py. For more
|
||||
information about this tool please run it with -h parameter.
|
||||
|
||||
The third way is to extract it from Xilinx FSBL elf file. Object is starting at
|
||||
XPm_ConfigObject symbol.
|
||||
|
||||
|
||||
Arm Trusted Firmware (ATF)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
U-Boot itself can run from EL3 to EL1. Without ATF U-Boot runs in EL3. Boot flow
|
||||
is U-Boot SPL->U-Boot in EL3. When ATF is used U-Boot normally runs in EL2. Boot
|
||||
flow is U-Boot SPL->ATF->U-Boot in EL2. As the part of build process u-boot.itb
|
||||
is generated. When BL31 shell variable is present u-boot.itb is generated with
|
||||
ATF included. You can point to it by:::
|
||||
|
||||
$ export BL31=<path>/bl31.bin
|
||||
|
||||
Flashing
|
||||
--------
|
||||
|
||||
SD Card
|
||||
^^^^^^^
|
||||
|
||||
To write an image that boots from a SD card first create a FAT32 partition
|
||||
and a FAT32 filesystem on the SD card::
|
||||
|
||||
sudo fdisk /dev/sdx
|
||||
sudo mkfs.vfat -F 32 /dev/sdx1
|
||||
|
||||
Mount the SD card and copy the SPL and U-Boot to the root directory of the
|
||||
SD card::
|
||||
|
||||
sudo mount -t vfat /dev/sdx1 /mnt
|
||||
sudo cp spl/boot.bin /mnt
|
||||
sudo cp u-boot.itb /mnt
|
Loading…
Reference in New Issue
Block a user