Hi, I am trying to make a pynq Image for RFSoC Gen3 ZCU208 based on ZCU111 image and Vagrant VM.
I have been able to compile an image without packages, and LEDs, buttons, DMAs and basic issues work well, but I got stucked with xrfdc package:
after a while I managed to compile too an image without mistakes containing xrfdc at vagrant VM, but when importing rfdc at jupyter notebook i got this error:
import xrfdc
and, as it says, when doing
nm -DC libxrfd.so
from terminal checking for the generated shared object, metal_register_generic_device, it does exist but it is undefined. However, for some reason is not defined before importing xrfdc at python.
I am newbie and I do not understand a lot about all files needed for making a custom image. Is there any special file I have forgotten to change between zcu111 and zcu208?? for the moment i made this to the Makefile:
EMBEDDEDSW_DIR ?= embeddedsw
ESW_LIBS := rfdc scugic
LIB_NAME := libxrfdc.so
LIB_METAL_DIR := $(EMBEDDEDSW_DIR)/ThirdParty/sw_services/libmetal/src/libmetal
LIB_METAL_INC := $(LIB_METAL_DIR)/build-libmetal/lib/include
ESW_SRC := $(filter-out %_g.c, $(foreach lib, $(ESW_LIBS), $(wildcard $(EMBEDDEDSW_DIR)/XilinxProcessorIPLib/drivers/$(lib)/src/*.c)))
ESW_INC := $(patsubst %, -I$(EMBEDDEDSW_DIR)/XilinxProcessorIPLib/drivers/%/src, $(ESW_LIBS))
OS_INC := -I$(EMBEDDEDSW_DIR)/lib/bsp/standalone/src/common -I$(EMBEDDEDSW_DIR)/lib/bsp/standalone/src/arm/ARMv8/64bit -I$(EMBEDDEDSW_DIR)/lib/bsp/standalone/src/arm/ARMv8/64bit/platform/ZynqMP -I$(EMBEDDEDSW_DIR)/lib/bsp/standalone/src/arm/common/gcc -I$(EMBEDDEDSW_DIR)/lib/bsp/standalone/src/arm/common -I$(LIB_METAL_INC)
LOCAL_SRC := $(wildcard src/*.c)
all: $(LIB_NAME)
$(LIB_NAME): $(EMBEDDEDSW_DIR) $(LIB_METAL_INC)
gcc -o $(LIB_NAME) -shared -fPIC $(ESW_INC) -Isrc $(ESW_SRC) $(LOCAL_SRC) $(OS_INC) -D__BAREMETAL__ -ggdb
install:
cp $(LIB_NAME) xrfdc/$(LIB_NAME)
pip3 install .
$(EMBEDDEDSW_DIR):
git clone https://github.com/Xilinx/embeddedsw -b release-2020.2 $(EMBEDDEDSW_DIR)
$(LIB_METAL_INC): $(EMBEDDED_DIR)
mkdir -p $(LIB_METAL_DIR)/build-libmetal;
cd $(LIB_METAL_DIR)/build-libmetal; \
cmake .. -DCMAKE_TOOLCHAIN_FILE=/../../../../../../../zcu111-libmetal.cmake
basically, what I did is changing from 2018.3 to 2020.2 (to contain newer rfdc driver for ZCU208) and changing path to cortex A53, because since 2019 versions of embedded software is at another path acording to the changelog.
I also modified xparameters.h, xrfdc_g.c and xscugic_g.c at /packages/xrfdc/pkg/src, with the ones at my own bsp for ZCU208 Vivado project containing ZCU208 and rfdc block.
Do you think is there any other file I should modify? I know I am close to make it work but need your help please
thanks and regards
Fran