From cb7ad25c0404147a0a60f04c3b8fa8ac7386bb29 Mon Sep 17 00:00:00 2001 From: dbrownell Date: Thu, 17 Sep 2009 08:02:43 +0000 Subject: [PATCH] The "arm9tdmi.c" file is more of a generic ARM9 support file: - update comments to say so. - update docs to clarify that the "arm9tdmi" command prefix is a misnomer. - bugfix some messages that wrongly assume only ARM9TDMI based processors use this code. git-svn-id: svn://svn.berlios.de/openocd/trunk@2719 b42882b7-edfa-0310-969c-e2dbd0fdcd60 --- doc/openocd.texi | 13 +++++++++---- src/target/arm9tdmi.c | 20 +++++++++++++++++--- 2 files changed, 26 insertions(+), 7 deletions(-) diff --git a/doc/openocd.texi b/doc/openocd.texi index 9960468c0..0b6ecf028 100644 --- a/doc/openocd.texi +++ b/doc/openocd.texi @@ -4932,13 +4932,18 @@ Translate a virtual address @var{va} to a physical address and display the result. @end deffn -@subsection ARM9TDMI specific commands -@cindex ARM9TDMI +@subsection ARM9 specific commands +@cindex ARM9 -Many ARM9-family CPUs are built around ARM9TDMI integer cores, -or processors resembling ARM9TDMI, and can use these commands. +ARM9-family cores are built around ARM9TDMI or ARM9E (including ARM9EJS) +integer processors. Such cores include the ARM920T, ARM926EJ-S, and ARM966. +For historical reasons, one command shared by these cores starts +with the @command{arm9tdmi} prefix. +This is true even for ARM9E based processors, which implement the +ARMv5TE architecture instead of ARMv4T. + @c 9-june-2009: tried this on arm920t, it didn't work. @c no-params always lists nothing caught, and that's how it acts. diff --git a/src/target/arm9tdmi.c b/src/target/arm9tdmi.c index 2d2e47f10..c7fd7b29c 100644 --- a/src/target/arm9tdmi.c +++ b/src/target/arm9tdmi.c @@ -31,6 +31,16 @@ #include "target_type.h" +/* + * NOTE: this holds code that's used with multiple ARM9 processors: + * - ARM9TDMI (ARMv4T) ... in ARM920, ARM922, and ARM940 cores + * - ARM9E-S (ARMv5TE) ... in ARM946, ARM966, and ARM968 cores + * - ARM9EJS (ARMv5TEJ) ... in ARM926 core + * + * In short, the file name is a misnomer ... it is NOT specific to + * that first generation ARM9 processor, or cores using it. + */ + #if 0 #define _DEBUG_INSTRUCTION_EXECUTION_ #endif @@ -967,8 +977,12 @@ int arm9tdmi_register_commands(struct command_context_s *cmd_ctx) command_t *arm9tdmi_cmd; retval = arm7_9_register_commands(cmd_ctx); - arm9tdmi_cmd = register_command(cmd_ctx, NULL, "arm9tdmi", NULL, COMMAND_ANY, "arm9tdmi specific commands"); - register_command(cmd_ctx, arm9tdmi_cmd, "vector_catch", handle_arm9tdmi_catch_vectors_command, COMMAND_EXEC, "catch arm920t vectors ['all'|'none'|'']"); + arm9tdmi_cmd = register_command(cmd_ctx, NULL, "arm9tdmi", + NULL, COMMAND_ANY, + "arm9tdmi specific commands"); + register_command(cmd_ctx, arm9tdmi_cmd, "vector_catch", + handle_arm9tdmi_catch_vectors_command, COMMAND_EXEC, + "catch arm9 vectors ['all'|'none'|'']"); return retval; } @@ -985,7 +999,7 @@ int handle_arm9tdmi_catch_vectors_command(struct command_context_s *cmd_ctx, cha if (arm9tdmi_get_arch_pointers(target, &armv4_5, &arm7_9, &arm9tdmi) != ERROR_OK) { - command_print(cmd_ctx, "current target isn't an ARM9TDMI based target"); + command_print(cmd_ctx, "current target isn't an ARM9 based target"); return ERROR_OK; }