OpenOCD
|
This represents an ARM Debug Interface (v5) Debug Access Port (DAP). More...
Data Fields | |
uint8_t | ack |
unsigned int | adi_version |
Indicates ADI version (5, 6 or 0 for unknown) being used. More... | |
struct adiv5_ap | ap [DP_APSEL_MAX+1] |
uint64_t | apsel |
unsigned int | asize |
struct list_head | cmd_journal |
struct list_head | cmd_pool |
size_t | cmd_pool_size |
bool | do_reconnect |
Signals that an attempt to reestablish communication afresh should be performed before the next access. More... | |
uint32_t | dp_ctrl_stat |
bool | ignore_syspwrupack |
Flag saying whether to ignore the syspwrupack flag in DAP. More... | |
uint32_t * | last_read |
Holds the pointer to the destination word for the last queued read, for use with posted AP read sequence optimization. More... | |
bool | multidrop_dp_id_valid |
TPARTNO and TDESIGNER fields of multidrop_targetsel have been configured. More... | |
bool | multidrop_instance_id_valid |
TINSTANCE field of multidrop_targetsel has been configured. More... | |
uint32_t | multidrop_targetsel |
Value to select DP in SWD multidrop mode or DP_TARGETSEL_INVALID. More... | |
bool | nu_npcx_quirks |
const struct dap_ops * | ops |
uint64_t | select |
Cache for DP SELECT and SELECT1 (ADIv6) register. More... | |
bool | select1_valid |
bool | select_dpbanksel_valid |
Partial DPBANKSEL validity for SWD only. More... | |
bool | select_valid |
Validity of DP SELECT cache. More... | |
bool | stlink_flush_ap_write |
STLINK adapter need to know if last AP operation was read or write, and in case of write has to flush it with a dummy read from DP_RDBUFF. More... | |
bool | switch_through_dormant |
Record if enter in SWD required passing through DORMANT. More... | |
struct jtag_tap * | tap |
bool | ti_be_32_quirks |
This represents an ARM Debug Interface (v5) Debug Access Port (DAP).
A DAP has two types of component: one Debug Port (DP), which is a transport agent; and at least one Access Port (AP), controlling resource access.
There are two basic DP transports: JTAG, and ARM's low pin-count SWD. Accordingly, this interface is responsible for hiding the transport differences so upper layer code can largely ignore them.
When the chip is implemented with JTAG-DP or SW-DP, the transport is fixed as JTAG or SWD, respectively. Chips incorporating SWJ-DP permit a choice made at board design time (by only using the SWD pins), or as part of setting up a debug session (if all the dual-role JTAG/SWD signals are available).
Definition at line 348 of file arm_adi_v5.h.
uint8_t adiv5_dap::ack |
Definition at line 386 of file arm_adi_v5.h.
unsigned int adiv5_dap::adi_version |
Indicates ADI version (5, 6 or 0 for unknown) being used.
Definition at line 433 of file arm_adi_v5.h.
Referenced by dap_configure(), dap_init_all(), and is_adiv6().
struct adiv5_ap adiv5_dap::ap[DP_APSEL_MAX+1] |
Definition at line 362 of file arm_adi_v5.h.
Referenced by _dap_get_ap(), dap_cleanup_all(), dap_get_debugbase(), dap_instance_init(), dap_invalidate_cache(), jtag_ap_q_bankselect(), jtag_ap_q_read(), jtag_ap_q_write(), mem_ap_init(), mem_ap_read(), mem_ap_read_buf(), mem_ap_read_buf_noincr(), mem_ap_write(), mem_ap_write_buf(), mem_ap_write_buf_noincr(), stlink_dap_ap_read(), stlink_dap_ap_write(), swd_queue_ap_bankselect(), swd_queue_ap_read(), and swd_queue_ap_write().
uint64_t adiv5_dap::apsel |
Definition at line 367 of file arm_adi_v5.h.
Referenced by COMMAND_HANDLER(), and cortex_a_examine_first().
unsigned int adiv5_dap::asize |
Definition at line 436 of file arm_adi_v5.h.
Referenced by adiv6_dap_read_baseptr(), dap_init_all(), is_ap_num_valid(), jtag_ap_q_bankselect(), swd_queue_ap_bankselect(), and vdebug_dap_bankselect().
struct list_head adiv5_dap::cmd_journal |
Definition at line 349 of file arm_adi_v5.h.
Referenced by adi_jtag_dp_scan(), dap_instance_init(), jtagdp_overrun_check(), and jtagdp_transaction_endcheck().
struct list_head adiv5_dap::cmd_pool |
Definition at line 349 of file arm_adi_v5.h.
Referenced by dap_cmd_new(), dap_cmd_release(), dap_instance_init(), and jtag_quit().
size_t adiv5_dap::cmd_pool_size |
Definition at line 358 of file arm_adi_v5.h.
Referenced by dap_cmd_new(), dap_cmd_release(), and jtag_limit_queue_size().
bool adiv5_dap::do_reconnect |
Signals that an attempt to reestablish communication afresh should be performed before the next access.
Definition at line 414 of file arm_adi_v5.h.
Referenced by dap_dp_init(), dap_dp_init_or_reconnect(), jtag_check_reconnect(), jtag_connect(), jtagdp_transaction_endcheck(), stlink_dap_check_reconnect(), stlink_dap_op_connect(), stlink_dap_run_finalize(), swd_check_reconnect(), swd_connect(), swd_connect_multidrop(), swd_connect_single(), swd_multidrop_select(), and swd_run().
uint32_t adiv5_dap::dp_ctrl_stat |
Definition at line 362 of file arm_adi_v5.h.
Referenced by dap_dp_init(), dap_dp_init_or_reconnect(), jtagdp_overrun_check(), jtagdp_transaction_endcheck(), and stlink_dap_run_finalize().
bool adiv5_dap::ignore_syspwrupack |
Flag saying whether to ignore the syspwrupack flag in DAP.
Some devices do not set this bit until later in the bringup sequence
Definition at line 418 of file arm_adi_v5.h.
Referenced by dap_configure(), dap_dp_init(), and jtagdp_transaction_endcheck().
uint32_t* adiv5_dap::last_read |
Holds the pointer to the destination word for the last queued read, for use with posted AP read sequence optimization.
Definition at line 392 of file arm_adi_v5.h.
Referenced by adi_jtag_finish_read(), dap_invalidate_cache(), jtag_ap_q_read(), jtag_ap_q_write(), jtag_dp_q_read(), jtag_dp_q_write(), swd_finish_read(), and swd_queue_ap_read().
bool adiv5_dap::multidrop_dp_id_valid |
TPARTNO and TDESIGNER fields of multidrop_targetsel have been configured.
Definition at line 423 of file arm_adi_v5.h.
Referenced by dap_configure(), and dap_is_multidrop().
bool adiv5_dap::multidrop_instance_id_valid |
TINSTANCE field of multidrop_targetsel has been configured.
Definition at line 425 of file arm_adi_v5.h.
Referenced by dap_configure(), and dap_is_multidrop().
uint32_t adiv5_dap::multidrop_targetsel |
Value to select DP in SWD multidrop mode or DP_TARGETSEL_INVALID.
Definition at line 421 of file arm_adi_v5.h.
Referenced by dap_check_config(), dap_configure(), and swd_multidrop_select_inner().
bool adiv5_dap::nu_npcx_quirks |
Definition at line 402 of file arm_adi_v5.h.
Referenced by COMMAND_HANDLER(), and mem_ap_write().
const struct dap_ops* adiv5_dap::ops |
Definition at line 349 of file arm_adi_v5.h.
Referenced by COMMAND_HANDLER(), dap_cleanup_all(), dap_dp_init_or_reconnect(), dap_init_all(), dap_queue_ap_abort(), dap_queue_ap_read(), dap_queue_ap_write(), dap_queue_dp_read(), dap_queue_dp_write(), dap_run(), dap_send_sequence(), and dap_sync().
uint64_t adiv5_dap::select |
Cache for DP SELECT and SELECT1 (ADIv6) register.
Definition at line 370 of file arm_adi_v5.h.
Referenced by adi_jtag_dp_scan(), adi_jtag_dp_scan_u32(), dap_invalidate_cache(), jtag_ap_q_bankselect(), swd_multidrop_select_inner(), swd_queue_ap_bankselect(), swd_queue_dp_bankselect(), swd_queue_dp_write_inner(), vdebug_dap_bankselect(), vdebug_dap_queue_dp_read(), and vdebug_dap_queue_dp_write().
bool adiv5_dap::select1_valid |
Definition at line 373 of file arm_adi_v5.h.
Referenced by dap_invalidate_cache(), jtag_ap_q_bankselect(), jtagdp_overrun_check(), swd_multidrop_select_inner(), swd_queue_ap_bankselect(), swd_queue_dp_write_inner(), and vdebug_dap_bankselect().
bool adiv5_dap::select_dpbanksel_valid |
Partial DPBANKSEL validity for SWD only.
ADIv6 line reset sets DP SELECT DPBANKSEL to zero, ADIv5 does not. We can rely on it for the banked DP register 0 also on ADIv5 as ADIv5 has no mapping for DP reg 0 - it is always DPIDR. It is important to avoid setting DP SELECT in connection reset state before reading DPIDR.
Definition at line 383 of file arm_adi_v5.h.
Referenced by dap_invalidate_cache(), swd_connect_single(), swd_multidrop_select_inner(), swd_queue_dp_bankselect(), and swd_queue_dp_write_inner().
bool adiv5_dap::select_valid |
Validity of DP SELECT cache.
false will force register rewrite
Definition at line 372 of file arm_adi_v5.h.
Referenced by adi_jtag_dp_scan_u32(), dap_invalidate_cache(), jtag_ap_q_bankselect(), jtagdp_overrun_check(), swd_multidrop_select_inner(), swd_queue_ap_bankselect(), swd_queue_dp_bankselect(), swd_queue_dp_write_inner(), vdebug_dap_bankselect(), vdebug_dap_queue_dp_read(), and vdebug_dap_queue_dp_write().
bool adiv5_dap::stlink_flush_ap_write |
STLINK adapter need to know if last AP operation was read or write, and in case of write has to flush it with a dummy read from DP_RDBUFF.
Definition at line 408 of file arm_adi_v5.h.
Referenced by stlink_dap_ap_read(), stlink_dap_ap_write(), and stlink_dap_run_finalize().
bool adiv5_dap::switch_through_dormant |
Record if enter in SWD required passing through DORMANT.
Definition at line 430 of file arm_adi_v5.h.
Referenced by swd_connect_single().
struct jtag_tap* adiv5_dap::tap |
Definition at line 360 of file arm_adi_v5.h.
Referenced by adi_jtag_dp_scan_cmd(), adiv5_jim_configure_ext(), dap_configure(), dap_create(), and dap_init_all().
bool adiv5_dap::ti_be_32_quirks |
Definition at line 398 of file arm_adi_v5.h.
Referenced by COMMAND_HANDLER(), mem_ap_init(), mem_ap_read(), and mem_ap_write().