I wrote a driver for the PL330 in the Zynq 7000 SoC. It works fine on bare metal.
After installing embedded linux (i think petalinux or something like that) on the FPGA board, i wanted to run the same application on the board. It seems everything is behaving fine but the driver to pilot the PL330.
In particular, i cannot access into the internal registers of the device. Since i execute a mmap of every physical address, i also execute it for the DMAPL330 registers addresses. Afterwards, whenever i try accessing into these addresses, the system crashes. This issue also happens if i'm just trying to write and read one of these registers, which never happened before while running the application on bare metal.
Now, i'm not a linux driver expert so i don't know if there is some particular protocol to be followed in order to write a driver that is supposed to run on the kernel.
Anybody knows what i should do to overcome this issue? Thanks a lot.