From: Benjamin Herrenschmidt Date: Mon, 23 Sep 2013 02:05:03 +0000 (+1000) Subject: powerpc/powernv: Fix OPAL entry and exit in little endian mode X-Git-Tag: upstream/snapshot3+hdmi~3909^2~94 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=be401b372fae219cf04c0c38890834c813d8dc90;p=platform%2Fadaptation%2Frenesas_rcar%2Frenesas_kernel.git powerpc/powernv: Fix OPAL entry and exit in little endian mode Signed-off-by: Benjamin Herrenschmidt --- diff --git a/arch/powerpc/platforms/powernv/opal-wrappers.S b/arch/powerpc/platforms/powernv/opal-wrappers.S index 8f38445..2a03e1e 100644 --- a/arch/powerpc/platforms/powernv/opal-wrappers.S +++ b/arch/powerpc/platforms/powernv/opal-wrappers.S @@ -34,7 +34,7 @@ mtmsrd r12,1; \ LOAD_REG_ADDR(r0,.opal_return); \ mtlr r0; \ - li r0,MSR_DR|MSR_IR; \ + li r0,MSR_DR|MSR_IR|MSR_LE;\ andc r12,r12,r0; \ li r0,token; \ mtspr SPRN_HSRR1,r12; \ @@ -45,6 +45,13 @@ hrfid _STATIC(opal_return) + /* + * Fixup endian on OPAL return... we should be able to simplify + * this by instead converting the below trampoline to a set of + * bytes (always BE) since MSR:LE will end up fixed up as a side + * effect of the rfid. + */ + FIXUP_ENDIAN ld r2,PACATOC(r13); ld r4,8(r1); ld r5,16(r1);