OpenOCD
|
Go to the source code of this file.
Macros | |
#define | CACHE_LEVEL_HAS_D_CACHE 0x2 |
#define | CACHE_LEVEL_HAS_I_CACHE 0x1 |
#define | CACHE_LEVEL_HAS_UNIFIED_CACHE 0x4 |
Functions | |
static int | _armv8_flush_all_data (struct target *target) |
static int | armv8_cache_d_inner_clean_inval_all (struct armv8_common *armv8) |
static int | armv8_cache_d_inner_flush_level (struct armv8_common *armv8, struct armv8_cachesize *size, int cl) |
int | armv8_cache_d_inner_flush_virt (struct armv8_common *armv8, target_addr_t va, size_t size) |
int | armv8_cache_i_inner_inval_virt (struct armv8_common *armv8, target_addr_t va, size_t size) |
static int | armv8_d_cache_sanity_check (struct armv8_common *armv8) |
static int | armv8_flush_all_data (struct target *target) |
static int | armv8_handle_inner_cache_info_command (struct command_invocation *cmd, struct armv8_cache_common *armv8_cache) |
static int | armv8_i_cache_sanity_check (struct armv8_common *armv8) |
int | armv8_identify_cache (struct armv8_common *armv8) |
static struct armv8_cachesize | decode_cache_reg (uint32_t cache_reg) |
static int | get_cache_info (struct arm_dpm *dpm, int cl, int ct, uint32_t *cache_reg) |
#define CACHE_LEVEL_HAS_D_CACHE 0x2 |
Definition at line 19 of file armv8_cache.c.
#define CACHE_LEVEL_HAS_I_CACHE 0x1 |
Definition at line 20 of file armv8_cache.c.
#define CACHE_LEVEL_HAS_UNIFIED_CACHE 0x4 |
Definition at line 18 of file armv8_cache.c.
|
static |
Definition at line 224 of file armv8_cache.c.
References armv8_cache_d_inner_clean_inval_all(), and target_to_armv8().
Referenced by armv8_flush_all_data().
|
static |
Definition at line 71 of file armv8_cache.c.
References armv8_cache_common::arch, armv8_common::arm, armv8_mmu_common::armv8_cache, armv8_cache_d_inner_flush_level(), armv8_d_cache_sanity_check(), armv8_common::armv8_mmu, CACHE_LEVEL_HAS_D_CACHE, armv8_arch_cache::ctype, armv8_arch_cache::d_u_size, arm::dpm, ERROR_OK, arm_dpm::finish, armv8_cache_common::loc, LOG_ERROR, and arm_dpm::prepare.
Referenced by _armv8_flush_all_data().
|
static |
Definition at line 42 of file armv8_cache.c.
References armv8_common::arm, ARMV8_OPC_DCCISW, arm::dpm, ERROR_OK, arm_dpm::instr_write_data_r0, LOG_DEBUG, and size.
Referenced by armv8_cache_d_inner_clean_inval_all().
int armv8_cache_d_inner_flush_virt | ( | struct armv8_common * | armv8, |
target_addr_t | va, | ||
size_t | size | ||
) |
Definition at line 104 of file armv8_cache.c.
References armv8_common::arm, armv8_mmu_common::armv8_cache, armv8_d_cache_sanity_check(), armv8_common::armv8_mmu, ARMV8_OPC_DCCIVAC, armv8_cache_common::dminline, arm::dpm, ERROR_OK, arm_dpm::finish, arm_dpm::instr_write_data_r0_64, LOG_ERROR, arm_dpm::prepare, and size.
Referenced by aarch64_set_breakpoint(), and aarch64_unset_breakpoint().
int armv8_cache_i_inner_inval_virt | ( | struct armv8_common * | armv8, |
target_addr_t | va, | ||
size_t | size | ||
) |
Definition at line 143 of file armv8_cache.c.
References armv8_common::arm, armv8_mmu_common::armv8_cache, armv8_i_cache_sanity_check(), armv8_common::armv8_mmu, ARMV8_OPC_ICIVAU, arm::dpm, ERROR_OK, arm_dpm::finish, armv8_cache_common::iminline, arm_dpm::instr_write_data_r0_64, LOG_ERROR, arm_dpm::prepare, and size.
Referenced by aarch64_set_breakpoint(), and aarch64_unset_breakpoint().
|
static |
Definition at line 22 of file armv8_cache.c.
References armv8_mmu_common::armv8_cache, armv8_common::armv8_mmu, armv8_cache_common::d_u_cache_enabled, ERROR_OK, and ERROR_TARGET_INVALID.
Referenced by armv8_cache_d_inner_clean_inval_all(), and armv8_cache_d_inner_flush_virt().
|
static |
Definition at line 229 of file armv8_cache.c.
References _armv8_flush_all_data(), armv8_mmu_common::armv8_cache, armv8_common::armv8_mmu, ERROR_FAIL, foreach_smp_target, armv8_cache_common::info, LOG_ERROR, LOG_TARGET_INFO, target::smp, target::smp_targets, target::state, target_list::target, TARGET_HALTED, and target_to_armv8().
Referenced by armv8_identify_cache().
|
static |
Definition at line 181 of file armv8_cache.c.
References armv8_cache_common::arch, armv8_cachesize::associativity, armv8_cachesize::cachesize, cmd, command_print(), armv8_arch_cache::ctype, armv8_arch_cache::d_u_size, ERROR_OK, armv8_arch_cache::i_size, armv8_cache_common::info, armv8_cachesize::linelen, armv8_cache_common::loc, and armv8_cachesize::nsets.
Referenced by armv8_identify_cache().
|
static |
Definition at line 32 of file armv8_cache.c.
References armv8_mmu_common::armv8_cache, armv8_common::armv8_mmu, ERROR_OK, ERROR_TARGET_INVALID, and armv8_cache_common::i_cache_enabled.
Referenced by armv8_cache_i_inner_inval_virt().
int armv8_identify_cache | ( | struct armv8_common * | armv8 | ) |
Definition at line 297 of file armv8_cache.c.
References armv8_cache_common::arch, armv8_common::arm, ARM_MODE_ANY, ARMV8_64_EL1H, armv8_mmu_common::armv8_cache, armv8_curel_from_core_mode(), armv8_dpm_modeswitch(), armv8_flush_all_data(), armv8_handle_inner_cache_info_command(), armv8_common::armv8_mmu, armv8_cachesize::associativity, CACHE_LEVEL_HAS_D_CACHE, CACHE_LEVEL_HAS_I_CACHE, CACHE_LEVEL_HAS_UNIFIED_CACHE, armv8_cachesize::cachesize, arm::core_mode, armv8_arch_cache::ctype, armv8_arch_cache::d_u_size, decode_cache_reg(), armv8_cache_common::display_cache_info, armv8_cache_common::dminline, arm::dpm, ERROR_FAIL, ERROR_OK, arm_dpm::finish, armv8_cache_common::flush_all_data_cache, get_cache_info(), armv8_arch_cache::i_size, armv8_cache_common::iminline, armv8_cachesize::index, armv8_cachesize::index_shift, armv8_cache_common::info, arm_dpm::instr_read_data_r0, arm_dpm::instr_write_data_r0, armv8_cachesize::linelen, armv8_cache_common::loc, LOG_DEBUG, arm_dpm::prepare, READ_REG_CLIDR, READ_REG_CSSELR, READ_REG_CTR, SYSTEM_CUREL_EL1, armv8_cachesize::way, armv8_cachesize::way_shift, and WRITE_REG_CSSELR.
Referenced by aarch64_post_debug_entry().
|
static |
Definition at line 255 of file armv8_cache.c.
References arm::arch_info, arm_dpm::arm, armv8_common::dpm, ERROR_OK, arm_dpm::instr_read_data_r0, arm_dpm::instr_write_data_r0, READ_REG_CCSIDR, and WRITE_REG_CSSELR.
Referenced by armv8_identify_cache().
|
static |
Definition at line 255 of file armv8_cache.c.
Referenced by armv8_identify_cache().