aboutsummaryrefslogtreecommitdiff
path: root/src/target/cortex_m.c
diff options
context:
space:
mode:
authorSylvain Chouleur <schouleur@graimatterlabs.ai>2020-10-12 17:24:05 +0200
committerTomas Vanek <vanekt@fbl.cz>2020-10-22 21:19:12 +0100
commit5e61d59c9065bb4347c8e85767c39ea7263010f2 (patch)
tree567d2e51413e3abee1ffc8e5d07a046f1cca2579 /src/target/cortex_m.c
parent4fc61a2f9d60e49b8134ab7e0929cfb2b3a4f771 (diff)
downloadriscv-openocd-5e61d59c9065bb4347c8e85767c39ea7263010f2.zip
riscv-openocd-5e61d59c9065bb4347c8e85767c39ea7263010f2.tar.gz
riscv-openocd-5e61d59c9065bb4347c8e85767c39ea7263010f2.tar.bz2
cortex_m: support control.FPCA
Bit 2 of control register is used if the processor includes the FP extension Change-Id: Ie21bc9de8cae5bad9d841e1908eff3aa0bb29d4b Signed-off-by: Sylvain Chouleur <schouleur@graimatterlabs.ai> Reviewed-on: http://openocd.zylin.com/5853 Reviewed-by: Sylvain Chouleur <sylvain.chouleur@gmail.com> Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com> Tested-by: jenkins Reviewed-by: Andreas Fritiofson <andreas.fritiofson@gmail.com> Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
Diffstat (limited to 'src/target/cortex_m.c')
-rw-r--r--src/target/cortex_m.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/target/cortex_m.c b/src/target/cortex_m.c
index 55664a7..abc377f 100644
--- a/src/target/cortex_m.c
+++ b/src/target/cortex_m.c
@@ -541,7 +541,7 @@ static int cortex_m_debug_entry(struct target *target)
arm->map = armv7m_msp_reg_map;
} else {
unsigned control = buf_get_u32(arm->core_cache
- ->reg_list[ARMV7M_CONTROL].value, 0, 2);
+ ->reg_list[ARMV7M_CONTROL].value, 0, 3);
/* is this thread privileged? */
arm->core_mode = control & 1
@@ -1678,7 +1678,7 @@ static int cortex_m_load_core_reg_u32(struct target *target,
break;
case ARMV7M_CONTROL:
- *value = buf_get_u32((uint8_t *)value, 24, 2);
+ *value = buf_get_u32((uint8_t *)value, 24, 3);
break;
}
@@ -1764,7 +1764,7 @@ static int cortex_m_store_core_reg_u32(struct target *target,
break;
case ARMV7M_CONTROL:
- buf_set_u32((uint8_t *)&reg, 24, 2, value);
+ buf_set_u32((uint8_t *)&reg, 24, 3, value);
break;
}