diff mbox

[U-Boot,v2,1/2] arm: add support for semihosting for ARMv7M targets

Message ID 1445202809-11711-1-git-send-email-pftbest@gmail.com
State Superseded
Delegated to: Albert ARIBAUD
Headers show

Commit Message

Vadzim Dambrouski Oct. 18, 2015, 9:13 p.m. UTC
It is possible to enable CONFIG_SEMIHOSTING for STM32F429 target, but it
would result in compile error. This patch adds support for semihosting for
STM32F429 or any other ARMv7M target. Tested on STM32F429-DISCOVERY board.

Signed-off-by: Vadzim Dambrouski <pftbest@gmail.com>
---

 arch/arm/lib/semihosting.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Albert ARIBAUD Oct. 19, 2015, 6 a.m. UTC | #1
Hello Vadzim,

On Mon, 19 Oct 2015 00:13:28 +0300, Vadzim Dambrouski
<pftbest@gmail.com> wrote:
> It is possible to enable CONFIG_SEMIHOSTING for STM32F429 target, but it
> would result in compile error. This patch adds support for semihosting for
> STM32F429 or any other ARMv7M target. Tested on STM32F429-DISCOVERY board.

You should give some more indication of the reason for the compile
error and the nature of the fix. For instance, you could quote the
essential part of the error message (so that people googling for the
error message may find this commit and mail thread) and a very short
analysis (so that they can test if 'their' error is the same and can
be solved the same way).

> Signed-off-by: Vadzim Dambrouski <pftbest@gmail.com>
> ---
> 
>  arch/arm/lib/semihosting.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/arch/arm/lib/semihosting.c b/arch/arm/lib/semihosting.c
> index c3e964e..ed5e8e4 100644
> --- a/arch/arm/lib/semihosting.c
> +++ b/arch/arm/lib/semihosting.c
> @@ -31,6 +31,8 @@ static noinline long smh_trap(unsigned int sysnum, void *addr)
>  	register long result asm("r0");
>  #if defined(CONFIG_ARM64)
>  	asm volatile ("hlt #0xf000" : "=r" (result) : "0"(sysnum), "r"(addr));
> +#elif defined(CONFIG_CPU_V7M)
> +	asm volatile ("bkpt #0xAB" : "=r" (result) : "0"(sysnum), "r"(addr));
>  #else
>  	/* Note - untested placeholder */
>  	asm volatile ("svc #0x123456" : "=r" (result) : "0"(sysnum), "r"(addr));
> -- 
> 2.6.1
> 



Amicalement,
diff mbox

Patch

diff --git a/arch/arm/lib/semihosting.c b/arch/arm/lib/semihosting.c
index c3e964e..ed5e8e4 100644
--- a/arch/arm/lib/semihosting.c
+++ b/arch/arm/lib/semihosting.c
@@ -31,6 +31,8 @@  static noinline long smh_trap(unsigned int sysnum, void *addr)
 	register long result asm("r0");
 #if defined(CONFIG_ARM64)
 	asm volatile ("hlt #0xf000" : "=r" (result) : "0"(sysnum), "r"(addr));
+#elif defined(CONFIG_CPU_V7M)
+	asm volatile ("bkpt #0xAB" : "=r" (result) : "0"(sysnum), "r"(addr));
 #else
 	/* Note - untested placeholder */
 	asm volatile ("svc #0x123456" : "=r" (result) : "0"(sysnum), "r"(addr));