All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Maupin, Chase" <chase.maupin@ti.com>
To: "Franklin S. Cooper Jr" <fcooperjr27@gmail.com>,
	"meta-ti@yoctoproject.org" <meta-ti@yoctoproject.org>
Subject: Re: [PATCH 1/2][for-comments] libgles-omap3: Add updated	Graphics SDK
Date: Wed, 10 Oct 2012 15:48:19 +0000	[thread overview]
Message-ID: <7D46E86EC0A8354091174257B2FED101592554EE@DLEE12.ent.ti.com> (raw)
In-Reply-To: <1349843304-18507-1-git-send-email-fcooper@ti.com>

> -----Original Message-----
> From: meta-ti-bounces@yoctoproject.org [mailto:meta-ti-
> bounces@yoctoproject.org] On Behalf Of Franklin S. Cooper Jr
> Sent: Tuesday, October 09, 2012 11:28 PM
> To: meta-ti@yoctoproject.org
> Subject: [meta-ti] [PATCH 1/2][for-comments] libgles-omap3: Add
> updated Graphics SDK
> 
> * Add version v4.08.00.01 of the Graphics SDK.
> * Add X11 support via DRI/DRM Xorg driver
> * Replace pvrsrvinit with pvrsrvctl (Imagination Technologies
> based change)
> 
> Signed-off-by: Franklin S. Cooper Jr <fcooper@ti.com>
> ---
>  .../libgles/libgles-omap3-4.08.00.01/rc.pvr        |  124
> ++++++++++++++++++
>  .../libgles/libgles-omap3-4.08.00.01/rc_dri.pvr    |  136
> ++++++++++++++++++++
>  .../libgles/libgles-omap3_4.08.00.01.bb            |   74
> +++++++++++
>  3 files changed, 334 insertions(+), 0 deletions(-)
>  create mode 100755 recipes-graphics/libgles/libgles-omap3-
> 4.08.00.01/rc.pvr
>  create mode 100755 recipes-graphics/libgles/libgles-omap3-
> 4.08.00.01/rc_dri.pvr
>  create mode 100644 recipes-graphics/libgles/libgles-
> omap3_4.08.00.01.bb
> 
> diff --git a/recipes-graphics/libgles/libgles-omap3-
> 4.08.00.01/rc.pvr b/recipes-graphics/libgles/libgles-omap3-
> 4.08.00.01/rc.pvr
> new file mode 100755
> index 0000000..7b5cefa
> --- /dev/null
> +++ b/recipes-graphics/libgles/libgles-omap3-4.08.00.01/rc.pvr
> @@ -0,0 +1,124 @@

Can you use --find-copies-harder to find similar files?

