Skip to content

Linux distribution for zcu102-blinky (PS/PL) hardware design, built using Yocto and meta-xilinx layer.

Notifications You must be signed in to change notification settings

likewise/zcu102-blinky-yocto

Repository files navigation

This project attempts to build the Linux distro for a design on the ZCU102 v1.1 board,
using Yocto 'gatesgarth' release and meta-xilinx 'gatesgarth' layers.

QUICK START
===========

Format a USB MSD memory stick as FAT32 labeled "ZCU102".

make
cp -aL boot.bin u-boot.itb /media/$HOME/ZCU102/

CURRENT STATE
=============

Current state:
- The "Yocto Community" SPL flow works using upstream U-Boot sources.
- The PMU firmware is built using Yocto (using multiconfig).
- The PMU configuration is currently taken from the Xilinx v2020.2 BSP pre-built release.
- The device tree is currently taken from the Xilinx v2020.2 BSP pre-built release.

- The PMU firmware is built using Yocto (using multiconfig).

- The PMU configuration is currently taken from the Xilinx v2020.2 BSP pre-built release.

- The device tree is currently taken from the Xilinx v2020.2 BSP pre-built release.

Future work is to add IP to the PL that requires the device tree for PL to be generated,
preferably through an automated tool flow from Xilinx Vivado to Yocto (XSCT, HSI, device-tree).
=======
FUTURE WORK
===========

Future work is to generate the correct device tree for the whole system: processing system (PS)
and programmable logic (PL) through an automated tool flow from Xilinx Vivado to Yocto
(XSCT, HSI, device-tree).


PS/PL Design in Xilinx Vivado

The Xilinx Vivado PS/PL custom design is minimal: the PS with a PL blinking a LED.

The ZCU102 design (https://github.com/likewise/zcu102-blinky) contains:
- the default ZynqMP MPSoC Processing System (PS) with all FPGA AXI buses disabled.
- a very small Programmable Logic (PL) bitstream that blinks PL LED0 near the Zynq logo
  (Note that LED DS47 is already blinking by default - do not be confused).
- Work is underway to add an AXI bus allowing the PS to access the DDR connected to the PL.

Currently manually using TFTP/NFS to boot the board beyond U-Boot:

if dhcp 0x1000000 192.168.2.5:/tftproot/zcu102/download.bit; then fpga loadb 0 0x1000000 1; fi;
tftpboot 0x100000 192.168.2.5:/tftproot/zcu102/zynqmp-zcu102-rev1.1.dtb; tftpboot 0x200000 192.168.2.5:/tftproot/zcu102/Image
setenv bootargs 'ip=dhcp root=/dev/nfs nfsroot=192.168.2.5:/nfsroot/zcu102,nfsvers=3,tcp  earlycon console=ttyPS0,115200 clk_ignore_unused'
booti 0x200000 - 0x100000

NOTES
=====

- U-Boot requires manual configuration overrides in order to build correctly.
  (see meta-project U-Boot .bbappend).
- Boot sequence is Boot ROM->SPL-(EL3)->U-Boot

runqemu boots but uses the non-SPL flow and is not fully representing the hardware boot sequence as such.

About

Linux distribution for zcu102-blinky (PS/PL) hardware design, built using Yocto and meta-xilinx layer.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published