#!/bin/sh # # manage HDVPSS Engine firmware # PATH=$PATH:/usr/share/ti/ti-media-controller-utils HDVICP_ID=1 HDVICP_FW=/usr/share/ti/ti-media-controller-utils/dm814x_hdvicp.xem3 HDVPSS_ID=2 HDVPSS_FW=/usr/share/ti/ti-media-controller-utils/dm814x_hdvpss.xem3 configure_lcd() { echo "Configuring fb0 to LCD" echo 1:dvo2 > /sys/devices/platform/vpss/graphics0/nodes echo 0 > /sys/devices/platform/vpss/display1/enabled echo 25180,640/16/114/30,480/10/32/3,1 > /sys/devices/platform/vpss/display1/timings echo triplediscrete,rgb888,0/0/1/1 > /sys/devices/platform/vpss/display1/output echo 1 > /sys/devices/platform/vpss/display1/enabled fbset -xres 640 -yres 480 -vxres 640 -vyres 480 } case "$1" in start) echo "Configuring 'Power, reset, and clock manager'..." prcm_config_app s MODPATH=/lib/modules/$(uname -r) if [ ! -d $MODPATH ] ; then echo "####################################################################"; echo "################## Wrong kernel for Rootfs! ########################"; echo "####################################################################"; echo "Path not found: $MODPATH"; exit fi SYSLINK_PATH=`find $MODPATH -name 'syslink.ko'` if [ $? -ne 0 ] ; then echo "####################################################################"; echo "############## Syslink Module not found !!! ########################"; echo "####################################################################"; exit fi echo "Loading Syslink module..." insmod $SYSLINK_PATH if [ ! -e /dev/syslinkipc_ProcMgr -o ! -e /dev/syslinkipc_ClientNotifyMgr ] ; then echo -n "Probing syslink devices..." until [[ -e /dev/syslinkipc_ProcMgr -a -e /dev/syslinkipc_ClientNotifyMgr ]] do usleep 100000 done echo " done." fi echo "Loading HDVICP2 Firmware" firmware_loader $HDVICP_ID $HDVICP_FW start -i2c 0 if [ $? -ne 0 ] ; then echo "####################################################################"; echo "############## Failed to load HDVICP FW !!! ########################"; echo "####################################################################"; exit fi echo "Loading HDVPSS Firmware" firmware_loader $HDVPSS_ID $HDVPSS_FW start -i2c 0 if [ $? -ne 0 ] ; then echo "####################################################################"; echo "############## Failed to load HDVPSS FW !!! ########################"; echo "####################################################################"; exit fi echo "Loading VPSS Module" modprobe vpss sbufaddr=0xBFB00000 echo "Loading Framebuffer Module" modprobe ti81xxfb vram=0:16M echo "Configuring LCD" configure_lcd ;; stop) echo "Unloading ti81xxfb kernel module..." rmmod ti81xxfb echo "Unloading vpss kernel module..." rmmod vpss echo "Unloading HDVPSS Firmware" firmware_loader $HDVPSS_ID $HDVPSS_FW stop > /dev/null echo "Unloading HDVICP2 Firmware" firmware_loader $HDVICP_ID $HDVICP_FW stop > /dev/null echo "Unloading syslink kernel module..." rmmod syslink ;; *) echo "Usage: /etc/init.d/load-hd-firmware.sh {start|stop}" exit 1 ;; esac exit 0