mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-01-11 17:10:13 +00:00
- Enable parallel hotplug for RISC-V
- Optimize vector regset allocation for ptrace()
- Add a kernel selftest for the vector ptrace interface
- Enable the userspace RAID6 test to build and run using RISC-V
vectors
- Add initial support for the Zalasr RISC-V ratified ISA extension
- For the Zicbop RISC-V ratified ISA extension to userspace, expose
hardware and kernel support to userspace and add a kselftest for
Zicbop
- Convert open-coded instances of 'asm goto's that are controlled by
runtime ALTERNATIVEs to use riscv_has_extension_{un,}likely(),
following arm64's alternative_has_cap_{un,}likely()
- Remove an unnecessary mask in the GFP flags used in some calls to
pagetable_alloc()
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEElRDoIDdEz9/svf2Kx4+xDQu9KksFAmkx2zkACgkQx4+xDQu9
KkvagQ/+Iv94J0S8VWS4vvRMtvPMkEHvPADCmEOrMrVsQ+hZdasKsSFBKY4DHZt6
baGKEQoyJ0NDrIt51uNWzmR503/PGPwVYSDfrgrpS87IkcO9OWe/HiMSEAu0aCyp
dhKGYnjWUtawWzFQg1GQ2n1vLOm5cQ2u1vTptISqU1yg9XlXUN0LNzIqNB8GpQv3
Hm7qqNFyxZOyAC9/ZFGbX2/0KpKQh1xkXSEONxzRGADJ/bqHKKz3hdaOj3aVcoMM
zObvHBm+I0U6AnGSgiZm71dvO0vlijg1RsuD/wd1DlcGO9QAuaPHX+RKqmJUJFe8
d0JjOon+d6n/pBKxoPnZyfB1IHxFNb3kX3LjmKdP6NYeOmdHZ7LI3dzB+LFyPXZe
mkC948+9GExEqmHQx5ZqyCWDwKtknIQPA45ZjBi8e5YOU8nJQiapShYWQu/6ybKV
GFHRqjDIGfhpjZGVdxnUX2Iok1XcwaGKrI6/6P6WlQ/zHKGurtEEtGiI7XHDYS8m
FSGxYay4GIWUsNbNSBWcZp5QaGH0jW7qiZle3DR+8gDLe1DJzbIo6pWMiArm5v7x
fUmroR4FcF9x2X7A01IB2tEUGf/0nfuHgVfMNPNoHBGsiRs9mXzLMngJjbFXOGyF
EP61/W+K+eaJ0jjkfmnscBQEy8URLSNoACnwQLT9SQcAIC4xWTs=
=J1nv
-----END PGP SIGNATURE-----
Merge tag 'riscv-for-linus-6.19-mw1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux
Pull RISC-V updates from Paul Walmsley:
- Enable parallel hotplug for RISC-V
- Optimize vector regset allocation for ptrace()
- Add a kernel selftest for the vector ptrace interface
- Enable the userspace RAID6 test to build and run using RISC-V vectors
- Add initial support for the Zalasr RISC-V ratified ISA extension
- For the Zicbop RISC-V ratified ISA extension to userspace, expose
hardware and kernel support to userspace and add a kselftest for
Zicbop
- Convert open-coded instances of 'asm goto's that are controlled by
runtime ALTERNATIVEs to use riscv_has_extension_{un,}likely(),
following arm64's alternative_has_cap_{un,}likely()
- Remove an unnecessary mask in the GFP flags used in some calls to
pagetable_alloc()
* tag 'riscv-for-linus-6.19-mw1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux:
selftests/riscv: Add Zicbop prefetch test
riscv: hwprobe: Expose Zicbop extension and its block size
riscv: Introduce Zalasr instructions
riscv: hwprobe: Export Zalasr extension
dt-bindings: riscv: Add Zalasr ISA extension description
riscv: Add ISA extension parsing for Zalasr
selftests: riscv: Add test for the Vector ptrace interface
riscv: ptrace: Optimize the allocation of vector regset
raid6: test: Add support for RISC-V
raid6: riscv: Allow code to be compiled in userspace
raid6: riscv: Prevent compiler from breaking inline vector assembly code
riscv: cmpxchg: Use riscv_has_extension_likely
riscv: bitops: Use riscv_has_extension_likely
riscv: hweight: Use riscv_has_extension_likely
riscv: checksum: Use riscv_has_extension_likely
riscv: pgtable: Use riscv_has_extension_unlikely
riscv: Remove __GFP_HIGHMEM masking
RISC-V: Enable HOTPLUG_PARALLEL for secondary CPUs
126 lines
3.9 KiB
C
126 lines
3.9 KiB
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
/*
|
|
* Copied from arch/arm64/include/asm/hwcap.h
|
|
*
|
|
* Copyright (C) 2012 ARM Ltd.
|
|
* Copyright (C) 2017 SiFive
|
|
*/
|
|
#ifndef _ASM_RISCV_HWCAP_H
|
|
#define _ASM_RISCV_HWCAP_H
|
|
|
|
#include <uapi/asm/hwcap.h>
|
|
|
|
#define RISCV_ISA_EXT_a ('a' - 'a')
|
|
#define RISCV_ISA_EXT_c ('c' - 'a')
|
|
#define RISCV_ISA_EXT_d ('d' - 'a')
|
|
#define RISCV_ISA_EXT_f ('f' - 'a')
|
|
#define RISCV_ISA_EXT_h ('h' - 'a')
|
|
#define RISCV_ISA_EXT_i ('i' - 'a')
|
|
#define RISCV_ISA_EXT_m ('m' - 'a')
|
|
#define RISCV_ISA_EXT_q ('q' - 'a')
|
|
#define RISCV_ISA_EXT_v ('v' - 'a')
|
|
|
|
/*
|
|
* These macros represent the logical IDs of each multi-letter RISC-V ISA
|
|
* extension and are used in the ISA bitmap. The logical IDs start from
|
|
* RISCV_ISA_EXT_BASE, which allows the 0-25 range to be reserved for single
|
|
* letter extensions. The maximum, RISCV_ISA_EXT_MAX, is defined in order
|
|
* to allocate the bitmap and may be increased when necessary.
|
|
*
|
|
* New extensions should just be added to the bottom, rather than added
|
|
* alphabetically, in order to avoid unnecessary shuffling.
|
|
*/
|
|
#define RISCV_ISA_EXT_BASE 26
|
|
|
|
#define RISCV_ISA_EXT_SSCOFPMF 26
|
|
#define RISCV_ISA_EXT_SSTC 27
|
|
#define RISCV_ISA_EXT_SVINVAL 28
|
|
#define RISCV_ISA_EXT_SVPBMT 29
|
|
#define RISCV_ISA_EXT_ZBB 30
|
|
#define RISCV_ISA_EXT_ZICBOM 31
|
|
#define RISCV_ISA_EXT_ZIHINTPAUSE 32
|
|
#define RISCV_ISA_EXT_SVNAPOT 33
|
|
#define RISCV_ISA_EXT_ZICBOZ 34
|
|
#define RISCV_ISA_EXT_SMAIA 35
|
|
#define RISCV_ISA_EXT_SSAIA 36
|
|
#define RISCV_ISA_EXT_ZBA 37
|
|
#define RISCV_ISA_EXT_ZBS 38
|
|
#define RISCV_ISA_EXT_ZICNTR 39
|
|
#define RISCV_ISA_EXT_ZICSR 40
|
|
#define RISCV_ISA_EXT_ZIFENCEI 41
|
|
#define RISCV_ISA_EXT_ZIHPM 42
|
|
#define RISCV_ISA_EXT_SMSTATEEN 43
|
|
#define RISCV_ISA_EXT_ZICOND 44
|
|
#define RISCV_ISA_EXT_ZBC 45
|
|
#define RISCV_ISA_EXT_ZBKB 46
|
|
#define RISCV_ISA_EXT_ZBKC 47
|
|
#define RISCV_ISA_EXT_ZBKX 48
|
|
#define RISCV_ISA_EXT_ZKND 49
|
|
#define RISCV_ISA_EXT_ZKNE 50
|
|
#define RISCV_ISA_EXT_ZKNH 51
|
|
#define RISCV_ISA_EXT_ZKR 52
|
|
#define RISCV_ISA_EXT_ZKSED 53
|
|
#define RISCV_ISA_EXT_ZKSH 54
|
|
#define RISCV_ISA_EXT_ZKT 55
|
|
#define RISCV_ISA_EXT_ZVBB 56
|
|
#define RISCV_ISA_EXT_ZVBC 57
|
|
#define RISCV_ISA_EXT_ZVKB 58
|
|
#define RISCV_ISA_EXT_ZVKG 59
|
|
#define RISCV_ISA_EXT_ZVKNED 60
|
|
#define RISCV_ISA_EXT_ZVKNHA 61
|
|
#define RISCV_ISA_EXT_ZVKNHB 62
|
|
#define RISCV_ISA_EXT_ZVKSED 63
|
|
#define RISCV_ISA_EXT_ZVKSH 64
|
|
#define RISCV_ISA_EXT_ZVKT 65
|
|
#define RISCV_ISA_EXT_ZFH 66
|
|
#define RISCV_ISA_EXT_ZFHMIN 67
|
|
#define RISCV_ISA_EXT_ZIHINTNTL 68
|
|
#define RISCV_ISA_EXT_ZVFH 69
|
|
#define RISCV_ISA_EXT_ZVFHMIN 70
|
|
#define RISCV_ISA_EXT_ZFA 71
|
|
#define RISCV_ISA_EXT_ZTSO 72
|
|
#define RISCV_ISA_EXT_ZACAS 73
|
|
#define RISCV_ISA_EXT_ZVE32X 74
|
|
#define RISCV_ISA_EXT_ZVE32F 75
|
|
#define RISCV_ISA_EXT_ZVE64X 76
|
|
#define RISCV_ISA_EXT_ZVE64F 77
|
|
#define RISCV_ISA_EXT_ZVE64D 78
|
|
#define RISCV_ISA_EXT_ZIMOP 79
|
|
#define RISCV_ISA_EXT_ZCA 80
|
|
#define RISCV_ISA_EXT_ZCB 81
|
|
#define RISCV_ISA_EXT_ZCD 82
|
|
#define RISCV_ISA_EXT_ZCF 83
|
|
#define RISCV_ISA_EXT_ZCMOP 84
|
|
#define RISCV_ISA_EXT_ZAWRS 85
|
|
#define RISCV_ISA_EXT_SVVPTC 86
|
|
#define RISCV_ISA_EXT_SMMPM 87
|
|
#define RISCV_ISA_EXT_SMNPM 88
|
|
#define RISCV_ISA_EXT_SSNPM 89
|
|
#define RISCV_ISA_EXT_ZABHA 90
|
|
#define RISCV_ISA_EXT_ZICCRSE 91
|
|
#define RISCV_ISA_EXT_SVADE 92
|
|
#define RISCV_ISA_EXT_SVADU 93
|
|
#define RISCV_ISA_EXT_ZFBFMIN 94
|
|
#define RISCV_ISA_EXT_ZVFBFMIN 95
|
|
#define RISCV_ISA_EXT_ZVFBFWMA 96
|
|
#define RISCV_ISA_EXT_ZAAMO 97
|
|
#define RISCV_ISA_EXT_ZALRSC 98
|
|
#define RISCV_ISA_EXT_ZICBOP 99
|
|
#define RISCV_ISA_EXT_SVRSW60T59B 100
|
|
#define RISCV_ISA_EXT_ZALASR 101
|
|
|
|
#define RISCV_ISA_EXT_XLINUXENVCFG 127
|
|
|
|
#define RISCV_ISA_EXT_MAX 128
|
|
#define RISCV_ISA_EXT_INVALID U32_MAX
|
|
|
|
#ifdef CONFIG_RISCV_M_MODE
|
|
#define RISCV_ISA_EXT_SxAIA RISCV_ISA_EXT_SMAIA
|
|
#define RISCV_ISA_EXT_SUPM RISCV_ISA_EXT_SMNPM
|
|
#else
|
|
#define RISCV_ISA_EXT_SxAIA RISCV_ISA_EXT_SSAIA
|
|
#define RISCV_ISA_EXT_SUPM RISCV_ISA_EXT_SSNPM
|
|
#endif
|
|
|
|
#endif /* _ASM_RISCV_HWCAP_H */
|