Message ID | 43aaa58fac47029b7d11f1d80d310786d7a078a6.1677838213.git.oleksii.kurochko@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Do basic initialization things | expand |
On 03/03/2023 10:24 am, Oleksii Kurochko wrote: > Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>, although it occurs to me... > diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c > index 1c87899e8e..d9723fe1c0 100644 > --- a/xen/arch/riscv/setup.c > +++ b/xen/arch/riscv/setup.c > @@ -7,7 +7,8 @@ > unsigned char __initdata cpu0_boot_stack[STACK_SIZE] > __aligned(STACK_SIZE); > > -void __init noreturn start_xen(void) > +void __init noreturn start_xen(unsigned long bootcpu_id, > + unsigned long dtb_base) dtb_base probably wants renaming to dtb_paddr as the pagetable series is just about to make it a non-identity mapping between the two address spaces. Can fix on commit if you're happy with the suggestion? ~Andrew
On Fri, 2023-03-03 at 10:27 +0000, Andrew Cooper wrote: > On 03/03/2023 10:24 am, Oleksii Kurochko wrote: > > Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com> > > Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>, although it > occurs to me... > > > diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c > > index 1c87899e8e..d9723fe1c0 100644 > > --- a/xen/arch/riscv/setup.c > > +++ b/xen/arch/riscv/setup.c > > @@ -7,7 +7,8 @@ > > unsigned char __initdata cpu0_boot_stack[STACK_SIZE] > > __aligned(STACK_SIZE); > > > > -void __init noreturn start_xen(void) > > +void __init noreturn start_xen(unsigned long bootcpu_id, > > + unsigned long dtb_base) > > dtb_base probably wants renaming to dtb_paddr as the pagetable series > is > just about to make it a non-identity mapping between the two address > spaces. > > Can fix on commit if you're happy with the suggestion? I will be happy with that. Thanks. ~ Oleksii
On Fri, Mar 03, 2023 at 12:24:23PM +0200, Oleksii Kurochko wrote: > Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com> > --- > Changes since v2: > * Add the comment for start() function with the explanation what and > how OpenSBI pass to start() function. > * Clean up start() code related to read&save hart_id & dtb_base. > --- > Changes since v1: > * read/save/pass of hart_id and dtb_base passed by a bootloader > were moved to head.S. > * Update start_xen() to recieve hard_id & dtb_base > --- > xen/arch/riscv/riscv64/head.S | 5 +++++ > xen/arch/riscv/setup.c | 3 ++- > 2 files changed, 7 insertions(+), 1 deletion(-) > > diff --git a/xen/arch/riscv/riscv64/head.S b/xen/arch/riscv/riscv64/head.S > index 52fa41c778..adf5d6c74a 100644 > --- a/xen/arch/riscv/riscv64/head.S > +++ b/xen/arch/riscv/riscv64/head.S > @@ -2,6 +2,11 @@ > > .section .text.header, "ax", %progbits > > + /* > + * OpenSBI pass to start(): > + * a0 -> hart_id ( bootcpu_id ) > + * a1 -> dtb_base > + */ > ENTRY(start) > /* Mask all interrupts */ > csrw CSR_SIE, zero > diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c > index 1c87899e8e..d9723fe1c0 100644 > --- a/xen/arch/riscv/setup.c > +++ b/xen/arch/riscv/setup.c > @@ -7,7 +7,8 @@ > unsigned char __initdata cpu0_boot_stack[STACK_SIZE] > __aligned(STACK_SIZE); > > -void __init noreturn start_xen(void) > +void __init noreturn start_xen(unsigned long bootcpu_id, > + unsigned long dtb_base) > { > early_printk("Hello from C env\n"); > > -- > 2.39.0 > > Reviewed-by: Bobby Eshleman <bobbyeshleman@gmail.com>
diff --git a/xen/arch/riscv/riscv64/head.S b/xen/arch/riscv/riscv64/head.S index 52fa41c778..adf5d6c74a 100644 --- a/xen/arch/riscv/riscv64/head.S +++ b/xen/arch/riscv/riscv64/head.S @@ -2,6 +2,11 @@ .section .text.header, "ax", %progbits + /* + * OpenSBI pass to start(): + * a0 -> hart_id ( bootcpu_id ) + * a1 -> dtb_base + */ ENTRY(start) /* Mask all interrupts */ csrw CSR_SIE, zero diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c index 1c87899e8e..d9723fe1c0 100644 --- a/xen/arch/riscv/setup.c +++ b/xen/arch/riscv/setup.c @@ -7,7 +7,8 @@ unsigned char __initdata cpu0_boot_stack[STACK_SIZE] __aligned(STACK_SIZE); -void __init noreturn start_xen(void) +void __init noreturn start_xen(unsigned long bootcpu_id, + unsigned long dtb_base) { early_printk("Hello from C env\n");
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com> --- Changes since v2: * Add the comment for start() function with the explanation what and how OpenSBI pass to start() function. * Clean up start() code related to read&save hart_id & dtb_base. --- Changes since v1: * read/save/pass of hart_id and dtb_base passed by a bootloader were moved to head.S. * Update start_xen() to recieve hard_id & dtb_base --- xen/arch/riscv/riscv64/head.S | 5 +++++ xen/arch/riscv/setup.c | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-)