powerpc/powernv: Query firmware for count cache flush settings
authorMichael Ellerman <mpe@ellerman.id.au>
Mon, 23 Jul 2018 15:07:56 +0000 (01:07 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Tue, 7 Aug 2018 14:32:27 +0000 (00:32 +1000)
Look for fw-features properties to determine the appropriate settings
for the count cache flush, and then call the generic powerpc code to
set it up based on the security feature flags.

Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/platforms/powernv/setup.c

index 3fc2530..adddde0 100644 (file)
@@ -78,6 +78,12 @@ static void init_fw_feat_flags(struct device_node *np)
        if (fw_feature_is("enabled", "fw-count-cache-disabled", np))
                security_ftr_set(SEC_FTR_COUNT_CACHE_DISABLED);
 
+       if (fw_feature_is("enabled", "fw-count-cache-flush-bcctr2,0,0", np))
+               security_ftr_set(SEC_FTR_BCCTR_FLUSH_ASSIST);
+
+       if (fw_feature_is("enabled", "needs-count-cache-flush-on-context-switch", np))
+               security_ftr_set(SEC_FTR_FLUSH_COUNT_CACHE);
+
        /*
         * The features below are enabled by default, so we instead look to see
         * if firmware has *disabled* them, and clear them if so.
@@ -124,6 +130,7 @@ static void pnv_setup_rfi_flush(void)
                  security_ftr_enabled(SEC_FTR_L1D_FLUSH_HV));
 
        setup_rfi_flush(type, enable);
+       setup_count_cache_flush();
 }
 
 static void __init pnv_setup_arch(void)