I am trying to read FPGA memory on a Xilinx Zynq board (zc702) as part of porting an RTEMS driver to Linux. I am using the devmem2 and mmap_test programs that I cross-compile for the board using the Yocto cross-compiler. The board has 1 GB of normal memory. This means that any read between 0x0 and 0x40000000 returns valid memory. The problem is, however, when reading from 0x7AA00000, the kernel crashes immediately without even printing a kernel panic message to the terminal (serial port with minicom and ssh). I even wrote small sample kernel modules to read from that address and use kprint, but it results in the same crash. Since the driver works with RTEMS, the physical memory address has been verified to be correct.
What steps have to be taken to be able to read from the FPGA memory/registers without Linux crashing?
gdb
, but I'm not sure. With a JTAG debugger you can typically see the memory mapping somehow. At least I remember doing so with Lauterbach Trace32. – Philippos Jan 10 '18 at 8:51