diff options
Diffstat (limited to 'bsp/meta-renesas/meta-rcar-gen3/recipes-kernel/kernel-module-mmngr')
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" |