@@ -150,6 +150,12 @@ struct dma_mcux_edma_data {
150
150
#define EDMA_HW_TCD_CSR (dev , ch ) (DEV_BASE(dev)->CH[ch].TCD_CSR)
151
151
#endif
152
152
153
+ #if defined(FSL_FEATURE_MEMORY_HAS_ADDRESS_OFFSET ) && FSL_FEATURE_MEMORY_HAS_ADDRESS_OFFSET
154
+ #define EDMA_MMAP_ADDR (addr ) MEMORY_ConvertMemoryMapAddress(addr, kMEMORY_Local2DMA)
155
+ #else
156
+ #define EDMA_MMAP_ADDR (addr ) addr
157
+ #endif /* FSL_FEATURE_MEMORY_HAS_ADDRESS_OFFSET */
158
+
153
159
#if DMA_MCUX_HAS_CHANNEL_GAP
154
160
/*
155
161
* The hardware channel (takes the gap into account) is used when access DMA registers.
@@ -359,22 +365,10 @@ static int dma_mcux_edma_configure_sg_loop(const struct device *dev,
359
365
tcd = & (DEV_CFG (dev )-> tcdpool [channel ]
360
366
[data -> transfer_settings .write_idx ]);
361
367
362
- #if defined(FSL_FEATURE_MEMORY_HAS_ADDRESS_OFFSET ) && FSL_FEATURE_MEMORY_HAS_ADDRESS_OFFSET
363
- EDMA_TCD_SADDR (tcd , EDMA_TCD_TYPE ((void * )DEV_BASE (dev ))) =
364
- MEMORY_ConvertMemoryMapAddress (
365
- (uint32_t )(block_config -> source_address ),
366
- kMEMORY_Local2DMA );
367
- EDMA_TCD_DADDR (tcd , EDMA_TCD_TYPE ((void * )DEV_BASE (dev ))) =
368
- MEMORY_ConvertMemoryMapAddress (
369
- (uint32_t )(block_config -> dest_address ),
370
- kMEMORY_Local2DMA );
371
- #else
372
-
373
368
EDMA_TCD_SADDR (tcd , EDMA_TCD_TYPE ((void * )DEV_BASE (dev ))) =
374
- block_config -> source_address ;
369
+ EDMA_MMAP_ADDR ( block_config -> source_address ) ;
375
370
EDMA_TCD_DADDR (tcd , EDMA_TCD_TYPE ((void * )DEV_BASE (dev ))) =
376
- block_config -> dest_address ;
377
- #endif
371
+ EDMA_MMAP_ADDR (block_config -> dest_address );
378
372
EDMA_TCD_BITER (tcd , EDMA_TCD_TYPE ((void * )DEV_BASE (dev ))) =
379
373
block_config -> block_size / config -> source_data_size ;
380
374
EDMA_TCD_CITER (tcd , EDMA_TCD_TYPE ((void * )DEV_BASE (dev ))) =
@@ -709,15 +703,8 @@ static int edma_reload_loop(const struct device *dev, uint32_t channel,
709
703
tcd = & (DEV_CFG (dev )-> tcdpool [channel ][data -> transfer_settings .write_idx ]);
710
704
pre_tcd = & (DEV_CFG (dev )-> tcdpool [channel ][pre_idx ]);
711
705
712
- #if defined(FSL_FEATURE_MEMORY_HAS_ADDRESS_OFFSET ) && FSL_FEATURE_MEMORY_HAS_ADDRESS_OFFSET
713
- EDMA_TCD_SADDR (tcd , EDMA_TCD_TYPE ((void * )DEV_BASE (dev ))) =
714
- MEMORY_ConvertMemoryMapAddress (src , kMEMORY_Local2DMA );
715
- EDMA_TCD_DADDR (tcd , EDMA_TCD_TYPE ((void * )DEV_BASE (dev ))) =
716
- MEMORY_ConvertMemoryMapAddress (dst , kMEMORY_Local2DMA );
717
- #else
718
- EDMA_TCD_SADDR (tcd , EDMA_TCD_TYPE ((void * )DEV_BASE (dev ))) = src ;
719
- EDMA_TCD_DADDR (tcd , EDMA_TCD_TYPE ((void * )DEV_BASE (dev ))) = dst ;
720
- #endif
706
+ EDMA_TCD_SADDR (tcd , EDMA_TCD_TYPE ((void * )DEV_BASE (dev ))) = EDMA_MMAP_ADDR (src );
707
+ EDMA_TCD_DADDR (tcd , EDMA_TCD_TYPE ((void * )DEV_BASE (dev ))) = EDMA_MMAP_ADDR (dst );
721
708
EDMA_TCD_BITER (tcd , EDMA_TCD_TYPE ((void * )DEV_BASE (dev ))) = size ;
722
709
EDMA_TCD_CITER (tcd , EDMA_TCD_TYPE ((void * )DEV_BASE (dev ))) = size ;
723
710
/* Enable automatically stop */
0 commit comments