kumquat-buildroot/package/xenomai/Config.in
Romain Naour 6490a11018 package/xenomai: disable cobalt for armv8
When a armv8 target is used in 32bits mode, xenomai fail to detect the
ARM architecture and abord the build. (__ARM_ARCH_7A__ is not defined
for armv8 cpus).

There are no autobuilder failures for this issue since cobalt is never
selected, but the following defconfig:

BR2_arm=y
BR2_cortex_a53=y
BR2_ARM_FPU_NEON_VFPV4=y
BR2_TOOLCHAIN_EXTERNAL=y
BR2_PACKAGE_XENOMAI=y
BR2_PACKAGE_XENOMAI_COBALT=y

This was initialy reproduced using the raspberrypi3_defconfig with
Xenomai package with cobalt selected.

In order to use Xenomai on raspberrypi3 in 32 bits mode, one has to
select BR2_cortex_a7 instead of BR2_cortex_a53 (see a13a388dd4).

See:
https://gitlab.denx.de/Xenomai/xenomai/-/blob/v3.1/lib/cobalt/arch/arm/include/asm/xenomai/features.h#L52

Signed-off-by: Romain Naour <romain.naour@gmail.com>
[yann.morin.1998@free.fr:
  - switch to independent conditional 'default y'
  - slightly reword the commit log
]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2021-02-05 09:42:16 +01:00

220 lines
6.4 KiB
Plaintext

