[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v3 3/6] xen/riscv: introduce stack stuff
On Wed, Jan 11, 2023 at 1:18 AM Oleksii Kurochko <oleksii.kurochko@xxxxxxxxx> wrote: > > The patch introduces and sets up a stack in order to go to C environment > > Signed-off-by: Oleksii Kurochko <oleksii.kurochko@xxxxxxxxx> Reviewed-by: Alistair Francis <alistair.francis@xxxxxxx> Alistair > --- > Changes in V3: > - reorder headers in alphabetical order > - merge changes related to start_xen() function from "[PATCH v2 7/8] > xen/riscv: print hello message from C env" to this patch > - remove unneeded parentheses in definition of STACK_SIZE > --- > Changes in V2: > - introduce STACK_SIZE define. > - use consistent padding between instruction mnemonic and operand(s) > --- > xen/arch/riscv/Makefile | 1 + > xen/arch/riscv/include/asm/config.h | 2 ++ > xen/arch/riscv/riscv64/head.S | 6 +++++- > xen/arch/riscv/setup.c | 14 ++++++++++++++ > 4 files changed, 22 insertions(+), 1 deletion(-) > create mode 100644 xen/arch/riscv/setup.c > > diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile > index 248f2cbb3e..5a67a3f493 100644 > --- a/xen/arch/riscv/Makefile > +++ b/xen/arch/riscv/Makefile > @@ -1,4 +1,5 @@ > obj-$(CONFIG_RISCV_64) += riscv64/ > +obj-y += setup.o > > $(TARGET): $(TARGET)-syms > $(OBJCOPY) -O binary -S $< $@ > diff --git a/xen/arch/riscv/include/asm/config.h > b/xen/arch/riscv/include/asm/config.h > index 0370f865f3..763a922a04 100644 > --- a/xen/arch/riscv/include/asm/config.h > +++ b/xen/arch/riscv/include/asm/config.h > @@ -43,6 +43,8 @@ > > #define SMP_CACHE_BYTES (1 << 6) > > +#define STACK_SIZE PAGE_SIZE > + > #endif /* __RISCV_CONFIG_H__ */ > /* > * Local variables: > diff --git a/xen/arch/riscv/riscv64/head.S b/xen/arch/riscv/riscv64/head.S > index 990edb70a0..d444dd8aad 100644 > --- a/xen/arch/riscv/riscv64/head.S > +++ b/xen/arch/riscv/riscv64/head.S > @@ -1,4 +1,8 @@ > .section .text.header, "ax", %progbits > > ENTRY(start) > - j start > + la sp, cpu0_boot_stack > + li t0, STACK_SIZE > + add sp, sp, t0 > + > + tail start_xen > diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c > new file mode 100644 > index 0000000000..13e24e2fe1 > --- /dev/null > +++ b/xen/arch/riscv/setup.c > @@ -0,0 +1,14 @@ > +#include <xen/compile.h> > +#include <xen/init.h> > + > +/* Xen stack for bringing up the first CPU. */ > +unsigned char __initdata cpu0_boot_stack[STACK_SIZE] > + __aligned(STACK_SIZE); > + > +void __init noreturn start_xen(void) > +{ > + for ( ;; ) > + asm volatile ("wfi"); > + > + unreachable(); > +} > -- > 2.38.1 > >
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |