Hey
I have used the GPMC module in my Linux driver to access a memory region in a FPGA (4 kB). The setup of the GPMC module is as follow: It is set up to be multiplexing address/data-bus, the size of bus is set to 16 bit and finally asyncronius read/write operations.
I have used mmap to map the memory region from kernel space to user space, to do it I have use the function:
remap_pfn_range(vma, vma->vm_start,
cs_mem_base >> PAGE_SHIFT, //to get the page frame number of cs_mem_base
BRAM_SIZE, vma->vm_page_prot)
At the moment I only read from the FPGA, and the problem I face is a stricky. The first time I plug in the kernel module and try to read some known values from the memory region I get errors on some addresses, the same errors repeat for some time. But after a lillte periode I read the correct values and the errors never happent agian. Does any had face the same problem before?
Here is a sample of the error message:
This file show the errors in FPGA memory region
Error at address 0x39: Value: 0x388A0000 Expected: 0x388AC79E
Error at address 0x47: Value: 0x369B0129 Expected: 0x369B6169
Error at address 0x410: Value: 0x23C8 Expected: 0x51B823C8
Error at address 0x424: Value: 0x3B520000 Expected: 0x3B52DEAF
Error at address 0x442: Value: 0x1E00401 Expected: 0x1E0A0CE
Error at address 0x451: Value: 0x55400C00 Expected: 0x5540EE8C
Error at address 0x493: Value: 0x7DEC020C Expected: 0x7DECF29D
At 0 iteration there are 7 errors
Error at address 0x39: Value: 0x388A0000 Expected: 0x388AC79E
Error at address 0x47: Value: 0x369B0129 Expected: 0x369B6169
Error at address 0x410: Value: 0x23C8 Expected: 0x51B823C8
Error at address 0x424: Value: 0x3B520000 Expected: 0x3B52DEAF
Error at address 0x442: Value: 0x1E00401 Expected: 0x1E0A0CE
Error at address 0x451: Value: 0x55400C00 Expected: 0x5540EE8C
Error at address 0x493: Value: 0x7DEC020C Expected: 0x7DECF29D
At 1 iteration there are 7 errors
Error at address 0x39: Value: 0x388A0000 Expected: 0x388AC79E
Error at address 0x47: Value: 0x369B0129 Expected: 0x369B6169
Error at address 0x410: Value: 0x23C8 Expected: 0x51B823C8
Error at address 0x424: Value: 0x3B520000 Expected: 0x3B52DEAF
Error at address 0x442: Value: 0x1E00401 Expected: 0x1E0A0CE
Error at address 0x451: Value: 0x55400C00 Expected: 0x5540EE8C
Error at address 0x493: Value: 0x7DEC020C Expected: 0x7DECF29D