X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=src%2Ftarget%2Fnds32.h;h=141dbf4cb9bd10c2497a58173df8ff0bddbef1b9;hp=8acd915f0c1899b5d0d5d7c04305859f84187d5f;hb=fa765f137460181fd84529df82309a12c376e71a;hpb=0a4c8990c29e61fd0c2796486519cdb256b8da3b
diff --git a/src/target/nds32.h b/src/target/nds32.h
index 8acd915f0c..141dbf4cb9 100644
--- a/src/target/nds32.h
+++ b/src/target/nds32.h
@@ -13,13 +13,11 @@
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
- * along with this program; if not, write to the *
- * Free Software Foundation, Inc., *
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *
+ * along with this program. If not, see . *
***************************************************************************/
-#ifndef __NDS32_H__
-#define __NDS32_H__
+#ifndef OPENOCD_TARGET_NDS32_H
+#define OPENOCD_TARGET_NDS32_H
#include
#include "target.h"
@@ -296,6 +294,8 @@ struct nds32 {
/** Record syscall ID for other operations to do special processing for target */
int active_syscall_id;
+ struct breakpoint syscall_break;
+
/** Flag reporting whether global stop is active. */
bool global_stop;
@@ -309,6 +309,9 @@ struct nds32 {
* handler, it should be true. */
bool keep_target_edm_ctl;
+ /* Value of $EDM_CTL before target enters debug mode */
+ uint32_t backup_edm_ctl;
+
/** always use word-aligned address to access memory */
bool word_access_mem;
@@ -346,6 +349,9 @@ struct nds32 {
* hardware breakpoints or not in ROM */
bool auto_convert_hw_bp;
+ /* Flag to indicate the target is attached by debugger or not */
+ bool attached;
+
/** Backpointer to the target. */
struct target *target;
@@ -354,8 +360,7 @@ struct nds32 {
struct nds32_reg {
int32_t num;
- uint32_t value;
- uint64_t value_64;
+ uint8_t value[8];
struct target *target;
struct nds32 *nds32;
bool enable;
@@ -383,8 +388,6 @@ extern int nds32_write_buffer(struct target *target, uint32_t address,
uint32_t size, const uint8_t *buffer);
extern int nds32_read_buffer(struct target *target, uint32_t address,
uint32_t size, uint8_t *buffer);
-extern int nds32_bulk_write_memory(struct target *target,
- uint32_t address, uint32_t count, const uint8_t *buffer);
extern int nds32_read_memory(struct target *target, uint32_t address,
uint32_t size, uint32_t count, uint8_t *buffer);
extern int nds32_write_memory(struct target *target, uint32_t address,
@@ -397,23 +400,23 @@ extern int nds32_get_mapped_reg(struct nds32 *nds32, unsigned regnum, uint32_t *
extern int nds32_set_mapped_reg(struct nds32 *nds32, unsigned regnum, uint32_t value);
extern int nds32_edm_config(struct nds32 *nds32);
-extern int nds32_cache_sync(struct target *target, uint32_t address, uint32_t length);
+extern int nds32_cache_sync(struct target *target, target_addr_t address, uint32_t length);
extern int nds32_mmu(struct target *target, int *enabled);
-extern int nds32_virtual_to_physical(struct target *target, uint32_t address,
- uint32_t *physical);
-extern int nds32_read_phys_memory(struct target *target, uint32_t address,
+extern int nds32_virtual_to_physical(struct target *target, target_addr_t address,
+ target_addr_t *physical);
+extern int nds32_read_phys_memory(struct target *target, target_addr_t address,
uint32_t size, uint32_t count, uint8_t *buffer);
-extern int nds32_write_phys_memory(struct target *target, uint32_t address,
+extern int nds32_write_phys_memory(struct target *target, target_addr_t address,
uint32_t size, uint32_t count, const uint8_t *buffer);
extern uint32_t nds32_nextpc(struct nds32 *nds32, int current, uint32_t address);
extern int nds32_examine_debug_reason(struct nds32 *nds32);
extern int nds32_step(struct target *target, int current,
- uint32_t address, int handle_breakpoints);
+ target_addr_t address, int handle_breakpoints);
extern int nds32_target_state(struct nds32 *nds32, enum target_state *state);
extern int nds32_halt(struct target *target);
extern int nds32_poll(struct target *target);
extern int nds32_resume(struct target *target, int current,
- uint32_t address, int handle_breakpoints, int debug_execution);
+ target_addr_t address, int handle_breakpoints, int debug_execution);
extern int nds32_assert_reset(struct target *target);
extern int nds32_init(struct nds32 *nds32);
extern int nds32_get_gdb_fileio_info(struct target *target, struct gdb_fileio_info *fileio_info);
@@ -422,6 +425,8 @@ extern int nds32_gdb_fileio_write_memory(struct nds32 *nds32, uint32_t address,
extern int nds32_gdb_fileio_end(struct target *target, int retcode, int fileio_errno, bool ctrl_c);
extern int nds32_reset_halt(struct nds32 *nds32);
extern int nds32_login(struct nds32 *nds32);
+extern int nds32_profiling(struct target *target, uint32_t *samples,
+ uint32_t max_num_samples, uint32_t *num_samples, uint32_t seconds);
/** Convert target handle to generic Andes target state handle. */
static inline struct nds32 *target_to_nds32(struct target *target)
@@ -449,4 +454,4 @@ static inline bool nds32_reach_max_interrupt_level(struct nds32 *nds32)
return nds32->max_interrupt_level == nds32->current_interrupt_level;
}
-#endif /* __NDS32_H__ */
+#endif /* OPENOCD_TARGET_NDS32_H */