Forum Discussion
Altera PCI Express Development Kit: Linux DMA Driver
Hi,
I am a newbie to FPGA design and implementation. While installing the PCI express board on LINUX machine, I don't see Demo application driver for DMA read and write for LINUX (Manual talks about windows installation). I want to generate DMA read and write in Linux box. Does anyone have pointer to a sample application, driver or sof file for the same. Let me know if I am wrong in understanding. Thanks in advance. -Vineet64 Replies
- Altera_Forum
Honored Contributor
Sorry, I haven't been monitoring the forums well.
- Altera_Forum
Honored Contributor
Well, In probe function , I am getting "Could not request IRQ# 246, error -38" and its disabling the ACPI interrupts. Any help would be appreciated.
- Altera_Forum
Honored Contributor
Check the bar_min_len array in the driver C file. Is each number <= to the actual BAR size of your core? I remember I had to set BAR 4 to 0 in the array, because the board example .pof doesn't define it.
- Altera_Forum
Honored Contributor
--- Quote Start --- Check the bar_min_len array in the driver C file. Is each number <= to the actual BAR size of your core? I remember I had to set BAR 4 to 0 in the array, because the board example .pof doesn't define it. --- Quote End --- Thanks Robb. Acually, I should have updated that I Fixed it I have Bar[0]-Bar[2] in my setup. I am getting DMA loopback test failed though. - Altera_Forum
Honored Contributor
I don't know. Can you post your dmesg output?
- Altera_Forum
Honored Contributor
TO_BE_DONE
- Altera_Forum
Honored Contributor
Actually, it looks like the read is causing problems. EPLAST increments about 10-12 every iteration, but then freezes at 253. This is one less than 254, which is required to exit the loop that waits for the completion. The write look ok, since EPLAST = n = 254 at the last iteration. I don't know... maybe Likewise can help you better here, but I feel like it's firmware if you haven't modified the driver, other than the bar_min_len array. Are you still using 7.2? Try 9.0... the driver authors report problems depending on different Quartus compilation versions.
- Altera_Forum
Honored Contributor
--- Quote Start --- Actually, it looks like the read is causing problems. EPLAST increments about 10-12 every iteration, but then freezes at 253. This is one less than 254, which is required to exit the loop that waits for the completion. The write look ok, since EPLAST = n = 254 at the last iteration. I don't know... maybe Likewise can help you better here, but I feel like it's firmware if you haven't modified the driver, other than the bar_min_len array. Are you still using 7.2? Try 9.0... the driver authors report problems depending on different Quartus compilation versions. --- Quote End --- Thanks Rob. I haven't modified much except some debugging statements ( which i have disabled when collecting above log). I am using Quartus II Version 8.0 and PCIE compiler version 8.0. I have tried windows driver. That works fine in windows. Likewise: Help please. - Altera_Forum
Honored Contributor
Well I have tried with Quartus II version 8.1. It gives the same error (or log). I used 8.1 as it is specified in driver file as tested. Kindly help me to debug the problem.
- Altera_Forum
Honored Contributor
Just to update: My BAR configuration is as follows:
static const unsigned long bar_min_len[APE_BAR_NUM] = { 32768, 0, 256 };