Lines Matching +full:dev +full:- +full:size

4  * SPDX-License-Identifier: Apache-2.0
14 * 0: no-cache
28 #define CACHED_SRAM_END (CACHED_SRAM_ADDR + CACHED_SRAM_SIZE - 1)
40 /* cache size = 32B * 128 = 4KB */
52 const struct device *const dev = DEVICE_DT_GET(DT_NODELABEL(syscon)); in aspeed_cache_init() local
55 /* set all cache areas to no-cache by default */ in aspeed_cache_init()
56 syscon_write_reg(dev, CACHE_FUNC_CTRL_REG, 0); in aspeed_cache_init()
59 max_bit = 8 * sizeof(uint32_t) - 1; in aspeed_cache_init()
62 syscon_write_reg(dev, CACHE_AREA_CTRL_REG, GENMASK(end_bit, start_bit)); in aspeed_cache_init()
65 syscon_write_reg(dev, CACHE_FUNC_CTRL_REG, CACHE_ENABLE); in aspeed_cache_init()
70 * @param [IN] addr - start address to be invalidated
71 * @param [IN] size - size in byte
72 * @param [OUT] p_aligned_addr - pointer to the cacheline aligned address variable
76 * |--------size-------------|
77 * |-----|-----|-----|-----|-----|
82 * addr = 0x100 (cacheline aligned), size = 64
87 * addr = 0x104 (cacheline unaligned), size = 64
91 static uint32_t get_n_cacheline(uint32_t addr, uint32_t size, uint32_t *p_head) in get_n_cacheline() argument
100 tail = addr + size + (CACHE_LINE_SIZE - 1); in get_n_cacheline()
103 n = (tail - *p_head) >> CACHE_LINE_SIZE_LOG2; in get_n_cacheline()
115 const struct device *const dev = DEVICE_DT_GET(DT_NODELABEL(syscon)); in cache_data_disable() local
117 syscon_write_reg(dev, CACHE_FUNC_CTRL_REG, 0); in cache_data_disable()
127 const struct device *const dev = DEVICE_DT_GET(DT_NODELABEL(syscon)); in cache_instr_disable() local
129 syscon_write_reg(dev, CACHE_FUNC_CTRL_REG, 0); in cache_instr_disable()
134 const struct device *const dev = DEVICE_DT_GET(DT_NODELABEL(syscon)); in cache_data_invd_all() local
138 syscon_read_reg(dev, CACHE_FUNC_CTRL_REG, &ctrl); in cache_data_invd_all()
146 syscon_write_reg(dev, CACHE_FUNC_CTRL_REG, ctrl); in cache_data_invd_all()
150 syscon_write_reg(dev, CACHE_FUNC_CTRL_REG, ctrl); in cache_data_invd_all()
161 int cache_data_invd_range(void *addr, size_t size) in cache_data_invd_range() argument
164 const struct device *const dev = DEVICE_DT_GET(DT_NODELABEL(syscon)); in cache_data_invd_range() local
177 n = get_n_cacheline((uint32_t)addr, size, &aligned_addr); in cache_data_invd_range()
180 syscon_write_reg(dev, CACHE_INVALID_REG, 0); in cache_data_invd_range()
181 syscon_write_reg(dev, CACHE_INVALID_REG, DCACHE_INVALID(aligned_addr)); in cache_data_invd_range()
196 const struct device *const dev = DEVICE_DT_GET(DT_NODELABEL(syscon)); in cache_instr_invd_all() local
200 syscon_read_reg(dev, CACHE_FUNC_CTRL_REG, &ctrl); in cache_instr_invd_all()
208 syscon_write_reg(dev, CACHE_FUNC_CTRL_REG, ctrl); in cache_instr_invd_all()
211 syscon_write_reg(dev, CACHE_FUNC_CTRL_REG, ctrl); in cache_instr_invd_all()
222 int cache_instr_invd_range(void *addr, size_t size) in cache_instr_invd_range() argument
225 const struct device *const dev = DEVICE_DT_GET(DT_NODELABEL(syscon)); in cache_instr_invd_range() local
233 n = get_n_cacheline((uint32_t)addr, size, &aligned_addr); in cache_instr_invd_range()
241 syscon_write_reg(dev, CACHE_INVALID_REG, 0); in cache_instr_invd_range()
242 syscon_write_reg(dev, CACHE_INVALID_REG, ICACHE_INVALID(aligned_addr)); in cache_instr_invd_range()
257 return -ENOTSUP; in cache_data_flush_all()
262 return -ENOTSUP; in cache_data_flush_and_invd_all()
265 int cache_data_flush_range(void *addr, size_t size) in cache_data_flush_range() argument
268 ARG_UNUSED(size); in cache_data_flush_range()
270 return -ENOTSUP; in cache_data_flush_range()
273 int cache_data_flush_and_invd_range(void *addr, size_t size) in cache_data_flush_and_invd_range() argument
276 ARG_UNUSED(size); in cache_data_flush_and_invd_range()
278 return -ENOTSUP; in cache_data_flush_and_invd_range()
283 return -ENOTSUP; in cache_instr_flush_all()
288 return -ENOTSUP; in cache_instr_flush_and_invd_all()
291 int cache_instr_flush_range(void *addr, size_t size) in cache_instr_flush_range() argument
294 ARG_UNUSED(size); in cache_instr_flush_range()
296 return -ENOTSUP; in cache_instr_flush_range()
299 int cache_instr_flush_and_invd_range(void *addr, size_t size) in cache_instr_flush_and_invd_range() argument
302 ARG_UNUSED(size); in cache_instr_flush_and_invd_range()
304 return -ENOTSUP; in cache_instr_flush_and_invd_range()
311 const struct device *const dev = DEVICE_DT_GET(DT_NODELABEL(syscon)); in cache_data_line_size_get() local
314 syscon_read_reg(dev, CACHE_FUNC_CTRL_REG, &ctrl); in cache_data_line_size_get()
323 const struct device *const dev = DEVICE_DT_GET(DT_NODELABEL(syscon)); in cache_instr_line_size_get() local
326 syscon_read_reg(dev, CACHE_FUNC_CTRL_REG, &ctrl); in cache_instr_line_size_get()