[PATCH 07/10] powerpc/xive: add XIVE exploitation mode to CAS
Cédric Le Goater
clg at kaod.org
Thu Aug 10 20:20:22 AEST 2017
On 08/08/2017 10:56 AM, Cédric Le Goater wrote:
> On POWER9, the Client Architecture Support (CAS) negotiation process
> determines whether the guest operates in XIVE Legacy compatibility or
> in XIVE exploitation mode.
>
> Now that we have initial guest support for the XIVE interrupt
> controller, let's inform the hypervisor what we can do.
>
> Signed-off-by: Cédric Le Goater <clg at kaod.org>
> ---
> arch/powerpc/kernel/prom_init.c | 15 ++++++++++++++-
> 1 file changed, 14 insertions(+), 1 deletion(-)
>
> diff --git a/arch/powerpc/kernel/prom_init.c b/arch/powerpc/kernel/prom_init.c
> index 613f79f03877..25c14f543bd7 100644
> --- a/arch/powerpc/kernel/prom_init.c
> +++ b/arch/powerpc/kernel/prom_init.c
> @@ -177,6 +177,7 @@ struct platform_support {
> bool hash_mmu;
> bool radix_mmu;
> bool radix_gtse;
> + bool xive;
> };
>
> /* Platforms codes are now obsolete in the kernel. Now only used within this
> @@ -1054,6 +1055,12 @@ static void __init prom_parse_platform_support(u8 index, u8 val,
> support->radix_gtse = true;
> }
> break;
> + case OV5_INDX(OV5_XIVE_SUPPORT): /* XIVE Exploitation mode */
> + if (val & OV5_FEAT(OV5_XIVE_SUPPORT)) {
This should be :
+ if (val & OV5_FEAT(OV5_XIVE_EXPLOIT)) {
I will fix it in the next version of the patchset.
C.
> + prom_debug("XIVE - exploitation mode\n");
> + support->xive = true;
> + }
> + break;
> }
> }
>
> @@ -1062,7 +1069,8 @@ static void __init prom_check_platform_support(void)
> struct platform_support supported = {
> .hash_mmu = false,
> .radix_mmu = false,
> - .radix_gtse = false
> + .radix_gtse = false,
> + .xive = false
> };
> int prop_len = prom_getproplen(prom.chosen,
> "ibm,arch-vec-5-platform-support");
> @@ -1095,6 +1103,11 @@ static void __init prom_check_platform_support(void)
> /* We're probably on a legacy hypervisor */
> prom_debug("Assuming legacy hash support\n");
> }
> +
> + if (supported.xive) {
> + prom_debug("Asking for XIVE\n");
> + ibm_architecture_vec.vec5.intarch = OV5_FEAT(OV5_XIVE_EXPLOIT);
> + }
> }
>
> static void __init prom_send_capabilities(void)
>
More information about the Linuxppc-dev
mailing list