From f77f964d958be939dd96b03d94a1b6296e009840 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20Menk=C3=BCc?= Date: Thu, 30 Jun 2022 20:47:00 +0200 Subject: [PATCH] make build script compatible with vivado/vitis 2022.1 (should also work for all version 2020.1 and above) --- Makefile | 23 ++++++++++------------- scripts/create_fsbl_project.tcl | 20 +++++--------------- 2 files changed, 15 insertions(+), 28 deletions(-) diff --git a/Makefile b/Makefile index fc74d00c..295f88d7 100644 --- a/Makefile +++ b/Makefile @@ -130,30 +130,27 @@ build/rootfs.cpio.gz: buildroot/output/images/rootfs.cpio.gz | build build/$(TARGET).itb: u-boot-xlnx/tools/mkimage build/zImage build/rootfs.cpio.gz $(TARGET_DTS_FILES) build/system_top.bit u-boot-xlnx/tools/mkimage -f scripts/$(TARGET).its $@ -build/system_top.hdf: | build +build/system_top.xsa: | build ifeq (1, ${HAVE_VIVADO}) - bash -c "source $(VIVADO_SETTINGS) && make -C hdl/projects/$(TARGET) && cp hdl/projects/$(TARGET)/$(TARGET).sdk/system_top.hdf $@" + bash -c "source $(VIVADO_SETTINGS) && make -C hdl/projects/$(TARGET) && cp hdl/projects/$(TARGET)/$(TARGET).sdk/system_top.xsa $@" unzip -l $@ | grep -q ps7_init || cp hdl/projects/$(TARGET)/$(TARGET).srcs/sources_1/bd/system/ip/system_sys_ps7_0/ps7_init* build/ -else ifneq ($(HDF_FILE),) - cp $(HDF_FILE) $@ -else ifneq ($(HDF_URL),) - wget -T 3 -t 1 -N --directory-prefix build $(HDF_URL) +else ifneq ($(XSA_FILE),) + cp $(XSA_FILE) $@ +else ifneq ($(XSA_URL),) + wget -T 3 -t 1 -N --directory-prefix build $(XSA_URL) endif -### TODO: Build system_top.hdf from src if dl fails - need 2016.2 for that ... +### TODO: Build system_top.xsa from src if dl fails ... -build/sdk/fsbl/Release/fsbl.elf build/sdk/hw_0/system_top.bit : build/system_top.hdf +build/sdk/fsbl/Release/fsbl.elf build/system_top.bit : build/system_top.xsa rm -Rf build/sdk ifeq (1, ${HAVE_VIVADO}) - bash -c "source $(VIVADO_SETTINGS) && xsdk -batch -source scripts/create_fsbl_project.tcl" + bash -c "source $(VIVADO_SETTINGS) && xsct scripts/create_fsbl_project.tcl" else mkdir -p build/sdk/hw_0 - unzip -o build/system_top.hdf system_top.bit -d build/sdk/hw_0 + unzip -o build/system_top.xsa system_top.bit -d build/sdk/hw_0 endif -build/system_top.bit: build/sdk/hw_0/system_top.bit - cp $< $@ - build/boot.bin: build/sdk/fsbl/Release/fsbl.elf build/u-boot.elf @echo img:{[bootloader] $^ } > build/boot.bif bash -c "source $(VIVADO_SETTINGS) && bootgen -image build/boot.bif -w -o $@" diff --git a/scripts/create_fsbl_project.tcl b/scripts/create_fsbl_project.tcl index f507e49e..4cbf1b71 100644 --- a/scripts/create_fsbl_project.tcl +++ b/scripts/create_fsbl_project.tcl @@ -1,17 +1,7 @@ -hsi open_hw_design build/system_top.hdf +hsi open_hw_design build/system_top.xsa set cpu_name [lindex [hsi get_cells -filter {IP_TYPE==PROCESSOR}] 0] -sdk setws ./build/sdk -sdk createhw -name hw_0 -hwspec build/system_top.hdf - -# Workaround for broken write_sysdev in vivado 2018.2 -catch { - set copyfiles [glob ./build/ps7_init*] - if {[llength $copyfiles]} { - file copy {*}$copyfiles ./build/sdk/hw_0/ - } -} -sdk createapp -name fsbl -hwproject hw_0 -proc $cpu_name -os standalone -lang C -app {Zynq FSBL} -configapp -app fsbl build-config release -sdk projects -build -type all -#xsdk -batch -source create_fsbl_project.tcl +setws ./build/sdk +app create -name fsbl -hw build/system_top.xsa -proc $cpu_name -os standalone -lang C -template {Zynq FSBL} +app config -name fsbl -set build-config release +app build -name fsbl