summaryrefslogtreecommitdiffstats
path: root/meta-agl-bsp/virtualization-layer/recipes-extended/xen
diff options
context:
space:
mode:
Diffstat (limited to 'meta-agl-bsp/virtualization-layer/recipes-extended/xen')
-rw-r--r--meta-agl-bsp/virtualization-layer/recipes-extended/xen/files/0001-XEN-on-RPi4-1GB-lmitation-workaround-XEN-tries-to-al.patch28
-rw-r--r--meta-agl-bsp/virtualization-layer/recipes-extended/xen/xen-mkimage-rpi4.bb29
-rw-r--r--meta-agl-bsp/virtualization-layer/recipes-extended/xen/xen-tools_git.bbappend11
-rw-r--r--meta-agl-bsp/virtualization-layer/recipes-extended/xen/xen_git.bbappend18
4 files changed, 86 insertions, 0 deletions
diff --git a/meta-agl-bsp/virtualization-layer/recipes-extended/xen/files/0001-XEN-on-RPi4-1GB-lmitation-workaround-XEN-tries-to-al.patch b/meta-agl-bsp/virtualization-layer/recipes-extended/xen/files/0001-XEN-on-RPi4-1GB-lmitation-workaround-XEN-tries-to-al.patch
new file mode 100644
index 000000000..d83c65257
--- /dev/null
+++ b/meta-agl-bsp/virtualization-layer/recipes-extended/xen/files/0001-XEN-on-RPi4-1GB-lmitation-workaround-XEN-tries-to-al.patch
@@ -0,0 +1,28 @@
+From 2701d65271686dff0cb39ab7da1e821f5dede61e Mon Sep 17 00:00:00 2001
+From: Leonid Lazarev <leonid.lazarev@mera.com>
+Date: Tue, 21 Apr 2020 17:28:16 +0300
+Subject: [PATCH] XEN on RPi4 1GB lmitation workaround: XEN tries to allocated
+ the memopry for dom0 within first 4GB, but for some reason raspberry pi only
+ allows to load kernel from 1st GB. Push XEN to allocate first bank for dom0
+ from 1st GB
+
+---
+ xen/arch/arm/domain_build.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
+index dd9c3b73ba..8501a8c8aa 100644
+--- a/xen/arch/arm/domain_build.c
++++ b/xen/arch/arm/domain_build.c
+@@ -281,7 +281,7 @@ static void __init allocate_memory_11(struct domain *d,
+ */
+ while ( order >= min_low_order )
+ {
+- for ( bits = order ; bits <= (lowmem ? 32 : PADDR_BITS); bits++ )
++ for ( bits = order ; bits <= (lowmem ? 30 : PADDR_BITS); bits++ )
+ {
+ pg = alloc_domheap_pages(d, order, MEMF_bits(bits));
+ if ( pg != NULL )
+--
+2.17.1
+
diff --git a/meta-agl-bsp/virtualization-layer/recipes-extended/xen/xen-mkimage-rpi4.bb b/meta-agl-bsp/virtualization-layer/recipes-extended/xen/xen-mkimage-rpi4.bb
new file mode 100644
index 000000000..b857cb19f
--- /dev/null
+++ b/meta-agl-bsp/virtualization-layer/recipes-extended/xen/xen-mkimage-rpi4.bb
@@ -0,0 +1,29 @@
+DESCRIPTION = "Xen hypervisor u-boot image"
+LICENSE = "GPL-2.0-only"
+SECTION = "console/tools"
+
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6"
+
+
+
+ALLOW_EMPTY:${PN} = "1"
+FILES:${PN} = ""
+S = "${WORKDIR}"
+
+DEPENDS = "u-boot-mkimage-native "
+
+# Only for aarch64
+COMPATIBLE_MACHINE = "(-)"
+COMPATIBLE_MACHINE:aarch64 = "(.*)"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+do_configure[noexec] = "1"
+do_deploy[noexec] = "1"
+
+do_compile[depends] += "xen:do_deploy"
+
+# Uboot compatible image
+do_compile () {
+ uboot-mkimage -A arm64 -C none -T kernel -a 0x48080000 -e 0x48080000 -n "XEN" -d ${DEPLOY_DIR_IMAGE}/xen-${MACHINE} ${DEPLOY_DIR_IMAGE}/xen-${MACHINE}.uImage
+}
diff --git a/meta-agl-bsp/virtualization-layer/recipes-extended/xen/xen-tools_git.bbappend b/meta-agl-bsp/virtualization-layer/recipes-extended/xen/xen-tools_git.bbappend
new file mode 100644
index 000000000..a67200618
--- /dev/null
+++ b/meta-agl-bsp/virtualization-layer/recipes-extended/xen/xen-tools_git.bbappend
@@ -0,0 +1,11 @@
+
+# make the package specific to the machine for now
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+# rpi4
+LIC_FILES_CHKSUM:raspberrypi4 = "file://COPYING;md5=4295d895d4b5ce9d070263d52f030e49"
+XEN_REL:raspberrypi4 = "4.13"
+SRCREV:raspberrypi4 = "721f2c323ca55c77857c93e7275b4a93a0e15e1f"
+SRC_URI:raspberrypi4 = " \
+ git://xenbits.xen.org/xen.git;branch=${XEN_BRANCH} \
+ "
diff --git a/meta-agl-bsp/virtualization-layer/recipes-extended/xen/xen_git.bbappend b/meta-agl-bsp/virtualization-layer/recipes-extended/xen/xen_git.bbappend
new file mode 100644
index 000000000..2d63e1841
--- /dev/null
+++ b/meta-agl-bsp/virtualization-layer/recipes-extended/xen/xen_git.bbappend
@@ -0,0 +1,18 @@
+FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
+
+# make the package machine-specific
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+# rpi4 specifics
+LIC_FILES_CHKSUM:raspberrypi4 = "file://COPYING;md5=4295d895d4b5ce9d070263d52f030e49"
+XEN_REL:raspberrypi4 = "4.13"
+
+SRCREV:raspberrypi4 = "721f2c323ca55c77857c93e7275b4a93a0e15e1f"
+SRC_URI:append:raspberrypi4 = " file://0001-XEN-on-RPi4-1GB-lmitation-workaround-XEN-tries-to-al.patch"
+
+#due to incorrect xen binary preparation in external library, we add additional deploy
+do_deploy:append:raspberrypi4() {
+ if [ -f ${B}/xen/xen ]; then
+ install -m 0644 ${B}/xen/xen ${DEPLOYDIR}/xen-${MACHINE}
+ fi
+}