Christophe Leroy <[email protected]> writes:
> Booting mpc85xx_defconfig kernel on QEMU leads to:
What machine/CPU model are you using for that?
I tried ppce500/e500 and that is working OK for me, ie. boots to
userspace and I see math instructions being emulated via the emulated
stats.
cheers
> Bad trap at PC: fe9bab0, SR: 2d000, vector=800
> awk[82]: unhandled trap (5) at 0 nip fe9bab0 lr fe9e01c code 5 in libc-2.27.so[fe5a000+17a000]
> awk[82]: code: 3aa00000 3a800010 4bffe03c 9421fff0 7ca62b78 38a00000 93c10008 83c10008
> awk[82]: code: 38210010 4bffdec8 9421ffc0 7c0802a6 <fc00048e> d8010008 4815190d 93810030
> Trace/breakpoint trap
> WARNING: no useful console
>
> This is because allthough CONFIG_MATH_EMULATION is selected,
> Exception 800 calls unknown_exception().
>
> Call emulation_assist_interrupt() instead.
>
> Signed-off-by: Christophe Leroy <[email protected]>
> ---
> arch/powerpc/kernel/head_85xx.S | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/powerpc/kernel/head_85xx.S b/arch/powerpc/kernel/head_85xx.S
> index 97e9ea0c7297..0f1641a31250 100644
> --- a/arch/powerpc/kernel/head_85xx.S
> +++ b/arch/powerpc/kernel/head_85xx.S
> @@ -395,7 +395,7 @@ interrupt_base:
> #ifdef CONFIG_PPC_FPU
> FP_UNAVAILABLE_EXCEPTION
> #else
> - EXCEPTION(0x0800, FP_UNAVAIL, FloatingPointUnavailable, unknown_exception)
> + EXCEPTION(0x0800, FP_UNAVAIL, FloatingPointUnavailable, emulation_assist_interrupt)
> #endif
>
> /* System Call Interrupt */
> --
> 2.41.0
Le 10/10/2023 à 12:45, Michael Ellerman a écrit :
> Christophe Leroy <[email protected]> writes:
>> Booting mpc85xx_defconfig kernel on QEMU leads to:
>
> What machine/CPU model are you using for that?
If I remember correctly, it was machine mpc8544ds.
Christophe
>
> I tried ppce500/e500 and that is working OK for me, ie. boots to
> userspace and I see math instructions being emulated via the emulated
> stats.
>
> cheers
>
>> Bad trap at PC: fe9bab0, SR: 2d000, vector=800
>> awk[82]: unhandled trap (5) at 0 nip fe9bab0 lr fe9e01c code 5 in libc-2.27.so[fe5a000+17a000]
>> awk[82]: code: 3aa00000 3a800010 4bffe03c 9421fff0 7ca62b78 38a00000 93c10008 83c10008
>> awk[82]: code: 38210010 4bffdec8 9421ffc0 7c0802a6 <fc00048e> d8010008 4815190d 93810030
>> Trace/breakpoint trap
>> WARNING: no useful console
>>
>> This is because allthough CONFIG_MATH_EMULATION is selected,
>> Exception 800 calls unknown_exception().
>>
>> Call emulation_assist_interrupt() instead.
>>
>> Signed-off-by: Christophe Leroy <[email protected]>
>> ---
>> arch/powerpc/kernel/head_85xx.S | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/arch/powerpc/kernel/head_85xx.S b/arch/powerpc/kernel/head_85xx.S
>> index 97e9ea0c7297..0f1641a31250 100644
>> --- a/arch/powerpc/kernel/head_85xx.S
>> +++ b/arch/powerpc/kernel/head_85xx.S
>> @@ -395,7 +395,7 @@ interrupt_base:
>> #ifdef CONFIG_PPC_FPU
>> FP_UNAVAILABLE_EXCEPTION
>> #else
>> - EXCEPTION(0x0800, FP_UNAVAIL, FloatingPointUnavailable, unknown_exception)
>> + EXCEPTION(0x0800, FP_UNAVAIL, FloatingPointUnavailable, emulation_assist_interrupt)
>> #endif
>>
>> /* System Call Interrupt */
>> --
>> 2.41.0