summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephane Desneux <stephane.desneux@iot.bzh>2016-06-14 11:51:43 +0200
committerStephane Desneux <stephane.desneux@iot.bzh>2016-06-14 11:51:51 +0200
commite2472c7b1d061aef8bb05a4d7940fd8159c4a329 (patch)
treed02452b65c994c373f88199028f53020722d9815
parent87cdfd4626c0cb47fc22f328867e49d6268df85c (diff)
add dung-3.4.25-m2, required by some JTA Functional.* testsblowfish_2.0.12.0.1
collection of shell scripts Used in multiple tests: * Functional.arch_timer/arch_timer.sh * Functional.scifab/scifab.sh * Functional.cmt/cmt.sh * Functional.sdhi_0/sdhi_0.sh Change-Id: I268c426071890554518e8b4927620fe6df587c34 Signed-off-by: Stephane Desneux <stephane.desneux@iot.bzh>
-rwxr-xr-xdung-3.4.25-m2/arch_timer/arch_timer-interrupt-lager.sh24
-rwxr-xr-xdung-3.4.25-m2/arch_timer/dmesg-lager.sh8
-rwxr-xr-xdung-3.4.25-m2/arch_timer/proc-interrupts-lager.sh14
-rwxr-xr-xdung-3.4.25-m2/cmt/cmt-interrupt.sh24
-rwxr-xr-xdung-3.4.25-m2/cmt/dmesg.sh8
-rwxr-xr-xdung-3.4.25-m2/cmt/proc-interrupts.sh14
-rwxr-xr-xdung-3.4.25-m2/common/dmesg-quiet.sh29
-rwxr-xr-xdung-3.4.25-m2/common/dmesg.sh24
-rwxr-xr-xdung-3.4.25-m2/common/interrupt-count.sh20
-rwxr-xr-xdung-3.4.25-m2/common/mount-device.sh31
-rwxr-xr-xdung-3.4.25-m2/common/proc-interrupts.sh31
-rwxr-xr-xdung-3.4.25-m2/common/umount-device.sh25
-rwxr-xr-xdung-3.4.25-m2/common/unbind-bind-write.sh27
-rwxr-xr-xdung-3.4.25-m2/common/unbind-bind.sh76
-rwxr-xr-xdung-3.4.25-m2/common/write-common.sh77
-rwxr-xr-xdung-3.4.25-m2/common/write-dd.sh73
-rwxr-xr-xdung-3.4.25-m2/scifab/dmesg-sh-sci.0.sh81
-rwxr-xr-xdung-3.4.25-m2/scifab/proc-interrupts.sh13
-rwxr-xr-xdung-3.4.25-m2/sdhi.0/unbind-bind-write.sh18
-rwxr-xr-xdung-3.4.25-m2/sdhi.0/write-10M.sh9
-rwxr-xr-xdung-3.4.25-m2/sdhi.0/write-1k.sh9
21 files changed, 635 insertions, 0 deletions
diff --git a/dung-3.4.25-m2/arch_timer/arch_timer-interrupt-lager.sh b/dung-3.4.25-m2/arch_timer/arch_timer-interrupt-lager.sh
new file mode 100755
index 0000000..4dfbf03
--- /dev/null
+++ b/dung-3.4.25-m2/arch_timer/arch_timer-interrupt-lager.sh
@@ -0,0 +1,24 @@
+#!/bin/bash
+
+set -e
+#set -x
+
+echo "ARM timer interrupt test"
+
+DEV_NAME="arch_timer"
+
+# CMT interrupt test
+BEFORE=$($(dirname $0)/../common/interrupt-count.sh "$DEV_NAME")
+sleep 5
+AFTER=$($(dirname $0)/../common/interrupt-count.sh "$DEV_NAME")
+
+# Show result
+echo "Before interrupt:$BEFORE"
+echo "After interrupt :$AFTER"
+
+if [ "$BEFORE" -ge "$AFTER" ]; then
+ echo "Interrupt cound is not increasing"
+ exit 1
+else
+ echo "Test passed"
+fi
diff --git a/dung-3.4.25-m2/arch_timer/dmesg-lager.sh b/dung-3.4.25-m2/arch_timer/dmesg-lager.sh
new file mode 100755
index 0000000..10d10a9
--- /dev/null
+++ b/dung-3.4.25-m2/arch_timer/dmesg-lager.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+set -e
+#set -x
+
+echo "Arch ARM timer dmesg feature test"
+
+exec $(dirname $0)/../common/dmesg.sh "ARM arch timer >56 bits at 10000kHz"
diff --git a/dung-3.4.25-m2/arch_timer/proc-interrupts-lager.sh b/dung-3.4.25-m2/arch_timer/proc-interrupts-lager.sh
new file mode 100755
index 0000000..23a0afb
--- /dev/null
+++ b/dung-3.4.25-m2/arch_timer/proc-interrupts-lager.sh
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+set -e
+#set -x
+
+echo "arch_timer /proc/interrupts presence test"
+
+IRQ=27
+DIV_NAME="arch_timer"
+if $(dirname $0)/../common/proc-interrupts.sh "$DIV_NAME" | grep "$IRQ"; then
+ echo "Test passed"
+else
+ echo "Test has not passed"
+fi
diff --git a/dung-3.4.25-m2/cmt/cmt-interrupt.sh b/dung-3.4.25-m2/cmt/cmt-interrupt.sh
new file mode 100755
index 0000000..627850d
--- /dev/null
+++ b/dung-3.4.25-m2/cmt/cmt-interrupt.sh
@@ -0,0 +1,24 @@
+#!/bin/bash
+
+set -e
+#set -x
+
+echo "CMT interrupt test"
+
+DEV_NAME="sh_cmt.0"
+
+# CMT interrupt test
+BEFORE=$($(dirname $0)/../common/interrupt-count.sh "$DEV_NAME")
+sleep 5
+AFTER=$($(dirname $0)/../common/interrupt-count.sh "$DEV_NAME")
+
+# Show result
+echo "Before interrupt:$BEFORE"
+echo "After interrupt :$AFTER"
+
+if [ "$BEFORE" -ge "$AFTER" ]; then
+ echo "Interrupt cound is not increasing"
+ exit 1
+else
+ echo "Test passed"
+fi
diff --git a/dung-3.4.25-m2/cmt/dmesg.sh b/dung-3.4.25-m2/cmt/dmesg.sh
new file mode 100755
index 0000000..b12e141
--- /dev/null
+++ b/dung-3.4.25-m2/cmt/dmesg.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+set -e
+#set -x
+
+echo "sh_cmt.0 dmesg feature test"
+
+exec $(dirname $0)/../common/dmesg.sh "sh_cmt sh_cmt.0: used for clock events"
diff --git a/dung-3.4.25-m2/cmt/proc-interrupts.sh b/dung-3.4.25-m2/cmt/proc-interrupts.sh
new file mode 100755
index 0000000..f400595
--- /dev/null
+++ b/dung-3.4.25-m2/cmt/proc-interrupts.sh
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+set -e
+#set -x
+
+echo "sh_cmt.0 /proc/interrupts presence test"
+
+IRQ=174
+DIV_NAME="sh_cmt.0"
+if $(dirname $0)/../common/proc-interrupts.sh "$DIV_NAME" | grep "$IRQ"; then
+ echo "Test passed"
+else
+ echo "Test has not passed"
+fi
diff --git a/dung-3.4.25-m2/common/dmesg-quiet.sh b/dung-3.4.25-m2/common/dmesg-quiet.sh
new file mode 100755
index 0000000..d0b6219
--- /dev/null
+++ b/dung-3.4.25-m2/common/dmesg-quiet.sh
@@ -0,0 +1,29 @@
+#!/bin/sh
+# dmesg-quiet.sh
+#
+# Simple dmesg based feature test (quiet variant)
+#
+# Copyright (C) 2013 Horms Soltutions Ltd.
+#
+# Contact: Simon Horman <horms@verge.net.au>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 2 of the License.
+
+set -e
+#set -x
+
+if [ $# -ne 1 ]; then
+ echo "usage: $(basename $0) PATTERN" >& 2
+ exit 1
+fi
+
+PATTERN="$1"
+
+#echo "dmesg feature test for '$PATTERN'"
+
+if ! dmesg | grep "$PATTERN" > /dev/null; then
+ echo "error: not matched" >&2
+ exit 1
+fi
diff --git a/dung-3.4.25-m2/common/dmesg.sh b/dung-3.4.25-m2/common/dmesg.sh
new file mode 100755
index 0000000..4047043
--- /dev/null
+++ b/dung-3.4.25-m2/common/dmesg.sh
@@ -0,0 +1,24 @@
+#!/bin/sh
+# dmesg.sh
+#
+# Simple dmesg based feature test
+#
+# Copyright (C) 2013 Horms Soltutions Ltd.
+#
+# Contact: Simon Horman <horms@verge.net.au>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 2 of the License.
+
+set -e
+#set -x
+
+$(dirname $0)/dmesg-quiet.sh "$@"
+STATUS="$?"
+
+if [ "$STATUS" -eq "0" ]; then
+ echo "Test passed"
+fi
+
+exit "$STATUS"
diff --git a/dung-3.4.25-m2/common/interrupt-count.sh b/dung-3.4.25-m2/common/interrupt-count.sh
new file mode 100755
index 0000000..ab5c16a
--- /dev/null
+++ b/dung-3.4.25-m2/common/interrupt-count.sh
@@ -0,0 +1,20 @@
+#!/bin/sh
+# count interrupt of device
+
+set -e
+#set -x
+
+if [ $# -ne 1 ]; then
+ echo "usage: $(basename $0) PATTERN" >& 2
+ exit 1
+fi
+
+IRQ=""
+
+$(dirname $0)/../common/proc-interrupts.sh "$1" > irq_temp
+
+# Filter interrupt number
+read IRQ < irq_temp
+IRQ=${IRQ%% [A-Za-z]*}
+IRQ=${IRQ#* }
+echo $IRQ
diff --git a/dung-3.4.25-m2/common/mount-device.sh b/dung-3.4.25-m2/common/mount-device.sh
new file mode 100755
index 0000000..a5e4b78
--- /dev/null
+++ b/dung-3.4.25-m2/common/mount-device.sh
@@ -0,0 +1,31 @@
+#!/bin/bash
+# mount devices
+
+echo "Mount devices"
+
+set -e
+#set -x
+
+if [ $# -ne 1 ]; then
+ echo "usage: $(basename $0) PATTERN" >& 2
+ exit 1
+fi
+
+DEV_DIR="$1"
+
+# Mount device
+if [ $DEV_DIR == "/mnt/sd0" ]; then
+ mount /dev/mmcblk1p1 /mnt/sd0/
+elif [ $DEV_DIR == "/mnt/sd1" ]; then
+ mount /dev/mmcblk2p1 /mnt/sd1/
+else
+ mount -t tmpfs -o size=450M tmpfs /tmp/temp/
+fi
+
+# Mount check
+if [ $? -eq 0 ];then
+ echo "Device have mounted"
+else
+ echo "Device mount is error" >&2
+ exit 1
+fi
diff --git a/dung-3.4.25-m2/common/proc-interrupts.sh b/dung-3.4.25-m2/common/proc-interrupts.sh
new file mode 100755
index 0000000..3e709a0
--- /dev/null
+++ b/dung-3.4.25-m2/common/proc-interrupts.sh
@@ -0,0 +1,31 @@
+#!/bin/sh
+# dmesg.sh
+#
+# Simple /proc/interrupts presence test
+#
+# Copyright (C) 2013 Horms Soltutions Ltd.
+#
+# Contact: Simon Horman <horms@verge.net.au>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 2 of the License.
+
+set -e
+#set -x
+
+if [ $# -ne 1 ]; then
+ echo "usage: $(basename $0) PATTERN" >& 2
+ exit 1
+fi
+
+PATTERN="$1"
+
+#echo "/proc/interrupts feature test for '$PATTERN'"
+
+if ! grep "$PATTERN" /proc/interrupts; then
+ echo "error: not matched" >&2
+ exit 1
+fi
+
+#echo "Test passed"
diff --git a/dung-3.4.25-m2/common/umount-device.sh b/dung-3.4.25-m2/common/umount-device.sh
new file mode 100755
index 0000000..59a829a
--- /dev/null
+++ b/dung-3.4.25-m2/common/umount-device.sh
@@ -0,0 +1,25 @@
+#!/bin/bash
+# umount devices
+
+echo "Umount devices"
+
+set -e
+#set -x
+
+if [ $# -ne 1 ]; then
+ echo "usage: $(basename $0) PATTERN" >& 2
+ exit 1
+fi
+
+DEV_DIR="$1"
+
+# Umount device
+umount ${DEV_DIR}/
+
+# Umount check
+if [ $? -eq 0 ];then
+ echo "Device have umounted"
+else
+ echo "Device umount is error" >&2
+ exit 1
+fi
diff --git a/dung-3.4.25-m2/common/unbind-bind-write.sh b/dung-3.4.25-m2/common/unbind-bind-write.sh
new file mode 100755
index 0000000..a858aa3
--- /dev/null
+++ b/dung-3.4.25-m2/common/unbind-bind-write.sh
@@ -0,0 +1,27 @@
+#!/bin/sh
+# unbind-bind-write.sh
+#
+# Simple test of unbinding and re-binding a device followed
+# by writing to an associated block device
+#
+# Copyright (C) 2013 Horms Soltutions Ltd.
+#
+# Contact: Simon Horman <horms@verge.net.au>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 2 of the License.
+
+set -e
+#set -x
+
+if [ $# -ne 3 ]; then
+ echo "usage: $(basename $0) DRIVER DEVICE_NAME BLOCK_DEVICE" >& 2
+ exit 1
+fi
+
+$(dirname $0)/../common/unbind-bind.sh "$@"
+
+echo "Perform write test"
+exec $(dirname $0)/../common/write-dd.sh "$3" 1M 10
+
diff --git a/dung-3.4.25-m2/common/unbind-bind.sh b/dung-3.4.25-m2/common/unbind-bind.sh
new file mode 100755
index 0000000..25f9fb3
--- /dev/null
+++ b/dung-3.4.25-m2/common/unbind-bind.sh
@@ -0,0 +1,76 @@
+#!/bin/sh
+# unbind-bind-write.sh
+#
+# Simple test of binding and unbinding a device
+#
+# Copyright (C) 2013 Horms Soltutions Ltd.
+#
+# Contact: Simon Horman <horms@verge.net.au>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 2 of the License.
+
+set -e
+#set -x
+
+if [ $# -lt 2 ]; then
+ echo "usage: $(basename $0) DRIVER DEVICE_NAME [CHECK_PATH...]" >& 2
+ exit 1
+fi
+
+DRIVER="$1"; shift
+DEVICE_NAME="$1"; shift
+
+SYSFS_BASE_DIR="/sys/bus/platform/drivers/$DRIVER"
+SYSFS_DEV_DIR="$SYSFS_BASE_DIR/$DEVICE_NAME"
+
+CHECK_PATH="$SYSFS_DEV_DIR $@"
+
+exists ()
+{
+ for i in $CHECK_PATH; do
+ if [ ! -e "$i" ]; then
+ echo \'$i\': No such file or directory >&2
+ exit 1
+ fi
+ done
+}
+
+echo "Test device files exists"
+
+exists
+
+echo "Unbind device"
+echo "$DEVICE_NAME" > "$SYSFS_BASE_DIR/unbind"
+
+echo "Test that block device and sysfs directory no longer exist"
+for i in $CHECK_PATH; do
+ if [ -e "$i" ]; then
+ echo Failed to unbind \'$DEVICE_NAME\': \'$i\' still exists >&2
+ exit 1
+ fi
+done
+
+echo "Bind device"
+echo "$DEVICE_NAME" > "$SYSFS_BASE_DIR/bind"
+
+echo "Wait for device files to be recreated"
+for i in $(seq 1 32); do
+ OK="true"
+ for i in $CHECK_PATH; do
+ if [ ! -e "$i" ]; then
+ OK="false"
+ break
+ fi
+ done
+ if [ "$OK" = "false" ]; then
+ sleep 1
+ else
+ break
+ fi
+done
+
+echo "Test that device files once again exist"
+exists
+
diff --git a/dung-3.4.25-m2/common/write-common.sh b/dung-3.4.25-m2/common/write-common.sh
new file mode 100755
index 0000000..09b5720
--- /dev/null
+++ b/dung-3.4.25-m2/common/write-common.sh
@@ -0,0 +1,77 @@
+#!/bin/sh
+# write-dev.sh
+#
+# Simple dd-based write test
+#
+# Copyright (C) 2013 Horms Soltutions Ltd.
+#
+# Contact: Simon Horman <horms@verge.net.au>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 2 of the License.
+
+set -e
+#set -x
+
+if [ $# -ne 4 ]; then
+ echo "usage: $(basename $0) PATH BLOCK_SIZE BLOCK_COUNT" >& 2
+ exit 1
+fi
+
+SRC_DEV="$1"
+DST_DEV="$2"
+BLOCK_SIZE="$3"
+BLOCK_COUNT="$4"
+
+echo "test data (bs=$BLOCK_SIZE count=$BLOCK_COUNT)"
+
+echo "Test that device exists"
+if [ ! -e "$SRC_DEV" ]; then
+ echo \'$SRC_DEV\': No such file or directory >&2
+ exit 1
+fi
+
+if [ ! -e "$DST_DEV" ]; then
+ echo \'$SRC_DE\': No such file or directory >&2
+ exit 1
+
+fi
+
+IN=""
+OUT=""
+cleanup ()
+{
+ [ -n "$IN" -a -f "$IN" ] && rm "$IN"
+ [ -n "$OUT" -a -f "$OUT" ] && rm "$OUT"
+}
+trap cleanup exit
+IN=$(mktemp -p $SRC_DEV/)
+OUT=$(mktemp -p $DST_DEV/)
+
+echo "Write random data to test file"
+dd if=/dev/urandom of="$IN" bs="$BLOCK_SIZE" count="$BLOCK_COUNT" > /dev/null 2>&1
+
+echo "Write test data to device"
+dd if="$IN" of="$OUT" bs="$BLOCK_SIZE" count="$BLOCK_COUNT" > /dev/null 2>&1
+
+
+IN_SUM=$(sha256sum "$IN" | cut -f 1 -d ' ')
+OUT_SUM=$(sha256sum "$OUT" | cut -f 1 -d ' ')
+
+IN_SIZE=$(wc -c "$IN" | cut -f 1 -d ' ')
+OUT_SIZE=$(wc -c "$OUT" | cut -f 1 -d ' ')
+
+echo "Compare data writen to data read"
+if [ "$IN_SUM" != "$OUT_SUM" ]; then
+ echo "Data read does not match data written" >&2
+ echo "Size (bytes):" >&2
+ echo " in: $IN_SIZE" >&2
+ echo " out: $OUT_SIZE" >&2
+ echo "SHA 256 Checksums:" >&2
+ echo " in: $IN_SUM" >&2
+ echo " out: $OUT_SUM" >&2
+ exit 1
+fi
+
+echo "Test passed"
diff --git a/dung-3.4.25-m2/common/write-dd.sh b/dung-3.4.25-m2/common/write-dd.sh
new file mode 100755
index 0000000..0299819
--- /dev/null
+++ b/dung-3.4.25-m2/common/write-dd.sh
@@ -0,0 +1,73 @@
+#!/bin/sh
+# write-dev.sh
+#
+# Simple dd-based write test
+#
+# Copyright (C) 2013 Horms Soltutions Ltd.
+#
+# Contact: Simon Horman <horms@verge.net.au>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 2 of the License.
+
+set -e
+#set -x
+
+if [ $# -ne 3 ]; then
+ echo "usage: $(basename $0) PATH BLOCK_SIZE BLOCK_COUNT" >& 2
+ exit 1
+fi
+
+DEV="$1"
+BLOCK_SIZE="$2"
+BLOCK_COUNT="$3"
+
+echo "write test for $DEV (bs=$BLOCK_SIZE count=$BLOCK_COUNT)"
+
+echo "Test that device exists"
+if [ ! -e "$DEV" ]; then
+ echo \'$DEV\': No such file or directory >&2
+ exit 1
+fi
+
+IN=""
+OUT=""
+cleanup ()
+{
+ [ -n "$IN" -a -f "$IN" ] && rm "$IN"
+ [ -n "$OUT" -a -f "$OUT" ] && rm "$OUT"
+}
+trap cleanup exit
+IN=$(mktemp)
+OUT=$(mktemp)
+
+echo "Write random data to test file"
+dd if=/dev/urandom of="$IN" bs="$BLOCK_SIZE" count="$BLOCK_COUNT"
+
+echo "Write test data to device"
+
+dd if="$IN" of="$DEV" oflag=direct bs="$BLOCK_SIZE" count="$BLOCK_COUNT"
+
+echo "Read test data from device"
+dd if="$DEV" of="$OUT" bs="$BLOCK_SIZE" count="$BLOCK_COUNT"
+
+IN_SUM=$(sha256sum "$IN" | cut -f 1 -d ' ')
+OUT_SUM=$(sha256sum "$OUT" | cut -f 1 -d ' ')
+
+IN_SIZE=$(wc -c "$IN" | cut -f 1 -d ' ')
+OUT_SIZE=$(wc -c "$OUT" | cut -f 1 -d ' ')
+
+echo "Compare data writen to data read"
+if [ "$IN_SUM" != "$OUT_SUM" ]; then
+ echo "Data read does not match data written" >&2
+ echo "Size (bytes):" >&2
+ echo " in: $IN_SIZE" >&2
+ echo " out: $OUT_SIZE" >&2
+ echo "SHA 256 Checksums:" >&2
+ echo " in: $IN_SUM" >&2
+ echo " out: $OUT_SUM" >&2
+ exit 1
+fi
+
+echo "Test passed"
diff --git a/dung-3.4.25-m2/scifab/dmesg-sh-sci.0.sh b/dung-3.4.25-m2/scifab/dmesg-sh-sci.0.sh
new file mode 100755
index 0000000..7ad083a
--- /dev/null
+++ b/dung-3.4.25-m2/scifab/dmesg-sh-sci.0.sh
@@ -0,0 +1,81 @@
+#!/bin/sh
+
+set -e
+#set -x
+
+echo "sh-sci dmesg feature test"
+
+
+OK=0
+NG=0
+
+test_one ()
+{
+ if $(dirname $0)/../common/dmesg-quiet.sh "$@"; then
+ OK=$(($OK + 1))
+ else
+ NG=$(($NG + 1))
+ echo "Could not find $SW" >&2
+ fi
+}
+
+test_one \
+"sh-sci.0: ttySC0 at MMIO 0xe6c40000 (irq = 176) is a scifa"
+
+test_one \
+"sh-sci.1: ttySC1 at MMIO 0xe6c50000 (irq = 177) is a scifa"
+
+test_one \
+"sh-sci.2: ttySC2 at MMIO 0xe6c20000 (irq = 180) is a scifb"
+
+test_one \
+"sh-sci.3: ttySC3 at MMIO 0xe6c30000 (irq = 181) is a scifb"
+
+test_one \
+"sh-sci.4: ttySC4 at MMIO 0xe6ce0000 (irq = 182) is a scifb"
+
+test_one \
+"sh-sci.5: ttySC5 at MMIO 0xe6c60000 (irq = 183) is a scifa"
+
+test_one \
+"sh-sci.6: ttySC6 at MMIO 0xe6e60000 (irq = 184) is a scif"
+
+test_one \
+"sh-sci.7: ttySC7 at MMIO 0xe6e68000 (irq = 185) is a scif"
+
+test_one \
+"sh-sci.8: ttySC8 at MMIO 0xe62c0000 (irq = 186) is a hscif"
+
+test_one \
+"sh-sci.9: ttySC9 at MMIO 0xe62c8000 (irq = 187) is a hscif"
+
+test_one \
+"sh-sci.10: ttySC10 at MMIO 0xe6e56000 (irq = 196) is a scif"
+
+test_one \
+"sh-sci.11: ttySC11 at MMIO 0xe6ea8000 (irq = 55) is a scif"
+
+test_one \
+"sh-sci.12: ttySC12 at MMIO 0xe6ee0000 (irq = 56) is a scif"
+
+test_one \
+"sh-sci.13: ttySC13 at MMIO 0xe6ee8000 (irq = 57) is a scif"
+
+test_one \
+"sh-sci.14: ttySC14 at MMIO 0xe6c70000 (irq = 61) is a scifa"
+
+test_one \
+"sh-sci.15: ttySC15 at MMIO 0xe6c78000 (irq = 62) is a scifa"
+
+test_one \
+"sh-sci.16: ttySC16 at MMIO 0xe6c80000 (irq = 63) is a scifa"
+
+test_one \
+"sh-sci.17: ttySC17 at MMIO 0xe62d0000 (irq = 53) is a hscif"
+
+echo "Passed:$OK Failed:$NG"
+
+if [ "$NG" -ne 0 ]; then
+ exit 1
+fi
+
diff --git a/dung-3.4.25-m2/scifab/proc-interrupts.sh b/dung-3.4.25-m2/scifab/proc-interrupts.sh
new file mode 100755
index 0000000..8fd4c43
--- /dev/null
+++ b/dung-3.4.25-m2/scifab/proc-interrupts.sh
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+set -e
+#set -x
+
+echo "sh-sci /proc/interrupts presence test"
+
+if $(dirname $0)/../common/proc-interrupts.sh \
+ "^ *:184 *.* *sh-sci.6:mux$"; then
+ echo "Test passed"
+else
+ echo "Test has not passed"
+fi
diff --git a/dung-3.4.25-m2/sdhi.0/unbind-bind-write.sh b/dung-3.4.25-m2/sdhi.0/unbind-bind-write.sh
new file mode 100755
index 0000000..07a5d57
--- /dev/null
+++ b/dung-3.4.25-m2/sdhi.0/unbind-bind-write.sh
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+set -e
+#set -x
+
+echo "SDHI unbind/bind/write test"
+
+if [ $# -ne 0 ]; then
+ echo "usage: $(basename $0)" >& 2
+ exit 1
+fi
+
+DRIVER="sh_mobile_sdhi"
+DEV_NAME=$DRIVER.0
+BLOCK_DEV="/dev/disk/by-path/platform-$DEV_NAME"
+
+exec $(dirname $0)/../common/unbind-bind-write.sh \
+ "$DRIVER" "$DEV_NAME" "$BLOCK_DEV"
diff --git a/dung-3.4.25-m2/sdhi.0/write-10M.sh b/dung-3.4.25-m2/sdhi.0/write-10M.sh
new file mode 100755
index 0000000..6d17f56
--- /dev/null
+++ b/dung-3.4.25-m2/sdhi.0/write-10M.sh
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+set -e
+#set -x
+
+echo "SDHI 1k write test"
+
+exec $(dirname $0)/../common/write-dd.sh \
+ /dev/disk/by-path/platform-sh_mobile_sdhi.0 1M 10
diff --git a/dung-3.4.25-m2/sdhi.0/write-1k.sh b/dung-3.4.25-m2/sdhi.0/write-1k.sh
new file mode 100755
index 0000000..5789b5a
--- /dev/null
+++ b/dung-3.4.25-m2/sdhi.0/write-1k.sh
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+set -e
+#set -x
+
+echo "SDHI 1k write test"
+
+exec $(dirname $0)/../common/write-dd.sh \
+ /dev/disk/by-path/platform-sh_mobile_sdhi.0 1k 1