Message ID | 20200829104758.22337-1-jcmvbkbc@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | target/xtensa: enable all coprocessors for linux-user | expand |
On 8/29/20 3:47 AM, Max Filippov wrote: > Linux userspace always sees coprocessors as enabled. CPENABLE register > and coprocessor exceptions are used internally by the kernel to manage > lazy coprocessor context switch. None of it is needed for linux-user. > Always enable all coprocessors for user emulation. > > Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> r~
Le 29/08/2020 à 12:47, Max Filippov a écrit : > Linux userspace always sees coprocessors as enabled. CPENABLE register > and coprocessor exceptions are used internally by the kernel to manage > lazy coprocessor context switch. None of it is needed for linux-user. > Always enable all coprocessors for user emulation. > > Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> > --- > target/xtensa/cpu.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/target/xtensa/cpu.c b/target/xtensa/cpu.c > index 6a033e778c95..88a32268a18b 100644 > --- a/target/xtensa/cpu.c > +++ b/target/xtensa/cpu.c > @@ -93,6 +93,7 @@ static void xtensa_cpu_reset(DeviceState *dev) > !xtensa_abi_call0()) { > env->sregs[PS] |= PS_WOE; > } > + env->sregs[CPENABLE] = 0xff; > #endif > env->sregs[VECBASE] = env->config->vecbase; > env->sregs[IBREAKENABLE] = 0; > Applied to my linux-user-for-5.2 branch. Thanks, Laurent
diff --git a/target/xtensa/cpu.c b/target/xtensa/cpu.c index 6a033e778c95..88a32268a18b 100644 --- a/target/xtensa/cpu.c +++ b/target/xtensa/cpu.c @@ -93,6 +93,7 @@ static void xtensa_cpu_reset(DeviceState *dev) !xtensa_abi_call0()) { env->sregs[PS] |= PS_WOE; } + env->sregs[CPENABLE] = 0xff; #endif env->sregs[VECBASE] = env->config->vecbase; env->sregs[IBREAKENABLE] = 0;
Linux userspace always sees coprocessors as enabled. CPENABLE register and coprocessor exceptions are used internally by the kernel to manage lazy coprocessor context switch. None of it is needed for linux-user. Always enable all coprocessors for user emulation. Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> --- target/xtensa/cpu.c | 1 + 1 file changed, 1 insertion(+)