From 75cdc8a260e081752698f374d4cd6e97e84eb6cb Mon Sep 17 00:00:00 2001 From: David Brownell Date: Fri, 23 Oct 2009 12:28:03 -0700 Subject: [PATCH] arm9tdmi vector_catch: reserved means "don't use" Bit 5 shouldn't be used. Remove all support for modifying it. Matches the exception vector table, of course ... more than one bootloader uses that non-vector to help distinguish valid boot images from random garbage in flash. --- doc/openocd.texi | 4 +++- src/target/arm9tdmi.c | 3 +-- src/target/arm9tdmi.h | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/doc/openocd.texi b/doc/openocd.texi index c9e48bfa9b..676099429d 100644 --- a/doc/openocd.texi +++ b/doc/openocd.texi @@ -5460,6 +5460,8 @@ 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. +@c 23-oct-2009: doesn't work _consistently_ ... as if the ICE +@c versions have different rules about when they commit writes. @anchor{arm9tdmi vector_catch} @deffn Command {arm9tdmi vector_catch} [@option{all}|@option{none}|list] @@ -5476,7 +5478,7 @@ vector catch hardware to intercept @option{all} of the hardware vectors, @option{none} of them, or a list with one or more of the following: -@option{reset} @option{undef} @option{swi} @option{pabt} @option{dabt} @option{reserved} +@option{reset} @option{undef} @option{swi} @option{pabt} @option{dabt} @option{irq} @option{fiq}. @end deffn diff --git a/src/target/arm9tdmi.c b/src/target/arm9tdmi.c index f941922a56..12b68ae564 100644 --- a/src/target/arm9tdmi.c +++ b/src/target/arm9tdmi.c @@ -95,7 +95,6 @@ static arm9tdmi_vector_t arm9tdmi_vectors[] = {"swi", ARM9TDMI_SWI_VECTOR}, {"pabt", ARM9TDMI_PABT_VECTOR}, {"dabt", ARM9TDMI_DABT_VECTOR}, - {"reserved", ARM9TDMI_RESERVED_VECTOR}, {"irq", ARM9TDMI_IRQ_VECTOR}, {"fiq", ARM9TDMI_FIQ_VECTOR}, {0, 0}, @@ -1067,7 +1066,7 @@ int arm9tdmi_register_commands(struct command_context_s *cmd_ctx) "arm9tdmi specific commands"); register_command(cmd_ctx, arm9tdmi_cmd, "vector_catch", handle_arm9tdmi_catch_vectors_command, COMMAND_EXEC, - "arm9 vector_catch [all|none|reset|undef|swi|pabt|dabt|reserved|irq|fiq] - separate vectors to catch by space"); + "arm9 vector_catch [all|none|reset|undef|swi|pabt|dabt|irq|fiq] - separate vectors to catch by space"); diff --git a/src/target/arm9tdmi.h b/src/target/arm9tdmi.h index 28be9b6cd3..9dfa886310 100644 --- a/src/target/arm9tdmi.h +++ b/src/target/arm9tdmi.h @@ -47,7 +47,7 @@ enum arm9tdmi_vector ARM9TDMI_SWI_VECTOR = 0x04, ARM9TDMI_PABT_VECTOR = 0x08, ARM9TDMI_DABT_VECTOR = 0x10, - ARM9TDMI_RESERVED_VECTOR = 0x20, + /* BIT(5) reserved -- must be zero */ ARM9TDMI_IRQ_VECTOR = 0x40, ARM9TDMI_FIQ_VECTOR = 0x80, }; -- 2.30.2