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> --- 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 -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html