xc7k480t/xdma/linux-kernel/tests/scripts_mm/unaligned.sh

94 lines
2.0 KiB
Bash
Executable File

#!/bin/sh
##########################
#
# preset test parameters:
#
##########################
# dma io size
io_list="1 10 127 128 1021 1022 1023 1024 4095 4096 4097 4098 4099 8189 8190 8191 8192"
io_max=8192
# offset
offset_list="1 2 3 4 2045 2046 2047 2048 2049 4091 4092 4093 4094 4095"
# starting address
address=0
# delay(sleep) before moving on to the next channel, if applicable
delay=2
##########################
#
# main
#
##########################
if [ $# -lt 5 ]; then
echo "$0: <xid> <h2c channel> <c2h channel> <data check> <dmesg log>"
echo -e "\t<xid>: xdma<N>"
echo -e "\t<h2c channel>: H2C channel #, 0-based"
echo -e "\t<c2h channel>: C2H channel #, 0-based"
echo -e "\t<data check>: read back the data and compare, 0|1"
echo -e "\t<dmesg log>: log test info. into dmesg, 0|1"
exit
fi
xid=$1
h2cno=$2
c2hno=$3
data_check=$4
dmesg=$5
tmpdir="/tmp/${xid}_h2c${h2cno}_c2h${c2hno}_unaligned"
echo "====>$0 $xid $h2cno:$c2hno, $data_check,$dmesg, $tmpdir"
if [ "$dmesg" -ne 0 ]; then
echo "$0 $xid $h2cno:$c2hno, $tmpdir..." >> /dev/kmsg
fi
if [ ! -d "$tmpdir" ]; then
mkdir -p $tmpdir
fi
rm -rf $tmpdir/*
# generate data file, minimum 64MB
cnt=$(($io_max / 1024))
if [ "$cnt" -eq "0" ]; then
cnt=1
fi
datafile="$tmpdir/datafile-$cnt-K"
cnt=$(($cnt / 65536))
if [ "$cnt" -eq "0" ]; then
cnt=1
fi
if [ ! -f "$datafile" ]; then
echo "creating datafile: $datafile ..."
let cnt=cnt+1
dd if=/dev/urandom of=$datafile bs=64M count=$cnt iflag=fullblock
fi
echo
date
echo "====>$0: $xid $h2cno:$c2hno, addr $address ..." > /dev/kmsg
echo "$0: $xid $h2cno:$c2hno, addr $address ..." > /dev/kmsg
for io in $io_list; do
for offset in $offset_list; do
./io.sh $dmesg $data_check $io $address $offset $xid \
$h2cno $c2hno $tmpdir $datafile
if [ "$?" -ne "0" ]; then
echo -e "\t$xid $h2cno:$c2hno, $io, off $offset FAILED!"
exit 2
fi
done
if [ "$delay" -ne "0" ]; then
sleep $delay
fi
done
date
echo "====>$0: $xid $h2cno:$c2hno, addr $address COMPLETED!"
exit 0