diff --git a/alarm/imx-gpu-viv/98-galcore.rules b/alarm/imx-gpu-viv/98-galcore.rules new file mode 100644 index 000000000..fdebead60 --- /dev/null +++ b/alarm/imx-gpu-viv/98-galcore.rules @@ -0,0 +1,43 @@ +# Create symlinks for i.mx keypads and touchscreens +SUBSYSTEM=="input" KERNEL=="event*" ATTRS{name}=="mxckpd", SYMLINK+="input/keyboard0" +SUBSYSTEM=="input" KERNEL=="event*" ATTRS{name}=="mxc_ts", SYMLINK+="input/ts0" +SUBSYSTEM=="input" KERNEL=="event*" ATTRS{name}=="imx_adc_ts", SYMLINK+="input/ts0" +SUBSYSTEM=="input" KERNEL=="event*" ATTRS{name}=="mpr084", SYMLINK+="input/keyboard0" +SUBSYSTEM=="input" KERNEL=="event*" ATTRS{name}=="tsc2007", SYMLINK+="input/ts0" +SUBSYSTEM=="input" KERNEL=="event*" ATTRS{name} =="STMP3XXX touchscreen", SYMLINK+="input/ts0" +SUBSYSTEM=="input" KERNEL=="event*" ATTRS{name} =="MXS touchscreen", SYMLINK+="input/ts0" +SUBSYSTEM=="input" KERNEL=="event*" ATTRS{name} =="HannStar P1003 Touchscreen", SYMLINK+="input/ts0" +SUBSYSTEM=="input" KERNEL=="event*" ATTRS{name} =="eGalax Touch Screen", SYMLINK+="input/ts0" + +KERNEL=="event*", NAME="input/%k", MODE="666" + + +# The long class name gets cut off to be mc13783_connectiv in +# /sys/class/mc13783_connectivity/mc13783_connectivit +KERNEL=="mc13783_connectiv*", NAME="mc13783_connectivity" +# Anyone has readonly permission to IIM device file +KERNEL=="mxc_iim", MODE="0666", SYMLINK+="mxc_mem" +KERNEL=="mxs_viim", MODE="0666", SYMLINK+="mxc_mem" +KERNEL=="mxc_ipu", MODE="0666" +KERNEL=="fb0", MODE="0666" +KERNEL=="fb1", MODE="0666" +KERNEL=="fb2", MODE="0666" +KERNEL=="mxc_vpu", MODE="0666" +SUBSYSTEM=="video", MODE="0666" +KERNEL=="gsl_kmod", MODE="0666" +KERNEL=="galcore", MODE="0666" +KERNEL=="mxc_galcore", MODE="0666" +KERNEL=="mxc_asrc", MODE="0666" +SUBSYSTEM=="video", MODE="0666" +SUBSYSTEM=="sound", MODE="0666" +SUBSYSTEM=="video4linux", MODE="0666" + +# ALSA devices +SUBSYSTEM=="sound", GROUP="audio" +SUBSYSTEM=="snd", GROUP="audio" +KERNEL=="control*", NAME="snd/%k", MODE="0666" +KERNEL=="pcm*", NAME="snd/%k", MODE="0666" +KERNEL=="timer", NAME="snd/%k", MODE="0666" + +# Set bluetooth power up +ACTION=="add", KERNEL=="hci0", RUN+="/usr/bin/hciconfig hci0 up" diff --git a/alarm/imx-gpu-viv/PKGBUILD b/alarm/imx-gpu-viv/PKGBUILD new file mode 100644 index 000000000..78c29189b --- /dev/null +++ b/alarm/imx-gpu-viv/PKGBUILD @@ -0,0 +1,199 @@ +# Maintainer: RaumZeit +# Contributor: pepedog at archlinuxarm dot com +# Contributor: Oleg Rakhmanov + +buildarch=4 +pkgbase=imx-gpu-viv +pkgver=5.0.11.p4.5 +pkgrel=1 +pkgdesc="Freescale proprietary Vivante GPU drivers for i.MX6 Quad SoC" + +# filesystem prefix for the include files and license +_install_prefix=/opt/fsl +# filesystem prefix for the libraries +_install_exec_prefix=/opt/fsl +# filesystem prefix for the samples +_install_samples_prefix=/opt/fsl +url="https://community.freescale.com/docs/DOC-95560" +arch=('armv7h') +license=('proprietary') +source=("http://www.freescale.com/lgfiles/NMG/MAD/YOCTO/${pkgbase}-${pkgver}-hfp.bin" + "98-galcore.rules" + "egl.pc" + "egl_x11.pc" + "gc_wayland_protocol.pc" + "glesv1_cm.pc" + "glesv1_cm_x11.pc" + "glesv2.pc" + "glesv2_x11.pc" + "vg.pc" + "vg_x11.pc" + "wayland-egl.pc" + "wayland-viv.pc" + "directfbrc") + +md5sums=('8314408acb6b3bc58fcbbb8a0f48b54b' + 'ab0afbd747e802f0bc95d31494d3b559' + 'd56637776b8fa659d7b84f45d006dad2' + '24ea66e2601cd3a1729c16e7e4052425' + '9a815a054d9a2b94e78addd816fbb8a8' + '16055b2e429354d117b9ea5c9d9b29d2' + '7ce072e28e78fe9c67cb45d8ef447d85' + '45982ac2514c8eb08105f8af427ce5eb' + '7bb4eb0db280e9159726adafc8f95d31' + '101994c11d92ff4bcd86ea25f3afa0f0' + '36962675b16862e33f6d250865b0d6ba' + '9e0ce33723aac9e9829a9322e38f6e32' + '8994b882eaad8ee95ccb759505bdcf58' + '7e56b987de6a243023c3313c36df57c5') + +prepare() { + cd "${srcdir}" + sh ${pkgbase}-${pkgver}-hfp.bin --force --auto-accept + sed -n '/EOEULA/,/EOEULA/p' ${pkgbase}-${pkgver}-hfp.bin | grep -v EOEULA > LICENSE.$pkgbase + + # adopt the prefix and exec_prefix variables in .pc files + sed -i 's#^prefix=/usr#prefix='${_install_prefix}'#' *.pc + sed -i 's#^exec_prefix=/usr#exec_prefix='${_install_exec_prefix}'#' *.pc +} + +_package_common() { + provides=('imx-gpu-viv=5.0.11.p4' 'libgl') + conflicts=('gpu-viv-bin-mx6q' 'mesa-libgl') + cd "${pkgbase}-${pkgver}-hfp/gpu-core" + mkdir -p "${pkgdir}${_install_prefix}/include" "${pkgdir}${_install_exec_prefix}/lib" + cp -r usr/include/* "${pkgdir}${_install_prefix}/include" + cd usr/lib + cp -r libCLC* libVDK* libVSC* *GLES* libGL.* libGAL* libGLSLC* libOpenCL* libOpenVG.?d.so* "${pkgdir}${_install_exec_prefix}/lib" + mkdir -p "${pkgdir}${_install_prefix}/licenses" + cp "${srcdir}/LICENSE.$pkgbase" "$pkgdir${_install_prefix}/licenses" + mkdir -p "${pkgdir}/etc/ld.so.conf.d" + echo "${_install_prefix}/lib" > "${pkgdir}/etc/ld.so.conf.d/$pkgbase.conf" + + install -D -m0644 "${srcdir}/98-galcore.rules" "${pkgdir}/usr/lib/udev/rules.d/98-galcore.rules" + +} + +_package_common_post() { + + cd "${pkgdir}${_install_exec_prefix}/lib/" + + mv libGL.so.1.2 libGL.so.1.2.0 + ln -sf libGL.so.1.2.0 libGL.so.1.2 + ln -sf libGL.so.1.2.0 libGL.so + mv libEGL-${backend}.so libEGL.so.1.0 + ln -sf libEGL.so.1.0 libEGL.so.1 + ln -sf libEGL.so.1.0 libEGL.so + mv libGAL-${backend}.so libGAL.so + + if [ ${backend} != x11 ]; then + mv libGAL_egl.${backend}.so libGAL_egl.so + fi + + mv libVIVANTE-${backend}.so libVIVANTE.so + mv libGLESv2-${backend}.so libGLESv2.so.2.0.0 + ln -sf libGLESv2.so.2.0.0 libGLESv2.so.2 + ln -sf libGLESv2.so.2.0.0 libGLESv2.so + + ln -sf libOpenVG.3d.so libOpenVG.so + + for backend in wl x11 fb dfb; do + find "${pkgdir}${_install_exec_prefix}/lib/" -name "*${backend}.so" -exec rm '{}' ';' + done + + find "${pkgdir}${_install_exec_prefix}/lib/" -type f -exec chmod 644 {} \; + find "${pkgdir}${_install_prefix}/include/" -type f -exec chmod 644 {} \; +} + +package_imx-gpu-viv-fb() { + replaces=('gpu-viv-bin-mx6q-fb') + + backend=fb + _package_common + cp -r *-fb* "${pkgdir}${_install_exec_prefix}/lib" + + install -d "${pkgdir}/usr/lib/pkgconfig" + install -m0644 "${srcdir}/egl.pc" "${pkgdir}/usr/lib/pkgconfig/egl.pc" + install -m0644 "${srcdir}/glesv1_cm.pc" "${pkgdir}/usr/lib/pkgconfig/glesv1_cm.pc" + install -m0644 "${srcdir}/glesv2.pc" "${pkgdir}/usr/lib/pkgconfig/glesv2.pc" + install -m0644 "${srcdir}/vg.pc" "${pkgdir}/usr/lib/pkgconfig/vg.pc" + + + _package_common_post +} + + +package_imx-gpu-viv-x11() { + replaces=('gpu-viv-bin-mx6q-x11') + + backend=x11 + _package_common + cp -r dri "${pkgdir}${_install_exec_prefix}/lib" + + cp -r *-x11* "${pkgdir}${_install_exec_prefix}/lib" + + install -d "${pkgdir}/usr/lib/pkgconfig" + install -m0644 "${srcdir}/egl_x11.pc" "${pkgdir}/usr/lib/pkgconfig/egl.pc" + install -m0644 "${srcdir}/glesv1_cm_x11.pc" "${pkgdir}/usr/lib/pkgconfig/glesv1_cm.pc" + install -m0644 "${srcdir}/glesv2_x11.pc" "${pkgdir}/usr/lib/pkgconfig/glesv2.pc" + install -m0644 "${srcdir}/vg_x11.pc" "${pkgdir}/usr/lib/pkgconfig/vg.pc" + +# + _package_common_post +} + +package_imx-gpu-viv-wl() { + replaces=('gpu-viv-bin-mx6q-wl') + + backend=wl + _package_common + cp -r *-wl* "${pkgdir}${_install_exec_prefix}/lib" + cp -r *wayland* "${pkgdir}${_install_exec_prefix}/lib" + + install -d "${pkgdir}/usr/lib/pkgconfig" + install -m0644 "${srcdir}/egl_x11.pc" "${pkgdir}/usr/lib/pkgconfig/egl.pc" + install -m0644 "${srcdir}/glesv1_cm_x11.pc" "${pkgdir}/usr/lib/pkgconfig/glesv1_cm.pc" + install -m0644 "${srcdir}/glesv2_x11.pc" "${pkgdir}/usr/lib/pkgconfig/glesv2.pc" + install -m0644 "${srcdir}/vg_x11.pc" "${pkgdir}/usr/lib/pkgconfig/vg.pc" + install -m0644 "${srcdir}/gc_wayland_protocol.pc" "${pkgdir}/usr/lib/pkgconfig/gc_wayland_protocol.pc" + install -m0644 "${srcdir}/wayland-egl.pc" "${pkgdir}/usr/lib/pkgconfig/wayland-egl.pc" + install -m0644 "${srcdir}/wayland-viv.pc" "${pkgdir}/usr/lib/pkgconfig/wayland-viv.pc" + + _package_common_post +} + +package_imx-gpu-viv-dfb() { + replaces=('gpu-viv-bin-mx6q-dfb') + + backend=dfb + _package_common + cp -r *-dfb* directfb* "${pkgdir}${_install_exec_prefix}/lib" + install -d "${pkgdir}/etc" + install -m0644 "${srcdir}/directfbrc" "${pkgdir}/etc/directfbrc" + _package_common_post +} + +package_imx-gpu-viv-g2d() { + replaces=('gpu-viv-g2d') + + cd "${pkgbase}-${pkgver}-hfp/g2d" + mkdir -p "${pkgdir}${_install_prefix}/include" "${pkgdir}${_install_exec_prefix}/lib" + cp -r usr/include/* "${pkgdir}${_install_prefix}/include" + cp -r usr/lib/* "${pkgdir}${_install_prefix}/lib" + mkdir -p "${pkgdir}${_install_prefix}/licenses" + mkdir -p "${pkgdir}/etc/ld.so.conf.d" + echo "${_install_prefix}/lib" > "${pkgdir}/etc/ld.so.conf.d/$pkgname.conf" +} + +package_imx-gpu-viv-samples() { + replaces=('gpu-viv-bin-mx6q-samples') + + cd "${pkgbase}-${pkgver}-hfp/gpu-demos" + mkdir -p "${pkgdir}${_install_samples_prefix}/viv_samples" + cp -r opt/viv_samples/* "${pkgdir}${_install_samples_prefix}/viv_samples" +} + +pkgname=("${pkgbase}-x11" "${pkgbase}-fb" "${pkgbase}-dfb" "${pkgbase}-wl" "${pkgbase}-g2d" "${pkgbase}-samples") + +# vim:set ts=2 sw=2 et: + diff --git a/alarm/imx-gpu-viv/directfbrc b/alarm/imx-gpu-viv/directfbrc new file mode 100644 index 000000000..c10478533 --- /dev/null +++ b/alarm/imx-gpu-viv/directfbrc @@ -0,0 +1,11 @@ +# directfbrc begin +system=fbdev +mode=1024x768 # display size (change to fit your needs) +desktop-buffer-mode=frontonly # if no double buffering in framebuffer driver +depth=16 +pixelformat=RGB16 +#no-hardware # disable hardware acceleration +#no-software # disable software fallbacks +# directfbrc end + + diff --git a/alarm/imx-gpu-viv/egl.pc b/alarm/imx-gpu-viv/egl.pc new file mode 100644 index 000000000..5825c541e --- /dev/null +++ b/alarm/imx-gpu-viv/egl.pc @@ -0,0 +1,12 @@ +prefix=/usr +exec_prefix=/usr +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: egl +Description: Vivante EGL library +Requires.private: +Version: 8.0 +Libs: -L${libdir} -lEGL +Libs.private: -lm -lpthread -ldl +Cflags: -I${includedir} -DLINUX diff --git a/alarm/imx-gpu-viv/egl_x11.pc b/alarm/imx-gpu-viv/egl_x11.pc new file mode 100644 index 000000000..d5bfbb163 --- /dev/null +++ b/alarm/imx-gpu-viv/egl_x11.pc @@ -0,0 +1,12 @@ +prefix=/usr +exec_prefix=/usr +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: egl +Description: Vivante EGL library +Requires.private: libdrm x11 xext xdamage xfixes xcb +Version: 8.0 +Libs: -L${libdir} -lEGL +Libs.private: -lm -lpthread -ldl +Cflags: -I${includedir} -DLINUX diff --git a/alarm/imx-gpu-viv/gc_wayland_protocol.pc b/alarm/imx-gpu-viv/gc_wayland_protocol.pc new file mode 100644 index 000000000..3d10d72e9 --- /dev/null +++ b/alarm/imx-gpu-viv/gc_wayland_protocol.pc @@ -0,0 +1,10 @@ +prefix=/usr +exec_prefix=/usr +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: gc_wayland_protocol +Description: Vivante Wayland Protocol Extension Library +Version: 0.1 +Cflags: -I${includedir} +Libs: -L${libdir} -lgc_wayland_protocol diff --git a/alarm/imx-gpu-viv/glesv1_cm.pc b/alarm/imx-gpu-viv/glesv1_cm.pc new file mode 100644 index 000000000..3d5d937da --- /dev/null +++ b/alarm/imx-gpu-viv/glesv1_cm.pc @@ -0,0 +1,12 @@ +prefix=/usr +exec_prefix=/usr +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: glesv1_cm +Description: Vivante OpenGL ES 1.1 CM library +Requires.private: +Version: 8.0 +Libs: -L${libdir} -lGLESv1_CM -lEGL -lGAL +Libs.private: -lm -lpthread -ldl +Cflags: -I${includedir} diff --git a/alarm/imx-gpu-viv/glesv1_cm_x11.pc b/alarm/imx-gpu-viv/glesv1_cm_x11.pc new file mode 100644 index 000000000..d68d2a13e --- /dev/null +++ b/alarm/imx-gpu-viv/glesv1_cm_x11.pc @@ -0,0 +1,12 @@ +prefix=/usr +exec_prefix=/usr +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: glesv1_cm +Description: Vivante OpenGL ES 1.1 CM library +Requires.private: libdrm x11 xext xdamage xfixes xcb +Version: 8.0 +Libs: -L${libdir} -lGLESv1_CM -lEGL -lGAL +Libs.private: -lm -lpthread -ldl +Cflags: -I${includedir} diff --git a/alarm/imx-gpu-viv/glesv2.pc b/alarm/imx-gpu-viv/glesv2.pc new file mode 100644 index 000000000..7dc4dfcf7 --- /dev/null +++ b/alarm/imx-gpu-viv/glesv2.pc @@ -0,0 +1,12 @@ +prefix=/usr +exec_prefix=/usr +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: glesv2 +Description: Vivante OpenGL ES 2.0 library +Requires.private: +Version: 8.0 +Libs: -L${libdir} -lGLESv2 -lEGL -lGAL +Libs.private: -lpthread -lrt +Cflags: -I${includedir} diff --git a/alarm/imx-gpu-viv/glesv2_x11.pc b/alarm/imx-gpu-viv/glesv2_x11.pc new file mode 100644 index 000000000..f95e8df3e --- /dev/null +++ b/alarm/imx-gpu-viv/glesv2_x11.pc @@ -0,0 +1,12 @@ +prefix=/usr +exec_prefix=/usr +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: glesv2 +Description: Vivante OpenGL ES 2.0 library +Requires.private: libdrm x11 xext xdamage xfixes xcb +Version: 8.0 +Libs: -L${libdir} -lGLESv2 -lEGL -lGAL +Libs.private: -lpthread -lrt +Cflags: -I${includedir} diff --git a/alarm/imx-gpu-viv/vg.pc b/alarm/imx-gpu-viv/vg.pc new file mode 100644 index 000000000..e7eaacb03 --- /dev/null +++ b/alarm/imx-gpu-viv/vg.pc @@ -0,0 +1,12 @@ +prefix=/usr +exec_prefix=/usr +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: vg +Description: Vivante OpenVG 1.1 library +Requires.private: +Version: 8.0 +Libs: -L${libdir} -lOpenVG -lEGL -lGAL +Libs.private: -lpthread -lrt +Cflags: -I${includedir} diff --git a/alarm/imx-gpu-viv/vg_x11.pc b/alarm/imx-gpu-viv/vg_x11.pc new file mode 100644 index 000000000..c5e0876b6 --- /dev/null +++ b/alarm/imx-gpu-viv/vg_x11.pc @@ -0,0 +1,12 @@ +prefix=/usr +exec_prefix=/usr +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: vg +Description: Vivante OpenVG 1.1 library +Requires.private: libdrm x11 xext xdamage xfixes xcb +Version: 8.0 +Libs: -L${libdir} -lOpenVG -lEGL -lGAL +Libs.private: -lpthread -lrt +Cflags: -I${includedir} diff --git a/alarm/imx-gpu-viv/wayland-egl.pc b/alarm/imx-gpu-viv/wayland-egl.pc new file mode 100644 index 000000000..8072ac677 --- /dev/null +++ b/alarm/imx-gpu-viv/wayland-egl.pc @@ -0,0 +1,10 @@ +prefix=/usr +exec_prefix=/usr +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: wayland-egl +Description: Bind the driver EGL to the Wayland API +Version: 1.0.0 +Libs: -L${libdir} -lEGL +Cflags: -I${includedir} diff --git a/alarm/imx-gpu-viv/wayland-viv.pc b/alarm/imx-gpu-viv/wayland-viv.pc new file mode 100644 index 000000000..ca7a967c7 --- /dev/null +++ b/alarm/imx-gpu-viv/wayland-viv.pc @@ -0,0 +1,10 @@ +prefix=/usr +exec_prefix=/usr +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: Wayland Vivante Lib +Description: Wayland server side library for Vivante's EGL driver +Version: 0.1 +Cflags: -I${includedir}/wayland-viv +Libs: -L${libdir} -lwayland-viv