68 #if defined(FREERTOS) || defined(SAFERTOS) 69 #if defined(SOC_AM62A) || defined(SOC_J722S) 70 #if !defined(MCU_PLUS_SDK) 71 #include <ti/drv/udma/dmautils/udma_standalone/udma.h> 73 #include <drivers/dmautils/udma_standalone/udma.h> 76 #include <ti/drv/udma/udma.h> 80 #if defined(R5F) && (defined(SOC_J784S4) || defined(SOC_J721S2)) 81 #include <ti/csl/csl_rat.h> 99 #define APP_MEM_HEAP_NAME_MAX (16u) 133 #define APP_MEM_HEAP_DDR (0u) 136 #define APP_MEM_HEAP_L3 (1u) 139 #define APP_MEM_HEAP_L2 (2u) 142 #define APP_MEM_HEAP_L1 (3u) 145 #define APP_MEM_HEAP_DDR_SCRATCH (4u) 148 #define APP_MEM_HEAP_DDR_NON_CACHE (5u) 151 #define APP_MEM_HEAP_DDR_NON_CACHE_SCRATCH (6u) 154 #define APP_MEM_HEAP_DDR_WT_CACHE (7u) 157 #define APP_MEM_HEAP_MAX (8u) 176 #define APP_MEM_HEAP_FLAGS_TYPE_LINEAR_ALLOCATE (0x00000001u) 180 #define APP_MEM_HEAP_FLAGS_IS_SHARED (0x00000004u) 184 #define APP_MEM_HEAP_FLAGS_DO_CLEAR_ON_ALLOC (0x00000008u) 206 #if defined(FREERTOS) || defined(SAFERTOS) 207 Udma_VirtToPhyFxn virtToPhyFxn;
211 #if defined(R5F) && (defined(SOC_J784S4) || defined(SOC_J721S2)) 213 CSL_ratRegs *pRatRegs;
230 #if defined(R5F) && (defined(SOC_J784S4) || defined(SOC_J721S2)) 240 uint64_t translatedAddress;
242 uint32_t baseAddress;
251 return (
void*)((((uintptr_t)val+align-1) / align) * align);
259 return (uint64_t)( (uint64_t)(val+align-1) / align) * align;
267 return (uint32_t)( (uint32_t)(val+align-1) / align) * align;
270 #if defined(__C7120__) && defined(SOC_J784S4) 275 void appMemC7xSetL2WBINV(uint64_t param);
280 uint64_t appMemC7xGetL2WBINV(
void);
285 void appMemC7xCleaninvalidateL2Cache();
290 void appMemC7xSetL1DWBINV(uint64_t param);
295 uint64_t appMemC7xGetL1DWBINV(
void);
300 void appMemC7xCleaninvalidateL1DCache();
311 #if defined(__C7120__) && defined(SOC_J784S4) 312 appMemC7xCleaninvalidateL1DCache();
313 appMemC7xCleaninvalidateL2Cache();
355 void *
appMemAlloc(uint32_t heap_id, uint32_t size, uint32_t align);
378 int32_t
appMemFree(uint32_t heap_id,
void *ptr, uint32_t size);
388 #if defined(x86_64) || defined(QNX) 404 #if defined(x86_64) || defined(QNX) 415 #if defined(x86_64) || defined(QNX) 503 void *
appMemMap(
void *phys_addr, uint32_t size);
513 int32_t
appMemUnMap(
void *virt_addr, uint32_t size);
515 #if defined(R5F) && (defined(SOC_J784S4) || defined(SOC_J721S2)) 522 int32_t appMemAddrTranslate(app_mem_rat_prm_t *prm);
529 int32_t appMemSetRatRegs(CSL_ratRegs *pRatRegs);
Heap initialization parameters.
Definition: app_mem.h:191
void * base
Definition: app_mem.h:193
void appMemCacheWbInv(void *ptr, uint32_t size)
Write back and invalidate a section of memory from cache.
int32_t appMemDeInit()
De-Init heaps for memory allocation.
int32_t appMemResetScratchHeap(uint32_t heap_id)
Reset scratch memory.
uint64_t appMemShared2PhysPtr(uint64_t shared_ptr, uint32_t heap_id)
Return the physical pointer from a shared pointer.
uint32_t heap_id
Definition: app_mem.h:223
Heap statistics and information.
Definition: app_mem.h:221
uint64_t appMemGetVirt2PhyBufPtr(uint64_t virtPtr, uint32_t heap_id)
Return physical ptr corresponds to a CMEM virtual ptr.
#define APP_MEM_HEAP_NAME_MAX
Max characters to use for heap name.
Definition: app_mem.h:99
static void * APP_MEM_ALIGNPTR(void *val, uint32_t align)
Align ptr value to 'align' bytes.
Definition: app_mem.h:249
void appMemCloseDmaBufFd(int32_t dmaBufFd)
Close the dmaBufFd of a CMEM buffer pointer.
int32_t appMemStats(uint32_t heap_id, app_mem_stats_t *stats)
Return heap statistics and information.
static uint32_t APP_MEM_ALIGN32(uint32_t val, uint32_t align)
Align 32b value to 'align' bytes.
Definition: app_mem.h:265
int32_t appMemTranslateDmaBufFd(uint32_t dmaBufFd, uint32_t size, uint64_t *virtPtr, uint64_t *phyPtr)
Translates a given 'dmaBufFd' to virtual and physical addresses.
int32_t appMemInit(app_mem_init_prm_t *prm)
Init heaps for memory allocation.
uint64_t(* app_mem_target_shared_fxn)(const uint64_t targetAddr)
target pointer to shared pointer address translation callback function.
Definition: app_mem.h:130
uint32_t appMemGetDmaBufFd(void *virPtr, volatile uint32_t *dmaBufFdOffset)
Return dmaBufFd of a CMEM buffer pointer.
static void appMemEnableL1DandL2CacheWb()
Enable L1D and L2 Cache by performing a WB.
Definition: app_mem.h:309
void appMemCacheWb(void *ptr, uint32_t size)
Write back a section of memory from cache.
uint32_t heap_size
Definition: app_mem.h:225
void * appMemMap(void *phys_addr, uint32_t size)
Map the provided physical memory to a virtual address.
void appMemCacheInv(void *ptr, uint32_t size)
Invalidate a section of memory from cache.
Memory module initialization parameters.
Definition: app_mem.h:203
uint32_t flags
Definition: app_mem.h:196
uint64_t(* app_mem_shared_target_fxn)(const uint64_t sharedAddr)
Shared pointer to target pointer address translation callback function.
Definition: app_mem.h:118
void appMemPrintMemAllocInfo()
Print memory allocation from shared memory region.
uint64_t appMemShared2TargetPtr(uint64_t shared_ptr)
Return the physical pointer from a shared pointer.
uint32_t free_size
Definition: app_mem.h:226
#define APP_MEM_HEAP_MAX
Max heaps in system.
Definition: app_mem.h:157
int32_t appMemUnMap(void *virt_addr, uint32_t size)
Unmap the provided virtual memory.
int32_t appMemFree(uint32_t heap_id, void *ptr, uint32_t size)
Free memory that was previously allocated.
uint32_t size
Definition: app_mem.h:195
void appMemInitPrmSetDefault(app_mem_init_prm_t *prm)
Set defaults to app_mem_init_prm_t.
static uint64_t APP_MEM_ALIGN64(uint64_t val, uint32_t align)
Align 64b value to 'align' bytes.
Definition: app_mem.h:257
void * appMemAlloc(uint32_t heap_id, uint32_t size, uint32_t align)
Alloc memory from specific heap.