From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mail-bn1bbn0105.outbound.protection.outlook.com ([157.56.111.105] helo=na01-bn1-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1ZrxNf-0005Qn-92 for kexec@lists.infradead.org; Fri, 30 Oct 2015 00:17:20 +0000 Message-ID: <1446164196.22185.15.camel@freescale.com> Subject: Re: [PATCH v2 2/3] ppc64: Avoid rfid if no need to clear MSR_LE From: Scott Wood Date: Thu, 29 Oct 2015 19:16:36 -0500 In-Reply-To: <20151016014803.GF20667@verge.net.au> References: <1444172150-29493-1-git-send-email-scottwood@freescale.com> <1444172150-29493-2-git-send-email-scottwood@freescale.com> <20151016014803.GF20667@verge.net.au> MIME-Version: 1.0 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "kexec" Errors-To: kexec-bounces+dwmw2=infradead.org@lists.infradead.org To: Simon Horman Cc: kexec@lists.infradead.org, linuxppc-dev@lists.ozlabs.org, Samuel Mendoza-Jonas , Michael Ellerman On Fri, 2015-10-16 at 10:48 +0900, Simon Horman wrote: > On Tue, Oct 06, 2015 at 05:55:49PM -0500, Scott Wood wrote: > > Commit a304e2d82a8c3 ("ppc64: purgatory: Reset primary cpu endian to > > big-endian) changed bctr to rfid. rfid is book3s-only and will cause a > > fatal exception on book3e. > > > > Purgatory is an isolated environment which makes importing information > > about the subarch awkward, so instead rely on the fact that MSR_LE > > should never be set on book3e, and the rfid is only needed if MSR_LE is > > set (and thus needs to be cleared). In theory that MSR bit is reserved > > on book3e, rather than zero, but in practice I have not seen it set. > > > > Signed-off-by: Scott Wood > > Cc: Samuel Mendoza-Jonas > > --- > > v2: new patch > > Could I get a review of this from at lest one ppc person? Michael, can you comment on this as well as patch 3/3? -Scott > > > purgatory/arch/ppc64/v2wrap.S | 10 +++++++++- > > 1 file changed, 9 insertions(+), 1 deletion(-) > > > > diff --git a/purgatory/arch/ppc64/v2wrap.S b/purgatory/arch/ppc64/v2wrap.S > > index 179ade9..3534080 100644 > > --- a/purgatory/arch/ppc64/v2wrap.S > > +++ b/purgatory/arch/ppc64/v2wrap.S > > @@ -116,9 +116,17 @@ master: > > stw 7,0x5c(4) # and patch it into the kernel > > mr 3,16 # restore dt address > > > > + mfmsr 5 > > + andi. 10,5,1 # test MSR_LE > > + bne little_endian > > + > > + li 5,0 # r5 will be 0 for kernel > > + mtctr 4 # prepare branch to > > + bctr # start kernel > > + > > +little_endian: # book3s-only > > mtsrr0 4 # prepare branch to > > > > - mfmsr 5 > > clrrdi 5,5,1 # clear MSR_LE > > mtsrr1 5 > > _______________________________________________ kexec mailing list kexec@lists.infradead.org http://lists.infradead.org/mailman/listinfo/kexec