Hi Team,
Development environment: am3352 linux-4.19.38
Test Method :
DMA GPMC uses the pattern of dmaengine_prep_dma_memcpy(), GPMC burst lenght as 4-word (i.e. 8-byte)
Outcome:
Experimental DMA Read-Write 8-byte: OK
Experimental DMA read-write 16-byte multiple: OK
Experimental DMA Read and Write 32-byte : Measured read and write are 32-byte
Experimental DMA Read and Write 80-byte : Measured read and write are 80-byte
Experimental DMA Read and Write 128-byte : Measured read and write are 128-byte
Experimental DMA reads and writes multiples of 8 but not multiples of 16: NG
Experimental DMA Read and Write 24-byte : Measured read and write are 32-byte
Experimental DMA Read and Write 40-byte : Measured read and write are 48-byte
Experimental DMA Read and Write 56-byte : Measured read and write are 64-byte
If the DMA GPMC uses the same pattern of dmaengine_prep_dma_memcpy(), the GPMC burst lenght is 8-word (i.e. 16-byte), there is no such problem.
DMA 4-word read and write is fine when the length is 8, why read and write more 8-byte at 8 16*N (N >=1)?
Thanks ~
Best Regards,
Susan Ren