Install git large filesystems (git-lfs) in your .gitconfig (1-time step per unix environment)
$ git lfs installClone the git repo with git-lfs enabled
$ git clone --recursive https://github.com/slaclab/Simple-ZCU102-Example.gitNote: recursive flag used to initialize all submodules within the clone
- Setup Xilinx PATH and licensing (if on SLAC S3DF network) else requires Vivado install and licensing on your local machine
$ source Simple-ZCU102-Example/firmware/setup_env_slac.sh- Go to the target directory and make the firmware:
$ cd Simple-ZCU102-Example/firmware/targets/SimpleZcu102Example/
$ make- Optional: Review the results in GUI mode
$ make guiThe .bit and .XSA files are dumped into the SimpleZcu102Example/image directory:
$ ls -lath SimpleZcu102Example/images/
total 47M
drwxr-xr-x 5 ruckman re 2.0K Feb 7 07:13 ..
drwxr-xr-x 2 ruckman re 2.0K Feb 4 21:15 .
-rw-r--r-- 1 ruckman re 14M Feb 4 21:15 SimpleZcu102Example-xxxxxxxxxx-yyyyyyy-user-zzzzzzz.xsa
-rw-r--r-- 1 ruckman re 33M Feb 4 21:14 SimpleZcu102Example-xxxxxxxxxx-yyyyyyy-user-zzzzzzz.bit-
Generate the .bit and .xsa files (refer to
How to generate the SOC .BIT and .XSA filesinstructions). -
Setup Xilinx PATH and licensing (if on SLAC S3DF network) else requires Vivado install and licensing on your local machine
$ source Simple-ZCU102-Example/firmware/setup_env_slac.sh- Go to the target directory and execute the
BuildYoctoProjectscript with arg pointing to path of .XSA file:
$ cd Simple-ZCU102-Example/firmware/targets/SimpleZcu102Example/
$ ./BuildYoctoProject -f images/SimpleZcu102Example-xxxxxxxxxx-yyyyyyy-user-zzzzzzz.xsa- Creating Two Partitions. Refer to URL below
https://xilinx-wiki.atlassian.net/wiki/x/EYMfAQ
- Copy For the boot images, simply copy the files to the FAT partition. This typically will include system.bit, BOOT.BIN, image.ub, and boot.scr. Here's an example:
Note: Assumes SD memory FAT32 is /dev/sde1 in instructions below
sudo mkdir -p boot
sudo mount /dev/sde1 boot
sudo cp Simple-ZCU102-Example/firmware/build/YoctoProjects/SimpleZcu102Example/images/linux/system.bit boot/.
sudo cp Simple-ZCU102-Example/firmware/build/YoctoProjects/SimpleZcu102Example/images/linux/BOOT.BIN boot/.
sudo cp Simple-ZCU102-Example/firmware/build/YoctoProjects/SimpleZcu102Example/images/linux/image.ub boot/.
sudo cp Simple-ZCU102-Example/firmware/build/YoctoProjects/SimpleZcu102Example/images/linux/boot.scr boot/.
sudo sync boot/
sudo umount boot-
Power down the ZCU102 board
-
Insert the SD memory card
-
Confirm the Mode SW6 [4:1] = 1110 (Mode Pins [3:0]). Note: Switch OFF = 1 = High; ON = 0 = Low.
-
Power up the ZCU102 board
-
Confirm that you can ping the boot after it boots up
- Assumes the DHCP assigned IP address is 10.0.0.10
- Using "scp" to copy your .bit file to the SD memory card on the RFSoC. Here's an example:
scp SimpleZcu102Example-xxxxxxxxxx-yyyyyyy-user-zzzzzzz.bit [email protected]:/boot/system.bit- Send a "sync" and "reboot" command to the RFSoC to load new firmware: Here's an example:
ssh [email protected] '/bin/sync; /sbin/reboot'- Assumes the DHCP assigned IP address is 10.0.0.10
- Setup the rogue environment (if on SLAC S3DF network) else install rogue (recommend miniforge method) on your local machine
$ source Simple-ZCU102-Example/software/setup_env_slac.sh- Go to software directory and lauch the GUI:
$ cd Simple-ZCU102-Example/software
$ python scripts/devGui.py --ip 10.0.0.10