qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] Fix a bug in mtsr/mtsrin emulation on ppc64


From: Andreas Färber
Subject: Re: [Qemu-devel] [PATCH] Fix a bug in mtsr/mtsrin emulation on ppc64
Date: Sat, 21 May 2011 11:39:18 +0200

Am 21.05.2011 um 03:58 schrieb Alexander Graf:

Am 21.05.2011 um 00:37 schrieb Andreas Färber <address@hidden>:

Am 20.05.2011 um 09:40 schrieb Alexander Graf:

On 20.05.2011, at 05:34, David Gibson wrote:

Early ppc64 CPUs include a hack to partially simulate the ppc32 segment registers, by translating writes to them into writes to the SLB. This is not used by any current Linux kernel, but it is used by the openbios used
in the qemu mac99 model.

Commit 81762d6dd0d430d87024f2c83e9c4dcc4329fb7d, cleaning up the SLB handling introduced a bug in this code, breaking the openbios currently in
qemu.  Specifically, there was an off by one error bitshuffling the
register format used by mtsr into the format needed for the SLB load, causing the flag bits to end up in the wrong place. This caused the storage keys to be wrong under openbios, meaning that the translation code
incorrectly thought a legitimate access was a permission violation.

This patch fixes the bug, at the same time it fixes some build bug in the
MMU debugging code (only exposed when DEBUG_MMU is enabled).

Thanks, applied to ppc-next :)

Nack, this does not fix ppc64 for me! How did you test it, Alex???

I booted a ppc64 kernel on a ppc64 Linux system with tcg and it booted fine for me. Maybe you're hitting yet another issue?

Which OpenBIOS did you use? The 32-bit version using mtsrin works now, but not the 64-bit HEAD version that I attached, which uses slb* instructions instead.

Andreas


reply via email to

[Prev in Thread] Current Thread [Next in Thread]