1 /* SPDX-License-Identifier: GPL-2.0-or-later */
3 /***************************************************************************
4 * Copyright (C) 2013 Andes Technology *
5 * Hsiangkai Wang <hkwang@andestech.com> *
6 ***************************************************************************/
8 #ifndef OPENOCD_TARGET_NDS32_V3_COMMON_H
9 #define OPENOCD_TARGET_NDS32_V3_COMMON_H
13 struct nds32_v3_common_callback
{
14 int (*check_interrupt_stack
)(struct nds32
*nds32
);
15 int (*restore_interrupt_stack
)(struct nds32
*nds32
);
16 int (*activate_hardware_breakpoint
)(struct target
*target
);
17 int (*activate_hardware_watchpoint
)(struct target
*target
);
18 int (*deactivate_hardware_breakpoint
)(struct target
*target
);
19 int (*deactivate_hardware_watchpoint
)(struct target
*target
);
22 void nds32_v3_common_register_callback(struct nds32_v3_common_callback
*callback
);
23 int nds32_v3_target_request_data(struct target
*target
,
24 uint32_t size
, uint8_t *buffer
);
25 int nds32_v3_checksum_memory(struct target
*target
,
26 target_addr_t address
, uint32_t count
, uint32_t *checksum
);
27 int nds32_v3_hit_watchpoint(struct target
*target
,
28 struct watchpoint
**hit_watchpoint
);
29 int nds32_v3_target_create_common(struct target
*target
, struct nds32
*nds32
);
30 int nds32_v3_run_algorithm(struct target
*target
,
32 struct mem_param
*mem_params
,
34 struct reg_param
*reg_params
,
35 target_addr_t entry_point
,
36 target_addr_t exit_point
,
39 int nds32_v3_read_buffer(struct target
*target
, target_addr_t address
,
40 uint32_t size
, uint8_t *buffer
);
41 int nds32_v3_write_buffer(struct target
*target
, target_addr_t address
,
42 uint32_t size
, const uint8_t *buffer
);
43 int nds32_v3_read_memory(struct target
*target
, target_addr_t address
,
44 uint32_t size
, uint32_t count
, uint8_t *buffer
);
45 int nds32_v3_write_memory(struct target
*target
, target_addr_t address
,
46 uint32_t size
, uint32_t count
, const uint8_t *buffer
);
47 int nds32_v3_init_target(struct command_context
*cmd_ctx
,
48 struct target
*target
);
50 #endif /* OPENOCD_TARGET_NDS32_V3_COMMON_H */