In a Linux kernel module I'm using dma_alloc_coherent() to allocate memory for a PCI device to DMA data into the ARM DDR.
I have noticed that the kernel virtual address and dma_handle returned by this function are always the same.
Does this mean SMMU2 and MMU are using the same table or SMMU2 is disabled in Linux?
Also do I need to set the DMA mask to 32 " DMA_BIT_MASK(32)" for PCIe device or something else?
Do I need to configure the iATU inbound for the DMA to work or just the outbound Linux default configuration is enough?
Thanks