[Xenomai-git] Dmitriy Cherkasov : cobalt/arm64: populate arch/arm64 with a copy of arch/ arm.
Module: xenomai-3 Branch: next Commit: c3300fa9983d73c63e2536fae39b91197b0fef55 URL: http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=c3300fa9983d73c63e2536fae39b91197b0fef55 Author: Dmitriy Cherkasov Date: Wed May 6 15:27:23 2015 -0700 cobalt/arm64: populate arch/arm64 with a copy of arch/arm. kernel/cobalt/arch/arm -> kernel/cobalt/arch/arm64 lib/cobalt/arch/arm -> lib/cobalt/arch/arm64 --- configure.ac | 12 +- kernel/cobalt/arch/arm64/Kconfig | 40 +++ kernel/cobalt/arch/arm64/Makefile |5 + .../arch/arm64/include/asm/xenomai/calibration.h | 59 .../arch/arm64/include/asm/xenomai/features.h | 30 ++ .../cobalt/arch/arm64/include/asm/xenomai/fptest.h | 52 +++ .../arch/arm64/include/asm/xenomai/machine.h | 85 + .../arch/arm64/include/asm/xenomai/syscall.h | 74 .../arch/arm64/include/asm/xenomai/syscall32.h | 24 ++ .../cobalt/arch/arm64/include/asm/xenomai/thread.h | 123 +++ .../arch/arm64/include/asm/xenomai/uapi/arith.h| 142 .../arch/arm64/include/asm/xenomai/uapi/features.h | 43 +++ .../arch/arm64/include/asm/xenomai/uapi/fptest.h | 61 .../arch/arm64/include/asm/xenomai/uapi/syscall.h | 34 ++ .../arch/arm64/include/asm/xenomai/uapi/tsc.h | 25 ++ .../arch/arm64/include/asm/xenomai/wrappers.h | 27 ++ kernel/cobalt/arch/arm64/machine.c | 119 +++ kernel/cobalt/arch/arm64/mayday.c | 146 kernel/cobalt/arch/arm64/switch.S | 167 + kernel/cobalt/arch/arm64/syscall.c | 53 +++ kernel/cobalt/arch/arm64/thread.c | 355 lib/cobalt/arch/Makefile.am|2 +- lib/cobalt/arch/arm64/Makefile.am | 13 + lib/cobalt/arch/arm64/features.c | 102 ++ lib/cobalt/arch/arm64/include/Makefile.am |2 + lib/cobalt/arch/arm64/include/asm/Makefile.am |2 + .../arch/arm64/include/asm/xenomai/Makefile.am |5 + .../arch/arm64/include/asm/xenomai/features.h | 62 .../arch/arm64/include/asm/xenomai/syscall.h | 138 lib/cobalt/arch/arm64/include/asm/xenomai/tsc.h| 48 +++ 30 files changed, 2047 insertions(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac index 6593f5d..97bebf0 100644 --- a/configure.ac +++ b/configure.ac @@ -139,6 +139,10 @@ case "$build_for" in target_cpu_arch=arm CONFIG_XENO_DEFAULT_PERIOD=100 ;; + aarch64-*) + target_cpu_arch=arm64 + CONFIG_XENO_DEFAULT_PERIOD=100 + ;; x86_64-*|amd64-*) use_tls=yes target_cpu_arch=x86 @@ -361,7 +365,7 @@ fi dnl VSYSCALL (default: enabled) for Cobalt/x86 -if test $XENO_TARGET_ARCH = x86 -a $rtcore_type = cobalt; then +if test $target_cpu_arch = x86 -a $rtcore_type = cobalt; then CONFIG_XENO_X86_VSYSCALL=y AC_MSG_CHECKING(for x86 VSYSCALL availability) AC_ARG_ENABLE(x86-vsyscall, @@ -788,7 +792,7 @@ dnl Autoconf-generated symbols have been listed. AH_BOTTOM([#endif /* __IN_XENO__ */]) if test $rtcore_type = cobalt; then - XENO_USER_CFLAGS="-I$topdir/lib/cobalt/arch/$XENO_TARGET_ARCH/include -I$topdir/kernel/cobalt/arch/$XENO_TARGET_ARCH/include $XENO_USER_CFLAGS" + XENO_USER_CFLAGS="-I$topdir/lib/cobalt/arch/$target_cpu_arch/include -I$topdir/kernel/cobalt/arch/$target_cpu_arch/include $XENO_USER_CFLAGS" XENO_COBALT_CFLAGS="$XENO_USER_CFLAGS" case "$build_for" in i*86*-*) XENO_COBALT_CFLAGS="$XENO_COBALT_CFLAGS -fno-omit-frame-pointer";; @@ -868,6 +872,10 @@ AC_CONFIG_FILES([ \ lib/cobalt/arch/arm/include/Makefile \ lib/cobalt/arch/arm/include/asm/Makefile \ lib/cobalt/arch/arm/include/asm/xenomai/Makefile \ + lib/cobalt/arch/arm64/Makefile \ + lib/cobalt/arch/arm64/include/Makefile \ + lib/cobalt/arch/arm64/include/asm/Makefile \ + lib/cobalt/arch/arm64/include/asm/xenomai/Makefile \ lib/cobalt/arch/powerpc/Makefile \ lib/cobalt/arch/powerpc/include/Makefile \ lib/cobalt/arch/powerpc/include/asm/Makefile \ diff --git a/kernel/cobalt/arch/arm64/Kconfig b/kernel/cobalt/arch/arm64/Kconfig new file mode 100644 index 000..dc6485d --- /dev/null +++ b/kernel/cobalt/arch/arm64/Kconfig @@ -0,0 +1,40 @@ +source "kernel/xenomai/Kconfig" +source "drivers/xenomai/Kconfig" + +menu "Machine/platform-specific options" + +config XENO_ARCH_UNLOCKED_SWITCH + bool "Unlocked context switch" + default y + help + The Cobalt core may allow non-atomic execution of the + machine-dependent context switching code, so that other CPUs + and/or local interrupts may execute concurrently. + + This option reduces interrupt latency when costly cache and + TLB flushes are required to switch context. + + You definitely wan
[Xenomai-git] Dmitriy Cherkasov : cobalt/arm64: populate arch/arm64 with a copy of arch/ arm.
Module: xenomai-3 Branch: next Commit: 1ac383ea34e42a15b0935a1f8f247007d3e85df3 URL: http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=1ac383ea34e42a15b0935a1f8f247007d3e85df3 Author: Dmitriy Cherkasov Date: Wed May 6 15:27:23 2015 -0700 cobalt/arm64: populate arch/arm64 with a copy of arch/arm. kernel/cobalt/arch/arm -> kernel/cobalt/arch/arm64 lib/cobalt/arch/arm -> lib/cobalt/arch/arm64 --- configure.ac | 12 +- kernel/cobalt/arch/arm64/Kconfig | 40 +++ kernel/cobalt/arch/arm64/Makefile |5 + .../arch/arm64/include/asm/xenomai/calibration.h | 59 .../arch/arm64/include/asm/xenomai/features.h | 30 ++ .../cobalt/arch/arm64/include/asm/xenomai/fptest.h | 52 +++ .../arch/arm64/include/asm/xenomai/machine.h | 85 + .../arch/arm64/include/asm/xenomai/syscall.h | 74 .../arch/arm64/include/asm/xenomai/syscall32.h | 24 ++ .../cobalt/arch/arm64/include/asm/xenomai/thread.h | 123 +++ .../arch/arm64/include/asm/xenomai/uapi/arith.h| 142 .../arch/arm64/include/asm/xenomai/uapi/features.h | 43 +++ .../arch/arm64/include/asm/xenomai/uapi/fptest.h | 61 .../arch/arm64/include/asm/xenomai/uapi/syscall.h | 34 ++ .../arch/arm64/include/asm/xenomai/uapi/tsc.h | 25 ++ .../arch/arm64/include/asm/xenomai/wrappers.h | 27 ++ kernel/cobalt/arch/arm64/machine.c | 119 +++ kernel/cobalt/arch/arm64/mayday.c | 146 kernel/cobalt/arch/arm64/switch.S | 167 + kernel/cobalt/arch/arm64/syscall.c | 53 +++ kernel/cobalt/arch/arm64/thread.c | 355 lib/cobalt/arch/Makefile.am|2 +- lib/cobalt/arch/arm64/Makefile.am | 13 + lib/cobalt/arch/arm64/features.c | 102 ++ lib/cobalt/arch/arm64/include/Makefile.am |2 + lib/cobalt/arch/arm64/include/asm/Makefile.am |2 + .../arch/arm64/include/asm/xenomai/Makefile.am |5 + .../arch/arm64/include/asm/xenomai/features.h | 62 .../arch/arm64/include/asm/xenomai/syscall.h | 138 lib/cobalt/arch/arm64/include/asm/xenomai/tsc.h| 48 +++ 30 files changed, 2047 insertions(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac index 6593f5d..97bebf0 100644 --- a/configure.ac +++ b/configure.ac @@ -139,6 +139,10 @@ case "$build_for" in target_cpu_arch=arm CONFIG_XENO_DEFAULT_PERIOD=100 ;; + aarch64-*) + target_cpu_arch=arm64 + CONFIG_XENO_DEFAULT_PERIOD=100 + ;; x86_64-*|amd64-*) use_tls=yes target_cpu_arch=x86 @@ -361,7 +365,7 @@ fi dnl VSYSCALL (default: enabled) for Cobalt/x86 -if test $XENO_TARGET_ARCH = x86 -a $rtcore_type = cobalt; then +if test $target_cpu_arch = x86 -a $rtcore_type = cobalt; then CONFIG_XENO_X86_VSYSCALL=y AC_MSG_CHECKING(for x86 VSYSCALL availability) AC_ARG_ENABLE(x86-vsyscall, @@ -788,7 +792,7 @@ dnl Autoconf-generated symbols have been listed. AH_BOTTOM([#endif /* __IN_XENO__ */]) if test $rtcore_type = cobalt; then - XENO_USER_CFLAGS="-I$topdir/lib/cobalt/arch/$XENO_TARGET_ARCH/include -I$topdir/kernel/cobalt/arch/$XENO_TARGET_ARCH/include $XENO_USER_CFLAGS" + XENO_USER_CFLAGS="-I$topdir/lib/cobalt/arch/$target_cpu_arch/include -I$topdir/kernel/cobalt/arch/$target_cpu_arch/include $XENO_USER_CFLAGS" XENO_COBALT_CFLAGS="$XENO_USER_CFLAGS" case "$build_for" in i*86*-*) XENO_COBALT_CFLAGS="$XENO_COBALT_CFLAGS -fno-omit-frame-pointer";; @@ -868,6 +872,10 @@ AC_CONFIG_FILES([ \ lib/cobalt/arch/arm/include/Makefile \ lib/cobalt/arch/arm/include/asm/Makefile \ lib/cobalt/arch/arm/include/asm/xenomai/Makefile \ + lib/cobalt/arch/arm64/Makefile \ + lib/cobalt/arch/arm64/include/Makefile \ + lib/cobalt/arch/arm64/include/asm/Makefile \ + lib/cobalt/arch/arm64/include/asm/xenomai/Makefile \ lib/cobalt/arch/powerpc/Makefile \ lib/cobalt/arch/powerpc/include/Makefile \ lib/cobalt/arch/powerpc/include/asm/Makefile \ diff --git a/kernel/cobalt/arch/arm64/Kconfig b/kernel/cobalt/arch/arm64/Kconfig new file mode 100644 index 000..dc6485d --- /dev/null +++ b/kernel/cobalt/arch/arm64/Kconfig @@ -0,0 +1,40 @@ +source "kernel/xenomai/Kconfig" +source "drivers/xenomai/Kconfig" + +menu "Machine/platform-specific options" + +config XENO_ARCH_UNLOCKED_SWITCH + bool "Unlocked context switch" + default y + help + The Cobalt core may allow non-atomic execution of the + machine-dependent context switching code, so that other CPUs + and/or local interrupts may execute concurrently. + + This option reduces interrupt latency when costly cache and + TLB flushes are required to switch context. + + You definitely wan
[Xenomai-git] Dmitriy Cherkasov : cobalt/arm64: populate arch/arm64 with a copy of arch/ arm.
Module: xenomai-3 Branch: next Commit: 7c9b5cc0eef0d7d86eb829e5cecaadc69eb7de81 URL: http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=7c9b5cc0eef0d7d86eb829e5cecaadc69eb7de81 Author: Dmitriy Cherkasov Date: Wed May 6 15:27:23 2015 -0700 cobalt/arm64: populate arch/arm64 with a copy of arch/arm. kernel/cobalt/arch/arm -> kernel/cobalt/arch/arm64 lib/cobalt/arch/arm -> lib/cobalt/arch/arm64 --- configure.ac | 12 +- kernel/cobalt/arch/arm64/Kconfig | 40 +++ kernel/cobalt/arch/arm64/Makefile |5 + .../arch/arm64/include/asm/xenomai/calibration.h | 59 .../arch/arm64/include/asm/xenomai/features.h | 30 ++ .../cobalt/arch/arm64/include/asm/xenomai/fptest.h | 52 +++ .../arch/arm64/include/asm/xenomai/machine.h | 85 + .../arch/arm64/include/asm/xenomai/syscall.h | 74 .../arch/arm64/include/asm/xenomai/syscall32.h | 24 ++ .../cobalt/arch/arm64/include/asm/xenomai/thread.h | 123 +++ .../arch/arm64/include/asm/xenomai/uapi/arith.h| 142 .../arch/arm64/include/asm/xenomai/uapi/features.h | 43 +++ .../arch/arm64/include/asm/xenomai/uapi/fptest.h | 61 .../arch/arm64/include/asm/xenomai/uapi/syscall.h | 34 ++ .../arch/arm64/include/asm/xenomai/uapi/tsc.h | 25 ++ .../arch/arm64/include/asm/xenomai/wrappers.h | 27 ++ kernel/cobalt/arch/arm64/machine.c | 119 +++ kernel/cobalt/arch/arm64/mayday.c | 146 kernel/cobalt/arch/arm64/switch.S | 167 + kernel/cobalt/arch/arm64/syscall.c | 53 +++ kernel/cobalt/arch/arm64/thread.c | 355 lib/cobalt/arch/Makefile.am|2 +- lib/cobalt/arch/arm64/Makefile.am | 13 + lib/cobalt/arch/arm64/features.c | 102 ++ lib/cobalt/arch/arm64/include/Makefile.am |2 + lib/cobalt/arch/arm64/include/asm/Makefile.am |2 + .../arch/arm64/include/asm/xenomai/Makefile.am |5 + .../arch/arm64/include/asm/xenomai/features.h | 62 .../arch/arm64/include/asm/xenomai/syscall.h | 138 lib/cobalt/arch/arm64/include/asm/xenomai/tsc.h| 48 +++ 30 files changed, 2047 insertions(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac index 6593f5d..97bebf0 100644 --- a/configure.ac +++ b/configure.ac @@ -139,6 +139,10 @@ case "$build_for" in target_cpu_arch=arm CONFIG_XENO_DEFAULT_PERIOD=100 ;; + aarch64-*) + target_cpu_arch=arm64 + CONFIG_XENO_DEFAULT_PERIOD=100 + ;; x86_64-*|amd64-*) use_tls=yes target_cpu_arch=x86 @@ -361,7 +365,7 @@ fi dnl VSYSCALL (default: enabled) for Cobalt/x86 -if test $XENO_TARGET_ARCH = x86 -a $rtcore_type = cobalt; then +if test $target_cpu_arch = x86 -a $rtcore_type = cobalt; then CONFIG_XENO_X86_VSYSCALL=y AC_MSG_CHECKING(for x86 VSYSCALL availability) AC_ARG_ENABLE(x86-vsyscall, @@ -788,7 +792,7 @@ dnl Autoconf-generated symbols have been listed. AH_BOTTOM([#endif /* __IN_XENO__ */]) if test $rtcore_type = cobalt; then - XENO_USER_CFLAGS="-I$topdir/lib/cobalt/arch/$XENO_TARGET_ARCH/include -I$topdir/kernel/cobalt/arch/$XENO_TARGET_ARCH/include $XENO_USER_CFLAGS" + XENO_USER_CFLAGS="-I$topdir/lib/cobalt/arch/$target_cpu_arch/include -I$topdir/kernel/cobalt/arch/$target_cpu_arch/include $XENO_USER_CFLAGS" XENO_COBALT_CFLAGS="$XENO_USER_CFLAGS" case "$build_for" in i*86*-*) XENO_COBALT_CFLAGS="$XENO_COBALT_CFLAGS -fno-omit-frame-pointer";; @@ -868,6 +872,10 @@ AC_CONFIG_FILES([ \ lib/cobalt/arch/arm/include/Makefile \ lib/cobalt/arch/arm/include/asm/Makefile \ lib/cobalt/arch/arm/include/asm/xenomai/Makefile \ + lib/cobalt/arch/arm64/Makefile \ + lib/cobalt/arch/arm64/include/Makefile \ + lib/cobalt/arch/arm64/include/asm/Makefile \ + lib/cobalt/arch/arm64/include/asm/xenomai/Makefile \ lib/cobalt/arch/powerpc/Makefile \ lib/cobalt/arch/powerpc/include/Makefile \ lib/cobalt/arch/powerpc/include/asm/Makefile \ diff --git a/kernel/cobalt/arch/arm64/Kconfig b/kernel/cobalt/arch/arm64/Kconfig new file mode 100644 index 000..dc6485d --- /dev/null +++ b/kernel/cobalt/arch/arm64/Kconfig @@ -0,0 +1,40 @@ +source "kernel/xenomai/Kconfig" +source "drivers/xenomai/Kconfig" + +menu "Machine/platform-specific options" + +config XENO_ARCH_UNLOCKED_SWITCH + bool "Unlocked context switch" + default y + help + The Cobalt core may allow non-atomic execution of the + machine-dependent context switching code, so that other CPUs + and/or local interrupts may execute concurrently. + + This option reduces interrupt latency when costly cache and + TLB flushes are required to switch context. + + You definitely wan
[Xenomai-git] Dmitriy Cherkasov : cobalt/arm64: populate arch/arm64 with a copy of arch/ arm.
Module: xenomai-3 Branch: next Commit: cc781f50a877768c3675fed2e47d5552b0ba003e URL: http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=cc781f50a877768c3675fed2e47d5552b0ba003e Author: Dmitriy Cherkasov Date: Wed May 6 15:27:23 2015 -0700 cobalt/arm64: populate arch/arm64 with a copy of arch/arm. kernel/cobalt/arch/arm -> kernel/cobalt/arch/arm64 lib/cobalt/arch/arm -> lib/cobalt/arch/arm64 --- configure.ac | 12 +- kernel/cobalt/arch/arm64/Kconfig | 40 +++ kernel/cobalt/arch/arm64/Makefile |5 + .../arch/arm64/include/asm/xenomai/calibration.h | 59 .../arch/arm64/include/asm/xenomai/features.h | 30 ++ .../cobalt/arch/arm64/include/asm/xenomai/fptest.h | 52 +++ .../arch/arm64/include/asm/xenomai/machine.h | 85 + .../arch/arm64/include/asm/xenomai/syscall.h | 74 .../arch/arm64/include/asm/xenomai/syscall32.h | 24 ++ .../cobalt/arch/arm64/include/asm/xenomai/thread.h | 123 +++ .../arch/arm64/include/asm/xenomai/uapi/arith.h| 142 .../arch/arm64/include/asm/xenomai/uapi/features.h | 43 +++ .../arch/arm64/include/asm/xenomai/uapi/fptest.h | 61 .../arch/arm64/include/asm/xenomai/uapi/syscall.h | 34 ++ .../arch/arm64/include/asm/xenomai/uapi/tsc.h | 25 ++ .../arch/arm64/include/asm/xenomai/wrappers.h | 27 ++ kernel/cobalt/arch/arm64/machine.c | 119 +++ kernel/cobalt/arch/arm64/mayday.c | 146 kernel/cobalt/arch/arm64/switch.S | 167 + kernel/cobalt/arch/arm64/syscall.c | 53 +++ kernel/cobalt/arch/arm64/thread.c | 355 lib/cobalt/arch/Makefile.am|2 +- lib/cobalt/arch/arm64/Makefile.am | 13 + lib/cobalt/arch/arm64/features.c | 102 ++ lib/cobalt/arch/arm64/include/Makefile.am |2 + lib/cobalt/arch/arm64/include/asm/Makefile.am |2 + .../arch/arm64/include/asm/xenomai/Makefile.am |5 + .../arch/arm64/include/asm/xenomai/features.h | 62 .../arch/arm64/include/asm/xenomai/syscall.h | 138 lib/cobalt/arch/arm64/include/asm/xenomai/tsc.h| 48 +++ 30 files changed, 2047 insertions(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac index 6593f5d..97bebf0 100644 --- a/configure.ac +++ b/configure.ac @@ -139,6 +139,10 @@ case "$build_for" in target_cpu_arch=arm CONFIG_XENO_DEFAULT_PERIOD=100 ;; + aarch64-*) + target_cpu_arch=arm64 + CONFIG_XENO_DEFAULT_PERIOD=100 + ;; x86_64-*|amd64-*) use_tls=yes target_cpu_arch=x86 @@ -361,7 +365,7 @@ fi dnl VSYSCALL (default: enabled) for Cobalt/x86 -if test $XENO_TARGET_ARCH = x86 -a $rtcore_type = cobalt; then +if test $target_cpu_arch = x86 -a $rtcore_type = cobalt; then CONFIG_XENO_X86_VSYSCALL=y AC_MSG_CHECKING(for x86 VSYSCALL availability) AC_ARG_ENABLE(x86-vsyscall, @@ -788,7 +792,7 @@ dnl Autoconf-generated symbols have been listed. AH_BOTTOM([#endif /* __IN_XENO__ */]) if test $rtcore_type = cobalt; then - XENO_USER_CFLAGS="-I$topdir/lib/cobalt/arch/$XENO_TARGET_ARCH/include -I$topdir/kernel/cobalt/arch/$XENO_TARGET_ARCH/include $XENO_USER_CFLAGS" + XENO_USER_CFLAGS="-I$topdir/lib/cobalt/arch/$target_cpu_arch/include -I$topdir/kernel/cobalt/arch/$target_cpu_arch/include $XENO_USER_CFLAGS" XENO_COBALT_CFLAGS="$XENO_USER_CFLAGS" case "$build_for" in i*86*-*) XENO_COBALT_CFLAGS="$XENO_COBALT_CFLAGS -fno-omit-frame-pointer";; @@ -868,6 +872,10 @@ AC_CONFIG_FILES([ \ lib/cobalt/arch/arm/include/Makefile \ lib/cobalt/arch/arm/include/asm/Makefile \ lib/cobalt/arch/arm/include/asm/xenomai/Makefile \ + lib/cobalt/arch/arm64/Makefile \ + lib/cobalt/arch/arm64/include/Makefile \ + lib/cobalt/arch/arm64/include/asm/Makefile \ + lib/cobalt/arch/arm64/include/asm/xenomai/Makefile \ lib/cobalt/arch/powerpc/Makefile \ lib/cobalt/arch/powerpc/include/Makefile \ lib/cobalt/arch/powerpc/include/asm/Makefile \ diff --git a/kernel/cobalt/arch/arm64/Kconfig b/kernel/cobalt/arch/arm64/Kconfig new file mode 100644 index 000..dc6485d --- /dev/null +++ b/kernel/cobalt/arch/arm64/Kconfig @@ -0,0 +1,40 @@ +source "kernel/xenomai/Kconfig" +source "drivers/xenomai/Kconfig" + +menu "Machine/platform-specific options" + +config XENO_ARCH_UNLOCKED_SWITCH + bool "Unlocked context switch" + default y + help + The Cobalt core may allow non-atomic execution of the + machine-dependent context switching code, so that other CPUs + and/or local interrupts may execute concurrently. + + This option reduces interrupt latency when costly cache and + TLB flushes are required to switch context. + + You definitely wan
[Xenomai-git] Dmitriy Cherkasov : cobalt/arm64: populate arch/arm64 with a copy of arch/ arm.
Module: xenomai-3 Branch: next Commit: 78d0d87e52cc49091f77337dd18f8a0a4f70bb0b URL: http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=78d0d87e52cc49091f77337dd18f8a0a4f70bb0b Author: Dmitriy Cherkasov Date: Wed May 6 15:27:23 2015 -0700 cobalt/arm64: populate arch/arm64 with a copy of arch/arm. kernel/cobalt/arch/arm -> kernel/cobalt/arch/arm64 lib/cobalt/arch/arm -> lib/cobalt/arch/arm64 --- configure.ac | 12 +- kernel/cobalt/arch/arm64/Kconfig | 40 +++ kernel/cobalt/arch/arm64/Makefile |5 + .../arch/arm64/include/asm/xenomai/calibration.h | 59 .../arch/arm64/include/asm/xenomai/features.h | 30 ++ .../cobalt/arch/arm64/include/asm/xenomai/fptest.h | 52 +++ .../arch/arm64/include/asm/xenomai/machine.h | 85 + .../arch/arm64/include/asm/xenomai/syscall.h | 74 .../arch/arm64/include/asm/xenomai/syscall32.h | 24 ++ .../cobalt/arch/arm64/include/asm/xenomai/thread.h | 123 +++ .../arch/arm64/include/asm/xenomai/uapi/arith.h| 142 .../arch/arm64/include/asm/xenomai/uapi/features.h | 43 +++ .../arch/arm64/include/asm/xenomai/uapi/fptest.h | 61 .../arch/arm64/include/asm/xenomai/uapi/syscall.h | 34 ++ .../arch/arm64/include/asm/xenomai/uapi/tsc.h | 25 ++ .../arch/arm64/include/asm/xenomai/wrappers.h | 27 ++ kernel/cobalt/arch/arm64/machine.c | 119 +++ kernel/cobalt/arch/arm64/mayday.c | 146 kernel/cobalt/arch/arm64/switch.S | 167 + kernel/cobalt/arch/arm64/syscall.c | 53 +++ kernel/cobalt/arch/arm64/thread.c | 355 lib/cobalt/arch/Makefile.am|2 +- lib/cobalt/arch/arm64/Makefile.am | 13 + lib/cobalt/arch/arm64/features.c | 102 ++ lib/cobalt/arch/arm64/include/Makefile.am |2 + lib/cobalt/arch/arm64/include/asm/Makefile.am |2 + .../arch/arm64/include/asm/xenomai/Makefile.am |5 + .../arch/arm64/include/asm/xenomai/features.h | 62 .../arch/arm64/include/asm/xenomai/syscall.h | 138 lib/cobalt/arch/arm64/include/asm/xenomai/tsc.h| 48 +++ 30 files changed, 2047 insertions(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac index 6593f5d..97bebf0 100644 --- a/configure.ac +++ b/configure.ac @@ -139,6 +139,10 @@ case "$build_for" in target_cpu_arch=arm CONFIG_XENO_DEFAULT_PERIOD=100 ;; + aarch64-*) + target_cpu_arch=arm64 + CONFIG_XENO_DEFAULT_PERIOD=100 + ;; x86_64-*|amd64-*) use_tls=yes target_cpu_arch=x86 @@ -361,7 +365,7 @@ fi dnl VSYSCALL (default: enabled) for Cobalt/x86 -if test $XENO_TARGET_ARCH = x86 -a $rtcore_type = cobalt; then +if test $target_cpu_arch = x86 -a $rtcore_type = cobalt; then CONFIG_XENO_X86_VSYSCALL=y AC_MSG_CHECKING(for x86 VSYSCALL availability) AC_ARG_ENABLE(x86-vsyscall, @@ -788,7 +792,7 @@ dnl Autoconf-generated symbols have been listed. AH_BOTTOM([#endif /* __IN_XENO__ */]) if test $rtcore_type = cobalt; then - XENO_USER_CFLAGS="-I$topdir/lib/cobalt/arch/$XENO_TARGET_ARCH/include -I$topdir/kernel/cobalt/arch/$XENO_TARGET_ARCH/include $XENO_USER_CFLAGS" + XENO_USER_CFLAGS="-I$topdir/lib/cobalt/arch/$target_cpu_arch/include -I$topdir/kernel/cobalt/arch/$target_cpu_arch/include $XENO_USER_CFLAGS" XENO_COBALT_CFLAGS="$XENO_USER_CFLAGS" case "$build_for" in i*86*-*) XENO_COBALT_CFLAGS="$XENO_COBALT_CFLAGS -fno-omit-frame-pointer";; @@ -868,6 +872,10 @@ AC_CONFIG_FILES([ \ lib/cobalt/arch/arm/include/Makefile \ lib/cobalt/arch/arm/include/asm/Makefile \ lib/cobalt/arch/arm/include/asm/xenomai/Makefile \ + lib/cobalt/arch/arm64/Makefile \ + lib/cobalt/arch/arm64/include/Makefile \ + lib/cobalt/arch/arm64/include/asm/Makefile \ + lib/cobalt/arch/arm64/include/asm/xenomai/Makefile \ lib/cobalt/arch/powerpc/Makefile \ lib/cobalt/arch/powerpc/include/Makefile \ lib/cobalt/arch/powerpc/include/asm/Makefile \ diff --git a/kernel/cobalt/arch/arm64/Kconfig b/kernel/cobalt/arch/arm64/Kconfig new file mode 100644 index 000..dc6485d --- /dev/null +++ b/kernel/cobalt/arch/arm64/Kconfig @@ -0,0 +1,40 @@ +source "kernel/xenomai/Kconfig" +source "drivers/xenomai/Kconfig" + +menu "Machine/platform-specific options" + +config XENO_ARCH_UNLOCKED_SWITCH + bool "Unlocked context switch" + default y + help + The Cobalt core may allow non-atomic execution of the + machine-dependent context switching code, so that other CPUs + and/or local interrupts may execute concurrently. + + This option reduces interrupt latency when costly cache and + TLB flushes are required to switch context. + + You definitely wan
[Xenomai-git] Dmitriy Cherkasov : cobalt/arm64: populate arch/arm64 with a copy of arch/ arm.
Module: xenomai-3 Branch: next Commit: f371b36a385c7b788ccecec13eac697794045a70 URL: http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=f371b36a385c7b788ccecec13eac697794045a70 Author: Dmitriy Cherkasov Date: Wed May 6 15:27:23 2015 -0700 cobalt/arm64: populate arch/arm64 with a copy of arch/arm. kernel/cobalt/arch/arm -> kernel/cobalt/arch/arm64 lib/cobalt/arch/arm -> lib/cobalt/arch/arm64 --- configure.ac | 12 +- kernel/cobalt/arch/arm64/Kconfig | 40 +++ kernel/cobalt/arch/arm64/Makefile |5 + .../arch/arm64/include/asm/xenomai/calibration.h | 59 .../arch/arm64/include/asm/xenomai/features.h | 30 ++ .../cobalt/arch/arm64/include/asm/xenomai/fptest.h | 52 +++ .../arch/arm64/include/asm/xenomai/machine.h | 85 + .../arch/arm64/include/asm/xenomai/syscall.h | 74 .../arch/arm64/include/asm/xenomai/syscall32.h | 24 ++ .../cobalt/arch/arm64/include/asm/xenomai/thread.h | 123 +++ .../arch/arm64/include/asm/xenomai/uapi/arith.h| 142 .../arch/arm64/include/asm/xenomai/uapi/features.h | 43 +++ .../arch/arm64/include/asm/xenomai/uapi/fptest.h | 61 .../arch/arm64/include/asm/xenomai/uapi/syscall.h | 34 ++ .../arch/arm64/include/asm/xenomai/uapi/tsc.h | 25 ++ .../arch/arm64/include/asm/xenomai/wrappers.h | 27 ++ kernel/cobalt/arch/arm64/machine.c | 119 +++ kernel/cobalt/arch/arm64/mayday.c | 146 kernel/cobalt/arch/arm64/switch.S | 167 + kernel/cobalt/arch/arm64/syscall.c | 53 +++ kernel/cobalt/arch/arm64/thread.c | 355 lib/cobalt/arch/Makefile.am|2 +- lib/cobalt/arch/arm64/Makefile.am | 13 + lib/cobalt/arch/arm64/features.c | 102 ++ lib/cobalt/arch/arm64/include/Makefile.am |2 + lib/cobalt/arch/arm64/include/asm/Makefile.am |2 + .../arch/arm64/include/asm/xenomai/Makefile.am |5 + .../arch/arm64/include/asm/xenomai/features.h | 62 .../arch/arm64/include/asm/xenomai/syscall.h | 138 lib/cobalt/arch/arm64/include/asm/xenomai/tsc.h| 48 +++ 30 files changed, 2047 insertions(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac index 6593f5d..97bebf0 100644 --- a/configure.ac +++ b/configure.ac @@ -139,6 +139,10 @@ case "$build_for" in target_cpu_arch=arm CONFIG_XENO_DEFAULT_PERIOD=100 ;; + aarch64-*) + target_cpu_arch=arm64 + CONFIG_XENO_DEFAULT_PERIOD=100 + ;; x86_64-*|amd64-*) use_tls=yes target_cpu_arch=x86 @@ -361,7 +365,7 @@ fi dnl VSYSCALL (default: enabled) for Cobalt/x86 -if test $XENO_TARGET_ARCH = x86 -a $rtcore_type = cobalt; then +if test $target_cpu_arch = x86 -a $rtcore_type = cobalt; then CONFIG_XENO_X86_VSYSCALL=y AC_MSG_CHECKING(for x86 VSYSCALL availability) AC_ARG_ENABLE(x86-vsyscall, @@ -788,7 +792,7 @@ dnl Autoconf-generated symbols have been listed. AH_BOTTOM([#endif /* __IN_XENO__ */]) if test $rtcore_type = cobalt; then - XENO_USER_CFLAGS="-I$topdir/lib/cobalt/arch/$XENO_TARGET_ARCH/include -I$topdir/kernel/cobalt/arch/$XENO_TARGET_ARCH/include $XENO_USER_CFLAGS" + XENO_USER_CFLAGS="-I$topdir/lib/cobalt/arch/$target_cpu_arch/include -I$topdir/kernel/cobalt/arch/$target_cpu_arch/include $XENO_USER_CFLAGS" XENO_COBALT_CFLAGS="$XENO_USER_CFLAGS" case "$build_for" in i*86*-*) XENO_COBALT_CFLAGS="$XENO_COBALT_CFLAGS -fno-omit-frame-pointer";; @@ -868,6 +872,10 @@ AC_CONFIG_FILES([ \ lib/cobalt/arch/arm/include/Makefile \ lib/cobalt/arch/arm/include/asm/Makefile \ lib/cobalt/arch/arm/include/asm/xenomai/Makefile \ + lib/cobalt/arch/arm64/Makefile \ + lib/cobalt/arch/arm64/include/Makefile \ + lib/cobalt/arch/arm64/include/asm/Makefile \ + lib/cobalt/arch/arm64/include/asm/xenomai/Makefile \ lib/cobalt/arch/powerpc/Makefile \ lib/cobalt/arch/powerpc/include/Makefile \ lib/cobalt/arch/powerpc/include/asm/Makefile \ diff --git a/kernel/cobalt/arch/arm64/Kconfig b/kernel/cobalt/arch/arm64/Kconfig new file mode 100644 index 000..dc6485d --- /dev/null +++ b/kernel/cobalt/arch/arm64/Kconfig @@ -0,0 +1,40 @@ +source "kernel/xenomai/Kconfig" +source "drivers/xenomai/Kconfig" + +menu "Machine/platform-specific options" + +config XENO_ARCH_UNLOCKED_SWITCH + bool "Unlocked context switch" + default y + help + The Cobalt core may allow non-atomic execution of the + machine-dependent context switching code, so that other CPUs + and/or local interrupts may execute concurrently. + + This option reduces interrupt latency when costly cache and + TLB flushes are required to switch context. + + You definitely wan
[Xenomai-git] Dmitriy Cherkasov : cobalt/arm64: populate arch/arm64 with a copy of arch/ arm.
Module: xenomai-3 Branch: next Commit: 6782c45c2ac65b02571fb1dad5bbaf3bc13b2308 URL: http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=6782c45c2ac65b02571fb1dad5bbaf3bc13b2308 Author: Dmitriy Cherkasov Date: Wed May 6 15:27:23 2015 -0700 cobalt/arm64: populate arch/arm64 with a copy of arch/arm. kernel/cobalt/arch/arm -> kernel/cobalt/arch/arm64 lib/cobalt/arch/arm -> lib/cobalt/arch/arm64 --- configure.ac | 12 +- kernel/cobalt/arch/arm64/Kconfig | 40 +++ kernel/cobalt/arch/arm64/Makefile |5 + .../arch/arm64/include/asm/xenomai/calibration.h | 59 .../arch/arm64/include/asm/xenomai/features.h | 30 ++ .../cobalt/arch/arm64/include/asm/xenomai/fptest.h | 52 +++ .../arch/arm64/include/asm/xenomai/machine.h | 85 + .../arch/arm64/include/asm/xenomai/syscall.h | 74 .../arch/arm64/include/asm/xenomai/syscall32.h | 24 ++ .../cobalt/arch/arm64/include/asm/xenomai/thread.h | 123 +++ .../arch/arm64/include/asm/xenomai/uapi/arith.h| 142 .../arch/arm64/include/asm/xenomai/uapi/features.h | 43 +++ .../arch/arm64/include/asm/xenomai/uapi/fptest.h | 61 .../arch/arm64/include/asm/xenomai/uapi/syscall.h | 34 ++ .../arch/arm64/include/asm/xenomai/uapi/tsc.h | 25 ++ .../arch/arm64/include/asm/xenomai/wrappers.h | 27 ++ kernel/cobalt/arch/arm64/machine.c | 119 +++ kernel/cobalt/arch/arm64/mayday.c | 146 kernel/cobalt/arch/arm64/switch.S | 167 + kernel/cobalt/arch/arm64/syscall.c | 53 +++ kernel/cobalt/arch/arm64/thread.c | 355 lib/cobalt/arch/Makefile.am|2 +- lib/cobalt/arch/arm64/Makefile.am | 13 + lib/cobalt/arch/arm64/features.c | 102 ++ lib/cobalt/arch/arm64/include/Makefile.am |2 + lib/cobalt/arch/arm64/include/asm/Makefile.am |2 + .../arch/arm64/include/asm/xenomai/Makefile.am |5 + .../arch/arm64/include/asm/xenomai/features.h | 62 .../arch/arm64/include/asm/xenomai/syscall.h | 138 lib/cobalt/arch/arm64/include/asm/xenomai/tsc.h| 48 +++ 30 files changed, 2047 insertions(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac index 6593f5d..97bebf0 100644 --- a/configure.ac +++ b/configure.ac @@ -139,6 +139,10 @@ case "$build_for" in target_cpu_arch=arm CONFIG_XENO_DEFAULT_PERIOD=100 ;; + aarch64-*) + target_cpu_arch=arm64 + CONFIG_XENO_DEFAULT_PERIOD=100 + ;; x86_64-*|amd64-*) use_tls=yes target_cpu_arch=x86 @@ -361,7 +365,7 @@ fi dnl VSYSCALL (default: enabled) for Cobalt/x86 -if test $XENO_TARGET_ARCH = x86 -a $rtcore_type = cobalt; then +if test $target_cpu_arch = x86 -a $rtcore_type = cobalt; then CONFIG_XENO_X86_VSYSCALL=y AC_MSG_CHECKING(for x86 VSYSCALL availability) AC_ARG_ENABLE(x86-vsyscall, @@ -788,7 +792,7 @@ dnl Autoconf-generated symbols have been listed. AH_BOTTOM([#endif /* __IN_XENO__ */]) if test $rtcore_type = cobalt; then - XENO_USER_CFLAGS="-I$topdir/lib/cobalt/arch/$XENO_TARGET_ARCH/include -I$topdir/kernel/cobalt/arch/$XENO_TARGET_ARCH/include $XENO_USER_CFLAGS" + XENO_USER_CFLAGS="-I$topdir/lib/cobalt/arch/$target_cpu_arch/include -I$topdir/kernel/cobalt/arch/$target_cpu_arch/include $XENO_USER_CFLAGS" XENO_COBALT_CFLAGS="$XENO_USER_CFLAGS" case "$build_for" in i*86*-*) XENO_COBALT_CFLAGS="$XENO_COBALT_CFLAGS -fno-omit-frame-pointer";; @@ -868,6 +872,10 @@ AC_CONFIG_FILES([ \ lib/cobalt/arch/arm/include/Makefile \ lib/cobalt/arch/arm/include/asm/Makefile \ lib/cobalt/arch/arm/include/asm/xenomai/Makefile \ + lib/cobalt/arch/arm64/Makefile \ + lib/cobalt/arch/arm64/include/Makefile \ + lib/cobalt/arch/arm64/include/asm/Makefile \ + lib/cobalt/arch/arm64/include/asm/xenomai/Makefile \ lib/cobalt/arch/powerpc/Makefile \ lib/cobalt/arch/powerpc/include/Makefile \ lib/cobalt/arch/powerpc/include/asm/Makefile \ diff --git a/kernel/cobalt/arch/arm64/Kconfig b/kernel/cobalt/arch/arm64/Kconfig new file mode 100644 index 000..dc6485d --- /dev/null +++ b/kernel/cobalt/arch/arm64/Kconfig @@ -0,0 +1,40 @@ +source "kernel/xenomai/Kconfig" +source "drivers/xenomai/Kconfig" + +menu "Machine/platform-specific options" + +config XENO_ARCH_UNLOCKED_SWITCH + bool "Unlocked context switch" + default y + help + The Cobalt core may allow non-atomic execution of the + machine-dependent context switching code, so that other CPUs + and/or local interrupts may execute concurrently. + + This option reduces interrupt latency when costly cache and + TLB flushes are required to switch context. + + You definitely wan
[Xenomai-git] Dmitriy Cherkasov : cobalt/arm64: populate arch/arm64 with a copy of arch/ arm.
Module: xenomai-3 Branch: next Commit: a4f44289098e979a8d2c4617be983daef33c5ca2 URL: http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=a4f44289098e979a8d2c4617be983daef33c5ca2 Author: Dmitriy Cherkasov Date: Wed May 6 15:27:23 2015 -0700 cobalt/arm64: populate arch/arm64 with a copy of arch/arm. kernel/cobalt/arch/arm -> kernel/cobalt/arch/arm64 lib/cobalt/arch/arm -> lib/cobalt/arch/arm64 --- configure.ac | 12 +- kernel/cobalt/arch/arm64/Kconfig | 40 +++ kernel/cobalt/arch/arm64/Makefile |5 + .../arch/arm64/include/asm/xenomai/calibration.h | 59 .../arch/arm64/include/asm/xenomai/features.h | 30 ++ .../cobalt/arch/arm64/include/asm/xenomai/fptest.h | 52 +++ .../arch/arm64/include/asm/xenomai/machine.h | 85 + .../arch/arm64/include/asm/xenomai/syscall.h | 74 .../arch/arm64/include/asm/xenomai/syscall32.h | 24 ++ .../cobalt/arch/arm64/include/asm/xenomai/thread.h | 123 +++ .../arch/arm64/include/asm/xenomai/uapi/arith.h| 142 .../arch/arm64/include/asm/xenomai/uapi/features.h | 43 +++ .../arch/arm64/include/asm/xenomai/uapi/fptest.h | 61 .../arch/arm64/include/asm/xenomai/uapi/syscall.h | 34 ++ .../arch/arm64/include/asm/xenomai/uapi/tsc.h | 25 ++ .../arch/arm64/include/asm/xenomai/wrappers.h | 27 ++ kernel/cobalt/arch/arm64/machine.c | 119 +++ kernel/cobalt/arch/arm64/mayday.c | 146 kernel/cobalt/arch/arm64/switch.S | 167 + kernel/cobalt/arch/arm64/syscall.c | 53 +++ kernel/cobalt/arch/arm64/thread.c | 355 lib/cobalt/arch/Makefile.am|2 +- lib/cobalt/arch/arm64/Makefile.am | 13 + lib/cobalt/arch/arm64/features.c | 102 ++ lib/cobalt/arch/arm64/include/Makefile.am |2 + lib/cobalt/arch/arm64/include/asm/Makefile.am |2 + .../arch/arm64/include/asm/xenomai/Makefile.am |5 + .../arch/arm64/include/asm/xenomai/features.h | 62 .../arch/arm64/include/asm/xenomai/syscall.h | 138 lib/cobalt/arch/arm64/include/asm/xenomai/tsc.h| 48 +++ 30 files changed, 2047 insertions(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac index 37b15a0..a6b3e12 100644 --- a/configure.ac +++ b/configure.ac @@ -139,6 +139,10 @@ case "$build_for" in target_cpu_arch=arm CONFIG_XENO_DEFAULT_PERIOD=100 ;; + aarch64-*) + target_cpu_arch=arm64 + CONFIG_XENO_DEFAULT_PERIOD=100 + ;; x86_64-*|amd64-*) use_tls=yes target_cpu_arch=x86 @@ -361,7 +365,7 @@ fi dnl VSYSCALL (default: enabled) for Cobalt/x86 -if test $XENO_TARGET_ARCH = x86 -a $rtcore_type = cobalt; then +if test $target_cpu_arch = x86 -a $rtcore_type = cobalt; then CONFIG_XENO_X86_VSYSCALL=y AC_MSG_CHECKING(for x86 VSYSCALL availability) AC_ARG_ENABLE(x86-vsyscall, @@ -786,7 +790,7 @@ dnl Autoconf-generated symbols have been listed. AH_BOTTOM([#endif /* __IN_XENO__ */]) if test $rtcore_type = cobalt; then - XENO_USER_CFLAGS="-I$topdir/lib/cobalt/arch/$XENO_TARGET_ARCH/include -I$topdir/kernel/cobalt/arch/$XENO_TARGET_ARCH/include $XENO_USER_CFLAGS" + XENO_USER_CFLAGS="-I$topdir/lib/cobalt/arch/$target_cpu_arch/include -I$topdir/kernel/cobalt/arch/$target_cpu_arch/include $XENO_USER_CFLAGS" XENO_COBALT_CFLAGS="$XENO_USER_CFLAGS" case "$build_for" in i*86*-*) XENO_COBALT_CFLAGS="$XENO_COBALT_CFLAGS -fno-omit-frame-pointer";; @@ -865,6 +869,10 @@ AC_CONFIG_FILES([ \ lib/cobalt/arch/arm/include/Makefile \ lib/cobalt/arch/arm/include/asm/Makefile \ lib/cobalt/arch/arm/include/asm/xenomai/Makefile \ + lib/cobalt/arch/arm64/Makefile \ + lib/cobalt/arch/arm64/include/Makefile \ + lib/cobalt/arch/arm64/include/asm/Makefile \ + lib/cobalt/arch/arm64/include/asm/xenomai/Makefile \ lib/cobalt/arch/powerpc/Makefile \ lib/cobalt/arch/powerpc/include/Makefile \ lib/cobalt/arch/powerpc/include/asm/Makefile \ diff --git a/kernel/cobalt/arch/arm64/Kconfig b/kernel/cobalt/arch/arm64/Kconfig new file mode 100644 index 000..dc6485d --- /dev/null +++ b/kernel/cobalt/arch/arm64/Kconfig @@ -0,0 +1,40 @@ +source "kernel/xenomai/Kconfig" +source "drivers/xenomai/Kconfig" + +menu "Machine/platform-specific options" + +config XENO_ARCH_UNLOCKED_SWITCH + bool "Unlocked context switch" + default y + help + The Cobalt core may allow non-atomic execution of the + machine-dependent context switching code, so that other CPUs + and/or local interrupts may execute concurrently. + + This option reduces interrupt latency when costly cache and + TLB flushes are required to switch context. + + You definitely wan
[Xenomai-git] Dmitriy Cherkasov : cobalt/arm64: populate arch/arm64 with a copy of arch/ arm.
Module: xenomai-3 Branch: next Commit: 71f43e5c29f5d974cae7c65e42c3d043805fe99a URL: http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=71f43e5c29f5d974cae7c65e42c3d043805fe99a Author: Dmitriy Cherkasov Date: Wed May 6 15:27:23 2015 -0700 cobalt/arm64: populate arch/arm64 with a copy of arch/arm. kernel/cobalt/arch/arm -> kernel/cobalt/arch/arm64 lib/cobalt/arch/arm -> lib/cobalt/arch/arm64 --- configure.ac | 12 +- kernel/cobalt/arch/arm64/Kconfig | 40 +++ kernel/cobalt/arch/arm64/Makefile |5 + .../arch/arm64/include/asm/xenomai/calibration.h | 59 .../arch/arm64/include/asm/xenomai/features.h | 30 ++ .../cobalt/arch/arm64/include/asm/xenomai/fptest.h | 52 +++ .../arch/arm64/include/asm/xenomai/machine.h | 85 + .../arch/arm64/include/asm/xenomai/syscall.h | 74 .../arch/arm64/include/asm/xenomai/syscall32.h | 24 ++ .../cobalt/arch/arm64/include/asm/xenomai/thread.h | 123 +++ .../arch/arm64/include/asm/xenomai/uapi/arith.h| 142 .../arch/arm64/include/asm/xenomai/uapi/features.h | 43 +++ .../arch/arm64/include/asm/xenomai/uapi/fptest.h | 61 .../arch/arm64/include/asm/xenomai/uapi/syscall.h | 34 ++ .../arch/arm64/include/asm/xenomai/uapi/tsc.h | 25 ++ .../arch/arm64/include/asm/xenomai/wrappers.h | 27 ++ kernel/cobalt/arch/arm64/machine.c | 119 +++ kernel/cobalt/arch/arm64/mayday.c | 146 kernel/cobalt/arch/arm64/switch.S | 167 + kernel/cobalt/arch/arm64/syscall.c | 53 +++ kernel/cobalt/arch/arm64/thread.c | 355 lib/cobalt/arch/Makefile.am|2 +- lib/cobalt/arch/arm64/Makefile.am | 13 + lib/cobalt/arch/arm64/features.c | 102 ++ lib/cobalt/arch/arm64/include/Makefile.am |2 + lib/cobalt/arch/arm64/include/asm/Makefile.am |2 + .../arch/arm64/include/asm/xenomai/Makefile.am |5 + .../arch/arm64/include/asm/xenomai/features.h | 62 .../arch/arm64/include/asm/xenomai/syscall.h | 138 lib/cobalt/arch/arm64/include/asm/xenomai/tsc.h| 48 +++ 30 files changed, 2047 insertions(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac index d5c5aaa..2170d0e 100644 --- a/configure.ac +++ b/configure.ac @@ -139,6 +139,10 @@ case "$build_for" in target_cpu_arch=arm CONFIG_XENO_DEFAULT_PERIOD=100 ;; + aarch64-*) + target_cpu_arch=arm64 + CONFIG_XENO_DEFAULT_PERIOD=100 + ;; x86_64-*|amd64-*) use_tls=yes target_cpu_arch=x86 @@ -361,7 +365,7 @@ fi dnl VSYSCALL (default: enabled) for Cobalt/x86 -if test $XENO_TARGET_ARCH = x86 -a $rtcore_type = cobalt; then +if test $target_cpu_arch = x86 -a $rtcore_type = cobalt; then CONFIG_XENO_X86_VSYSCALL=y AC_MSG_CHECKING(for x86 VSYSCALL availability) AC_ARG_ENABLE(x86-vsyscall, @@ -786,7 +790,7 @@ dnl Autoconf-generated symbols have been listed. AH_BOTTOM([#endif /* __IN_XENO__ */]) if test $rtcore_type = cobalt; then - XENO_USER_CFLAGS="-I$topdir/lib/cobalt/arch/$XENO_TARGET_ARCH/include -I$topdir/kernel/cobalt/arch/$XENO_TARGET_ARCH/include $XENO_USER_CFLAGS" + XENO_USER_CFLAGS="-I$topdir/lib/cobalt/arch/$target_cpu_arch/include -I$topdir/kernel/cobalt/arch/$target_cpu_arch/include $XENO_USER_CFLAGS" XENO_COBALT_CFLAGS="$XENO_USER_CFLAGS" case "$build_for" in i*86*-*) XENO_COBALT_CFLAGS="$XENO_COBALT_CFLAGS -fno-omit-frame-pointer";; @@ -865,6 +869,10 @@ AC_CONFIG_FILES([ \ lib/cobalt/arch/arm/include/Makefile \ lib/cobalt/arch/arm/include/asm/Makefile \ lib/cobalt/arch/arm/include/asm/xenomai/Makefile \ + lib/cobalt/arch/arm64/Makefile \ + lib/cobalt/arch/arm64/include/Makefile \ + lib/cobalt/arch/arm64/include/asm/Makefile \ + lib/cobalt/arch/arm64/include/asm/xenomai/Makefile \ lib/cobalt/arch/powerpc/Makefile \ lib/cobalt/arch/powerpc/include/Makefile \ lib/cobalt/arch/powerpc/include/asm/Makefile \ diff --git a/kernel/cobalt/arch/arm64/Kconfig b/kernel/cobalt/arch/arm64/Kconfig new file mode 100644 index 000..dc6485d --- /dev/null +++ b/kernel/cobalt/arch/arm64/Kconfig @@ -0,0 +1,40 @@ +source "kernel/xenomai/Kconfig" +source "drivers/xenomai/Kconfig" + +menu "Machine/platform-specific options" + +config XENO_ARCH_UNLOCKED_SWITCH + bool "Unlocked context switch" + default y + help + The Cobalt core may allow non-atomic execution of the + machine-dependent context switching code, so that other CPUs + and/or local interrupts may execute concurrently. + + This option reduces interrupt latency when costly cache and + TLB flushes are required to switch context. + + You definitely wan
[Xenomai-git] Dmitriy Cherkasov : cobalt/arm64: populate arch/arm64 with a copy of arch/ arm.
Module: xenomai-3 Branch: next Commit: b4b946803747fd96dfc6f38537a578cd0de8188f URL: http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=b4b946803747fd96dfc6f38537a578cd0de8188f Author: Dmitriy Cherkasov Date: Wed May 6 15:27:23 2015 -0700 cobalt/arm64: populate arch/arm64 with a copy of arch/arm. kernel/cobalt/arch/arm -> kernel/cobalt/arch/arm64 lib/cobalt/arch/arm -> lib/cobalt/arch/arm64 --- configure.ac |8 + kernel/cobalt/arch/arm64/Kconfig | 40 +++ kernel/cobalt/arch/arm64/Makefile |5 + .../arch/arm64/include/asm/xenomai/calibration.h | 59 .../arch/arm64/include/asm/xenomai/features.h | 30 ++ .../cobalt/arch/arm64/include/asm/xenomai/fptest.h | 52 +++ .../arch/arm64/include/asm/xenomai/machine.h | 85 + .../arch/arm64/include/asm/xenomai/syscall.h | 74 .../arch/arm64/include/asm/xenomai/syscall32.h | 24 ++ .../cobalt/arch/arm64/include/asm/xenomai/thread.h | 123 +++ .../arch/arm64/include/asm/xenomai/uapi/arith.h| 142 .../arch/arm64/include/asm/xenomai/uapi/features.h | 43 +++ .../arch/arm64/include/asm/xenomai/uapi/fptest.h | 61 .../arch/arm64/include/asm/xenomai/uapi/syscall.h | 34 ++ .../arch/arm64/include/asm/xenomai/uapi/tsc.h | 25 ++ .../arch/arm64/include/asm/xenomai/wrappers.h | 27 ++ kernel/cobalt/arch/arm64/machine.c | 119 +++ kernel/cobalt/arch/arm64/mayday.c | 146 kernel/cobalt/arch/arm64/switch.S | 167 + kernel/cobalt/arch/arm64/syscall.c | 53 +++ kernel/cobalt/arch/arm64/thread.c | 355 lib/cobalt/arch/Makefile.am|2 +- lib/cobalt/arch/arm64/Makefile.am | 13 + lib/cobalt/arch/arm64/features.c | 102 ++ lib/cobalt/arch/arm64/include/Makefile.am |2 + lib/cobalt/arch/arm64/include/asm/Makefile.am |2 + .../arch/arm64/include/asm/xenomai/Makefile.am |5 + .../arch/arm64/include/asm/xenomai/features.h | 62 .../arch/arm64/include/asm/xenomai/syscall.h | 138 lib/cobalt/arch/arm64/include/asm/xenomai/tsc.h| 48 +++ 30 files changed, 2045 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 4792e46..28c41ce 100644 --- a/configure.ac +++ b/configure.ac @@ -139,6 +139,10 @@ case "$build_for" in target_cpu_arch=arm CONFIG_XENO_DEFAULT_PERIOD=100 ;; + aarch64-*) + XENO_TARGET_ARCH=arm64 + CONFIG_XENO_DEFAULT_PERIOD=100 + ;; x86_64-*|amd64-*) use_tls=yes target_cpu_arch=x86 @@ -862,6 +866,10 @@ AC_CONFIG_FILES([ \ lib/cobalt/arch/arm/include/Makefile \ lib/cobalt/arch/arm/include/asm/Makefile \ lib/cobalt/arch/arm/include/asm/xenomai/Makefile \ + lib/cobalt/arch/arm64/Makefile \ + lib/cobalt/arch/arm64/include/Makefile \ + lib/cobalt/arch/arm64/include/asm/Makefile \ + lib/cobalt/arch/arm64/include/asm/xenomai/Makefile \ lib/cobalt/arch/powerpc/Makefile \ lib/cobalt/arch/powerpc/include/Makefile \ lib/cobalt/arch/powerpc/include/asm/Makefile \ diff --git a/kernel/cobalt/arch/arm64/Kconfig b/kernel/cobalt/arch/arm64/Kconfig new file mode 100644 index 000..dc6485d --- /dev/null +++ b/kernel/cobalt/arch/arm64/Kconfig @@ -0,0 +1,40 @@ +source "kernel/xenomai/Kconfig" +source "drivers/xenomai/Kconfig" + +menu "Machine/platform-specific options" + +config XENO_ARCH_UNLOCKED_SWITCH + bool "Unlocked context switch" + default y + help + The Cobalt core may allow non-atomic execution of the + machine-dependent context switching code, so that other CPUs + and/or local interrupts may execute concurrently. + + This option reduces interrupt latency when costly cache and + TLB flushes are required to switch context. + + You definitely want to enable that option on low-end ARM + platforms. +endmenu + +config IPIPE_WANT_PREEMPTIBLE_SWITCH + bool + default y if XENO_ARCH_UNLOCKED_SWITCH + default n if !XENO_ARCH_UNLOCKED_SWITCH + +config IPIPE_WANT_ACTIVE_MM + def_bool y + +config XENO_ARCH_WANT_TIP + def_bool y + +config XENO_ARCH_FPU + def_bool VFP + +config XENO_ARCH_SYS3264 +def_bool n + +config XENO_ARCH_OUTOFLINE_XNLOCK + bool + default y diff --git a/kernel/cobalt/arch/arm64/Makefile b/kernel/cobalt/arch/arm64/Makefile new file mode 100644 index 000..f2e4e20 --- /dev/null +++ b/kernel/cobalt/arch/arm64/Makefile @@ -0,0 +1,5 @@ +obj-$(CONFIG_XENOMAI) += xenomai.o + +xenomai-y := machine.o mayday.o thread.o switch.o syscall.o + +ccflags-y := -Iarch/arm/xenomai/include -Iinclude/xenomai diff --git a/kernel/cobalt/arch/arm64/include/asm/xenomai/calibration.h b
[Xenomai-git] Dmitriy Cherkasov : cobalt/arm64: populate arch/arm64 with a copy of arch/ arm.
Module: xenomai-3 Branch: next Commit: 3f080f516897a4d88bf10ed7738b45674b5c6a21 URL: http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=3f080f516897a4d88bf10ed7738b45674b5c6a21 Author: Dmitriy Cherkasov Date: Wed May 6 15:27:23 2015 -0700 cobalt/arm64: populate arch/arm64 with a copy of arch/arm. kernel/cobalt/arch/arm -> kernel/cobalt/arch/arm64 lib/cobalt/arch/arm -> lib/cobalt/arch/arm64 --- configure.ac |8 + kernel/cobalt/arch/arm64/Kconfig | 40 +++ kernel/cobalt/arch/arm64/Makefile |5 + .../arch/arm64/include/asm/xenomai/calibration.h | 59 .../arch/arm64/include/asm/xenomai/features.h | 30 ++ .../cobalt/arch/arm64/include/asm/xenomai/fptest.h | 52 +++ .../arch/arm64/include/asm/xenomai/machine.h | 85 + .../arch/arm64/include/asm/xenomai/syscall.h | 74 .../arch/arm64/include/asm/xenomai/syscall32.h | 24 ++ .../cobalt/arch/arm64/include/asm/xenomai/thread.h | 123 +++ .../arch/arm64/include/asm/xenomai/uapi/arith.h| 142 .../arch/arm64/include/asm/xenomai/uapi/features.h | 43 +++ .../arch/arm64/include/asm/xenomai/uapi/fptest.h | 61 .../arch/arm64/include/asm/xenomai/uapi/syscall.h | 34 ++ .../arch/arm64/include/asm/xenomai/uapi/tsc.h | 25 ++ .../arch/arm64/include/asm/xenomai/wrappers.h | 27 ++ kernel/cobalt/arch/arm64/machine.c | 119 +++ kernel/cobalt/arch/arm64/mayday.c | 146 kernel/cobalt/arch/arm64/switch.S | 167 + kernel/cobalt/arch/arm64/syscall.c | 53 +++ kernel/cobalt/arch/arm64/thread.c | 355 lib/cobalt/arch/Makefile.am|2 +- lib/cobalt/arch/arm64/Makefile.am | 13 + lib/cobalt/arch/arm64/features.c | 102 ++ lib/cobalt/arch/arm64/include/Makefile.am |2 + lib/cobalt/arch/arm64/include/asm/Makefile.am |2 + .../arch/arm64/include/asm/xenomai/Makefile.am |5 + .../arch/arm64/include/asm/xenomai/features.h | 62 .../arch/arm64/include/asm/xenomai/syscall.h | 138 lib/cobalt/arch/arm64/include/asm/xenomai/tsc.h| 48 +++ 30 files changed, 2045 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 83bc809..2197e55 100644 --- a/configure.ac +++ b/configure.ac @@ -139,6 +139,10 @@ case "$build_for" in target_cpu_arch=arm CONFIG_XENO_DEFAULT_PERIOD=100 ;; + aarch64-*) + XENO_TARGET_ARCH=arm64 + CONFIG_XENO_DEFAULT_PERIOD=100 + ;; x86_64-*|amd64-*) use_tls=yes target_cpu_arch=x86 @@ -862,6 +866,10 @@ AC_CONFIG_FILES([ \ lib/cobalt/arch/arm/include/Makefile \ lib/cobalt/arch/arm/include/asm/Makefile \ lib/cobalt/arch/arm/include/asm/xenomai/Makefile \ + lib/cobalt/arch/arm64/Makefile \ + lib/cobalt/arch/arm64/include/Makefile \ + lib/cobalt/arch/arm64/include/asm/Makefile \ + lib/cobalt/arch/arm64/include/asm/xenomai/Makefile \ lib/cobalt/arch/powerpc/Makefile \ lib/cobalt/arch/powerpc/include/Makefile \ lib/cobalt/arch/powerpc/include/asm/Makefile \ diff --git a/kernel/cobalt/arch/arm64/Kconfig b/kernel/cobalt/arch/arm64/Kconfig new file mode 100644 index 000..dc6485d --- /dev/null +++ b/kernel/cobalt/arch/arm64/Kconfig @@ -0,0 +1,40 @@ +source "kernel/xenomai/Kconfig" +source "drivers/xenomai/Kconfig" + +menu "Machine/platform-specific options" + +config XENO_ARCH_UNLOCKED_SWITCH + bool "Unlocked context switch" + default y + help + The Cobalt core may allow non-atomic execution of the + machine-dependent context switching code, so that other CPUs + and/or local interrupts may execute concurrently. + + This option reduces interrupt latency when costly cache and + TLB flushes are required to switch context. + + You definitely want to enable that option on low-end ARM + platforms. +endmenu + +config IPIPE_WANT_PREEMPTIBLE_SWITCH + bool + default y if XENO_ARCH_UNLOCKED_SWITCH + default n if !XENO_ARCH_UNLOCKED_SWITCH + +config IPIPE_WANT_ACTIVE_MM + def_bool y + +config XENO_ARCH_WANT_TIP + def_bool y + +config XENO_ARCH_FPU + def_bool VFP + +config XENO_ARCH_SYS3264 +def_bool n + +config XENO_ARCH_OUTOFLINE_XNLOCK + bool + default y diff --git a/kernel/cobalt/arch/arm64/Makefile b/kernel/cobalt/arch/arm64/Makefile new file mode 100644 index 000..f2e4e20 --- /dev/null +++ b/kernel/cobalt/arch/arm64/Makefile @@ -0,0 +1,5 @@ +obj-$(CONFIG_XENOMAI) += xenomai.o + +xenomai-y := machine.o mayday.o thread.o switch.o syscall.o + +ccflags-y := -Iarch/arm/xenomai/include -Iinclude/xenomai diff --git a/kernel/cobalt/arch/arm64/include/asm/xenomai/calibration.h b
[Xenomai-git] Dmitriy Cherkasov : cobalt/arm64: populate arch/arm64 with a copy of arch/ arm.
Module: xenomai-3 Branch: next Commit: f084cb58aacd0ca722068e8b3410eb857944dd5f URL: http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=f084cb58aacd0ca722068e8b3410eb857944dd5f Author: Dmitriy Cherkasov Date: Wed May 6 15:27:23 2015 -0700 cobalt/arm64: populate arch/arm64 with a copy of arch/arm. kernel/cobalt/arch/arm -> kernel/cobalt/arch/arm64 lib/cobalt/arch/arm -> lib/cobalt/arch/arm64 --- configure.ac |8 + kernel/cobalt/arch/arm64/Kconfig | 40 +++ kernel/cobalt/arch/arm64/Makefile |5 + .../arch/arm64/include/asm/xenomai/calibration.h | 59 .../arch/arm64/include/asm/xenomai/features.h | 30 ++ .../cobalt/arch/arm64/include/asm/xenomai/fptest.h | 52 +++ .../arch/arm64/include/asm/xenomai/machine.h | 85 + .../arch/arm64/include/asm/xenomai/syscall.h | 74 .../arch/arm64/include/asm/xenomai/syscall32.h | 24 ++ .../cobalt/arch/arm64/include/asm/xenomai/thread.h | 123 +++ .../arch/arm64/include/asm/xenomai/uapi/arith.h| 142 .../arch/arm64/include/asm/xenomai/uapi/features.h | 43 +++ .../arch/arm64/include/asm/xenomai/uapi/fptest.h | 61 .../arch/arm64/include/asm/xenomai/uapi/syscall.h | 34 ++ .../arch/arm64/include/asm/xenomai/uapi/tsc.h | 25 ++ .../arch/arm64/include/asm/xenomai/wrappers.h | 27 ++ kernel/cobalt/arch/arm64/machine.c | 119 +++ kernel/cobalt/arch/arm64/mayday.c | 146 kernel/cobalt/arch/arm64/switch.S | 167 + kernel/cobalt/arch/arm64/syscall.c | 53 +++ kernel/cobalt/arch/arm64/thread.c | 355 lib/cobalt/arch/Makefile.am|2 +- lib/cobalt/arch/arm64/Makefile.am | 13 + lib/cobalt/arch/arm64/features.c | 102 ++ lib/cobalt/arch/arm64/include/Makefile.am |2 + lib/cobalt/arch/arm64/include/asm/Makefile.am |2 + .../arch/arm64/include/asm/xenomai/Makefile.am |5 + .../arch/arm64/include/asm/xenomai/features.h | 62 .../arch/arm64/include/asm/xenomai/syscall.h | 138 lib/cobalt/arch/arm64/include/asm/xenomai/tsc.h| 48 +++ 30 files changed, 2045 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 83bc809..2197e55 100644 --- a/configure.ac +++ b/configure.ac @@ -139,6 +139,10 @@ case "$build_for" in target_cpu_arch=arm CONFIG_XENO_DEFAULT_PERIOD=100 ;; + aarch64-*) + XENO_TARGET_ARCH=arm64 + CONFIG_XENO_DEFAULT_PERIOD=100 + ;; x86_64-*|amd64-*) use_tls=yes target_cpu_arch=x86 @@ -862,6 +866,10 @@ AC_CONFIG_FILES([ \ lib/cobalt/arch/arm/include/Makefile \ lib/cobalt/arch/arm/include/asm/Makefile \ lib/cobalt/arch/arm/include/asm/xenomai/Makefile \ + lib/cobalt/arch/arm64/Makefile \ + lib/cobalt/arch/arm64/include/Makefile \ + lib/cobalt/arch/arm64/include/asm/Makefile \ + lib/cobalt/arch/arm64/include/asm/xenomai/Makefile \ lib/cobalt/arch/powerpc/Makefile \ lib/cobalt/arch/powerpc/include/Makefile \ lib/cobalt/arch/powerpc/include/asm/Makefile \ diff --git a/kernel/cobalt/arch/arm64/Kconfig b/kernel/cobalt/arch/arm64/Kconfig new file mode 100644 index 000..dc6485d --- /dev/null +++ b/kernel/cobalt/arch/arm64/Kconfig @@ -0,0 +1,40 @@ +source "kernel/xenomai/Kconfig" +source "drivers/xenomai/Kconfig" + +menu "Machine/platform-specific options" + +config XENO_ARCH_UNLOCKED_SWITCH + bool "Unlocked context switch" + default y + help + The Cobalt core may allow non-atomic execution of the + machine-dependent context switching code, so that other CPUs + and/or local interrupts may execute concurrently. + + This option reduces interrupt latency when costly cache and + TLB flushes are required to switch context. + + You definitely want to enable that option on low-end ARM + platforms. +endmenu + +config IPIPE_WANT_PREEMPTIBLE_SWITCH + bool + default y if XENO_ARCH_UNLOCKED_SWITCH + default n if !XENO_ARCH_UNLOCKED_SWITCH + +config IPIPE_WANT_ACTIVE_MM + def_bool y + +config XENO_ARCH_WANT_TIP + def_bool y + +config XENO_ARCH_FPU + def_bool VFP + +config XENO_ARCH_SYS3264 +def_bool n + +config XENO_ARCH_OUTOFLINE_XNLOCK + bool + default y diff --git a/kernel/cobalt/arch/arm64/Makefile b/kernel/cobalt/arch/arm64/Makefile new file mode 100644 index 000..f2e4e20 --- /dev/null +++ b/kernel/cobalt/arch/arm64/Makefile @@ -0,0 +1,5 @@ +obj-$(CONFIG_XENOMAI) += xenomai.o + +xenomai-y := machine.o mayday.o thread.o switch.o syscall.o + +ccflags-y := -Iarch/arm/xenomai/include -Iinclude/xenomai diff --git a/kernel/cobalt/arch/arm64/include/asm/xenomai/calibration.h b
[Xenomai-git] Dmitriy Cherkasov : cobalt/arm64: populate arch/arm64 with a copy of arch/ arm.
Module: xenomai-3 Branch: next Commit: 328fa9a5b527fe59d2934e78d81b7b1686835463 URL: http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=328fa9a5b527fe59d2934e78d81b7b1686835463 Author: Dmitriy Cherkasov Date: Wed May 6 15:27:23 2015 -0700 cobalt/arm64: populate arch/arm64 with a copy of arch/arm. kernel/cobalt/arch/arm -> kernel/cobalt/arch/arm64 lib/cobalt/arch/arm -> lib/cobalt/arch/arm64 --- configure.ac |8 + kernel/cobalt/arch/arm64/Kconfig | 40 +++ kernel/cobalt/arch/arm64/Makefile |5 + .../arch/arm64/include/asm/xenomai/calibration.h | 59 .../arch/arm64/include/asm/xenomai/features.h | 30 ++ .../cobalt/arch/arm64/include/asm/xenomai/fptest.h | 52 +++ .../arch/arm64/include/asm/xenomai/machine.h | 85 + .../arch/arm64/include/asm/xenomai/syscall.h | 74 .../arch/arm64/include/asm/xenomai/syscall32.h | 24 ++ .../cobalt/arch/arm64/include/asm/xenomai/thread.h | 123 +++ .../arch/arm64/include/asm/xenomai/uapi/arith.h| 142 .../arch/arm64/include/asm/xenomai/uapi/features.h | 43 +++ .../arch/arm64/include/asm/xenomai/uapi/fptest.h | 61 .../arch/arm64/include/asm/xenomai/uapi/syscall.h | 34 ++ .../arch/arm64/include/asm/xenomai/uapi/tsc.h | 25 ++ .../arch/arm64/include/asm/xenomai/wrappers.h | 27 ++ kernel/cobalt/arch/arm64/machine.c | 119 +++ kernel/cobalt/arch/arm64/mayday.c | 146 kernel/cobalt/arch/arm64/switch.S | 167 + kernel/cobalt/arch/arm64/syscall.c | 53 +++ kernel/cobalt/arch/arm64/thread.c | 355 lib/cobalt/arch/Makefile.am|2 +- lib/cobalt/arch/arm64/Makefile.am | 13 + lib/cobalt/arch/arm64/features.c | 102 ++ lib/cobalt/arch/arm64/include/Makefile.am |2 + lib/cobalt/arch/arm64/include/asm/Makefile.am |2 + .../arch/arm64/include/asm/xenomai/Makefile.am |5 + .../arch/arm64/include/asm/xenomai/features.h | 62 .../arch/arm64/include/asm/xenomai/syscall.h | 138 lib/cobalt/arch/arm64/include/asm/xenomai/tsc.h| 48 +++ 30 files changed, 2045 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index b33ff12..14d2f8e 100644 --- a/configure.ac +++ b/configure.ac @@ -139,6 +139,10 @@ case "$build_for" in target_cpu_arch=arm CONFIG_XENO_DEFAULT_PERIOD=100 ;; + aarch64-*) + XENO_TARGET_ARCH=arm64 + CONFIG_XENO_DEFAULT_PERIOD=100 + ;; x86_64-*|amd64-*) use_tls=yes target_cpu_arch=x86 @@ -860,6 +864,10 @@ AC_CONFIG_FILES([ \ lib/cobalt/arch/arm/include/Makefile \ lib/cobalt/arch/arm/include/asm/Makefile \ lib/cobalt/arch/arm/include/asm/xenomai/Makefile \ + lib/cobalt/arch/arm64/Makefile \ + lib/cobalt/arch/arm64/include/Makefile \ + lib/cobalt/arch/arm64/include/asm/Makefile \ + lib/cobalt/arch/arm64/include/asm/xenomai/Makefile \ lib/cobalt/arch/powerpc/Makefile \ lib/cobalt/arch/powerpc/include/Makefile \ lib/cobalt/arch/powerpc/include/asm/Makefile \ diff --git a/kernel/cobalt/arch/arm64/Kconfig b/kernel/cobalt/arch/arm64/Kconfig new file mode 100644 index 000..dc6485d --- /dev/null +++ b/kernel/cobalt/arch/arm64/Kconfig @@ -0,0 +1,40 @@ +source "kernel/xenomai/Kconfig" +source "drivers/xenomai/Kconfig" + +menu "Machine/platform-specific options" + +config XENO_ARCH_UNLOCKED_SWITCH + bool "Unlocked context switch" + default y + help + The Cobalt core may allow non-atomic execution of the + machine-dependent context switching code, so that other CPUs + and/or local interrupts may execute concurrently. + + This option reduces interrupt latency when costly cache and + TLB flushes are required to switch context. + + You definitely want to enable that option on low-end ARM + platforms. +endmenu + +config IPIPE_WANT_PREEMPTIBLE_SWITCH + bool + default y if XENO_ARCH_UNLOCKED_SWITCH + default n if !XENO_ARCH_UNLOCKED_SWITCH + +config IPIPE_WANT_ACTIVE_MM + def_bool y + +config XENO_ARCH_WANT_TIP + def_bool y + +config XENO_ARCH_FPU + def_bool VFP + +config XENO_ARCH_SYS3264 +def_bool n + +config XENO_ARCH_OUTOFLINE_XNLOCK + bool + default y diff --git a/kernel/cobalt/arch/arm64/Makefile b/kernel/cobalt/arch/arm64/Makefile new file mode 100644 index 000..f2e4e20 --- /dev/null +++ b/kernel/cobalt/arch/arm64/Makefile @@ -0,0 +1,5 @@ +obj-$(CONFIG_XENOMAI) += xenomai.o + +xenomai-y := machine.o mayday.o thread.o switch.o syscall.o + +ccflags-y := -Iarch/arm/xenomai/include -Iinclude/xenomai diff --git a/kernel/cobalt/arch/arm64/include/asm/xenomai/calibration.h b
[Xenomai-git] Dmitriy Cherkasov : cobalt/arm64: populate arch/arm64 with a copy of arch/ arm.
Module: xenomai-3 Branch: next Commit: b3b3aec1070adaf64fc1fdd21379b7cb2522667b URL: http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=b3b3aec1070adaf64fc1fdd21379b7cb2522667b Author: Dmitriy Cherkasov Date: Wed May 6 15:27:23 2015 -0700 cobalt/arm64: populate arch/arm64 with a copy of arch/arm. kernel/cobalt/arch/arm -> kernel/cobalt/arch/arm64 lib/cobalt/arch/arm -> lib/cobalt/arch/arm64 --- configure.ac |8 + kernel/cobalt/arch/arm64/Kconfig | 40 +++ kernel/cobalt/arch/arm64/Makefile |5 + .../arch/arm64/include/asm/xenomai/calibration.h | 59 .../arch/arm64/include/asm/xenomai/features.h | 30 ++ .../cobalt/arch/arm64/include/asm/xenomai/fptest.h | 52 +++ .../arch/arm64/include/asm/xenomai/machine.h | 85 + .../arch/arm64/include/asm/xenomai/syscall.h | 74 .../arch/arm64/include/asm/xenomai/syscall32.h | 24 ++ .../cobalt/arch/arm64/include/asm/xenomai/thread.h | 123 +++ .../arch/arm64/include/asm/xenomai/uapi/arith.h| 142 .../arch/arm64/include/asm/xenomai/uapi/features.h | 43 +++ .../arch/arm64/include/asm/xenomai/uapi/fptest.h | 61 .../arch/arm64/include/asm/xenomai/uapi/syscall.h | 34 ++ .../arch/arm64/include/asm/xenomai/uapi/tsc.h | 25 ++ .../arch/arm64/include/asm/xenomai/wrappers.h | 27 ++ kernel/cobalt/arch/arm64/machine.c | 119 +++ kernel/cobalt/arch/arm64/mayday.c | 146 kernel/cobalt/arch/arm64/switch.S | 167 + kernel/cobalt/arch/arm64/syscall.c | 53 +++ kernel/cobalt/arch/arm64/thread.c | 355 lib/cobalt/arch/Makefile.am|2 +- lib/cobalt/arch/arm64/Makefile.am | 13 + lib/cobalt/arch/arm64/features.c | 102 ++ lib/cobalt/arch/arm64/include/Makefile.am |2 + lib/cobalt/arch/arm64/include/asm/Makefile.am |2 + .../arch/arm64/include/asm/xenomai/Makefile.am |5 + .../arch/arm64/include/asm/xenomai/features.h | 62 .../arch/arm64/include/asm/xenomai/syscall.h | 138 lib/cobalt/arch/arm64/include/asm/xenomai/tsc.h| 48 +++ 30 files changed, 2045 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index b33ff12..14d2f8e 100644 --- a/configure.ac +++ b/configure.ac @@ -139,6 +139,10 @@ case "$build_for" in target_cpu_arch=arm CONFIG_XENO_DEFAULT_PERIOD=100 ;; + aarch64-*) + XENO_TARGET_ARCH=arm64 + CONFIG_XENO_DEFAULT_PERIOD=100 + ;; x86_64-*|amd64-*) use_tls=yes target_cpu_arch=x86 @@ -860,6 +864,10 @@ AC_CONFIG_FILES([ \ lib/cobalt/arch/arm/include/Makefile \ lib/cobalt/arch/arm/include/asm/Makefile \ lib/cobalt/arch/arm/include/asm/xenomai/Makefile \ + lib/cobalt/arch/arm64/Makefile \ + lib/cobalt/arch/arm64/include/Makefile \ + lib/cobalt/arch/arm64/include/asm/Makefile \ + lib/cobalt/arch/arm64/include/asm/xenomai/Makefile \ lib/cobalt/arch/powerpc/Makefile \ lib/cobalt/arch/powerpc/include/Makefile \ lib/cobalt/arch/powerpc/include/asm/Makefile \ diff --git a/kernel/cobalt/arch/arm64/Kconfig b/kernel/cobalt/arch/arm64/Kconfig new file mode 100644 index 000..dc6485d --- /dev/null +++ b/kernel/cobalt/arch/arm64/Kconfig @@ -0,0 +1,40 @@ +source "kernel/xenomai/Kconfig" +source "drivers/xenomai/Kconfig" + +menu "Machine/platform-specific options" + +config XENO_ARCH_UNLOCKED_SWITCH + bool "Unlocked context switch" + default y + help + The Cobalt core may allow non-atomic execution of the + machine-dependent context switching code, so that other CPUs + and/or local interrupts may execute concurrently. + + This option reduces interrupt latency when costly cache and + TLB flushes are required to switch context. + + You definitely want to enable that option on low-end ARM + platforms. +endmenu + +config IPIPE_WANT_PREEMPTIBLE_SWITCH + bool + default y if XENO_ARCH_UNLOCKED_SWITCH + default n if !XENO_ARCH_UNLOCKED_SWITCH + +config IPIPE_WANT_ACTIVE_MM + def_bool y + +config XENO_ARCH_WANT_TIP + def_bool y + +config XENO_ARCH_FPU + def_bool VFP + +config XENO_ARCH_SYS3264 +def_bool n + +config XENO_ARCH_OUTOFLINE_XNLOCK + bool + default y diff --git a/kernel/cobalt/arch/arm64/Makefile b/kernel/cobalt/arch/arm64/Makefile new file mode 100644 index 000..f2e4e20 --- /dev/null +++ b/kernel/cobalt/arch/arm64/Makefile @@ -0,0 +1,5 @@ +obj-$(CONFIG_XENOMAI) += xenomai.o + +xenomai-y := machine.o mayday.o thread.o switch.o syscall.o + +ccflags-y := -Iarch/arm/xenomai/include -Iinclude/xenomai diff --git a/kernel/cobalt/arch/arm64/include/asm/xenomai/calibration.h b
[Xenomai-git] Dmitriy Cherkasov : cobalt/arm64: populate arch/arm64 with a copy of arch/ arm.
Module: xenomai-3 Branch: next Commit: 07f1685f9d408a7b95aa53d82f7cec0271da9b77 URL: http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=07f1685f9d408a7b95aa53d82f7cec0271da9b77 Author: Dmitriy Cherkasov Date: Wed May 6 15:27:23 2015 -0700 cobalt/arm64: populate arch/arm64 with a copy of arch/arm. kernel/cobalt/arch/arm -> kernel/cobalt/arch/arm64 lib/cobalt/arch/arm -> lib/cobalt/arch/arm64 --- configure.ac |8 + kernel/cobalt/arch/arm64/Kconfig | 40 +++ kernel/cobalt/arch/arm64/Makefile |5 + .../arch/arm64/include/asm/xenomai/calibration.h | 59 .../arch/arm64/include/asm/xenomai/features.h | 30 ++ .../cobalt/arch/arm64/include/asm/xenomai/fptest.h | 52 +++ .../arch/arm64/include/asm/xenomai/machine.h | 85 + .../arch/arm64/include/asm/xenomai/syscall.h | 74 .../arch/arm64/include/asm/xenomai/syscall32.h | 24 ++ .../cobalt/arch/arm64/include/asm/xenomai/thread.h | 123 +++ .../arch/arm64/include/asm/xenomai/uapi/arith.h| 142 .../arch/arm64/include/asm/xenomai/uapi/features.h | 43 +++ .../arch/arm64/include/asm/xenomai/uapi/fptest.h | 61 .../arch/arm64/include/asm/xenomai/uapi/syscall.h | 34 ++ .../arch/arm64/include/asm/xenomai/uapi/tsc.h | 25 ++ .../arch/arm64/include/asm/xenomai/wrappers.h | 27 ++ kernel/cobalt/arch/arm64/machine.c | 119 +++ kernel/cobalt/arch/arm64/mayday.c | 146 kernel/cobalt/arch/arm64/switch.S | 167 + kernel/cobalt/arch/arm64/syscall.c | 53 +++ kernel/cobalt/arch/arm64/thread.c | 355 lib/cobalt/arch/Makefile.am|2 +- lib/cobalt/arch/arm64/Makefile.am | 13 + lib/cobalt/arch/arm64/features.c | 102 ++ lib/cobalt/arch/arm64/include/Makefile.am |2 + lib/cobalt/arch/arm64/include/asm/Makefile.am |2 + .../arch/arm64/include/asm/xenomai/Makefile.am |5 + .../arch/arm64/include/asm/xenomai/features.h | 62 .../arch/arm64/include/asm/xenomai/syscall.h | 138 lib/cobalt/arch/arm64/include/asm/xenomai/tsc.h| 48 +++ 30 files changed, 2045 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 789a6d7..5b2a074 100644 --- a/configure.ac +++ b/configure.ac @@ -139,6 +139,10 @@ case "$build_for" in XENO_TARGET_ARCH=arm CONFIG_XENO_DEFAULT_PERIOD=100 ;; + aarch64-*) + XENO_TARGET_ARCH=arm64 + CONFIG_XENO_DEFAULT_PERIOD=100 + ;; x86_64-*|amd64-*) use_tls=yes XENO_TARGET_ARCH=x86 @@ -854,6 +858,10 @@ AC_CONFIG_FILES([ \ lib/cobalt/arch/arm/include/Makefile \ lib/cobalt/arch/arm/include/asm/Makefile \ lib/cobalt/arch/arm/include/asm/xenomai/Makefile \ + lib/cobalt/arch/arm64/Makefile \ + lib/cobalt/arch/arm64/include/Makefile \ + lib/cobalt/arch/arm64/include/asm/Makefile \ + lib/cobalt/arch/arm64/include/asm/xenomai/Makefile \ lib/cobalt/arch/powerpc/Makefile \ lib/cobalt/arch/powerpc/include/Makefile \ lib/cobalt/arch/powerpc/include/asm/Makefile \ diff --git a/kernel/cobalt/arch/arm64/Kconfig b/kernel/cobalt/arch/arm64/Kconfig new file mode 100644 index 000..dc6485d --- /dev/null +++ b/kernel/cobalt/arch/arm64/Kconfig @@ -0,0 +1,40 @@ +source "kernel/xenomai/Kconfig" +source "drivers/xenomai/Kconfig" + +menu "Machine/platform-specific options" + +config XENO_ARCH_UNLOCKED_SWITCH + bool "Unlocked context switch" + default y + help + The Cobalt core may allow non-atomic execution of the + machine-dependent context switching code, so that other CPUs + and/or local interrupts may execute concurrently. + + This option reduces interrupt latency when costly cache and + TLB flushes are required to switch context. + + You definitely want to enable that option on low-end ARM + platforms. +endmenu + +config IPIPE_WANT_PREEMPTIBLE_SWITCH + bool + default y if XENO_ARCH_UNLOCKED_SWITCH + default n if !XENO_ARCH_UNLOCKED_SWITCH + +config IPIPE_WANT_ACTIVE_MM + def_bool y + +config XENO_ARCH_WANT_TIP + def_bool y + +config XENO_ARCH_FPU + def_bool VFP + +config XENO_ARCH_SYS3264 +def_bool n + +config XENO_ARCH_OUTOFLINE_XNLOCK + bool + default y diff --git a/kernel/cobalt/arch/arm64/Makefile b/kernel/cobalt/arch/arm64/Makefile new file mode 100644 index 000..f2e4e20 --- /dev/null +++ b/kernel/cobalt/arch/arm64/Makefile @@ -0,0 +1,5 @@ +obj-$(CONFIG_XENOMAI) += xenomai.o + +xenomai-y := machine.o mayday.o thread.o switch.o syscall.o + +ccflags-y := -Iarch/arm/xenomai/include -Iinclude/xenomai diff --git a/kernel/cobalt/arch/arm64/include/asm/xenomai/calibration.h
[Xenomai-git] Dmitriy Cherkasov : cobalt/arm64: populate arch/arm64 with a copy of arch/ arm.
Module: xenomai-3 Branch: next Commit: 10fad3c4f4d438a05dca931d19eba5bf382f3f00 URL: http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=10fad3c4f4d438a05dca931d19eba5bf382f3f00 Author: Dmitriy Cherkasov Date: Wed May 6 15:27:23 2015 -0700 cobalt/arm64: populate arch/arm64 with a copy of arch/arm. kernel/cobalt/arch/arm -> kernel/cobalt/arch/arm64 lib/cobalt/arch/arm -> lib/cobalt/arch/arm64 --- configure.ac |8 + kernel/cobalt/arch/arm64/Kconfig | 40 +++ kernel/cobalt/arch/arm64/Makefile |5 + .../arch/arm64/include/asm/xenomai/calibration.h | 59 .../arch/arm64/include/asm/xenomai/features.h | 30 ++ .../cobalt/arch/arm64/include/asm/xenomai/fptest.h | 52 +++ .../arch/arm64/include/asm/xenomai/machine.h | 85 + .../arch/arm64/include/asm/xenomai/syscall.h | 74 .../arch/arm64/include/asm/xenomai/syscall32.h | 24 ++ .../cobalt/arch/arm64/include/asm/xenomai/thread.h | 123 +++ .../arch/arm64/include/asm/xenomai/uapi/arith.h| 142 .../arch/arm64/include/asm/xenomai/uapi/features.h | 43 +++ .../arch/arm64/include/asm/xenomai/uapi/fptest.h | 61 .../arch/arm64/include/asm/xenomai/uapi/syscall.h | 34 ++ .../arch/arm64/include/asm/xenomai/uapi/tsc.h | 25 ++ .../arch/arm64/include/asm/xenomai/wrappers.h | 27 ++ kernel/cobalt/arch/arm64/machine.c | 119 +++ kernel/cobalt/arch/arm64/mayday.c | 146 kernel/cobalt/arch/arm64/switch.S | 167 + kernel/cobalt/arch/arm64/syscall.c | 53 +++ kernel/cobalt/arch/arm64/thread.c | 355 lib/cobalt/arch/Makefile.am|2 +- lib/cobalt/arch/arm64/Makefile.am | 13 + lib/cobalt/arch/arm64/features.c | 102 ++ lib/cobalt/arch/arm64/include/Makefile.am |2 + lib/cobalt/arch/arm64/include/asm/Makefile.am |2 + .../arch/arm64/include/asm/xenomai/Makefile.am |5 + .../arch/arm64/include/asm/xenomai/features.h | 62 .../arch/arm64/include/asm/xenomai/syscall.h | 138 lib/cobalt/arch/arm64/include/asm/xenomai/tsc.h| 48 +++ 30 files changed, 2045 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 789a6d7..5b2a074 100644 --- a/configure.ac +++ b/configure.ac @@ -139,6 +139,10 @@ case "$build_for" in XENO_TARGET_ARCH=arm CONFIG_XENO_DEFAULT_PERIOD=100 ;; + aarch64-*) + XENO_TARGET_ARCH=arm64 + CONFIG_XENO_DEFAULT_PERIOD=100 + ;; x86_64-*|amd64-*) use_tls=yes XENO_TARGET_ARCH=x86 @@ -854,6 +858,10 @@ AC_CONFIG_FILES([ \ lib/cobalt/arch/arm/include/Makefile \ lib/cobalt/arch/arm/include/asm/Makefile \ lib/cobalt/arch/arm/include/asm/xenomai/Makefile \ + lib/cobalt/arch/arm64/Makefile \ + lib/cobalt/arch/arm64/include/Makefile \ + lib/cobalt/arch/arm64/include/asm/Makefile \ + lib/cobalt/arch/arm64/include/asm/xenomai/Makefile \ lib/cobalt/arch/powerpc/Makefile \ lib/cobalt/arch/powerpc/include/Makefile \ lib/cobalt/arch/powerpc/include/asm/Makefile \ diff --git a/kernel/cobalt/arch/arm64/Kconfig b/kernel/cobalt/arch/arm64/Kconfig new file mode 100644 index 000..dc6485d --- /dev/null +++ b/kernel/cobalt/arch/arm64/Kconfig @@ -0,0 +1,40 @@ +source "kernel/xenomai/Kconfig" +source "drivers/xenomai/Kconfig" + +menu "Machine/platform-specific options" + +config XENO_ARCH_UNLOCKED_SWITCH + bool "Unlocked context switch" + default y + help + The Cobalt core may allow non-atomic execution of the + machine-dependent context switching code, so that other CPUs + and/or local interrupts may execute concurrently. + + This option reduces interrupt latency when costly cache and + TLB flushes are required to switch context. + + You definitely want to enable that option on low-end ARM + platforms. +endmenu + +config IPIPE_WANT_PREEMPTIBLE_SWITCH + bool + default y if XENO_ARCH_UNLOCKED_SWITCH + default n if !XENO_ARCH_UNLOCKED_SWITCH + +config IPIPE_WANT_ACTIVE_MM + def_bool y + +config XENO_ARCH_WANT_TIP + def_bool y + +config XENO_ARCH_FPU + def_bool VFP + +config XENO_ARCH_SYS3264 +def_bool n + +config XENO_ARCH_OUTOFLINE_XNLOCK + bool + default y diff --git a/kernel/cobalt/arch/arm64/Makefile b/kernel/cobalt/arch/arm64/Makefile new file mode 100644 index 000..f2e4e20 --- /dev/null +++ b/kernel/cobalt/arch/arm64/Makefile @@ -0,0 +1,5 @@ +obj-$(CONFIG_XENOMAI) += xenomai.o + +xenomai-y := machine.o mayday.o thread.o switch.o syscall.o + +ccflags-y := -Iarch/arm/xenomai/include -Iinclude/xenomai diff --git a/kernel/cobalt/arch/arm64/include/asm/xenomai/calibration.h
[Xenomai-git] Dmitriy Cherkasov : cobalt/arm64: populate arch/arm64 with a copy of arch/ arm.
Module: xenomai-3 Branch: next Commit: 030500f341deef3004f02e59dbcccb9fea432ca8 URL: http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=030500f341deef3004f02e59dbcccb9fea432ca8 Author: Dmitriy Cherkasov Date: Wed May 6 15:27:23 2015 -0700 cobalt/arm64: populate arch/arm64 with a copy of arch/arm. kernel/cobalt/arch/arm -> kernel/cobalt/arch/arm64 lib/cobalt/arch/arm -> lib/cobalt/arch/arm64 --- configure.ac |8 + kernel/cobalt/arch/arm64/Kconfig | 40 +++ kernel/cobalt/arch/arm64/Makefile |5 + .../arch/arm64/include/asm/xenomai/calibration.h | 59 .../arch/arm64/include/asm/xenomai/features.h | 30 ++ .../cobalt/arch/arm64/include/asm/xenomai/fptest.h | 52 +++ .../arch/arm64/include/asm/xenomai/machine.h | 85 + .../arch/arm64/include/asm/xenomai/syscall.h | 74 .../arch/arm64/include/asm/xenomai/syscall32.h | 24 ++ .../cobalt/arch/arm64/include/asm/xenomai/thread.h | 123 +++ .../arch/arm64/include/asm/xenomai/uapi/arith.h| 142 .../arch/arm64/include/asm/xenomai/uapi/features.h | 43 +++ .../arch/arm64/include/asm/xenomai/uapi/fptest.h | 61 .../arch/arm64/include/asm/xenomai/uapi/syscall.h | 34 ++ .../arch/arm64/include/asm/xenomai/uapi/tsc.h | 25 ++ .../arch/arm64/include/asm/xenomai/wrappers.h | 27 ++ kernel/cobalt/arch/arm64/machine.c | 119 +++ kernel/cobalt/arch/arm64/mayday.c | 146 kernel/cobalt/arch/arm64/switch.S | 167 + kernel/cobalt/arch/arm64/syscall.c | 53 +++ kernel/cobalt/arch/arm64/thread.c | 355 lib/cobalt/arch/Makefile.am|2 +- lib/cobalt/arch/arm64/Makefile.am | 13 + lib/cobalt/arch/arm64/features.c | 102 ++ lib/cobalt/arch/arm64/include/Makefile.am |2 + lib/cobalt/arch/arm64/include/asm/Makefile.am |2 + .../arch/arm64/include/asm/xenomai/Makefile.am |5 + .../arch/arm64/include/asm/xenomai/features.h | 62 .../arch/arm64/include/asm/xenomai/syscall.h | 138 lib/cobalt/arch/arm64/include/asm/xenomai/tsc.h| 48 +++ 30 files changed, 2045 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 38a1749..ac9b252 100644 --- a/configure.ac +++ b/configure.ac @@ -139,6 +139,10 @@ case "$build_for" in XENO_TARGET_ARCH=arm CONFIG_XENO_DEFAULT_PERIOD=100 ;; + aarch64-*) + XENO_TARGET_ARCH=arm64 + CONFIG_XENO_DEFAULT_PERIOD=100 + ;; x86_64-*|amd64-*) use_tls=yes XENO_TARGET_ARCH=x86 @@ -854,6 +858,10 @@ AC_CONFIG_FILES([ \ lib/cobalt/arch/arm/include/Makefile \ lib/cobalt/arch/arm/include/asm/Makefile \ lib/cobalt/arch/arm/include/asm/xenomai/Makefile \ + lib/cobalt/arch/arm64/Makefile \ + lib/cobalt/arch/arm64/include/Makefile \ + lib/cobalt/arch/arm64/include/asm/Makefile \ + lib/cobalt/arch/arm64/include/asm/xenomai/Makefile \ lib/cobalt/arch/powerpc/Makefile \ lib/cobalt/arch/powerpc/include/Makefile \ lib/cobalt/arch/powerpc/include/asm/Makefile \ diff --git a/kernel/cobalt/arch/arm64/Kconfig b/kernel/cobalt/arch/arm64/Kconfig new file mode 100644 index 000..dc6485d --- /dev/null +++ b/kernel/cobalt/arch/arm64/Kconfig @@ -0,0 +1,40 @@ +source "kernel/xenomai/Kconfig" +source "drivers/xenomai/Kconfig" + +menu "Machine/platform-specific options" + +config XENO_ARCH_UNLOCKED_SWITCH + bool "Unlocked context switch" + default y + help + The Cobalt core may allow non-atomic execution of the + machine-dependent context switching code, so that other CPUs + and/or local interrupts may execute concurrently. + + This option reduces interrupt latency when costly cache and + TLB flushes are required to switch context. + + You definitely want to enable that option on low-end ARM + platforms. +endmenu + +config IPIPE_WANT_PREEMPTIBLE_SWITCH + bool + default y if XENO_ARCH_UNLOCKED_SWITCH + default n if !XENO_ARCH_UNLOCKED_SWITCH + +config IPIPE_WANT_ACTIVE_MM + def_bool y + +config XENO_ARCH_WANT_TIP + def_bool y + +config XENO_ARCH_FPU + def_bool VFP + +config XENO_ARCH_SYS3264 +def_bool n + +config XENO_ARCH_OUTOFLINE_XNLOCK + bool + default y diff --git a/kernel/cobalt/arch/arm64/Makefile b/kernel/cobalt/arch/arm64/Makefile new file mode 100644 index 000..f2e4e20 --- /dev/null +++ b/kernel/cobalt/arch/arm64/Makefile @@ -0,0 +1,5 @@ +obj-$(CONFIG_XENOMAI) += xenomai.o + +xenomai-y := machine.o mayday.o thread.o switch.o syscall.o + +ccflags-y := -Iarch/arm/xenomai/include -Iinclude/xenomai diff --git a/kernel/cobalt/arch/arm64/include/asm/xenomai/calibration.h
[Xenomai-git] Dmitriy Cherkasov : cobalt/arm64: populate arch/arm64 with a copy of arch/ arm.
Module: xenomai-3 Branch: next Commit: ddae18edfee5bca3f9ff261505504e0d82ebad38 URL: http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=ddae18edfee5bca3f9ff261505504e0d82ebad38 Author: Dmitriy Cherkasov Date: Wed May 6 15:27:23 2015 -0700 cobalt/arm64: populate arch/arm64 with a copy of arch/arm. kernel/cobalt/arch/arm -> kernel/cobalt/arch/arm64 lib/cobalt/arch/arm -> lib/cobalt/arch/arm64 --- configure.ac |8 + kernel/cobalt/arch/arm64/Kconfig | 40 +++ kernel/cobalt/arch/arm64/Makefile |5 + .../arch/arm64/include/asm/xenomai/calibration.h | 59 .../arch/arm64/include/asm/xenomai/features.h | 30 ++ .../cobalt/arch/arm64/include/asm/xenomai/fptest.h | 52 +++ .../arch/arm64/include/asm/xenomai/machine.h | 85 + .../arch/arm64/include/asm/xenomai/syscall.h | 74 .../arch/arm64/include/asm/xenomai/syscall32.h | 24 ++ .../cobalt/arch/arm64/include/asm/xenomai/thread.h | 123 +++ .../arch/arm64/include/asm/xenomai/uapi/arith.h| 142 .../arch/arm64/include/asm/xenomai/uapi/features.h | 43 +++ .../arch/arm64/include/asm/xenomai/uapi/fptest.h | 61 .../arch/arm64/include/asm/xenomai/uapi/syscall.h | 34 ++ .../arch/arm64/include/asm/xenomai/uapi/tsc.h | 25 ++ .../arch/arm64/include/asm/xenomai/wrappers.h | 27 ++ kernel/cobalt/arch/arm64/machine.c | 119 +++ kernel/cobalt/arch/arm64/mayday.c | 146 kernel/cobalt/arch/arm64/switch.S | 167 + kernel/cobalt/arch/arm64/syscall.c | 53 +++ kernel/cobalt/arch/arm64/thread.c | 355 lib/cobalt/arch/Makefile.am|2 +- lib/cobalt/arch/arm64/Makefile.am | 13 + lib/cobalt/arch/arm64/features.c | 102 ++ lib/cobalt/arch/arm64/include/Makefile.am |2 + lib/cobalt/arch/arm64/include/asm/Makefile.am |2 + .../arch/arm64/include/asm/xenomai/Makefile.am |5 + .../arch/arm64/include/asm/xenomai/features.h | 62 .../arch/arm64/include/asm/xenomai/syscall.h | 138 lib/cobalt/arch/arm64/include/asm/xenomai/tsc.h| 48 +++ 30 files changed, 2045 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 38a1749..ac9b252 100644 --- a/configure.ac +++ b/configure.ac @@ -139,6 +139,10 @@ case "$build_for" in XENO_TARGET_ARCH=arm CONFIG_XENO_DEFAULT_PERIOD=100 ;; + aarch64-*) + XENO_TARGET_ARCH=arm64 + CONFIG_XENO_DEFAULT_PERIOD=100 + ;; x86_64-*|amd64-*) use_tls=yes XENO_TARGET_ARCH=x86 @@ -854,6 +858,10 @@ AC_CONFIG_FILES([ \ lib/cobalt/arch/arm/include/Makefile \ lib/cobalt/arch/arm/include/asm/Makefile \ lib/cobalt/arch/arm/include/asm/xenomai/Makefile \ + lib/cobalt/arch/arm64/Makefile \ + lib/cobalt/arch/arm64/include/Makefile \ + lib/cobalt/arch/arm64/include/asm/Makefile \ + lib/cobalt/arch/arm64/include/asm/xenomai/Makefile \ lib/cobalt/arch/powerpc/Makefile \ lib/cobalt/arch/powerpc/include/Makefile \ lib/cobalt/arch/powerpc/include/asm/Makefile \ diff --git a/kernel/cobalt/arch/arm64/Kconfig b/kernel/cobalt/arch/arm64/Kconfig new file mode 100644 index 000..dc6485d --- /dev/null +++ b/kernel/cobalt/arch/arm64/Kconfig @@ -0,0 +1,40 @@ +source "kernel/xenomai/Kconfig" +source "drivers/xenomai/Kconfig" + +menu "Machine/platform-specific options" + +config XENO_ARCH_UNLOCKED_SWITCH + bool "Unlocked context switch" + default y + help + The Cobalt core may allow non-atomic execution of the + machine-dependent context switching code, so that other CPUs + and/or local interrupts may execute concurrently. + + This option reduces interrupt latency when costly cache and + TLB flushes are required to switch context. + + You definitely want to enable that option on low-end ARM + platforms. +endmenu + +config IPIPE_WANT_PREEMPTIBLE_SWITCH + bool + default y if XENO_ARCH_UNLOCKED_SWITCH + default n if !XENO_ARCH_UNLOCKED_SWITCH + +config IPIPE_WANT_ACTIVE_MM + def_bool y + +config XENO_ARCH_WANT_TIP + def_bool y + +config XENO_ARCH_FPU + def_bool VFP + +config XENO_ARCH_SYS3264 +def_bool n + +config XENO_ARCH_OUTOFLINE_XNLOCK + bool + default y diff --git a/kernel/cobalt/arch/arm64/Makefile b/kernel/cobalt/arch/arm64/Makefile new file mode 100644 index 000..f2e4e20 --- /dev/null +++ b/kernel/cobalt/arch/arm64/Makefile @@ -0,0 +1,5 @@ +obj-$(CONFIG_XENOMAI) += xenomai.o + +xenomai-y := machine.o mayday.o thread.o switch.o syscall.o + +ccflags-y := -Iarch/arm/xenomai/include -Iinclude/xenomai diff --git a/kernel/cobalt/arch/arm64/include/asm/xenomai/calibration.h
[Xenomai-git] Dmitriy Cherkasov : cobalt/arm64: populate arch/arm64 with a copy of arch/ arm.
Module: xenomai-3 Branch: next Commit: 9861db191e3d8d1045d7f437bcaedf1ef2248f9b URL: http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=9861db191e3d8d1045d7f437bcaedf1ef2248f9b Author: Dmitriy Cherkasov Date: Wed May 6 15:27:23 2015 -0700 cobalt/arm64: populate arch/arm64 with a copy of arch/arm. kernel/cobalt/arch/arm -> kernel/cobalt/arch/arm64 lib/cobalt/arch/arm -> lib/cobalt/arch/arm64 --- configure.ac |8 + kernel/cobalt/arch/arm64/Kconfig | 40 +++ kernel/cobalt/arch/arm64/Makefile |5 + .../arch/arm64/include/asm/xenomai/calibration.h | 59 .../arch/arm64/include/asm/xenomai/features.h | 30 ++ .../cobalt/arch/arm64/include/asm/xenomai/fptest.h | 52 +++ .../arch/arm64/include/asm/xenomai/machine.h | 85 + .../arch/arm64/include/asm/xenomai/syscall.h | 74 .../arch/arm64/include/asm/xenomai/syscall32.h | 24 ++ .../cobalt/arch/arm64/include/asm/xenomai/thread.h | 123 +++ .../arch/arm64/include/asm/xenomai/uapi/arith.h| 142 .../arch/arm64/include/asm/xenomai/uapi/features.h | 43 +++ .../arch/arm64/include/asm/xenomai/uapi/fptest.h | 61 .../arch/arm64/include/asm/xenomai/uapi/syscall.h | 34 ++ .../arch/arm64/include/asm/xenomai/uapi/tsc.h | 25 ++ .../arch/arm64/include/asm/xenomai/wrappers.h | 27 ++ kernel/cobalt/arch/arm64/machine.c | 119 +++ kernel/cobalt/arch/arm64/mayday.c | 146 kernel/cobalt/arch/arm64/switch.S | 167 + kernel/cobalt/arch/arm64/syscall.c | 53 +++ kernel/cobalt/arch/arm64/thread.c | 355 lib/cobalt/arch/Makefile.am|2 +- lib/cobalt/arch/arm64/Makefile.am | 13 + lib/cobalt/arch/arm64/features.c | 102 ++ lib/cobalt/arch/arm64/include/Makefile.am |2 + lib/cobalt/arch/arm64/include/asm/Makefile.am |2 + .../arch/arm64/include/asm/xenomai/Makefile.am |5 + .../arch/arm64/include/asm/xenomai/features.h | 62 .../arch/arm64/include/asm/xenomai/syscall.h | 138 lib/cobalt/arch/arm64/include/asm/xenomai/tsc.h| 48 +++ 30 files changed, 2045 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 36d7fb7..c805186 100644 --- a/configure.ac +++ b/configure.ac @@ -139,6 +139,10 @@ case "$build_for" in XENO_TARGET_ARCH=arm CONFIG_XENO_DEFAULT_PERIOD=100 ;; + aarch64-*) + XENO_TARGET_ARCH=arm64 + CONFIG_XENO_DEFAULT_PERIOD=100 + ;; x86_64-*|amd64-*) use_tls=yes XENO_TARGET_ARCH=x86 @@ -849,6 +853,10 @@ AC_CONFIG_FILES([ \ lib/cobalt/arch/arm/include/Makefile \ lib/cobalt/arch/arm/include/asm/Makefile \ lib/cobalt/arch/arm/include/asm/xenomai/Makefile \ + lib/cobalt/arch/arm64/Makefile \ + lib/cobalt/arch/arm64/include/Makefile \ + lib/cobalt/arch/arm64/include/asm/Makefile \ + lib/cobalt/arch/arm64/include/asm/xenomai/Makefile \ lib/cobalt/arch/powerpc/Makefile \ lib/cobalt/arch/powerpc/include/Makefile \ lib/cobalt/arch/powerpc/include/asm/Makefile \ diff --git a/kernel/cobalt/arch/arm64/Kconfig b/kernel/cobalt/arch/arm64/Kconfig new file mode 100644 index 000..dc6485d --- /dev/null +++ b/kernel/cobalt/arch/arm64/Kconfig @@ -0,0 +1,40 @@ +source "kernel/xenomai/Kconfig" +source "drivers/xenomai/Kconfig" + +menu "Machine/platform-specific options" + +config XENO_ARCH_UNLOCKED_SWITCH + bool "Unlocked context switch" + default y + help + The Cobalt core may allow non-atomic execution of the + machine-dependent context switching code, so that other CPUs + and/or local interrupts may execute concurrently. + + This option reduces interrupt latency when costly cache and + TLB flushes are required to switch context. + + You definitely want to enable that option on low-end ARM + platforms. +endmenu + +config IPIPE_WANT_PREEMPTIBLE_SWITCH + bool + default y if XENO_ARCH_UNLOCKED_SWITCH + default n if !XENO_ARCH_UNLOCKED_SWITCH + +config IPIPE_WANT_ACTIVE_MM + def_bool y + +config XENO_ARCH_WANT_TIP + def_bool y + +config XENO_ARCH_FPU + def_bool VFP + +config XENO_ARCH_SYS3264 +def_bool n + +config XENO_ARCH_OUTOFLINE_XNLOCK + bool + default y diff --git a/kernel/cobalt/arch/arm64/Makefile b/kernel/cobalt/arch/arm64/Makefile new file mode 100644 index 000..f2e4e20 --- /dev/null +++ b/kernel/cobalt/arch/arm64/Makefile @@ -0,0 +1,5 @@ +obj-$(CONFIG_XENOMAI) += xenomai.o + +xenomai-y := machine.o mayday.o thread.o switch.o syscall.o + +ccflags-y := -Iarch/arm/xenomai/include -Iinclude/xenomai diff --git a/kernel/cobalt/arch/arm64/include/asm/xenomai/calibration.h
[Xenomai-git] Dmitriy Cherkasov : cobalt/arm64: populate arch/arm64 with a copy of arch/ arm.
Module: xenomai-3 Branch: arm64 Commit: f2b5f9dc29adf645b54ae33d8da943ec106e9ea6 URL: http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=f2b5f9dc29adf645b54ae33d8da943ec106e9ea6 Author: Dmitriy Cherkasov Date: Wed May 6 15:27:23 2015 -0700 cobalt/arm64: populate arch/arm64 with a copy of arch/arm. kernel/cobalt/arch/arm -> kernel/cobalt/arch/arm64 lib/cobalt/arch/arm -> lib/cobalt/arch/arm64 --- configure.ac |8 + kernel/cobalt/arch/arm64/Kconfig | 40 +++ kernel/cobalt/arch/arm64/Makefile |5 + .../arch/arm64/include/asm/xenomai/calibration.h | 59 .../arch/arm64/include/asm/xenomai/features.h | 30 ++ .../cobalt/arch/arm64/include/asm/xenomai/fptest.h | 52 +++ .../arch/arm64/include/asm/xenomai/machine.h | 85 + .../arch/arm64/include/asm/xenomai/syscall.h | 74 .../arch/arm64/include/asm/xenomai/syscall32.h | 24 ++ .../cobalt/arch/arm64/include/asm/xenomai/thread.h | 123 +++ .../arch/arm64/include/asm/xenomai/uapi/arith.h| 142 .../arch/arm64/include/asm/xenomai/uapi/features.h | 43 +++ .../arch/arm64/include/asm/xenomai/uapi/fptest.h | 61 .../arch/arm64/include/asm/xenomai/uapi/syscall.h | 34 ++ .../arch/arm64/include/asm/xenomai/uapi/tsc.h | 25 ++ .../arch/arm64/include/asm/xenomai/wrappers.h | 27 ++ kernel/cobalt/arch/arm64/machine.c | 119 +++ kernel/cobalt/arch/arm64/mayday.c | 146 kernel/cobalt/arch/arm64/switch.S | 167 + kernel/cobalt/arch/arm64/syscall.c | 53 +++ kernel/cobalt/arch/arm64/thread.c | 355 lib/cobalt/arch/Makefile.am|2 +- lib/cobalt/arch/arm64/Makefile.am | 13 + lib/cobalt/arch/arm64/features.c | 102 ++ lib/cobalt/arch/arm64/include/Makefile.am |2 + lib/cobalt/arch/arm64/include/asm/Makefile.am |2 + .../arch/arm64/include/asm/xenomai/Makefile.am |5 + .../arch/arm64/include/asm/xenomai/features.h | 62 .../arch/arm64/include/asm/xenomai/syscall.h | 138 lib/cobalt/arch/arm64/include/asm/xenomai/tsc.h| 48 +++ 30 files changed, 2045 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 36d7fb7..c805186 100644 --- a/configure.ac +++ b/configure.ac @@ -139,6 +139,10 @@ case "$build_for" in XENO_TARGET_ARCH=arm CONFIG_XENO_DEFAULT_PERIOD=100 ;; + aarch64-*) + XENO_TARGET_ARCH=arm64 + CONFIG_XENO_DEFAULT_PERIOD=100 + ;; x86_64-*|amd64-*) use_tls=yes XENO_TARGET_ARCH=x86 @@ -849,6 +853,10 @@ AC_CONFIG_FILES([ \ lib/cobalt/arch/arm/include/Makefile \ lib/cobalt/arch/arm/include/asm/Makefile \ lib/cobalt/arch/arm/include/asm/xenomai/Makefile \ + lib/cobalt/arch/arm64/Makefile \ + lib/cobalt/arch/arm64/include/Makefile \ + lib/cobalt/arch/arm64/include/asm/Makefile \ + lib/cobalt/arch/arm64/include/asm/xenomai/Makefile \ lib/cobalt/arch/powerpc/Makefile \ lib/cobalt/arch/powerpc/include/Makefile \ lib/cobalt/arch/powerpc/include/asm/Makefile \ diff --git a/kernel/cobalt/arch/arm64/Kconfig b/kernel/cobalt/arch/arm64/Kconfig new file mode 100644 index 000..dc6485d --- /dev/null +++ b/kernel/cobalt/arch/arm64/Kconfig @@ -0,0 +1,40 @@ +source "kernel/xenomai/Kconfig" +source "drivers/xenomai/Kconfig" + +menu "Machine/platform-specific options" + +config XENO_ARCH_UNLOCKED_SWITCH + bool "Unlocked context switch" + default y + help + The Cobalt core may allow non-atomic execution of the + machine-dependent context switching code, so that other CPUs + and/or local interrupts may execute concurrently. + + This option reduces interrupt latency when costly cache and + TLB flushes are required to switch context. + + You definitely want to enable that option on low-end ARM + platforms. +endmenu + +config IPIPE_WANT_PREEMPTIBLE_SWITCH + bool + default y if XENO_ARCH_UNLOCKED_SWITCH + default n if !XENO_ARCH_UNLOCKED_SWITCH + +config IPIPE_WANT_ACTIVE_MM + def_bool y + +config XENO_ARCH_WANT_TIP + def_bool y + +config XENO_ARCH_FPU + def_bool VFP + +config XENO_ARCH_SYS3264 +def_bool n + +config XENO_ARCH_OUTOFLINE_XNLOCK + bool + default y diff --git a/kernel/cobalt/arch/arm64/Makefile b/kernel/cobalt/arch/arm64/Makefile new file mode 100644 index 000..f2e4e20 --- /dev/null +++ b/kernel/cobalt/arch/arm64/Makefile @@ -0,0 +1,5 @@ +obj-$(CONFIG_XENOMAI) += xenomai.o + +xenomai-y := machine.o mayday.o thread.o switch.o syscall.o + +ccflags-y := -Iarch/arm/xenomai/include -Iinclude/xenomai diff --git a/kernel/cobalt/arch/arm64/include/asm/xenomai/calibration.h
[Xenomai-git] Dmitriy Cherkasov : cobalt/arm64: populate arch/arm64 with a copy of arch/ arm.
Module: xenomai-3 Branch: arm64 Commit: 170c6d8a6379fe89ef0dff3030ff5663b25bcbc7 URL: http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=170c6d8a6379fe89ef0dff3030ff5663b25bcbc7 Author: Dmitriy Cherkasov Date: Wed May 6 15:27:23 2015 -0700 cobalt/arm64: populate arch/arm64 with a copy of arch/arm. kernel/cobalt/arch/arm -> kernel/cobalt/arch/arm64 lib/cobalt/arch/arm -> lib/cobalt/arch/arm64 --- configure.ac |8 + kernel/cobalt/arch/arm64/Kconfig | 40 +++ kernel/cobalt/arch/arm64/Makefile |5 + .../arch/arm64/include/asm/xenomai/calibration.h | 59 .../arch/arm64/include/asm/xenomai/features.h | 30 ++ .../cobalt/arch/arm64/include/asm/xenomai/fptest.h | 52 +++ .../arch/arm64/include/asm/xenomai/machine.h | 85 + .../arch/arm64/include/asm/xenomai/syscall.h | 74 .../arch/arm64/include/asm/xenomai/syscall32.h | 24 ++ .../cobalt/arch/arm64/include/asm/xenomai/thread.h | 123 +++ .../arch/arm64/include/asm/xenomai/uapi/arith.h| 142 .../arch/arm64/include/asm/xenomai/uapi/features.h | 43 +++ .../arch/arm64/include/asm/xenomai/uapi/fptest.h | 61 .../arch/arm64/include/asm/xenomai/uapi/syscall.h | 34 ++ .../arch/arm64/include/asm/xenomai/uapi/tsc.h | 25 ++ .../arch/arm64/include/asm/xenomai/wrappers.h | 27 ++ kernel/cobalt/arch/arm64/machine.c | 119 +++ kernel/cobalt/arch/arm64/mayday.c | 146 kernel/cobalt/arch/arm64/switch.S | 167 + kernel/cobalt/arch/arm64/syscall.c | 53 +++ kernel/cobalt/arch/arm64/thread.c | 355 lib/cobalt/arch/Makefile.am|2 +- lib/cobalt/arch/arm64/Makefile.am | 13 + lib/cobalt/arch/arm64/features.c | 102 ++ lib/cobalt/arch/arm64/include/Makefile.am |2 + lib/cobalt/arch/arm64/include/asm/Makefile.am |2 + .../arch/arm64/include/asm/xenomai/Makefile.am |5 + .../arch/arm64/include/asm/xenomai/features.h | 62 .../arch/arm64/include/asm/xenomai/syscall.h | 138 lib/cobalt/arch/arm64/include/asm/xenomai/tsc.h| 48 +++ 30 files changed, 2045 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 36d7fb7..c805186 100644 --- a/configure.ac +++ b/configure.ac @@ -139,6 +139,10 @@ case "$build_for" in XENO_TARGET_ARCH=arm CONFIG_XENO_DEFAULT_PERIOD=100 ;; + aarch64-*) + XENO_TARGET_ARCH=arm64 + CONFIG_XENO_DEFAULT_PERIOD=100 + ;; x86_64-*|amd64-*) use_tls=yes XENO_TARGET_ARCH=x86 @@ -849,6 +853,10 @@ AC_CONFIG_FILES([ \ lib/cobalt/arch/arm/include/Makefile \ lib/cobalt/arch/arm/include/asm/Makefile \ lib/cobalt/arch/arm/include/asm/xenomai/Makefile \ + lib/cobalt/arch/arm64/Makefile \ + lib/cobalt/arch/arm64/include/Makefile \ + lib/cobalt/arch/arm64/include/asm/Makefile \ + lib/cobalt/arch/arm64/include/asm/xenomai/Makefile \ lib/cobalt/arch/powerpc/Makefile \ lib/cobalt/arch/powerpc/include/Makefile \ lib/cobalt/arch/powerpc/include/asm/Makefile \ diff --git a/kernel/cobalt/arch/arm64/Kconfig b/kernel/cobalt/arch/arm64/Kconfig new file mode 100644 index 000..dc6485d --- /dev/null +++ b/kernel/cobalt/arch/arm64/Kconfig @@ -0,0 +1,40 @@ +source "kernel/xenomai/Kconfig" +source "drivers/xenomai/Kconfig" + +menu "Machine/platform-specific options" + +config XENO_ARCH_UNLOCKED_SWITCH + bool "Unlocked context switch" + default y + help + The Cobalt core may allow non-atomic execution of the + machine-dependent context switching code, so that other CPUs + and/or local interrupts may execute concurrently. + + This option reduces interrupt latency when costly cache and + TLB flushes are required to switch context. + + You definitely want to enable that option on low-end ARM + platforms. +endmenu + +config IPIPE_WANT_PREEMPTIBLE_SWITCH + bool + default y if XENO_ARCH_UNLOCKED_SWITCH + default n if !XENO_ARCH_UNLOCKED_SWITCH + +config IPIPE_WANT_ACTIVE_MM + def_bool y + +config XENO_ARCH_WANT_TIP + def_bool y + +config XENO_ARCH_FPU + def_bool VFP + +config XENO_ARCH_SYS3264 +def_bool n + +config XENO_ARCH_OUTOFLINE_XNLOCK + bool + default y diff --git a/kernel/cobalt/arch/arm64/Makefile b/kernel/cobalt/arch/arm64/Makefile new file mode 100644 index 000..f2e4e20 --- /dev/null +++ b/kernel/cobalt/arch/arm64/Makefile @@ -0,0 +1,5 @@ +obj-$(CONFIG_XENOMAI) += xenomai.o + +xenomai-y := machine.o mayday.o thread.o switch.o syscall.o + +ccflags-y := -Iarch/arm/xenomai/include -Iinclude/xenomai diff --git a/kernel/cobalt/arch/arm64/include/asm/xenomai/calibration.h
[Xenomai-git] Dmitriy Cherkasov : cobalt/arm64: populate arch/arm64 with a copy of arch/ arm.
Module: xenomai-3 Branch: arm64 Commit: 7ec587144d830a3f5243ddf6b2c5cf02f0a4a442 URL: http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=7ec587144d830a3f5243ddf6b2c5cf02f0a4a442 Author: Dmitriy Cherkasov Date: Wed May 6 15:27:23 2015 -0700 cobalt/arm64: populate arch/arm64 with a copy of arch/arm. kernel/cobalt/arch/arm -> kernel/cobalt/arch/arm64 lib/cobalt/arch/arm -> lib/cobalt/arch/arm64 --- configure.ac |8 + kernel/cobalt/arch/arm64/Kconfig | 40 +++ kernel/cobalt/arch/arm64/Makefile |5 + .../arch/arm64/include/asm/xenomai/calibration.h | 59 .../arch/arm64/include/asm/xenomai/features.h | 30 ++ .../cobalt/arch/arm64/include/asm/xenomai/fptest.h | 52 +++ .../arch/arm64/include/asm/xenomai/machine.h | 85 + .../arch/arm64/include/asm/xenomai/syscall.h | 74 .../arch/arm64/include/asm/xenomai/syscall32.h | 24 ++ .../cobalt/arch/arm64/include/asm/xenomai/thread.h | 123 +++ .../arch/arm64/include/asm/xenomai/uapi/arith.h| 142 .../arch/arm64/include/asm/xenomai/uapi/features.h | 43 +++ .../arch/arm64/include/asm/xenomai/uapi/fptest.h | 61 .../arch/arm64/include/asm/xenomai/uapi/syscall.h | 34 ++ .../arch/arm64/include/asm/xenomai/uapi/tsc.h | 25 ++ .../arch/arm64/include/asm/xenomai/wrappers.h | 27 ++ kernel/cobalt/arch/arm64/machine.c | 119 +++ kernel/cobalt/arch/arm64/mayday.c | 146 kernel/cobalt/arch/arm64/switch.S | 167 + kernel/cobalt/arch/arm64/syscall.c | 53 +++ kernel/cobalt/arch/arm64/thread.c | 355 lib/cobalt/arch/Makefile.am|2 +- lib/cobalt/arch/arm64/Makefile.am | 13 + lib/cobalt/arch/arm64/features.c | 102 ++ lib/cobalt/arch/arm64/include/Makefile.am |2 + lib/cobalt/arch/arm64/include/asm/Makefile.am |2 + .../arch/arm64/include/asm/xenomai/Makefile.am |5 + .../arch/arm64/include/asm/xenomai/features.h | 62 .../arch/arm64/include/asm/xenomai/syscall.h | 138 lib/cobalt/arch/arm64/include/asm/xenomai/tsc.h| 48 +++ 30 files changed, 2045 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 8027b7d..052c772 100644 --- a/configure.ac +++ b/configure.ac @@ -139,6 +139,10 @@ case "$build_for" in XENO_TARGET_ARCH=arm CONFIG_XENO_DEFAULT_PERIOD=100 ;; + aarch64-*) + XENO_TARGET_ARCH=arm64 + CONFIG_XENO_DEFAULT_PERIOD=100 + ;; x86_64-*|amd64-*) use_tls=yes XENO_TARGET_ARCH=x86 @@ -849,6 +853,10 @@ AC_CONFIG_FILES([ \ lib/cobalt/arch/arm/include/Makefile \ lib/cobalt/arch/arm/include/asm/Makefile \ lib/cobalt/arch/arm/include/asm/xenomai/Makefile \ + lib/cobalt/arch/arm64/Makefile \ + lib/cobalt/arch/arm64/include/Makefile \ + lib/cobalt/arch/arm64/include/asm/Makefile \ + lib/cobalt/arch/arm64/include/asm/xenomai/Makefile \ lib/cobalt/arch/powerpc/Makefile \ lib/cobalt/arch/powerpc/include/Makefile \ lib/cobalt/arch/powerpc/include/asm/Makefile \ diff --git a/kernel/cobalt/arch/arm64/Kconfig b/kernel/cobalt/arch/arm64/Kconfig new file mode 100644 index 000..dc6485d --- /dev/null +++ b/kernel/cobalt/arch/arm64/Kconfig @@ -0,0 +1,40 @@ +source "kernel/xenomai/Kconfig" +source "drivers/xenomai/Kconfig" + +menu "Machine/platform-specific options" + +config XENO_ARCH_UNLOCKED_SWITCH + bool "Unlocked context switch" + default y + help + The Cobalt core may allow non-atomic execution of the + machine-dependent context switching code, so that other CPUs + and/or local interrupts may execute concurrently. + + This option reduces interrupt latency when costly cache and + TLB flushes are required to switch context. + + You definitely want to enable that option on low-end ARM + platforms. +endmenu + +config IPIPE_WANT_PREEMPTIBLE_SWITCH + bool + default y if XENO_ARCH_UNLOCKED_SWITCH + default n if !XENO_ARCH_UNLOCKED_SWITCH + +config IPIPE_WANT_ACTIVE_MM + def_bool y + +config XENO_ARCH_WANT_TIP + def_bool y + +config XENO_ARCH_FPU + def_bool VFP + +config XENO_ARCH_SYS3264 +def_bool n + +config XENO_ARCH_OUTOFLINE_XNLOCK + bool + default y diff --git a/kernel/cobalt/arch/arm64/Makefile b/kernel/cobalt/arch/arm64/Makefile new file mode 100644 index 000..f2e4e20 --- /dev/null +++ b/kernel/cobalt/arch/arm64/Makefile @@ -0,0 +1,5 @@ +obj-$(CONFIG_XENOMAI) += xenomai.o + +xenomai-y := machine.o mayday.o thread.o switch.o syscall.o + +ccflags-y := -Iarch/arm/xenomai/include -Iinclude/xenomai diff --git a/kernel/cobalt/arch/arm64/include/asm/xenomai/calibration.h
[Xenomai-git] Dmitriy Cherkasov : cobalt/arm64: populate arch/arm64 with a copy of arch/ arm.
Module: xenomai-3 Branch: arm64 Commit: 27855922b1809371438fea1a09c8ad3fa0fbc7b2 URL: http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=27855922b1809371438fea1a09c8ad3fa0fbc7b2 Author: Dmitriy Cherkasov Date: Wed May 6 15:27:23 2015 -0700 cobalt/arm64: populate arch/arm64 with a copy of arch/arm. kernel/cobalt/arch/arm -> kernel/cobalt/arch/arm64 lib/cobalt/arch/arm -> lib/cobalt/arch/arm64 --- configure.ac |8 + kernel/cobalt/arch/arm64/Kconfig | 40 +++ kernel/cobalt/arch/arm64/Makefile |5 + .../arch/arm64/include/asm/xenomai/calibration.h | 59 .../arch/arm64/include/asm/xenomai/features.h | 30 ++ .../cobalt/arch/arm64/include/asm/xenomai/fptest.h | 52 +++ .../arch/arm64/include/asm/xenomai/machine.h | 85 + .../arch/arm64/include/asm/xenomai/syscall.h | 74 .../arch/arm64/include/asm/xenomai/syscall32.h | 24 ++ .../cobalt/arch/arm64/include/asm/xenomai/thread.h | 123 +++ .../arch/arm64/include/asm/xenomai/uapi/arith.h| 142 .../arch/arm64/include/asm/xenomai/uapi/features.h | 43 +++ .../arch/arm64/include/asm/xenomai/uapi/fptest.h | 61 .../arch/arm64/include/asm/xenomai/uapi/syscall.h | 34 ++ .../arch/arm64/include/asm/xenomai/uapi/tsc.h | 25 ++ .../arch/arm64/include/asm/xenomai/wrappers.h | 27 ++ kernel/cobalt/arch/arm64/machine.c | 119 +++ kernel/cobalt/arch/arm64/mayday.c | 146 kernel/cobalt/arch/arm64/switch.S | 167 + kernel/cobalt/arch/arm64/syscall.c | 53 +++ kernel/cobalt/arch/arm64/thread.c | 355 lib/cobalt/arch/Makefile.am|2 +- lib/cobalt/arch/arm64/Makefile.am | 13 + lib/cobalt/arch/arm64/features.c | 102 ++ lib/cobalt/arch/arm64/include/Makefile.am |2 + lib/cobalt/arch/arm64/include/asm/Makefile.am |2 + .../arch/arm64/include/asm/xenomai/Makefile.am |5 + .../arch/arm64/include/asm/xenomai/features.h | 62 .../arch/arm64/include/asm/xenomai/syscall.h | 138 lib/cobalt/arch/arm64/include/asm/xenomai/tsc.h| 48 +++ 30 files changed, 2045 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index b613515..996a39a 100644 --- a/configure.ac +++ b/configure.ac @@ -139,6 +139,10 @@ case "$build_for" in XENO_TARGET_ARCH=arm CONFIG_XENO_DEFAULT_PERIOD=100 ;; + aarch64-*) + XENO_TARGET_ARCH=arm64 + CONFIG_XENO_DEFAULT_PERIOD=100 + ;; x86_64-*|amd64-*) use_tls=yes XENO_TARGET_ARCH=x86 @@ -848,6 +852,10 @@ AC_CONFIG_FILES([ \ lib/cobalt/arch/arm/include/Makefile \ lib/cobalt/arch/arm/include/asm/Makefile \ lib/cobalt/arch/arm/include/asm/xenomai/Makefile \ + lib/cobalt/arch/arm64/Makefile \ + lib/cobalt/arch/arm64/include/Makefile \ + lib/cobalt/arch/arm64/include/asm/Makefile \ + lib/cobalt/arch/arm64/include/asm/xenomai/Makefile \ lib/cobalt/arch/powerpc/Makefile \ lib/cobalt/arch/powerpc/include/Makefile \ lib/cobalt/arch/powerpc/include/asm/Makefile \ diff --git a/kernel/cobalt/arch/arm64/Kconfig b/kernel/cobalt/arch/arm64/Kconfig new file mode 100644 index 000..dc6485d --- /dev/null +++ b/kernel/cobalt/arch/arm64/Kconfig @@ -0,0 +1,40 @@ +source "kernel/xenomai/Kconfig" +source "drivers/xenomai/Kconfig" + +menu "Machine/platform-specific options" + +config XENO_ARCH_UNLOCKED_SWITCH + bool "Unlocked context switch" + default y + help + The Cobalt core may allow non-atomic execution of the + machine-dependent context switching code, so that other CPUs + and/or local interrupts may execute concurrently. + + This option reduces interrupt latency when costly cache and + TLB flushes are required to switch context. + + You definitely want to enable that option on low-end ARM + platforms. +endmenu + +config IPIPE_WANT_PREEMPTIBLE_SWITCH + bool + default y if XENO_ARCH_UNLOCKED_SWITCH + default n if !XENO_ARCH_UNLOCKED_SWITCH + +config IPIPE_WANT_ACTIVE_MM + def_bool y + +config XENO_ARCH_WANT_TIP + def_bool y + +config XENO_ARCH_FPU + def_bool VFP + +config XENO_ARCH_SYS3264 +def_bool n + +config XENO_ARCH_OUTOFLINE_XNLOCK + bool + default y diff --git a/kernel/cobalt/arch/arm64/Makefile b/kernel/cobalt/arch/arm64/Makefile new file mode 100644 index 000..f2e4e20 --- /dev/null +++ b/kernel/cobalt/arch/arm64/Makefile @@ -0,0 +1,5 @@ +obj-$(CONFIG_XENOMAI) += xenomai.o + +xenomai-y := machine.o mayday.o thread.o switch.o syscall.o + +ccflags-y := -Iarch/arm/xenomai/include -Iinclude/xenomai diff --git a/kernel/cobalt/arch/arm64/include/asm/xenomai/calibration.h