[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PULL 07/17] ppc: Fix rfi/rfid/hrfi/... emulation
From: |
David Gibson |
Subject: |
Re: [Qemu-devel] [PULL 07/17] ppc: Fix rfi/rfid/hrfi/... emulation |
Date: |
Mon, 27 Jun 2016 16:48:45 +1000 |
User-agent: |
Mutt/1.6.1 (2016-04-27) |
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 <address@hidden>
> >
> > 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
- [Qemu-devel] [PULL 00/17] ppc-for-2.7 queue 20160623, David Gibson, 2016/06/23
- [Qemu-devel] [PULL 02/17] tests: Use '+=' to add additional tests, not '=', David Gibson, 2016/06/23
- [Qemu-devel] [PULL 01/17] powerpc/mm: Update the WIMG check during H_ENTER, David Gibson, 2016/06/23
- [Qemu-devel] [PULL 06/17] memory: Add reporting of supported page sizes, David Gibson, 2016/06/23
- [Qemu-devel] [PULL 17/17] ppc: Disable huge page support if it is not available for main RAM, David Gibson, 2016/06/23
- [Qemu-devel] [PULL 03/17] ppc64: disable gen_pause() for linux-user mode, David Gibson, 2016/06/23
- [Qemu-devel] [PULL 07/17] ppc: Fix rfi/rfid/hrfi/... emulation, David Gibson, 2016/06/23
- [Qemu-devel] [PULL 09/17] ppc: fix exception model for HV mode, David Gibson, 2016/06/23
- [Qemu-devel] [PULL 05/17] ppc: Improve emulation of THRM registers, David Gibson, 2016/06/23
- [Qemu-devel] [PULL 11/17] ppc: Fix generation if ISI/DSI vs. HV mode, David Gibson, 2016/06/23
- [Qemu-devel] [PULL 14/17] ppc: Turn a bunch of booleans from int to bool, David Gibson, 2016/06/23
- [Qemu-devel] [PULL 08/17] ppc: define a default LPCR value, David Gibson, 2016/06/23
- [Qemu-devel] [PULL 15/17] ppc: Move exception generation code out of line, David Gibson, 2016/06/23
- [Qemu-devel] [PULL 12/17] ppc: Rework generation of priv and inval interrupts, David Gibson, 2016/06/23
- [Qemu-devel] [PULL 10/17] ppc: Fix POWER7 and POWER8 exception definitions, David Gibson, 2016/06/23
- [Qemu-devel] [PULL 16/17] ppc: Add P7/P8 Power Management instructions, David Gibson, 2016/06/23