a couple of cpu ftrs fixes
Nicholas Piggin
reviewercover a couple of cpu ftrs fixes
These are a couple of differences between cputable and dt_cpu_ftrs I noticed with CPU_FTR bits. We have to be a bit careful now to keep them in sync when we change one or the other.
Nicholas Piggin (2):
powerpc/64s: Fix pkey support in dt_cpu_ftrs, add CPU_FTR_PKEY bit powerpc/64s: Fix POWER9 DD2.2 and above in cputable features
arch/powerpc/include/asm/cputable.h | 3 ++- arch/powerpc/kernel/dt_cpu_ftrs.c | 7 +++++++ 2 files changed, 9 insertions(+), 1 deletion(-)
Signature · 1 line
2.16.3
Nicholas Piggin
reviewerPATCH 1/2 powerpc/64s: Fix pkey support in dt_cpu_ftrs, add CPU_FTR_PKEY bit
The pkey code added a CPU_FTR_PKEY bit, but did not add it to the dt_cpu_ftrs feature set. Although capability is supported by all processors in the base dt_cpu_ftrs set for 64s, it's a significant and sufficiently well defined feature to make it optional. So add it as a quirk for now, which can be versioned out then controlled by the firmware (once dt_cpu_ftrs gains versioning support).
--- arch/powerpc/kernel/dt_cpu_ftrs.c | 7 +++++++ 1 file changed, 7 insertions(+)
arch/powerpc/kernel/dt_cpu_ftrs.c +7 -0
@@ -729,6 +729,13 @@ static __init void cpufeatures_cpu_quirks(void) cur_cpu_spec->cpu_features &= ~(CPU_FTR_DAWR ); cur_cpu_spec->cpu_features |=CPU_FTR_P9_TLBIE_BUG ; } + +/* +* PKEY was not in the initial base or feature node +* specification, but it should become optional in the next +* cpu feature version sequence. +*/ + cur_cpu_spec->cpu_features |=CPU_FTR_PKEY ; }static void __init cpufeatures_setup_finished (void )
Signature · 1 line
2.16.3
Re: [1/2] powerpc/64s: Fix pkey support in dt_cpu_ftrs, add CPU_FTR_PKEY bit
Quoted 10 lines · Nicholas Piggin
The pkey code added a
CPU_FTR_PKEYbit, but did not add it to thedt_cpu_ftrsfeature set. Although capability is supported by all processors in the basedt_cpu_ftrsset for 64s, it's a significant and sufficiently well defined feature to make it optional. So add it as a quirk for now, which can be versioned out then controlled by the firmware (oncedt_cpu_ftrsgains versioning support).Fixes cf43d3b264 ("powerpc: Enable pkey subsystem ")Cc Ram Pai <[email protected]>Signed-off-by Nicholas Piggin <[email protected]>
Series applied to powerpc next, thanks.
https://git.kernel.org/powerpc/c/c130153e453cba0f37ad10fa18a1aa
cheers
Nicholas Piggin
reviewerPATCH 2/2 powerpc/64s: Fix POWER9 DD2.2 and above in cputable features
In reply to Nicholas PigginThe CPU_FTR_POWER9_DD2_1 flag is intended to be set for DD2.1 and above (which is what the dt_cpu_ftrs setup does). Fix cputable for DD2.2 to match.
This came about due to patches b5af4f279323 ("powerpc: Add CPU feature bits for TM bug workarounds on POWER9 v2.2"), and 9e9626ed3a4a ("powerpc/64s: Fix POWER9 DD2.2 and above in DT CPU features") being in-flight at once. The latter patch fixed dt_cpu_ftrs like this one does. The former changed cputable to match dt_cpu_ftrs.
--- arch/powerpc/include/asm/cputable.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
arch/powerpc/include/asm/cputable.h +2 -1
@@ -467,7 +467,8 @@ static inline void cpu_feature_keys_init(void) { } (~CPU_FTR_SAO))#define CPU_FTRS_POWER9_DD2_0 CPU_FTRS_POWER9#define CPU_FTRS_POWER9_DD2_1 (CPU_FTRS_POWER9 | CPU_FTR_POWER9_DD2_1) -#define CPU_FTRS_POWER9_DD2_2 (CPU_FTRS_POWER9 | CPU_FTR_P9_TM_HV_ASSIST | \ +#define CPU_FTRS_POWER9_DD2_2 (CPU_FTRS_POWER9 | CPU_FTR_POWER9_DD2_1 | \ + CPU_FTR_P9_TM_HV_ASSIST | \ CPU_FTR_P9_TM_XER_SO_BUG)#define CPU_FTRS_CELL (CPU_FTR_LWSYNC | \ CPU_FTR_PPCAS_ARCH_V2 | CPU_FTR_CTRL | \
Signature · 1 line
2.16.3