X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=src%2Ftarget%2Farm920t.c;h=81f5c6af982da2e6bc70459815f0b61de85ff5bf;hp=dd9fae33ded381eed4eca46e9bb1b26d6decf3d8;hb=a585bdf7269ce5c861c83ee3294ba1f074e9c877;hpb=9be533566ea077c32bf57eb0441c8a4ae2a7c9cc diff --git a/src/target/arm920t.c b/src/target/arm920t.c index dd9fae33de..81f5c6af98 100644 --- a/src/target/arm920t.c +++ b/src/target/arm920t.c @@ -460,6 +460,25 @@ int arm920t_arch_state(struct target_s *target) return ERROR_OK; } +static int arm920_mmu(struct target_s *target, int *enabled) +{ + if (target->state != TARGET_HALTED) { + LOG_ERROR("%s: target not halted", __func__); + return ERROR_TARGET_INVALID; + } + + *enabled = target_to_arm920(target)->armv4_5_mmu.mmu_enabled; + return ERROR_OK; +} + +static int arm920_virt2phys(struct target_s *target, + uint32_t virt, uint32_t *phys) +{ + /** @todo Implement this! */ + LOG_ERROR("%s: not implemented", __func__); + return ERROR_FAIL; +} + /** Reads a buffer, in the specified word size, with current MMU settings. */ int arm920t_read_memory(struct target_s *target, uint32_t address, uint32_t size, uint32_t count, uint8_t *buffer) { @@ -643,8 +662,7 @@ static int arm920t_target_create(struct target_s *target, Jim_Interp *interp) return arm920t_init_arch_info(target, arm920t, target->tap); } -static int arm920t_handle_read_cache_command(struct command_context_s *cmd_ctx, - char *cmd, char **args, int argc) +COMMAND_HANDLER(arm920t_handle_read_cache_command) { int retval = ERROR_OK; target_t *target = get_current_target(cmd_ctx); @@ -890,8 +908,7 @@ static int arm920t_handle_read_cache_command(struct command_context_s *cmd_ctx, return ERROR_OK; } -static int arm920t_handle_read_mmu_command(struct command_context_s *cmd_ctx, - char *cmd, char **args, int argc) +COMMAND_HANDLER(arm920t_handle_read_mmu_command) { int retval = ERROR_OK; target_t *target = get_current_target(cmd_ctx); @@ -1174,8 +1191,7 @@ static int arm920t_handle_read_mmu_command(struct command_context_s *cmd_ctx, return ERROR_OK; } -static int arm920t_handle_cp15_command(struct command_context_s *cmd_ctx, - char *cmd, char **args, int argc) +COMMAND_HANDLER(arm920t_handle_cp15_command) { int retval; target_t *target = get_current_target(cmd_ctx); @@ -1187,7 +1203,7 @@ static int arm920t_handle_cp15_command(struct command_context_s *cmd_ctx, if (target->state != TARGET_HALTED) { - command_print(cmd_ctx, "target must be stopped for \"%s\" command", cmd); + command_print(cmd_ctx, "target must be stopped for \"%s\" command", CMD_NAME); return ERROR_OK; } @@ -1228,8 +1244,7 @@ static int arm920t_handle_cp15_command(struct command_context_s *cmd_ctx, return ERROR_OK; } -static int arm920t_handle_cp15i_command(struct command_context_s *cmd_ctx, - char *cmd, char **args, int argc) +COMMAND_HANDLER(arm920t_handle_cp15i_command) { int retval; target_t *target = get_current_target(cmd_ctx); @@ -1242,7 +1257,7 @@ static int arm920t_handle_cp15i_command(struct command_context_s *cmd_ctx, if (target->state != TARGET_HALTED) { - command_print(cmd_ctx, "target must be stopped for \"%s\" command", cmd); + command_print(cmd_ctx, "target must be stopped for \"%s\" command", CMD_NAME); return ERROR_OK; } @@ -1296,8 +1311,7 @@ static int arm920t_handle_cp15i_command(struct command_context_s *cmd_ctx, return ERROR_OK; } -static int arm920t_handle_cache_info_command(struct command_context_s *cmd_ctx, - char *cmd, char **args, int argc) +COMMAND_HANDLER(arm920t_handle_cache_info_command) { int retval; target_t *target = get_current_target(cmd_ctx); @@ -1389,6 +1403,9 @@ target_type_t arm920t_target = .write_memory = arm920t_write_memory, .read_phys_memory = arm920t_read_phys_memory, .write_phys_memory = arm920t_write_phys_memory, + .mmu = arm920_mmu, + .virt2phys = arm920_virt2phys, + .bulk_write_memory = arm7_9_bulk_write_memory, .checksum_memory = arm7_9_checksum_memory, .blank_check_memory = arm7_9_blank_check_memory,