summaryrefslogtreecommitdiffstats
path: root/bsp/meta-renesas/meta-rcar-gen3/recipes-kernel/kernel-module-mmngr
diff options
context:
space:
mode:
Diffstat (limited to 'bsp/meta-renesas/meta-rcar-gen3/recipes-kernel/kernel-module-mmngr')
-rw-r--r--bsp/meta-renesas/meta-rcar-gen3/recipes-kernel/kernel-module-mmngr/kernel-module-mmngr.bb75
-rw-r--r--bsp/meta-renesas/meta-rcar-gen3/recipes-kernel/kernel-module-mmngr/kernel-module-mmngrbuf.bb60
-rw-r--r--bsp/meta-renesas/meta-rcar-gen3/recipes-kernel/kernel-module-mmngr/kernel-module-mmngrbuf/0001-mmngr_drv-mmngrbuf-Take-care-of-any-migration-of-sca.patch35
-rw-r--r--bsp/meta-renesas/meta-rcar-gen3/recipes-kernel/kernel-module-mmngr/mmngr_drv.inc13
4 files changed, 183 insertions, 0 deletions
diff --git a/bsp/meta-renesas/meta-rcar-gen3/recipes-kernel/kernel-module-mmngr/kernel-module-mmngr.bb b/bsp/meta-renesas/meta-rcar-gen3/recipes-kernel/kernel-module-mmngr/kernel-module-mmngr.bb
new file mode 100644
index 00000000..694163ef
--- /dev/null
+++ b/bsp/meta-renesas/meta-rcar-gen3/recipes-kernel/kernel-module-mmngr/kernel-module-mmngr.bb
@@ -0,0 +1,75 @@
+DESCRIPTION = "Memory Manager Kernel module for Renesas R-Car Gen3"
+
+require mmngr_drv.inc
+require include/dtv-dvd-control.inc
+
+DEPENDS = "linux-renesas"
+PN = "kernel-module-mmngr"
+PR = "r0"
+
+S = "${WORKDIR}/git"
+MMNGR_DRV_DIR = "mmngr_drv/mmngr/mmngr-module/files/mmngr"
+
+MMNGR_CFG_salvator-x = "MMNGR_SALVATORX"
+MMNGR_CFG_h3ulcb = "MMNGR_SALVATORX"
+MMNGR_CFG_m3ulcb = "MMNGR_SALVATORX"
+MMNGR_CFG_m3nulcb = "MMNGR_SALVATORX"
+MMNGR_CFG_ebisu = "MMNGR_EBISU"
+
+includedir = "${RENESAS_DATADIR}/include"
+SSTATE_DUPWHITELIST += "${STAGING_INCDIR}"
+
+# Build Memory Manager kernel module without suffix
+KERNEL_MODULE_PACKAGE_SUFFIX = ""
+
+do_compile() {
+ export MMNGR_CONFIG=${MMNGR_CFG}
+
+ if [ "X${USE_DTV}" = "X1" ]; then
+ export MMNGR_SSP_CONFIG="MMNGR_SSP_ENABLE"
+ else
+ export MMNGR_SSP_CONFIG="MMNGR_SSP_DISABLE"
+ fi
+
+ export MMNGR_IPMMU_MMU_CONFIG="IPMMU_MMU_DISABLE"
+
+ cd ${S}/${MMNGR_DRV_DIR}/drv
+ install -d ${INCSHARED}
+ make all
+}
+
+do_install () {
+ # Create destination directories
+ install -d ${D}/lib/modules/${KERNEL_VERSION}/extra/
+ install -d ${KERNELSRC}/include
+ install -d ${D}/${includedir}
+
+ # Install shared library to KERNELSRC(STAGING_KERNEL_DIR) for reference from other modules
+ # This file installed in SDK by kernel-devsrc pkg.
+ install -m 644 ${S}/${MMNGR_DRV_DIR}/drv/Module.symvers ${KERNELSRC}/include/mmngr.symvers
+
+ # Install kernel module
+ install -m 644 ${S}/${MMNGR_DRV_DIR}/drv/mmngr.ko ${D}/lib/modules/${KERNEL_VERSION}/extra/
+
+ # Install shared header files to KERNELSRC(STAGING_KERNEL_DIR)
+ # This file installed in SDK by kernel-devsrc pkg.
+ install -m 644 ${S}/${MMNGR_DRV_DIR}/include/mmngr_public.h ${KERNELSRC}/include/
+ install -m 644 ${S}/${MMNGR_DRV_DIR}/include/mmngr_private.h ${KERNELSRC}/include/
+ install -m 644 ${S}/${MMNGR_DRV_DIR}/include/mmngr_public_cmn.h ${KERNELSRC}/include/
+ install -m 644 ${S}/${MMNGR_DRV_DIR}/include/mmngr_private_cmn.h ${KERNELSRC}/include/
+
+ # Install shared header file to ${includedir}
+ install -m 644 ${S}/${MMNGR_DRV_DIR}/include/mmngr_public_cmn.h ${D}/${includedir}/
+ install -m 644 ${S}/${MMNGR_DRV_DIR}/include/mmngr_private_cmn.h ${D}/${includedir}/
+}
+
+PACKAGES = "\
+ ${PN} \
+ ${PN}-dev \
+"
+
+FILES_${PN} = " \
+ /lib/modules/${KERNEL_VERSION}/extra/mmngr.ko \
+"
+
+RPROVIDES_${PN} += "kernel-module-mmngr"
diff --git a/bsp/meta-renesas/meta-rcar-gen3/recipes-kernel/kernel-module-mmngr/kernel-module-mmngrbuf.bb b/bsp/meta-renesas/meta-rcar-gen3/recipes-kernel/kernel-module-mmngr/kernel-module-mmngrbuf.bb
new file mode 100644
index 00000000..3ae960b5
--- /dev/null
+++ b/bsp/meta-renesas/meta-rcar-gen3/recipes-kernel/kernel-module-mmngr/kernel-module-mmngrbuf.bb
@@ -0,0 +1,60 @@
+DESCRIPTION = "Memory Manager Buffer Kernel module for Renesas R-Car Gen3"
+
+require mmngr_drv.inc
+
+DEPENDS = "linux-renesas"
+PN = "kernel-module-mmngrbuf"
+PR = "r0"
+
+S = "${WORKDIR}/git"
+MMNGRBUF_DRV_DIR = "mmngr_drv/mmngrbuf/mmngrbuf-module/files/mmngrbuf"
+
+# Support HW overlay mode
+SRC_URI_append = "\
+ file://0001-mmngr_drv-mmngrbuf-Take-care-of-any-migration-of-sca.patch \
+"
+
+includedir = "${RENESAS_DATADIR}/include"
+SSTATE_DUPWHITELIST += "${STAGING_INCDIR}"
+
+# Build Memory Manager Buffer kernel module without suffix
+KERNEL_MODULE_PACKAGE_SUFFIX = ""
+
+do_compile() {
+ cd ${S}/${MMNGRBUF_DRV_DIR}/drv
+ install -d ${INCSHARED}
+ make all
+}
+
+do_install () {
+ # Create destination directories
+ install -d ${D}/lib/modules/${KERNEL_VERSION}/extra/
+ install -d ${KERNELSRC}/include
+ install -d ${D}/${includedir}
+
+ # Install shared library to KERNELSRC(STAGING_KERNEL_DIR) for reference from other modules
+ # This file installed in SDK by kernel-devsrc pkg.
+ install -m 644 ${S}/${MMNGRBUF_DRV_DIR}/drv/Module.symvers ${KERNELSRC}/include/mmngrbuf.symvers
+
+ # Install kernel module
+ install -m 644 ${S}/${MMNGRBUF_DRV_DIR}/drv/mmngrbuf.ko ${D}/lib/modules/${KERNEL_VERSION}/extra/
+
+ # Install shared header files to KERNELSRC(STAGING_KERNEL_DIR)
+ # This file installed in SDK by kernel-devsrc pkg.
+ install -m 644 ${S}/${MMNGRBUF_DRV_DIR}/include/mmngr_buf_private.h ${KERNELSRC}/include/
+ install -m 644 ${S}/${MMNGRBUF_DRV_DIR}/include/mmngr_buf_private_cmn.h ${KERNELSRC}/include/
+
+ # Install shared header files to ${includedir}
+ install -m 644 ${S}/${MMNGRBUF_DRV_DIR}/include/mmngr_buf_private_cmn.h ${D}/${includedir}/
+}
+
+PACKAGES = "\
+ ${PN} \
+ ${PN}-dev \
+"
+
+FILES_${PN} = " \
+ /lib/modules/${KERNEL_VERSION}/extra/mmngrbuf.ko \
+"
+
+RPROVIDES_${PN} += "kernel-module-mmngrbuf"
diff --git a/bsp/meta-renesas/meta-rcar-gen3/recipes-kernel/kernel-module-mmngr/kernel-module-mmngrbuf/0001-mmngr_drv-mmngrbuf-Take-care-of-any-migration-of-sca.patch b/bsp/meta-renesas/meta-rcar-gen3/recipes-kernel/kernel-module-mmngr/kernel-module-mmngrbuf/0001-mmngr_drv-mmngrbuf-Take-care-of-any-migration-of-sca.patch
new file mode 100644
index 00000000..7e5ca0aa
--- /dev/null
+++ b/bsp/meta-renesas/meta-rcar-gen3/recipes-kernel/kernel-module-mmngr/kernel-module-mmngrbuf/0001-mmngr_drv-mmngrbuf-Take-care-of-any-migration-of-sca.patch
@@ -0,0 +1,35 @@
+From 43d2cc7496340eea3f96cb3c3cf66139e0878f3c Mon Sep 17 00:00:00 2001
+From: Hai Nguyen Pham <hai.pham.ud@renesas.com>
+Date: Tue, 26 Mar 2019 15:56:30 +0700
+Subject: [PATCH] mmngr_drv: mmngrbuf: Take care of any migration of
+ scatterlist
+
+MMNGRBUF should take care of any migration of scatterlist for
+all (shared) users of the DMA buffer. Although we only care about
+DMA addresses at the moment, this will benefit the DRM system that
+uses the buffer allocated by MMNGR directly.
+
+Initialize the scatterlist entry so that it can be happily traversed.
+
+Signed-off-by: Hai Nguyen Pham <hai.pham.ud@renesas.com>
+---
+ mmngr_drv/mmngrbuf/mmngrbuf-module/files/mmngrbuf/drv/mmngr_buf_drv.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/mmngr_drv/mmngrbuf/mmngrbuf-module/files/mmngrbuf/drv/mmngr_buf_drv.c b/mmngr_drv/mmngrbuf/mmngrbuf-module/files/mmngrbuf/drv/mmngr_buf_drv.c
+index fe3db08..d9189e9 100644
+--- a/mmngr_drv/mmngrbuf/mmngrbuf-module/files/mmngrbuf/drv/mmngr_buf_drv.c
++++ b/mmngr_drv/mmngrbuf/mmngrbuf-module/files/mmngrbuf/drv/mmngr_buf_drv.c
+@@ -256,6 +256,9 @@ static struct sg_table *dmabuf_map_dma_buf(struct dma_buf_attachment *attach,
+ return NULL;
+ }
+
++ sg_set_page(sgt->sgl, pfn_to_page(PFN_DOWN(priv->hard_addr)),
++ priv->size, offset_in_page(priv->hard_addr));
++
+ sg_dma_address(sgt->sgl) = priv->hard_addr;
+ sg_dma_len(sgt->sgl) = priv->size;
+
+--
+2.7.4
+
diff --git a/bsp/meta-renesas/meta-rcar-gen3/recipes-kernel/kernel-module-mmngr/mmngr_drv.inc b/bsp/meta-renesas/meta-rcar-gen3/recipes-kernel/kernel-module-mmngr/mmngr_drv.inc
new file mode 100644
index 00000000..77a0bced
--- /dev/null
+++ b/bsp/meta-renesas/meta-rcar-gen3/recipes-kernel/kernel-module-mmngr/mmngr_drv.inc
@@ -0,0 +1,13 @@
+LICENSE = "GPLv2 & MIT"
+LIC_FILES_CHKSUM = " \
+ file://GPL-COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://MIT-COPYING;md5=192063521ce782a445a3c9f99a8ad560 \
+"
+
+require include/rcar-gen3-modules-common.inc
+inherit module
+
+MMNGR_DRV_URI = "git://github.com/renesas-rcar/mmngr_drv.git"
+
+SRC_URI = "${MMNGR_DRV_URI};branch=rcar_gen3"
+SRCREV = "85d0042924de379307115533d7b6284333409bb3"