Message ID | 20210407185918.371983-3-drjones@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | arm/arm64: Prepare for target-efi | expand |
On 07/04/2021 19:59, Andrew Jones wrote: > Consolidate our setup calls to reduce the amount we need to do from > init::start. Also remove a couple of pointless comments from setup(). > > Signed-off-by: Andrew Jones <drjones@redhat.com> No need for this to be in assembly. Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Thanks, Nikos > --- > arm/cstart.S | 6 ------ > arm/cstart64.S | 5 ----- > lib/arm/setup.c | 7 +++++-- > 3 files changed, 5 insertions(+), 13 deletions(-) > > diff --git a/arm/cstart.S b/arm/cstart.S > index 653ab1e8a141..731f841695ce 100644 > --- a/arm/cstart.S > +++ b/arm/cstart.S > @@ -81,12 +81,7 @@ start: > /* complete setup */ > pop {r0-r1} > bl setup > - bl get_mmu_off > - cmp r0, #0 > - bne 1f > - bl setup_vm > > -1: > /* run the test */ > ldr r0, =__argc > ldr r0, [r0] > @@ -108,7 +103,6 @@ enable_vfp: > vmsr fpexc, r0 > mov pc, lr > > -.global get_mmu_off > get_mmu_off: > ldr r0, =auxinfo > ldr r0, [r0, #4] > diff --git a/arm/cstart64.S b/arm/cstart64.S > index d39cf4dfb99c..add60a2b4e74 100644 > --- a/arm/cstart64.S > +++ b/arm/cstart64.S > @@ -95,11 +95,7 @@ start: > /* complete setup */ > mov x0, x4 // restore the addr of the dtb > bl setup > - bl get_mmu_off > - cbnz x0, 1f > - bl setup_vm > > -1: > /* run the test */ > adrp x0, __argc > ldr w0, [x0, :lo12:__argc] > @@ -113,7 +109,6 @@ start: > > .text > > -.globl get_mmu_off > get_mmu_off: > adrp x0, auxinfo > ldr x0, [x0, :lo12:auxinfo + 8] > diff --git a/lib/arm/setup.c b/lib/arm/setup.c > index 751ba980000a..9c16f6004e9f 100644 > --- a/lib/arm/setup.c > +++ b/lib/arm/setup.c > @@ -16,6 +16,8 @@ > #include <alloc.h> > #include <alloc_phys.h> > #include <alloc_page.h> > +#include <vmalloc.h> > +#include <auxinfo.h> > #include <argv.h> > #include <asm/thread_info.h> > #include <asm/setup.h> > @@ -233,7 +235,6 @@ void setup(const void *fdt) > freemem += initrd_size; > } > > - /* call init functions */ > mem_init(PAGE_ALIGN((unsigned long)freemem)); > cpu_init(); > > @@ -243,7 +244,6 @@ void setup(const void *fdt) > /* mem_init must be called before io_init */ > io_init(); > > - /* finish setup */ > timer_save_state(); > > ret = dt_get_bootargs(&bootargs); > @@ -256,4 +256,7 @@ void setup(const void *fdt) > memcpy(env, initrd, initrd_size); > setup_env(env, initrd_size); > } > + > + if (!(auxinfo.flags & AUXINFO_MMU_OFF)) > + setup_vm(); > } >
Hi Drew, On 4/7/21 7:59 PM, Andrew Jones wrote: > Consolidate our setup calls to reduce the amount we need to do from > init::start. Also remove a couple of pointless comments from setup(). This is a good idea. Looks good to me, and I compiled the code for arm and arm64, so it must be correct: Reviewed-by: Alexandru Elisei <alexandru.elisei@arm.com> Thanks, Alex > > Signed-off-by: Andrew Jones <drjones@redhat.com> > --- > arm/cstart.S | 6 ------ > arm/cstart64.S | 5 ----- > lib/arm/setup.c | 7 +++++-- > 3 files changed, 5 insertions(+), 13 deletions(-) > > diff --git a/arm/cstart.S b/arm/cstart.S > index 653ab1e8a141..731f841695ce 100644 > --- a/arm/cstart.S > +++ b/arm/cstart.S > @@ -81,12 +81,7 @@ start: > /* complete setup */ > pop {r0-r1} > bl setup > - bl get_mmu_off > - cmp r0, #0 > - bne 1f > - bl setup_vm > > -1: > /* run the test */ > ldr r0, =__argc > ldr r0, [r0] > @@ -108,7 +103,6 @@ enable_vfp: > vmsr fpexc, r0 > mov pc, lr > > -.global get_mmu_off > get_mmu_off: > ldr r0, =auxinfo > ldr r0, [r0, #4] > diff --git a/arm/cstart64.S b/arm/cstart64.S > index d39cf4dfb99c..add60a2b4e74 100644 > --- a/arm/cstart64.S > +++ b/arm/cstart64.S > @@ -95,11 +95,7 @@ start: > /* complete setup */ > mov x0, x4 // restore the addr of the dtb > bl setup > - bl get_mmu_off > - cbnz x0, 1f > - bl setup_vm > > -1: > /* run the test */ > adrp x0, __argc > ldr w0, [x0, :lo12:__argc] > @@ -113,7 +109,6 @@ start: > > .text > > -.globl get_mmu_off > get_mmu_off: > adrp x0, auxinfo > ldr x0, [x0, :lo12:auxinfo + 8] > diff --git a/lib/arm/setup.c b/lib/arm/setup.c > index 751ba980000a..9c16f6004e9f 100644 > --- a/lib/arm/setup.c > +++ b/lib/arm/setup.c > @@ -16,6 +16,8 @@ > #include <alloc.h> > #include <alloc_phys.h> > #include <alloc_page.h> > +#include <vmalloc.h> > +#include <auxinfo.h> > #include <argv.h> > #include <asm/thread_info.h> > #include <asm/setup.h> > @@ -233,7 +235,6 @@ void setup(const void *fdt) > freemem += initrd_size; > } > > - /* call init functions */ > mem_init(PAGE_ALIGN((unsigned long)freemem)); > cpu_init(); > > @@ -243,7 +244,6 @@ void setup(const void *fdt) > /* mem_init must be called before io_init */ > io_init(); > > - /* finish setup */ > timer_save_state(); > > ret = dt_get_bootargs(&bootargs); > @@ -256,4 +256,7 @@ void setup(const void *fdt) > memcpy(env, initrd, initrd_size); > setup_env(env, initrd_size); > } > + > + if (!(auxinfo.flags & AUXINFO_MMU_OFF)) > + setup_vm(); > }
diff --git a/arm/cstart.S b/arm/cstart.S index 653ab1e8a141..731f841695ce 100644 --- a/arm/cstart.S +++ b/arm/cstart.S @@ -81,12 +81,7 @@ start: /* complete setup */ pop {r0-r1} bl setup - bl get_mmu_off - cmp r0, #0 - bne 1f - bl setup_vm -1: /* run the test */ ldr r0, =__argc ldr r0, [r0] @@ -108,7 +103,6 @@ enable_vfp: vmsr fpexc, r0 mov pc, lr -.global get_mmu_off get_mmu_off: ldr r0, =auxinfo ldr r0, [r0, #4] diff --git a/arm/cstart64.S b/arm/cstart64.S index d39cf4dfb99c..add60a2b4e74 100644 --- a/arm/cstart64.S +++ b/arm/cstart64.S @@ -95,11 +95,7 @@ start: /* complete setup */ mov x0, x4 // restore the addr of the dtb bl setup - bl get_mmu_off - cbnz x0, 1f - bl setup_vm -1: /* run the test */ adrp x0, __argc ldr w0, [x0, :lo12:__argc] @@ -113,7 +109,6 @@ start: .text -.globl get_mmu_off get_mmu_off: adrp x0, auxinfo ldr x0, [x0, :lo12:auxinfo + 8] diff --git a/lib/arm/setup.c b/lib/arm/setup.c index 751ba980000a..9c16f6004e9f 100644 --- a/lib/arm/setup.c +++ b/lib/arm/setup.c @@ -16,6 +16,8 @@ #include <alloc.h> #include <alloc_phys.h> #include <alloc_page.h> +#include <vmalloc.h> +#include <auxinfo.h> #include <argv.h> #include <asm/thread_info.h> #include <asm/setup.h> @@ -233,7 +235,6 @@ void setup(const void *fdt) freemem += initrd_size; } - /* call init functions */ mem_init(PAGE_ALIGN((unsigned long)freemem)); cpu_init(); @@ -243,7 +244,6 @@ void setup(const void *fdt) /* mem_init must be called before io_init */ io_init(); - /* finish setup */ timer_save_state(); ret = dt_get_bootargs(&bootargs); @@ -256,4 +256,7 @@ void setup(const void *fdt) memcpy(env, initrd, initrd_size); setup_env(env, initrd_size); } + + if (!(auxinfo.flags & AUXINFO_MMU_OFF)) + setup_vm(); }
Consolidate our setup calls to reduce the amount we need to do from init::start. Also remove a couple of pointless comments from setup(). Signed-off-by: Andrew Jones <drjones@redhat.com> --- arm/cstart.S | 6 ------ arm/cstart64.S | 5 ----- lib/arm/setup.c | 7 +++++-- 3 files changed, 5 insertions(+), 13 deletions(-)