On Mon, Jun 27, 2016 at 02:42:08PM +1000, Benjamin Herrenschmidt wrote: > On Thu, 2016-06-23 at 15:48 +1000, David Gibson wrote: > > From: Benjamin Herrenschmidt <b...@kernel.crashing.org> > > > > This reworks emulation of the various "rfi" variants. I removed > > some masking bits that I couldn't make sense of, the only bit that > > I am aware we should mask here is POW, the CPU's MSR mask should > > take care of the rest. > > See I'd rather we didn't boot at all. > > I just spent hours trying to figure out why my kernel wouldn't boot > in qemu on a mac99 model with 970, weird weird things happening > inside the device-tree parsing... > > Until I figured we were losing the 64-bit mode in the MSR. Why ? > > Because OpenBIOS isn't bolting the hash entries or SLBs for the entire > kernel ! So we are taking some exceptions right during the early > assembly, precisely between enable_64b_mode and __mmu_off. > > Now this is really fishy to begin with, there is code in there that > will use SRR0/SRR1 and won't expect a fault of any sort... such > as __mmu_off itself. > > The problem in our case was that OpenBIOS using rfi, it only restores > 32-bits of the MSR, so we lose the 64-bit flag. > > Typically that was happening on the call to __cpu_preinit_ppc970 which > happens to reside far enough away that it needs a new translation. > > I wonder if prom_init should "touch" the entire kernel for safety, > but in any case, OpenBIOS need that fix urgently.
Ah, ok, I hadn't realized that OpenBIOS still failed to boot, just later in the process with this hunk left out. -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson
signature.asc
Description: PGP signature