[meta-xilinx] [meta-xilinx-bsp][PATCH v2] recipes-multimedia/vcu/*.bb: Introduce hwcodec and required firmware, ko and software libraries for VCU
Manjukumar Harthikote Matha
MANJUKUM at xilinx.com
Fri May 25 11:40:57 PDT 2018
Applied
Thanks,
Manju
> -----Original Message-----
> From: Manjukumar Matha [mailto:manjukumar.harthikote-matha at xilinx.com]
> Sent: Monday, May 21, 2018 5:43 PM
> To: meta-xilinx at yoctoproject.org
> Cc: Devarsh Thakkar <DEVARSHT at xilinx.com>; Jeegar Patel
> <JEEGARP at xilinx.com>; Manjukumar Harthikote Matha
> <MANJUKUM at xilinx.com>
> Subject: [meta-xilinx-bsp][PATCH v2] recipes-multimedia/vcu/*.bb: Introduce
> hwcodec and required firmware, ko and software libraries for VCU
>
> From: Devarsh Thakkar <devarsht at xilinx.com>
>
> Add new recipes for the following:
>
> vcu-firmware_git.bb: Add a new recipe to fetch the required firmware binaries for
> VCU
>
> kernel-module-vcu_git.bb: Add new recipe for out-of-tree kernel module required
> for VCU decoder, encoder. This is applicable to MPSoC EV devices which support
> Video Codec Unit
>
> libvcu-xlnx_git.bb: Add a new recipe for control software libraries, test
> applications and headers for VCU
>
> libomxil-xlnx_git.bb: Add VCU hwcodec, this contain the OpenMAX libraries, test
> applications and headers for VCU
>
> Signed-off-by: Devarsh Thakkar <devarsht at xilinx.com>
> Signed-off-by: Jeegar Patel <jeegar.patel at xilinx.com>
> Tested-by: Maulik Desai <maulik.desai at xilinx.com>
> Acked-by: Varunkumar Allagadapa <varunkum at xilinx.com>
> Reviewed-by: Bhargava Sreekantappa Gayathri <bhargava.sreekantappa-
> gayathri at xilinx.com>
> Signed-off-by: Manjukumar Matha <manjukumar.harthikote-matha at xilinx.com>
> ---
> Changelog:
> v2:
> Remove _git from recipe names
> Set PV to ${XILINX_VCU_VERSION}-xilinx-
> ${XILINX_RELEASE_VERSION}+git${SRCPV}
>
>
> .../recipes-multimedia/vcu/kernel-module-vcu.bb | 27 ++++++++++++
> .../recipes-multimedia/vcu/libomxil-xlnx.bb | 49 ++++++++++++++++++++++
> .../recipes-multimedia/vcu/libvcu-xlnx.bb | 41 ++++++++++++++++++
> .../recipes-multimedia/vcu/vcu-firmware.bb | 38 +++++++++++++++++
> 4 files changed, 155 insertions(+)
> create mode 100644 meta-xilinx-bsp/recipes-multimedia/vcu/kernel-module-
> vcu.bb
> create mode 100644 meta-xilinx-bsp/recipes-multimedia/vcu/libomxil-xlnx.bb
> create mode 100644 meta-xilinx-bsp/recipes-multimedia/vcu/libvcu-xlnx.bb
> create mode 100644 meta-xilinx-bsp/recipes-multimedia/vcu/vcu-firmware.bb
>
> diff --git a/meta-xilinx-bsp/recipes-multimedia/vcu/kernel-module-vcu.bb b/meta-
> xilinx-bsp/recipes-multimedia/vcu/kernel-module-vcu.bb
> new file mode 100644
> index 0000000..06f2009
> --- /dev/null
> +++ b/meta-xilinx-bsp/recipes-multimedia/vcu/kernel-module-vcu.bb
> @@ -0,0 +1,27 @@
> +SUMMARY = "Linux kernel module for Video Code Unit"
> +DESCRIPTION = "Out-of-tree VCU decoder, encoder and common kernel modules
> provider for MPSoC EV devices"
> +SECTION = "kernel/modules"
> +LICENSE = "GPLv2"
> +LIC_FILES_CHKSUM =
> "file://LICENSE.md;md5=eb723b61539feef013de476e68b5c50a"
> +
> +XILINX_VCU_VERSION = "1.0.0"
> +XILINX_RELEASE_VERSION = "2018.1"
> +PV = "${XILINX_VCU_VERSION}-xilinx-${XILINX_RELEASE_VERSION}+git${SRCPV}"
> +
> +S = "${WORKDIR}/git"
> +
> +BRANCH ?= "master"
> +REPO ?= "git://github.com/xilinx/vcu-modules.git;protocol=https"
> +SRCREV ?= "646185390cc1850969c0fa3db59fc8f0e511922e"
> +
> +BRANCHARG = "${@['nobranch=1', 'branch=${BRANCH}'][d.getVar('BRANCH',
> True) != '']}"
> +SRC_URI = "${REPO};${BRANCHARG}"
> +
> +inherit module
> +
> +EXTRA_OEMAKE += "O=${STAGING_KERNEL_BUILDDIR}"
> +
> +RDEPENDS_${PN} = "vcu-firmware"
> +
> +COMPATIBLE_MACHINE = "^$"
> +COMPATIBLE_MACHINE_zynqmp = "zynqmp"
> diff --git a/meta-xilinx-bsp/recipes-multimedia/vcu/libomxil-xlnx.bb b/meta-xilinx-
> bsp/recipes-multimedia/vcu/libomxil-xlnx.bb
> new file mode 100644
> index 0000000..09f59f1
> --- /dev/null
> +++ b/meta-xilinx-bsp/recipes-multimedia/vcu/libomxil-xlnx.bb
> @@ -0,0 +1,49 @@
> +SUMMARY = "OpenMAX Integration layer for VCU"
> +DESCRIPTION = "OMX IL Libraries,test applications and headers for VCU"
> +LICENSE = "Proprietary"
> +LIC_FILES_CHKSUM =
> "file://LICENSE.md;md5=03a7aef7e6f6a76a59fd9b8ba450b493"
> +
> +XILINX_VCU_VERSION = "1.0.0"
> +XILINX_RELEASE_VERSION = "2018.1"
> +PV = "${XILINX_VCU_VERSION}-xilinx-${XILINX_RELEASE_VERSION}+git${SRCPV}"
> +
> +BRANCH ?= "master"
> +REPO ?= "git://github.com/xilinx/vcu-omx-il.git;protocol=https"
> +SRCREV ?= "68e385ace99ab699feaa50f24b7a78680c411f75"
> +
> +BRANCHARG = "${@['nobranch=1', 'branch=${BRANCH}'][d.getVar('BRANCH',
> True) != '']}"
> +SRC_URI = "${REPO};${BRANCHARG}"
> +
> +S = "${WORKDIR}/git"
> +
> +COMPATIBLE_MACHINE = "^$"
> +COMPATIBLE_MACHINE_zynqmp = "zynqmp"
> +
> +DEPENDS = "libvcu-xlnx"
> +RDEPENDS_${PN} = "kernel-module-vcu libvcu-xlnx"
> +
> +EXTERNAL_INCLUDE="${STAGING_INCDIR}/vcu-ctrl-sw/include"
> +
> +EXTRA_OEMAKE = " \
> + CC='${CC}' CXX='${CXX} ${CXXFLAGS}' \
> + EXTERNAL_INCLUDE='${EXTERNAL_INCLUDE}' \
> + "
> +
> +do_install() {
> + install -d ${D}${libdir}
> + install -d ${D}${includedir}/vcu-omx-il
> +
> + install -m 0644 ${S}/omx_header/*.h ${D}${includedir}/vcu-omx-il
> +
> + install -Dm 0755 ${S}/bin/omx_decoder.exe ${D}/${bindir}/omx_decoder.exe
> + install -Dm 0755 ${S}/bin/omx_encoder.exe
> + ${D}/${bindir}/omx_encoder.exe
> +
> + oe_libinstall -C ${S}/bin/ -so libOMX.allegro.core ${D}/${libdir}/
> + oe_libinstall -C ${S}/bin/ -so libOMX.allegro.video_decoder ${D}/${libdir}/
> + oe_libinstall -C ${S}/bin/ -so libOMX.allegro.video_encoder
> +${D}/${libdir}/ }
> +
> +# These libraries shouldn't get installed in world builds unless
> +something # explicitly depends upon them.
> +
> +EXCLUDE_FROM_WORLD = "1"
> diff --git a/meta-xilinx-bsp/recipes-multimedia/vcu/libvcu-xlnx.bb b/meta-xilinx-
> bsp/recipes-multimedia/vcu/libvcu-xlnx.bb
> new file mode 100644
> index 0000000..b3d68cd
> --- /dev/null
> +++ b/meta-xilinx-bsp/recipes-multimedia/vcu/libvcu-xlnx.bb
> @@ -0,0 +1,41 @@
> +SUMMARY = "Control Software for VCU"
> +DESCRIPTION = "Control software libraries, test applications and headers
> provider for VCU"
> +LICENSE = "Proprietary"
> +LIC_FILES_CHKSUM =
> "file://LICENSE.md;md5=03a7aef7e6f6a76a59fd9b8ba450b493"
> +
> +XILINX_VCU_VERSION = "1.0.0"
> +XILINX_RELEASE_VERSION = "2018.1"
> +PV = "${XILINX_VCU_VERSION}-xilinx-${XILINX_RELEASE_VERSION}+git${SRCPV}"
> +
> +BRANCH ?= "master"
> +REPO ?= "git://github.com/xilinx/vcu-ctrl-sw.git;protocol=https"
> +SRCREV = "aa4b6871346c915f28a069190afec5d30963762f"
> +
> +BRANCHARG = "${@['nobranch=1', 'branch=${BRANCH}'][d.getVar('BRANCH',
> True) != '']}"
> +SRC_URI = "${REPO};${BRANCHARG}"
> +
> +S = "${WORKDIR}/git"
> +
> +COMPATIBLE_MACHINE = "^$"
> +COMPATIBLE_MACHINE_zynqmp = "zynqmp"
> +
> +RDEPENDS_${PN} = "kernel-module-vcu"
> +
> +EXTRA_OEMAKE = "CC='${CC}' CXX='${CXX} ${CXXFLAGS}'"
> +
> +do_install() {
> + install -d ${D}${libdir}
> + install -d ${D}${includedir}/vcu-ctrl-sw/include
> +
> + install -Dm 0755 ${S}/bin/AL_Encoder.exe ${D}/${bindir}/AL_Encoder.exe
> + install -Dm 0755 ${S}/bin/AL_Decoder.exe
> + ${D}/${bindir}/AL_Decoder.exe
> +
> + oe_runmake install_headers INSTALL_HDR_PATH=${D}${includedir}/vcu-ctrl-
> sw/include
> + oe_libinstall -C ${S}/bin/ -so liballegro_decode ${D}/${libdir}/
> + oe_libinstall -C ${S}/bin/ -so liballegro_encode ${D}/${libdir}/ }
> +
> +# These libraries shouldn't get installed in world builds unless
> +something # explicitly depends upon them.
> +
> +EXCLUDE_FROM_WORLD = "1"
> diff --git a/meta-xilinx-bsp/recipes-multimedia/vcu/vcu-firmware.bb b/meta-xilinx-
> bsp/recipes-multimedia/vcu/vcu-firmware.bb
> new file mode 100644
> index 0000000..3ffe929
> --- /dev/null
> +++ b/meta-xilinx-bsp/recipes-multimedia/vcu/vcu-firmware.bb
> @@ -0,0 +1,38 @@
> +SUMMARY = "Firmware for VCU"
> +DESCRIPTION = "Firmware binaries provider for VCU"
> +LICENSE = "Proprietary"
> +LIC_FILES_CHKSUM =
> "file://LICENSE;md5=63b45903a9a50120df488435f03cf498"
> +
> +XILINX_VCU_VERSION = "1.0.0"
> +XILINX_RELEASE_VERSION = "2018.1"
> +PV = "${XILINX_VCU_VERSION}-xilinx-${XILINX_RELEASE_VERSION}+git${SRCPV}"
> +
> +S = "${WORKDIR}/git"
> +
> +BRANCH ?= "master"
> +REPO ?= "git://github.com/xilinx/vcu-firmware.git;protocol=https"
> +SRCREV ?= "7c6f282da07253c1987665846ed676059925ef40"
> +
> +BRANCHARG = "${@['nobranch=1', 'branch=${BRANCH}'][d.getVar('BRANCH',
> True) != '']}"
> +SRC_URI = "${REPO};${BRANCHARG}"
> +
> +COMPATIBLE_MACHINE = "^$"
> +COMPATIBLE_MACHINE_zynqmp = "zynqmp"
> +
> +do_install() {
> + install -Dm 0644 ${S}/${XILINX_VCU_VERSION}/lib/firmware/al5d_b.fw
> ${D}/lib/firmware/al5d_b.fw
> + install -Dm 0644 ${S}/${XILINX_VCU_VERSION}/lib/firmware/al5d.fw
> ${D}/lib/firmware/al5d.fw
> + install -Dm 0644 ${S}/${XILINX_VCU_VERSION}/lib/firmware/al5e_b.fw
> ${D}/lib/firmware/al5e_b.fw
> + install -Dm 0644 ${S}/${XILINX_VCU_VERSION}/lib/firmware/al5e.fw
> +${D}/lib/firmware/al5e.fw }
> +
> +# Inhibit warnings about files being stripped
> +INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
> +INHIBIT_PACKAGE_STRIP = "1"
> +FILES_${PN} = "/lib/firmware/*"
> +
> +# These libraries shouldn't get installed in world builds unless
> +something # explicitly depends upon them.
> +EXCLUDE_FROM_WORLD = "1"
> +
> +INSANE_SKIP_${PN} = "ldflags"
> --
> 2.7.4
More information about the meta-xilinx
mailing list