linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC PATCH 0/4] riscv: Add Zalasr ISA exntesion support
@ 2025-08-26 14:57 Xu Lu
  2025-08-26 14:57 ` [RFC PATCH 1/4] riscv: add ISA extension parsing for Zalasr Xu Lu
                   ` (4 more replies)
  0 siblings, 5 replies; 8+ messages in thread
From: Xu Lu @ 2025-08-26 14:57 UTC (permalink / raw)
  To: paul.walmsley, palmer, aou, alex, ajones, brs
  Cc: linux-riscv, linux-kernel, Xu Lu

This patch adds support for the Zalasr ISA extension, which supplies the
real load acquire/store release instructions.

The specification can be found here:
https://github.com/riscv/riscv-zalasr/blob/main/chapter2.adoc

Xu Lu (4):
  riscv: add ISA extension parsing for Zalasr
  dt-bindings: riscv: Add Zalasr ISA extension description
  riscv: Instroduce Zalasr instructions
  riscv: Use Zalasr for smp_load_acquire/smp_store_release

 .../devicetree/bindings/riscv/extensions.yaml |  5 ++
 arch/riscv/include/asm/barrier.h              | 79 ++++++++++++++++---
 arch/riscv/include/asm/hwcap.h                |  1 +
 arch/riscv/include/asm/insn-def.h             | 79 +++++++++++++++++++
 arch/riscv/kernel/cpufeature.c                |  1 +
 5 files changed, 154 insertions(+), 11 deletions(-)

-- 
2.20.1


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [RFC PATCH 1/4] riscv: add ISA extension parsing for Zalasr
  2025-08-26 14:57 [RFC PATCH 0/4] riscv: Add Zalasr ISA exntesion support Xu Lu
@ 2025-08-26 14:57 ` Xu Lu
  2025-08-26 14:57 ` [RFC PATCH 2/4] dt-bindings: riscv: Add Zalasr ISA extension description Xu Lu
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 8+ messages in thread
From: Xu Lu @ 2025-08-26 14:57 UTC (permalink / raw)
  To: paul.walmsley, palmer, aou, alex, ajones, brs
  Cc: linux-riscv, linux-kernel, Xu Lu

Add parsing for Zalasr ISA extension.

Signed-off-by: Xu Lu <luxu.kernel@bytedance.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 affd63e11b0a3..ae3852c4f2ca2 100644
--- a/arch/riscv/include/asm/hwcap.h
+++ b/arch/riscv/include/asm/hwcap.h
@@ -106,6 +106,7 @@
 #define RISCV_ISA_EXT_ZAAMO		97
 #define RISCV_ISA_EXT_ZALRSC		98
 #define RISCV_ISA_EXT_ZICBOP		99
+#define RISCV_ISA_EXT_ZALASR		100
 
 #define RISCV_ISA_EXT_XLINUXENVCFG	127
 
