X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=src%2Ftarget%2Farm966e.c;h=b5b6825cfe7716a07ee80b8ab2b6f5181acea1ae;hp=3112e0fcdf4f8b7b60d22dfc4f860bedef5eda68;hb=4eadb146c18d9d5faaefc9c258d2aa715e3a1596;hpb=0d7d64b5e9a463f63deb19f00efa14e6e5b1c34e diff --git a/src/target/arm966e.c b/src/target/arm966e.c index 3112e0fcdf..b5b6825cfe 100644 --- a/src/target/arm966e.c +++ b/src/target/arm966e.c @@ -2,6 +2,9 @@ * Copyright (C) 2005 by Dominic Rath * * Dominic.Rath@gmx.de * * * + * Copyright (C) 2008 by Spencer Oliver * + * spen@spen-soft.co.uk * + * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * @@ -43,7 +46,7 @@ int arm966e_register_commands(struct command_context_s *cmd_ctx); /* forward declarations */ -int arm966e_target_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct target_s *target); +int arm966e_target_create(struct target_s *target, Jim_Interp *interp); int arm966e_init_target(struct command_context_s *cmd_ctx, struct target_s *target); int arm966e_quit(void); @@ -70,6 +73,7 @@ target_type_t arm966e_target = .write_memory = arm7_9_write_memory, .bulk_write_memory = arm7_9_bulk_write_memory, .checksum_memory = arm7_9_checksum_memory, + .blank_check_memory = arm7_9_blank_check_memory, .run_algorithm = armv4_5_run_algorithm, @@ -79,7 +83,7 @@ target_type_t arm966e_target = .remove_watchpoint = arm7_9_remove_watchpoint, .register_commands = arm966e_register_commands, - .target_command = arm966e_target_command, + .target_create = arm966e_target_create, .init_target = arm966e_init_target, .examine = arm9tdmi_examine, .quit = arm966e_quit, @@ -98,7 +102,7 @@ int arm966e_quit(void) return ERROR_OK; } -int arm966e_init_arch_info(target_t *target, arm966e_common_t *arm966e, int chain_pos, char *variant) +int arm966e_init_arch_info(target_t *target, arm966e_common_t *arm966e, int chain_pos, const char *variant) { arm9tdmi_common_t *arm9tdmi = &arm966e->arm9tdmi_common; arm7_9_common_t *arm7_9 = &arm9tdmi->arm7_9_common; @@ -114,33 +118,14 @@ int arm966e_init_arch_info(target_t *target, arm966e_common_t *arm966e, int chai arm7_9->arm_bkpt = ARMV5_BKPT(0x0); arm7_9->thumb_bkpt = ARMV5_T_BKPT(0x0) & 0xffff; - arm7_9->sw_bkpts_use_wp = 0; - arm7_9->sw_bkpts_enabled = 1; - return ERROR_OK; } -int arm966e_target_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct target_s *target) +int arm966e_target_create( struct target_s *target, Jim_Interp *interp ) { - int chain_pos; - char *variant = NULL; - arm966e_common_t *arm966e = malloc(sizeof(arm966e_common_t)); - memset(arm966e, 0, sizeof(*arm966e)); - - if (argc < 4) - { - LOG_ERROR("'target arm966e' requires at least one additional argument"); - exit(-1); - } - - chain_pos = strtoul(args[3], NULL, 0); - - if (argc >= 5) - variant = args[4]; - - LOG_DEBUG("chain_pos: %i, variant: %s", chain_pos, variant); + arm966e_common_t *arm966e = calloc(1,sizeof(arm966e_common_t)); - arm966e_init_arch_info(target, arm966e, chain_pos, variant); + arm966e_init_arch_info(target, arm966e, target->chain_position, target->variant); return ERROR_OK; }