Nyah
New Contributor
4 years agoLinux driver for AVMM Arria10 PCIe is deprecated
Hello!
i'am try build drivers from https://community.intel.com/t5/FPGA-Wiki/Reference-Design-Gen3x8-AVMM-DMA-Arria-10/ta-p/735904
I have error with "struct timeval".
Makefile is fixed ccflags-y += "-Wno-date-time", but error is still happened.
target PC: Ubuntu 20.04 ;linux 5.11
Thanks!
rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions *.symvers *.order make -C /lib/modules/5.11.0-27-generic/build M=/home/pcuser/projects/avmm_dma_linux make[1]: Entering directory '/usr/src/linux-headers-5.11.0-27-generic' CC [M] /home/pcuser/projects//avmm_dma_linux/altera_dma.o In file included from /home/pcuser/projects//avmm_dma_linux/altera_dma.c:14: /home/pcuser/projects//avmm_dma_linux/altera_dma_cmd.h:49:20: error: field ‘write_time’ has incomplete type 49 | struct timeval write_time; | ^~~~~~~~~~ /home/pcuser/projects//avmm_dma_linux/altera_dma_cmd.h:50:20: error: field ‘read_time’ has incomplete type 50 | struct timeval read_time; | ^~~~~~~~~ /home/pcuser/projects//avmm_dma_linux/altera_dma_cmd.h:51:20: error: field ‘simul_time’ has incomplete type 51 | struct timeval simul_time; | ^~~~~~~~~~ /home/pcuser/projects//avmm_dma_linux/altera_dma.c: In function ‘init_rp_mem’: /home/pcuser/projects//avmm_dma_linux/altera_dma.c:272:9: warning: unused variable ‘increment_value’ [-Wunused-variable] 272 | u32 increment_value = 0; | ^~~~~~~~~~~~~~~ /home/pcuser/projects//avmm_dma_linux/altera_dma.c: In function ‘rp_ep_compare’: /home/pcuser/projects//avmm_dma_linux/altera_dma.c:311:3: warning: this ‘else’ clause does not guard... [-Wmisleading-indentation] 311 | else | ^~~~ /home/pcuser/projects//avmm_dma_linux/altera_dma.c:313:8: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘else’ 313 | printk(KERN_DEBUG "ep_tmp = %08x\n", ep_tmp); | ^~~~~~ /home/pcuser/projects//avmm_dma_linux/altera_dma.c:287:9: warning: unused variable ‘count’ [-Wunused-variable] 287 | u32 count = 1; | ^~~~~ /home/pcuser/projects//avmm_dma_linux/altera_dma.c:286:12: warning: unused variable ‘rp_tmp’ [-Wunused-variable] 286 | u32 j, rp_tmp, ep_tmp; | ^~~~~~ /home/pcuser/projects//avmm_dma_linux/altera_dma.c: In function ‘dma_test’: /home/pcuser/projects//avmm_dma_linux/altera_dma.c:368:20: error: storage size of ‘tv1’ isn’t known 368 | struct timeval tv1; | ^~~ /home/pcuser/projects//avmm_dma_linux/altera_dma.c:369:20: error: storage size of ‘tv2’ isn’t known 369 | struct timeval tv2; | ^~~ /home/pcuser/projects//avmm_dma_linux/altera_dma.c:370:20: error: storage size of ‘diff’ isn’t known 370 | struct timeval diff; | ^~~~ /home/pcuser/projects//avmm_dma_linux/altera_dma.c:436:2: error: implicit declaration of function ‘do_gettimeofday’; did you mean ‘do_settimeofday64’? [-Werror=implicit-function-declaration] 436 | do_gettimeofday(&tv1); | ^~~~~~~~~~~~~~~ | do_settimeofday64 /home/pcuser/projects//avmm_dma_linux/altera_dma.c:370:20: warning: unused variable ‘diff’ [-Wunused-variable] 370 | struct timeval diff; | ^~~~ /home/pcuser/projects//avmm_dma_linux/altera_dma.c:369:20: warning: unused variable ‘tv2’ [-Wunused-variable] 369 | struct timeval tv2; | ^~~ /home/pcuser/projects//avmm_dma_linux/altera_dma.c:368:20: warning: unused variable ‘tv1’ [-Wunused-variable] 368 | struct timeval tv1; | ^~~ /home/pcuser/projects//avmm_dma_linux/altera_dma.c:362:13: warning: unused variable ‘ep_tmp’ [-Wunused-variable] 362 | u32 rp_tmp, ep_tmp; | ^~~~~~ /home/pcuser/projects//avmm_dma_linux/altera_dma.c:362:5: warning: unused variable ‘rp_tmp’ [-Wunused-variable] 362 | u32 rp_tmp, ep_tmp; | ^~~~~~ /home/pcuser/projects//avmm_dma_linux/altera_dma.c:361:12: warning: unused variable ‘j’ [-Wunused-variable] 361 | int i, j; | ^ /home/pcuser/projects//avmm_dma_linux/altera_dma.c:360:63: warning: unused variable ‘simul_write_count’ [-Wunused-variable] 360 | int loop_count = 0, num_loop_count = 1, simul_read_count, simul_write_count; | ^~~~~~~~~~~~~~~~~ /home/pcuser/projects//avmm_dma_linux/altera_dma.c:360:45: warning: unused variable ‘simul_read_count’ [-Wunused-variable] 360 | int loop_count = 0, num_loop_count = 1, simul_read_count, simul_write_count; | ^~~~~~~~~~~~~~~~ /home/pcuser/projects//avmm_dma_linux/altera_dma.c:360:25: warning: unused variable ‘num_loop_count’ [-Wunused-variable] 360 | int loop_count = 0, num_loop_count = 1, simul_read_count, simul_write_count; | ^~~~~~~~~~~~~~ /home/pcuser/projects//avmm_dma_linux/altera_dma.c:360:9: warning: unused variable ‘loop_count’ [-Wunused-variable] 360 | int loop_count = 0, num_loop_count = 1, simul_read_count, simul_write_count; | ^~~~~~~~~~ /home/pcuser/projects//avmm_dma_linux/altera_dma.c: In function ‘diff_timeval’: /home/pcuser/projects//avmm_dma_linux/altera_dma.c:937:24: error: dereferencing pointer to incomplete type ‘struct timeval’ 937 | long int diff = (t2->tv_usec + 1000000 * t2->tv_sec) - (t1->tv_usec + 1000000 * t1->tv_sec); | ^~ In file included from /home/pcuser/projects//avmm_dma_linux/altera_dma.c:15: /home/pcuser/projects//avmm_dma_linux/altera_dma.c: At top level: /home/pcuser/projects//avmm_dma_linux/altera_dma.h:171:12: warning: ‘rp_compare’ declared ‘static’ but never defined [-Wunused-function] 171 | static int rp_compare(u8 *virt_addr1, u8 *virt_addr2, u32 num_dwords); | ^~~~~~~~~~ /home/pcuser/projects//avmm_dma_linux/altera_dma.c: In function ‘altera_dma_ioctl’: /home/pcuser/projects//avmm_dma_linux/altera_dma.c:25:13: warning: this statement may fall through [-Wimplicit-fallthrough=] 25 | dma_test(bk_ptr, bk_ptr->pci_dev); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/pcuser/projects//avmm_dma_linux/altera_dma.c:26:9: note: here 26 | case ALTERA_CMD_WAIT_DMA: | ^~~~ cc1: some warnings being treated as errors make[2]: *** [scripts/Makefile.build:287: /home/pcuser/projects//avmm_dma_linux/altera_dma.o] Error 1 make[1]: *** [Makefile:1848: /home/pcuser/projects//avmm_dma_linux] Error 2 make[1]: Leaving directory '/usr/src/linux-headers-5.11.0-27-generic' make: *** [Makefile:11: all] Error 2 insmod: ERROR: could not load module ./altera_dma.ko: No such file or directory