Hi all,
I’ve been experimenting with the excellent PYNQ-PRIO design and I think I might found an issue. I’ve been searching for a while on internet with no luck and I hope maybe someone can tell me what could be going on.
My design is the same as the PYNQ-PRIO for the ZCU104 and the only modification that I did is to add an axi gpio into the static region of the PL as you can see in the next diagram.
After load successfully the iic partial configuration of the partial region 0 I’ve tried to write some value into the axi_gpio to turn on/off some leds and then the entire linux hangs.
I’ve tried several configuration and what it seems to make the difference is not load the partial region, but the dtbo. Apparently when a dtbo is provided along with the partial region bitstream the access to /dev/mem crashes the entire system.
To probe that I ran the next code:
After that I’ve tried to read and write the axi gpio register to turn on/off leds with good results.
Then I loaded manually the dtbo by using the next commands
sudo su
mkdir -p /sys/kernel/config/device-tree/overlays/pr_0_iic
cat pr_0_iic.dtbo > /sys/kernel/config/device-tree/overlays/pr_0_iic/dtbo
After that I verified than the devicetree overlay was properly loaded by checking the i2cdetect output
Finally I tried to modify again the axi gpio led outputs by using devmem2 command getting as result the system hanging.
I was wondering if anybody with more experience could explain me what could be going on. It looks like when the dtbo is inserted something happens with the way than Linux manages the access to /dev/mem device producing this system crashes.
Configuration:
- ZCU104 board running Pynq 3.0.1
- PYNQ-PRIO design compiled in Vivado 2020.2
Thanks, Toni