powerpc: Update to new option-vector-5 format for CAS
authorSuraj Jitindar Singh <sjitindarsingh@gmail.com>
Tue, 28 Feb 2017 06:03:48 +0000 (17:03 +1100)
committerMichael Ellerman <mpe@ellerman.id.au>
Mon, 6 Mar 2017 10:44:09 +0000 (21:44 +1100)
commit014d02cbf16b3106dc8e93281d2a9c189751ed5e
tree31f2cd87c238719b3d53492ac307db57ec2e935e
parent12cc9fd6b2d8ee307a735b3b9faed0d17b719463
powerpc: Update to new option-vector-5 format for CAS

On POWER9 the ibm,client-architecture-support (CAS) negotiation process
has been updated to change how the host to guest negotiation is done for
the new hash/radix mmu as well as the nest mmu, process tables and guest
translation shootdown (GTSE).

This is documented in the unreleased PAPR ACR "CAS option vector
additions for P9".

The host tells the guest which options it supports in
ibm,arch-vec-5-platform-support. The guest then chooses a subset of these
to request in the CAS call and these are agreed to in the
ibm,architecture-vec-5 property of the chosen node.

Thus we read ibm,arch-vec-5-platform-support and make our selection before
calling CAS. We then parse the ibm,architecture-vec-5 property of the
chosen node to check whether we should run as hash or radix.

ibm,arch-vec-5-platform-support format:

index value pairs: <index, val> ... <index, val>

index: Option vector 5 byte number
val:   Some representation of supported values

Signed-off-by: Suraj Jitindar Singh <sjitindarsingh@gmail.com>
Acked-by: Paul Mackerras <paulus@ozlabs.org>
[mpe: Don't print about unknown options, be consistent with OV5_FEAT]
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/include/asm/prom.h
arch/powerpc/kernel/prom_init.c
arch/powerpc/mm/init_64.c