[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] target/ppc/mmu_common: Fix SRR1/MSR error code on Book-E
From: |
Vitaly Cheptsov |
Subject: |
Re: [PATCH] target/ppc/mmu_common: Fix SRR1/MSR error code on Book-E |
Date: |
Fri, 21 Jan 2022 12:33:57 +0300 |
Hi Cédric,
> This looks correct and even fixing an issue that Mario reported
> on the TCG e6500 CPU with a kernel + KVM compiled in :
>
>
> https://lore.kernel.org/all/R5JFVM$911E343FF81933B99D53FD0992D8848F@locati.it/
>
> KVM has some issues also with the e6500 but that's another problem
> I think.
Glad to hear that. Could you schedule the inclusion of the patch in 6.2.1 or
6.3 please?
> What is your environment ? Which QEMU machine ? Can you provide a
> command line ?
We have an in-house RTOS at ISP RAS, which we use to run some environmental
tests on QEMU. The target hardware in this particular example is a QorIQ
P3041-based board. The command line approximately looks like this:
qemu-system-ppc -cpu e500mc -M ppce500 -m 128M -icount 1 -kernel
/path/to/kernel.elf -serial tcp::1111,server,nodelay
> Could you please resend the patch in a non attached way ? See :
>
> https://www.qemu.org/docs/master/devel/submitting-a-patch.html
>
> and copy qemu-devel.
Yes, sure. Have just done that.
Best regards,
Vitaly
> On 21 Jan 2022, at 11:17, Cédric Le Goater <clg@kaod.org> wrote:
>
> Hello Vitaly
>
> On 1/21/22 01:02, Vitaly Cheptsov wrote:
>> Hello,
>> PowerPC e500mc defines MSR bit 35 differently from most other PowerPC
>> variants. In particular, for e500mc this is GS (Guest Supervisor) bit[1],
>> while for others it is NOEXEC GUARD bit[2].
>> QEMU ignores this architectural difference when handling the exceptions of
>> attempting to run not executable code on e500mc, and mistakenly sets the GS
>> bit[3][4].
>> Setting this bit eventually leads to crashes, because although QEMU does not
>> support Guest Supervisor mode on e500mc, it still requires it to be
>> disabled[5].
>
> This looks correct and even fixing an issue that Mario reported
> on the TCG e6500 CPU with a kernel + KVM compiled in :
>
>
> https://lore.kernel.org/all/R5JFVM$911E343FF81933B99D53FD0992D8848F@locati.it/
>
> KVM has some issues also with the e6500 but that's another problem
> I think.
>
>
> What is your environment ? Which QEMU machine ? Can you provide a
> command line ?
>
> Could you please resend the patch in a non attached way ? See :
>
> https://www.qemu.org/docs/master/devel/submitting-a-patch.html
>
> and copy qemu-devel.
>
> Thanks,
>
> C.
>
>
>> Best regards,
>> Vitaly
>> [1] https://www.nxp.com/docs/en/reference-manual/E500MCRM.pdf, 2.7.1 MSR
>> [2] https://openpowerfoundation.org/?resource_lib=power-isa-version-3-0,
>> 6.5.5 Instruction Storage Interrupt
>> [3] https://github.com/qemu/qemu/blob/v6.2.0/target/ppc/mmu_common.c#L1426
>> [4]
>> https://github.com/qemu/qemu/blob/v6.2.0/target/ppc/excp_helper.c#L414-L416
>> [5]
>> https://github.com/qemu/qemu/blob/v6.2.0/target/ppc/mmu_helper.c#L1078-L1080
>
signature.asc
Description: Message signed with OpenPGP