* [PATCH 1/9] riscv: add ISA extension parsing for Ztso
2023-12-13 11:32 [PATCH 0/9] riscv: hwprobe: add Zicond, Zam, Zacas and Ztso support Clément Léger
@ 2023-12-13 11:32 ` Clément Léger
2023-12-13 11:32 ` [PATCH 2/9] riscv: hwprobe: export Ztso ISA extension Clément Léger
` (7 subsequent siblings)
8 siblings, 0 replies; 14+ messages in thread
From: Clément Léger @ 2023-12-13 11:32 UTC (permalink / raw)
To: linux-doc, linux-riscv, linux-kernel, devicetree
Cc: Clément Léger, Jonathan Corbet, Paul Walmsley,
Palmer Dabbelt, Albert Ou, Conor Dooley, Rob Herring,
Krzysztof Kozlowski, Robbin Ehn
Add support to parse the Ztso string in the riscv,isa string. The
bindings already supports it but not the ISA parsing code.
Signed-off-by: Clément Léger <cleger@rivosinc.com>
---
arch/riscv/include/asm/hwcap.h | 1 +
arch/riscv/kernel/cpufeature.c | 1 +
2 files changed, 2 insertions(+)
diff --git a/arch/riscv/include/asm/hwcap.h b/arch/riscv/include/asm/hwcap.h
index 2438d4685da6..3b31efe2f716 100644
--- a/arch/riscv/include/asm/hwcap.h
+++ b/arch/riscv/include/asm/hwcap.h
@@ -84,6 +84,7 @@
#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_MAX 128
#define RISCV_ISA_EXT_INVALID U32_MAX
diff --git a/arch/riscv/kernel/cpufeature.c b/arch/riscv/kernel/cpufeature.c
index dc0ab3e97cd2..3eb48a0eecb3 100644
--- a/arch/riscv/kernel/cpufeature.c
+++ b/arch/riscv/kernel/cpufeature.c
@@ -279,6 +279,7 @@ const struct riscv_isa_ext_data riscv_isa_ext[] = {
__RISCV_ISA_EXT_DATA(zkt, RISCV_ISA_EXT_ZKT),
__RISCV_ISA_EXT_DATA(zksed, RISCV_ISA_EXT_ZKSED),
__RISCV_ISA_EXT_DATA(zksh, RISCV_ISA_EXT_ZKSH),
+ __RISCV_ISA_EXT_DATA(ztso, RISCV_ISA_EXT_ZTSO),
__RISCV_ISA_EXT_SUPERSET(zvbb, RISCV_ISA_EXT_ZVBB, riscv_zvbb_exts),
__RISCV_ISA_EXT_DATA(zvbc, RISCV_ISA_EXT_ZVBC),
__RISCV_ISA_EXT_DATA(zvfh, RISCV_ISA_EXT_ZVFH),
--
2.43.0
^ permalink raw reply related [flat|nested] 14+ messages in thread* [PATCH 2/9] riscv: hwprobe: export Ztso ISA extension
2023-12-13 11:32 [PATCH 0/9] riscv: hwprobe: add Zicond, Zam, Zacas and Ztso support Clément Léger
2023-12-13 11:32 ` [PATCH 1/9] riscv: add ISA extension parsing for Ztso Clément Léger
@ 2023-12-13 11:32 ` Clément Léger
2023-12-13 11:32 ` [PATCH 3/9] dt-bindings: riscv: add Zam ISA extension description Clément Léger
` (6 subsequent siblings)
8 siblings, 0 replies; 14+ messages in thread
From: Clément Léger @ 2023-12-13 11:32 UTC (permalink / raw)
To: linux-doc, linux-riscv, linux-kernel, devicetree
Cc: Clément Léger, Jonathan Corbet, Paul Walmsley,
Palmer Dabbelt, Albert Ou, Conor Dooley, Rob Herring,
Krzysztof Kozlowski, Robbin Ehn
Export the Ztso extension to userspace.
Signed-off-by: Clément Léger <cleger@rivosinc.com>
---
Documentation/arch/riscv/hwprobe.rst | 4 ++++
arch/riscv/include/uapi/asm/hwprobe.h | 1 +
arch/riscv/kernel/sys_riscv.c | 1 +
3 files changed, 6 insertions(+)
diff --git a/Documentation/arch/riscv/hwprobe.rst b/Documentation/arch/riscv/hwprobe.rst
index 41463b932268..10bd7b170118 100644
--- a/Documentation/arch/riscv/hwprobe.rst
+++ b/Documentation/arch/riscv/hwprobe.rst
@@ -161,6 +161,10 @@ The following keys are defined:
defined in the RISC-V ISA manual starting from commit 056b6ff467c7
("Zfa is ratified").
+ * :c:macro:`RISCV_HWPROBE_EXT_ZTSO`: The Ztso extension is supported as
+ defined in the RISC-V ISA manual starting from commit 5618fb5a216b
+ ("Ztso is now ratified.")
+
* :c:macro:`RISCV_HWPROBE_KEY_CPUPERF_0`: A bitmask that contains performance
information about the selected set of processors.
diff --git a/arch/riscv/include/uapi/asm/hwprobe.h b/arch/riscv/include/uapi/asm/hwprobe.h
index 91fbe1a7f2e2..01ac3dc196e5 100644
--- a/arch/riscv/include/uapi/asm/hwprobe.h
+++ b/arch/riscv/include/uapi/asm/hwprobe.h
@@ -56,6 +56,7 @@ struct riscv_hwprobe {
#define RISCV_HWPROBE_EXT_ZVFH (1 << 30)
#define RISCV_HWPROBE_EXT_ZVFHMIN (1 << 31)
#define RISCV_HWPROBE_EXT_ZFA (1ULL << 32)
+#define RISCV_HWPROBE_EXT_ZTSO (1ULL << 33)
#define RISCV_HWPROBE_KEY_CPUPERF_0 5
#define RISCV_HWPROBE_MISALIGNED_UNKNOWN (0 << 0)
#define RISCV_HWPROBE_MISALIGNED_EMULATED (1 << 0)
diff --git a/arch/riscv/kernel/sys_riscv.c b/arch/riscv/kernel/sys_riscv.c
index f0bd7b480b7f..6564fa9e7a7f 100644
--- a/arch/riscv/kernel/sys_riscv.c
+++ b/arch/riscv/kernel/sys_riscv.c
@@ -174,6 +174,7 @@ static void hwprobe_isa_ext0(struct riscv_hwprobe *pair,
EXT_KEY(ZKSH);
EXT_KEY(ZKT);
EXT_KEY(ZIHINTNTL);
+ EXT_KEY(ZTSO);
if (has_vector()) {
EXT_KEY(ZVBB);
--
2.43.0
^ permalink raw reply related [flat|nested] 14+ messages in thread* [PATCH 3/9] dt-bindings: riscv: add Zam ISA extension description
2023-12-13 11:32 [PATCH 0/9] riscv: hwprobe: add Zicond, Zam, Zacas and Ztso support Clément Léger
2023-12-13 11:32 ` [PATCH 1/9] riscv: add ISA extension parsing for Ztso Clément Léger
2023-12-13 11:32 ` [PATCH 2/9] riscv: hwprobe: export Ztso ISA extension Clément Léger
@ 2023-12-13 11:32 ` Clément Léger
2023-12-14 14:11 ` Conor Dooley
2023-12-13 11:33 ` [PATCH 4/9] riscv: add ISA extension parsing for Zam Clément Léger
` (5 subsequent siblings)
8 siblings, 1 reply; 14+ messages in thread
From: Clément Léger @ 2023-12-13 11:32 UTC (permalink / raw)
To: linux-doc, linux-riscv, linux-kernel, devicetree
Cc: Clément Léger, Jonathan Corbet, Paul Walmsley,
Palmer Dabbelt, Albert Ou, Conor Dooley, Rob Herring,
Krzysztof Kozlowski, Robbin Ehn
Add description for the Zam ISA extension.
Signed-off-by: Clément Léger <cleger@rivosinc.com>
---
Documentation/devicetree/bindings/riscv/extensions.yaml | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/Documentation/devicetree/bindings/riscv/extensions.yaml b/Documentation/devicetree/bindings/riscv/extensions.yaml
index 3574a0b70be4..912cc6a42eb4 100644
--- a/Documentation/devicetree/bindings/riscv/extensions.yaml
+++ b/Documentation/devicetree/bindings/riscv/extensions.yaml
@@ -171,6 +171,11 @@ properties:
memory types as ratified in the 20191213 version of the privileged
ISA specification.
+ - const: zam
+ description: |
+ The standard Zam extension for misaligned atomics is supported as
+ ratified in version 20191213 of the riscv-isa-manual.
+
- const: zba
description: |
The standard Zba bit-manipulation extension for address generation
--
2.43.0
^ permalink raw reply related [flat|nested] 14+ messages in thread* Re: [PATCH 3/9] dt-bindings: riscv: add Zam ISA extension description
2023-12-13 11:32 ` [PATCH 3/9] dt-bindings: riscv: add Zam ISA extension description Clément Léger
@ 2023-12-14 14:11 ` Conor Dooley
2023-12-15 8:26 ` Clément Léger
0 siblings, 1 reply; 14+ messages in thread
From: Conor Dooley @ 2023-12-14 14:11 UTC (permalink / raw)
To: Clément Léger
Cc: linux-doc, linux-riscv, linux-kernel, devicetree, Jonathan Corbet,
Paul Walmsley, Palmer Dabbelt, Albert Ou, Rob Herring,
Krzysztof Kozlowski, Robbin Ehn
[-- Attachment #1: Type: text/plain, Size: 1261 bytes --]
On Wed, Dec 13, 2023 at 12:32:59PM +0100, Clément Léger wrote:
> Add description for the Zam ISA extension.
>
> Signed-off-by: Clément Léger <cleger@rivosinc.com>
> ---
> Documentation/devicetree/bindings/riscv/extensions.yaml | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/riscv/extensions.yaml b/Documentation/devicetree/bindings/riscv/extensions.yaml
> index 3574a0b70be4..912cc6a42eb4 100644
> --- a/Documentation/devicetree/bindings/riscv/extensions.yaml
> +++ b/Documentation/devicetree/bindings/riscv/extensions.yaml
> @@ -171,6 +171,11 @@ properties:
> memory types as ratified in the 20191213 version of the privileged
> ISA specification.
>
> + - const: zam
> + description: |
> + The standard Zam extension for misaligned atomics is supported as
> + ratified in version 20191213 of the riscv-isa-manual.
Is "20191213" an actual tag in that repo? Looking at that version of the
spec (because it is a spec version, but I don't think it is a valid
reference to that repo) Zam is listed as Draft. In fact, in the most
recent thing I could find, Zam was still listed as draft.
Are you sure this is ratified?
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 3/9] dt-bindings: riscv: add Zam ISA extension description
2023-12-14 14:11 ` Conor Dooley
@ 2023-12-15 8:26 ` Clément Léger
0 siblings, 0 replies; 14+ messages in thread
From: Clément Léger @ 2023-12-15 8:26 UTC (permalink / raw)
To: Conor Dooley
Cc: linux-doc, linux-riscv, linux-kernel, devicetree, Jonathan Corbet,
Paul Walmsley, Palmer Dabbelt, Albert Ou, Rob Herring,
Krzysztof Kozlowski, Robbin Ehn
On 14/12/2023 15:11, Conor Dooley wrote:
> On Wed, Dec 13, 2023 at 12:32:59PM +0100, Clément Léger wrote:
>> Add description for the Zam ISA extension.
>>
>> Signed-off-by: Clément Léger <cleger@rivosinc.com>
>> ---
>> Documentation/devicetree/bindings/riscv/extensions.yaml | 5 +++++
>> 1 file changed, 5 insertions(+)
>>
>> diff --git a/Documentation/devicetree/bindings/riscv/extensions.yaml b/Documentation/devicetree/bindings/riscv/extensions.yaml
>> index 3574a0b70be4..912cc6a42eb4 100644
>> --- a/Documentation/devicetree/bindings/riscv/extensions.yaml
>> +++ b/Documentation/devicetree/bindings/riscv/extensions.yaml
>> @@ -171,6 +171,11 @@ properties:
>> memory types as ratified in the 20191213 version of the privileged
>> ISA specification.
>>
>> + - const: zam
>> + description: |
>> + The standard Zam extension for misaligned atomics is supported as
>> + ratified in version 20191213 of the riscv-isa-manual.
>
> Is "20191213" an actual tag in that repo? Looking at that version of the
> spec (because it is a spec version, but I don't think it is a valid
> reference to that repo) Zam is listed as Draft. In fact, in the most
> recent thing I could find, Zam was still listed as draft.
Whoops, my bad, I assumed that the chapter being present in the spec
meant it was ratified and I did not checked the listing stating it is
still in draft.
Will remove that from the next version.
Thanks,
Clément
>
> Are you sure this is ratified?
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 4/9] riscv: add ISA extension parsing for Zam
2023-12-13 11:32 [PATCH 0/9] riscv: hwprobe: add Zicond, Zam, Zacas and Ztso support Clément Léger
` (2 preceding siblings ...)
2023-12-13 11:32 ` [PATCH 3/9] dt-bindings: riscv: add Zam ISA extension description Clément Léger
@ 2023-12-13 11:33 ` Clément Léger
2023-12-14 14:14 ` Conor Dooley
2023-12-13 11:33 ` [PATCH 5/9] riscv: hwprobe: export Zam ISA extension Clément Léger
` (4 subsequent siblings)
8 siblings, 1 reply; 14+ messages in thread
From: Clément Léger @ 2023-12-13 11:33 UTC (permalink / raw)
To: linux-doc, linux-riscv, linux-kernel, devicetree
Cc: Clément Léger, Jonathan Corbet, Paul Walmsley,
Palmer Dabbelt, Albert Ou, Conor Dooley, Rob Herring,
Krzysztof Kozlowski, Robbin Ehn
Add parsing for Zam ISA extension which is part of the riscv-isa manual
but was not added to ISA parsing up to now.
Signed-off-by: Clément Léger <cleger@rivosinc.com>
---
arch/riscv/include/asm/hwcap.h | 1 +
arch/riscv/kernel/cpufeature.c | 1 +
2 files changed, 2 insertions(+)
diff --git a/arch/riscv/include/asm/hwcap.h b/arch/riscv/include/asm/hwcap.h
index 3b31efe2f716..016faa08c8ba 100644
--- a/arch/riscv/include/asm/hwcap.h
+++ b/arch/riscv/include/asm/hwcap.h
@@ -85,6 +85,7 @@
#define RISCV_ISA_EXT_ZVFHMIN 70
#define RISCV_ISA_EXT_ZFA 71
#define RISCV_ISA_EXT_ZTSO 72
+#define RISCV_ISA_EXT_ZAM 73
#define RISCV_ISA_EXT_MAX 128
#define RISCV_ISA_EXT_INVALID U32_MAX
diff --git a/arch/riscv/kernel/cpufeature.c b/arch/riscv/kernel/cpufeature.c
index 3eb48a0eecb3..e999320398b7 100644
--- a/arch/riscv/kernel/cpufeature.c
+++ b/arch/riscv/kernel/cpufeature.c
@@ -259,6 +259,7 @@ const struct riscv_isa_ext_data riscv_isa_ext[] = {
__RISCV_ISA_EXT_DATA(zihintntl, RISCV_ISA_EXT_ZIHINTNTL),
__RISCV_ISA_EXT_DATA(zihintpause, RISCV_ISA_EXT_ZIHINTPAUSE),
__RISCV_ISA_EXT_DATA(zihpm, RISCV_ISA_EXT_ZIHPM),
+ __RISCV_ISA_EXT_DATA(zam, RISCV_ISA_EXT_ZAM),
__RISCV_ISA_EXT_DATA(zfa, RISCV_ISA_EXT_ZFA),
__RISCV_ISA_EXT_DATA(zfh, RISCV_ISA_EXT_ZFH),
__RISCV_ISA_EXT_DATA(zfhmin, RISCV_ISA_EXT_ZFHMIN),
--
2.43.0
^ permalink raw reply related [flat|nested] 14+ messages in thread* Re: [PATCH 4/9] riscv: add ISA extension parsing for Zam
2023-12-13 11:33 ` [PATCH 4/9] riscv: add ISA extension parsing for Zam Clément Léger
@ 2023-12-14 14:14 ` Conor Dooley
0 siblings, 0 replies; 14+ messages in thread
From: Conor Dooley @ 2023-12-14 14:14 UTC (permalink / raw)
To: Clément Léger
Cc: linux-doc, linux-riscv, linux-kernel, devicetree, Jonathan Corbet,
Paul Walmsley, Palmer Dabbelt, Albert Ou, Rob Herring,
Krzysztof Kozlowski, Robbin Ehn
[-- Attachment #1: Type: text/plain, Size: 1592 bytes --]
On Wed, Dec 13, 2023 at 12:33:00PM +0100, Clément Léger wrote:
> Add parsing for Zam ISA extension which is part of the riscv-isa manual
> but was not added to ISA parsing up to now.
This does not appear to be frozen or ratified, NAK.
Cheers,
Conor.
>
> Signed-off-by: Clément Léger <cleger@rivosinc.com>
> ---
> arch/riscv/include/asm/hwcap.h | 1 +
> arch/riscv/kernel/cpufeature.c | 1 +
> 2 files changed, 2 insertions(+)
>
> diff --git a/arch/riscv/include/asm/hwcap.h b/arch/riscv/include/asm/hwcap.h
> index 3b31efe2f716..016faa08c8ba 100644
> --- a/arch/riscv/include/asm/hwcap.h
> +++ b/arch/riscv/include/asm/hwcap.h
> @@ -85,6 +85,7 @@
> #define RISCV_ISA_EXT_ZVFHMIN 70
> #define RISCV_ISA_EXT_ZFA 71
> #define RISCV_ISA_EXT_ZTSO 72
> +#define RISCV_ISA_EXT_ZAM 73
>
> #define RISCV_ISA_EXT_MAX 128
> #define RISCV_ISA_EXT_INVALID U32_MAX
> diff --git a/arch/riscv/kernel/cpufeature.c b/arch/riscv/kernel/cpufeature.c
> index 3eb48a0eecb3..e999320398b7 100644
> --- a/arch/riscv/kernel/cpufeature.c
> +++ b/arch/riscv/kernel/cpufeature.c
> @@ -259,6 +259,7 @@ const struct riscv_isa_ext_data riscv_isa_ext[] = {
> __RISCV_ISA_EXT_DATA(zihintntl, RISCV_ISA_EXT_ZIHINTNTL),
> __RISCV_ISA_EXT_DATA(zihintpause, RISCV_ISA_EXT_ZIHINTPAUSE),
> __RISCV_ISA_EXT_DATA(zihpm, RISCV_ISA_EXT_ZIHPM),
> + __RISCV_ISA_EXT_DATA(zam, RISCV_ISA_EXT_ZAM),
> __RISCV_ISA_EXT_DATA(zfa, RISCV_ISA_EXT_ZFA),
> __RISCV_ISA_EXT_DATA(zfh, RISCV_ISA_EXT_ZFH),
> __RISCV_ISA_EXT_DATA(zfhmin, RISCV_ISA_EXT_ZFHMIN),
> --
> 2.43.0
>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 5/9] riscv: hwprobe: export Zam ISA extension
2023-12-13 11:32 [PATCH 0/9] riscv: hwprobe: add Zicond, Zam, Zacas and Ztso support Clément Léger
` (3 preceding siblings ...)
2023-12-13 11:33 ` [PATCH 4/9] riscv: add ISA extension parsing for Zam Clément Léger
@ 2023-12-13 11:33 ` Clément Léger
2023-12-13 11:33 ` [PATCH 6/9] dt-bindings: riscv: add Zacas ISA extension description Clément Léger
` (3 subsequent siblings)
8 siblings, 0 replies; 14+ messages in thread
From: Clément Léger @ 2023-12-13 11:33 UTC (permalink / raw)
To: linux-doc, linux-riscv, linux-kernel, devicetree
Cc: Clément Léger, Jonathan Corbet, Paul Walmsley,
Palmer Dabbelt, Albert Ou, Conor Dooley, Rob Herring,
Krzysztof Kozlowski, Robbin Ehn
Export Zam ISA extension through hwprobe.
Signed-off-by: Clément Léger <cleger@rivosinc.com>
---
Documentation/arch/riscv/hwprobe.rst | 3 +++
arch/riscv/include/uapi/asm/hwprobe.h | 1 +
arch/riscv/kernel/sys_riscv.c | 1 +
3 files changed, 5 insertions(+)
diff --git a/Documentation/arch/riscv/hwprobe.rst b/Documentation/arch/riscv/hwprobe.rst
index 10bd7b170118..9b19ca3433de 100644
--- a/Documentation/arch/riscv/hwprobe.rst
+++ b/Documentation/arch/riscv/hwprobe.rst
@@ -165,6 +165,9 @@ The following keys are defined:
defined in the RISC-V ISA manual starting from commit 5618fb5a216b
("Ztso is now ratified.")
+ * :c:macro:`RISCV_HWPROBE_EXT_ZAM`: The Zam extension v0.1 is supported as
+ defined in the RISC-V ISA manual.
+
* :c:macro:`RISCV_HWPROBE_KEY_CPUPERF_0`: A bitmask that contains performance
information about the selected set of processors.
diff --git a/arch/riscv/include/uapi/asm/hwprobe.h b/arch/riscv/include/uapi/asm/hwprobe.h
index 01ac3dc196e5..2350c45741a6 100644
--- a/arch/riscv/include/uapi/asm/hwprobe.h
+++ b/arch/riscv/include/uapi/asm/hwprobe.h
@@ -57,6 +57,7 @@ struct riscv_hwprobe {
#define RISCV_HWPROBE_EXT_ZVFHMIN (1 << 31)
#define RISCV_HWPROBE_EXT_ZFA (1ULL << 32)
#define RISCV_HWPROBE_EXT_ZTSO (1ULL << 33)
+#define RISCV_HWPROBE_EXT_ZAM (1ULL << 34)
#define RISCV_HWPROBE_KEY_CPUPERF_0 5
#define RISCV_HWPROBE_MISALIGNED_UNKNOWN (0 << 0)
#define RISCV_HWPROBE_MISALIGNED_EMULATED (1 << 0)
diff --git a/arch/riscv/kernel/sys_riscv.c b/arch/riscv/kernel/sys_riscv.c
index 6564fa9e7a7f..a8473d7f9d1e 100644
--- a/arch/riscv/kernel/sys_riscv.c
+++ b/arch/riscv/kernel/sys_riscv.c
@@ -175,6 +175,7 @@ static void hwprobe_isa_ext0(struct riscv_hwprobe *pair,
EXT_KEY(ZKT);
EXT_KEY(ZIHINTNTL);
EXT_KEY(ZTSO);
+ EXT_KEY(ZAM);
if (has_vector()) {
EXT_KEY(ZVBB);
--
2.43.0
^ permalink raw reply related [flat|nested] 14+ messages in thread* [PATCH 6/9] dt-bindings: riscv: add Zacas ISA extension description
2023-12-13 11:32 [PATCH 0/9] riscv: hwprobe: add Zicond, Zam, Zacas and Ztso support Clément Léger
` (4 preceding siblings ...)
2023-12-13 11:33 ` [PATCH 5/9] riscv: hwprobe: export Zam ISA extension Clément Léger
@ 2023-12-13 11:33 ` Clément Léger
2023-12-14 14:12 ` Conor Dooley
2023-12-13 11:33 ` [PATCH 7/9] riscv: add ISA extension parsing for Zacas Clément Léger
` (2 subsequent siblings)
8 siblings, 1 reply; 14+ messages in thread
From: Clément Léger @ 2023-12-13 11:33 UTC (permalink / raw)
To: linux-doc, linux-riscv, linux-kernel, devicetree
Cc: Clément Léger, Jonathan Corbet, Paul Walmsley,
Palmer Dabbelt, Albert Ou, Conor Dooley, Rob Herring,
Krzysztof Kozlowski, Robbin Ehn
Add description for the Zacas ISA extension which was ratified recently.
Signed-off-by: Clément Léger <cleger@rivosinc.com>
---
Documentation/devicetree/bindings/riscv/extensions.yaml | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/Documentation/devicetree/bindings/riscv/extensions.yaml b/Documentation/devicetree/bindings/riscv/extensions.yaml
index 912cc6a42eb4..264114fa943e 100644
--- a/Documentation/devicetree/bindings/riscv/extensions.yaml
+++ b/Documentation/devicetree/bindings/riscv/extensions.yaml
@@ -171,6 +171,12 @@ properties:
memory types as ratified in the 20191213 version of the privileged
ISA specification.
+ - const: zacas
+ description: |
+ The Zacas extension for Atomic Compare-and-Swap (CAS) instructions
+ is supported as ratified at commit 5059e0ca641c ("update to
+ ratified") of the riscv-zacas.
+
- const: zam
description: |
The standard Zam extension for misaligned atomics is supported as
--
2.43.0
^ permalink raw reply related [flat|nested] 14+ messages in thread* Re: [PATCH 6/9] dt-bindings: riscv: add Zacas ISA extension description
2023-12-13 11:33 ` [PATCH 6/9] dt-bindings: riscv: add Zacas ISA extension description Clément Léger
@ 2023-12-14 14:12 ` Conor Dooley
0 siblings, 0 replies; 14+ messages in thread
From: Conor Dooley @ 2023-12-14 14:12 UTC (permalink / raw)
To: Clément Léger
Cc: linux-doc, linux-riscv, linux-kernel, devicetree, Jonathan Corbet,
Paul Walmsley, Palmer Dabbelt, Albert Ou, Rob Herring,
Krzysztof Kozlowski, Robbin Ehn
[-- Attachment #1: Type: text/plain, Size: 272 bytes --]
On Wed, Dec 13, 2023 at 12:33:02PM +0100, Clément Léger wrote:
> Add description for the Zacas ISA extension which was ratified recently.
>
> Signed-off-by: Clément Léger <cleger@rivosinc.com>
Acked-by: Conor Dooley <conor.dooley@microchip.com>
Cheers,
Conor.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 7/9] riscv: add ISA extension parsing for Zacas
2023-12-13 11:32 [PATCH 0/9] riscv: hwprobe: add Zicond, Zam, Zacas and Ztso support Clément Léger
` (5 preceding siblings ...)
2023-12-13 11:33 ` [PATCH 6/9] dt-bindings: riscv: add Zacas ISA extension description Clément Léger
@ 2023-12-13 11:33 ` Clément Léger
2023-12-13 11:33 ` [PATCH 8/9] riscv: hwprobe: export Zacas ISA extension Clément Léger
2023-12-13 11:33 ` [PATCH 9/9] riscv: hwprobe: export Zicond extension Clément Léger
8 siblings, 0 replies; 14+ messages in thread
From: Clément Léger @ 2023-12-13 11:33 UTC (permalink / raw)
To: linux-doc, linux-riscv, linux-kernel, devicetree
Cc: Clément Léger, Jonathan Corbet, Paul Walmsley,
Palmer Dabbelt, Albert Ou, Conor Dooley, Rob Herring,
Krzysztof Kozlowski, Robbin Ehn
Add parsing for Zacas ISA extension which was ratified recently in the
riscv-zacas manual.
Signed-off-by: Clément Léger <cleger@rivosinc.com>
---
arch/riscv/include/asm/hwcap.h | 1 +
arch/riscv/kernel/cpufeature.c | 1 +
2 files changed, 2 insertions(+)
diff --git a/arch/riscv/include/asm/hwcap.h b/arch/riscv/include/asm/hwcap.h
index 016faa08c8ba..8aee032f092f 100644
--- a/arch/riscv/include/asm/hwcap.h
+++ b/arch/riscv/include/asm/hwcap.h
@@ -86,6 +86,7 @@
#define RISCV_ISA_EXT_ZFA 71
#define RISCV_ISA_EXT_ZTSO 72
#define RISCV_ISA_EXT_ZAM 73
+#define RISCV_ISA_EXT_ZACAS 74
#define RISCV_ISA_EXT_MAX 128
#define RISCV_ISA_EXT_INVALID U32_MAX
diff --git a/arch/riscv/kernel/cpufeature.c b/arch/riscv/kernel/cpufeature.c
index e999320398b7..62443cd632b8 100644
--- a/arch/riscv/kernel/cpufeature.c
+++ b/arch/riscv/kernel/cpufeature.c
@@ -259,6 +259,7 @@ const struct riscv_isa_ext_data riscv_isa_ext[] = {
__RISCV_ISA_EXT_DATA(zihintntl, RISCV_ISA_EXT_ZIHINTNTL),
__RISCV_ISA_EXT_DATA(zihintpause, RISCV_ISA_EXT_ZIHINTPAUSE),
__RISCV_ISA_EXT_DATA(zihpm, RISCV_ISA_EXT_ZIHPM),
+ __RISCV_ISA_EXT_DATA(zacas, RISCV_ISA_EXT_ZACAS),
__RISCV_ISA_EXT_DATA(zam, RISCV_ISA_EXT_ZAM),
__RISCV_ISA_EXT_DATA(zfa, RISCV_ISA_EXT_ZFA),
__RISCV_ISA_EXT_DATA(zfh, RISCV_ISA_EXT_ZFH),
--
2.43.0
^ permalink raw reply related [flat|nested] 14+ messages in thread* [PATCH 8/9] riscv: hwprobe: export Zacas ISA extension
2023-12-13 11:32 [PATCH 0/9] riscv: hwprobe: add Zicond, Zam, Zacas and Ztso support Clément Léger
` (6 preceding siblings ...)
2023-12-13 11:33 ` [PATCH 7/9] riscv: add ISA extension parsing for Zacas Clément Léger
@ 2023-12-13 11:33 ` Clément Léger
2023-12-13 11:33 ` [PATCH 9/9] riscv: hwprobe: export Zicond extension Clément Léger
8 siblings, 0 replies; 14+ messages in thread
From: Clément Léger @ 2023-12-13 11:33 UTC (permalink / raw)
To: linux-doc, linux-riscv, linux-kernel, devicetree
Cc: Clément Léger, Jonathan Corbet, Paul Walmsley,
Palmer Dabbelt, Albert Ou, Conor Dooley, Rob Herring,
Krzysztof Kozlowski, Robbin Ehn
Export Zacas ISA extension through hwprobe.
Signed-off-by: Clément Léger <cleger@rivosinc.com>
---
Documentation/arch/riscv/hwprobe.rst | 4 ++++
arch/riscv/include/uapi/asm/hwprobe.h | 1 +
arch/riscv/kernel/sys_riscv.c | 1 +
3 files changed, 6 insertions(+)
diff --git a/Documentation/arch/riscv/hwprobe.rst b/Documentation/arch/riscv/hwprobe.rst
index 9b19ca3433de..510e49878834 100644
--- a/Documentation/arch/riscv/hwprobe.rst
+++ b/Documentation/arch/riscv/hwprobe.rst
@@ -168,6 +168,10 @@ The following keys are defined:
* :c:macro:`RISCV_HWPROBE_EXT_ZAM`: The Zam extension v0.1 is supported as
defined in the RISC-V ISA manual.
+ * :c:macro:`RISCV_HWPROBE_EXT_ZACAS`: The Zacas extension is supported as
+ defined in the Atomic Compare-and-Swap (CAS) instructions manual starting
+ from commit 5059e0ca641c ("update to ratified").
+
* :c:macro:`RISCV_HWPROBE_KEY_CPUPERF_0`: A bitmask that contains performance
information about the selected set of processors.
diff --git a/arch/riscv/include/uapi/asm/hwprobe.h b/arch/riscv/include/uapi/asm/hwprobe.h
index 2350c45741a6..7ec4331122e7 100644
--- a/arch/riscv/include/uapi/asm/hwprobe.h
+++ b/arch/riscv/include/uapi/asm/hwprobe.h
@@ -58,6 +58,7 @@ struct riscv_hwprobe {
#define RISCV_HWPROBE_EXT_ZFA (1ULL << 32)
#define RISCV_HWPROBE_EXT_ZTSO (1ULL << 33)
#define RISCV_HWPROBE_EXT_ZAM (1ULL << 34)
+#define RISCV_HWPROBE_EXT_ZACAS (1ULL << 35)
#define RISCV_HWPROBE_KEY_CPUPERF_0 5
#define RISCV_HWPROBE_MISALIGNED_UNKNOWN (0 << 0)
#define RISCV_HWPROBE_MISALIGNED_EMULATED (1 << 0)
diff --git a/arch/riscv/kernel/sys_riscv.c b/arch/riscv/kernel/sys_riscv.c
index a8473d7f9d1e..abb0eea3ee08 100644
--- a/arch/riscv/kernel/sys_riscv.c
+++ b/arch/riscv/kernel/sys_riscv.c
@@ -176,6 +176,7 @@ static void hwprobe_isa_ext0(struct riscv_hwprobe *pair,
EXT_KEY(ZIHINTNTL);
EXT_KEY(ZTSO);
EXT_KEY(ZAM);
+ EXT_KEY(ZACAS);
if (has_vector()) {
EXT_KEY(ZVBB);
--
2.43.0
^ permalink raw reply related [flat|nested] 14+ messages in thread* [PATCH 9/9] riscv: hwprobe: export Zicond extension
2023-12-13 11:32 [PATCH 0/9] riscv: hwprobe: add Zicond, Zam, Zacas and Ztso support Clément Léger
` (7 preceding siblings ...)
2023-12-13 11:33 ` [PATCH 8/9] riscv: hwprobe: export Zacas ISA extension Clément Léger
@ 2023-12-13 11:33 ` Clément Léger
8 siblings, 0 replies; 14+ messages in thread
From: Clément Léger @ 2023-12-13 11:33 UTC (permalink / raw)
To: linux-doc, linux-riscv, linux-kernel, devicetree
Cc: Clément Léger, Jonathan Corbet, Paul Walmsley,
Palmer Dabbelt, Albert Ou, Conor Dooley, Rob Herring,
Krzysztof Kozlowski, Robbin Ehn
Export the zicond extension to userspace using hwprobe.
Signed-off-by: Clément Léger <cleger@rivosinc.com>
---
Documentation/arch/riscv/hwprobe.rst | 5 +++++
arch/riscv/include/uapi/asm/hwprobe.h | 1 +
arch/riscv/kernel/sys_riscv.c | 1 +
3 files changed, 7 insertions(+)
diff --git a/Documentation/arch/riscv/hwprobe.rst b/Documentation/arch/riscv/hwprobe.rst
index 510e49878834..a42c3b5d6bc3 100644
--- a/Documentation/arch/riscv/hwprobe.rst
+++ b/Documentation/arch/riscv/hwprobe.rst
@@ -172,6 +172,11 @@ The following keys are defined:
defined in the Atomic Compare-and-Swap (CAS) instructions manual starting
from commit 5059e0ca641c ("update to ratified").
+ * :c:macro:`RISCV_HWPROBE_EXT_ZICOND`: The Zicond extension is supported as
+ defined in the RISC-V Integer Conditional (Zicond) operations extension
+ manual starting from commit 95cf1f9 ("Add changes requested by Ved
+ during signoff")
+
* :c:macro:`RISCV_HWPROBE_KEY_CPUPERF_0`: A bitmask that contains performance
information about the selected set of processors.
diff --git a/arch/riscv/include/uapi/asm/hwprobe.h b/arch/riscv/include/uapi/asm/hwprobe.h
index 7ec4331122e7..4287aa391cf5 100644
--- a/arch/riscv/include/uapi/asm/hwprobe.h
+++ b/arch/riscv/include/uapi/asm/hwprobe.h
@@ -59,6 +59,7 @@ struct riscv_hwprobe {
#define RISCV_HWPROBE_EXT_ZTSO (1ULL << 33)
#define RISCV_HWPROBE_EXT_ZAM (1ULL << 34)
#define RISCV_HWPROBE_EXT_ZACAS (1ULL << 35)
+#define RISCV_HWPROBE_EXT_ZICOND (1ULL << 36)
#define RISCV_HWPROBE_KEY_CPUPERF_0 5
#define RISCV_HWPROBE_MISALIGNED_UNKNOWN (0 << 0)
#define RISCV_HWPROBE_MISALIGNED_EMULATED (1 << 0)
diff --git a/arch/riscv/kernel/sys_riscv.c b/arch/riscv/kernel/sys_riscv.c
index abb0eea3ee08..d94f11534efa 100644
--- a/arch/riscv/kernel/sys_riscv.c
+++ b/arch/riscv/kernel/sys_riscv.c
@@ -177,6 +177,7 @@ static void hwprobe_isa_ext0(struct riscv_hwprobe *pair,
EXT_KEY(ZTSO);
EXT_KEY(ZAM);
EXT_KEY(ZACAS);
+ EXT_KEY(ZICOND);
if (has_vector()) {
EXT_KEY(ZVBB);
--
2.43.0
^ permalink raw reply related [flat|nested] 14+ messages in thread