1 /* 2 * Copyright 2025 NXP 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 7 #include <zephyr/kernel.h> 8 #include <zephyr/drivers/cache.h> 9 #include <zephyr/logging/log.h> 10 #include <fsl_cache.h> 11 cache_instr_enable(void)12void cache_instr_enable(void) 13 { 14 L1CACHE_EnableCodeCache(); 15 } 16 cache_instr_disable(void)17void cache_instr_disable(void) 18 { 19 L1CACHE_DisableCodeCache(); 20 } 21 cache_instr_flush_all(void)22int cache_instr_flush_all(void) 23 { 24 L1CACHE_CleanCodeCache(); 25 26 return 0; 27 } 28 cache_instr_invd_all(void)29int cache_instr_invd_all(void) 30 { 31 L1CACHE_InvalidateCodeCache(); 32 33 return 0; 34 } 35 cache_instr_flush_and_invd_all(void)36int cache_instr_flush_and_invd_all(void) 37 { 38 L1CACHE_CleanInvalidateCodeCache(); 39 40 return 0; 41 } 42 cache_instr_flush_range(void * addr,size_t size)43int cache_instr_flush_range(void *addr, size_t size) 44 { 45 L1CACHE_CleanCodeCacheByRange((uint32_t)addr, (uint32_t)size); 46 47 return 0; 48 } 49 cache_instr_invd_range(void * addr,size_t size)50int cache_instr_invd_range(void *addr, size_t size) 51 { 52 L1CACHE_InvalidateCodeCacheByRange((uint32_t)addr, (uint32_t)size); 53 54 return 0; 55 } 56 cache_instr_flush_and_invd_range(void * addr,size_t size)57int cache_instr_flush_and_invd_range(void *addr, size_t size) 58 { 59 L1CACHE_CleanInvalidateCodeCacheByRange((uint32_t)addr, (uint32_t)size); 60 61 return 0; 62 } 63