kumquat-buildroot/linux/Config.ext.in
Thomas De Schampheleire c35f157486 package/xenomai: move arch restriction to Cobalt core, no restriction for Mercury
Xenomai has two mutually exclusive cores:
- Cobalt: dual-kernel approach: patched kernel + userland
- Mercury: only userland

In the Cobalt core, not all architectures are supported. This is the source
of the existing ARCH_SUPPORTS variable.

In the Mercury core, there is no imposed architecture restriction.

Rename the XENOMAI_ARCH_SUPPORTS flag to XENOMAI_COBALT_ARCH_SUPPORTS and
move its check from the Xenomai package to the Cobalt core.

Nevertheless, even for Mercury, there are some restrictions:
- pthread_atfork is used, which requires an MMU
- sync functions like __sync_sub_and_fetch and __sync_add_and_fetch are
  expected.

As the corresponding 'linux extension' selects Xenomai, we add the
MMU and sync dependencies there too. They may or may not already be covered
by XENOMAI_COBALT_ARCH_SUPPORTS flag.

Signed-off-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2019-02-09 15:38:35 +01:00

139 lines
4.3 KiB
Plaintext

menu "Linux Kernel Extensions"
#-------------------------------------------------------------------------------
# Xenomai
config BR2_LINUX_KERNEL_EXT_XENOMAI
bool "Adeos/Xenomai Real-time patch"
depends on BR2_PACKAGE_XENOMAI_COBALT_ARCH_SUPPORTS
depends on BR2_USE_MMU # xenomai
depends on BR2_TOOLCHAIN_HAS_SYNC_4 # xenomai
depends on BR2_TOOLCHAIN_HAS_THREADS # xenomai
depends on !BR2_TOOLCHAIN_USES_MUSL # xenomai
select BR2_PACKAGE_XENOMAI
help
Xenomai is split in two parts: a kernel part and a userspace
part. Enabling this option automatically selects the Xenomai
package and helps in patching the Linux kernel built by
Buildroot with the Xenomai kernel part (ie Adeos/Ipipe).
You can find the currently supported kernel versions by
looking at the available patches in the Xenomai sources
tree: ksrc/arch/$(ARCH)/patches
However, it is recommended to use the latest version of the
Adeos/Ipipe patch available at
http://download.gna.org/adeos/patches
Xenomai is know to support Blackfin, SH4, x86, ARM, NIOS2
and PowerPC architectures.
config BR2_LINUX_KERNEL_EXT_XENOMAI_ADEOS_PATCH
string "Path for Adeos patch file"
depends on BR2_LINUX_KERNEL_EXT_XENOMAI
help
Optionally, explicitly specify the Adeos patch to use.
Download it at http://download.gna.org/adeos/patches
and verify that your kernel version in buildroot matches.
comment "xenomai needs a uClibc or glibc toolchain w/ threads"
depends on BR2_PACKAGE_XENOMAI_COBALT_ARCH_SUPPORTS
depends on BR2_USE_MMU
depends on BR2_TOOLCHAIN_HAS_SYNC_4
depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_TOOLCHAIN_USES_MUSL
#-------------------------------------------------------------------------------
# RTAI
config BR2_LINUX_KERNEL_EXT_RTAI
bool "RTAI Real-time patch"
select BR2_PACKAGE_RTAI
help
RTAI Kernel part.
#-------------------------------------------------------------------------------
# ev3dev Linux drivers
config BR2_LINUX_KERNEL_EXT_EV3DEV_LINUX_DRIVERS
bool "ev3dev Linux drivers"
select BR2_PACKAGE_EV3DEV_LINUX_DRIVERS
help
Linux drivers for LEGO MINDSTORMS EV3 from the ev3dev project.
https://github.com/ev3dev/lego-linux-drivers
#-------------------------------------------------------------------------------
# fbtft
config BR2_LINUX_KERNEL_EXT_FBTFT
bool "FB TFT drivers"
select BR2_PACKAGE_FBTFT
help
Linux Framebuffer drivers for small TFT LCD display modules,
e.g. Adafruit PiTFT displays for Raspberry Pi (this extra
package is only needed for linux kernels until v3.19, since
v4.0 the drivers are included in the staging area).
To enable fbtft, e.g. for Adafruit 2.8 PiTFT, enable the
following kernel configurations:
- CONFIG_SPI
- CONFIG_GPIOLIB
- CONFIG_FB
- CONFIG_FB_TFT
- CONFIG_FB_TFT_ILI9341
https://github.com/notro/fbtft
# aufs-standalone
config BR2_LINUX_KERNEL_EXT_AUFS
bool "Aufs Filesystem Module patch"
select BR2_PACKAGE_AUFS
help
Aufs is split in two parts: a kernel part and a userspace
part. Enabling this option automatically selects the aufs
standalone (module) package and patches the Linux kernel
built by Buildroot with the aufs kernel part (ie fs/aufs).
It is important to use the correct branch of aufs-standalone.
if BR2_LINUX_KERNEL_EXT_AUFS
choice
bool "aufs-standalone series"
help
Select the major series of this version. This must match the
major version of your kernel (e.g. for kernels 3.x, select
aufs3.x; for kernels 4.x, select aufs4.x).
Note: neither aufs1.x nor aufs2.x (both for kernels older than
3.x) are supported.
config BR2_LINUX_KERNEL_EXT_AUFS_SERIES_3
bool "aufs3.x"
config BR2_LINUX_KERNEL_EXT_AUFS_SERIES_4
bool "aufs4.x"
endchoice
config BR2_LINUX_KERNEL_EXT_AUFS_SERIES
int
default 3 if BR2_LINUX_KERNEL_EXT_AUFS_SERIES_3
default 4 if BR2_LINUX_KERNEL_EXT_AUFS_SERIES_4
config BR2_LINUX_KERNEL_EXT_AUFS_VERSION
string "aufs-standalone version"
default ""
help
The version you choose must match that of your kernel.
Usually, the sha1 of the cset you want to use; avoid using a
branch name as this yields non-reproducible builds.
See the following resources to see what versions are
available:
For aufs3.x:
https://sourceforge.net/p/aufs/aufs3-standalone/ref/master/branches/
For aufs4.x:
https://github.com/sfjro/aufs4-standalone/branches/all
endif # aufs
endmenu