diff options
author | Omair Javaid <omair.javaid@linaro.org> | 2018-05-23 17:43:47 +0500 |
---|---|---|
committer | Matthias Welwarsky <matthias@welwarsky.de> | 2018-07-13 09:18:14 +0100 |
commit | a7da117ad6bc1749863c14fdeef2bd4898620574 (patch) | |
tree | 31b2b0cec75fd5647b7cda5c448d811916d22482 /src/target/armv8.c | |
parent | d04254196e383965627d4eab805f9b1b93240e69 (diff) | |
download | riscv-openocd-a7da117ad6bc1749863c14fdeef2bd4898620574.zip riscv-openocd-a7da117ad6bc1749863c14fdeef2bd4898620574.tar.gz riscv-openocd-a7da117ad6bc1749863c14fdeef2bd4898620574.tar.bz2 |
Add ARM v8 AArch64 semihosting support
This patch implements semihosting support for AArch64. This picks
code from previously submitted AArch64 semihosting support patch
and rebases on top of reworked semihosting code. Tested in AArch64
mode on a Lemaker Hikey Board with NewLib and GDB.
Change-Id: I228a38f1de24f79e49ba99d8514d822a28c2950b
Signed-off-by: Omair Javaid <omair.javaid@linaro.org>
Reviewed-on: http://openocd.zylin.com/4537
Tested-by: jenkins
Reviewed-by: Matthias Welwarsky <matthias@welwarsky.de>
Diffstat (limited to 'src/target/armv8.c')
-rw-r--r-- | src/target/armv8.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/target/armv8.c b/src/target/armv8.c index 20f2b67..83f5530 100644 --- a/src/target/armv8.c +++ b/src/target/armv8.c @@ -1017,11 +1017,24 @@ int armv8_handle_cache_info_command(struct command_context *cmd_ctx, return ERROR_OK; } +static int armv8_setup_semihosting(struct target *target, int enable) +{ + struct arm *arm = target_to_arm(target); + + if (arm->core_state != ARM_STATE_AARCH64) { + LOG_ERROR("semihosting only supported in AArch64 state\n"); + return ERROR_FAIL; + } + + return ERROR_OK; +} + int armv8_init_arch_info(struct target *target, struct armv8_common *armv8) { struct arm *arm = &armv8->arm; arm->arch_info = armv8; target->arch_info = &armv8->arm; + arm->setup_semihosting = armv8_setup_semihosting; /* target is useful in all function arm v4 5 compatible */ armv8->arm.target = target; armv8->arm.common_magic = ARM_COMMON_MAGIC; |