OpenOCD
|
Go to the source code of this file.
Functions | |
COMMAND_HANDLER (xscale_handle_analyze_trace_buffer_command) | |
COMMAND_HANDLER (xscale_handle_cache_clean_address_command) | |
COMMAND_HANDLER (xscale_handle_cache_info_command) | |
COMMAND_HANDLER (xscale_handle_cp15) | |
COMMAND_HANDLER (xscale_handle_debug_handler_command) | |
COMMAND_HANDLER (xscale_handle_dump_trace_command) | |
COMMAND_HANDLER (xscale_handle_idcache_command) | |
COMMAND_HANDLER (xscale_handle_mmu_command) | |
COMMAND_HANDLER (xscale_handle_trace_buffer_command) | |
COMMAND_HANDLER (xscale_handle_trace_image_command) | |
COMMAND_HANDLER (xscale_handle_vector_catch_command) | |
COMMAND_HANDLER (xscale_handle_vector_table_command) | |
static unsigned int | parity (unsigned int v) |
static int | xscale_add_breakpoint (struct target *target, struct breakpoint *breakpoint) |
static int | xscale_add_watchpoint (struct target *target, struct watchpoint *watchpoint) |
static int | xscale_analyze_trace (struct target *target, struct command_invocation *cmd) |
static int | xscale_arch_state (struct target *target) |
static int | xscale_assert_reset (struct target *target) |
static void | xscale_branch_address (struct xscale_trace_data *trace_data, int i, uint32_t *target) |
static void | xscale_build_reg_cache (struct target *target) |
static int | xscale_deassert_reset (struct target *target) |
static int | xscale_debug_entry (struct target *) |
static void | xscale_deinit_target (struct target *target) |
static int | xscale_disable_mmu_caches (struct target *target, int mmu, int d_u_cache, int i_cache) |
static int | xscale_disable_single_step (struct target *target) |
static void | xscale_display_instruction (struct target *target, uint32_t pc, struct arm_instruction *instruction, struct command_invocation *cmd) |
static void | xscale_enable_breakpoints (struct target *target) |
static int | xscale_enable_mmu_caches (struct target *target, int mmu, int d_u_cache, int i_cache) |
static int | xscale_enable_single_step (struct target *target, uint32_t next_pc) |
static void | xscale_enable_watchpoints (struct target *target) |
static void | xscale_free_reg_cache (struct target *target) |
static void | xscale_free_trace_data (struct xscale_common *xscale) |
static int | xscale_full_context (struct target *target) |
static int | xscale_get_reg (struct reg *reg) |
static int | xscale_get_ttb (struct target *target, uint32_t *result) |
static void | xscale_getbuf (jtag_callback_data_t arg) |
static int | xscale_halt (struct target *target) |
static int | xscale_init_arch_info (struct target *target, struct xscale_common *xscale, struct jtag_tap *tap) |
static int | xscale_init_target (struct command_context *cmd_ctx, struct target *target) |
static int | xscale_invalidate_ic_line (struct target *target, uint32_t va) |
static int | xscale_jtag_set_instr (struct jtag_tap *tap, uint32_t new_instr, tap_state_t end_state) |
static int | xscale_load_ic (struct target *target, uint32_t va, uint32_t buffer[8]) |
static int | xscale_mmu (struct target *target, int *enabled) |
static int | xscale_poll (struct target *target) |
static int | xscale_read_core_reg (struct target *target, struct reg *r, int num, enum arm_mode mode) |
static int | xscale_read_dcsr (struct target *target) |
static int | xscale_read_instruction (struct target *target, uint32_t pc, struct arm_instruction *instruction) |
static int | xscale_read_memory (struct target *target, target_addr_t address, uint32_t size, uint32_t count, uint8_t *buffer) |
static int | xscale_read_phys_memory (struct target *target, target_addr_t address, uint32_t size, uint32_t count, uint8_t *buffer) |
static int | xscale_read_trace (struct target *) |
static int | xscale_read_tx (struct target *target, int consume) |
static int | xscale_receive (struct target *target, uint32_t *buffer, int num_words) |
static int | xscale_remove_breakpoint (struct target *target, struct breakpoint *breakpoint) |
static int | xscale_remove_watchpoint (struct target *target, struct watchpoint *watchpoint) |
static int | xscale_restore_banked (struct target *) |
static int | xscale_resume (struct target *, int current, target_addr_t address, int handle_breakpoints, int debug_execution) |
static int | xscale_send (struct target *target, const uint8_t *buffer, int count, int size) |
static int | xscale_send_u32 (struct target *target, uint32_t value) |
static int | xscale_set_breakpoint (struct target *, struct breakpoint *) |
static int | xscale_set_reg (struct reg *reg, uint8_t *buf) |
static int | xscale_set_reg_u32 (struct reg *reg, uint32_t value) |
static int | xscale_set_watchpoint (struct target *, struct watchpoint *) |
static int | xscale_step (struct target *target, int current, target_addr_t address, int handle_breakpoints) |
static int | xscale_step_inner (struct target *target, int current, uint32_t address, int handle_breakpoints) |
static int | xscale_target_create (struct target *target, Jim_Interp *interp) |
static int | xscale_unset_breakpoint (struct target *, struct breakpoint *) |
static int | xscale_unset_watchpoint (struct target *target, struct watchpoint *watchpoint) |
static int | xscale_update_vectors (struct target *target) |
static int | xscale_verify_pointer (struct command_invocation *cmd, struct xscale_common *xscale) |
static int | xscale_virt2phys (struct target *target, target_addr_t virtual, target_addr_t *physical) |
static int | xscale_write_core_reg (struct target *target, struct reg *r, int num, enum arm_mode mode, uint8_t *value) |
static int | xscale_write_dcsr (struct target *target, int hold_rst, int ext_dbg_brk) |
static int | xscale_write_dcsr_sw (struct target *target, uint32_t value) |
static int | xscale_write_memory (struct target *target, target_addr_t address, uint32_t size, uint32_t count, const uint8_t *buffer) |
static int | xscale_write_phys_memory (struct target *target, target_addr_t address, uint32_t size, uint32_t count, const uint8_t *buffer) |
static int | xscale_write_rx (struct target *target) |
Variables | |
struct { | |
unsigned mask | |
char name [15] | |
} | vec_ids [] |
static const struct command_registration | xscale_any_command_handlers [] |
static const struct command_registration | xscale_command_handlers [] |
static const uint8_t | xscale_debug_handler [] |
static const struct command_registration | xscale_exec_command_handlers [] |
static const char | xscale_not [] = "target is not an XScale" |
static const struct xscale_reg | xscale_reg_arch_info [] |
static const char *const | xscale_reg_list [] |
static const struct reg_arch_type | xscale_reg_type |
struct target_type | xscale_target |
COMMAND_HANDLER | ( | xscale_handle_analyze_trace_buffer_command | ) |
Definition at line 3491 of file xscale.c.
References CMD, CMD_CTX, ERROR_OK, get_current_target(), target_to_xscale(), xscale_analyze_trace(), and xscale_verify_pointer().
COMMAND_HANDLER | ( | xscale_handle_cache_clean_address_command | ) |
Definition at line 3066 of file xscale.c.
References xscale_common::cache_clean_address, CMD, CMD_ARGC, CMD_ARGV, COMMAND_PARSE_NUMBER, ERROR_COMMAND_SYNTAX_ERROR, ERROR_FAIL, ERROR_OK, get_target(), LOG_ERROR, NULL, target_to_xscale(), and xscale_verify_pointer().
COMMAND_HANDLER | ( | xscale_handle_cache_info_command | ) |
Definition at line 3096 of file xscale.c.
References armv4_5_mmu_common::armv4_5_cache, armv4_5_handle_cache_info_command(), xscale_common::armv4_5_mmu, CMD, CMD_CTX, ERROR_OK, get_current_target(), target_to_xscale(), and xscale_verify_pointer().
COMMAND_HANDLER | ( | xscale_handle_cp15 | ) |
Definition at line 3506 of file xscale.c.
References buf_get_u32(), CMD, CMD_ARGC, CMD_ARGV, CMD_CTX, CMD_NAME, COMMAND_PARSE_NUMBER, command_print(), ERROR_COMMAND_SYNTAX_ERROR, ERROR_OK, get_current_target(), reg::name, NULL, xscale_common::reg_cache, reg_cache::reg_list, reg::size, target::state, TARGET_HALTED, target_to_xscale(), reg::value, XSCALE_CPACCESS, XSCALE_CTRL, XSCALE_DAC, XSCALE_FAR, XSCALE_FSR, xscale_get_reg(), XSCALE_MAINID, XSCALE_PID, xscale_send_u32(), XSCALE_TTB, and xscale_verify_pointer().
COMMAND_HANDLER | ( | xscale_handle_debug_handler_command | ) |
Definition at line 3031 of file xscale.c.
References CMD, CMD_ARGC, CMD_ARGV, COMMAND_PARSE_NUMBER, ERROR_COMMAND_SYNTAX_ERROR, ERROR_FAIL, ERROR_OK, get_target(), xscale_common::handler_address, LOG_ERROR, NULL, target_to_xscale(), and xscale_verify_pointer().
COMMAND_HANDLER | ( | xscale_handle_dump_trace_command | ) |
Definition at line 3441 of file xscale.c.
References xscale_trace_data::chkpt0, xscale_trace_data::chkpt1, CMD, CMD_ARGC, CMD_ARGV, CMD_CTX, CMD_NAME, command_print(), xscale_trace_entry::data, xscale_trace::data, xscale_trace_data::depth, xscale_trace_data::entries, ERROR_COMMAND_SYNTAX_ERROR, ERROR_OK, fileio::file, FILEIO_BINARY, fileio_close(), fileio_open(), FILEIO_WRITE, fileio_write_u32(), get_current_target(), xscale_trace_data::last_instruction, xscale_trace_data::next, target::state, TARGET_HALTED, target_to_xscale(), xscale_common::trace, xscale_trace_entry::type, and xscale_verify_pointer().
COMMAND_HANDLER | ( | xscale_handle_idcache_command | ) |
Definition at line 3172 of file xscale.c.
References armv4_5_mmu_common::armv4_5_cache, xscale_common::armv4_5_mmu, CMD, CMD_ARGC, CMD_ARGV, CMD_CTX, CMD_NAME, COMMAND_PARSE_ENABLE, command_print(), armv4_5_cache_common::d_u_cache_enabled, ERROR_OK, get_current_target(), armv4_5_cache_common::i_cache_enabled, target::state, TARGET_HALTED, target_to_xscale(), xscale_disable_mmu_caches(), xscale_enable_mmu_caches(), and xscale_verify_pointer().
COMMAND_HANDLER | ( | xscale_handle_mmu_command | ) |
Definition at line 3141 of file xscale.c.
References xscale_common::armv4_5_mmu, CMD, CMD_ARGC, CMD_ARGV, CMD_CTX, CMD_NAME, COMMAND_PARSE_ENABLE, command_print(), ERROR_OK, get_current_target(), armv4_5_mmu_common::mmu_enabled, target::state, TARGET_HALTED, target_to_xscale(), xscale_disable_mmu_caches(), xscale_enable_mmu_caches(), and xscale_verify_pointer().
COMMAND_HANDLER | ( | xscale_handle_trace_buffer_command | ) |
Definition at line 3338 of file xscale.c.
References buf_get_u32(), xscale_trace::buffer_fill, CMD, CMD_ARGC, CMD_ARGV, CMD_CTX, CMD_NAME, COMMAND_PARSE_NUMBER, command_print(), ERROR_COMMAND_SYNTAX_ERROR, ERROR_OK, get_current_target(), xscale_trace::mode, xscale_common::reg_cache, reg_cache::reg_list, target::state, TARGET_HALTED, target_to_xscale(), xscale_common::trace, reg::value, XSCALE_DCSR, XSCALE_TRACE_DISABLED, XSCALE_TRACE_FILL, XSCALE_TRACE_WRAP, xscale_verify_pointer(), and xscale_write_dcsr_sw().
COMMAND_HANDLER | ( | xscale_handle_trace_image_command | ) |
Definition at line 3401 of file xscale.c.
References image::base_address, image::base_address_set, CMD, CMD_ARGC, CMD_ARGV, CMD_CTX, COMMAND_PARSE_NUMBER, command_print(), ERROR_COMMAND_SYNTAX_ERROR, ERROR_OK, get_current_target(), xscale_trace::image, image_close(), image_open(), NULL, image::start_address_set, target_to_xscale(), xscale_common::trace, and xscale_verify_pointer().
COMMAND_HANDLER | ( | xscale_handle_vector_catch_command | ) |
Definition at line 3229 of file xscale.c.
References ARRAY_SIZE, buf_get_u32(), buf_set_u32(), CMD, CMD_ARGC, CMD_ARGV, CMD_CTX, command_print(), DCSR_TRAP_MASK, ERROR_COMMAND_SYNTAX_ERROR, ERROR_OK, get_current_target(), LOG_ERROR, mask, name, xscale_common::reg_cache, reg_cache::reg_list, target_to_xscale(), reg::value, vec_ids, XSCALE_DCSR, xscale_verify_pointer(), and xscale_write_dcsr().
COMMAND_HANDLER | ( | xscale_handle_vector_table_command | ) |
Definition at line 3280 of file xscale.c.
References CMD, CMD_ARGC, CMD_ARGV, CMD_CTX, COMMAND_PARSE_NUMBER, command_print(), ERROR_COMMAND_SYNTAX_ERROR, ERROR_OK, get_current_target(), xscale_common::static_high_vectors, xscale_common::static_high_vectors_set, xscale_common::static_low_vectors, xscale_common::static_low_vectors_set, target_to_xscale(), and xscale_verify_pointer().
|
static |
Definition at line 623 of file xscale.c.
Referenced by at91sam9_read_page(), at91sam9_write_page(), bitbang_swd_read_reg(), buspirate_swd_read_reg(), ftdi_swd_run_queue(), jlink_swd_run_queue(), usbtoswd_transact(), and xscale_load_ic().
|
static |
Definition at line 2138 of file xscale.c.
References BKPT_HARD, ERROR_TARGET_RESOURCE_NOT_AVAILABLE, xscale_common::ibcr_available, breakpoint::length, LOG_ERROR, target_to_xscale(), breakpoint::type, and xscale_set_breakpoint().
|
static |
Definition at line 2289 of file xscale.c.
References watchpoint::address, xscale_common::dbr_available, ERROR_COMMAND_ARGUMENT_INVALID, ERROR_OK, ERROR_TARGET_RESOURCE_NOT_AVAILABLE, watchpoint::length, LOG_ERROR, LOG_WARNING, target_to_xscale(), and watchpoint::value.
|
static |
Definition at line 2655 of file xscale.c.
References ARM_STATE_ARM, arm_instruction::b_bl_bx_blx, xscale_trace_data::chkpt0, xscale_trace_data::chkpt1, cmd, command_print(), xscale_trace::core_state, count, xscale_trace_entry::data, xscale_trace::data, xscale_trace_data::depth, xscale_trace_data::entries, ERROR_OK, xscale_trace::image, arm_instruction::info, xscale_trace_data::last_instruction, LOG_WARNING, xscale_trace_data::next, xscale_trace_data::num_checkpoints, arm_b_bl_bx_blx_instr::target_address, target_to_xscale(), xscale_common::trace, xscale_trace_entry::type, xscale_branch_address(), xscale_display_instruction(), xscale_read_instruction(), and XSCALE_TRACE_ADDRESS.
Referenced by COMMAND_HANDLER().
|
static |
Definition at line 772 of file xscale.c.
References xscale_common::arch_debug_reason, xscale_common::arm, arm_arch_state(), ARM_COMMON_MAGIC, armv4_5_mmu_common::armv4_5_cache, xscale_common::armv4_5_mmu, arm::common_magic, armv4_5_cache_common::d_u_cache_enabled, ERROR_COMMAND_SYNTAX_ERROR, ERROR_OK, armv4_5_cache_common::i_cache_enabled, LOG_ERROR, LOG_USER, armv4_5_mmu_common::mmu_enabled, state, and target_to_xscale().
|
static |
Definition at line 1432 of file xscale.c.
References buf_set_u32(), ERROR_OK, ERROR_TARGET_NOT_EXAMINED, jtag_add_reset(), jtag_add_sleep(), jtag_execute_queue(), LOG_DEBUG, LOG_WARNING, xscale_common::reg_cache, reg_cache::reg_list, target::reset_halt, target::state, target::tap, TAP_IDLE, target_halt(), TARGET_RESET, target_state_name(), target_to_xscale(), target_was_examined(), reg::value, XSCALE_DCSR, xscale_jtag_set_instr(), XSCALE_SELDCSR, xscale_common::xscale_variant, and xscale_write_dcsr().
|
inlinestatic |
Definition at line 2631 of file xscale.c.
References xscale_trace_entry::data, and xscale_trace_data::entries.
Referenced by xscale_analyze_trace().
|
static |
Definition at line 2859 of file xscale.c.
References xscale_common::arm, arm_build_reg_cache(), ARRAY_SIZE, reg_cache::name, reg_cache::next, NULL, target::reg_cache, xscale_common::reg_cache, register_get_last_cache_p(), target, xscale_reg::target, target_to_xscale(), xscale_reg_arch_info, xscale_reg_list, and xscale_reg_type.
Referenced by xscale_init_target().
|
static |
Definition at line 1480 of file xscale.c.
References breakpoint::address, xscale_common::arm, BKPT_HARD, target::breakpoints, buf_set_u32(), buffer, arm::core_cache, xscale_common::dbr0_used, xscale_common::dbr1_used, xscale_common::dbr_available, ERROR_OK, xscale_common::handler_address, xscale_common::high_vectors, xscale_common::ibcr0_used, xscale_common::ibcr1_used, xscale_common::ibcr_available, breakpoint::is_set, jtag_add_reset(), jtag_add_runtest(), jtag_add_sleep(), jtag_execute_queue(), le_to_h_u32(), LOG_DEBUG, xscale_common::low_vectors, xscale_trace::mode, breakpoint::next, xscale_common::reg_cache, reg_cache::reg_list, register_cache_invalidate(), target::reset_halt, target::state, TAP_IDLE, TARGET_HALTED, TARGET_RUNNING, target_to_xscale(), xscale_common::trace, breakpoint::type, reg::value, XSCALE_DCSR, xscale_debug_entry(), xscale_debug_handler, xscale_free_trace_data(), xscale_load_ic(), xscale_resume(), XSCALE_TRACE_DISABLED, and xscale_write_dcsr().
|
static |
Definition at line 837 of file xscale.c.
References xscale_common::arch_debug_reason, xscale_common::arm, arm_mode_name(), arm_reg_current(), arm_set_cpsr(), armv4_5_mmu_common::armv4_5_cache, armv4_5_identify_cache(), xscale_common::armv4_5_mmu, buf_get_u32(), buf_set_u32(), buffer, arm::core_cache, arm::core_mode, xscale_common::cp15_control_reg, armv4_5_cache_common::ctype, armv4_5_cache_common::d_u_cache_enabled, DBG_REASON_BREAKPOINT, DBG_REASON_DBGRQ, DBG_REASON_WATCHPOINT, target::debug_reason, reg::dirty, ERROR_OK, ERROR_TARGET_FAILURE, xscale_common::external_debug_break, xscale_trace::fill_counter, armv4_5_cache_common::i_cache_enabled, is_arm_mode(), LOG_DEBUG, LOG_ERROR, armv4_5_mmu_common::mmu_enabled, xscale_trace::mode, reg_cache::num_regs, arm::pc, xscale_common::reg_cache, reg_cache::reg_list, arm::spsr, target::state, target_to_xscale(), TARGET_UNKNOWN, xscale_common::trace, reg::valid, reg::value, XSCALE_CACHETYPE, XSCALE_CTRL, XSCALE_DBG_REASON_GENERIC, XSCALE_DBG_REASON_RESET, XSCALE_DBG_REASON_TB_FULL, XSCALE_DCSR, xscale_get_reg(), xscale_read_dcsr(), xscale_read_trace(), xscale_receive(), xscale_resume(), and XSCALE_TRACE_DISABLED.
Referenced by xscale_deassert_reset(), xscale_poll(), xscale_resume(), and xscale_step_inner().
|
static |
Definition at line 2917 of file xscale.c.
References target_to_xscale(), and xscale_free_reg_cache().
|
static |
Definition at line 1986 of file xscale.c.
References buf_get_u32(), xscale_common::cache_clean_address, ERROR_OK, xscale_common::reg_cache, reg_cache::reg_list, target_to_xscale(), reg::value, XSCALE_CTRL, xscale_get_reg(), xscale_send_u32(), and xscale_set_reg_u32().
Referenced by COMMAND_HANDLER(), and xscale_init_arch_info().
|
static |
Definition at line 1061 of file xscale.c.
References ERROR_OK, xscale_common::reg_cache, reg_cache::reg_list, target_to_xscale(), XSCALE_IBCR0, and xscale_set_reg_u32().
Referenced by xscale_resume(), and xscale_step_inner().
|
inlinestatic |
Definition at line 2644 of file xscale.c.
References cmd, command_print(), ERROR_OK, arm_instruction::text, and xscale_read_instruction().
Referenced by xscale_analyze_trace().
|
static |
Definition at line 1085 of file xscale.c.
References target::breakpoints, breakpoint::is_set, breakpoint::next, and xscale_set_breakpoint().
Referenced by xscale_resume().
|
static |
Definition at line 2037 of file xscale.c.
References buf_get_u32(), ERROR_OK, xscale_common::reg_cache, reg_cache::reg_list, target_to_xscale(), reg::value, XSCALE_CTRL, xscale_get_reg(), xscale_send_u32(), and xscale_set_reg_u32().
Referenced by COMMAND_HANDLER(), and xscale_init_arch_info().
|
static |
Definition at line 1035 of file xscale.c.
References breakpoint_find(), buf_get_u32(), ERROR_OK, xscale_common::ibcr0_used, LOG_ERROR, xscale_common::reg_cache, reg_cache::reg_list, target_to_xscale(), reg::value, XSCALE_IBCR0, xscale_set_reg_u32(), and xscale_unset_breakpoint().
Referenced by xscale_resume(), and xscale_step_inner().
|
static |
Definition at line 1074 of file xscale.c.
References watchpoint::is_set, watchpoint::next, target::watchpoints, and xscale_set_watchpoint().
Referenced by xscale_resume().
|
static |
Definition at line 2895 of file xscale.c.
References reg::arch_info, xscale_common::arm, arm_free_reg_cache(), ARRAY_SIZE, xscale_common::reg_cache, reg_cache::reg_list, target_to_xscale(), reg::value, and xscale_reg_arch_info.
Referenced by xscale_deinit_target().
|
static |
Definition at line 1097 of file xscale.c.
References xscale_trace::data, xscale_trace_data::entries, xscale_trace_data::next, NULL, and xscale_common::trace.
Referenced by xscale_deassert_reset(), and xscale_resume().
|
static |
Definition at line 1624 of file xscale.c.
References ARM_MODE_SYS, ARM_MODE_USR, ARMV4_5_CORE_REG_MODE, armv4_5_number_to_mode(), buf_set_u32(), buffer, arm::core_cache, reg::dirty, ERROR_OK, ERROR_TARGET_NOT_HALTED, LOG_DEBUG, LOG_WARNING, mode, target::state, TARGET_HALTED, target_to_arm(), reg::valid, reg::value, xscale_receive(), and xscale_send_u32().
Referenced by xscale_init_arch_info().
|
static |
Definition at line 2387 of file xscale.c.
References reg::arch_info, target::arch_info, buf_cpy(), xscale_reg::dbg_handler_number, reg::dirty, ERROR_OK, reg::name, xscale_common::reg_cache, reg_cache::reg_list, xscale_reg::target, target_to_xscale(), reg::valid, reg::value, xscale_read_dcsr(), xscale_read_tx(), xscale_send_u32(), and XSCALE_TX.
Referenced by COMMAND_HANDLER(), xscale_debug_entry(), xscale_disable_mmu_caches(), xscale_enable_mmu_caches(), and xscale_get_ttb().
|
static |
Definition at line 1970 of file xscale.c.
References buf_get_u32(), ERROR_OK, xscale_common::reg_cache, reg_cache::reg_list, target_to_xscale(), reg::value, xscale_get_reg(), and XSCALE_TTB.
Referenced by xscale_init_arch_info().
|
static |
|
static |
Definition at line 1008 of file xscale.c.
References DBG_REASON_DBGRQ, target::debug_reason, ERROR_OK, ERROR_TARGET_INVALID, xscale_common::external_debug_break, LOG_DEBUG, LOG_ERROR, target::state, TARGET_HALTED, TARGET_RESET, target_state_name(), target_to_xscale(), TARGET_UNKNOWN, and xscale_read_dcsr().
|
static |
Definition at line 2925 of file xscale.c.
References arm::arch_info, xscale_common::arm, xscale_common::arm_bkpt, ARM_CORE_TYPE_STD, arm_init_arch_info(), ARMV4_5_B, armv4_5_mmu_common::armv4_5_cache, xscale_common::armv4_5_mmu, ARMV5_BKPT, ARMV5_T_BKPT, xscale_trace::buffer_fill, xscale_common::cache_clean_address, xscale_common::common_magic, arm::core_type, armv4_5_cache_common::ctype, xscale_trace::data, xscale_common::dbr0_used, xscale_common::dbr1_used, xscale_common::dbr_available, armv4_5_mmu_common::disable_mmu_caches, armv4_5_mmu_common::enable_mmu_caches, ERROR_OK, xscale_common::external_debug_break, xscale_trace::fill_counter, arm::full_context, armv4_5_mmu_common::get_ttb, xscale_common::handler_address, armv4_5_mmu_common::has_tiny_pages, xscale_common::high_vectors, xscale_common::hold_rst, xscale_common::ibcr0_used, xscale_common::ibcr1_used, xscale_common::ibcr_available, xscale_trace::image, jtag_tap::ir_length, LOG_INFO, xscale_common::low_vectors, armv4_5_mmu_common::mmu_enabled, xscale_trace::mode, NULL, arm::read_core_reg, armv4_5_mmu_common::read_memory, xscale_common::static_high_vectors_set, xscale_common::static_low_vectors_set, target_name(), xscale_common::thumb_bkpt, xscale_common::trace, xscale_common::vector_catch, arm::write_core_reg, armv4_5_mmu_common::write_memory, XSCALE_COMMON_MAGIC, xscale_disable_mmu_caches(), xscale_enable_mmu_caches(), xscale_full_context(), xscale_get_ttb(), XSCALE_IXP4XX_PXA2XX, XSCALE_PXA3XX, xscale_read_core_reg(), xscale_read_memory(), XSCALE_TRACE_DISABLED, xscale_common::xscale_variant, xscale_write_core_reg(), and xscale_write_memory().
Referenced by xscale_target_create().
|
static |
Definition at line 2910 of file xscale.c.
References ERROR_OK, and xscale_build_reg_cache().
|
static |
Definition at line 688 of file xscale.c.
References buf_set_u32(), cmd, ERROR_OK, jtag_add_dr_scan(), scan_field::num_bits, scan_field::out_value, target::tap, TAP_IDLE, target_to_xscale(), xscale_jtag_set_instr(), XSCALE_LDIC, and xscale_common::xscale_variant.
Referenced by xscale_update_vectors().
|
static |
Definition at line 140 of file xscale.c.
References buf_get_u32(), buf_set_u32(), jtag_tap::cur_instr, ERROR_OK, jtag_tap::ir_length, jtag_add_ir_scan(), scan_field::num_bits, and scan_field::out_value.
Referenced by xscale_assert_reset(), xscale_invalidate_ic_line(), xscale_load_ic(), xscale_read_dcsr(), xscale_read_tx(), xscale_receive(), xscale_send(), xscale_write_dcsr(), and xscale_write_rx().
|
static |
Definition at line 634 of file xscale.c.
References buf_set_u32(), buffer, cmd, jtag_add_dr_scan(), jtag_execute_queue(), LOG_DEBUG, scan_field::num_bits, scan_field::out_value, parity(), target::tap, TAP_IDLE, target_to_xscale(), xscale_jtag_set_instr(), XSCALE_LDIC, and xscale_common::xscale_variant.
Referenced by xscale_deassert_reset(), and xscale_update_vectors().
|
static |
Definition at line 3129 of file xscale.c.
References xscale_common::armv4_5_mmu, ERROR_OK, ERROR_TARGET_INVALID, LOG_ERROR, armv4_5_mmu_common::mmu_enabled, target::state, TARGET_HALTED, and target_to_xscale().
|
static |
Definition at line 800 of file xscale.c.
References ERROR_OK, ERROR_TARGET_RESOURCE_NOT_AVAILABLE, LOG_USER, target::state, target_call_event_callbacks(), TARGET_DEBUG_RUNNING, TARGET_EVENT_DEBUG_HALTED, TARGET_EVENT_HALTED, TARGET_HALTED, TARGET_RUNNING, xscale_debug_entry(), and xscale_read_tx().
|
static |
Definition at line 159 of file xscale.c.
References buf_set_u32(), reg::dirty, ERROR_OK, xscale_common::external_debug_break, xscale_common::hold_rst, scan_field::in_value, jtag_add_dr_scan(), jtag_check_value_mask(), jtag_execute_queue(), LOG_ERROR, NULL, scan_field::num_bits, scan_field::out_value, xscale_common::reg_cache, reg_cache::reg_list, target::tap, TAP_DRPAUSE, target_to_xscale(), reg::valid, reg::value, XSCALE_DCSR, xscale_jtag_set_instr(), XSCALE_SELDCSR, and xscale_common::xscale_variant.
Referenced by xscale_debug_entry(), xscale_get_reg(), xscale_halt(), xscale_read_memory(), and xscale_write_memory().
|
static |
Definition at line 2572 of file xscale.c.
References arm_evaluate_opcode(), ARM_STATE_ARM, ARM_STATE_THUMB, imagesection::base_address, xscale_trace::core_state, ERROR_OK, ERROR_TRACE_IMAGE_UNAVAILABLE, ERROR_TRACE_INSTRUCTION_UNAVAILABLE, xscale_trace::image, image_read_section(), LOG_ERROR, image::num_sections, image::sections, imagesection::size, target_buffer_get_u16(), target_buffer_get_u32(), target_to_xscale(), thumb_evaluate_opcode(), and xscale_common::trace.
Referenced by xscale_analyze_trace(), and xscale_display_instruction().
|
static |
Definition at line 1770 of file xscale.c.
References buf_get_u32(), buffer, count, ERROR_COMMAND_SYNTAX_ERROR, ERROR_OK, ERROR_TARGET_DATA_ABORT, ERROR_TARGET_NOT_HALTED, ERROR_TARGET_UNALIGNED_ACCESS, LOG_DEBUG, LOG_ERROR, LOG_WARNING, xscale_common::reg_cache, reg_cache::reg_list, size, target::state, TARGET_ADDR_FMT, target_buffer_set_u16(), target_buffer_set_u32(), TARGET_HALTED, target_to_xscale(), reg::value, XSCALE_DCSR, xscale_read_dcsr(), xscale_receive(), and xscale_send_u32().
Referenced by xscale_init_arch_info(), and xscale_read_phys_memory().
|
static |
Definition at line 1856 of file xscale.c.
References xscale_common::armv4_5_mmu, buffer, count, ERROR_FAIL, LOG_ERROR, armv4_5_mmu_common::mmu_enabled, size, target_name(), target_to_xscale(), and xscale_read_memory().
|
static |
Definition at line 2477 of file xscale.c.
References xscale_common::arm, buf_get_u32(), xscale_trace::data, ERROR_OK, ERROR_TARGET_NOT_HALTED, ERROR_XSCALE_NO_TRACE_DATA, LOG_DEBUG, LOG_WARNING, xscale_trace_data::next, NULL, xscale_trace_data::num_checkpoints, arm::pc, target::state, TARGET_HALTED, target_to_xscale(), xscale_common::trace, reg::value, xscale_receive(), xscale_send_u32(), XSCALE_TRACE_ADDRESS, and XSCALE_TRACE_MESSAGE.
Referenced by xscale_debug_entry().
|
static |
Definition at line 330 of file xscale.c.
References alive_sleep(), ARRAY_SIZE, debug_level, ERROR_OK, ERROR_TARGET_RESOURCE_NOT_AVAILABLE, ERROR_TARGET_TIMEOUT, gettimeofday(), scan_field::in_value, jtag_add_dr_scan(), jtag_add_pathmove(), jtag_check_value_mask(), jtag_execute_queue(), keep_alive(), LOG_DEBUG, LOG_ERROR, NULL, scan_field::num_bits, xscale_common::reg_cache, reg_cache::reg_list, target::tap, TAP_DRCAPTURE, TAP_DREXIT1, TAP_DREXIT2, TAP_DRPAUSE, TAP_DRSELECT, TAP_DRSHIFT, TAP_IDLE, target_to_xscale(), timeval_add_time(), timeval_compare(), reg::value, XSCALE_DBGTX, xscale_jtag_set_instr(), XSCALE_TX, and xscale_common::xscale_variant.
Referenced by xscale_get_reg(), and xscale_poll().
|
static |
Definition at line 228 of file xscale.c.
References buf_get_u32(), buffer, scan_field::check_mask, scan_field::check_value, ERROR_COMMAND_SYNTAX_ERROR, ERROR_OK, ERROR_TARGET_TIMEOUT, scan_field::in_value, jtag_add_callback(), jtag_add_dr_scan_check(), jtag_add_pathmove(), jtag_add_runtest(), jtag_execute_queue(), LOG_ERROR, scan_field::num_bits, target::tap, TAP_DRCAPTURE, TAP_DRSELECT, TAP_DRSHIFT, TAP_IDLE, target_to_xscale(), XSCALE_DBGTX, xscale_getbuf(), xscale_jtag_set_instr(), and xscale_common::xscale_variant.
Referenced by xscale_debug_entry(), xscale_full_context(), xscale_read_memory(), and xscale_read_trace().
|
static |
Definition at line 2208 of file xscale.c.
References BKPT_HARD, ERROR_OK, ERROR_TARGET_NOT_HALTED, xscale_common::ibcr_available, breakpoint::is_set, LOG_ERROR, target::state, TARGET_HALTED, target_to_xscale(), breakpoint::type, and xscale_unset_breakpoint().
|
static |
Definition at line 2367 of file xscale.c.
References xscale_common::dbr_available, ERROR_OK, ERROR_TARGET_NOT_HALTED, watchpoint::is_set, watchpoint::length, LOG_ERROR, target::state, TARGET_HALTED, target_to_xscale(), and xscale_unset_watchpoint().
|
static |
Definition at line 1701 of file xscale.c.
References ARM_MODE_SYS, ARM_MODE_USR, ARMV4_5_CORE_REG_MODE, armv4_5_number_to_mode(), buf_get_u32(), arm::core_cache, reg::dirty, ERROR_OK, ERROR_TARGET_NOT_HALTED, LOG_WARNING, mode, target::state, TARGET_HALTED, target_to_arm(), reg::value, and xscale_send_u32().
Referenced by xscale_resume(), and xscale_step_inner().
|
static |
Definition at line 1109 of file xscale.c.
References breakpoint::address, xscale_common::arm, arm_simulate_step(), breakpoint_find(), buf_get_u32(), buf_set_u32(), xscale_trace::buffer_fill, arm::core_cache, arm::cpsr, DBG_REASON_NOTHALTED, target::debug_reason, ERROR_OK, ERROR_TARGET_NOT_HALTED, xscale_trace::fill_counter, LOG_DEBUG, LOG_ERROR, LOG_WARNING, xscale_trace::mode, NULL, arm::pc, reg_cache::reg_list, register_cache_invalidate(), target::state, TARGET_ADDR_FMT, target_call_event_callbacks(), TARGET_DEBUG_RUNNING, TARGET_EVENT_DEBUG_RESUMED, TARGET_EVENT_RESUMED, target_free_all_working_areas(), TARGET_HALTED, target_read_u32(), TARGET_RUNNING, target_to_xscale(), xscale_common::trace, reg::value, xscale_debug_entry(), xscale_disable_single_step(), xscale_enable_breakpoints(), xscale_enable_single_step(), xscale_enable_watchpoints(), xscale_free_trace_data(), xscale_restore_banked(), xscale_send_u32(), xscale_set_breakpoint(), XSCALE_TRACE_DISABLED, XSCALE_TRACE_FILL, xscale_unset_breakpoint(), and xscale_update_vectors().
Referenced by xscale_deassert_reset(), and xscale_debug_entry().
|
static |
Definition at line 495 of file xscale.c.
References be_to_h_u16(), be_to_h_u32(), buf_set_u32(), buffer, count, target::endianness, ERROR_COMMAND_SYNTAX_ERROR, ERROR_OK, jtag_add_dr_scan(), jtag_execute_queue(), le_to_h_u16(), le_to_h_u32(), LOG_ERROR, scan_field::num_bits, size, target::tap, TAP_IDLE, TARGET_LITTLE_ENDIAN, target_to_xscale(), XSCALE_DBGRX, xscale_jtag_set_instr(), and xscale_common::xscale_variant.
Referenced by xscale_write_memory().
|
static |
Definition at line 557 of file xscale.c.
References buf_set_u32(), xscale_common::reg_cache, reg_cache::reg_list, target_to_xscale(), reg::value, XSCALE_RX, and xscale_write_rx().
Referenced by COMMAND_HANDLER(), xscale_disable_mmu_caches(), xscale_enable_mmu_caches(), xscale_full_context(), xscale_get_reg(), xscale_read_memory(), xscale_read_trace(), xscale_restore_banked(), xscale_resume(), xscale_set_breakpoint(), xscale_set_reg(), xscale_step_inner(), xscale_unset_breakpoint(), xscale_write_dcsr_sw(), and xscale_write_memory().
|
static |
Definition at line 2069 of file xscale.c.
References breakpoint::address, xscale_common::arm_bkpt, BKPT_HARD, BKPT_SOFT, breakpoint_hw_set(), xscale_common::cache_clean_address, ERROR_OK, ERROR_TARGET_NOT_HALTED, ERROR_TARGET_RESOURCE_NOT_AVAILABLE, xscale_common::ibcr0_used, xscale_common::ibcr1_used, breakpoint::is_set, breakpoint::length, LOG_ERROR, LOG_WARNING, breakpoint::orig_instr, xscale_common::reg_cache, reg_cache::reg_list, target::state, TARGET_HALTED, target_read_memory(), target_to_xscale(), target_write_u16(), target_write_u32(), xscale_common::thumb_bkpt, breakpoint::type, XSCALE_IBCR0, XSCALE_IBCR1, xscale_send_u32(), and xscale_set_reg_u32().
Referenced by xscale_add_breakpoint(), xscale_enable_breakpoints(), xscale_resume(), and xscale_step().
|
static |
Definition at line 2423 of file xscale.c.
References reg::arch_info, target::arch_info, buf_get_u32(), buf_set_u32(), xscale_reg::dbg_handler_number, ERROR_OK, reg::name, xscale_common::reg_cache, reg_cache::reg_list, xscale_reg::target, target_to_xscale(), reg::value, XSCALE_DCSR, XSCALE_RX, xscale_send_u32(), xscale_write_dcsr(), and xscale_write_rx().
Referenced by xscale_set_reg_u32().
|
static |
Definition at line 119 of file xscale.c.
References buf_set_u32(), and xscale_set_reg().
Referenced by xscale_disable_mmu_caches(), xscale_disable_single_step(), xscale_enable_mmu_caches(), xscale_enable_single_step(), xscale_set_breakpoint(), xscale_set_watchpoint(), xscale_unset_breakpoint(), and xscale_unset_watchpoint().
|
static |
Definition at line 2226 of file xscale.c.
References watchpoint::address, buf_get_u32(), xscale_common::dbr0_used, xscale_common::dbr1_used, ERROR_OK, ERROR_TARGET_NOT_HALTED, ERROR_TARGET_RESOURCE_NOT_AVAILABLE, watchpoint::length, LOG_ERROR, xscale_common::reg_cache, reg_cache::reg_list, watchpoint::rw, target::state, TARGET_HALTED, target_to_xscale(), reg::value, watchpoint_set(), WPT_ACCESS, WPT_READ, WPT_WRITE, XSCALE_DBCON, XSCALE_DBR0, XSCALE_DBR1, and xscale_set_reg_u32().
Referenced by xscale_enable_watchpoints().
|
static |
Definition at line 1375 of file xscale.c.
References breakpoint::address, arm_simulate_step(), breakpoint_find(), buf_get_u32(), buf_set_u32(), DBG_REASON_SINGLESTEP, target::debug_reason, ERROR_OK, ERROR_TARGET_NOT_HALTED, LOG_DEBUG, LOG_WARNING, NULL, arm::pc, target::state, target_call_event_callbacks(), TARGET_EVENT_HALTED, TARGET_HALTED, target_to_arm(), reg::value, xscale_set_breakpoint(), xscale_step_inner(), and xscale_unset_breakpoint().
|
static |
Definition at line 1280 of file xscale.c.
References xscale_common::arm, arm_simulate_step(), buf_get_u32(), arm::core_cache, arm::cpsr, DBG_REASON_SINGLESTEP, target::debug_reason, ERROR_OK, LOG_DEBUG, LOG_ERROR, xscale_trace::mode, arm::pc, reg_cache::reg_list, register_cache_invalidate(), target_call_event_callbacks(), TARGET_EVENT_HALTED, TARGET_EVENT_RESUMED, target_read_u32(), target_to_xscale(), xscale_common::trace, reg::value, xscale_debug_entry(), xscale_disable_single_step(), xscale_enable_single_step(), xscale_restore_banked(), xscale_send_u32(), and XSCALE_TRACE_DISABLED.
Referenced by xscale_step().
|
static |
Definition at line 3015 of file xscale.c.
References ERROR_FAIL, LOG_ERROR, target::tap, xscale_debug_handler, and xscale_init_arch_info().
|
static |
Definition at line 2159 of file xscale.c.
References breakpoint::address, BKPT_HARD, xscale_common::cache_clean_address, ERROR_OK, ERROR_TARGET_NOT_HALTED, xscale_common::ibcr0_used, xscale_common::ibcr1_used, breakpoint::is_set, breakpoint::length, LOG_WARNING, breakpoint::number, breakpoint::orig_instr, xscale_common::reg_cache, reg_cache::reg_list, target::state, TARGET_HALTED, target_to_xscale(), target_write_memory(), breakpoint::type, XSCALE_IBCR0, XSCALE_IBCR1, xscale_send_u32(), and xscale_set_reg_u32().
Referenced by xscale_enable_single_step(), xscale_remove_breakpoint(), xscale_resume(), and xscale_step().
|
static |
Definition at line 2331 of file xscale.c.
References buf_get_u32(), xscale_common::dbr0_used, xscale_common::dbr1_used, ERROR_OK, ERROR_TARGET_NOT_HALTED, watchpoint::is_set, watchpoint::length, LOG_WARNING, watchpoint::number, xscale_common::reg_cache, reg_cache::reg_list, target::state, TARGET_HALTED, target_to_xscale(), reg::value, XSCALE_DBCON, and xscale_set_reg_u32().
Referenced by xscale_remove_watchpoint().
|
static |
Definition at line 718 of file xscale.c.
References ARMV4_5_B, ERROR_OK, ERROR_TARGET_TIMEOUT, xscale_common::handler_address, xscale_common::high_vectors, xscale_common::low_vectors, xscale_common::static_high_vectors, xscale_common::static_high_vectors_set, xscale_common::static_low_vectors, xscale_common::static_low_vectors_set, target_read_u32(), target_to_xscale(), xscale_invalidate_ic_line(), and xscale_load_ic().
Referenced by xscale_resume().
|
static |
Definition at line 130 of file xscale.c.
References cmd, command_print(), xscale_common::common_magic, ERROR_OK, ERROR_TARGET_INVALID, XSCALE_COMMON_MAGIC, and xscale_not.
Referenced by COMMAND_HANDLER().
|
static |
Definition at line 3109 of file xscale.c.
References xscale_common::armv4_5_mmu, armv4_5_mmu_translate_va(), xscale_common::common_magic, ERROR_OK, ERROR_TARGET_INVALID, LOG_ERROR, target_to_xscale(), XSCALE_COMMON_MAGIC, and xscale_not.
|
static |
Definition at line 565 of file xscale.c.
References buf_set_u32(), reg::dirty, ERROR_OK, xscale_common::external_debug_break, xscale_common::hold_rst, scan_field::in_value, jtag_add_dr_scan(), jtag_check_value_mask(), jtag_execute_queue(), LOG_ERROR, scan_field::num_bits, scan_field::out_value, xscale_common::reg_cache, reg_cache::reg_list, target::tap, TAP_IDLE, target_to_xscale(), reg::valid, reg::value, XSCALE_DCSR, xscale_jtag_set_instr(), XSCALE_SELDCSR, and xscale_common::xscale_variant.
Referenced by COMMAND_HANDLER(), xscale_assert_reset(), xscale_deassert_reset(), and xscale_set_reg().
|
static |
Definition at line 2458 of file xscale.c.
References reg::arch_info, buf_set_u32(), xscale_reg::dbg_handler_number, ERROR_OK, xscale_common::reg_cache, reg_cache::reg_list, target_to_xscale(), reg::value, XSCALE_DCSR, and xscale_send_u32().
Referenced by COMMAND_HANDLER().
|
static |
Definition at line 1871 of file xscale.c.
References buf_get_u32(), buffer, count, ERROR_COMMAND_SYNTAX_ERROR, ERROR_OK, ERROR_TARGET_DATA_ABORT, ERROR_TARGET_NOT_HALTED, ERROR_TARGET_UNALIGNED_ACCESS, LOG_DEBUG, LOG_ERROR, LOG_WARNING, xscale_common::reg_cache, reg_cache::reg_list, size, target::state, TARGET_ADDR_FMT, target_buffer_get_u16(), target_buffer_get_u32(), TARGET_HALTED, target_to_xscale(), reg::value, XSCALE_DCSR, xscale_read_dcsr(), xscale_send(), and xscale_send_u32().
Referenced by xscale_init_arch_info(), and xscale_write_phys_memory().
|
static |
Definition at line 1955 of file xscale.c.
References xscale_common::armv4_5_mmu, buffer, count, ERROR_FAIL, LOG_ERROR, armv4_5_mmu_common::mmu_enabled, size, target_name(), target_to_xscale(), and xscale_write_memory().
|
static |
Definition at line 416 of file xscale.c.
References alive_sleep(), debug_level, ERROR_OK, ERROR_TARGET_TIMEOUT, gettimeofday(), scan_field::in_value, jtag_add_dr_scan(), jtag_check_value_mask(), jtag_execute_queue(), keep_alive(), LOG_DEBUG, LOG_ERROR, NULL, scan_field::num_bits, scan_field::out_value, xscale_common::reg_cache, reg_cache::reg_list, target::tap, TAP_IDLE, target_to_xscale(), timeval_add_time(), timeval::tv_sec, timeval::tv_usec, reg::value, XSCALE_DBGRX, xscale_jtag_set_instr(), XSCALE_RX, and xscale_common::xscale_variant.
Referenced by xscale_send_u32(), and xscale_set_reg().
unsigned mask |
Definition at line 3218 of file xscale.c.
Referenced by COMMAND_HANDLER().
char name[15] |
Definition at line 3217 of file xscale.c.
Referenced by COMMAND_HANDLER().
const { ... } vec_ids[] |
|
static |
|
static |
|
static |
Definition at line 64 of file xscale.c.
Referenced by xscale_deassert_reset(), and xscale_target_create().
|
static |
|
static |
Definition at line 128 of file xscale.c.
Referenced by xscale_verify_pointer(), and xscale_virt2phys().
|
static |
Definition at line 68 of file xscale.c.
Referenced by xscale_build_reg_cache(), and xscale_free_reg_cache().
|
static |
Definition at line 68 of file xscale.c.
Referenced by xscale_build_reg_cache().
|
static |
Definition at line 2655 of file xscale.c.
Referenced by xscale_build_reg_cache().
struct target_type xscale_target |