]> git.sur5r.net Git - openocd/blobdiff - src/flash/nor/lpc2000.c
stellaris: avoid chip writes
[openocd] / src / flash / nor / lpc2000.c
index 0caf3e09b80663ba215e57a5c5ed3a10fe7d9464..ae0a384b6febff60c80ae9a81de35fe9f15b2ad4 100644 (file)
@@ -29,6 +29,7 @@
 #include "lpc2000.h"
 #include <helper/binarybuffer.h>
 #include <target/algorithm.h>
+#include <target/arm_opcodes.h>
 #include <target/armv7m.h>
 
 
@@ -263,8 +264,10 @@ static int lpc2000_iap_call(struct flash_bank *bank, int code, uint32_t param_ta
                switch(lpc2000_info->variant)
                {
                        case lpc1700:
-                               target_buffer_set_u32(target, jump_gate, ARMV7M_T_BX(12));
-                               target_buffer_set_u32(target, jump_gate + 4, ARMV7M_T_B(0xfffffe));
+                               target_buffer_set_u32(target, jump_gate,
+                                               ARMV4_5_T_BX(12));
+                               target_buffer_set_u32(target, jump_gate + 4,
+                                               ARMV4_5_T_B(0xfffffe));
                                break;
                        case lpc2000_v1:
                        case lpc2000_v2:
@@ -340,7 +343,7 @@ static int lpc2000_iap_call(struct flash_bank *bank, int code, uint32_t param_ta
                case lpc2000_v1:
                case lpc2000_v2:
                        /* IAP stack */
-                       init_reg_param(&reg_params[3], "r13_svc", 32, PARAM_OUT);
+                       init_reg_param(&reg_params[3], "sp_svc", 32, PARAM_OUT);
                        buf_set_u32(reg_params[3].value, 0, 32, lpc2000_info->iap_working_area->address + 0xb4);
 
                        /* return address */