1 /* SPDX-License-Identifier: GPL-2.0-or-later */
3 /***************************************************************************
4 * Copyright (C) 2013 Franck Jullien *
6 ***************************************************************************/
8 #ifndef OPENOCD_TARGET_OPENRISC_OR1K_DU_H
9 #define OPENOCD_TARGET_OPENRISC_OR1K_DU_H
19 #define CPU_NOT_RESET 1
21 int or1k_du_adv_register(void);
23 /* Linear list over all available or1k debug unit */
24 extern struct list_head du_list;
28 struct list_head list;
31 int (*or1k_jtag_init)(struct or1k_jtag *jtag_info);
33 int (*or1k_is_cpu_running)(struct or1k_jtag *jtag_info, int *running);
35 int (*or1k_cpu_stall)(struct or1k_jtag *jtag_info, int action);
37 int (*or1k_cpu_reset)(struct or1k_jtag *jtag_info, int action);
39 int (*or1k_jtag_read_cpu)(struct or1k_jtag *jtag_info,
40 uint32_t addr, int count, uint32_t *value);
42 int (*or1k_jtag_write_cpu)(struct or1k_jtag *jtag_info,
43 uint32_t addr, int count, const uint32_t *value);
45 int (*or1k_jtag_read_memory)(struct or1k_jtag *jtag_info, uint32_t addr, uint32_t size,
46 int count, uint8_t *buffer);
48 int (*or1k_jtag_write_memory)(struct or1k_jtag *jtag_info, uint32_t addr, uint32_t size,
49 int count, const uint8_t *buffer);
52 static inline struct or1k_du *or1k_jtag_to_du(struct or1k_jtag *jtag_info)
54 return (struct or1k_du *)jtag_info->du_core;
57 static inline struct or1k_du *or1k_to_du(struct or1k_common *or1k)
59 struct or1k_jtag *jtag = &or1k->jtag;
60 return (struct or1k_du *)jtag->du_core;
63 int or1k_adv_jtag_jsp_xfer(struct or1k_jtag *jtag_info,
64 int *out_len, unsigned char *out_buffer,
65 int *in_len, unsigned char *in_buffer);
67 #endif /* OPENOCD_TARGET_OPENRISC_OR1K_DU_H */