59 int handle_breakpoints,
int debug_execution)
66 int handle_breakpoints)
107 uint8_t buf[2] = { 0 };
121 int32_t
size,
bool rnw)
124 uint8_t
cmd[8] = { 0 };
158 const uint8_t *value)
176 "; size %" PRIu32
"; count %" PRIu32, address,
size,
count);
198 "; size %" PRIu32
"; count %" PRIu32, address,
size,
count);
static void buf_set_u64(uint8_t *_buffer, unsigned first, unsigned num, uint64_t value)
Sets num bits in _buffer, starting at the first bit, using the bits in value.
static uint32_t buf_get_u32(const uint8_t *_buffer, unsigned first, unsigned num)
Retrieves num bits from _buffer, starting at the first bit, returning the bits in a 32-bit word.
static void buf_set_u32(uint8_t *_buffer, unsigned first, unsigned num, uint32_t value)
Sets num bits in _buffer, starting at the first bit, using the bits in value.
#define ERROR_COMMAND_SYNTAX_ERROR
int jtag_execute_queue(void)
For software FIFO implementations, the queued commands can be executed during this call or earlier.
void jtag_add_ir_scan(struct jtag_tap *active, struct scan_field *in_fields, tap_state_t state)
Generate an IR SCAN with a list of scan fields with one entry for each enabled TAP.
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.
The JTAG interface can be implemented with a software or hardware fifo.
#define LOG_DEBUG(expr ...)
static int ls1_sap_target_create(struct target *target, Jim_Interp *interp)
static int ls1_sap_resume(struct target *target, int current, target_addr_t address, int handle_breakpoints, int debug_execution)
static int ls1_sap_read_memory(struct target *target, target_addr_t address, uint32_t size, uint32_t count, uint8_t *buffer)
static void ls1_sap_memory_cmd(struct jtag_tap *tap, uint32_t address, int32_t size, bool rnw)
static void ls1_sap_set_addr_high(struct jtag_tap *tap, uint16_t addr_high)
static void ls1_sap_memory_write(struct jtag_tap *tap, uint32_t size, const uint8_t *value)
static int ls1_sap_arch_state(struct target *target)
static int ls1_sap_deassert_reset(struct target *target)
static int ls1_sap_halt(struct target *target)
static int ls1_sap_init_target(struct command_context *cmd_ctx, struct target *target)
static void ls1_sap_set_instr(struct jtag_tap *tap, uint32_t new_instr)
static int ls1_sap_step(struct target *target, int current, target_addr_t address, int handle_breakpoints)
static int ls1_sap_assert_reset(struct target *target)
static int ls1_sap_poll(struct target *target)
struct target_type ls1_sap_target
static int ls1_sap_write_memory(struct target *target, target_addr_t address, uint32_t size, uint32_t count, const uint8_t *buffer)
static void ls1_sap_memory_read(struct jtag_tap *tap, uint32_t size, uint8_t *value)
size_t size
Size of the control block search area.
uint8_t * cur_instr
current instruction
int ir_length
size of instruction register
This structure defines a single scan field in the scan.
int num_bits
The number of bits this field specifies.
uint8_t * in_value
A pointer to a 32-bit memory location for data scanned out.
uint8_t * check_value
The value used to check the data scanned out.
const uint8_t * out_value
A pointer to value to be scanned into the device.
uint8_t * check_mask
The mask to go with check_value.
This holds methods shared between all instances of a given target type.
const char * name
Name of this type of target.
#define DIV_ROUND_UP(m, n)
Rounds m up to the nearest multiple of n using division.