mbox series

[v3,0/3] arm64: Support of PAuth QARMA3 architected algorithm

Message ID 20220224124952.119612-1-vladimir.murzin@arm.com (mailing list archive)
Headers show
Series arm64: Support of PAuth QARMA3 architected algorithm | expand

Message

Vladimir Murzin Feb. 24, 2022, 12:49 p.m. UTC
QARMA3 is relaxed version of the QARMA5 algorithm which expected to
reduce the latency of calculation while still delivering a suitable
level of security.

Feature advertised via a new ID fields in ID_AA64ISAR2_EL1 [1], so we
need to teach the kernel to identify this.

[1] https://developer.arm.com/documentation/ddi0601/2021-12/AArch64-Registers/ID-AA64ISAR2-EL1--AArch64-Instruction-Set-Attribute-Register-2?lang=en


Changelog:

  v1 -> v2
     - Removed unintended whitespace change in sysreg.h
     - FTR_ALIAS_OPTION_LEN now accounts null terminator
     - Extract only APA3 bits from ID_AA64ISAR2_APA3_SHIFT (in
       contrast to id_aa64isar1_el1 where both APA and API bits
       are extracted) in asm_pointer_auth.h
  v2 -> v3
     - Removed WARN_ON(s) (per Will)
     - Rebased on 5.17-rc5

Thanks!

Vladimir Murzin (3):
  arm64: cpufeature: Account min_field_value when cheking secondaries
    for PAuth
  arm64: cpufeature: Mark existing PAuth architected algorithm as QARMA5
  arm64: Add support of PAuth QARMA3 architected algorithm

 arch/arm64/include/asm/asm_pointer_auth.h      |  3 ++
 arch/arm64/include/asm/cpufeature.h            |  1 +
 arch/arm64/include/asm/kvm_hyp.h               |  1 +
 arch/arm64/include/asm/sysreg.h                | 12 ++++++
 arch/arm64/kernel/cpufeature.c                 | 59 ++++++++++++++++++++++----
 arch/arm64/kernel/idreg-override.c             | 16 ++++++-
 arch/arm64/kvm/arm.c                           |  1 +
 arch/arm64/kvm/hyp/include/nvhe/fixed_config.h |  5 +++
 arch/arm64/kvm/hyp/nvhe/sys_regs.c             | 14 ++++++
 arch/arm64/kvm/sys_regs.c                      |  5 +++
 arch/arm64/tools/cpucaps                       |  6 ++-
 11 files changed, 110 insertions(+), 13 deletions(-)

Comments

Marc Zyngier Feb. 24, 2022, 3:18 p.m. UTC | #1
On 2022-02-24 12:49, Vladimir Murzin wrote:
> QARMA3 is relaxed version of the QARMA5 algorithm which expected to
> reduce the latency of calculation while still delivering a suitable
> level of security.
> 
> Feature advertised via a new ID fields in ID_AA64ISAR2_EL1 [1], so we
> need to teach the kernel to identify this.
> 
> [1] 
> https://developer.arm.com/documentation/ddi0601/2021-12/AArch64-Registers/ID-AA64ISAR2-EL1--AArch64-Instruction-Set-Attribute-Register-2?lang=en
> 
> 
> Changelog:
> 
>   v1 -> v2
>      - Removed unintended whitespace change in sysreg.h
>      - FTR_ALIAS_OPTION_LEN now accounts null terminator
>      - Extract only APA3 bits from ID_AA64ISAR2_APA3_SHIFT (in
>        contrast to id_aa64isar1_el1 where both APA and API bits
>        are extracted) in asm_pointer_auth.h
>   v2 -> v3
>      - Removed WARN_ON(s) (per Will)
>      - Rebased on 5.17-rc5
> 
> Thanks!
> 
> Vladimir Murzin (3):
>   arm64: cpufeature: Account min_field_value when cheking secondaries
>     for PAuth
>   arm64: cpufeature: Mark existing PAuth architected algorithm as 
> QARMA5
>   arm64: Add support of PAuth QARMA3 architected algorithm
> 
>  arch/arm64/include/asm/asm_pointer_auth.h      |  3 ++
>  arch/arm64/include/asm/cpufeature.h            |  1 +
>  arch/arm64/include/asm/kvm_hyp.h               |  1 +
>  arch/arm64/include/asm/sysreg.h                | 12 ++++++
>  arch/arm64/kernel/cpufeature.c                 | 59 
> ++++++++++++++++++++++----
>  arch/arm64/kernel/idreg-override.c             | 16 ++++++-
>  arch/arm64/kvm/arm.c                           |  1 +
>  arch/arm64/kvm/hyp/include/nvhe/fixed_config.h |  5 +++
>  arch/arm64/kvm/hyp/nvhe/sys_regs.c             | 14 ++++++
>  arch/arm64/kvm/sys_regs.c                      |  5 +++
>  arch/arm64/tools/cpucaps                       |  6 ++-
>  11 files changed, 110 insertions(+), 13 deletions(-)

For the series:

Acked-by: Marc Zyngier <maz@kernel.org>

         M.
Will Deacon Feb. 25, 2022, 3:50 p.m. UTC | #2
On Thu, 24 Feb 2022 12:49:49 +0000, Vladimir Murzin wrote:
> QARMA3 is relaxed version of the QARMA5 algorithm which expected to
> reduce the latency of calculation while still delivering a suitable
> level of security.
> 
> Feature advertised via a new ID fields in ID_AA64ISAR2_EL1 [1], so we
> need to teach the kernel to identify this.
> 
> [...]

Applied to arm64 (for-next/pauth), thanks!

[1/3] arm64: cpufeature: Account min_field_value when cheking secondaries for PAuth
      https://git.kernel.org/arm64/c/da844beb6d9f
[2/3] arm64: cpufeature: Mark existing PAuth architected algorithm as QARMA5
      https://git.kernel.org/arm64/c/be3256a086af
[3/3] arm64: Add support of PAuth QARMA3 architected algorithm
      https://git.kernel.org/arm64/c/def8c222f054

Cheers,