aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntonio Borneo <borneo.antonio@gmail.com>2019-06-14 15:59:17 +0200
committerAntonio Borneo <borneo.antonio@gmail.com>2020-02-15 15:38:39 +0000
commit54814015148345c01c8878893daed7b429d2793c (patch)
tree9185fb686419ffdd080e27b83e917fec215e2d95
parent1492a103db6174bd4d6994ea3487c096aef4560d (diff)
downloadriscv-openocd-54814015148345c01c8878893daed7b429d2793c.zip
riscv-openocd-54814015148345c01c8878893daed7b429d2793c.tar.gz
riscv-openocd-54814015148345c01c8878893daed7b429d2793c.tar.bz2
armv8: check the core state to pass the correct arch to gdb
Commit 3799eded6761 ("target/aarch64: add support for multi-architecture gdb") passes the constant string "aarch64" as architecture to gdb. This is not working if the core is running in 32 bits mode; gdb reports: Truncated register 8 in remote 'g' packet then closes the connection with OpenOCD. Make the architecture string dependant from the current state of the core. Change-Id: I16e1614ea02ba29bf87f450b3dfe25c83c9a3612 Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-on: http://openocd.zylin.com/5234 Tested-by: jenkins Reviewed-by: Muhammad Omair Javaid <omair.javaid@linaro.org>
-rw-r--r--src/target/armv8.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/target/armv8.c b/src/target/armv8.c
index e736937..88b9320 100644
--- a/src/target/armv8.c
+++ b/src/target/armv8.c
@@ -1753,7 +1753,8 @@ const struct command_registration armv8_command_handlers[] = {
const char *armv8_get_gdb_arch(struct target *target)
{
- return "aarch64";
+ struct arm *arm = target_to_arm(target);
+ return arm->core_state == ARM_STATE_AARCH64 ? "aarch64" : "arm";
}
int armv8_get_gdb_reg_list(struct target *target,