libimxdmabuffer: Add recipe

Submitted by Carlos Rafael Giani on July 8, 2019, 7:39 p.m. | Patch ID: 162887

Details

Message ID 20190708193932.12394-1-crg7475@mailbox.org
State New
Headers show

Commit Message

Carlos Rafael Giani July 8, 2019, 7:39 p.m.
libimxdmabuffer provides an API for allocating and handling physically
contiguous buffers ("DMA buffers") on imx6, imx7, imx8 machines with the
imx-kernel. The underlying allocation can be backed by the PxP, IPU, ION,
DWL, G2D APIs.

The API is backend agnostic. The same structures and functions can be used
with the underlying PxP and IPU allocators for example. Furthermore, the
library defines a "default" allocator (which one is the "default" is
determined by the library and by the build configuration).

By using this API, libraries can use compatible types for exchanging
DMA buffers in userspace, and can also use the same API and support mx6,
mx7, and mx8 machines, without requiring platform specific code changes.

Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
---
 .../libimxdmabuffer/libimxdmabuffer_1.0.0.bb  | 41 +++++++++++++++++++
 1 file changed, 41 insertions(+)
 create mode 100644 recipes-bsp/libimxdmabuffer/libimxdmabuffer_1.0.0.bb

Patch hide | download patch | download mbox

diff --git a/recipes-bsp/libimxdmabuffer/libimxdmabuffer_1.0.0.bb b/recipes-bsp/libimxdmabuffer/libimxdmabuffer_1.0.0.bb
new file mode 100644
index 00000000..a4252a7b
--- /dev/null
+++ b/recipes-bsp/libimxdmabuffer/libimxdmabuffer_1.0.0.bb
@@ -0,0 +1,41 @@ 
+DESCRIPTION = 'Library for allocating and managing physically contiguous memory \
+               ("DMA memory" or "DMA buffers") on i.MX devices.'
+HOMEPAGE = "https://github.com/Freescale/libimxdmabuffer"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=38fa42a5a6425b26d2919b17b1527324"
+SECTION = "base"
+
+PV = "1.0.0+git${SRCPV}"
+
+SRCBRANCH ?= "master"
+SRCREV = "db17cb57d1087cf590b28487c43cb5c47bf76fe7"
+SRC_URI = "git://github.com/Freescale/libimxdmabuffer.git;branch=${SRCBRANCH}"
+
+S = "${WORKDIR}/git"
+
+inherit pkgconfig waf use-imx-headers ptest
+
+EXTRA_OECONF = "--imx-linux-headers-path=${STAGING_INCDIR_IMX} \
+                --libdir=${libdir} \
+                ${PACKAGECONFIG_CONFARGS}"
+
+PACKAGECONFIG ?= " "
+PACKAGECONFIG_append_imxgpu2d = " g2d"
+PACKAGECONFIG_append_imxipu   = " ipu"
+PACKAGECONFIG_append_imxpxp   = " pxp"
+PACKAGECONFIG_append_mx8m     = " dwl ion"
+
+HANTRO_CONF = "--hantro-headers-path=${STAGING_INCDIR}/hantro_dec --hantro-decoder-version=G2"
+
+PACKAGECONFIG[dwl] = "--with-dwl-allocator=yes ${HANTRO_CONF},--with-dwl-allocator=no,imx-vpu-hantro"
+PACKAGECONFIG[ion] = "--with-ion-allocator=yes,               --with-ion-allocator=no,"
+PACKAGECONFIG[ipu] = "--with-ipu-allocator=yes,               --with-ipu-allocator=no,"
+PACKAGECONFIG[g2d] = "--with-g2d-allocator=yes,               --with-g2d-allocator=no,virtual/libg2d"
+PACKAGECONFIG[pxp] = "--with-pxp-allocator=yes,               --with-pxp-allocator=no,"
+
+do_install_ptest () {
+    install -d ${D}${PTEST_PATH}/tests
+    install -m 0755 ${B}/test-alloc ${D}${PTEST_PATH}/tests
+}
+
+COMPATIBLE_MACHINE = "(mx6|mx7|mx8)"