1 |
4 |
nyawn |
#ifndef _CHAIN_COMMANDS_H_
|
2 |
|
|
#define _CHAIN_COMMANDS_H_
|
3 |
|
|
|
4 |
13 |
nyawn |
#include <stdint.h> // for uint32_t
|
5 |
4 |
nyawn |
|
6 |
|
|
// Discover devices on JTAG chain
|
7 |
13 |
nyawn |
int jtag_enumerate_chain(uint32_t **id_array, int *num_devices);
|
8 |
4 |
nyawn |
|
9 |
|
|
// Functions to set configuration for the JTAG chain
|
10 |
|
|
void config_set_IR_size(int size);
|
11 |
|
|
void config_set_IR_prefix_bits(int bits);
|
12 |
|
|
void config_set_IR_postfix_bits(int bits);
|
13 |
|
|
void config_set_DR_prefix_bits(int bits);
|
14 |
|
|
void config_set_DR_postfix_bits(int bits);
|
15 |
|
|
void config_set_debug_cmd(unsigned int cmd);
|
16 |
|
|
void config_set_alt_vjtag(unsigned char enable);
|
17 |
|
|
void config_set_vjtag_cmd_vir(unsigned int cmd);
|
18 |
|
|
void config_set_vjtag_cmd_vdr(unsigned int cmd);
|
19 |
|
|
void config_set_xilinx_bscan(unsigned char enable);
|
20 |
|
|
|
21 |
|
|
// Operations on the JTAG TAP
|
22 |
|
|
int tap_reset(void);
|
23 |
|
|
int tap_enable_debug_module(void);
|
24 |
|
|
int tap_set_ir(int ir);
|
25 |
|
|
|
26 |
|
|
// JTAG operations
|
27 |
|
|
int jtag_get_idcode(uint32_t cmd, uint32_t *idcode);
|
28 |
|
|
|
29 |
|
|
// API for GDB
|
30 |
|
|
int dbg_wb_read32(unsigned long adr, unsigned long *data);
|
31 |
|
|
int dbg_wb_write32(unsigned long adr, unsigned long data);
|
32 |
|
|
int dbg_wb_write16(unsigned long adr, uint16_t data);
|
33 |
|
|
int dbg_wb_write8(unsigned long adr, uint8_t data);
|
34 |
|
|
int dbg_wb_read_block32(unsigned long adr, unsigned long *data, int len);
|
35 |
|
|
int dbg_wb_read_block16(unsigned long adr, uint16_t *data, int len);
|
36 |
|
|
int dbg_wb_read_block8(unsigned long adr, uint8_t *data, int len);
|
37 |
|
|
int dbg_wb_write_block32(unsigned long adr, unsigned long *data, int len);
|
38 |
|
|
int dbg_wb_write_block16(unsigned long adr, uint16_t *data, int len);
|
39 |
|
|
int dbg_wb_write_block8(unsigned long adr, uint8_t *data, int len);
|
40 |
|
|
int dbg_cpu0_read(unsigned long adr, unsigned long *data);
|
41 |
|
|
int dbg_cpu0_read_block(unsigned long adr, unsigned long *data, int count);
|
42 |
|
|
int dbg_cpu0_write(unsigned long adr, unsigned long data);
|
43 |
|
|
int dbg_cpu0_write_block(unsigned long adr, unsigned long *data, int count);
|
44 |
|
|
int dbg_cpu0_write_ctrl(unsigned long adr, unsigned char data);
|
45 |
|
|
int dbg_cpu0_read_ctrl(unsigned long adr, unsigned char *data);
|
46 |
|
|
//int dbg_cpu1_read(unsigned long adr, unsigned long *data);
|
47 |
|
|
//int dbg_cpu1_write(unsigned long adr, unsigned long data);
|
48 |
|
|
//int dbg_cpu1_write_reg(unsigned long adr, unsigned char data);
|
49 |
|
|
//int dbg_cpu1_read_ctrl(unsigned long adr, unsigned char *data);
|
50 |
|
|
|
51 |
|
|
#endif
|