On 1/25/19 1:49 PM, Rémi Denis-Courmont wrote:
> From: Remi Denis-Courmont <remi.denis.courmont@huawei.com>
>
> This always enables IA, IB, DA and DB keys in user mode on the maximum
> CPU, in a manner that is consistent with the other CPUs. That is to say
> redefining the reset value of SCTLR_ELx registers.
>
> Without this patch, the PAC* and AUT* instructions have no effects
> (except PACGA of course).
>
> Signed-off-by: Remi Denis-Courmont <remi.denis.courmont@huawei.com>
> ---
> target/arm/cpu64.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/target/arm/cpu64.c b/target/arm/cpu64.c
> index e9bc461c36..148c103ca4 100644
> --- a/target/arm/cpu64.c
> +++ b/target/arm/cpu64.c
> @@ -413,8 +413,8 @@ static void aarch64_max_initfn(Object *obj)
> (void *)&apdb_bit, &error_fatal);
>
> /* Enable all PAC keys by default. */
> - cpu->env.cp15.sctlr_el[1] |= SCTLR_EnIA | SCTLR_EnIB;
> - cpu->env.cp15.sctlr_el[1] |= SCTLR_EnDA | SCTLR_EnDB;
> + cpu->reset_sctlr |= SCTLR_EnIA | SCTLR_EnIB;
> + cpu->reset_sctlr |= SCTLR_EnDA | SCTLR_EnDB;
I just sent another patch for this:
http://lists.nongnu.org/archive/html/qemu-devel/2019-01/msg06737.html
This way is valid as well, but would also need to adjust the property callbacks
to modify reset_sctlr as well.
Peter, do you have a preference?
r~