@@ -140,6 +140,12 @@ struct dma_mcux_edma_data {
140
140
#define EDMA_HW_TCD_CSR (dev , ch ) (DEV_BASE(dev)->CH[ch].TCD_CSR)
141
141
#endif
142
142
143
+ #if defined(FSL_FEATURE_MEMORY_HAS_ADDRESS_OFFSET ) && FSL_FEATURE_MEMORY_HAS_ADDRESS_OFFSET
144
+ #define EDMA_MMAP_ADDR (addr ) MEMORY_ConvertMemoryMapAddress(addr, kMEMORY_Local2DMA)
145
+ #else
146
+ #define EDMA_MMAP_ADDR (addr ) addr
147
+ #endif /* FSL_FEATURE_MEMORY_HAS_ADDRESS_OFFSET */
148
+
143
149
#if DMA_MCUX_HAS_CHANNEL_GAP
144
150
/*
145
151
* The hardware channel (takes the gap into account) is used when access DMA registers.
@@ -350,22 +356,10 @@ static int dma_mcux_edma_configure_sg_loop(const struct device *dev,
350
356
tcd = & (DEV_CFG (dev )-> tcdpool [channel ]
351
357
[data -> transfer_settings .write_idx ]);
352
358
353
- #if defined(FSL_FEATURE_MEMORY_HAS_ADDRESS_OFFSET ) && FSL_FEATURE_MEMORY_HAS_ADDRESS_OFFSET
354
- EDMA_TCD_SADDR (tcd , EDMA_TCD_TYPE ((void * )DEV_BASE (dev ))) =
355
- MEMORY_ConvertMemoryMapAddress (
356
- (uint32_t )(block_config -> source_address ),
357
- kMEMORY_Local2DMA );
358
- EDMA_TCD_DADDR (tcd , EDMA_TCD_TYPE ((void * )DEV_BASE (dev ))) =
359
- MEMORY_ConvertMemoryMapAddress (
360
- (uint32_t )(block_config -> dest_address ),
361
- kMEMORY_Local2DMA );
362
- #else
363
-
364
359
EDMA_TCD_SADDR (tcd , EDMA_TCD_TYPE ((void * )DEV_BASE (dev ))) =
365
- block_config -> source_address ;
360
+ EDMA_MMAP_ADDR ( block_config -> source_address ) ;
366
361
EDMA_TCD_DADDR (tcd , EDMA_TCD_TYPE ((void * )DEV_BASE (dev ))) =
367
- block_config -> dest_address ;
368
- #endif
362
+ EDMA_MMAP_ADDR (block_config -> dest_address );
369
363
EDMA_TCD_BITER (tcd , EDMA_TCD_TYPE ((void * )DEV_BASE (dev ))) =
370
364
block_config -> block_size / config -> source_data_size ;
371
365
EDMA_TCD_CITER (tcd , EDMA_TCD_TYPE ((void * )DEV_BASE (dev ))) =
@@ -698,15 +692,8 @@ static int edma_reload_loop(const struct device *dev, uint32_t channel,
698
692
tcd = & (DEV_CFG (dev )-> tcdpool [channel ][data -> transfer_settings .write_idx ]);
699
693
pre_tcd = & (DEV_CFG (dev )-> tcdpool [channel ][pre_idx ]);
700
694
701
- #if defined(FSL_FEATURE_MEMORY_HAS_ADDRESS_OFFSET ) && FSL_FEATURE_MEMORY_HAS_ADDRESS_OFFSET
702
- EDMA_TCD_SADDR (tcd , EDMA_TCD_TYPE ((void * )DEV_BASE (dev ))) =
703
- MEMORY_ConvertMemoryMapAddress (src , kMEMORY_Local2DMA );
704
- EDMA_TCD_DADDR (tcd , EDMA_TCD_TYPE ((void * )DEV_BASE (dev ))) =
705
- MEMORY_ConvertMemoryMapAddress (dst , kMEMORY_Local2DMA );
706
- #else
707
- EDMA_TCD_SADDR (tcd , EDMA_TCD_TYPE ((void * )DEV_BASE (dev ))) = src ;
708
- EDMA_TCD_DADDR (tcd , EDMA_TCD_TYPE ((void * )DEV_BASE (dev ))) = dst ;
709
- #endif
695
+ EDMA_TCD_SADDR (tcd , EDMA_TCD_TYPE ((void * )DEV_BASE (dev ))) = EDMA_MMAP_ADDR (src );
696
+ EDMA_TCD_DADDR (tcd , EDMA_TCD_TYPE ((void * )DEV_BASE (dev ))) = EDMA_MMAP_ADDR (dst );
710
697
EDMA_TCD_BITER (tcd , EDMA_TCD_TYPE ((void * )DEV_BASE (dev ))) = size ;
711
698
EDMA_TCD_CITER (tcd , EDMA_TCD_TYPE ((void * )DEV_BASE (dev ))) = size ;
712
699
/* Enable automatically stop */
0 commit comments