i’ve been struggling for a while trying to initiate a DMA write from an FPGA to the xavier memory with a loadable kernel driver acting as a driver for the fpga.
the scheme is similar to others i’ve encounterd here.
when probing the pcie device i allocated memory for dma , and tries 3 different methods
pci_alloc_consistent, dma_alloc_coherent and kmalloc with dma mapping using dma_map_single afterwards.
during probing this actions take course (the same as described in the linux kernel guidק for drivers - exude me if i left something out:
dma_set_mask_coherent ( or it’s pci DMA equivalent) as 32bit
allocation of dma buffers
i then write the 32bit bus address (i never got a 64 bit one) from allocation/mapping to a register in bar 0 using iowrite 32
other registers regardind data to be written and then write to a register that triggers dma to start
no DMA occurs, some times system freezes
is it because pcie addrresing should be done with 64 bit? (the addresses i got always fitted 32bit)
is there anything i’m missing?
am i doing anything wrong, or should i suspect the fpga design?