[meta-ti] [PATCH 2/2] libgles-omap3: Add version 4.08.00.02 of the Graphics SDK

Denys Dmytriyenko denys at ti.com
Mon Apr 1 12:40:58 PDT 2013


I haven't had a chance to try them out myself, considering all the warnings 
from Franklin...


On Mon, Apr 01, 2013 at 06:25:06PM +0000, Maupin, Chase wrote:
> Ping on this patch
> 
> > -----Original Message-----
> > From: meta-ti-bounces at yoctoproject.org [mailto:meta-ti-
> > bounces at yoctoproject.org] On Behalf Of Cooper Jr., Franklin
> > Sent: Tuesday, March 19, 2013 9:11 PM
> > To: meta-ti at yoctoproject.org
> > Subject: [meta-ti] [PATCH 2/2] libgles-omap3: Add version
> > 4.08.00.02 of the Graphics SDK
> > 
> > ---
> >  .../libgles/libgles-omap3-4.08.00.02/rc.pvr        |  124
> > ++++++++++++++++++
> >  .../libgles/libgles-omap3-4.08.00.02/rc_dri.pvr    |  136
> > ++++++++++++++++++++
> >  .../libgles/libgles-omap3_4.08.00.02.bb            |   77
> > +++++++++++
> >  3 files changed, 337 insertions(+), 0 deletions(-)
> >  create mode 100755 recipes-graphics/libgles/libgles-omap3-
> > 4.08.00.02/rc.pvr
> >  create mode 100755 recipes-graphics/libgles/libgles-omap3-
> > 4.08.00.02/rc_dri.pvr
> >  create mode 100644 recipes-graphics/libgles/libgles-
> > omap3_4.08.00.02.bb
> > 
> > diff --git a/recipes-graphics/libgles/libgles-omap3-
> > 4.08.00.02/rc.pvr b/recipes-graphics/libgles/libgles-omap3-
> > 4.08.00.02/rc.pvr
> > new file mode 100755
> > index 0000000..7b5cefa
> > --- /dev/null
> > +++ b/recipes-graphics/libgles/libgles-omap3-4.08.00.02/rc.pvr
> > @@ -0,0 +1,124 @@
> > +#!/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.02/rc_dri.pvr b/recipes-graphics/libgles/libgles-omap3-
> > 4.08.00.02/rc_dri.pvr
> > new file mode 100755
> > index 0000000..dd1e942
> > --- /dev/null
> > +++ b/recipes-graphics/libgles/libgles-omap3-
> > 4.08.00.02/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.02.bb
> > b/recipes-graphics/libgles/libgles-omap3_4.08.00.02.bb
> > new file mode 100644
> > index 0000000..98cfcc5
> > --- /dev/null
> > +++ b/recipes-graphics/libgles/libgles-omap3_4.08.00.02.bb
> > @@ -0,0 +1,77 @@
> > +require libgles-omap3.inc
> > +
> > +LICENSE = "TSPA"
> > +
> > +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
> > +
> > +SGXPV = "4_08_00_02"
> > +IMGPV = "1.9.2188537"
> > +BINFILE = "Graphics_SDK_setuplinux_${SGXPV}_minimal_demos.bin"
> > +TI_BIN_UNPK_WDEXT := "/Graphics_SDK_${SGXPV}"
> > +SRC_URI = "http://software-
> > dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/gfxsdk/${SGXPV
> > }/exports/${BINFILE} \
> > +           file://cputype \
> > +           file://rc.pvr \
> > +           file://rc_dri.pvr \
> > +           file://sample.desktop \
> > +           file://99-bufferclass.rules  \
> > +"
> > +
> > +SRC_URI[md5sum] = "0efa3a38266e6f41f8cc4fad0187f0d6"
> > +SRC_URI[sha256sum] =
> > "c732044b515a598e1fab661b7463aa9c53d4fa37f4980dfa85cd02b7468d0cd9
> > "
> > +
> > +S = "${WORKDIR}/Graphics_SDK_${SGXPV}"
> > +
> > +LIBGLESWINDOWSYSTEM ?= "${@base_contains('DISTRO_FEATURES',
> > 'x11',"libpvrPVR2D_DRIWSEGL.so" ,"libpvrPVR2D_FRONTWSEGL.so.1",
> > d)}"
> > +
> > +
> > +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
> > +}
> > +
> > +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}
> > +    cp -pPr ${S}/include/OGLES/GLES ${D}${includedir}/
> > +
> > +    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 at yoctoproject.org
> > https://lists.yoctoproject.org/listinfo/meta-ti
> _______________________________________________
> meta-ti mailing list
> meta-ti at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/meta-ti



More information about the meta-ti mailing list