@@ -43,6 +43,7 @@ config BR2_PACKAGE_FREESCALE_IMX_PLATFORM
default "IMX6Q" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q
source "package/freescale-imx/imx-lib/Config.in"
+source "package/freescale-imx/imx-vpu/Config.in"
source "package/freescale-imx/firmware-imx/Config.in"
if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q
source "package/freescale-imx/gpu-viv-bin-mx6q/Config.in"
new file mode 100644
@@ -0,0 +1,16 @@
+comment "imx-vpu needs an imx-specific Linux kernel to be built"
+ depends on BR2_arm && !BR2_LINUX_KERNEL
+
+config BR2_PACKAGE_IMX_VPU
+ bool "imx-vpu"
+ depends on BR2_LINUX_KERNEL
+ depends on BR2_arm # Only relevant for i.MX
+ help
+ Library of userspace helpers specific for the Freescale i.MX
+ platform. It wraps the kernel interfaces for the i.MX platform
+ Video Processing Unit (VPU) driver. It requires a kernel that
+ includes the i.MX specific headers to be built.
+
+ This library is provided by Freescale as-is and doesn't have
+ an upstream.
+
new file mode 100644
@@ -0,0 +1,53 @@
+################################################################################
+#
+# imx-vpu
+#
+################################################################################
+
+IMX_VPU_VERSION = $(FREESCALE_IMX_VERSION)
+IMX_VPU_SITE = $(FREESCALE_IMX_SITE)
+IMX_VPU_LICENSE = Freescale License
+IMX_VPU_LICENSE_FILES = EULA
+IMX_VPU_SOURCE = imx-vpu-$(IMX_VPU_VERSION).bin
+
+IMX_VPU_INSTALL_STAGING = YES
+
+# imx-vpu needs access to imx-specific kernel headers
+IMX_VPU_DEPENDENCIES += linux
+IMX_VPU_MAKE_ENV = \
+ $(TARGET_MAKE_ENV) \
+ $(TARGET_CONFIGURE_OPTS) \
+ CROSS_COMPILE="$(CCACHE) $(TARGET_CROSS)" \
+ PLATFORM=$(BR2_PACKAGE_FREESCALE_IMX_PLATFORM) \
+ INCLUDE="-idirafter $(LINUX_DIR)/include"
+
+# The archive is a shell-self-extractor of a bzipped tar. It happens
+# to extract in the correct directory (imx-vpu-x.y.z)
+# The --force makes sure it doesn't fail if the source dir already exists.
+# The --auto-accept skips the license check - not needed for us
+# because we have legal-info
+# Since there's a EULA in the bin file, extract it to imx-vpu-x.y.z/EULA
+#
+define IMX_VPU_EXTRACT_CMDS
+ awk 'BEGIN { start=0; } \
+ /^EOEULA/ { start = 0; } \
+ { if (start) print; } \
+ /<<EOEULA/ { start=1; }'\
+ $(DL_DIR)/$(IMX_VPU_SOURCE) > $(@D)/EULA
+ cd $(BUILD_DIR); \
+ sh $(DL_DIR)/$(IMX_VPU_SOURCE) --force --auto-accept
+endef
+
+define IMX_VPU_BUILD_CMDS
+ $(IMX_VPU_MAKE_ENV) $(MAKE1) -C $(@D)
+endef
+
+define IMX_VPU_INSTALL_STAGING_CMDS
+ $(IMX_VPU_MAKE_ENV) $(MAKE1) -C $(@D) DEST_DIR=$(STAGING_DIR) install
+endef
+
+define IMX_VPU_INSTALL_TARGET_CMDS
+ $(IMX_VPU_MAKE_ENV) $(MAKE1) -C $(@D) DEST_DIR=$(TARGET_DIR) install
+endef
+
+$(eval $(generic-package))
as of 3.10.17-1.0.0 release, VPU code is now in its own package. Signed-off-by: Gary Bisson <bisson.gary@gmail.com> --- package/freescale-imx/Config.in | 1 + package/freescale-imx/imx-vpu/Config.in | 16 ++++++++++ package/freescale-imx/imx-vpu/imx-vpu.mk | 53 ++++++++++++++++++++++++++++++++ 3 files changed, 70 insertions(+) create mode 100644 package/freescale-imx/imx-vpu/Config.in create mode 100644 package/freescale-imx/imx-vpu/imx-vpu.mk