diff --git a/meta-arm-autonomy/README.md b/meta-arm-autonomy/README.md index f8a14044..1f80a054 100644 --- a/meta-arm-autonomy/README.md +++ b/meta-arm-autonomy/README.md @@ -18,6 +18,11 @@ Distribution Features --------------------- This layer is adding the following Yocto DISTRO_FEATURES: +* arm-autonomy-host: this feature activates functionalities required to build + an autonomy host system. It is doing the following: + - add 'xen' and 'ipv4' to DISTRO_FEATURES. + - add xen backend drivers to linux kernel configuration. + Bitbake variables ----------------- Some recipes and classes in this layer are introducing variables which can be diff --git a/meta-arm-autonomy/classes/arm-autonomy-features.bbclass b/meta-arm-autonomy/classes/arm-autonomy-features.bbclass new file mode 100644 index 00000000..38441e49 --- /dev/null +++ b/meta-arm-autonomy/classes/arm-autonomy-features.bbclass @@ -0,0 +1,4 @@ +# Include arm-autonomy distro config files if the distro features are set + +require ${@bb.utils.contains('DISTRO_FEATURES', 'arm-autonomy-host', '${ARM_AUTONOMY_DISTRO_CFGDIR}/arm-autonomy-host.inc', '', d)} + diff --git a/meta-arm-autonomy/conf/distro/include/arm-autonomy-host.inc b/meta-arm-autonomy/conf/distro/include/arm-autonomy-host.inc new file mode 100644 index 00000000..236fbe92 --- /dev/null +++ b/meta-arm-autonomy/conf/distro/include/arm-autonomy-host.inc @@ -0,0 +1,5 @@ +# This files is added when DISTRO_FEATURES contains arm-autonomy-host + +# We need to have xen and ipv4 activated +DISTRO_FEATURES_append = " xen ipv4" + diff --git a/meta-arm-autonomy/conf/layer.conf b/meta-arm-autonomy/conf/layer.conf index 2dc24a2c..19f24add 100644 --- a/meta-arm-autonomy/conf/layer.conf +++ b/meta-arm-autonomy/conf/layer.conf @@ -23,3 +23,9 @@ LAYERSERIES_COMPAT_meta-arm-autonomy = "zeus" # otherwise the user will see a warning on each build. SKIP_META_VIRT_SANITY_CHECK = "1" +# Directory of our distro config files +ARM_AUTONOMY_DISTRO_CFGDIR = "${LAYERDIR}/conf/distro/include/" + +# Add class to handle arm-autonomy distro extensions +USER_CLASSES_append = " arm-autonomy-features" + diff --git a/meta-arm-autonomy/recipes-kernel/linux/arm-autonomy-kmeta/features/arm-autonomy/xen-host.cfg b/meta-arm-autonomy/recipes-kernel/linux/arm-autonomy-kmeta/features/arm-autonomy/xen-host.cfg new file mode 100644 index 00000000..2affab98 --- /dev/null +++ b/meta-arm-autonomy/recipes-kernel/linux/arm-autonomy-kmeta/features/arm-autonomy/xen-host.cfg @@ -0,0 +1,35 @@ +CONFIG_PARAVIRT=y +CONFIG_XEN=y + +CONFIG_BLOCK=y +CONFIG_XEN_BLKDEV_BACKEND=y + +CONFIG_SCSI=y +CONFIG_TARGET_CORE=y +CONFIG_XEN_SCSI_BACKEND=y + +CONFIG_NET=y +CONFIG_XEN_NETDEV_BACKEND=y + +CONFIG_HVC_IRQ=y + +CONFIG_HVC_XEN=y + +CONFIG_WATCHDOG=y +CONFIG_XEN_WDT=y + +CONFIG_XEN_BALLOON=y + +CONFIG_XEN_DEV_EVTCHN=y + +CONFIG_XENFS=y +CONFIG_XEN_COMPAT_XENFS=y + +CONFIG_XEN_SYS_HYPERVISOR=y +CONFIG_XEN_GNTDEV=y +CONFIG_XEN_GRANT_DEV_ALLOC=y +CONFIG_SWIOTLB_XEN=y + +CONFIG_XEN_EFI=y +CONFIG_XEN_AUTO_XLATE=y + diff --git a/meta-arm-autonomy/recipes-kernel/linux/arm-autonomy-kmeta/features/arm-autonomy/xen-host.scc b/meta-arm-autonomy/recipes-kernel/linux/arm-autonomy-kmeta/features/arm-autonomy/xen-host.scc new file mode 100644 index 00000000..6fdbabc4 --- /dev/null +++ b/meta-arm-autonomy/recipes-kernel/linux/arm-autonomy-kmeta/features/arm-autonomy/xen-host.scc @@ -0,0 +1,4 @@ +define KFEATURE_DESCRIPTION "Enable XEN Host Drivers on autonomy systems" + +kconf non-hardware xen-host.cfg + diff --git a/meta-arm-autonomy/recipes-kernel/linux/linux-%.bbappend b/meta-arm-autonomy/recipes-kernel/linux/linux-%.bbappend new file mode 100644 index 00000000..add70425 --- /dev/null +++ b/meta-arm-autonomy/recipes-kernel/linux/linux-%.bbappend @@ -0,0 +1,3 @@ +# Add arm-autonomy kernel support +require linux-arm-autonomy.inc + diff --git a/meta-arm-autonomy/recipes-kernel/linux/linux-arm-autonomy.inc b/meta-arm-autonomy/recipes-kernel/linux/linux-arm-autonomy.inc new file mode 100644 index 00000000..03323872 --- /dev/null +++ b/meta-arm-autonomy/recipes-kernel/linux/linux-arm-autonomy.inc @@ -0,0 +1,13 @@ +# Add arm-autonomy specific features to the kernel + +FILESEXTRAPATHS_prepend := "${THISDIR}:" + +# +# arm-autonomy kmeta +# +SRC_URI_append = " file://arm-autonomy-kmeta;type=kmeta;name=arm-autonomy-kmeta;destsuffix=arm-autonomy-kmeta" + +# Add xen host drivers to kernel if arm-autonomy-host is activated +KERNEL_FEATURES += "${@bb.utils.contains('DISTRO_FEATURES', \ + 'arm-autonomy-host', 'features/arm-autonomy/xen-host.scc', '', d)}" +