diff options
Diffstat (limited to 'meta-ti-extras/recipes-ti/jailhouse/ti-jailhouse.inc')
-rw-r--r-- | meta-ti-extras/recipes-ti/jailhouse/ti-jailhouse.inc | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/meta-ti-extras/recipes-ti/jailhouse/ti-jailhouse.inc b/meta-ti-extras/recipes-ti/jailhouse/ti-jailhouse.inc new file mode 100644 index 00000000..af94a780 --- /dev/null +++ b/meta-ti-extras/recipes-ti/jailhouse/ti-jailhouse.inc @@ -0,0 +1,87 @@ +SUMMARY = "Linux-based partitioning hypervisor" +DESCRIPTION = "Jailhouse is a partitioning Hypervisor based on Linux. It is able to run bare-metal applications or (adapted) \ +operating systems besides Linux. For this purpose, it configures CPU and device virtualization features of the hardware \ +platform in a way that none of these domains, called 'cells' here, can interfere with each other in an unacceptable way." +HOMEPAGE = "https://github.com/siemens/jailhouse" +SECTION = "jailhouse" + +LICENSE = "GPL-2.0-only & BSD-2-Clause" + +LIC_FILES_CHKSUM = " \ + file://COPYING;md5=9fa7f895f96bde2d47fd5b7d95b6ba4d \ +" + +COMPATIBLE_MACHINE = "am62xx|am62pxx" +TARGET_CC_ARCH += "${LDFLAGS}" +PV = "0.12+git${SRCPV}" +SRCREV = "603819ef9a771a3c253a141220daab8e61751a43" +BRANCH = "master" +SRC_URI = " \ + git://git.ti.com/git/jailhouse/ti-jailhouse.git;protocol=https;branch=${BRANCH} \ +" + +# Set jailhouse architecture JH_ARCH variable +# +# return value must match one of architectures supported by jailhouse +# +valid_jh_archs = "x86 arm" + +def map_jh_arch(a, d): + import re + + valid_jh_archs = d.getVar('valid_jh_archs', True).split() + + if re.match('(i.86|athlon|x86.64)$', a): return 'x86' + elif re.match('armeb$', a): return 'arm' + elif re.match('aarch64$', a): return 'arm64' + elif re.match('aarch64_be$', a): return 'arm64' + elif a in valid_jh_archs: return a + else: + bb.error("cannot map '%s' to a jailhouse supported architecture" % a) + +export JH_ARCH = "${@map_jh_arch(d.getVar('TARGET_ARCH', True), d)}" + +COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64).*-linux" + +S = "${WORKDIR}/git" +B = "${S}" + +DEPENDS = "virtual/kernel dtc-native python3-mako-native python3-mako make-native" + +inherit module python3native bash-completion deploy setuptools3 + +PACKAGE_ARCH = "${MACHINE_ARCH}" +COMPATIBLE_MACHINE = "(ti-soc)" + +JH_DATADIR ?= "${datadir}/jailhouse" +JH_EXEC_DIR ?= "${libexecdir}/jailhouse" +CELL_DIR ?= "${JH_DATADIR}/cells" +CELLCONF_DIR ?= "${JH_DATADIR}/configs" +INMATES_DIR ?= "${JH_DATADIR}/inmates" + +JH_SYSCONFIG_CELL ?= "" +JH_SYSCONFIG_CELL:am62xx ?= "k3-am625-sk.cell" +JH_SYSCONFIG_CELL:am65xx ?= "k3-am654-idk.cell" +JH_SYSCONFIG_CELL:am62pxx ?= "k3-am62p5-sk.cell" +JH_SYSCONFIG_CELL:j7 ?= "k3-j721e-evm.cell" +JH_SYSCONFIG_CELL:j7200-evm ?= "k3-j7200-evm.cell" + +do_configure() { + if [ -d ${STAGING_DIR_HOST}/${CELLCONF_DIR} ]; + then + cp ${STAGING_DIR_HOST}/${CELLCONF_DIR}/*.c ${S}/configs/ + fi +} + +USER_SPACE_CFLAGS = '${CFLAGS} -DLIBEXECDIR=\\\"${libexecdir}\\\" \ + -DJAILHOUSE_VERSION=\\\"$JAILHOUSE_VERSION\\\" \ + -Wall -Wextra -Wmissing-declarations -Wmissing-prototypes -Werror \ + -I../driver' + +TOOLS_SRC_DIR = "${S}/tools" + +EXTRA_OEMAKE = "ARCH=${JH_ARCH} CROSS_COMPILE=${TARGET_PREFIX} CC="${CC}" KDIR=${STAGING_KERNEL_BUILDDIR}" + +do_compile() { + oe_runmake V=1 +} |