All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/6] Add 32-bit compat support for arm64 to xenomai
@ 2024-02-14 16:20 Clara Kowalsky
  2024-02-14 16:20 ` [PATCH v3 1/6] compat support: cobalt: Move 32-bit compat files to generic Clara Kowalsky
                   ` (7 more replies)
  0 siblings, 8 replies; 10+ messages in thread
From: Clara Kowalsky @ 2024-02-14 16:20 UTC (permalink / raw)
  To: xenomai; +Cc: florian.bezdeka, jan.kiszka, Clara Kowalsky

Hi all,

this is the third version of the series for adding the 32-bit compat
support for arm64 to xenomai 3. 

Thank you Jan and Florian for your comments.
Changes in v3:
- Squashed patch 2 with old patch 5 "Use syscall_get_arguments()".
- Cleaned up pipeline_get_syscall_args() and added reasoning.

Best regards,
Clara Kowalsky


Clara Kowalsky (6):
  compat support: cobalt: Move 32-bit compat files to generic
  compat support: cobalt/arm: Refactor registers for arm alignment
  compat support: cobalt/arm64: Add compat support and clean-up
  compat support: cobalt: Bump ABI revision
  compat support: lib/cobalt: Fix VFP detection for arm on arm64
  compat support: cobalt/arm64: Enable compat support for arm64

 .../kernel/dovetail/pipeline/pipeline.h       |   9 --
 .../arch/arm/include/asm/xenomai/syscall.h    |  26 ++---
 .../arch/arm/include/asm/xenomai/syscall32.h  |   8 +-
 .../include/asm/xenomai/uapi/abirevision.h    |   1 +
 .../arm/include/asm/xenomai/uapi/features.h   |   3 +-
 .../arm/include/asm/xenomai/uapi/syscall.h    |   2 -
 kernel/cobalt/arch/arm64/Kconfig              |   3 +-
 .../arch/arm64/include/asm/xenomai/syscall.h  |  10 +-
 .../arm64/include/asm/xenomai/syscall32.h     |  12 ---
 .../include/asm/xenomai/uapi/abirevision.h    |  16 +++
 .../arm64/include/asm/xenomai/uapi/features.h |   3 +-
 .../arch/x86/include/asm/xenomai/syscall32.h  | 102 ------------------
 .../asm-generic}/xenomai/syscall32-table.h    |   6 +-
 .../include/asm-generic/xenomai/syscall32.h   |  78 +++++++++++++-
 kernel/cobalt/posix/syscall.c                 |  16 +--
 kernel/cobalt/posix/syscall.h                 |   2 +-
 kernel/cobalt/trace/cobalt-posix.h            |   4 +-
 lib/cobalt/arch/arm/features.c                |   5 +
 .../arch/arm/include/asm/xenomai/syscall.h    |  65 ++++++-----
 19 files changed, 166 insertions(+), 205 deletions(-)
 create mode 120000 kernel/cobalt/arch/arm/include/asm/xenomai/uapi/abirevision.h
 delete mode 100644 kernel/cobalt/arch/arm64/include/asm/xenomai/syscall32.h
 create mode 100644 kernel/cobalt/arch/arm64/include/asm/xenomai/uapi/abirevision.h
 delete mode 100644 kernel/cobalt/arch/x86/include/asm/xenomai/syscall32.h
 rename kernel/cobalt/{arch/x86/include/asm => include/asm-generic}/xenomai/syscall32-table.h (94%)

-- 
2.39.2


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

* [PATCH v3 1/6] compat support: cobalt: Move 32-bit compat files to generic
  2024-02-14 16:20 [PATCH v3 0/6] Add 32-bit compat support for arm64 to xenomai Clara Kowalsky
@ 2024-02-14 16:20 ` Clara Kowalsky
  2024-02-14 16:20 ` [PATCH v3 2/6] compat support: cobalt/arm: Refactor registers for arm alignment Clara Kowalsky
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 10+ messages in thread
From: Clara Kowalsky @ 2024-02-14 16:20 UTC (permalink / raw)
  To: xenomai; +Cc: florian.bezdeka, jan.kiszka, Clara Kowalsky

In preparation for the 32-bit compat support for arm64, the compat files
from x86 are moved to the asm-generic directory. This allows us to use
these files also for arm64.

Signed-off-by: Clara Kowalsky <clara.kowalsky@siemens.com>
---
 .../arch/arm/include/asm/xenomai/syscall32.h  |   8 +-
 .../arm64/include/asm/xenomai/syscall32.h     |  12 ---
 .../arch/x86/include/asm/xenomai/syscall32.h  | 102 ------------------
 .../asm-generic}/xenomai/syscall32-table.h    |   6 +-
 .../include/asm-generic/xenomai/syscall32.h   |  78 +++++++++++++-
 kernel/cobalt/posix/syscall.c                 |  12 +--
 kernel/cobalt/posix/syscall.h                 |   2 +-
 kernel/cobalt/trace/cobalt-posix.h            |   4 +-
 8 files changed, 93 insertions(+), 131 deletions(-)
 delete mode 100644 kernel/cobalt/arch/arm64/include/asm/xenomai/syscall32.h
 delete mode 100644 kernel/cobalt/arch/x86/include/asm/xenomai/syscall32.h
 rename kernel/cobalt/{arch/x86/include/asm => include/asm-generic}/xenomai/syscall32-table.h (94%)

diff --git a/kernel/cobalt/arch/arm/include/asm/xenomai/syscall32.h b/kernel/cobalt/arch/arm/include/asm/xenomai/syscall32.h
index 95c5a1168..11587bd71 100644
--- a/kernel/cobalt/arch/arm/include/asm/xenomai/syscall32.h
+++ b/kernel/cobalt/arch/arm/include/asm/xenomai/syscall32.h
@@ -19,6 +19,12 @@
 #ifndef _COBALT_ARM_ASM_SYSCALL32_H
 #define _COBALT_ARM_ASM_SYSCALL32_H
 
-#include <asm-generic/xenomai/syscall32.h>
+#define __COBALT_CALL32_INITHAND(__handler)
+
+#define __COBALT_CALL32_INITMODE(__mode)
+
+#define __COBALT_CALL32_ENTRY(__name, __handler)
+
+#define __COBALT_CALL_COMPAT(__reg)	0
 
 #endif /* !_COBALT_ARM_ASM_SYSCALL32_H */
