Skip to content

Commit 6f33888

Browse files
devices: MIMX9596: add ITCM support in MEMORY_ConvertMemoryMapAddress
- Split FSL_MEM_M7_TCM to FSL_MEM_M7_DTCM - Add correct memory offsets for FSL_MEM_M7_ITCM - Update address conversion logic to handle both regions Signed-off-by: Qiang Zhao <qiang.zhao@nxp.com>
1 parent cf8f163 commit 6f33888

File tree

1 file changed

+24
-11
lines changed
  • mcux/mcux-sdk-ng/devices/i.MX/i.MX95/MIMX9596/drivers

1 file changed

+24
-11
lines changed

mcux/mcux-sdk-ng/devices/i.MX/i.MX95/MIMX9596/drivers/fsl_memory.h

Lines changed: 24 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,19 @@
3030

3131
#define FSL_MEM_M33_TCM_OFFSET 0x200000U
3232
#elif (__CORTEX_M == 7U)
33-
/* The CM7 subsystem local TCM start address, refer to Reference Manual for detailed information */
34-
#define FSL_MEM_M7_TCM_BEGIN 0x20000000U
35-
/* The CM7 subsystem local TCM end address, refer to Reference Manual for detailed information */
36-
#define FSL_MEM_M7_TCM_END 0x2007FFFFU
33+
/* The CM7 subsystem local ITCM start address, refer to Reference Manual for detailed information */
34+
#define FSL_MEM_M7_ITCM_BEGIN 0x00000000U
35+
/* The CM7 subsystem local ITCM end address, refer to Reference Manual for detailed information */
36+
#define FSL_MEM_M7_ITCM_END 0x0003FFFFU
3737

38-
#define FSL_MEM_M7_TCM_OFFSET 0x400000U
38+
#define FSL_MEM_M7_ITCM_OFFSET 0x203C0000U
39+
40+
/* The CM7 subsystem local DTCM start address, refer to Reference Manual for detailed information */
41+
#define FSL_MEM_M7_DTCM_BEGIN 0x20000000U
42+
/* The CM7 subsystem local DTCM end address, refer to Reference Manual for detailed information */
43+
#define FSL_MEM_M7_DTCM_END 0x2007FFFFU
44+
45+
#define FSL_MEM_M7_DTCM_OFFSET 0x400000U
3946
#else
4047
#error "Device is not supported by this driver!"
4148
#endif
@@ -76,9 +83,12 @@ static inline uint32_t MEMORY_ConvertMemoryMapAddress(uint32_t addr, mem_directi
7683
dest = addr + FSL_MEM_M33_TCM_OFFSET;
7784
}
7885
#elif (__CORTEX_M == 7U)
79-
if ((addr >= FSL_MEM_M7_TCM_BEGIN) && (addr <= FSL_MEM_M7_TCM_END))
86+
if ((addr >= FSL_MEM_M7_ITCM_BEGIN) && (addr <= FSL_MEM_M7_ITCM_END))
87+
{
88+
dest = addr + FSL_MEM_M7_ITCM_OFFSET;
89+
} else if ((addr >= FSL_MEM_M7_DTCM_BEGIN) && (addr <= FSL_MEM_M7_DTCM_END))
8090
{
81-
dest = addr + FSL_MEM_M7_TCM_OFFSET;
91+
dest = addr + FSL_MEM_M7_DTCM_OFFSET;
8292
}
8393
#endif
8494
else
@@ -96,10 +106,14 @@ static inline uint32_t MEMORY_ConvertMemoryMapAddress(uint32_t addr, mem_directi
96106
dest = addr - FSL_MEM_M33_TCM_OFFSET;
97107
}
98108
#elif (__CORTEX_M == 7U)
99-
if ((addr >= (FSL_MEM_M7_TCM_BEGIN + FSL_MEM_M7_TCM_OFFSET)) &&
100-
(addr <= (FSL_MEM_M7_TCM_END + FSL_MEM_M7_TCM_OFFSET)))
109+
if ((addr >= (FSL_MEM_M7_ITCM_BEGIN + FSL_MEM_M7_ITCM_OFFSET)) &&
110+
(addr <= (FSL_MEM_M7_ITCM_END + FSL_MEM_M7_ITCM_OFFSET)))
101111
{
102-
dest = addr - FSL_MEM_M7_TCM_OFFSET;
112+
dest = addr - FSL_MEM_M7_ITCM_OFFSET;
113+
} else if ((addr >= (FSL_MEM_M7_DTCM_BEGIN + FSL_MEM_M7_DTCM_OFFSET)) &&
114+
(addr <= (FSL_MEM_M7_DTCM_END + FSL_MEM_M7_DTCM_OFFSET)))
115+
{
116+
dest = addr - FSL_MEM_M7_DTCM_OFFSET;
103117
}
104118
#endif
105119
else
@@ -112,7 +126,6 @@ static inline uint32_t MEMORY_ConvertMemoryMapAddress(uint32_t addr, mem_directi
112126
dest = addr;
113127
break;
114128
}
115-
116129
return dest;
117130
}
118131
#if defined(__cplusplus)

0 commit comments

Comments
 (0)