[Buildroot] [PATCH 08/12] package/freescale-imx/isp-imx: add package
Arnout Vandecappelle
arnout at mind.be
Wed Oct 13 19:37:16 UTC 2021
On 06/10/2021 22:41, Chris Dimich wrote:
> i.MX Verisilicon Software ISP.
Same as for vvcam, I wonder if it makes sense to add a symbol for this in
freescal-imx/Config.in
>
> Signed-off-by: Chris Dimich <chris.dimich at boundarydevices.com>
> ---
> package/freescale-imx/Config.in | 1 +
> .../isp-imx/0001-run.sh-fix-bashisms.patch | 201 ++++++++++++++++++
> ...rt_isp.sh-refine-device-tree-parsing.patch | 28 +++
> package/freescale-imx/isp-imx/Config.in | 15 ++
> package/freescale-imx/isp-imx/S80isp | 18 ++
> package/freescale-imx/isp-imx/isp-imx.hash | 4 +
> package/freescale-imx/isp-imx/isp-imx.mk | 65 ++++++
> 7 files changed, 332 insertions(+)
> create mode 100644 package/freescale-imx/isp-imx/0001-run.sh-fix-bashisms.patch
> create mode 100644 package/freescale-imx/isp-imx/0001-start_isp.sh-refine-device-tree-parsing.patch
> create mode 100644 package/freescale-imx/isp-imx/Config.in
> create mode 100755 package/freescale-imx/isp-imx/S80isp
> create mode 100644 package/freescale-imx/isp-imx/isp-imx.hash
> create mode 100644 package/freescale-imx/isp-imx/isp-imx.mk
>
> diff --git a/package/freescale-imx/Config.in b/package/freescale-imx/Config.in
> index 5f02d24909..0f0f5c50fd 100644
> --- a/package/freescale-imx/Config.in
> +++ b/package/freescale-imx/Config.in
> @@ -117,6 +117,7 @@ source "package/freescale-imx/imx-sc-firmware/Config.in"
> source "package/freescale-imx/imx-seco/Config.in"
> source "package/freescale-imx/imx-vpu-hantro-vc/Config.in"
> source "package/freescale-imx/isp-vvcam-module/Config.in"
> +source "package/freescale-imx/isp-imx/Config.in"
> if (BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX51 || BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX53)
> source "package/freescale-imx/gpu-amd-bin-mx51/Config.in"
> source "package/freescale-imx/libz160/Config.in"
> diff --git a/package/freescale-imx/isp-imx/0001-run.sh-fix-bashisms.patch b/package/freescale-imx/isp-imx/0001-run.sh-fix-bashisms.patch
> new file mode 100644
> index 0000000000..cbbc31906c
> --- /dev/null
> +++ b/package/freescale-imx/isp-imx/0001-run.sh-fix-bashisms.patch
> @@ -0,0 +1,201 @@
> +From 7c5c07a24c9e77d69002c6a9aefd1cc5a7a0615f Mon Sep 17 00:00:00 2001
> +From: Chris Dimich <Chris.Dimich at boundarydevices.com>
> +Date: Tue, 28 Sep 2021 17:27:33 -0700
> +Subject: [PATCH 1/1] run.sh: fix bashisms
Again: remove the 1/1 part.
The patch needs your signed-off-by as well.
Please send the patch upstream, and add something like
Upstream: <URL>
If there's no upstream to send to (likely, in this case), add something like:
Upstream: nowhere to send it to
[snip]
> diff --git a/package/freescale-imx/isp-imx/Config.in b/package/freescale-imx/isp-imx/Config.in
> new file mode 100644
> index 0000000000..04d17284d4
> --- /dev/null
> +++ b/package/freescale-imx/isp-imx/Config.in
> @@ -0,0 +1,15 @@
> +comment "isp-imx requires aarch64"
> + depends on !BR2_aarch64
> +
> +comment "isp-imx requires g2d library"
> + depends on !BR2_PACKAGE_IMX_GPU_G2D
> +
> +config BR2_PACKAGE_ISP_IMX
> + bool "isp-imx"
> + depends on BR2_aarch64 # Only relevant for i.MX8
> + depends on BR2_PACKAGE_IMX_GPU_G2D
Instead of depending on g2d, you should select it (and copy its dependencies,
with a comment behind them to show where they come from).
> + select BR2_PACKAGE_LIBDRM
> + select BR2_PACKAGE_LINUX_IMX_HEADERS
> + select BR2_PACKAGE_PYTHON3
> + help
> + i.MX Verisilicon Software ISP.
> diff --git a/package/freescale-imx/isp-imx/S80isp b/package/freescale-imx/isp-imx/S80isp
> new file mode 100755
> index 0000000000..a41028fde8
> --- /dev/null
> +++ b/package/freescale-imx/isp-imx/S80isp
> @@ -0,0 +1,18 @@
> +#! /bin/sh
> +
> +case "$1" in
> + start|"")
> + /bin/sh /opt/imx8-isp/bin/start_isp.sh &
> + ;;
> + stop)
Is there really no stop?
> + ;;
> + restart|reload)
> + $0 stop
> + sleep 1
> + $0 start
> + ;;
> + *)
> + echo "Usage: $0 {start|stop}" >&2
> + exit 1
> + ;;
> +esac
> diff --git a/package/freescale-imx/isp-imx/isp-imx.hash b/package/freescale-imx/isp-imx/isp-imx.hash
> new file mode 100644
> index 0000000000..03bc61347f
> --- /dev/null
> +++ b/package/freescale-imx/isp-imx/isp-imx.hash
> @@ -0,0 +1,4 @@
> +# Locally computed:
> +sha256 e775975684aab4211f0bf8c5e2c6604ba46b83c5586937000675e044a50d77b8 isp-imx-4.2.2.13.0.bin
> +sha256 ea58636bf34f589048fcd46e38497c47229fde8498df086ff5fb52f9ef8e15ee COPYING
> +sha256 50099e283cfd307f84f159aeb1a6f462351320273dbcdb80d7f2c9db0494b71c EULA
> diff --git a/package/freescale-imx/isp-imx/isp-imx.mk b/package/freescale-imx/isp-imx/isp-imx.mk
> new file mode 100644
> index 0000000000..a05b7749b1
> --- /dev/null
> +++ b/package/freescale-imx/isp-imx/isp-imx.mk
> @@ -0,0 +1,65 @@
> +################################################################################
> +#
> +# isp-imx
> +#
> +################################################################################
> +
> +ISP_IMX_VERSION = 4.2.2.13.0
> +ISP_IMX_SITE = $(FREESCALE_IMX_SITE)
> +ISP_IMX_SOURCE = isp-imx-$(ISP_IMX_VERSION).bin
> +ISP_IMX_DEPENDENCIES = linux linux-imx-headers python3 libdrm imx-gpu-g2d
> +ISP_IMX_LICENSE = NXP Semiconductor Software License Agreement
> +ISP_IMX_LICENSE_FILES = EULA COPYING
> +ISP_IMX_REDISTRIBUTE = NO
> +ISP_IMX_SUBDIR = appshell
> +
> +ISP_IMX_CONF_OPTS += \
> + -DCMAKE_BUILD_TYPE=release \
> + -DISP_VERSION=ISP8000NANO_V1802 \
> + -DPLATFORM=ARM64 \
> + -DAPPMODE=V4L2 \
> + -DQTLESS=1 \
> + -DFULL_SRC_COMPILE=1 \
> + -DWITH_DRM=1 \
> + -DWITH_DWE=1 \
> + -DSERVER_LESS=1 \
> + -DSUBDEV_V4L2=1 \
> + -DENABLE_IRQ=1 \
> + -DPARTITION_BUILD=0 \
> + -D3A_SRC_BUILD=0 \
> + -Wno-dev
> +
> +ISP_IMX_CONF_ENV += SDKTARGETSYSROOT=$(STAGING_DIR)
> +
> +define ISP_IMX_EXTRACT_CMDS
> + $(call FREESCALE_IMX_EXTRACT_HELPER,$(ISP_IMX_DL_DIR)/$(ISP_IMX_SOURCE))
> +endef
> +
> +define ISP_IMX_INSTALL_TARGET_CMDS
A CMake package usually has a working install command. If it doesn't work in
this case, please explain in the commit log why not.
If the cmake install just misses a few files, then you can install those in a
post-install hook.
> + mkdir -p $(TARGET_DIR)/opt/imx8-isp/bin
We don't install stuff in /opt. In fact, we go out of our way to patch scripts
etc. so we can install things in /usr. There could be an exception for this
package, but then there needs to be a *very* good explanation in the commit message.
Regards,
Arnout
> + cp -r $(@D)/$(ISP_IMX_SUBDIR)/generated/release/bin/*2775* $(TARGET_DIR)/opt/imx8-isp/bin
> + cp -r $(@D)/$(ISP_IMX_SUBDIR)/generated/release/bin/isp_media_server $(TARGET_DIR)/opt/imx8-isp/bin
> + cp -r $(@D)/$(ISP_IMX_SUBDIR)/generated/release/bin/*_test $(TARGET_DIR)/opt/imx8-isp/bin
> + cp -r $(@D)/$(ISP_IMX_SUBDIR)/generated/release/bin/vvext $(TARGET_DIR)/opt/imx8-isp/bin
> + cp -r $(@D)/dewarp/dewarp_config $(TARGET_DIR)/opt/imx8-isp/bin
> + cp -r $(@D)/mediacontrol/case/ $(TARGET_DIR)/opt/imx8-isp/bin
> + cp -r $(@D)/$(ISP_IMX_SUBDIR)/generated/release/lib/*.so* $(TARGET_DIR)/usr/lib/
> +
> + cp $(@D)/imx/run.sh $(TARGET_DIR)/opt/imx8-isp/bin
> + cp $(@D)/imx/start_isp.sh $(TARGET_DIR)/opt/imx8-isp/bin
> +
> + chmod +x $(TARGET_DIR)/opt/imx8-isp/bin/run.sh
> + chmod +x $(TARGET_DIR)/opt/imx8-isp/bin/start_isp.sh
> +endef
> +
> +define ISP_IMX_INSTALL_INIT_SYSTEMD
> + $(INSTALL) -D -m 644 $(@D)/imx/imx8-isp.service \
> + $(TARGET_DIR)/usr/lib/systemd/system/imx8-isp.service
> +endef
> +
> +define ISP_IMX_INSTALL_INIT_SYSV
> + $(INSTALL) -D -m 755 package/freescale-imx/isp-imx/S80isp \
> + $(TARGET_DIR)/etc/init.d/S80isp
> +endef
> +
> +$(eval $(cmake-package))
>
More information about the buildroot
mailing list