Dma isssue pcie using pcie 32 bit address

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:
aspm disable
pci enable
request regions

dma_set_mask_coherent ( or it’s pci DMA equivalent) as 32bit
allocation of dma buffers
set master

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?

Looking at the APIs being used here to alloc/map memory, it looks fine.
BTW, is the driver written like a PCIe endpoint driver? i.e. using the structure
“static struct pci_driver”