On Tue, 19 Apr 2016 19:26:27 +0200 Laurent Vivier <lvivier@xxxxxxxxxx> wrote: > As we know where QEMU will load the kernel, it seems an useless > pain to try to compute it instead of using the well known value. > > Signed-off-by: Laurent Vivier <lvivier@xxxxxxxxxx> Hmm.. I'm a little dubious about whether it's a good idea to require that kernel load address to remain fixed in qemu. I don't think it's something we really have an interface guarantee for. It might be ok given that we're just talking about the test shim here, though. > --- > powerpc/boot_rom.S | 3 ++- > powerpc/cstart64.S | 6 +++--- > powerpc/spapr.h | 6 ++++++ > 3 files changed, 11 insertions(+), 4 deletions(-) > create mode 100644 powerpc/spapr.h > > diff --git a/powerpc/boot_rom.S b/powerpc/boot_rom.S > index ae2c08d..266d61f 100644 > --- a/powerpc/boot_rom.S > +++ b/powerpc/boot_rom.S > @@ -1,4 +1,5 @@ > -#define SPAPR_KERNEL_LOAD_ADDR 0x400000 > +#include "spapr.h" > + > .text > .globl start > start: > diff --git a/powerpc/cstart64.S b/powerpc/cstart64.S > index ceb6397..c47b67d 100644 > --- a/powerpc/cstart64.S > +++ b/powerpc/cstart64.S > @@ -11,6 +11,8 @@ > #include <asm/rtas.h> > #include <asm/ptrace.h> > > +#include "spapr.h" > + > .section .init > > /* > @@ -25,9 +27,7 @@ start: > * so we just linked at zero. This means the first thing to do is > * to find our stack and toc, and then do a relocate. > */ > - bl 0f > -0: mflr r31 > - subi r31, r31, 0b - start /* QEMU's kernel load address */ > + LOAD_REG_IMMEDIATE(r31, SPAPR_KERNEL_LOAD_ADDR) > ld r1, (p_stack - start)(r31) > ld r2, (p_toc - start)(r31) > add r1, r1, r31 > diff --git a/powerpc/spapr.h b/powerpc/spapr.h > new file mode 100644 > index 0000000..b41aece > --- /dev/null > +++ b/powerpc/spapr.h > @@ -0,0 +1,6 @@ > +#ifndef _ASMPOWERPC_SPAPR_H_ > +#define _ASMPOWERPC_SPAPR_H_ > + > +#define SPAPR_KERNEL_LOAD_ADDR 0x400000 > + > +#endif /* _ASMPOWERPC_SPAPR_H_ */ > -- > 2.5.5 > -- David Gibson <dgibson@xxxxxxxxxx> Senior Software Engineer, Virtualization, Red Hat
Attachment:
pgpQHgJJh1WJJ.pgp
Description: OpenPGP digital signature