I have an LS1046A board running Ubuntu, built using flexbuilder, attached to the LS1046 board is a FPGA device via PCIe. We're writing a driver for the FPGA. The OS sees the device and we can run ioremap() to map physical to kernel memory which returns a high memory address; however, any attempt to use ioread() results in a kernel crash, and no additional information. We've looked through all the Linux device driver books/forums and haven't had any luck in finding out what might be going on.
Check your code using the following pages:
https://www.opensourceforu.com/2011/06/generic-hardware-access-in-linux/
https://lwn.net/Articles/102232/
https://stackoverflow.com/questions/26831583/ioread32-followed-by-iowrite32-not-giving-same-value
https://www.oreilly.com/library/view/linux-device-drivers/0596005903/ch09.html
https://01.org/linuxgraphics/gfx-docs/drm/driver-api/device-io.html
Have a great day,
Pavel Chubakov
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------