File indexing completed on 2025-05-11 08:24:00
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028 #include <stdint.h>
0029 #include <stddef.h>
0030 #include <bsp_system.h>
0031 #include <alt_cache.h>
0032
0033 #define CPU_DATA_CACHE_ALIGNMENT ALT_CPU_DCACHE_LINE_SIZE
0034
0035 #define CPU_INSTRUCTION_CACHE_ALIGNMENT ALT_CPU_ICACHE_LINE_SIZE
0036
0037 #define CPU_CACHE_SUPPORT_PROVIDES_RANGE_FUNCTIONS
0038
0039 #define CPU_CACHE_SUPPORT_PROVIDES_CACHE_SIZE_FUNCTIONS
0040
0041 static inline void _CPU_cache_flush_1_data_line(const void *d_addr)
0042 {
0043 alt_dcache_flush(d_addr, ALT_CPU_DCACHE_LINE_SIZE);
0044 }
0045
0046 static inline void
0047 _CPU_cache_flush_data_range(
0048 const void *d_addr,
0049 size_t n_bytes
0050 )
0051 {
0052 alt_dcache_flush(d_addr, n_bytes);
0053 }
0054
0055 static inline void _CPU_cache_invalidate_1_data_line(const void *d_addr)
0056 {
0057 alt_dcache_flush_no_writeback(d_addr, ALT_CPU_DCACHE_LINE_SIZE);
0058 }
0059
0060 static inline void
0061 _CPU_cache_invalidate_data_range(
0062 const void *d_addr,
0063 size_t n_bytes
0064 )
0065 {
0066 alt_dcache_flush_no_writeback(d_addr, n_bytes);
0067 }
0068
0069 static inline void _CPU_cache_freeze_data(void)
0070 {
0071
0072 }
0073
0074 static inline void _CPU_cache_unfreeze_data(void)
0075 {
0076
0077 }
0078
0079 static inline void _CPU_cache_invalidate_1_instruction_line(const void *i_addr)
0080 {
0081 alt_icache_flush(i_addr, ALT_CPU_ICACHE_LINE_SIZE);
0082 }
0083
0084 static inline void
0085 _CPU_cache_invalidate_instruction_range( const void *i_addr, size_t n_bytes)
0086 {
0087 alt_icache_flush(i_addr, n_bytes);
0088 }
0089
0090 static inline void _CPU_cache_freeze_instruction(void)
0091 {
0092
0093 }
0094
0095 static inline void _CPU_cache_unfreeze_instruction(void)
0096 {
0097
0098 }
0099
0100 static inline void _CPU_cache_flush_entire_data(void)
0101 {
0102 alt_dcache_flush_all();
0103 }
0104
0105 static inline void _CPU_cache_invalidate_entire_data(void)
0106 {
0107 alt_dcache_flush_all();
0108 }
0109
0110 static inline void _CPU_cache_enable_data(void)
0111 {
0112 }
0113
0114 static inline void _CPU_cache_disable_data(void)
0115 {
0116 }
0117
0118 static inline void _CPU_cache_invalidate_entire_instruction(void)
0119 {
0120 alt_icache_flush_all();
0121 }
0122
0123 static inline void _CPU_cache_enable_instruction(void)
0124 {
0125 }
0126
0127 static inline void _CPU_cache_disable_instruction(void)
0128 {
0129 }
0130
0131 static inline size_t _CPU_cache_get_data_cache_size(uint32_t level)
0132 {
0133 return ALT_CPU_DCACHE_SIZE;
0134 }
0135
0136 static inline size_t _CPU_cache_get_instruction_cache_size(uint32_t level)
0137 {
0138 return ALT_CPU_ICACHE_SIZE;
0139 }
0140
0141 #include "../../shared/cache/cacheimpl.h"