linux/arch/riscv/kernel
Evan Green 0d8295ed97
riscv: add ISA extension parsing for scalar crypto
The Scalar Crypto specification defines Zk as a shorthand for the
Zkn, Zkr and Zkt extensions. The same follows for both Zkn, Zks and Zbk,
which are all shorthands for various other extensions. The detailed
breakdown can be found in their dt-binding entries.

Since Zkn also implies the Zbkb, Zbkc and Zbkx extensions, simply passing
"zk" through a DT should enable all of Zbkb, Zbkc, Zbkx, Zkn, Zkr and Zkt.
For example, setting the "riscv,isa" DT property to "rv64imafdc_zk"
should generate the following cpuinfo output:
"rv64imafdc_zicntr_zicsr_zifencei_zihpm_zbkb_zbkc_zbkx_zknd_zkne_zknh_zkr_zkt"

riscv_isa_ext_data grows a pair of new members, to permit setting the
relevant bits for "bundled" extensions, both while parsing the ISA string
and the new dedicated extension properties.

Co-developed-by: Conor Dooley <conor.dooley@microchip.com>
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
Signed-off-by: Evan Green <evan@rivosinc.com>
Signed-off-by: Clément Léger <cleger@rivosinc.com>
Acked-by: Conor Dooley <conor.dooley@microchip.com>
Link: https://lore.kernel.org/r/20231114141256.126749-4-cleger@rivosinc.com
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
2023-12-12 15:45:00 -08:00
..
compat_vdso kbuild: unify vdso_install rules 2023-10-28 21:09:02 +09:00
pi riscv: Introduce virtual kernel mapping KASLR 2023-09-05 19:49:27 -07:00
probes riscv: Use SYM_*() assembly macros instead of deprecated ones 2023-11-06 09:42:47 -08:00
tests riscv: Add tests for riscv module loading 2023-11-07 14:59:32 -08:00
vdso RISC-V Patches for the 6.7 Merge Window, Part 2 2023-11-10 09:23:17 -08:00
.gitignore
acpi.c RISC-V: ACPI: Enhance acpi_os_ioremap with MMIO remapping 2023-10-26 09:40:31 -07:00
alternative.c Merge patch series "Add non-coherent DMA support for AX45MP" 2023-09-08 11:24:34 -07:00
asm-offsets.c riscv: Implement Shadow Call Stack 2023-10-27 14:43:08 -07:00
cacheinfo.c
cfi.c riscv: Add CFI error handling 2023-08-23 14:16:39 -07:00
compat_signal.c
compat_syscall_table.c
copy-unaligned.h RISC-V: Probe for unaligned access speed 2023-09-01 09:06:25 -07:00
copy-unaligned.S riscv: Use SYM_*() assembly macros instead of deprecated ones 2023-11-06 09:42:47 -08:00
cpu-hotplug.c
cpu.c Merge patch series "Linux RISC-V AIA Preparatory Series" 2023-11-08 18:57:17 -08:00
cpu_ops.c
cpu_ops_sbi.c
cpu_ops_spinwait.c
cpufeature.c riscv: add ISA extension parsing for scalar crypto 2023-12-12 15:45:00 -08:00
crash_core.c
crash_dump.c
crash_save_regs.S
efi-header.S
efi.c
elf_kexec.c Merge patch series "riscv: kexec: cleanup and fixups" 2023-10-31 19:15:41 -07:00
entry.S riscv: kernel: Use correct SYM_DATA_*() macro for data 2023-11-06 09:42:48 -08:00
fpu.S riscv: Use SYM_*() assembly macros instead of deprecated ones 2023-11-06 09:42:47 -08:00
ftrace.c
head.h
head.S riscv: Use SYM_*() assembly macros instead of deprecated ones 2023-11-06 09:42:47 -08:00
hibernate-asm.S riscv: Use SYM_*() assembly macros instead of deprecated ones 2023-11-06 09:42:47 -08:00
hibernate.c
image-vars.h efi: move screen_info into efi init code 2023-10-17 16:33:39 +02:00
irq.c Merge patch "drivers: perf: Do not broadcast to other cpus when starting a counter" 2023-11-09 06:44:13 -08:00
jump_label.c
kexec_relocate.S riscv: kexec: Cleanup riscv_kexec_relocate 2023-09-20 02:53:29 -07:00
kgdb.c
machine_kexec.c
machine_kexec_file.c
Makefile Merge patch series "riscv: Add remaining module relocations and tests" 2023-11-07 14:59:35 -08:00
mcount-dyn.S riscv: Use SYM_*() assembly macros instead of deprecated ones 2023-11-06 09:42:47 -08:00
mcount.S riscv: Use SYM_*() assembly macros instead of deprecated ones 2023-11-06 09:42:47 -08:00
module-sections.c
module.c RISC-V: Don't rely on positional structure initialization 2023-11-07 15:00:05 -08:00
patch.c riscv: implement a memset like function for text 2023-09-06 06:26:06 -07:00
perf_callchain.c
perf_regs.c
process.c riscv: add support for PR_SET_UNALIGN and PR_GET_UNALIGN 2023-11-01 08:34:59 -07:00
ptrace.c RISC-V: Add ptrace support for vectors 2023-09-01 13:05:38 -07:00
reset.c
riscv_ksyms.c
sbi-ipi.c
sbi.c riscv: Make __flush_tlb_range() loop over pte instead of flushing the whole tlb 2023-11-06 07:20:51 -08:00
setup.c Merge patch "drivers: perf: Do not broadcast to other cpus when starting a counter" 2023-11-09 06:44:13 -08:00
signal.c Merge patch "drivers: perf: Do not broadcast to other cpus when starting a counter" 2023-11-09 06:44:13 -08:00
smp.c
smpboot.c RISC-V: Probe misaligned access speed in parallel 2023-11-07 15:13:47 -08:00
soc.c
stacktrace.c
suspend.c
suspend_entry.S riscv: Use SYM_*() assembly macros instead of deprecated ones 2023-11-06 09:42:47 -08:00
sys_riscv.c riscv: hwprobe: export missing Zbc ISA extension 2023-12-12 15:44:59 -08:00
syscall_table.c
time.c
traps.c Merge patch "drivers: perf: Do not broadcast to other cpus when starting a counter" 2023-11-09 06:44:13 -08:00
traps_misaligned.c RISC-V: Remove __init on unaligned_emulation_finish() 2023-11-07 15:13:19 -08:00
vdso.c
vector.c riscv: Remove now superfluous sentinel element from ctl_table array 2023-10-10 15:22:02 -07:00
vmlinux-xip.lds.S
vmlinux.lds.S