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>
This commit is contained in:
Omair Javaid
2018-05-23 17:43:47 +05:00
committed by Matthias Welwarsky
parent d04254196e
commit a7da117ad6
5 changed files with 112 additions and 22 deletions

View File

@@ -1397,8 +1397,9 @@ static int semihosting_read_fields(struct target *target, size_t number,
uint8_t *fields)
{
struct semihosting *semihosting = target->semihosting;
return target_read_memory(target, semihosting->param,
semihosting->word_size_bytes, number, fields);
/* Use 4-byte multiples to trigger fast memory access. */
return target_read_memory(target, semihosting->param, 4,
number * (semihosting->word_size_bytes / 4), fields);
}
/**
@@ -1408,8 +1409,9 @@ static int semihosting_write_fields(struct target *target, size_t number,
uint8_t *fields)
{
struct semihosting *semihosting = target->semihosting;
return target_write_memory(target, semihosting->param,
semihosting->word_size_bytes, number, fields);
/* Use 4-byte multiples to trigger fast memory access. */
return target_write_memory(target, semihosting->param, 4,
number * (semihosting->word_size_bytes / 4), fields);
}
/**