Re: [PATCH V3 11/16] arm64/cpufeature: Add remaining feature bits in ID_AA64PFR1 register

From: Anshuman Khandual
Date: Wed May 06 2020 - 02:33:38 EST




On 05/05/2020 02:54 PM, Suzuki K Poulose wrote:
> On 05/02/2020 02:34 PM, Anshuman Khandual wrote:
>> Enable the following features bits in ID_AA64PFR1 register as per ARM DDI
>> 0487F.a specification.
>>
>> Cc: Catalin Marinas <catalin.marinas@xxxxxxx>
>> Cc: Will Deacon <will@xxxxxxxxxx>
>> Cc: Mark Rutland <mark.rutland@xxxxxxx>
>> Cc: Suzuki K Poulose <suzuki.poulose@xxxxxxx>
>> Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
>> Cc: linux-kernel@xxxxxxxxxxxxxxx
>>
>> Suggested-by: Will Deacon <will@xxxxxxxxxx>
>> Signed-off-by: Anshuman Khandual <anshuman.khandual@xxxxxxx>
>> ---
>> Â arch/arm64/include/asm/sysreg.h | 4 ++++
>>  arch/arm64/kernel/cpufeature.c | 4 ++++
>> Â 2 files changed, 8 insertions(+)
>>
>> diff --git a/arch/arm64/include/asm/sysreg.h b/arch/arm64/include/asm/sysreg.h
>> index c93ea6613f51..f1c0d874220a 100644
>> --- a/arch/arm64/include/asm/sysreg.h
>> +++ b/arch/arm64/include/asm/sysreg.h
>> @@ -666,7 +666,11 @@
>> Â #define ID_AA64PFR0_EL0_32BIT_64BITÂÂÂ 0x2
>> Â Â /* id_aa64pfr1 */
>> +#define ID_AA64PFR1_MPAMFRAC_SHIFTÂÂÂ 16
>> +#define ID_AA64PFR1_RASFRAC_SHIFTÂÂÂ 12
>> +#define ID_AA64PFR1_MTE_SHIFTÂÂÂÂÂÂÂ 8
>> Â #define ID_AA64PFR1_SSBS_SHIFTÂÂÂÂÂÂÂ 4
>> +#define ID_AA64PFR1_BT_SHIFTÂÂÂÂÂÂÂ 0
>> Â Â #define ID_AA64PFR1_SSBS_PSTATE_NIÂÂÂ 0
>> Â #define ID_AA64PFR1_SSBS_PSTATE_ONLYÂÂÂ 1
>> diff --git a/arch/arm64/kernel/cpufeature.c b/arch/arm64/kernel/cpufeature.c
>> index f5a39e040804..181e09d62147 100644
>> --- a/arch/arm64/kernel/cpufeature.c
>> +++ b/arch/arm64/kernel/cpufeature.c
>> @@ -233,7 +233,11 @@ static const struct arm64_ftr_bits ftr_id_aa64pfr0[] = {
>> Â };
>> Â Â static const struct arm64_ftr_bits ftr_id_aa64pfr1[] = {
>> +ÂÂÂ ARM64_FTR_BITS(FTR_VISIBLE, FTR_STRICT, FTR_LOWER_SAFE, ID_AA64PFR1_MPAMFRAC_SHIFT, 4, 0),
>> +ÂÂÂ ARM64_FTR_BITS(FTR_VISIBLE, FTR_STRICT, FTR_LOWER_SAFE, ID_AA64PFR1_RASFRAC_SHIFT, 4, 0),
>
> These should be hidden as well.

Will change.

>
>> +ÂÂÂ ARM64_FTR_BITS(FTR_VISIBLE, FTR_STRICT, FTR_LOWER_SAFE, ID_AA64PFR1_MTE_SHIFT, 4, 0),
>> ÂÂÂÂÂ ARM64_FTR_BITS(FTR_VISIBLE, FTR_STRICT, FTR_LOWER_SAFE, ID_AA64PFR1_SSBS_SHIFT, 4, ID_AA64PFR1_SSBS_PSTATE_NI),
>> +ÂÂÂ ARM64_FTR_BITS(FTR_VISIBLE, FTR_STRICT, FTR_LOWER_SAFE, ID_AA64PFR1_BT_SHIFT, 4, 0),
>
> I would say remove the MTE, BTI fields for now. As they must be VISIBLE, but with the kernel support for these merged. They will be added with their respective series.
Sure, will drop above changes from the series.

>
> Suzuki
>