#!/bin/bash SPIDEVS=`cat /proc/mtd | grep -e "^mtd" | grep -i spi | gawk -e '{print $1}' | sed 's/://'` if [ -z "$SPIDEVS" ]; then echo "SKIP: no spi device found" exit 1 fi MTD_DEBUG=`which mtd_debug` if [ -z "$MTD_DEBUG" ] ; then echo "FAIL: mtd_debug utility not found on the system" exit 1 fi ERRCODE=0 for DV in $SPIDEVS ; do FNAME=`cat /proc/mtd | grep $DV | gawk -F\" '{print $2}'` FDEV=/dev/$DV MTDSIZE=`$MTD_DEBUG info $FDEV | grep "mtd.size" | gawk -e '{print $3}'` if [ $MTDSIZE -eq 0 ] ; then echo "SKIP: $FNAME size is $MTDSIZE (skipped)" else $MTD_DEBUG read $FDEV 0 $MTDSIZE /dev/null > /dev/null 2>&1 if [ $? -eq 0 ] ; then echo "PASS: \"$FNAME\" read $MTDSIZE bytes" else echo "FAIL: \"$FNAME\" trying to read $MTDSIZE bytes" ERRCODE=2 fi fi done exit $ERRCODE