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..a63891bf --- /dev/null +++ b/meta-ti-extras/recipes-ti/jailhouse/ti-jailhouse.inc | |||
@@ -0,0 +1,87 @@ | |||
1 | SUMMARY = "Linux-based partitioning hypervisor" | ||
2 | DESCRIPTION = "Jailhouse is a partitioning Hypervisor based on Linux. It is able to run bare-metal applications or (adapted) \ | ||
3 | operating systems besides Linux. For this purpose, it configures CPU and device virtualization features of the hardware \ | ||
4 | platform in a way that none of these domains, called 'cells' here, can interfere with each other in an unacceptable way." | ||
5 | HOMEPAGE = "https://github.com/siemens/jailhouse" | ||
6 | SECTION = "jailhouse" | ||
7 | |||
8 | LICENSE = "GPL-2.0-only & BSD-2-Clause" | ||
9 | |||
10 | LIC_FILES_CHKSUM = " \ | ||
11 | file://COPYING;md5=9fa7f895f96bde2d47fd5b7d95b6ba4d \ | ||
12 | " | ||
13 | |||
14 | COMPATIBLE_MACHINE = "am62xx|am62pxx" | ||
15 | TARGET_CC_ARCH += "${LDFLAGS}" | ||
16 | PV = "0.12+git${SRCPV}" | ||
17 | SRCREV = "0b29ad90f6f54105b98d6bbf35cc47fb244f7799" | ||
18 | BRANCH = "master" | ||
19 | SRC_URI = " \ | ||
20 | git://git.ti.com/git/jailhouse/ti-jailhouse.git;protocol=https;branch=${BRANCH} \ | ||
21 | " | ||
22 | |||
23 | # Set jailhouse architecture JH_ARCH variable | ||
24 | # | ||
25 | # return value must match one of architectures supported by jailhouse | ||
26 | # | ||
27 | valid_jh_archs = "x86 arm" | ||
28 | |||
29 | def map_jh_arch(a, d): | ||
30 | import re | ||
31 | |||
32 | valid_jh_archs = d.getVar('valid_jh_archs', True).split() | ||
33 | |||
34 | if re.match('(i.86|athlon|x86.64)$', a): return 'x86' | ||
35 | elif re.match('armeb$', a): return 'arm' | ||
36 | elif re.match('aarch64$', a): return 'arm64' | ||
37 | elif re.match('aarch64_be$', a): return 'arm64' | ||
38 | elif a in valid_jh_archs: return a | ||
39 | else: | ||
40 | bb.error("cannot map '%s' to a jailhouse supported architecture" % a) | ||
41 | |||
42 | export JH_ARCH = "${@map_jh_arch(d.getVar('TARGET_ARCH', True), d)}" | ||
43 | |||
44 | COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64).*-linux" | ||
45 | |||
46 | S = "${WORKDIR}/git" | ||
47 | B = "${S}" | ||
48 | |||
49 | DEPENDS = "virtual/kernel dtc-native python3-mako-native python3-mako make-native" | ||
50 | |||
51 | inherit module python3native bash-completion deploy setuptools3 | ||
52 | |||
53 | PACKAGE_ARCH = "${MACHINE_ARCH}" | ||
54 | COMPATIBLE_MACHINE = "(ti-soc)" | ||
55 | |||
56 | JH_DATADIR ?= "${datadir}/jailhouse" | ||
57 | JH_EXEC_DIR ?= "${libexecdir}/jailhouse" | ||
58 | CELL_DIR ?= "${JH_DATADIR}/cells" | ||
59 | CELLCONF_DIR ?= "${JH_DATADIR}/configs" | ||
60 | INMATES_DIR ?= "${JH_DATADIR}/inmates" | ||
61 | |||
62 | JH_SYSCONFIG_CELL ?= "" | ||
63 | JH_SYSCONFIG_CELL:am62xx ?= "k3-am625-sk.cell" | ||
64 | JH_SYSCONFIG_CELL:am65xx ?= "k3-am654-idk.cell" | ||
65 | JH_SYSCONFIG_CELL:am62pxx ?= "k3-am62p5-sk.cell" | ||
66 | JH_SYSCONFIG_CELL:j7 ?= "k3-j721e-evm.cell" | ||
67 | JH_SYSCONFIG_CELL:j7200-evm ?= "k3-j7200-evm.cell" | ||
68 | |||
69 | do_configure() { | ||
70 | if [ -d ${STAGING_DIR_HOST}/${CELLCONF_DIR} ]; | ||
71 | then | ||
72 | cp ${STAGING_DIR_HOST}/${CELLCONF_DIR}/*.c ${S}/configs/ | ||
73 | fi | ||
74 | } | ||
75 | |||
76 | USER_SPACE_CFLAGS = '${CFLAGS} -DLIBEXECDIR=\\\"${libexecdir}\\\" \ | ||
77 | -DJAILHOUSE_VERSION=\\\"$JAILHOUSE_VERSION\\\" \ | ||
78 | -Wall -Wextra -Wmissing-declarations -Wmissing-prototypes -Werror \ | ||
79 | -I../driver' | ||
80 | |||
81 | TOOLS_SRC_DIR = "${S}/tools" | ||
82 | |||
83 | EXTRA_OEMAKE = "ARCH=${JH_ARCH} CROSS_COMPILE=${TARGET_PREFIX} CC="${CC}" KDIR=${STAGING_KERNEL_BUILDDIR}" | ||
84 | |||
85 | do_compile() { | ||
86 | oe_runmake V=1 | ||
87 | } | ||