diff options
author | Spencer Oliver <spen@spen-soft.co.uk> | 2013-02-01 15:50:20 +0000 |
---|---|---|
committer | Andreas Fritiofson <andreas.fritiofson@gmail.com> | 2013-02-02 16:22:25 +0000 |
commit | feddedb6db72b81714780fae5d0b3a51dc1ddedc (patch) | |
tree | 0f4dd6eca546deef53b4036b8533642b2ace74b4 /src/flash | |
parent | f4f87cb4726fbba4a03e2eda1759faf1c47ab4ba (diff) |
armv7m: use ARM_MODE_THREAD core mode for algoorithm's
This makes sure we are using privileged mode when executing any loaders.
Change-Id: I18bf32ec92e1c76a66ab25e3712652bc3650b332
Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk>
Reviewed-on: http://openocd.zylin.com/1108
Tested-by: jenkins
Reviewed-by: Andreas Fritiofson <andreas.fritiofson@gmail.com>
Diffstat (limited to 'src/flash')
-rw-r--r-- | src/flash/nor/cfi.c | 2 | ||||
-rw-r--r-- | src/flash/nor/efm32.c | 2 | ||||
-rw-r--r-- | src/flash/nor/em357.c | 2 | ||||
-rw-r--r-- | src/flash/nor/fm3.c | 2 | ||||
-rw-r--r-- | src/flash/nor/lpc2000.c | 2 | ||||
-rw-r--r-- | src/flash/nor/lpcspifi.c | 6 | ||||
-rw-r--r-- | src/flash/nor/stellaris.c | 2 | ||||
-rw-r--r-- | src/flash/nor/stm32f1x.c | 2 | ||||
-rw-r--r-- | src/flash/nor/stm32f2x.c | 2 | ||||
-rw-r--r-- | src/flash/nor/stm32lx.c | 2 |
10 files changed, 12 insertions, 12 deletions
diff --git a/src/flash/nor/cfi.c b/src/flash/nor/cfi.c index 81a58cec..cb050215 100644 --- a/src/flash/nor/cfi.c +++ b/src/flash/nor/cfi.c @@ -1778,7 +1778,7 @@ static int cfi_spansion_write_block(struct flash_bank *bank, uint8_t *buffer, if (is_armv7m(target_to_armv7m(target))) { /* armv7m target */ armv7m_algo.common_magic = ARMV7M_COMMON_MAGIC; - armv7m_algo.core_mode = ARM_MODE_ANY; + armv7m_algo.core_mode = ARM_MODE_THREAD; arm_algo = &armv7m_algo; } else if (is_arm(target_to_arm(target))) { /* All other ARM CPUs have 32 bit instructions */ diff --git a/src/flash/nor/efm32.c b/src/flash/nor/efm32.c index 52e732d6..295c7070 100644 --- a/src/flash/nor/efm32.c +++ b/src/flash/nor/efm32.c @@ -610,7 +610,7 @@ static int efm32x_write_block(struct flash_bank *bank, uint8_t *buf, buf_set_u32(reg_params[4].value, 0, 32, address); armv7m_info.common_magic = ARMV7M_COMMON_MAGIC; - armv7m_info.core_mode = ARM_MODE_ANY; + armv7m_info.core_mode = ARM_MODE_THREAD; ret = target_run_flash_async_algorithm(target, buf, count, 4, 0, NULL, diff --git a/src/flash/nor/em357.c b/src/flash/nor/em357.c index e93af2f0..cbb71fc0 100644 --- a/src/flash/nor/em357.c +++ b/src/flash/nor/em357.c @@ -522,7 +522,7 @@ static int em357_write_block(struct flash_bank *bank, uint8_t *buffer, ; armv7m_info.common_magic = ARMV7M_COMMON_MAGIC; - armv7m_info.core_mode = ARM_MODE_ANY; + armv7m_info.core_mode = ARM_MODE_THREAD; init_reg_param(®_params[0], "r0", 32, PARAM_OUT); init_reg_param(®_params[1], "r1", 32, PARAM_OUT); diff --git a/src/flash/nor/fm3.c b/src/flash/nor/fm3.c index aa5d58d1..9b52f151 100644 --- a/src/flash/nor/fm3.c +++ b/src/flash/nor/fm3.c @@ -502,7 +502,7 @@ static int fm3_write_block(struct flash_bank *bank, uint8_t *buffer, } armv7m_info.common_magic = ARMV7M_COMMON_MAGIC; - armv7m_info.core_mode = ARM_MODE_ANY; + armv7m_info.core_mode = ARM_MODE_THREAD; init_reg_param(®_params[0], "r0", 32, PARAM_OUT); /* source start address */ init_reg_param(®_params[1], "r1", 32, PARAM_OUT); /* target start address */ diff --git a/src/flash/nor/lpc2000.c b/src/flash/nor/lpc2000.c index 1aa3b914..36f0bfa9 100644 --- a/src/flash/nor/lpc2000.c +++ b/src/flash/nor/lpc2000.c @@ -309,7 +309,7 @@ static int lpc2000_iap_call(struct flash_bank *bank, struct working_area *iap_wo switch (lpc2000_info->variant) { case lpc1700: armv7m_info.common_magic = ARMV7M_COMMON_MAGIC; - armv7m_info.core_mode = ARM_MODE_ANY; + armv7m_info.core_mode = ARM_MODE_THREAD; iap_entry_point = 0x1fff1ff1; break; case lpc2000_v1: diff --git a/src/flash/nor/lpcspifi.c b/src/flash/nor/lpcspifi.c index 89e8f037..2b4d6f61 100644 --- a/src/flash/nor/lpcspifi.c +++ b/src/flash/nor/lpcspifi.c @@ -182,7 +182,7 @@ static int lpcspifi_set_hw_mode(struct flash_bank *bank) }; armv7m_info.common_magic = ARMV7M_COMMON_MAGIC; - armv7m_info.core_mode = ARM_MODE_ANY; + armv7m_info.core_mode = ARM_MODE_THREAD; LOG_DEBUG("Allocating working area for SPIFI init algorithm"); @@ -519,7 +519,7 @@ static int lpcspifi_erase(struct flash_bank *bank, int first, int last) }; armv7m_info.common_magic = ARMV7M_COMMON_MAGIC; - armv7m_info.core_mode = ARM_MODE_ANY; + armv7m_info.core_mode = ARM_MODE_THREAD; /* Get memory for spifi initialization algorithm */ @@ -726,7 +726,7 @@ static int lpcspifi_write(struct flash_bank *bank, uint8_t *buffer, }; armv7m_info.common_magic = ARMV7M_COMMON_MAGIC; - armv7m_info.core_mode = ARM_MODE_ANY; + armv7m_info.core_mode = ARM_MODE_THREAD; init_reg_param(®_params[0], "r0", 32, PARAM_IN_OUT); /* buffer start, status (out) */ init_reg_param(®_params[1], "r1", 32, PARAM_OUT); /* buffer end */ diff --git a/src/flash/nor/stellaris.c b/src/flash/nor/stellaris.c index cd0311a4..54536f6f 100644 --- a/src/flash/nor/stellaris.c +++ b/src/flash/nor/stellaris.c @@ -1045,7 +1045,7 @@ static int stellaris_write_block(struct flash_bank *bank, (uint8_t *) stellaris_write_code); armv7m_info.common_magic = ARMV7M_COMMON_MAGIC; - armv7m_info.core_mode = ARM_MODE_ANY; + armv7m_info.core_mode = ARM_MODE_THREAD; init_reg_param(®_params[0], "r0", 32, PARAM_OUT); init_reg_param(®_params[1], "r1", 32, PARAM_OUT); diff --git a/src/flash/nor/stm32f1x.c b/src/flash/nor/stm32f1x.c index 6ca814a7..17df121b 100644 --- a/src/flash/nor/stm32f1x.c +++ b/src/flash/nor/stm32f1x.c @@ -656,7 +656,7 @@ static int stm32x_write_block(struct flash_bank *bank, uint8_t *buffer, buf_set_u32(reg_params[4].value, 0, 32, address); armv7m_info.common_magic = ARMV7M_COMMON_MAGIC; - armv7m_info.core_mode = ARM_MODE_ANY; + armv7m_info.core_mode = ARM_MODE_THREAD; retval = target_run_flash_async_algorithm(target, buffer, count, 2, 0, NULL, diff --git a/src/flash/nor/stm32f2x.c b/src/flash/nor/stm32f2x.c index 22cc9cf1..7a4352fd 100644 --- a/src/flash/nor/stm32f2x.c +++ b/src/flash/nor/stm32f2x.c @@ -558,7 +558,7 @@ static int stm32x_write_block(struct flash_bank *bank, uint8_t *buffer, }; armv7m_info.common_magic = ARMV7M_COMMON_MAGIC; - armv7m_info.core_mode = ARM_MODE_ANY; + armv7m_info.core_mode = ARM_MODE_THREAD; init_reg_param(®_params[0], "r0", 32, PARAM_IN_OUT); /* buffer start, status (out) */ init_reg_param(®_params[1], "r1", 32, PARAM_OUT); /* buffer end */ diff --git a/src/flash/nor/stm32lx.c b/src/flash/nor/stm32lx.c index 8b09387e..ebc7534e 100644 --- a/src/flash/nor/stm32lx.c +++ b/src/flash/nor/stm32lx.c @@ -283,7 +283,7 @@ static int stm32lx_write_half_pages(struct flash_bank *bank, uint8_t *buffer, } armv7m_info.common_magic = ARMV7M_COMMON_MAGIC; - armv7m_info.core_mode = ARM_MODE_ANY; + armv7m_info.core_mode = ARM_MODE_THREAD; init_reg_param(®_params[0], "r0", 32, PARAM_OUT); init_reg_param(®_params[1], "r1", 32, PARAM_OUT); init_reg_param(®_params[2], "r2", 32, PARAM_OUT); |