Message ID | 20190624054311.30256-11-hch@lst.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [01/17] mm: provide a print_vma_addr stub for !CONFIG_MMU | expand |
On Mon, 2019-06-24 at 07:43 +0200, Christoph Hellwig wrote: > From: Damien Le Moal <Damien.LeMoal@wdc.com> > > When in M-Mode, we can use the mhartid CSR to get the ID of the > running > HART. Doing so, direct M-Mode boot without firmware is possible. > > Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com> > Signed-off-by: Christoph Hellwig <hch@lst.de> > --- > arch/riscv/kernel/head.S | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/arch/riscv/kernel/head.S b/arch/riscv/kernel/head.S > index e5fa5481aa99..a4c170e41a34 100644 > --- a/arch/riscv/kernel/head.S > +++ b/arch/riscv/kernel/head.S > @@ -18,6 +18,14 @@ ENTRY(_start) > csrw CSR_XIE, zero > csrw CSR_XIP, zero > > +#ifdef CONFIG_M_MODE > + /* > + * The hartid in a0 is expected later on, and we have no > firmware > + * to hand it to us. > + */ > + csrr a0, mhartid I think you should add SR_MHARTID and use that instead of direct csr name. The following patch replaced all occurrence of csr name usage from kernel with CSR numbers. https://patchwork.kernel.org/patch/10916293/ With that change, Reviewed-by: Atish Patra <atish.patra@wdc.com> > +#endif > + > /* Load the global pointer */ > .option push > .option norelax
diff --git a/arch/riscv/kernel/head.S b/arch/riscv/kernel/head.S index e5fa5481aa99..a4c170e41a34 100644 --- a/arch/riscv/kernel/head.S +++ b/arch/riscv/kernel/head.S @@ -18,6 +18,14 @@ ENTRY(_start) csrw CSR_XIE, zero csrw CSR_XIP, zero +#ifdef CONFIG_M_MODE + /* + * The hartid in a0 is expected later on, and we have no firmware + * to hand it to us. + */ + csrr a0, mhartid +#endif + /* Load the global pointer */ .option push .option norelax