> +#!/bin/sh
> +PATH=$PATH:/usr/sbin
> +
> +# Check if an fb device is available.  If not then just go ahead
> and
> +# exit because we have no display.
> +fbset > /dev/null 2>&1
> +if [ "$?" == "1" ]
> +then
> +    # looks like there is no display, so let's exit
> +    exit 0
> +fi
> +
> +BITSPERPIXEL="$(fbset | grep geom | awk '{print $6}')"
> +YRES="$(fbset | grep geom | awk '{print $3}')"
> +
> +CPUTYPE="$(cputype)"
> +
> +if [ "$1" = "" ]; then
> +	echo PVR-INIT: Please use start, stop, or restart.
> +	exit 1
> +fi
> +
> +if [ "$1" = "stop" -o  "$1" = "restart" ]; then
> +	echo Stopping PVR
> +	rmmod bufferclass_ti
> +	rmmod omaplfb 2>/dev/null
> +	rmmod pvrsrvkm 2>/dev/null
> +fi
> +
> +if [ "$1" = "stop" ]; then
> +	exit 0
> +fi
> +
> +# Set RGBA ordering to something the drivers like
> +if [ "$BITSPERPIXEL" = "32" ] ; then
> +	fbset -rgba 8/16,8/8,8/0,8/24
> +fi
> +
> +# Try to enable triple buffering when there's enough VRAM
> +fbset -vyres $(expr $YRES \* 3)
> +
> +sgxprepare () {
> +	echo Starting PVR
> +	insmod $(busybox find /lib/modules/$(uname -r) -name
> "pvrsrvkm.ko")
> +
> +    if [ "$?" != "0" ]
> +    then
> +        echo "Could not find pvrsrvkm driver"
> +        exit 1
> +    fi
> +
> +	modprobe omaplfb
> +	modprobe bufferclass_ti
> +
> +	pvr_maj=`grep "pvrsrvkm$" /proc/devices | cut -b1,2,3`
> +        bc_maj=`grep "bc" /proc/devices | cut -b1,2,3`
> +
> +	if [ -e /dev/pvrsrvkm ] ; then
> +		rm -f /dev/pvrsrvkm
> +	fi
> +
> +	mknod /dev/pvrsrvkm c $pvr_maj 0
> +	chmod 666 /dev/pvrsrvkm
> +
> +	touch /etc/powervr-esrev
> +
> +	SAVED_ESREVISION="$(cat /etc/powervr-esrev)"
> +}
> +
> +sgxfinish () {
> +	# Fix up a bug in opkg
> +	if [ $(readlink /usr/lib/libsrv_um.so) != $(readlink
> /usr/lib/libsrv_um.so.1) ] ; then
> +		cd /usr/lib
> +		ln -sf $(readlink /usr/lib/libsrv_um.so.1)
> libsrv_um.so
> +	fi
> +
> +	if [ "${ES_REVISION}" != "${SAVED_ESREVISION}" ] ; then
> +		echo -n "Starting SGX fixup for"
> +		echo " ES${ES_REVISION}.x"
> +		cp -a /usr/lib/ES${ES_REVISION}.0/* /usr/lib
> +		cp -a /usr/bin/ES${ES_REVISION}.0/* /usr/bin
> +		echo "${ES_REVISION}" > /etc/powervr-esrev
> +	fi
> +
> +	if ! /usr/bin/pvrsrvctl --start --no-module; then return;
> fi
> +}
> +
> +case $CPUTYPE in
> +"OMAP3530")
> +	sgxprepare
> +
> +	devmem2 0x48004B48 w 0x2 > /dev/null
> +	devmem2 0x48004B10 w 0x1 > /dev/null
> +	devmem2 0x48004B00 w 0x2 > /dev/null
> +
> +	ES_REVISION="$(devmem2 0x50000014 | sed -e s:0x00010205:5:
> -e s:0x00010201:3: -e s:0x00010003:2: | tail -n1 | awk -F': '
> '{print $2}')"
> +
> +	sgxfinish
> +	;;
> +"TI33XX")
> +	sgxprepare
> +
> +	devmem2 0x44e01104 w 0x0 > /dev/null
> +	devmem2 0x44e00904 w 0x2 > /dev/null
> +
> +	ES_REVISION="$(devmem2 0x56000014 | sed -e s:0x00010205:8:
> | tail -n1 | awk -F': ' '{print $2}')"
> +
> +	sgxfinish
> +	;;
> +"TI816x")
> +	sgxprepare
> +
> +	devmem2 0x48180F04 w 0x0 > /dev/null
> +	devmem2 0x48180900 w 0x2 > /dev/null
> +	devmem2 0x48180920 w 0x2 > /dev/null
> +
> +	ES_REVISION="$(devmem2 0x56000014 | sed -e s:0x00010205:6:
> -e s:0x00010201:3: -e s:0x00010003:2: | tail -n1 | awk -F': '
> '{print $2}')"
> +
> +	sgxfinish
> +	;;
> +*)
> +	echo No SGX hardware, not starting PVR
> +	;;
> +esac
> diff --git a/recipes-graphics/libgles/libgles-omap3-
> 4.08.00.01/rc_dri.pvr b/recipes-graphics/libgles/libgles-omap3-
> 4.08.00.01/rc_dri.pvr
> new file mode 100755
> index 0000000..dd1e942
> --- /dev/null
> +++ b/recipes-graphics/libgles/libgles-omap3-
> 4.08.00.01/rc_dri.pvr
> @@ -0,0 +1,136 @@
> +#!/bin/sh
> +PATH=$PATH:/usr/sbin
> +
> +# Check if an fb device is available.  If not then just go ahead
> and
> +# exit because we have no display.
> +fbset > /dev/null 2>&1
> +if [ "$?" == "1" ]
> +then
> +    # looks like there is no display, so let's exit
> +    exit 0
> +fi
> +
> +BITSPERPIXEL="$(fbset | grep geom | awk '{print $6}')"
> +YRES="$(fbset | grep geom | awk '{print $3}')"
> +
> +CPUTYPE="$(cputype)"
> +
> +if [ "$1" = "" ]; then
> +	echo PVR-INIT: Please use start, stop, or restart.
> +	exit 1
> +fi
> +
> +if [ "$1" = "stop" -o  "$1" = "restart" ]; then
> +	echo Stopping PVR
> +
> +	# Stop the X Server.
> +	#
> +	[ -f /tmp/.X0-lock ] && read XPID < /tmp/.X0-lock && [ -n
> "$XPID" ] && kill $XPID && while [ -e /proc/$XPID ] ; do sleep 1;
> done
> +
> +	rmmod bufferclass_ti
> +	rmmod pvrsrvkm 2>/dev/null
> +    rmmod drm 2>/dev/null
> +fi
> +
> +if [ "$1" = "stop" ]; then
> +	exit 0
> +fi
> +
> +# Set RGBA ordering to something the drivers like
> +if [ "$BITSPERPIXEL" = "32" ] ; then
> +	fbset -rgba 8/16,8/8,8/0,8/24
> +fi
> +
> +# Try to enable triple buffering when there's enough VRAM
> +fbset -vyres $(expr $YRES \* 3)
> +
> +sgxprepare () {
> +	echo Starting PVR
> +
> +	# Start the X Server.
> +	# The X Server will load the PVR Services module.
> +	#
> +	/usr/local/XSGX/bin/X -verbose -config
> /usr/local/XSGX/etc/xorg.conf &
> +
> +	modprobe drm
> +
> +	insmod $(busybox find /lib/modules/$(uname -r) -name
> "pvrsrvkm.ko")
> +
> +    if [ "$?" != "0" ]
> +    then
> +        echo "Could not find pvrsrvkm driver"
> +        exit 1
> +    fi
> +
> +	modprobe bufferclass_ti
> +
> +	pvr_maj=`grep "pvrsrvkm$" /proc/devices | cut -b1,2,3`
> +        bc_maj=`grep "bc" /proc/devices | cut -b1,2,3`
> +
> +	if [ -e /dev/pvrsrvkm ] ; then
> +		rm -f /dev/pvrsrvkm
> +	fi
> +
> +	mknod /dev/pvrsrvkm c $pvr_maj 0
> +	chmod 666 /dev/pvrsrvkm
> +
> +	touch /etc/powervr-esrev
> +
> +	SAVED_ESREVISION="$(cat /etc/powervr-esrev)"
> +}
> +
> +sgxfinish () {
> +	# Fix up a bug in opkg
> +	if [ $(readlink /usr/lib/libsrv_um.so) != $(readlink
> /usr/lib/libsrv_um.so.1) ] ; then
> +		cd /usr/lib
> +		ln -sf $(readlink /usr/lib/libsrv_um.so.1)
> libsrv_um.so
> +	fi
> +
> +	if [ "${ES_REVISION}" != "${SAVED_ESREVISION}" ] ; then
> +		echo -n "Starting SGX fixup for"
> +		echo " ES${ES_REVISION}.x"
> +		cp -a /usr/lib/ES${ES_REVISION}.0/* /usr/lib
> +		cp -a /usr/bin/ES${ES_REVISION}.0/* /usr/bin
> +		echo "${ES_REVISION}" > /etc/powervr-esrev
> +	fi
> +
> +	if ! /usr/bin/pvrsrvctl --start --no-module; then return;
> fi
> +}
> +
> +case $CPUTYPE in
> +"OMAP3530")
> +	sgxprepare
> +
> +	devmem2 0x48004B48 w 0x2 > /dev/null
> +	devmem2 0x48004B10 w 0x1 > /dev/null
> +	devmem2 0x48004B00 w 0x2 > /dev/null
> +
> +	ES_REVISION="$(devmem2 0x50000014 | sed -e s:0x00010205:5:
> -e s:0x00010201:3: -e s:0x00010003:2: | tail -n1 | awk -F': '
> '{print $2}')"
> +
> +	sgxfinish
> +	;;
> +"TI33XX")
> +	sgxprepare
> +
> +	devmem2 0x44e01104 w 0x0 > /dev/null
> +	devmem2 0x44e00904 w 0x2 > /dev/null
> +
> +	ES_REVISION="$(devmem2 0x56000014 | sed -e s:0x00010205:8:
> | tail -n1 | awk -F': ' '{print $2}')"
> +
> +	sgxfinish
> +	;;
> +"TI816x")
> +	sgxprepare
> +
> +	devmem2 0x48180F04 w 0x0 > /dev/null
> +	devmem2 0x48180900 w 0x2 > /dev/null
> +	devmem2 0x48180920 w 0x2 > /dev/null
> +
> +	ES_REVISION="$(devmem2 0x56000014 | sed -e s:0x00010205:6:
> -e s:0x00010201:3: -e s:0x00010003:2: | tail -n1 | awk -F': '
> '{print $2}')"
> +
> +	sgxfinish
> +	;;
> +*)
> +	echo No SGX hardware, not starting PVR
> +	;;
> +esac
> diff --git a/recipes-graphics/libgles/libgles-omap3_4.08.00.01.bb
> b/recipes-graphics/libgles/libgles-omap3_4.08.00.01.bb
> new file mode 100644
> index 0000000..5a82e68
> --- /dev/null
> +++ b/recipes-graphics/libgles/libgles-omap3_4.08.00.01.bb
> @@ -0,0 +1,74 @@
> +require libgles-omap3.inc
> +
> +DEFAULT_PREFERENCE = "-1"
> +
> +BINLOCATION_omap3  = "${S}/gfx_rel_es3.x"
> +BINLOCATION_ti816x = "${S}/gfx_rel_es6.x"
> +BINLOCATION_ti814x = "${S}/gfx_rel_es6.x"
> +BINLOCATION_ti33x = "${S}/gfx_rel_es8.x"
> +
> +PLATFORM = "LinuxARMV7"
> +PVR_INIT = "pvrsrvctl"
> +
> +# download required binary distribution from:
> +# http://software-
> dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/gfxsdk/latest/
> index_FDS.html
> +# see libgles-omap3.inc for detailed installation instructions
> +gedit
> +SGXPV = "4_08_00_01"
> +IMGPV = "1.7.867897"
> +BINFILE = "Graphics_SDK_setuplinux_${SGXPV}.bin"
> +TI_BIN_UNPK_WDEXT := "/Graphics_SDK_${SGXPV}"
> +SRC_URI = "<ti-internal-
> url>/Graphics_SDK_setuplinux_4_08_00_01.bin \

This URL will be updated when the graphics SDK 4.08.00.01 pushes external correct?  Go ahead and put the real external URL in place.

> +           file://cputype \
> +           file://rc.pvr \
> +           file://rc_dri.pvr \
> +           file://sample.desktop \
> +           file://99-bufferclass.rules  \
> +"
> +
> +SRC_URI[md5sum] = "95b8f02923d6ea52ea104fa3d93ce1f0"
> +SRC_URI[sha256sum] =
> "1db2d46ec3c6a97db146357841e02a95a15be658c2297dc571e6e61b32238561
> "
> +
> +S = "${WORKDIR}/Graphics_SDK_${SGXPV}"
> +
> +LIBGLESWINDOWSYSTEM ?= "${@base_contains('DISTRO_FEATURES',
> 'x11',"libpvrPVR2D_DRIWSEGL.so" ,"libpvrPVR2D_FRONTWSEGL.so.1",
> d)}"

Why not just set this in the .inc file?

> +
> +do_configure_append() {
> +
> +	# Change PVR server's user mode library to point to DRI
> +	for drifile in $(find ${S} -name "libsrv_um_dri.so"); do
> +	if [ "$drifile" != "" ]
> +	then
> +		dir=$(dirname ${drifile})
> +		if [ "$SUPPORT_XORG" = "1" ]
> +		then
> +		    mv ${dir}/libsrv_um_dri.so ${dir}/libsrv_um.so
> +		else
> +		    rm -rf ${dir}/libsrv_um_dri.so
> +		fi
> +	fi
> +
> +	done
> +}

Any reason this couldn't be done in the base .inc file?

> +
> +do_install_append() {
> +
> +    # In this version of the graphics SDK the following
> directories do not exist:
> +    #
> /GFX_Linux_SDK/OGLES/SDKPackage/Builds/OGLES/Include/pvr2d.h
> (doesn't exist)
> +    #
> /GFX_Linux_SDK/OGLES/SDKPackage/Builds/OGLES/Include/GLES/egltype
> s.h (doesn't exist)
> +    # Therefore, need to copy these files manually at the only
> location that they do exist
> +    cp -pPr ${S}/include/pvr2d/*.h ${D}${includedir} || true
> +    cp -pPr ${S}/include/OGLES/GLES ${D}${includedir}/ || true

If these are required then shouldn't the return of the copy actually be checked?  And couldn't this be put in the .inc file as well to check if these files exist and if so install them?

> +
> +    rm ${D}${sysconfdir}/init.d/pvr-init
> +
> +    if [ "$SUPPORT_XORG" = "1" ]; then
> +	    cp -pP ${WORKDIR}/rc_dri.pvr
> ${D}${sysconfdir}/init.d/pvr-init
> +	else
> +	    cp -pP ${WORKDIR}/rc.pvr ${D}${sysconfdir}/init.d/pvr-
> init
> +	fi
> +
> +}
> +
> +RRECOMMENDS_${PN}-x11demos = "${PN}-driwsegl"
> +RRECOMMENDS_${PN}-x11trainingcourses = "${PN}-driwsegl"
> --
> 1.7.0.4
> 
> _______________________________________________
> meta-ti mailing list
> meta-ti@yoctoproject.org
> https://lists.yoctoproject.org/listinfo/meta-ti


  parent reply	other threads:[~2012-10-10 15:48 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-10  4:28 [PATCH 1/2][for-comments] libgles-omap3: Add updated Graphics SDK Franklin S. Cooper Jr
2012-10-10  4:28 ` [PATCH 2/2][for-comments] omap3-sgx-modules: Add v4.08.00.01 of the SGX modules Franklin S. Cooper Jr
2012-10-10 15:55   ` Maupin, Chase
2012-10-10 16:22     ` Cooper Jr., Franklin
2012-10-10 19:29       ` Maupin, Chase
2012-10-10 22:16         ` Denys Dmytriyenko
2012-10-10  4:39 ` [PATCH 1/2][for-comments] libgles-omap3: Add updated Graphics SDK Cooper Jr., Franklin
2012-10-10 15:48 ` Maupin, Chase [this message]
2012-10-10 15:52   ` Denys Dmytriyenko
2012-10-10 16:01     ` Maupin, Chase

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7D46E86EC0A8354091174257B2FED101592554EE@DLEE12.ent.ti.com \
    --to=chase.maupin@ti.com \
    --cc=fcooperjr27@gmail.com \
    --cc=meta-ti@yoctoproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.