diff --git a/kernel/cobalt/arch/arm64/include/asm/xenomai/syscall32.h b/kernel/cobalt/arch/arm64/include/asm/xenomai/syscall32.h
deleted file mode 100644
index 13aa8a761..000000000
--- a/kernel/cobalt/arch/arm64/include/asm/xenomai/syscall32.h
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- * SPDX-License-Identifier: GPL-2.0
- *
- * Copyright (C) 2014 Philippe Gerum  <rpm@xenomai.org>
- */
-
-#ifndef _COBALT_ARM64_SYSCALL32_H
-#define _COBALT_ARM64_SYSCALL32_H
-
-#include <asm-generic/xenomai/syscall32.h>
-
-#endif /* !_COBALT_ARM64_SYSCALL32_H */
diff --git a/kernel/cobalt/arch/x86/include/asm/xenomai/syscall32.h b/kernel/cobalt/arch/x86/include/asm/xenomai/syscall32.h
deleted file mode 100644
index f023de354..000000000
--- a/kernel/cobalt/arch/x86/include/asm/xenomai/syscall32.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Copyright (C) 2014 Philippe Gerum <rpm@xenomai.org>.
- *
- * Xenomai is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published
- * by the Free Software Foundation; either version 2 of the License,
- * or (at your option) any later version.
- *
- * Xenomai is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Xenomai; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-#ifndef _COBALT_X86_ASM_SYSCALL32_H
-#define _COBALT_X86_ASM_SYSCALL32_H
-
-#include <asm/unistd.h>
-
-#ifdef CONFIG_IA32_EMULATION
-
-#define __COBALT_IA32_BASE		256 /* Power of two. */
-
-#define __COBALT_SYSNR32emu(__reg)					\
-	({								\
-		long __nr = __reg;					\
-		if (in_ia32_syscall())					\
-			__nr += __COBALT_IA32_BASE;			\
-		__nr;							\
-	})
-
-#define __COBALT_COMPAT32emu(__reg)					\
-	(in_ia32_syscall() ? __COBALT_COMPAT_BIT : 0)
-
-#if __NR_COBALT_SYSCALLS > __COBALT_IA32_BASE
-#error "__NR_COBALT_SYSCALLS > __COBALT_IA32_BASE"
-#endif
-
-#define __syshand32emu__(__name)	\
-	((cobalt_syshand)(void (*)(void))(CoBaLt32emu_ ## __name))
-
-#define __COBALT_CALL32emu_INITHAND(__handler)	\
-	[__COBALT_IA32_BASE ... __COBALT_IA32_BASE + __NR_COBALT_SYSCALLS-1] = __handler,
-
-#define __COBALT_CALL32emu_INITMODE(__mode)	\
-	[__COBALT_IA32_BASE ... __COBALT_IA32_BASE + __NR_COBALT_SYSCALLS-1] = __mode,
-
-/* ia32 default entry (no thunk) */
-#define __COBALT_CALL32emu_ENTRY(__name, __handler)		\
-	[sc_cobalt_ ## __name + __COBALT_IA32_BASE] = __handler,
-
-/* ia32 thunk installation */
-#define __COBALT_CALL32emu_THUNK(__name)	\
-	__COBALT_CALL32emu_ENTRY(__name, __syshand32emu__(__name))
-
-/* ia32 thunk implementation. */
-#define COBALT_SYSCALL32emu(__name, __mode, __args)	\
-	long CoBaLt32emu_ ## __name __args
-
-/* ia32 thunk declaration. */
-#define COBALT_SYSCALL32emu_DECL(__name, __args)	\
-	long CoBaLt32emu_ ## __name __args
-
-#else /* !CONFIG_IA32_EMULATION */
-
-/* ia32 emulation support disabled. */
-
-#define __COBALT_SYSNR32emu(__reg)	(__reg)
-
-#define __COBALT_COMPAT32emu(__reg)	0
-
-#define __COBALT_CALL32emu_INITHAND(__handler)
-
-#define __COBALT_CALL32emu_INITMODE(__mode)
-
-#define __COBALT_CALL32emu_ENTRY(__name, __handler)
-
-#define __COBALT_CALL32emu_THUNK(__name)
-
-#define COBALT_SYSCALL32emu_DECL(__name, __args)
-
-#endif /* !CONFIG_IA32_EMULATION */
-
-#define __COBALT_CALL32_ENTRY(__name, __handler)	\
-	__COBALT_CALL32emu_ENTRY(__name, __handler)
-
-#define __COBALT_CALL32_INITHAND(__handler)	\
-	__COBALT_CALL32emu_INITHAND(__handler)
-
-#define __COBALT_CALL32_INITMODE(__mode)	\
-	__COBALT_CALL32emu_INITMODE(__mode)
-
-/* Already checked for __COBALT_SYSCALL_BIT */
-#define __COBALT_CALL32_SYSNR(__reg)	__COBALT_SYSNR32emu(__reg)
-
-#define __COBALT_CALL_COMPAT(__reg)	__COBALT_COMPAT32emu(__reg)
-
-#endif /* !_COBALT_X86_ASM_SYSCALL32_H */
diff --git a/kernel/cobalt/arch/x86/include/asm/xenomai/syscall32-table.h b/kernel/cobalt/include/asm-generic/xenomai/syscall32-table.h
similarity index 94%
rename from kernel/cobalt/arch/x86/include/asm/xenomai/syscall32-table.h
rename to kernel/cobalt/include/asm-generic/xenomai/syscall32-table.h
index 3d64c46a7..91a65235f 100644
--- a/kernel/cobalt/arch/x86/include/asm/xenomai/syscall32-table.h
+++ b/kernel/cobalt/include/asm-generic/xenomai/syscall32-table.h
@@ -16,8 +16,8 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
  * 02111-1307, USA.
  */
-#ifndef _COBALT_X86_ASM_SYSCALL32_TABLE_H
-#define _COBALT_X86_ASM_SYSCALL32_TABLE_H
+#ifndef _COBALT_ASM_SYSCALL32_TABLE_H
+#define _COBALT_ASM_SYSCALL32_TABLE_H
 
 /*
  * CAUTION: This file is read verbatim into the main syscall
@@ -59,4 +59,4 @@ __COBALT_CALL32emu_THUNK(mq_timedreceive64)
 __COBALT_CALL32emu_THUNK(sigtimedwait64)
 __COBALT_CALL32emu_THUNK(recvmmsg64)
 
-#endif /* !_COBALT_X86_ASM_SYSCALL32_TABLE_H */
+#endif /* !_COBALT_ASM_SYSCALL32_TABLE_H */
diff --git a/kernel/cobalt/include/asm-generic/xenomai/syscall32.h b/kernel/cobalt/include/asm-generic/xenomai/syscall32.h
index b0c6f4a7c..3e1fcab8f 100644
--- a/kernel/cobalt/include/asm-generic/xenomai/syscall32.h
+++ b/kernel/cobalt/include/asm-generic/xenomai/syscall32.h
@@ -19,12 +19,82 @@
 #ifndef _COBALT_ASM_GENERIC_SYSCALL32_H
 #define _COBALT_ASM_GENERIC_SYSCALL32_H
 
-#define __COBALT_CALL32_INITHAND(__handler)
+#ifdef CONFIG_XENO_ARCH_SYS3264
 
-#define __COBALT_CALL32_INITMODE(__mode)
+#define __COBALT_COMPAT32_BASE		256 /* Power of two. */
 
-#define __COBALT_CALL32_ENTRY(__name, __handler)
+#define __COBALT_SYSNR32emu(__reg)					\
+	({								\
+		long __nr = __reg;					\
+		if (in_compat_syscall())				\
+			__nr += __COBALT_COMPAT32_BASE;			\
+		__nr;							\
+	})
 
-#define __COBALT_CALL_COMPAT(__reg)	0
+#define __COBALT_COMPAT32emu(__reg)					\
+	(in_compat_syscall() ? __COBALT_COMPAT_BIT : 0)
+
+#if __NR_COBALT_SYSCALLS > __COBALT_COMPAT32_BASE
+#error "__NR_COBALT_SYSCALLS > __COBALT_COMPAT32_BASE"
+#endif
+
+#define __syshand32emu__(__name)	\
+	((cobalt_syshand)(void (*)(void))(CoBaLt32emu_ ## __name))
+
+#define __COBALT_CALL32emu_INITHAND(__handler)	\
+	[__COBALT_COMPAT32_BASE ... __COBALT_COMPAT32_BASE + __NR_COBALT_SYSCALLS-1] = __handler,
+
+#define __COBALT_CALL32emu_INITMODE(__mode)	\
+	[__COBALT_COMPAT32_BASE ... __COBALT_COMPAT32_BASE + __NR_COBALT_SYSCALLS-1] = __mode,
+
+/* compat default entry (no thunk) */
+#define __COBALT_CALL32emu_ENTRY(__name, __handler)		\
+	[sc_cobalt_ ## __name + __COBALT_COMPAT32_BASE] = __handler,
+
+/* compat thunk installation */
+#define __COBALT_CALL32emu_THUNK(__name)	\
+	__COBALT_CALL32emu_ENTRY(__name, __syshand32emu__(__name))
+
+/* compat thunk implementation. */
+#define COBALT_SYSCALL32emu(__name, __mode, __args)	\
+	long CoBaLt32emu_ ## __name __args
+
+/* compat thunk declaration. */
+#define COBALT_SYSCALL32emu_DECL(__name, __args)	\
+	long CoBaLt32emu_ ## __name __args
+
+#else /* !CONFIG_XENO_ARCH_SYS3264 */
+
+/* compat support disabled. */
+
+#define __COBALT_SYSNR32emu(__reg)	(__reg)
+
+#define __COBALT_COMPAT32emu(__reg)	0
+
+#define __COBALT_CALL32emu_INITHAND(__handler)
+
+#define __COBALT_CALL32emu_INITMODE(__mode)
+
+#define __COBALT_CALL32emu_ENTRY(__name, __handler)
+
+#define __COBALT_CALL32emu_THUNK(__name)
+
+#define COBALT_SYSCALL32emu_DECL(__name, __args)
+
+#endif /* !CONFIG_XENO_ARCH_SYS3264 */
+
+#define __COBALT_CALL32_ENTRY(__name, __handler)	\
+	__COBALT_CALL32emu_ENTRY(__name, __handler)
+
+#define __COBALT_CALL32_INITHAND(__handler)	\
+	__COBALT_CALL32emu_INITHAND(__handler)
+
+#define __COBALT_CALL32_INITMODE(__mode)	\
+	__COBALT_CALL32emu_INITMODE(__mode)
+
+/* Already checked for __COBALT_SYSCALL_BIT */
+#define __COBALT_CALL32_SYSNR(__reg)	__COBALT_SYSNR32emu(__reg)
+
+#define __COBALT_CALL_COMPAT(__reg)	__COBALT_COMPAT32emu(__reg)
 
 #endif /* !_COBALT_ASM_GENERIC_SYSCALL32_H */
diff --git a/kernel/cobalt/posix/syscall.c b/kernel/cobalt/posix/syscall.c
index 66dd1aec8..6e1f15ea5 100644
--- a/kernel/cobalt/posix/syscall.c
+++ b/kernel/cobalt/posix/syscall.c
@@ -371,12 +371,12 @@ static int CoBaLt_ni(void)
  * handler for a 32bit architecture), optionally followed by a set of
  * 32bit syscall entries offset by an arch-specific base index, which
  * default to the native calls. These nitty-gritty details are defined
- * by <asm/xenomai/syscall32.h>. 32bit architectures - or 64bit ones
+ * by <asm-generic/xenomai/syscall32.h>. 32bit architectures - or 64bit ones
  * for which we don't support any 32bit ABI model - will simply define
  * __COBALT_CALL32_ENTRY() as an empty macro.
  *
  * - finally, 32bit thunk entries are generated by including
- * <asm/xenomai/syscall32-table.h>, overriding the default handlers
+ * <asm-generic/xenomai/syscall32-table.h>, overriding the default handlers
  * installed during the previous step.
  *
  * For instance, with CONFIG_IA32_EMULATION support enabled in an
@@ -385,7 +385,7 @@ static int CoBaLt_ni(void)
  *
  * [sc_cobalt_mq_timedreceive] = CoBaLt_mq_timedreceive,
  * ...
- * [sc_cobalt_mq_timedreceive + __COBALT_IA32_BASE] = CoBaLt32emu_mq_timedreceive,
+ * [sc_cobalt_mq_timedreceive + __COBALT_COMPAT32_BASE] = CoBaLt32emu_mq_timedreceive,
  *
  * CoBaLt32emu_mq_timedreceive() would do the required thunking for
  * dealing with the 32<->64bit conversion of arguments. On the other
@@ -395,10 +395,10 @@ static int CoBaLt_ni(void)
  *
  * [sc_cobalt_sched_yield] = CoBaLt_sched_yield,
  * ...
- * [sc_cobalt_sched_yield + __COBALT_IA32_BASE] = CoBaLt_sched_yield,
+ * [sc_cobalt_sched_yield + __COBALT_COMPAT32_BASE] = CoBaLt_sched_yield,
  *
  * Accordingly, applications targeting the ia32 model issue syscalls
- * in the range [__COBALT_IA32_BASE..__COBALT_IA32_BASE +
+ * in the range [__COBALT_COMPAT32_BASE..__COBALT_COMPAT32_BASE +
  * __NR_COBALT_SYSCALLS-1], whilst native (32/64bit) ones issue
  * syscalls in the range [0..__NR_COBALT_SYSCALLS-1].
  *
@@ -444,7 +444,7 @@ static const cobalt_syshand cobalt_syscalls[] = {
 	__COBALT_CALL_NI
 	__COBALT_CALL_ENTRIES
 #ifdef CONFIG_XENO_ARCH_SYS3264
-#include <asm/xenomai/syscall32-table.h>
+#include <asm-generic/xenomai/syscall32-table.h>
 #endif
 };
 
diff --git a/kernel/cobalt/posix/syscall.h b/kernel/cobalt/posix/syscall.h
index 3a4c98d7a..e43f8d991 100644
--- a/kernel/cobalt/posix/syscall.h
+++ b/kernel/cobalt/posix/syscall.h
@@ -30,7 +30,7 @@ struct pt_regs;
 #define COBALT_SYSCALL_DECL(__name, __args)	\
 	long CoBaLt_ ## __name __args
 
-#include <asm/xenomai/syscall32.h>
+#include <asm-generic/xenomai/syscall32.h>
 
 int handle_head_syscall(bool caller_is_relaxed,
 			struct pt_regs *regs);
diff --git a/kernel/cobalt/trace/cobalt-posix.h b/kernel/cobalt/trace/cobalt-posix.h
index 1c9302324..fc8e72e39 100644
--- a/kernel/cobalt/trace/cobalt-posix.h
+++ b/kernel/cobalt/trace/cobalt-posix.h
@@ -42,8 +42,8 @@
 #define __timespec_args(__name)					\
 	(long long)__entry->tv_sec_##__name, __entry->tv_nsec_##__name
 
-#ifdef CONFIG_IA32_EMULATION
-#define __sc_compat(__name)	, { sc_cobalt_##__name + __COBALT_IA32_BASE, "compat-" #__name }
+#ifdef CONFIG_XENO_ARCH_SYS3264
+#define __sc_compat(__name)	, { sc_cobalt_##__name + __COBALT_COMPAT32_BASE, "compat-" #__name }
 #else
 #define __sc_compat(__name)
 #endif
-- 
2.39.2


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

* [PATCH v3 2/6] compat support: cobalt/arm: Refactor registers for arm alignment
  2024-02-14 16:20 [PATCH v3 0/6] Add 32-bit compat support for arm64 to xenomai Clara Kowalsky
  2024-02-14 16:20 ` [PATCH v3 1/6] compat support: cobalt: Move 32-bit compat files to generic Clara Kowalsky
@ 2024-02-14 16:20 ` Clara Kowalsky
  2024-02-14 16:20 ` [PATCH v3 3/6] compat support: cobalt/arm64: Add compat support and clean-up Clara Kowalsky
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 10+ messages in thread
From: Clara Kowalsky @ 2024-02-14 16:20 UTC (permalink / raw)
  To: xenomai; +Cc: florian.bezdeka, jan.kiszka, Clara Kowalsky

So far, the syscall number for arm is loaded in ARM_ORIG_r0 and ARM_r7
contains the syscall marker XENO_ARM_SYSCALL.
An alignment change is now made with respect to the arm EABI convention
such that ARM_r7 holds the syscall number and therefore r0 to r6 can be
used normally as arguments.
The now unused XENO_ARM_SYSCALL is removed.

With the arm alignment, the specific arm implementation
pipeline_get_syscall_args() for fetching the syscall arguments is not
needed anymore and is replaced by the generic function
syscall_get_arguments().

Signed-off-by: Clara Kowalsky <clara.kowalsky@siemens.com>
---
 .../kernel/dovetail/pipeline/pipeline.h       |  9 ---
 .../arch/arm/include/asm/xenomai/syscall.h    | 26 ++------
 .../arm/include/asm/xenomai/uapi/syscall.h    |  2 -
 kernel/cobalt/posix/syscall.c                 |  4 +-
 .../arch/arm/include/asm/xenomai/syscall.h    | 65 +++++++++----------
 5 files changed, 40 insertions(+), 66 deletions(-)

diff --git a/include/cobalt/kernel/dovetail/pipeline/pipeline.h b/include/cobalt/kernel/dovetail/pipeline/pipeline.h
index 18a7da191..478580fc2 100644
--- a/include/cobalt/kernel/dovetail/pipeline/pipeline.h
+++ b/include/cobalt/kernel/dovetail/pipeline/pipeline.h
@@ -92,13 +92,4 @@ static inline void pipeline_prepare_panic(void)
 	/* N/A */
 }
 
-#ifndef pipeline_get_syscall_args
-static inline void pipeline_get_syscall_args(struct task_struct *task,
-					     struct pt_regs *regs,
-					     unsigned long *args)
-{
-	syscall_get_arguments(task, regs, args);
-}
-#endif	/* !pipeline_get_syscall_args */
-
 #endif /* !_COBALT_KERNEL_DOVETAIL_PIPELINE_H */
diff --git a/kernel/cobalt/arch/arm/include/asm/xenomai/syscall.h b/kernel/cobalt/arch/arm/include/asm/xenomai/syscall.h
index 172197725..0cd59380d 100644
--- a/kernel/cobalt/arch/arm/include/asm/xenomai/syscall.h
+++ b/kernel/cobalt/arch/arm/include/asm/xenomai/syscall.h
@@ -29,13 +29,11 @@
 #include <asm-generic/xenomai/syscall.h>
 
 /*
- * Cobalt syscall numbers can be fetched from ARM_ORIG_r0 with ARM_r7
- * containing the Xenomai syscall marker, Linux syscalls directly from
+ * Cobalt syscall and Linux syscall numbers can be fetched directly from
  * ARM_r7. Since we have to work with Dovetail whilst remaining binary
- * compatible with applications built for the I-pipe, we retain the
- * old syscall signature based on receiving XENO_ARM_SYSCALL in
- * ARM_r7, possibly ORed with __COBALT_SYSCALL_BIT by Dovetail
- * (IPIPE_COMPAT mode).
+ * compatible with applications built for the I-pipe, the syscall signature
+ * is possibly ORed with __COBALT_SYSCALL_BIT by Dovetail (IPIPE_COMPAT
+ * mode).
  *
  * FIXME: We also have __COBALT_SYSCALL_BIT (equal to
  * __OOB_SYSCALL_BIT) present in the actual syscall number in r0,
@@ -44,8 +42,8 @@
  * Dovetail abides by, with the actual syscall number into r7 ORed
  * with __OOB_SYSCALL_BIT, freeing r0 for passing a call argument.
  */
-#define __xn_reg_sys(__regs)	((__regs)->ARM_ORIG_r0)
-#define __xn_syscall_p(__regs)	(((__regs)->ARM_r7 & ~__COBALT_SYSCALL_BIT) == XENO_ARM_SYSCALL)
+#define __xn_reg_sys(__regs)	((__regs)->ARM_r7)
+#define __xn_syscall_p(__regs)	((__regs)->ARM_r7 & __COBALT_SYSCALL_BIT)
 #define __xn_syscall(__regs)	(__xn_reg_sys(__regs) & ~__COBALT_SYSCALL_BIT)
 
 /*
@@ -77,16 +75,4 @@ static inline int __xn_interrupted_p(struct pt_regs *regs)
 	return __xn_reg_rval(regs) == -EINTR;
 }
 
-#define pipeline_get_syscall_args pipeline_get_syscall_args
-static inline void pipeline_get_syscall_args(struct task_struct *task,
-					     struct pt_regs *regs,
-					     unsigned long *args)
-{
-	args[0] = regs->ARM_r1;
-	args[1] = regs->ARM_r2;
-	args[2] = regs->ARM_r3;
-	args[3] = regs->ARM_r4;
-	args[4] = regs->ARM_r5;
-}
-
 #endif /* !_COBALT_ARM_SYSCALL_H */
diff --git a/kernel/cobalt/arch/arm/include/asm/xenomai/uapi/syscall.h b/kernel/cobalt/arch/arm/include/asm/xenomai/uapi/syscall.h
index c079a358c..c9561e030 100644
--- a/kernel/cobalt/arch/arm/include/asm/xenomai/uapi/syscall.h
+++ b/kernel/cobalt/arch/arm/include/asm/xenomai/uapi/syscall.h
@@ -23,8 +23,6 @@
 
 #define __xn_syscode(__nr)	(__COBALT_SYSCALL_BIT | (__nr))
 
-#define XENO_ARM_SYSCALL        0x000F0042	/* carefully chosen... */
-
 #define XENOMAI_SYSARCH_TSCINFO      4
 
 #endif /* !_COBALT_ARM_ASM_UAPI_SYSCALL_H */
diff --git a/kernel/cobalt/posix/syscall.c b/kernel/cobalt/posix/syscall.c
index 6e1f15ea5..1d37cb279 100644
--- a/kernel/cobalt/posix/syscall.c
+++ b/kernel/cobalt/posix/syscall.c
@@ -584,7 +584,7 @@ restart:
 	 */
 
 	p = current;
-	pipeline_get_syscall_args(p, regs, args);
+	syscall_get_arguments(p, regs, args);
 
 	ret = handler(args[0], args[1], args[2], args[3], args[4]);
 	if (ret == -ENOSYS && (sysflags & __xn_exec_adaptive)) {
@@ -733,7 +733,7 @@ restart:
 	}
 
 	p = current;
-	pipeline_get_syscall_args(p, regs, args);
+	syscall_get_arguments(p, regs, args);
 
 	ret = handler(args[0], args[1], args[2], args[3], args[4]);
 	if (ret == -ENOSYS && (sysflags & __xn_exec_adaptive)) {
diff --git a/lib/cobalt/arch/arm/include/asm/xenomai/syscall.h b/lib/cobalt/arch/arm/include/asm/xenomai/syscall.h
index 864330490..105bf9faf 100644
--- a/lib/cobalt/arch/arm/include/asm/xenomai/syscall.h
+++ b/lib/cobalt/arch/arm/include/asm/xenomai/syscall.h
@@ -37,62 +37,61 @@
 #error TLS support (__thread) is broken with GCC >= 4.3, use --disable-tls when configuring
 #endif
 
-#define LOADARGS_0(syscode, dummy...)	\
-	__a0 = (unsigned long) (syscode)
+#define LOADARGS_0(syscode, arg1...)
 #define LOADARGS_1(syscode, arg1)	\
-	LOADARGS_0(syscode);		\
-	__a1 = (unsigned long) (arg1)
+	LOADARGS_0(syscode, arg1);	\
+	__a0 = (unsigned long) (arg1)
 #define LOADARGS_2(syscode, arg1, arg2)	\
 	LOADARGS_1(syscode, arg1);	\
-	__a2 = (unsigned long) (arg2)
+	__a1 = (unsigned long) (arg2)
 #define LOADARGS_3(syscode, arg1, arg2, arg3)	\
 	LOADARGS_2(syscode,  arg1, arg2);	\
-	__a3 = (unsigned long) (arg3)
+	__a2 = (unsigned long) (arg3)
 #define LOADARGS_4(syscode,  arg1, arg2, arg3, arg4)	\
 	LOADARGS_3(syscode,  arg1, arg2, arg3);		\
-	__a4 = (unsigned long) (arg4)
+	__a3 = (unsigned long) (arg4)
 #define LOADARGS_5(syscode, arg1, arg2, arg3, arg4, arg5)	\
 	LOADARGS_4(syscode, arg1, arg2, arg3, arg4);		\
-	__a5 = (unsigned long) (arg5)
+	__a4 = (unsigned long) (arg5)
 
-#define CLOBBER_REGS_0 "r0"
-#define CLOBBER_REGS_1 CLOBBER_REGS_0, "r1"
-#define CLOBBER_REGS_2 CLOBBER_REGS_1, "r2"
-#define CLOBBER_REGS_3 CLOBBER_REGS_2, "r3"
-#define CLOBBER_REGS_4 CLOBBER_REGS_3, "r4"
-#define CLOBBER_REGS_5 CLOBBER_REGS_4, "r5"
+#define CLOBBER_REGS_0
+#define CLOBBER_REGS_1 "r0"
+#define CLOBBER_REGS_2 CLOBBER_REGS_1, "r1"
+#define CLOBBER_REGS_3 CLOBBER_REGS_2, "r2"
+#define CLOBBER_REGS_4 CLOBBER_REGS_3, "r3"
+#define CLOBBER_REGS_5 CLOBBER_REGS_4, "r4"
 
-#define LOADREGS_0 __r0 = __a0
-#define LOADREGS_1 LOADREGS_0; __r1 = __a1
-#define LOADREGS_2 LOADREGS_1; __r2 = __a2
-#define LOADREGS_3 LOADREGS_2; __r3 = __a3
-#define LOADREGS_4 LOADREGS_3; __r4 = __a4
-#define LOADREGS_5 LOADREGS_4; __r5 = __a5
+#define LOADREGS_0
+#define LOADREGS_1 __r0 = __a0
+#define LOADREGS_2 LOADREGS_1; __r1 = __a1
+#define LOADREGS_3 LOADREGS_2; __r2 = __a2
+#define LOADREGS_4 LOADREGS_3; __r3 = __a3
+#define LOADREGS_5 LOADREGS_4; __r4 = __a4
 
 #define ASM_INDECL_0							\
-	unsigned long __a0; register unsigned long __r0  __asm__ ("r0");
+	register unsigned long __r0  __asm__ ("r0");
 #define ASM_INDECL_1 ASM_INDECL_0;					\
-	unsigned long __a1; register unsigned long __r1  __asm__ ("r1")
+	unsigned long __a0;
 #define ASM_INDECL_2 ASM_INDECL_1;					\
-	unsigned long __a2; register unsigned long __r2  __asm__ ("r2")
+	unsigned long __a1; register unsigned long __r1  __asm__ ("r1")
 #define ASM_INDECL_3 ASM_INDECL_2;					\
-	unsigned long __a3; register unsigned long __r3  __asm__ ("r3")
+	unsigned long __a2; register unsigned long __r2  __asm__ ("r2")
 #define ASM_INDECL_4 ASM_INDECL_3;					\
-	unsigned long __a4; register unsigned long __r4  __asm__ ("r4")
+	unsigned long __a3; register unsigned long __r3  __asm__ ("r3")
 #define ASM_INDECL_5 ASM_INDECL_4;					\
-	unsigned long __a5; register unsigned long __r5  __asm__ ("r5")
+	unsigned long __a4; register unsigned long __r4  __asm__ ("r4")
 
-#define ASM_INPUT_0 "0" (__r0)
-#define ASM_INPUT_1 ASM_INPUT_0, "r" (__r1)
-#define ASM_INPUT_2 ASM_INPUT_1, "r" (__r2)
-#define ASM_INPUT_3 ASM_INPUT_2, "r" (__r3)
-#define ASM_INPUT_4 ASM_INPUT_3, "r" (__r4)
-#define ASM_INPUT_5 ASM_INPUT_4, "r" (__r5)
+#define ASM_INPUT_0 "r" (__r7)
+#define ASM_INPUT_1 ASM_INPUT_0, "0" (__r0)
+#define ASM_INPUT_2 ASM_INPUT_1, "r" (__r1)
+#define ASM_INPUT_3 ASM_INPUT_2, "r" (__r2)
+#define ASM_INPUT_4 ASM_INPUT_3, "r" (__r3)
+#define ASM_INPUT_5 ASM_INPUT_4, "r" (__r4)
 
 #define XENOMAI_DO_SYSCALL(nr, op, args...)				\
 	({								\
 		ASM_INDECL_##nr;					\
-		unsigned long __r7 = XENO_ARM_SYSCALL;			\
+		unsigned long __r7 = __xn_syscode(op);			\
 		LOADARGS_##nr(__xn_syscode(op), args);			\
 		__asm__ __volatile__ ("" : /* */ : /* */ :		\
 				      CLOBBER_REGS_##nr);		\
-- 
2.39.2


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

* [PATCH v3 3/6] compat support: cobalt/arm64: Add compat support and clean-up
  2024-02-14 16:20 [PATCH v3 0/6] Add 32-bit compat support for arm64 to xenomai Clara Kowalsky
  2024-02-14 16:20 ` [PATCH v3 1/6] compat support: cobalt: Move 32-bit compat files to generic Clara Kowalsky
  2024-02-14 16:20 ` [PATCH v3 2/6] compat support: cobalt/arm: Refactor registers for arm alignment Clara Kowalsky
@ 2024-02-14 16:20 ` Clara Kowalsky
  2024-02-14 16:20 ` [PATCH v3 4/6] compat support: cobalt: Bump ABI revision Clara Kowalsky
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 10+ messages in thread
From: Clara Kowalsky @ 2024-02-14 16:20 UTC (permalink / raw)
  To: xenomai; +Cc: florian.bezdeka, jan.kiszka, Clara Kowalsky

Signed-off-by: Clara Kowalsky <clara.kowalsky@siemens.com>
---
 kernel/cobalt/arch/arm64/include/asm/xenomai/syscall.h | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/kernel/cobalt/arch/arm64/include/asm/xenomai/syscall.h b/kernel/cobalt/arch/arm64/include/asm/xenomai/syscall.h
index 26e4ed8c3..42057e986 100644
--- a/kernel/cobalt/arch/arm64/include/asm/xenomai/syscall.h
+++ b/kernel/cobalt/arch/arm64/include/asm/xenomai/syscall.h
@@ -9,8 +9,6 @@
 #define _COBALT_ARM64_SYSCALL_H
 
 #include <linux/errno.h>
-#include <linux/uaccess.h>
-#include <asm/unistd.h>
 #include <asm/ptrace.h>
 #include <asm-generic/xenomai/syscall.h>
 
@@ -20,7 +18,13 @@
  */
 #define __xn_reg_sys(__regs)	((unsigned long)(__regs)->syscallno)
 #define __xn_syscall_p(regs)	((__xn_reg_sys(regs) & __COBALT_SYSCALL_BIT) != 0)
+
+#ifdef CONFIG_XENO_ARCH_SYS3264
+#define __xn_syscall(__regs)    __COBALT_SYSNR32emu(__xn_reg_sys(__regs)	\
+				    & ~__COBALT_SYSCALL_BIT)
+#else
 #define __xn_syscall(__regs)	((unsigned long)(__xn_reg_sys(__regs) & ~__COBALT_SYSCALL_BIT))
+#endif
 
 #define __xn_reg_rval(__regs)	((__regs)->regs[0])
 #define __xn_reg_pc(__regs)	((__regs)->pc)
@@ -32,7 +36,7 @@
  */
 #define __xn_rootcall_p(__regs, __code)			\
 	({						\
-		*(__code) = __xn_syscall(__regs);	\
+		*(__code) = __xn_reg_sys(__regs);	\
 		*(__code) < NR_syscalls;		\
 	})
 
-- 
2.39.2


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

* [PATCH v3 4/6] compat support: cobalt: Bump ABI revision
  2024-02-14 16:20 [PATCH v3 0/6] Add 32-bit compat support for arm64 to xenomai Clara Kowalsky
                   ` (2 preceding siblings ...)
  2024-02-14 16:20 ` [PATCH v3 3/6] compat support: cobalt/arm64: Add compat support and clean-up Clara Kowalsky
@ 2024-02-14 16:20 ` Clara Kowalsky
  2024-02-14 16:20 ` [PATCH v3 5/6] compat support: lib/cobalt: Fix VFP detection for arm on arm64 Clara Kowalsky
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 10+ messages in thread
From: Clara Kowalsky @ 2024-02-14 16:20 UTC (permalink / raw)
  To: xenomai; +Cc: florian.bezdeka, jan.kiszka, Clara Kowalsky

With introduction of the compat support, arm and arm64 are linked and
therefore the ABI revision is aligned by setting it in a shared file.
The ABI revision of arm is incremented and arm64 is bumped to the same
version.

Signed-off-by: Clara Kowalsky <clara.kowalsky@siemens.com>
---
 .../arm/include/asm/xenomai/uapi/abirevision.h   |  1 +
 .../arch/arm/include/asm/xenomai/uapi/features.h |  3 +--
 .../arm64/include/asm/xenomai/uapi/abirevision.h | 16 ++++++++++++++++
 .../arm64/include/asm/xenomai/uapi/features.h    |  3 +--
 4 files changed, 19 insertions(+), 4 deletions(-)
 create mode 120000 kernel/cobalt/arch/arm/include/asm/xenomai/uapi/abirevision.h
 create mode 100644 kernel/cobalt/arch/arm64/include/asm/xenomai/uapi/abirevision.h

diff --git a/kernel/cobalt/arch/arm/include/asm/xenomai/uapi/abirevision.h b/kernel/cobalt/arch/arm/include/asm/xenomai/uapi/abirevision.h
new file mode 120000
index 000000000..e4b49fffc
--- /dev/null
+++ b/kernel/cobalt/arch/arm/include/asm/xenomai/uapi/abirevision.h
@@ -0,0 +1 @@
+../../../../../arm64/include/asm/xenomai/uapi/abirevision.h
\ No newline at end of file
diff --git a/kernel/cobalt/arch/arm/include/asm/xenomai/uapi/features.h b/kernel/cobalt/arch/arm/include/asm/xenomai/uapi/features.h
index 4a87c6732..0db0cd3eb 100644
--- a/kernel/cobalt/arch/arm/include/asm/xenomai/uapi/features.h
+++ b/kernel/cobalt/arch/arm/include/asm/xenomai/uapi/features.h
@@ -21,8 +21,7 @@
 #ifndef _COBALT_ARM_ASM_UAPI_FEATURES_H
 #define _COBALT_ARM_ASM_UAPI_FEATURES_H
 
-/* The ABI revision level we use on this arch. */
-#define XENOMAI_ABI_REV   19UL
+#include <asm/xenomai/uapi/abirevision.h>
 
 #define XENOMAI_FEAT_DEP (__xn_feat_generic_mask)
 
diff --git a/kernel/cobalt/arch/arm64/include/asm/xenomai/uapi/abirevision.h b/kernel/cobalt/arch/arm64/include/asm/xenomai/uapi/abirevision.h
new file mode 100644
index 000000000..1d17c113b
--- /dev/null
+++ b/kernel/cobalt/arch/arm64/include/asm/xenomai/uapi/abirevision.h
@@ -0,0 +1,16 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * ABI revision
+ *
+ * Copyright (c) Siemens AG 2024
+ *
+ * Authors:
+ *  Clara Kowalsky <clara.kowalsky@siemens.com>
+ */
+#ifndef _COBALT_ASM_UAPI_ABIREVISION_H
+#define _COBALT_ASM_UAPI_ABIREVISION_H
+
+/* The ABI revision level we use on this arch. */
+#define XENOMAI_ABI_REV   20UL
+
+#endif /* !_COBALT_ASM_UAPI_ABIREVISION_H */
diff --git a/kernel/cobalt/arch/arm64/include/asm/xenomai/uapi/features.h b/kernel/cobalt/arch/arm64/include/asm/xenomai/uapi/features.h
index fba1db391..c03a0bc7e 100644
--- a/kernel/cobalt/arch/arm64/include/asm/xenomai/uapi/features.h
+++ b/kernel/cobalt/arch/arm64/include/asm/xenomai/uapi/features.h
@@ -21,8 +21,7 @@
 #ifndef _COBALT_ARM64_ASM_UAPI_FEATURES_H
 #define _COBALT_ARM64_ASM_UAPI_FEATURES_H
 
-/* The ABI revision level we use on this arch. */
-#define XENOMAI_ABI_REV   3UL
+#include <asm/xenomai/uapi/abirevision.h>
 
 #define XENOMAI_FEAT_DEP (__xn_feat_generic_mask)
 
-- 
2.39.2


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

* [PATCH v3 5/6] compat support: lib/cobalt: Fix VFP detection for arm on arm64
  2024-02-14 16:20 [PATCH v3 0/6] Add 32-bit compat support for arm64 to xenomai Clara Kowalsky
                   ` (3 preceding siblings ...)
  2024-02-14 16:20 ` [PATCH v3 4/6] compat support: cobalt: Bump ABI revision Clara Kowalsky
@ 2024-02-14 16:20 ` Clara Kowalsky
  2024-02-14 16:20 ` [PATCH v3 6/6] compat support: cobalt/arm64: Enable compat support for arm64 Clara Kowalsky
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 10+ messages in thread
From: Clara Kowalsky @ 2024-02-14 16:20 UTC (permalink / raw)
  To: xenomai; +Cc: florian.bezdeka, jan.kiszka, Clara Kowalsky

In arm64 the floating point feature is fp and not vfp as in arm.

Signed-off-by: Clara Kowalsky <clara.kowalsky@siemens.com>
---
 lib/cobalt/arch/arm/features.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/lib/cobalt/arch/arm/features.c b/lib/cobalt/arch/arm/features.c
index c91886102..707c87c7c 100644
--- a/lib/cobalt/arch/arm/features.c
+++ b/lib/cobalt/arch/arm/features.c
@@ -52,6 +52,11 @@ int cobalt_fp_detect(void)
 			features |= __COBALT_HAVE_VFP;
 			break;
 		}
+		/* arm on arm64 */
+		if (strstr(buffer, "fp")) {
+			features |= __COBALT_HAVE_VFP;
+			break;
+		}
 	}
 
 	fclose(fp);
-- 
2.39.2


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

* [PATCH v3 6/6] compat support: cobalt/arm64: Enable compat support for arm64
  2024-02-14 16:20 [PATCH v3 0/6] Add 32-bit compat support for arm64 to xenomai Clara Kowalsky
                   ` (4 preceding siblings ...)
  2024-02-14 16:20 ` [PATCH v3 5/6] compat support: lib/cobalt: Fix VFP detection for arm on arm64 Clara Kowalsky
@ 2024-02-14 16:20 ` Clara Kowalsky
  2024-02-15  9:56 ` [PATCH v3 0/6] Add 32-bit compat support for arm64 to xenomai Florian Bezdeka
  2024-02-15 11:29 ` Jan Kiszka
  7 siblings, 0 replies; 10+ messages in thread
From: Clara Kowalsky @ 2024-02-14 16:20 UTC (permalink / raw)
  To: xenomai; +Cc: florian.bezdeka, jan.kiszka, Clara Kowalsky

This enables the 32-bit EABI compat mode for building the user-space
libraries of arm64. It allows us to run arm(hf) applications on arm64
kernels.
Furthermore, the dependency from XENO_ARCH_SYS3264 to CONFIG_COMPAT_VDSO
is added.

Signed-off-by: Clara Kowalsky <clara.kowalsky@siemens.com>
---
 kernel/cobalt/arch/arm64/Kconfig | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/kernel/cobalt/arch/arm64/Kconfig b/kernel/cobalt/arch/arm64/Kconfig
index bdf5f1602..14e5fa1c4 100644
--- a/kernel/cobalt/arch/arm64/Kconfig
+++ b/kernel/cobalt/arch/arm64/Kconfig
@@ -5,7 +5,8 @@ config XENO_ARCH_FPU
 	def_bool y
 
 config XENO_ARCH_SYS3264
-        def_bool n
+        def_bool COMPAT
+        depends on COMPAT_VDSO
 
 config XENO_ARCH_OUTOFLINE_XNLOCK
        bool
-- 
2.39.2


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

* Re: [PATCH v3 0/6] Add 32-bit compat support for arm64 to xenomai
  2024-02-14 16:20 [PATCH v3 0/6] Add 32-bit compat support for arm64 to xenomai Clara Kowalsky
                   ` (5 preceding siblings ...)
  2024-02-14 16:20 ` [PATCH v3 6/6] compat support: cobalt/arm64: Enable compat support for arm64 Clara Kowalsky
@ 2024-02-15  9:56 ` Florian Bezdeka
  2024-02-15 11:25   ` Kowalsky, Clara
  2024-02-15 11:29 ` Jan Kiszka
  7 siblings, 1 reply; 10+ messages in thread
From: Florian Bezdeka @ 2024-02-15  9:56 UTC (permalink / raw)
  To: Clara Kowalsky, xenomai; +Cc: jan.kiszka

On Wed, 2024-02-14 at 17:20 +0100, Clara Kowalsky wrote:
> Hi all,
> 
> this is the third version of the series for adding the 32-bit compat
> support for arm64 to xenomai 3. 
> 
> Thank you Jan and Florian for your comments.
> Changes in v3:
> - Squashed patch 2 with old patch 5 "Use syscall_get_arguments()".
> - Cleaned up pipeline_get_syscall_args() and added reasoning.
> 
> Best regards,
> Clara Kowalsky

No further comments right now. This stuff is fully CI tested, right? If
so:

Reviewed-by: Florian Bezdeka <florian.bezdeka@siemens.com>

Florian

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

* RE: [PATCH v3 0/6] Add 32-bit compat support for arm64 to xenomai
  2024-02-15  9:56 ` [PATCH v3 0/6] Add 32-bit compat support for arm64 to xenomai Florian Bezdeka
@ 2024-02-15 11:25   ` Kowalsky, Clara
  0 siblings, 0 replies; 10+ messages in thread
From: Kowalsky, Clara @ 2024-02-15 11:25 UTC (permalink / raw)
  To: Bezdeka, Florian, xenomai; +Cc: Kiszka, Jan

Yes, green pipeline for all builds and tests, the compat test runs successfully locally.

Clara

> -----Original Message-----
> From: Bezdeka, Florian (T CED OES-DE) <florian.bezdeka@siemens.com>
> Sent: Donnerstag, 15. Februar 2024 10:56
> To: Kowalsky, Clara (T CED OES-DE) <clara.kowalsky@siemens.com>;
> xenomai@lists.linux.dev
> Cc: Kiszka, Jan (T CED) <jan.kiszka@siemens.com>
> Subject: Re: [PATCH v3 0/6] Add 32-bit compat support for arm64 to xenomai
> 
> On Wed, 2024-02-14 at 17:20 +0100, Clara Kowalsky wrote:
> > Hi all,
> >
> > this is the third version of the series for adding the 32-bit compat
> > support for arm64 to xenomai 3.
> >
> > Thank you Jan and Florian for your comments.
> > Changes in v3:
> > - Squashed patch 2 with old patch 5 "Use syscall_get_arguments()".
> > - Cleaned up pipeline_get_syscall_args() and added reasoning.
> >
> > Best regards,
> > Clara Kowalsky
> 
> No further comments right now. This stuff is fully CI tested, right? If
> so:
> 
> Reviewed-by: Florian Bezdeka <florian.bezdeka@siemens.com>
> 
> Florian

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

* Re: [PATCH v3 0/6] Add 32-bit compat support for arm64 to xenomai
  2024-02-14 16:20 [PATCH v3 0/6] Add 32-bit compat support for arm64 to xenomai Clara Kowalsky
                   ` (6 preceding siblings ...)
  2024-02-15  9:56 ` [PATCH v3 0/6] Add 32-bit compat support for arm64 to xenomai Florian Bezdeka
@ 2024-02-15 11:29 ` Jan Kiszka
  7 siblings, 0 replies; 10+ messages in thread
From: Jan Kiszka @ 2024-02-15 11:29 UTC (permalink / raw)
  To: Clara Kowalsky, xenomai; +Cc: florian.bezdeka

On 14.02.24 17:20, Clara Kowalsky wrote:
> Hi all,
> 
> this is the third version of the series for adding the 32-bit compat
> support for arm64 to xenomai 3. 
> 
> Thank you Jan and Florian for your comments.
> Changes in v3:
> - Squashed patch 2 with old patch 5 "Use syscall_get_arguments()".
> - Cleaned up pipeline_get_syscall_args() and added reasoning.
> 
> Best regards,
> Clara Kowalsky
> 
> 
> Clara Kowalsky (6):
>   compat support: cobalt: Move 32-bit compat files to generic
>   compat support: cobalt/arm: Refactor registers for arm alignment
>   compat support: cobalt/arm64: Add compat support and clean-up
>   compat support: cobalt: Bump ABI revision
>   compat support: lib/cobalt: Fix VFP detection for arm on arm64
>   compat support: cobalt/arm64: Enable compat support for arm64
> 
>  .../kernel/dovetail/pipeline/pipeline.h       |   9 --
>  .../arch/arm/include/asm/xenomai/syscall.h    |  26 ++---
>  .../arch/arm/include/asm/xenomai/syscall32.h  |   8 +-
>  .../include/asm/xenomai/uapi/abirevision.h    |   1 +
>  .../arm/include/asm/xenomai/uapi/features.h   |   3 +-
>  .../arm/include/asm/xenomai/uapi/syscall.h    |   2 -
>  kernel/cobalt/arch/arm64/Kconfig              |   3 +-
>  .../arch/arm64/include/asm/xenomai/syscall.h  |  10 +-
>  .../arm64/include/asm/xenomai/syscall32.h     |  12 ---
>  .../include/asm/xenomai/uapi/abirevision.h    |  16 +++
>  .../arm64/include/asm/xenomai/uapi/features.h |   3 +-
>  .../arch/x86/include/asm/xenomai/syscall32.h  | 102 ------------------
>  .../asm-generic}/xenomai/syscall32-table.h    |   6 +-
>  .../include/asm-generic/xenomai/syscall32.h   |  78 +++++++++++++-
>  kernel/cobalt/posix/syscall.c                 |  16 +--
>  kernel/cobalt/posix/syscall.h                 |   2 +-
>  kernel/cobalt/trace/cobalt-posix.h            |   4 +-
>  lib/cobalt/arch/arm/features.c                |   5 +
>  .../arch/arm/include/asm/xenomai/syscall.h    |  65 ++++++-----
>  19 files changed, 166 insertions(+), 205 deletions(-)
>  create mode 120000 kernel/cobalt/arch/arm/include/asm/xenomai/uapi/abirevision.h
>  delete mode 100644 kernel/cobalt/arch/arm64/include/asm/xenomai/syscall32.h
>  create mode 100644 kernel/cobalt/arch/arm64/include/asm/xenomai/uapi/abirevision.h
>  delete mode 100644 kernel/cobalt/arch/x86/include/asm/xenomai/syscall32.h
>  rename kernel/cobalt/{arch/x86/include/asm => include/asm-generic}/xenomai/syscall32-table.h (94%)
> 

Thanks, applied.

Jan

-- 
Siemens AG, Technology
Linux Expert Center


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

end of thread, other threads:[~2024-02-15 11:29 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-02-14 16:20 [PATCH v3 0/6] Add 32-bit compat support for arm64 to xenomai Clara Kowalsky
2024-02-14 16:20 ` [PATCH v3 1/6] compat support: cobalt: Move 32-bit compat files to generic Clara Kowalsky
2024-02-14 16:20 ` [PATCH v3 2/6] compat support: cobalt/arm: Refactor registers for arm alignment Clara Kowalsky
2024-02-14 16:20 ` [PATCH v3 3/6] compat support: cobalt/arm64: Add compat support and clean-up Clara Kowalsky
2024-02-14 16:20 ` [PATCH v3 4/6] compat support: cobalt: Bump ABI revision Clara Kowalsky
2024-02-14 16:20 ` [PATCH v3 5/6] compat support: lib/cobalt: Fix VFP detection for arm on arm64 Clara Kowalsky
2024-02-14 16:20 ` [PATCH v3 6/6] compat support: cobalt/arm64: Enable compat support for arm64 Clara Kowalsky
2024-02-15  9:56 ` [PATCH v3 0/6] Add 32-bit compat support for arm64 to xenomai Florian Bezdeka
2024-02-15 11:25   ` Kowalsky, Clara
2024-02-15 11:29 ` Jan Kiszka

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.