[U-Boot] [PATCH v2 7/9] riscv: do not rely on hart ID passed by previous boot stage

Rick Chen rickchen36 at gmail.com
Wed Mar 13 02:10:55 UTC 2019


Hi Lukas

<rick at andestech.com> 於 2019年3月12日 週二 下午7:04寫道:
>
>
>
> > -----Original Message-----
> > From: Lukas Auer [mailto:lukas.auer at aisec.fraunhofer.de]
> > Sent: Wednesday, March 06, 2019 6:53 AM
> > To: u-boot at lists.denx.de
> > Cc: Atish Patra; Anup Patel; Bin Meng; Andreas Schwab; Palmer Dabbelt;
> > Alexander Graf; Lukas Auer; Rick Jian-Zhi Chen(陳建志); Anup Patel
> > 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 <rick at andestech.com>
> > Signed-off-by: Lukas Auer <lukas.auer at 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

Reviewed-by: Rick Chen <rick at andestech.com>
Tested-by: Rick Chen <rick at andestech.com>

Thanks
Rick


More information about the U-Boot mailing list