14 #ifndef OPENOCD_TARGET_EMBEDDEDICE_H
15 #define OPENOCD_TARGET_EMBEDDEDICE_H
86 uint8_t *check_value, uint8_t *check_mask);
103 uint8_t out_reg_addr = (1 << 5) | reg_addr;
104 uint8_t out_value[4];
109 { .num_bits = 6, .out_value = &out_reg_addr },
116 int little,
int count);
static void buf_set_u32(uint8_t *_buffer, unsigned int first, unsigned int num, uint32_t value)
Sets num bits in _buffer, starting at the first bit, using the bits in value.
int embeddedice_handshake(struct arm_jtag *jtag_info, int hsbit, uint32_t timeout)
Poll DCC control register until read or write handshake completes.
void embeddedice_write_dcc(struct jtag_tap *tap, int reg_addr, const uint8_t *buffer, int little, int count)
This is an inner loop of the open loop DCC write of data to target.
@ EICE_DBG_STATUS_SYSCOMP
void embeddedice_set_reg(struct reg *reg, uint32_t value)
Queue a write for an EmbeddedICE register, updating the register cache.
static void embeddedice_write_reg_inner(struct jtag_tap *tap, int reg_addr, uint32_t value)
int embeddedice_send(struct arm_jtag *jtag_info, uint32_t *data, uint32_t size)
Send a block of size 32-bit words to the DCC.
@ EICE_DBG_CONTROL_DBGACK
@ EICE_DBG_CONTROL_ICEDIS
@ EICE_DBG_CONTROL_INTDIS
void embeddedice_free_reg_cache(struct reg_cache *reg_cache)
Free all memory allocated for EmbeddedICE register cache.
int embeddedice_setup(struct target *target)
Initialize EmbeddedICE module, if needed.
struct reg_cache * embeddedice_build_reg_cache(struct target *target, struct arm7_9_common *arm7_9)
Probe EmbeddedICE module and set up local records of its registers.
void embeddedice_write_reg(struct reg *reg, uint32_t value)
Queue a write for an EmbeddedICE register, bypassing the register cache.
int embeddedice_receive(struct arm_jtag *jtag_info, uint32_t *data, uint32_t size)
Receive a block of size 32-bit words from the DCC.
void embeddedice_store_reg(struct reg *reg)
Queue a write for an EmbeddedICE register, using cached value.
int embeddedice_read_reg(struct reg *reg)
Queue a read for an EmbeddedICE register into the register cache, not checking the value read.
int embeddedice_read_reg_w_check(struct reg *reg, uint8_t *check_value, uint8_t *check_mask)
Queue a read for an EmbeddedICE register into the register cache, optionally checking the value read.
void jtag_add_dr_scan(struct jtag_tap *active, int in_num_fields, const struct scan_field *in_fields, tap_state_t state)
Generate a DR SCAN using the fields passed to the function.
size_t size
Size of the control block search area.
Structure for items that are common between both ARM7 and ARM9 targets.
struct arm_jtag * jtag_info
This structure defines a single scan field in the scan.
const uint8_t * out_value
A pointer to value to be scanned into the device.
unsigned int num_bits
The number of bits this field specifies.