Kernel panic - can't read/write some register values through the PS system

6 views (last 30 days)
Currently, we are using ZCU216 (16ch for ADC and DAC, ZU49DR). The current setup is that the zcu216 board is connected to the server computer (matlab/simulink) via ethernet. We are also using matlab/simulink (2023a version) and example code. This software generated a vivado (2022.1 or 2020.2 version) project and bit stream file.
I can download bit files on the SD card but I can't read/write some register values through the PS system.
For example, if I send "writePort(hFPGA, "ChSelect_A", 0)" then the system dies or panics (I can't do anything).
I have attached a monitoring screen image from zcu216. There are 2 red boxes. One is the working situation and before sending the writePort command. The other is after sending the writePort command and it doesn't work and gives me an error message.
So, we googled the error message and found an article/website with a similar situation to ours. Here is link: https://lore.kernel.org/linux-arm-kernel/b28b1585-742c-16be-3295-f00d03897579@arm.com/T/
We think the CPU (PS side) side of memory has some problem/issue. We also try to run a memory check in PS. But unfortunately, zcu216's linux system is just basic so when we run some commands, zcu216 says 'not found'. So, we tried to install it but it wasn't successful. We also used "devmem [width] [value]" for memory read/write then it works (we checked 3~5 different memory addresses). Also the linux side of things is working (at least before we try to read or write to the registers so we can ssh in.
Q1. Do you have any ideas on how to solve the "SError Interrupt ....." error?
Q2. Do you have any ideas on how to check memory on the PL side (and/or an easy way on the PS side)?
Q3. If you have any suggestions, please let us know.
Q4. Do you think this is a hardware problem?

Answers (1)

Aera
Aera on 10 Sep 2024
We solved this problem and want to share this experience with you.
The main problem was the clock. In my understanding, the 3rd generation of RFSoC (zcu216) has added flexibility on data converter clocking. So the zcu216 board comes with a CLK104 add-on card/board and this is connected with 4 black cables (see attached photo and marked red circle) to distribute the internal clock to the zcu216. Previously, I didn't connect the 4 black cables so there was no clock on zcu216.
After connecting these 4 black cables, we can read/write some values in registers. Of course, there is no SError Interrupt.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!