diff mbox series

[U-Boot,v3,09/11] riscv: hang if relocation of secondary harts fails

Message ID 20190317182842.18108-10-lukas.auer@aisec.fraunhofer.de
State Accepted
Commit 8ac39e2974d9f1395969a500e692f45717c4ccf2
Delegated to: Andes
Headers show
Series SMP support for RISC-V | expand

Commit Message

Lukas Auer March 17, 2019, 6:28 p.m. UTC
Print an error message and hang if smp_call_function() returns an error,
indicating that relocation of the secondary harts has failed.

Signed-off-by: Lukas Auer <lukas.auer@aisec.fraunhofer.de>
---

Changes in v3:
- New patch to hang if relocation of secondary harts fails

Changes in v2: None

 arch/riscv/cpu/start.S | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

Comments

Bin Meng March 18, 2019, 6:27 a.m. UTC | #1
On Mon, Mar 18, 2019 at 2:29 AM Lukas Auer
<lukas.auer@aisec.fraunhofer.de> wrote:
>
> Print an error message and hang if smp_call_function() returns an error,
> indicating that relocation of the secondary harts has failed.
>
> Signed-off-by: Lukas Auer <lukas.auer@aisec.fraunhofer.de>
> ---
>
> Changes in v3:
> - New patch to hang if relocation of secondary harts fails
>
> Changes in v2: None
>
>  arch/riscv/cpu/start.S | 13 ++++++++++++-
>  1 file changed, 12 insertions(+), 1 deletion(-)
>

Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Tested-by: Bin Meng <bmeng.cn@gmail.com>
Anup Patel March 18, 2019, 1 p.m. UTC | #2
> -----Original Message-----
> From: Lukas Auer <lukas.auer@aisec.fraunhofer.de>
> Sent: Sunday, March 17, 2019 11:59 PM
> To: u-boot@lists.denx.de
> Cc: Anup Patel <Anup.Patel@wdc.com>; Andreas Schwab
> <schwab@suse.de>; Bin Meng <bmeng.cn@gmail.com>; Atish Patra
> <Atish.Patra@wdc.com>; Palmer Dabbelt <palmer@sifive.com>; Lukas Auer
> <lukas.auer@aisec.fraunhofer.de>; Atish Patra <Atish.Patra@wdc.com>;
> Anup Patel <anup@brainfault.org>; Rick Chen <rick@andestech.com>
> Subject: [PATCH v3 09/11] riscv: hang if relocation of secondary harts fails
> 
> Print an error message and hang if smp_call_function() returns an error,
> indicating that relocation of the secondary harts has failed.
> 
> Signed-off-by: Lukas Auer <lukas.auer@aisec.fraunhofer.de>
> ---
> 
> Changes in v3:
> - New patch to hang if relocation of secondary harts fails
> 
> Changes in v2: None
> 
>  arch/riscv/cpu/start.S | 13 ++++++++++++-
>  1 file changed, 12 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/riscv/cpu/start.S b/arch/riscv/cpu/start.S index
> 5ac899b141..a4433fbd6b 100644
> --- a/arch/riscv/cpu/start.S
> +++ b/arch/riscv/cpu/start.S
> @@ -33,6 +33,10 @@
>  #define SYM_SIZE		0x18
>  #endif
> 
> +.section .data
> +secondary_harts_relocation_error:
> +	.ascii "Relocation of secondary harts has failed, error %d\n"
> +
>  .section .text
>  .globl _start
>  _start:
> @@ -274,8 +278,15 @@ relocate_secondary_harts:
>  	mv	a2, s3
>  	jal	smp_call_function
> 
> +	/* hang if relocation of secondary harts has failed */
> +	beqz	a0, 1f
> +	mv	a1, a0
> +	la	a0, secondary_harts_relocation_error
> +	jal	printf
> +	jal	hang
> +
>  	/* restore relocation offset */
> -	mv	t6, s5
> +1:	mv	t6, s5
>  #endif
> 
>  /*
> --
> 2.20.1

Reviewed-by: Anup Patel <anup.patel@wdc.com>
diff mbox series

Patch

diff --git a/arch/riscv/cpu/start.S b/arch/riscv/cpu/start.S
index 5ac899b141..a4433fbd6b 100644
--- a/arch/riscv/cpu/start.S
+++ b/arch/riscv/cpu/start.S
@@ -33,6 +33,10 @@ 
 #define SYM_SIZE		0x18
 #endif
 
+.section .data
+secondary_harts_relocation_error:
+	.ascii "Relocation of secondary harts has failed, error %d\n"
+
 .section .text
 .globl _start
 _start:
@@ -274,8 +278,15 @@  relocate_secondary_harts:
 	mv	a2, s3
 	jal	smp_call_function
 
+	/* hang if relocation of secondary harts has failed */
+	beqz	a0, 1f
+	mv	a1, a0
+	la	a0, secondary_harts_relocation_error
+	jal	printf
+	jal	hang
+
 	/* restore relocation offset */
-	mv	t6, s5
+1:	mv	t6, s5
 #endif
 
 /*