On Wed, 20 Apr 2016 07:48:49 +0200 Laurent Vivier <lvivier@xxxxxxxxxx> wrote: > On 20/04/2016 04:01, David Gibson wrote: > > 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. > > As it is hardcoded into boot_rom.S I see no obvious reason to not > hardcode it in cstart64.S. True enough. Reviewed-by: David Gibson <dgibson@xxxxxxxxxx> > > Laurent > > >> --- > >> 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:
pgpHHop0iNvsa.pgp
Description: OpenPGP digital signature