Commit Graph

2 Commits

Author SHA1 Message Date
Meng Zhuo
c0a9559877 cpu: add crypto extensions detection for riscv64
This CL adds RISC-V cryptography extensions detection.
Direct detection of the extensions zvkned, zvknhb, zvksed and
zvksh is not supported, since the crypto spec requires these
extensions implemented with data independent timing (zkt).

However, their presence may be inferred by checking for
the shorthand extensions: zvkn, zvknc, zvkng, zvks, zvksc, zvksg.

Change-Id: Ic00038cebf1b9f77426876b06b08f206473ad6fb
Reviewed-on: https://go-review.googlesource.com/c/sys/+/664375
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Junyang Shao <shaojunyang@google.com>
Reviewed-by: Mark Ryan <markdryan@rivosinc.com>
Reviewed-by: Carlos Amedee <carlos@golang.org>
Reviewed-by: Pengcheng Wang <wangpengcheng.pp@bytedance.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
2025-05-01 02:30:04 -07:00
Mark Ryan
3283fc3f61 cpu: add support for detecting RISC-V extensions
Add a RISCV64 variable to cpu that indicates both the presence
of RISC-V extensions and performance information about the underlying
RISC-V cores.  The variable is only populated with non false values on
Linux.  The detection code first attempts to use the riscv_hwprobe
syscall introduced in Linux 6.4, falling back to HWCAP if riscv_hwprobe
is not supported.  The patch can detect the C, V, Zba, Zbb and Zbs
extensions.  V, Zba, Zbb and Zbs can only be detected on a 6.5 kernel
or later (without backports).

Updates golang/go#61416

Change-Id: I40f92724ee3d337c06bdc559ff0b18a8f6bfda9f
Reviewed-on: https://go-review.googlesource.com/c/sys/+/605815
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Joel Sing <joel@sing.id.au>
Reviewed-by: Meng Zhuo <mengzhuo1203@gmail.com>
2024-08-23 10:43:34 +00:00