diff --git a/Makefile b/Makefile index 20b5d01b..4fb380da 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -BUILD=6 +BUILD=7 VERSION=$(shell date +%Y%m%d%H%M)-$(BUILD) CPUS=4 STLINUX=/opt/STM/STLinux-2.4 @@ -9,10 +9,9 @@ HOST_ARCH=$(shell uname -m) EXTRA_AXE_MODULES_DIR=firmware/initramfs/root/modules_idl4k_7108_ST40HOST_LINUX_32BITS EXTRA_AXE_MODULES=axe_dmx.ko axe_dmxts.ko axe_fe.ko axe_fp.ko axe_i2c.ko \ - stapi_core_stripped.ko stapi_ioctl_stripped.ko stsys_ioctl.ko \ - load_modules_list_32BITS.txt load_modules_list_axe_32BITS.txt + stapi_core_stripped.ko stapi_ioctl_stripped.ko stsys_ioctl.ko -ORIG_FILES=main_axe.out mknodes.out +ORIG_FILES=main_axe.out KMODULES = drivers/usb/serial/cp210x.ko \ drivers/usb/serial/pl2303.ko \ diff --git a/fs-add/etc/init.d/rcS b/fs-add/etc/init.d/rcS index dd3c3a9e..414713c8 100755 --- a/fs-add/etc/init.d/rcS +++ b/fs-add/etc/init.d/rcS @@ -55,7 +55,51 @@ ifconfig lo 127.0.0.1 netmask 255.255.255.0 # AXE modules and AXE hw initialization sync -/lib/modules/axe/load_modules.sh +d=/lib/modules/axe +insmod $d/stapi_core_stripped.ko +insmod $d/stapi_ioctl_stripped.ko +insmod $d/axe_i2c.ko +insmod $d/axe_fe.ko +insmod $d/axe_fp.ko +insmod $d/axe_dmx.ko +insmod $d/axe_dmxts.ko +mkdir -p /dev/axe /dev/stapi +maj= +for i in $(cat /proc/devices); do + if test -z "$maj"; then + if test "$i" = "Block"; then + break + fi + maj=$i + continue + fi + if test -z "$i"; then + maj= + continue + elif test "${i::2}" = "st" -a "${i:$(expr ${#i} - 6)}" = "_ioctl"; then + mknod /dev/stapi/$i c $maj 0 + elif test "$i" = "i2c_drv"; then + mknod /dev/axe/i2c_drv-0 c $maj 0 + elif test "$i" = "fp"; then + mknod /dev/axe/fp-0 c $maj 0 + elif test "$i" = "frontend"; then + mknod /dev/axe/frontend-0 c $maj 0 + mknod /dev/axe/frontend-1 c $maj 1 + mknod /dev/axe/frontend-2 c $maj 2 + mknod /dev/axe/frontend-3 c $maj 3 + elif test "$i" = "demux"; then + mknod /dev/axe/demux-0 c $maj 0 + mknod /dev/axe/demux-1 c $maj 1 + mknod /dev/axe/demux-2 c $maj 2 + mknod /dev/axe/demux-3 c $maj 3 + elif test "$i" = "demuxts"; then + mknod /dev/axe/demuxts-0 c $maj 0 + mknod /dev/axe/demuxts-1 c $maj 1 + mknod /dev/axe/demuxts-2 c $maj 2 + mknod /dev/axe/demuxts-3 c $maj 3 + fi + maj= +done /etc/init.d/axe & axehelper wait 5000 -10 /tmp/axe-done #nc -l 127.0.0.1:1001 -e /bin/true diff --git a/fs-add/lib/modules/axe/load_modules.sh b/fs-add/lib/modules/axe/load_modules.sh deleted file mode 100755 index 3162fab2..00000000 --- a/fs-add/lib/modules/axe/load_modules.sh +++ /dev/null @@ -1,332 +0,0 @@ -#!/bin/sh - -############################################################################### -## SETUP STAPI DEVICE NAME ENVIRONMENT VARIABLES ## -############################################################################### - -# Check if we are on virtual platform (running on x86) or not -# ----------------------------------------------------------- -runonvirtualplatform="no" -if [ -f /proc/hce/cwd ]; then - runonvirtualplatform="yes" -fi - -# Verify if root module is specified -# ---------------------------------- -export PATH=$PATH:/sbin -if [ -z "$MODULES_INSTALL_DIR" ] ; then - if [ "$runonvirtualplatform" = "no" ] ; then - export MODULES_INSTALL_DIR=/lib/modules/axe - else - export MODULES_INSTALL_DIR=. - fi -fi -if [ "$runonvirtualplatform" = "no" ] ; then - source $MODULES_INSTALL_DIR/load_env.sh -else - . $MODULES_INSTALL_DIR/load_env.sh -fi - -# Check if we are in 32 or 29bits -# ------------------------------- -if [ -f $MODULES_INSTALL_DIR/load_modules_list_29BITS.txt ]; then - LOAD_MODULES_LIST=$MODULES_INSTALL_DIR/load_modules_list_29BITS.txt - AXE_LOAD_MODULES_LIST=$MODULES_INSTALL_DIR/load_modules_list_axe_29BITS.txt - MODE="29BITS" -else - MODE="32BITS" - if [ -f $MODULES_INSTALL_DIR/load_modules_list_32BITS.txt ]; then - LOAD_MODULES_LIST=$MODULES_INSTALL_DIR/load_modules_list_32BITS.txt - AXE_LOAD_MODULES_LIST=$MODULES_INSTALL_DIR/load_modules_list_axe_32BITS.txt - else - LOAD_MODULES_LIST=$MODULES_INSTALL_DIR/load_modules_list.txt - AXE_LOAD_MODULES_LIST=$MODULES_INSTALL_DIR/load_modules_list_axe.txt - fi -fi - -############################################################################### -## SETUP DIRECTORY ACCESS ## -############################################################################### - -# Verify if modules list exist -# ---------------------------- -if [ ! -f $LOAD_MODULES_LIST ] ; then - echo "$LOAD_MODULES_LIST does not exist" - exit -fi - -# Create /dev/stapi directory if not exist -# ---------------------------------------- -if [ ! -e /dev/stapi ]; then mkdir -p /dev/stapi ;fi -chmod 755 /dev/stapi -if [ ! -e /dev/axe ]; then mkdir -p /dev/axe ;fi -chmod 755 /dev/axe - -############################################################################### -## MODULE INSERT PROCEDURE ## -############################################################################### - -# Return chip version -# ------------------- -define_chip_info() -{ - export chipset=`cat /proc/stsys_ioctl/chipset | cut -b1-7` - export chipver=`cat /proc/stsys_ioctl/chipset | cut -b9-9` -} - -# Create a node in /dev/ (Arg 1=node_name) -# ---------------------------------------- -create_node() -{ - node_name="$1" - major=`cat /proc/devices | grep "\b$node_name\b" | cut -b1-3` - if [ ! -z "$major" ]; then - dev="/dev/stapi/$node_name" - if [ -c ${dev} ]; then - if [ "$runonvirtualplatform" = "no" ] ; then - cur_major=$((0x`stat -c %t $dev 2>/dev/null`)) - else - cur_major=`cat /proc/devices | grep $node_name|cut -d " " -f 1` - fi - if [ $major -ne $cur_major ]; then - rm -f ${dev} 2> /dev/null - mknod $dev c $major 0 || return 1 - chmod 0660 $dev || return 1 - fi - fi - if [ ! -c ${dev} ] ; then - rm -f ${dev} 2> /dev/null - mknod $dev c $major 0 || return 1 - chmod 0660 $dev || return 1 - fi - fi -} - -# Load firmware (Arg 1=video1 or audio1) -# -------------------------------------- -load_firmware() -{ - if [ "$1" = "rt1" ] ; then - if [ "$chipset" = "STx7108" ] ; then - cat $MODULES_INSTALL_DIR/rt_7108_firmware.bin >/dev/stapi/lxload - fi - fi - if [ "$1" = "video1" ] ; then - if [ "$chipset" = "STx5206" ] ; then - cat $MODULES_INSTALL_DIR/companion_5206_video_Ax.bin >/dev/stapi/lxload - fi - if [ "$chipset" = "STx7105" ] ; then - cat $MODULES_INSTALL_DIR/companion_7105_video_Ax.bin >/dev/stapi/lxload - fi - if [ "$chipset" = "STx7106" ] ; then - cat $MODULES_INSTALL_DIR/companion_7106_video_Ax.bin >/dev/stapi/lxload - fi - if [ "$chipset" = "STx7108" ] ; then - if [ "$chipver" = "A" ] ; then - cat $MODULES_INSTALL_DIR/companion_7108_video_Ax.bin >/dev/stapi/lxload - else - cat $MODULES_INSTALL_DIR/companion_7108_video_Bx.bin >/dev/stapi/lxload - fi - fi - if [ "$chipset" = "STx7109" ] ; then - cat $MODULES_INSTALL_DIR/companion_7109_video_Cx.bin >/dev/stapi/lxload - fi - if [ "$chipset" = "STx7111" ] ; then - cat $MODULES_INSTALL_DIR/companion_7111_video_Ax.bin >/dev/stapi/lxload - fi - if [ "$chipset" = "STx7141" ] ; then - cat $MODULES_INSTALL_DIR/companion_7141_video_Ax.bin >/dev/stapi/lxload - fi - if [ "$chipset" = "STxH205" ] ; then - cat $MODULES_INSTALL_DIR/companion_h205_video_Ax.bin >/dev/stapi/lxload - fi - fi - if [ "$1" = "audio1" ] ; then - if [ "$chipset" = "STx5206" ] ; then - cat $MODULES_INSTALL_DIR/companion_5206_audio.bin >/dev/stapi/lxload - fi - if [ "$chipset" = "STx7105" ] ; then - cat $MODULES_INSTALL_DIR/companion_7105_audio.bin >/dev/stapi/lxload - fi - if [ "$chipset" = "STx7106" ] ; then - cat $MODULES_INSTALL_DIR/companion_7106_audio.bin >/dev/stapi/lxload - fi - if [ "$chipset" = "STx7108" ] ; then - cat $MODULES_INSTALL_DIR/companion_7108_audio.bin >/dev/stapi/lxload - fi - if [ "$chipset" = "STx7109" ] ; then - cat $MODULES_INSTALL_DIR/companion_7109_audio.bin >/dev/stapi/lxload - fi - if [ "$chipset" = "STx7111" ] ; then - cat $MODULES_INSTALL_DIR/companion_7111_audio.bin >/dev/stapi/lxload - fi - if [ "$chipset" = "STx7141" ] ; then - cat $MODULES_INSTALL_DIR/companion_7141_audio.bin >/dev/stapi/lxload - fi - if [ "$chipset" = "STxH205" ] ; then - cat $MODULES_INSTALL_DIR/companion_h205_audio.bin >/dev/stapi/lxload - fi - fi - rmmod lxload -} - -# Insert separate STAPI modules -# ----------------------------- -insert_separated_modules() -{ -cat $LOAD_MODULES_LIST | grep -v "^#" | (while read mode mod_file node_name param; do - if [ "$mode" != "-" ] ; then - if [ "$mode" != "$MODE" ] ; then - continue - fi - fi - if [ "$param" = "-" ] ; then - param="" - fi - if [ ! -f $MODULES_INSTALL_DIR/$mod_file ] ; then - continue - fi - if [ "$node_name" = "lxload" ] ; then - if [ "$param" = "type=rt1" ] ; then - if [ ! -f "$MODULES_INSTALL_DIR/rt_7108_firmware.bin" ] ; then - continue - fi - fi - fi - if [ "$mod_file" = "embxmailbox.ko" ] ; then - if [ ! -f $MODULES_INSTALL_DIR/ics.ko ] ; then - output=$(insmod $MODULES_INSTALL_DIR/$mod_file $param 2>&1 | cat) - else - output=$(insmod $MODULES_INSTALL_DIR/$mod_file 2>&1 | cat) - fi - else - output=$(insmod $MODULES_INSTALL_DIR/$mod_file $param 2>&1 | cat) - fi - [ "$output" != "" ] && { echo "$output" | grep "File exists" >/dev/null && echo "Warning : $mod_file already inserted, skipping" || { echo "$output" ; exit 1 ; } ; } - if [ ! "$node_name" = "-" ] ; then - create_node "$node_name" - fi - if [ "$node_name" = "lxload" ] ; then - define_chip_info - if [ "$param" = "type=rt1" ] ; then - load_firmware "rt1" - fi - if [ "$param" = "type=video1" ] ; then - load_firmware "video1" - fi - if [ "$param" = "type=video2" ] ; then - load_firmware "video2" - fi - if [ "$param" = "type=audio1" ] ; then - load_firmware "audio1" - fi - if [ "$param" = "type=audio2" ] ; then - load_firmware "audio2" - fi - fi - done) -} - -# Insert unique STAPI module -# -------------------------- -insert_unified_module() -{ - # Now we load STAPI and create nodes - echo "* Inserting STAPI Module" - insmod $MODULES_INSTALL_DIR/stapi_core_stripped.ko || return 1 - if [ "$1" != "no_stapi_ioctl" ] ; then - insmod $MODULES_INSTALL_DIR/stapi_ioctl_stripped.ko || return 1 - else - if [ -f $MODULES_INSTALL_DIR/stpti4_ioctl.ko ]; then - insmod $MODULES_INSTALL_DIR/stpti4_ioctl.ko || return 1 - fi - if [ -f $MODULES_INSTALL_DIR/stpti5_ioctl.ko ]; then - insmod $MODULES_INSTALL_DIR/stpti5_ioctl.ko || return 1 - fi - fi - if [ -f $MODULES_INSTALL_DIR/staudlx_alsa.ko ]; then - insmod $MODULES_INSTALL_DIR/staudlx_alsa.ko || return 1 - fi - if [ "$1" != "no_stapi_ioctl" ] ; then - echo "* Creating device nodes in /dev/stapi" - cat $LOAD_MODULES_LIST | grep -v "^#" | grep -v lxload | (while read mode mod_file node_name param; do - if [ ! "$node_name" = "-" ] ; then - create_node $node_name - fi - done) - fi -} - - -# Inserting AXE modules -# --------------------- -insert_axe_modules () -{ - local HW=$(awk 'match($0, /hw=[^ ]*/) {print substr($0,RSTART,RLENGTH)}' /proc/cmdline) - local HWID=${HW:3:40} - - #echo "$HW" - #echo "$HWID" - - if [ ${#HWID} -ne 32 ] ; then - echo "HWID has wrong length" - fi - - grep -v "^#" $AXE_LOAD_MODULES_LIST | (while read mode mod_file node_name param minor_cnt; do - if [ "$mode" != "-" ] ; then - if [ "$mode" != "$MODE" ] ; then - continue - fi - fi - if [ ! -f $MODULES_INSTALL_DIR/$mod_file ] ; then - continue - fi - if [ "$param" = "-" ] ; then - param="" - fi - - if [ "$node_name" = "frontend" -a "${HWID:0:3}" = "161" ] ; then - mod_file="axe_fe_ml.ko" - fi - - param="$(echo $param | sed -e 's/,/ /g')" - insmod $MODULES_INSTALL_DIR/$mod_file $param - done) - - /lib/modules/axe/mknodes.out i - - ## WORKAROUND: if no HWID defined reverse the demux's routing - if [ ${#HWID} -eq 0 ] ; then - echo "SWAPPING TS ROUTE LIKE FOR OLD BOARD" - mv /dev/axe/demux-0 /dev/axe/demux-00 - mv /dev/axe/demux-1 /dev/axe/demux-0 - mv /dev/axe/demux-00 /dev/axe/demux-1 - - mv /dev/axe/demuxts-0 /dev/axe/demuxts-00 - mv /dev/axe/demuxts-1 /dev/axe/demuxts-0 - mv /dev/axe/demuxts-00 /dev/axe/demuxts-1 - - mv /dev/axe/demux-2 /dev/axe/demux-20 - mv /dev/axe/demux-3 /dev/axe/demux-2 - mv /dev/axe/demux-20 /dev/axe/demux-3 - - mv /dev/axe/demuxts-2 /dev/axe/demuxts-20 - mv /dev/axe/demuxts-3 /dev/axe/demuxts-2 - mv /dev/axe/demuxts-20 /dev/axe/demuxts-3 - fi -} - - -# Choose between inserting severall or unified module -# --------------------------------------------------- -if [ $# -eq 0 ] || [ "$1" != "not_unified" ]; then - if [ -f "$MODULES_INSTALL_DIR/stapi_core_stripped.ko" ] && [ -f "$MODULES_INSTALL_DIR/stapi_ioctl_stripped.ko" ]; then - insert_unified_module $1 - else - insert_separated_modules - fi -else - insert_separated_modules -fi -insert_axe_modules -