diff --git a/meta-ti-bsp/conf/machine/include/am62xx.inc b/meta-ti-bsp/conf/machine/include/am62xx.inc index 623d90eb..a205a18c 100644 --- a/meta-ti-bsp/conf/machine/include/am62xx.inc +++ b/meta-ti-bsp/conf/machine/include/am62xx.inc @@ -23,3 +23,6 @@ TFA_BOARD = "lite" TFA_K3_SYSTEM_SUSPEND = "1" OPTEEMACHINE = "k3-am62x" + +# Normally AM62 boards use ttyS2, but our Jailhouse inmate may use ttyS3, so try both +SERIAL_CONSOLES = "115200;ttyS2 115200;ttyS3" diff --git a/meta-ti-extras/recipes-ti/jailhouse/files/0001-configs-arm64-k3-am625-sk-Add-crypto-memory-region.patch b/meta-ti-extras/recipes-ti/jailhouse/files/0001-configs-arm64-k3-am625-sk-Add-crypto-memory-region.patch new file mode 100644 index 00000000..bfb57ae3 --- /dev/null +++ b/meta-ti-extras/recipes-ti/jailhouse/files/0001-configs-arm64-k3-am625-sk-Add-crypto-memory-region.patch @@ -0,0 +1,52 @@ +From 723ca87d25c1f8bac68d2608dbc3b5e8caba69ca Mon Sep 17 00:00:00 2001 +From: Andreas Dannenberg +Date: Mon, 12 Sep 2022 13:22:04 -0500 +Subject: [PATCH] configs: arm64: k3-am625-sk: Add crypto memory region + +Add the memory region for the AM62x crypto accelerator to the device- +specific config file. This fixes a runtime exception when the kernel +accesses that memory region: + + +Unhandled data read at 0x40910010(4) + +FATAL: unhandled trap (exception class 0x24) + + +Upstream-Status: Submitted [jailhouse-dev@googlegroups.com] + +Signed-off-by: Andreas Dannenberg +Signed-off-by: Paresh Bhagat +--- + configs/arm64/k3-am625-sk.c | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git a/configs/arm64/k3-am625-sk.c b/configs/arm64/k3-am625-sk.c +index 2e5c3aef..4b0b8043 100644 +--- a/configs/arm64/k3-am625-sk.c ++++ b/configs/arm64/k3-am625-sk.c +@@ -18,7 +18,7 @@ + struct { + struct jailhouse_system header; + __u64 cpus[1]; +- struct jailhouse_memory mem_regions[31]; ++ struct jailhouse_memory mem_regions[32]; + struct jailhouse_irqchip irqchips[5]; + struct jailhouse_pci_device pci_devices[2]; + } __attribute__((packed)) config = { +@@ -231,6 +231,13 @@ struct { + .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE | + JAILHOUSE_MEM_IO, + }, ++ /* CRYPTO */ { ++ .phys_start = 0x40900000, ++ .virt_start = 0x40900000, ++ .size = 0x0030000, ++ .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE | ++ JAILHOUSE_MEM_IO, ++ }, + /* First Wake Up Domain */ { + .phys_start = 0x2b000000, + .virt_start = 0x2b000000, +-- +2.34.1 diff --git a/meta-ti-extras/recipes-ti/jailhouse/files/0001-configs-k3-use-intx-for-bar_mask.patch b/meta-ti-extras/recipes-ti/jailhouse/files/0001-configs-k3-use-intx-for-bar_mask.patch new file mode 100644 index 00000000..c29baed5 --- /dev/null +++ b/meta-ti-extras/recipes-ti/jailhouse/files/0001-configs-k3-use-intx-for-bar_mask.patch @@ -0,0 +1,72 @@ +From 84ea5e9f65fc8082d520267258784cae32c8b499 Mon Sep 17 00:00:00 2001 +From: Ricardo Salveti +Date: Wed, 1 Mar 2023 22:14:35 -0300 +Subject: [PATCH] configs/k3: use intx for bar_mask + +Fixes pci probe failure: + +[ 46.795840] pci 0001:00:00.0: BAR 0: no space for [mem size 0x00010000] +[ 46.802516] pci 0001:00:00.0: BAR 0: failed to assign [mem size 0x00010000] +[ 46.809512] pci 0001:00:01.0: BAR 0: no space for [mem size 0x00010000] +[ 46.816158] pci 0001:00:01.0: BAR 0: failed to assign [mem size 0x00010000] + +Upstream-Status: Pending + +Signed-off-by: Ricardo Salveti + +This patch was imported from foundriesio/meta-lmp +(https://github.com/foundriesio/meta-lmp) as of commit id +70d419bfd54a99d3591e5a22622fc67f7de82b94. + +Signed-off-by: Paresh Bhagat +--- + configs/arm64/k3-am625-sk-linux-demo.c | 4 ++-- + configs/arm64/k3-am625-sk.c | 4 ++-- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/configs/arm64/k3-am625-sk-linux-demo.c b/configs/arm64/k3-am625-sk-linux-demo.c +index 6dac8859..dcc5f026 100644 +--- a/configs/arm64/k3-am625-sk-linux-demo.c ++++ b/configs/arm64/k3-am625-sk-linux-demo.c +@@ -197,7 +197,7 @@ struct { + /* 00:00.0 */ { + .type = JAILHOUSE_PCI_TYPE_IVSHMEM, + .bdf = 0 << 3, +- .bar_mask = JAILHOUSE_IVSHMEM_BAR_MASK_INTX_64K, ++ .bar_mask = JAILHOUSE_IVSHMEM_BAR_MASK_INTX, + .shmem_regions_start = 0, + .shmem_dev_id = 2, + .shmem_peers = 3, +@@ -206,7 +206,7 @@ struct { + /* 00:01.0 */ { + .type = JAILHOUSE_PCI_TYPE_IVSHMEM, + .bdf = 1 << 3, +- .bar_mask = JAILHOUSE_IVSHMEM_BAR_MASK_INTX_64K, ++ .bar_mask = JAILHOUSE_IVSHMEM_BAR_MASK_INTX, + .shmem_regions_start = 5, + .shmem_dev_id = 1, + .shmem_peers = 2, +diff --git a/configs/arm64/k3-am625-sk.c b/configs/arm64/k3-am625-sk.c +index 69ab12a4..dcea42e0 100644 +--- a/configs/arm64/k3-am625-sk.c ++++ b/configs/arm64/k3-am625-sk.c +@@ -325,7 +325,7 @@ struct { + .type = JAILHOUSE_PCI_TYPE_IVSHMEM, + .domain = 1, + .bdf = 0 << 3, +- .bar_mask = JAILHOUSE_IVSHMEM_BAR_MASK_INTX_64K, ++ .bar_mask = JAILHOUSE_IVSHMEM_BAR_MASK_INTX, + .shmem_regions_start = 0, + .shmem_dev_id = 0, + .shmem_peers = 3, +@@ -335,7 +335,7 @@ struct { + .type = JAILHOUSE_PCI_TYPE_IVSHMEM, + .domain = 1, + .bdf = 1 << 3, +- .bar_mask = JAILHOUSE_IVSHMEM_BAR_MASK_INTX_64K, ++ .bar_mask = JAILHOUSE_IVSHMEM_BAR_MASK_INTX, + .shmem_regions_start = 5, + .shmem_dev_id = 0, + .shmem_peers = 2, +-- +2.34.1 diff --git a/meta-ti-extras/recipes-ti/jailhouse/files/0002-configs-arm64-k3-am625-sk-Switch-inmate-boot-console.patch b/meta-ti-extras/recipes-ti/jailhouse/files/0002-configs-arm64-k3-am625-sk-Switch-inmate-boot-console.patch new file mode 100644 index 00000000..3634c415 --- /dev/null +++ b/meta-ti-extras/recipes-ti/jailhouse/files/0002-configs-arm64-k3-am625-sk-Switch-inmate-boot-console.patch @@ -0,0 +1,62 @@ +From dbc02104bb469f68034b84f293583df413b8ca56 Mon Sep 17 00:00:00 2001 +From: Andreas Dannenberg +Date: Mon, 12 Sep 2022 16:08:12 -0500 +Subject: [PATCH] configs: arm64: k3-am625-sk: Switch inmate boot console alias + to serial3 + +Traditionally the serial3 DTS alias is used for the 2nd main-domain UART +on K3 devices so go ahead and update the alias and its usage accordingly +for better consistency. + +While at it also do a minor cleanup of the UART's DTS node to use the +TISCI standard definitions as used in the corresponding Kernel DTS files. + +Upstream-Status: Submitted [jailhouse-dev@googlegroups.com] + +Signed-off-by: Andreas Dannenberg +Signed-off-by: Paresh Bhagat +--- + configs/arm64/dts/inmate-k3-am625-sk.dts | 11 ++++++----- + 1 file changed, 6 insertions(+), 5 deletions(-) + +diff --git a/configs/arm64/dts/inmate-k3-am625-sk.dts b/configs/arm64/dts/inmate-k3-am625-sk.dts +index c1455073..8e1bebb8 100644 +--- a/configs/arm64/dts/inmate-k3-am625-sk.dts ++++ b/configs/arm64/dts/inmate-k3-am625-sk.dts +@@ -1,6 +1,7 @@ + /dts-v1/; + + #include ++#include + + / { + model = "Texas Instruments AM625 Inmate Model"; +@@ -10,11 +11,11 @@ + #size-cells = <2>; + + aliases { +- serial1 = &main_uart1; ++ serial3 = &main_uart1; + }; + + chosen { +- stdout-path = "serial1:115200n8"; ++ stdout-path = "serial3:115200n8"; + }; + + memory@e0000000 { +@@ -91,9 +92,9 @@ + compatible = "ti,am64-uart", "ti,am654-uart"; + reg = <0x00 0x02810000 0x00 0x100>; + interrupts = ; +- power-domains = <&k3_pds 152 1>; +- current-speed = <115200>; +- clock-frequency = <48000000>; ++ power-domains = <&k3_pds 152 TI_SCI_PD_EXCLUSIVE>; ++ clocks = <&k3_clks 152 0>; ++ clock-names = "fclk"; + }; + + pci@76000000 { +-- +2.34.1 diff --git a/meta-ti-extras/recipes-ti/jailhouse/files/0003-configs-arm64-k3-am625-sk-Add-VTM-memory-region.patch b/meta-ti-extras/recipes-ti/jailhouse/files/0003-configs-arm64-k3-am625-sk-Add-VTM-memory-region.patch new file mode 100644 index 00000000..c2b68e8d --- /dev/null +++ b/meta-ti-extras/recipes-ti/jailhouse/files/0003-configs-arm64-k3-am625-sk-Add-VTM-memory-region.patch @@ -0,0 +1,53 @@ +From 9c9bba78b5635531fc8946914233af8c8ac8a6f3 Mon Sep 17 00:00:00 2001 +From: Andreas Dannenberg +Date: Fri, 4 Nov 2022 12:58:48 -0500 +Subject: [PATCH] configs: arm64: k3-am625-sk: Add VTM memory region + +Add the memory region for VTM to the device-specific config +file. This fixes a runtime exception when the kernel accesses +that memory region: + + +Unhandled data read at 0xb00308(4) + +FATAL: unhandled trap (exception class 0x24) + + +Upstream-Status: Submitted [jailhouse-dev@googlegroups.com] + +written by: Ricardo Salveti +Signed-off-by: Andreas Dannenberg +Signed-off-by: Paresh Bhagat +--- + configs/arm64/k3-am625-sk.c | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git a/configs/arm64/k3-am625-sk.c b/configs/arm64/k3-am625-sk.c +index 4b0b8043..fac4eaa6 100644 +--- a/configs/arm64/k3-am625-sk.c ++++ b/configs/arm64/k3-am625-sk.c +@@ -18,7 +18,7 @@ + struct { + struct jailhouse_system header; + __u64 cpus[1]; +- struct jailhouse_memory mem_regions[32]; ++ struct jailhouse_memory mem_regions[33]; + struct jailhouse_irqchip irqchips[5]; + struct jailhouse_pci_device pci_devices[2]; + } __attribute__((packed)) config = { +@@ -154,6 +154,13 @@ struct { + .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE | + JAILHOUSE_MEM_IO, + }, ++ /* Wake Up Domain VTM0 */ { ++ .phys_start = 0x00b00000, ++ .virt_start = 0x00b00000, ++ .size = 0x00001000, ++ .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE | ++ JAILHOUSE_MEM_IO, ++ }, + /* First peripheral window, 1 of 2 */ { + .phys_start = 0x01000000, + .virt_start = 0x01000000, +-- +2.34.1 diff --git a/meta-ti-extras/recipes-ti/jailhouse/files/0004-configs-arm64-k3-am625-sk-Add-GPMC-memory-region.patch b/meta-ti-extras/recipes-ti/jailhouse/files/0004-configs-arm64-k3-am625-sk-Add-GPMC-memory-region.patch new file mode 100644 index 00000000..800470bf --- /dev/null +++ b/meta-ti-extras/recipes-ti/jailhouse/files/0004-configs-arm64-k3-am625-sk-Add-GPMC-memory-region.patch @@ -0,0 +1,51 @@ +From c0e85959637a1de61170d1025e1bac8da283ddb9 Mon Sep 17 00:00:00 2001 +From: Andreas Dannenberg +Date: Thu, 19 Jan 2023 09:43:55 -0600 +Subject: [PATCH] configs: arm64: k3-am625-sk: Add GPMC memory region + +Add the memory region for GPMC, used by the AM62Q NAND card. + +Upstream-Status: Submitted [jailhouse-dev@googlegroups.com] + +Signed-off-by: Andreas Dannenberg +Signed-off-by: Paresh Bhagat +--- + configs/arm64/k3-am625-sk.c | 16 +++++++++++++++- + 1 file changed, 15 insertions(+), 1 deletion(-) + +diff --git a/configs/arm64/k3-am625-sk.c b/configs/arm64/k3-am625-sk.c +index fac4eaa6..10b5a8f3 100644 +--- a/configs/arm64/k3-am625-sk.c ++++ b/configs/arm64/k3-am625-sk.c +@@ -18,7 +18,7 @@ + struct { + struct jailhouse_system header; + __u64 cpus[1]; +- struct jailhouse_memory mem_regions[33]; ++ struct jailhouse_memory mem_regions[35]; + struct jailhouse_irqchip irqchips[5]; + struct jailhouse_pci_device pci_devices[2]; + } __attribute__((packed)) config = { +@@ -231,6 +231,20 @@ struct { + .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE | + JAILHOUSE_MEM_IO, + }, ++ /* GPMC */ { ++ .phys_start = 0x3b000000, ++ .virt_start = 0x3b000000, ++ .size = 0x00001000, ++ .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE | ++ JAILHOUSE_MEM_IO, ++ }, ++ /* GPMC */ { ++ .phys_start = 0x50000000, ++ .virt_start = 0x50000000, ++ .size = 0x08000000, ++ .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE | ++ JAILHOUSE_MEM_IO, ++ }, + /* CPSW */ { + .phys_start = 0x08000000, + .virt_start = 0x08000000, +-- +2.34.1 diff --git a/meta-ti-extras/recipes-ti/jailhouse/jailhouse-arch.inc b/meta-ti-extras/recipes-ti/jailhouse/jailhouse-arch.inc new file mode 100644 index 00000000..498b25ed --- /dev/null +++ b/meta-ti-extras/recipes-ti/jailhouse/jailhouse-arch.inc @@ -0,0 +1,22 @@ +# 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" diff --git a/meta-ti-extras/recipes-ti/jailhouse/jailhouse_git.bb b/meta-ti-extras/recipes-ti/jailhouse/jailhouse_git.bb new file mode 100644 index 00000000..05cc21b3 --- /dev/null +++ b/meta-ti-extras/recipes-ti/jailhouse/jailhouse_git.bb @@ -0,0 +1,209 @@ +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 \ +" + +TARGET_CC_ARCH += "${LDFLAGS}" + +PV = "0.12+git${SRCPV}" +SRCREV = "e57d1eff6d55aeed5f977fe4e2acfb6ccbdd7560" +BRANCH = "master" + +SRC_URI = " \ + git://github.com/siemens/jailhouse.git;protocol=https;branch=${BRANCH} \ + file://0001-configs-arm64-k3-am625-sk-Add-crypto-memory-region.patch \ + file://0002-configs-arm64-k3-am625-sk-Switch-inmate-boot-console.patch \ + file://0003-configs-arm64-k3-am625-sk-Add-VTM-memory-region.patch \ + file://0001-configs-k3-use-intx-for-bar_mask.patch \ + file://0004-configs-arm64-k3-am625-sk-Add-GPMC-memory-region.patch \ +" + +DEPENDS = "virtual/kernel dtc-native python3-mako-native python3-mako make-native" +RDEPENDS:${PN} += "\ + python3-curses\ + python3-datetime\ + python3-mmap\ +" + +require jailhouse-arch.inc +inherit module python3native bash-completion deploy setuptools3 + +S = "${WORKDIR}/git" +B = "${S}" + +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_CELL_FILES ?= "*.cell" +JH_CELL_FILES:k3 ?= "k3-*.cell" + +JH_INMATE_DTB ?= "" +JH_INMATE_DTB:am62xx ?= "inmate-k3-am625-sk.dtb" +JH_INMATE_DTB:am65xx ?= "inmate-k3-am654-idk.dtb" +JH_INMATE_DTB:j7 ?= "inmate-k3-j721e-evm.dtb" +JH_INMATE_DTB:j7200-evm ?= "inmate-k3-j7200-evm.dtb" + +JH_LINUX_DEMO_CELL ?= "" +JH_LINUX_DEMO_CELL:am62xx ?= "k3-am625-sk-linux-demo.cell" +JH_LINUX_DEMO_CELL:am65xx ?= "k3-am654-idk-linux-demo.cell" +JH_LINUX_DEMO_CELL:j7 ?= "k3-j721e-evm-linux-demo.cell" +JH_LINUX_DEMO_CELL:j7200-evm ?= "k3-j7200-evm-linux-demo.cell" + +JH_SYSCONFIG_CELL ?= "" +JH_SYSCONFIG_CELL:am62xx ?= "k3-am625-sk.cell" +JH_SYSCONFIG_CELL:am65xx ?= "k3-am654-idk.cell" +JH_SYSCONFIG_CELL:j7 ?= "k3-j721e-evm.cell" +JH_SYSCONFIG_CELL:j7200-evm ?= "k3-j7200-evm.cell" + +INITRAMFS_IMAGE ?= "" +JH_RAMFS_IMAGE ?= "${INITRAMFS_IMAGE}" + +JH_CMDLINE ?= "" +JH_CMDLINE:am62xx ?= "console=ttyS3,115200n8 earlycon=ns16550a,mmio32,0x02810000" +JH_CMDLINE:am65xx ?= "console=ttyS1,115200n8" +JH_CMDLINE:j7 ?= "console=ttyS3,115200n8" +JH_CMDLINE:j7200-evm ?= "console=ttyS3,115200n8" + +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 +} + +do_install() { + # Install pyjailhouse python modules needed by the tools + # distutils3_do_install + + # We want to install the python tools, but we do not want to use pip... + # At least with v0.10, we can work around this with + # 'PIP=":" PYTHON_PIP_USEABLE=yes' + oe_runmake PIP=: PYTHON=python3 PYTHON_PIP_USEABLE=yes DESTDIR=${D} install + + install -d ${D}${CELL_DIR} + install -m 0644 ${B}/configs/${JH_ARCH}/${JH_CELL_FILES} ${D}${CELL_DIR}/ + + install -d ${D}${INMATES_DIR} + install -m 0644 ${B}/inmates/demos/${JH_ARCH}/*.bin ${D}${INMATES_DIR} + + install -d ${D}/boot + if [ -n "${JH_RAMFS_IMAGE}" ] + then + if [ -f ${DEPLOY_DIR_IMAGE}/${JH_RAMFS_IMAGE}-${MACHINE}.cpio ] + then + install -m 0644 ${DEPLOY_DIR_IMAGE}/${JH_RAMFS_IMAGE}-${MACHINE}.cpio ${D}/boot + else + bberror "Could not find JH_RAMFS_IMAGE (${JH_RAMFS_IMAGE}-${MACHINE}.cpio)!" + bberror "Please make sure that \"cpio\" is in IMAGE_FSTYPES." + fi + fi + + if [ -n "${JH_INMATE_DTB}" -a -n "${JH_LINUX_DEMO_CELL}" ]; then + cd ${TOOLS_SRC_DIR} + + echo "#! /bin/sh" > ${D}${JH_DATADIR}/linux-demo.sh + echo "jailhouse enable ${CELL_DIR}/${JH_SYSCONFIG_CELL}" >> ${D}${JH_DATADIR}/linux-demo.sh + ./jailhouse-cell-linux -w ${D}${JH_DATADIR}/${JH_INMATE_DTB} \ + -a ${JH_ARCH} -c "${JH_CMDLINE}" \ + -d ../configs/${JH_ARCH}/dts/${JH_INMATE_DTB} \ + -i ${D}/boot/${JH_RAMFS_IMAGE}-${MACHINE}.cpio \ + ${D}${CELL_DIR}/${JH_LINUX_DEMO_CELL} \ + ${DEPLOY_DIR_IMAGE}/Image \ + | tr -cd '\11\12\15\40-\176' \ + >> ${D}${JH_DATADIR}/linux-demo.sh + + sed -i -e 's,^Modified device tree written.*,,g' ${D}${JH_DATADIR}/linux-demo.sh + sed -i -e 's,\${D},,g' ${D}${JH_DATADIR}/linux-demo.sh + sed -i -e 's, linux-loader.bin, ${JH_EXEC_DIR}/linux-loader.bin,g' ${D}${JH_DATADIR}/linux-demo.sh + sed -i -e 's,\${DEPLOY_DIR_IMAGE},/boot,g' ${D}${JH_DATADIR}/linux-demo.sh + sed -i -e '/^\s*$/d' ${D}${JH_DATADIR}/linux-demo.sh + chmod +x ${D}${JH_DATADIR}/linux-demo.sh + fi + +} + +PACKAGE_BEFORE_PN = "kernel-module-jailhouse pyjailhouse ${PN}-tools" +FILES:${PN} = "${base_libdir}/firmware ${libexecdir} ${sbindir} ${JH_DATADIR} /boot" +FILES:pyjailhouse = "${PYTHON_SITEPACKAGES_DIR}" +FILES:${PN}-tools = "${libexecdir}/${BPN}/${BPN}-*" + +RDEPENDS:${PN}-tools = "pyjailhouse python3-mmap python3-math python3-datetime python3-curses python3-compression" +RDEPENDS:pyjailhouse = "python3-core python3-ctypes python3-fcntl python3-shell" + +RRECOMMENDS:${PN} = "${PN}-tools" + +INSANE_SKIP:${PN} = "ldflags" + +KERNEL_MODULE_AUTOLOAD += "jailhouse" + +# Any extra cells/inmates from external recipes/packages +CELLS = "" + +python __anonymous () { + d.appendVarFlag('do_install', 'depends', ' virtual/kernel:do_deploy') + ramfs = d.getVar('JH_RAMFS_IMAGE', True) + if ramfs: + d.appendVarFlag('do_install', 'depends', ' ${JH_RAMFS_IMAGE}:do_image_complete') + + # Setup DEPENDS and RDEPENDS to included cells + cells = d.getVar('CELLS', True) or "" + for cell in cells.split(): + d.appendVar('DEPENDS', ' ' + cell) + d.appendVar('RDEPENDS_${PN}', ' ' + cell) +} + + +FILES:${PN} = " \ + /boot \ + /usr/libexec \ + /usr/sbin/ivshmem-demo \ + /usr/sbin/jailhouse \ + /usr/libexec/jailhouse \ + /usr/libexec/jailhouse/jailhouse-config-check \ + /usr/libexec/jailhouse/jailhouse-config-collect \ + /usr/libexec/jailhouse/jailhouse-hardware-check \ + /usr/libexec/jailhouse/jailhouse-cell-stats \ + /usr/libexec/jailhouse/linux-loader.bin \ + /usr/libexec/jailhouse/jailhouse-cell-linux \ + /usr/libexec/jailhouse/jailhouse-config-create \ + /usr/share/jailhouse \ + /usr/share/jailhouse/linux-demo.sh \ + /usr/share/jailhouse/inmate-k3-am625-sk.dtb \ + /usr/share/jailhouse/inmates \ + /usr/share/jailhouse/cells \ + /usr/share/jailhouse/inmates/gic-demo.bin \ + /usr/share/jailhouse/inmates/ivshmem-demo.bin \ + /usr/share/jailhouse/inmates/uart-demo.bin \ + /usr/share/jailhouse/cells/k3-am625-sk.cell \ + /usr/share/jailhouse/cells/k3-am625-sk-inmate-demo.cell \ + /usr/share/jailhouse/cells/k3-am625-sk-linux-demo.cell \ + /lib/firmware \ + /lib/firmware/jailhouse.bin \ + /boot/tisdk-tiny-image-am62xx-evm.cpio \ +"