diff --git a/arch/riscv/kernel/cpufeature.c b/arch/riscv/kernel/cpufeature.c
index 743d53415572e..bf9d3d92bf372 100644
--- a/arch/riscv/kernel/cpufeature.c
+++ b/arch/riscv/kernel/cpufeature.c
@@ -472,6 +472,7 @@ const struct riscv_isa_ext_data riscv_isa_ext[] = {
 	__RISCV_ISA_EXT_DATA(zaamo, RISCV_ISA_EXT_ZAAMO),
 	__RISCV_ISA_EXT_DATA(zabha, RISCV_ISA_EXT_ZABHA),
 	__RISCV_ISA_EXT_DATA(zacas, RISCV_ISA_EXT_ZACAS),
+	__RISCV_ISA_EXT_DATA(zalasr, RISCV_ISA_EXT_ZALASR),
 	__RISCV_ISA_EXT_DATA(zalrsc, RISCV_ISA_EXT_ZALRSC),
 	__RISCV_ISA_EXT_DATA(zawrs, RISCV_ISA_EXT_ZAWRS),
 	__RISCV_ISA_EXT_DATA(zfa, RISCV_ISA_EXT_ZFA),
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [RFC PATCH 2/4] dt-bindings: riscv: Add Zalasr ISA extension description
  2025-08-26 14:57 [RFC PATCH 0/4] riscv: Add Zalasr ISA exntesion support Xu Lu
  2025-08-26 14:57 ` [RFC PATCH 1/4] riscv: add ISA extension parsing for Zalasr Xu Lu
@ 2025-08-26 14:57 ` Xu Lu
  2025-08-26 14:57 ` [RFC PATCH 3/4] riscv: Instroduce Zalasr instructions Xu Lu
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 8+ messages in thread
From: Xu Lu @ 2025-08-26 14:57 UTC (permalink / raw)
  To: paul.walmsley, palmer, aou, alex, ajones, brs
  Cc: linux-riscv, linux-kernel, Xu Lu

Add description for the Zalasr ISA extension

Signed-off-by: Xu Lu <luxu.kernel@bytedance.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 ede6a58ccf534..6b8c21807a2da 100644
--- a/Documentation/devicetree/bindings/riscv/extensions.yaml
+++ b/Documentation/devicetree/bindings/riscv/extensions.yaml
@@ -248,6 +248,11 @@ properties:
             ratified at commit e87412e621f1 ("integrate Zaamo and Zalrsc text
             (#1304)") of the unprivileged ISA specification.
 
+        - const: zalasr
+          description: |
+            The standard Zalasr extension for load-acquire/store-release as frozen
+            at commit 194f0094 ("Version 0.9 for freeze") of riscv-zalasr.
+
         - const: zawrs
           description: |
             The Zawrs extension for entering a low-power state or for trapping
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [RFC PATCH 3/4] riscv: Instroduce Zalasr instructions
  2025-08-26 14:57 [RFC PATCH 0/4] riscv: Add Zalasr ISA exntesion support Xu Lu
  2025-08-26 14:57 ` [RFC PATCH 1/4] riscv: add ISA extension parsing for Zalasr Xu Lu
  2025-08-26 14:57 ` [RFC PATCH 2/4] dt-bindings: riscv: Add Zalasr ISA extension description Xu Lu
@ 2025-08-26 14:57 ` Xu Lu
  2025-08-26 14:57 ` [RFC PATCH 4/4] riscv: Use Zalasr for smp_load_acquire/smp_store_release Xu Lu
  2025-08-26 17:46 ` [RFC PATCH 0/4] riscv: Add Zalasr ISA exntesion support Conor Dooley
  4 siblings, 0 replies; 8+ messages in thread
From: Xu Lu @ 2025-08-26 14:57 UTC (permalink / raw)
  To: paul.walmsley, palmer, aou, alex, ajones, brs
  Cc: linux-riscv, linux-kernel, Xu Lu

Introduce l{b|h|w|d}.{aq|aqrl} and s{b|h|w|d}.{rl|aqrl} instruction
encodings.

Signed-off-by: Xu Lu <luxu.kernel@bytedance.com>
---
 arch/riscv/include/asm/insn-def.h | 79 +++++++++++++++++++++++++++++++
 1 file changed, 79 insertions(+)

diff --git a/arch/riscv/include/asm/insn-def.h b/arch/riscv/include/asm/insn-def.h
index d5adbaec1d010..3fec7e66ce50f 100644
--- a/arch/riscv/include/asm/insn-def.h
+++ b/arch/riscv/include/asm/insn-def.h
@@ -179,6 +179,7 @@
 #define RV___RS1(v)		__RV_REG(v)
 #define RV___RS2(v)		__RV_REG(v)
 
+#define RV_OPCODE_AMO		RV_OPCODE(47)
 #define RV_OPCODE_MISC_MEM	RV_OPCODE(15)
 #define RV_OPCODE_OP_IMM	RV_OPCODE(19)
 #define RV_OPCODE_SYSTEM	RV_OPCODE(115)
@@ -208,6 +209,84 @@
 	__ASM_STR(.error "hlv.d requires 64-bit support")
 #endif
 
+#define LB_AQ(dest, addr)					\
+	INSN_R(OPCODE_AMO, FUNC3(0), FUNC7(26),			\
+	       RD(dest), RS1(addr), __RS2(0))
+
+#define LB_AQRL(dest, addr)					\
+	INSN_R(OPCODE_AMO, FUNC3(0), FUNC7(27),			\
+	       RD(dest), RS1(addr), __RS2(0))
+
+#define LH_AQ(dest, addr)					\
+	INSN_R(OPCODE_AMO, FUNC3(1), FUNC7(26),			\
+	       RD(dest), RS1(addr), __RS2(0))
+
+#define LH_AQRL(dest, addr)					\
+	INSN_R(OPCODE_AMO, FUNC3(1), FUNC7(27),			\
+	       RD(dest), RS1(addr), __RS2(0))
+
+#define LW_AQ(dest, addr)					\
+	INSN_R(OPCODE_AMO, FUNC3(2), FUNC7(26),			\
+	       RD(dest), RS1(addr), __RS2(0))
+
+#define LW_AQRL(dest, addr)					\
+	INSN_R(OPCODE_AMO, FUNC3(2), FUNC7(27),			\
+	       RD(dest), RS1(addr), __RS2(0))
+
+#define SB_RL(src, addr)					\
+	INSN_R(OPCODE_AMO, FUNC3(0), FUNC7(29),			\
+	       __RD(0), RS1(addr), RS2(src))
+
+#define SB_AQRL(src, addr)					\
+	INSN_R(OPCODE_AMO, FUNC3(0), FUNC7(31),			\
+	       __RD(0), RS1(addr), RS2(src))
+
+#define SH_RL(src, addr)					\
+	INSN_R(OPCODE_AMO, FUNC3(1), FUNC7(29),			\
+	       __RD(0), RS1(addr), RS2(src))
+
+#define SH_AQRL(src, addr)					\
+	INSN_R(OPCODE_AMO, FUNC3(1), FUNC7(31),			\
+	       __RD(0), RS1(addr), RS2(src))
+
+#define SW_RL(src, addr)					\
+	INSN_R(OPCODE_AMO, FUNC3(2), FUNC7(29),			\
+	       __RD(0), RS1(addr), RS2(src))
+
+#define SW_AQRL(src, addr)					\
+	INSN_R(OPCODE_AMO, FUNC3(2), FUNC7(31),			\
+	       __RD(0), RS1(addr), RS2(src))
+
+#ifdef CONFIG_64BIT
+#define LD_AQ(dest, addr)					\
+	INSN_R(OPCODE_AMO, FUNC3(3), FUNC7(26),			\
+	       RD(dest), RS1(addr), __RS2(0))
+
+#define LD_AQRL(dest, addr)					\
+	INSN_R(OPCODE_AMO, FUNC3(3), FUNC7(27),			\
+	       RD(dest), RS1(addr), __RS2(0))
+
+#define SD_RL(src, addr)					\
+	INSN_R(OPCODE_AMO, FUNC3(3), FUNC7(29),			\
+	       __RD(0), RS1(addr), RS2(src))
+
+#define SD_AQRL(src, addr)					\
+	INSN_R(OPCODE_AMO, FUNC3(3), FUNC7(31),			\
+	       __RD(0), RS1(addr), RS2(src))
+#else
+#define LD_AQ(dest, addr)					\
+	__ASM_STR(.error "ld.aq requires 64-bit support")
+
+#define LD_AQRL(dest, addr)					\
+	__ASM_STR(.error "ld.aqrl requires 64-bit support")
+
+#define SD_RL(dest, addr)					\
+	__ASM_STR(.error "sd.rl requires 64-bit support")
+
+#define SD_AQRL(dest, addr)					\
+	__ASM_STR(.error "sd.aqrl requires 64-bit support")
+#endif
+
 #define SINVAL_VMA(vaddr, asid)					\
 	INSN_R(OPCODE_SYSTEM, FUNC3(0), FUNC7(11),		\
 	       __RD(0), RS1(vaddr), RS2(asid))
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [RFC PATCH 4/4] riscv: Use Zalasr for smp_load_acquire/smp_store_release
  2025-08-26 14:57 [RFC PATCH 0/4] riscv: Add Zalasr ISA exntesion support Xu Lu
                   ` (2 preceding siblings ...)
  2025-08-26 14:57 ` [RFC PATCH 3/4] riscv: Instroduce Zalasr instructions Xu Lu
@ 2025-08-26 14:57 ` Xu Lu
  2025-08-26 17:46 ` [RFC PATCH 0/4] riscv: Add Zalasr ISA exntesion support Conor Dooley
  4 siblings, 0 replies; 8+ messages in thread
From: Xu Lu @ 2025-08-26 14:57 UTC (permalink / raw)
  To: paul.walmsley, palmer, aou, alex, ajones, brs
  Cc: linux-riscv, linux-kernel, Xu Lu

Replace fence instructions with Zalasr instructions during acquire or
release operations.

Signed-off-by: Xu Lu <luxu.kernel@bytedance.com>
---
 arch/riscv/include/asm/barrier.h | 79 +++++++++++++++++++++++++++-----
 1 file changed, 68 insertions(+), 11 deletions(-)

diff --git a/arch/riscv/include/asm/barrier.h b/arch/riscv/include/asm/barrier.h
index b8c5726d86acb..b1d2a9a85256d 100644
--- a/arch/riscv/include/asm/barrier.h
+++ b/arch/riscv/include/asm/barrier.h
@@ -51,19 +51,76 @@
  */
 #define smp_mb__after_spinlock()	RISCV_FENCE(iorw, iorw)
 
-#define __smp_store_release(p, v)					\
-do {									\
-	compiletime_assert_atomic_type(*p);				\
-	RISCV_FENCE(rw, w);						\
-	WRITE_ONCE(*p, v);						\
+extern void __bad_size_call_parameter(void);
+
+#define __smp_store_release(p, v)						\
+do {										\
+	compiletime_assert_atomic_type(*p);					\
+	switch (sizeof(*p)) {							\
+	case 1:									\
+		asm volatile(ALTERNATIVE("fence rw, w;\t\nsb %0, 0(%1)\t\n",	\
+					 SB_RL(%0, %1) "\t\nnop\t\n",		\
+					 0, RISCV_ISA_EXT_ZALASR, 1)		\
+					 : : "r" (v), "r" (p) : "memory");	\
+		break;								\
+	case 2:									\
+		asm volatile(ALTERNATIVE("fence rw, w;\t\nsh %0, 0(%1)\t\n",	\
+					 SH_RL(%0, %1) "\t\nnop\t\n",		\
+					 0, RISCV_ISA_EXT_ZALASR, 1)		\
+					 : : "r" (v), "r" (p) : "memory");	\
+		break;								\
+	case 4:									\
+		asm volatile(ALTERNATIVE("fence rw, w;\t\nsw %0, 0(%1)\t\n",	\
+					 SW_RL(%0, %1) "\t\nnop\t\n",		\
+					 0, RISCV_ISA_EXT_ZALASR, 1)		\
+					 : : "r" (v), "r" (p) : "memory");	\
+		break;								\
+	case 8:									\
+		asm volatile(ALTERNATIVE("fence rw, w;\t\nsd %0, 0(%1)\t\n",	\
+					 SD_RL(%0, %1) "\t\nnop\t\n",		\
+					 0, RISCV_ISA_EXT_ZALASR, 1)		\
+					 : : "r" (v), "r" (p) : "memory");	\
+		break;								\
+	default:								\
+		__bad_size_call_parameter();					\
+		break;								\
+	}									\
 } while (0)
 
-#define __smp_load_acquire(p)						\
-({									\
-	typeof(*p) ___p1 = READ_ONCE(*p);				\
-	compiletime_assert_atomic_type(*p);				\
-	RISCV_FENCE(r, rw);						\
-	___p1;								\
+#define __smp_load_acquire(p)							\
+({										\
+	TYPEOF_UNQUAL(*p) val;							\
+	compiletime_assert_atomic_type(*p);					\
+	switch (sizeof(*p)) {							\
+	case 1:									\
+		asm volatile(ALTERNATIVE("lb %0, 0(%1)\t\nfence r, rw\t\n",	\
+					 LB_AQ(%0, %1) "\t\nnop\t\n",		\
+					 0, RISCV_ISA_EXT_ZALASR, 1)		\
+					 : "=r" (val) : "r" (p) : "memory");	\
+		break;								\
+	case 2:									\
+		asm volatile(ALTERNATIVE("lh %0, 0(%1)\t\nfence r, rw\t\n",	\
+					 LH_AQ(%0, %1) "\t\nnop\t\n",		\
+					 0, RISCV_ISA_EXT_ZALASR, 1)		\
+					 : "=r" (val) : "r" (p) : "memory");	\
+		break;								\
+	case 4:									\
+		asm volatile(ALTERNATIVE("lw %0, 0(%1)\t\nfence r, rw\t\n",	\
+					 LW_AQ(%0, %1) "\t\nnop\t\n",		\
+					 0, RISCV_ISA_EXT_ZALASR, 1)		\
+					 : "=r" (val) : "r" (p) : "memory");	\
+		break;								\
+	case 8:									\
+		asm volatile(ALTERNATIVE("ld %0, 0(%1)\t\nfence r, rw\t\n",	\
+					 LD_AQ(%0, %1) "\t\nnop\t\n",		\
+					 0, RISCV_ISA_EXT_ZALASR, 1)		\
+					 : "=r" (val) : "r" (p) : "memory");	\
+		break;								\
+	default:								\
+		__bad_size_call_parameter();					\
+		break;								\
+	}									\
+	val;									\
 })
 
 #ifdef CONFIG_RISCV_ISA_ZAWRS
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [RFC PATCH 0/4] riscv: Add Zalasr ISA exntesion support
  2025-08-26 14:57 [RFC PATCH 0/4] riscv: Add Zalasr ISA exntesion support Xu Lu
                   ` (3 preceding siblings ...)
  2025-08-26 14:57 ` [RFC PATCH 4/4] riscv: Use Zalasr for smp_load_acquire/smp_store_release Xu Lu
@ 2025-08-26 17:46 ` Conor Dooley
  2025-08-27  2:26   ` [External] " Xu Lu
  4 siblings, 1 reply; 8+ messages in thread
From: Conor Dooley @ 2025-08-26 17:46 UTC (permalink / raw)
  To: Xu Lu
  Cc: paul.walmsley, palmer, aou, alex, ajones, brs, linux-riscv,
	linux-kernel

[-- Attachment #1: Type: text/plain, Size: 1069 bytes --]

On Tue, Aug 26, 2025 at 10:57:36PM +0800, Xu Lu wrote:
> This patch adds support for the Zalasr ISA extension, which supplies the
> real load acquire/store release instructions.
> 
> The specification can be found here:
> https://github.com/riscv/riscv-zalasr/blob/main/chapter2.adoc

Why is this an RFC?
Is the RFC tag related to how you have not CCed all relevant mailing
lists and maintainers?

Cheers,
Conor.

> 
> Xu Lu (4):
>   riscv: add ISA extension parsing for Zalasr
>   dt-bindings: riscv: Add Zalasr ISA extension description
>   riscv: Instroduce Zalasr instructions
>   riscv: Use Zalasr for smp_load_acquire/smp_store_release
> 
>  .../devicetree/bindings/riscv/extensions.yaml |  5 ++
>  arch/riscv/include/asm/barrier.h              | 79 ++++++++++++++++---
>  arch/riscv/include/asm/hwcap.h                |  1 +
>  arch/riscv/include/asm/insn-def.h             | 79 +++++++++++++++++++
>  arch/riscv/kernel/cpufeature.c                |  1 +
>  5 files changed, 154 insertions(+), 11 deletions(-)
> 
> -- 
> 2.20.1
> 

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [External] Re: [RFC PATCH 0/4] riscv: Add Zalasr ISA exntesion support
  2025-08-26 17:46 ` [RFC PATCH 0/4] riscv: Add Zalasr ISA exntesion support Conor Dooley
@ 2025-08-27  2:26   ` Xu Lu
  2025-08-27  2:41     ` Xu Lu
  0 siblings, 1 reply; 8+ messages in thread
From: Xu Lu @ 2025-08-27  2:26 UTC (permalink / raw)
  To: Conor Dooley
  Cc: paul.walmsley, palmer, aou, alex, ajones, brs, linux-riscv,
	linux-kernel

Hi Conor,

On Wed, Aug 27, 2025 at 1:46 AM Conor Dooley <conor@kernel.org> wrote:
>
> On Tue, Aug 26, 2025 at 10:57:36PM +0800, Xu Lu wrote:
> > This patch adds support for the Zalasr ISA extension, which supplies the
> > real load acquire/store release instructions.
> >
> > The specification can be found here:
> > https://github.com/riscv/riscv-zalasr/blob/main/chapter2.adoc
>
> Why is this an RFC?

There is still some code using fence to simulate real
load-acquire/store-release insns. For example, RISCV_ACQUIRE_BARRIER
and RISCV_RELEASE_BARRIER, etc. I will resend a formal patch series
after I modify them.

> Is the RFC tag related to how you have not CCed all relevant mailing
> lists and maintainers?

Sorry about this. I will recheck the maintainer list next time.

Best regards,
Xu Lu

>
> Cheers,
> Conor.
>
> >
> > Xu Lu (4):
> >   riscv: add ISA extension parsing for Zalasr
> >   dt-bindings: riscv: Add Zalasr ISA extension description
> >   riscv: Instroduce Zalasr instructions
> >   riscv: Use Zalasr for smp_load_acquire/smp_store_release
> >
> >  .../devicetree/bindings/riscv/extensions.yaml |  5 ++
> >  arch/riscv/include/asm/barrier.h              | 79 ++++++++++++++++---
> >  arch/riscv/include/asm/hwcap.h                |  1 +
> >  arch/riscv/include/asm/insn-def.h             | 79 +++++++++++++++++++
> >  arch/riscv/kernel/cpufeature.c                |  1 +
> >  5 files changed, 154 insertions(+), 11 deletions(-)
> >
> > --
> > 2.20.1
> >

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [External] Re: [RFC PATCH 0/4] riscv: Add Zalasr ISA exntesion support
  2025-08-27  2:26   ` [External] " Xu Lu
@ 2025-08-27  2:41     ` Xu Lu
  0 siblings, 0 replies; 8+ messages in thread
From: Xu Lu @ 2025-08-27  2:41 UTC (permalink / raw)
  To: Conor Dooley
  Cc: paul.walmsley, palmer, aou, alex, ajones, brs, linux-riscv,
	linux-kernel

On Wed, Aug 27, 2025 at 10:26 AM Xu Lu <luxu.kernel@bytedance.com> wrote:
>
> Hi Conor,
>
> On Wed, Aug 27, 2025 at 1:46 AM Conor Dooley <conor@kernel.org> wrote:
> >
> > On Tue, Aug 26, 2025 at 10:57:36PM +0800, Xu Lu wrote:
> > > This patch adds support for the Zalasr ISA extension, which supplies the
> > > real load acquire/store release instructions.
> > >
> > > The specification can be found here:
> > > https://github.com/riscv/riscv-zalasr/blob/main/chapter2.adoc
> >
> > Why is this an RFC?
>
> There is still some code using fence to simulate real
> load-acquire/store-release insns. For example, RISCV_ACQUIRE_BARRIER
> and RISCV_RELEASE_BARRIER, etc. I will resend a formal patch series
> after I modify them.

Or maybe I will skip such code as they have different semantics with
load-acquire/store-release as there is no need to load or store any
data.

>
> > Is the RFC tag related to how you have not CCed all relevant mailing
> > lists and maintainers?
>
> Sorry about this. I will recheck the maintainer list next time.
>
> Best regards,
> Xu Lu
>
> >
> > Cheers,
> > Conor.
> >
> > >
> > > Xu Lu (4):
> > >   riscv: add ISA extension parsing for Zalasr
> > >   dt-bindings: riscv: Add Zalasr ISA extension description
> > >   riscv: Instroduce Zalasr instructions
> > >   riscv: Use Zalasr for smp_load_acquire/smp_store_release
> > >
> > >  .../devicetree/bindings/riscv/extensions.yaml |  5 ++
> > >  arch/riscv/include/asm/barrier.h              | 79 ++++++++++++++++---
> > >  arch/riscv/include/asm/hwcap.h                |  1 +
> > >  arch/riscv/include/asm/insn-def.h             | 79 +++++++++++++++++++
> > >  arch/riscv/kernel/cpufeature.c                |  1 +
> > >  5 files changed, 154 insertions(+), 11 deletions(-)
> > >
> > > --
> > > 2.20.1
> > >

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2025-08-27  2:41 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-26 14:57 [RFC PATCH 0/4] riscv: Add Zalasr ISA exntesion support Xu Lu
2025-08-26 14:57 ` [RFC PATCH 1/4] riscv: add ISA extension parsing for Zalasr Xu Lu
2025-08-26 14:57 ` [RFC PATCH 2/4] dt-bindings: riscv: Add Zalasr ISA extension description Xu Lu
2025-08-26 14:57 ` [RFC PATCH 3/4] riscv: Instroduce Zalasr instructions Xu Lu
2025-08-26 14:57 ` [RFC PATCH 4/4] riscv: Use Zalasr for smp_load_acquire/smp_store_release Xu Lu
2025-08-26 17:46 ` [RFC PATCH 0/4] riscv: Add Zalasr ISA exntesion support Conor Dooley
2025-08-27  2:26   ` [External] " Xu Lu
2025-08-27  2:41     ` Xu Lu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).