6490a11018
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>
220 lines
6.4 KiB
Plaintext
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
|