From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Vivier Subject: Re: [kvm-unit-tests PATCH 1/2] powerpc: use well known kernel start address Date: Wed, 20 Apr 2016 07:48:49 +0200 Message-ID: <57171841.90002@redhat.com> References: <1461086788-3102-1-git-send-email-lvivier@redhat.com> <1461086788-3102-2-git-send-email-lvivier@redhat.com> <20160420120123.11621b70@voom.fritz.box> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Cc: kvm@vger.kernel.org, kvm-ppc@vger.kernel.org, drjones@redhat.com, thuth@redhat.com, pbonzini@redhat.com To: David Gibson Return-path: Received: from mx1.redhat.com ([209.132.183.28]:41157 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751279AbcDTFsx (ORCPT ); Wed, 20 Apr 2016 01:48:53 -0400 In-Reply-To: <20160420120123.11621b70@voom.fritz.box> Sender: kvm-owner@vger.kernel.org List-ID: On 20/04/2016 04:01, David Gibson wrote: > On Tue, 19 Apr 2016 19:26:27 +0200 > Laurent Vivier 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 > > 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. 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 >> #include >> >> +#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 >> > >