config BR2_PACKAGE_XENOMAI_COBALT_ARCH_SUPPORTS
bool
default y if BR2_i386
default y if BR2_x86_64
default y if BR2_powerpc
default y if BR2_arm && !BR2_ARM_CPU_ARMV7M && !BR2_ARM_CPU_ARMV8A
comment "xenomai needs a glibc or uClibc toolchain w/ threads"
depends on BR2_USE_MMU
depends on BR2_TOOLCHAIN_HAS_SYNC_4
depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_TOOLCHAIN_USES_MUSL
config BR2_PACKAGE_XENOMAI
bool "Xenomai Userspace"
depends on BR2_USE_MMU
depends on BR2_TOOLCHAIN_HAS_SYNC_4
depends on BR2_TOOLCHAIN_HAS_THREADS
# uses <error.h>, __WORDSIZE and bits/local_lim.h
depends on !BR2_TOOLCHAIN_USES_MUSL
help
Real-Time Framework for Linux
http://www.xenomai.org
Xenomai is split in two parts: a kernel part and an
userspace part.
This package contains the userspace part, which consists
mainly in libraries to write userspace real-time programs
that interact with the in-kernel Xenomai real-time core.
For those libraries to work, you need a Xenomai-enabled
kernel. This is possible in two ways:
- if you compile your kernel with Buildroot, you need to go
to Linux Kernel -> Linux Kernel Extensions to enable the
Xenomai extension.
- if you compile your kernel outside of Buildroot, you need
to make sure that it is Xenomai-enabled.
Finally, if you are using a static /dev, make sure to
uncomment the Xenomai entries listed in
target/generic/device_table_dev.txt.
if BR2_PACKAGE_XENOMAI
choice
bool "Xenomai version"
help
Make sure that the selected version has a patch for your
selected Linux kernel. If it does not, download and select a
patch manually with BR2_LINUX_KERNEL_EXT_XENOMAI_ADEOS_PATCH,
in the Linux Kernel -> Linux Kernel Extensions menu.
config BR2_PACKAGE_XENOMAI_LATEST_VERSION
bool "Latest version (3.0.10)"
config BR2_PACKAGE_XENOMAI_CUSTOM_VERSION
bool "Custom version"
config BR2_PACKAGE_XENOMAI_CUSTOM_TARBALL
bool "Custom tarball"
config BR2_PACKAGE_XENOMAI_CUSTOM_GIT
bool "Custom Git repository"
endchoice
config BR2_PACKAGE_XENOMAI_REPOSITORY
string "URL of custom repository"
default "https://gitlab.denx.de/Xenomai/xenomai.git"
depends on BR2_PACKAGE_XENOMAI_CUSTOM_GIT
config BR2_PACKAGE_XENOMAI_VERSION
string "Custom Xenomai version" if \
!BR2_PACKAGE_XENOMAI_LATEST_VERSION && \
!BR2_PACKAGE_XENOMAI_CUSTOM_TARBALL
default "3.0.10" if BR2_PACKAGE_XENOMAI_LATEST_VERSION
default "custom" if BR2_PACKAGE_XENOMAI_CUSTOM_TARBALL
config BR2_PACKAGE_XENOMAI_CUSTOM_TARBALL_URL
string "URL of custom tarball"
depends on BR2_PACKAGE_XENOMAI_CUSTOM_TARBALL
choice
prompt "Xenomai core"
default BR2_PACKAGE_XENOMAI_MERCURY
help
Select the Xenomai core: dual kernel (Cobalt)
or native Linux Kernel (Mercury).
config BR2_PACKAGE_XENOMAI_MERCURY
bool "Mercury"
depends on !BR2_LINUX_KERNEL_EXT_XENOMAI
help
Select Mercury core for the Xenomai userspace.
You want to use it if you have the native Linux Kernel.
config BR2_PACKAGE_XENOMAI_COBALT
bool "Cobalt"
depends on BR2_PACKAGE_XENOMAI_COBALT_ARCH_SUPPORTS
help
Select Cobalt core (dual kernel) for the Xenomai
userspace. Use this if you use a Xenomai-patched
Linux kernel.
If you want to use Cobalt core, your kernel must have
the Adeos and Xenomai patches applied to it. You can
add these through the BR2_LINUX_KERNEL_EXT_XENOMAI option
in the Linux Kernel Extensions menu.
endchoice
config BR2_PACKAGE_XENOMAI_ENABLE_SMP
bool "Enable SMP support"
default y
# SMP not supported below armv6
depends on !BR2_ARM_CPU_ARMV4 && !BR2_ARM_CPU_ARMV5
help
This option enables SMP support in Xenomai userspace.
If this option is turned on while no SMP support is enabled
in the kernel, things will still work. However, if SMP is
enabled in the kernel but this option is not turned on,
Xenomai applications will complain with:
feature mismatch: missing="smp/nosmp"
Please refer to this troubleshooting guide for more
information:
http://xenomai.org/troubleshooting-a-dual-kernel-configuration/#feature_mismatch_missing8221smpnosmp8221
config BR2_PACKAGE_XENOMAI_ENABLE_REGISTRY
bool "Enable registry"
depends on !BR2_STATIC_LIBS # libfuse
depends on BR2_TOOLCHAIN_HAS_THREADS # libfuse
depends on BR2_USE_MMU # libfuse
select BR2_PACKAGE_LIBFUSE
help
Xenomai APIs can export their internal state through a
pseudo-filesystem, whose files may be read to obtain
information about the existing real-time objects, such as
tasks, semaphores, message queues and so on.
comment "registry needs a toolchain w/ threads, dynamic library"
depends on BR2_USE_MMU
depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS
config BR2_PACKAGE_XENOMAI_ENABLE_REGISTRY_PATH
string "Custom registry root path"
depends on BR2_PACKAGE_XENOMAI_ENABLE_REGISTRY
help
Specify the root path of the registry here.
To use the Xenomai default (currently: /var/run/xenomai),
leave this option empty.
config BR2_PACKAGE_XENOMAI_ADDITIONAL_CONF_OPTS
string "Additional configure options"
help
Specify any additional options to pass to the configure
script here. See Xenomai documentation for details.
config BR2_PACKAGE_XENOMAI_TESTSUITE
bool "Install testsuite"
help
This option allows to install the Xenomai test programs.
config BR2_PACKAGE_XENOMAI_RTCAN
bool "RTCan utilities"
help
This option allows to install the Xenomai RT-CAN utilities.
config BR2_PACKAGE_XENOMAI_ANALOGY
bool "Analogy libs and utils"
help
This option allows to install the Xenomai Analogy utilities
and libraries
menu "Skin selection"
config BR2_PACKAGE_XENOMAI_NATIVE_SKIN
bool "Alchemy (native) skin"
default y
help
This option allows to install the Alchemy Xenomai skin,
previously called 'native'
config BR2_PACKAGE_XENOMAI_POSIX_SKIN
bool "POSIX skin"
default y
help
This option allows to install the POSIX Xenomai skin
config BR2_PACKAGE_XENOMAI_PSOS_SKIN
bool "pSOS skin"
help
This option allows to install the pSOS Xenomai skin
config BR2_PACKAGE_XENOMAI_RTAI_SKIN
bool "RTAI skin"
help
This option allows to install the RTAI Xenomai skin
config BR2_PACKAGE_XENOMAI_UITRON_SKIN
bool "uITRON skin"
help
This option allows to install the uITRON Xenomai skin
config BR2_PACKAGE_XENOMAI_VRTX_SKIN
bool "VRTX skin"
help
This option allows to install the VRTX Xenomai skin
config BR2_PACKAGE_XENOMAI_VXWORKS_SKIN
bool "VxWorks skin"
help
This option allows to install the VxWorks Xenomai skin
endmenu
endif