> -----Original Message-----
> From: Lukas Auer <lukas.a...@aisec.fraunhofer.de>
> Sent: Wednesday, March 6, 2019 4:23 AM
> To: u-boot@lists.denx.de
> Cc: Atish Patra <atish.pa...@wdc.com>; Anup Patel
> <anup.pa...@wdc.com>; Bin Meng <bmeng...@gmail.com>; Andreas
> Schwab <sch...@suse.de>; Palmer Dabbelt <pal...@sifive.com>;
> Alexander Graf <ag...@suse.de>; Lukas Auer
> <lukas.a...@aisec.fraunhofer.de>; Rick Chen <r...@andestech.com>; Anup
> Patel <a...@brainfault.org>
> Subject: [PATCH v2 7/9] riscv: do not rely on hart ID passed by previous boot
> stage
> 
> RISC-V U-Boot expects the hart ID to be passed to it via register a0 by the
> previous boot stage. Machine mode firmware such as BBL and OpenSBI do
> this when starting their payload (U-Boot) in supervisor mode. If U-Boot is
> running in machine mode, this task must be handled by the boot ROM.
> Explicitly populate register a0 with the hart ID from the mhartid CSR to avoid
> possible problems on RISC-V processors with a boot ROM that does not
> handle this task.
> 
> Suggested-by: Rick Chen <r...@andestech.com>
> Signed-off-by: Lukas Auer <lukas.a...@aisec.fraunhofer.de>
> ---
> 
> Changes in v2:
> - New patch to populate register a0 with the hart ID from the mhartid CSR in
> machine-mode
> 
>  arch/riscv/cpu/start.S | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/arch/riscv/cpu/start.S b/arch/riscv/cpu/start.S index
> 79b753847c..d4daa6e0bf 100644
> --- a/arch/riscv/cpu/start.S
> +++ b/arch/riscv/cpu/start.S
> @@ -36,6 +36,10 @@
>  .section .text
>  .globl _start
>  _start:
> +#ifdef CONFIG_RISCV_MMODE
> +     csrr    a0, mhartid
> +#endif
> +
>       /* save hart id and dtb pointer */
>       mv      s0, a0
>       mv      s1, a1
> --
> 2.20.1

Reviewed-by: Anup Patel <anup.pa...@wdc.com>

Regards,
Anup

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to