summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2015-11-02 07:05:39 +0100
committerWaldemar Brodkorb <wbx@openadk.org>2015-11-02 07:05:39 +0100
commitd0e1a5d0f3adbd20f5a4c3959e80314b7ab2f32e (patch)
treeb721fffe4ef22e9a8d49da4424093b934032264f
parente54d915fd1203cd16fddeb4d8942b8f0411d6c8f (diff)
allow to use synopsys simulator
-rwxr-xr-xembedded-test.sh81
1 files changed, 56 insertions, 25 deletions
diff --git a/embedded-test.sh b/embedded-test.sh
index c6c9068..2e79040 100755
--- a/embedded-test.sh
+++ b/embedded-test.sh
@@ -155,6 +155,7 @@ runtest() {
arch=$2
test=$3
+ emulator=qemu
qemu=qemu-system-${arch}
qemu_args=
if [ $ntp ]; then
@@ -192,6 +193,16 @@ runtest() {
dtbdir=openadk/firmware/qemu-${march}_${lib}_${cpu_arch}_${suffix}
qemu_args="${qemu_args} -cpu cortex-a9 -net user -net nic,model=lan9118 -dtb ${dtbdir}/vexpress-v2p-ca9.dtb"
;;
+ arcv1)
+ emulator=nsim
+ cpu_arch=arc
+ piggyback=1
+ ;;
+ arcv2)
+ emulator=nsim
+ cpu_arch=arc
+ piggyback=1
+ ;;
crisv32)
cpu_arch=crisv32
march=cris
@@ -357,16 +368,29 @@ runtest() {
echo "architecture ${arch} not supported"; exit 1;;
esac
- if ! which $qemu >/dev/null; then
- echo "Checking if $qemu is installed... failed"
- exit 1
- fi
- qemuver=$(${qemu} -version|awk '{ print $4 }')
- if [ $(echo $qemuver |sed -e "s#\.##g" -e "s#,##") -lt 210 ];then
- echo "Your qemu version is too old. Please update to 2.1 or greater"
- exit 1
- fi
-
+ case $emulator in
+ qemu)
+ echo "Using QEMU as emulator"
+ if ! which $qemu >/dev/null; then
+ echo "Checking if $qemu is installed... failed"
+ exit 1
+ fi
+ qemuver=$(${qemu} -version|awk '{ print $4 }')
+ if [ $(echo $qemuver |sed -e "s#\.##g" -e "s#,##") -lt 210 ];then
+ echo "Your qemu version is too old. Please update to 2.1 or greater"
+ exit 1
+ fi
+ ;;
+ nsim)
+ echo "Using Synopsys NSIM as simulator"
+ if ! which nsimdrv >/dev/null; then
+ echo "Checking if $emulator is installed... failed"
+ exit 1
+ fi
+ ;;
+ *)
+ echo "emulator/simulator not supported"; exit 1;;
+ esac
echo "Starting test for $lib and $arch"
# check if initramfs or piggyback is used
if [ $piggyback -eq 1 ]; then
@@ -375,19 +399,19 @@ runtest() {
rm -rf openadk/extra 2>/dev/null
mkdir openadk/extra 2>/dev/null
if [ ! -z $suffix ]; then
- kernel=openadk/firmware/qemu-${march}_${lib}_${cpu_arch}_${suffix}/qemu-${march}-initramfspiggyback-kernel
+ kernel=openadk/firmware/${emulator}-${march}_${lib}_${cpu_arch}_${suffix}/${emulator}-${march}-initramfspiggyback-kernel
else
- kernel=openadk/firmware/qemu-${march}_${lib}_${cpu_arch}/qemu-${march}-initramfspiggyback-kernel
+ kernel=openadk/firmware/${emulator}-${march}_${lib}_${cpu_arch}/${emulator}-${march}-initramfspiggyback-kernel
fi
else
echo "Generating root filesystem for test run"
root=$(mktemp -d /tmp/XXXX)
if [ ! -z $suffix ]; then
- archive=openadk/firmware/qemu-${march}_${lib}_${cpu_arch}_${suffix}/qemu-${march}-${lib}-initramfsarchive.tar.xz
- kernel=openadk/firmware/qemu-${march}_${lib}_${cpu_arch}_${suffix}/qemu-${march}-initramfsarchive-kernel
+ archive=openadk/firmware/${emulator}-${march}_${lib}_${cpu_arch}_${suffix}/qemu-${march}-${lib}-initramfsarchive.tar.xz
+ kernel=openadk/firmware/${emulator}-${march}_${lib}_${cpu_arch}_${suffix}/qemu-${march}-initramfsarchive-kernel
else
- archive=openadk/firmware/qemu-${march}_${lib}_${cpu_arch}/qemu-${march}-${lib}-initramfsarchive.tar.xz
- kernel=openadk/firmware/qemu-${march}_${lib}_${cpu_arch}/qemu-${march}-initramfsarchive-kernel
+ archive=openadk/firmware/${emulator}-${march}_${lib}_${cpu_arch}/${emulator}-${march}-${lib}-initramfsarchive.tar.xz
+ kernel=openadk/firmware/${emulator}-${march}_${lib}_${cpu_arch}/${emulator}-${march}-initramfsarchive-kernel
fi
if [ ! -f $archive ];then
@@ -460,9 +484,17 @@ EOF
qemu_args="$qemu_args ${qemu_append}"
fi
- echo "Now running the test ${test} in qemu for architecture ${arch} and ${lib}"
- echo "${qemu} -M ${qemu_machine} ${qemu_args} -kernel ${kernel} -qmp tcp:127.0.0.1:4444,server,nowait -no-reboot -nographic"
- ${qemu} -M ${qemu_machine} ${qemu_args} -kernel ${kernel} -qmp tcp:127.0.0.1:4444,server,nowait -no-reboot -nographic | tee REPORT.${arch}.${test}.${libver}
+ echo "Now running the test ${test} in ${emulator} for architecture ${arch} and ${lib}"
+ case $emulator in
+ qemu)
+ echo "${qemu} -M ${qemu_machine} ${qemu_args} -kernel ${kernel} -qmp tcp:127.0.0.1:4444,server,nowait -no-reboot -nographic"
+ ${qemu} -M ${qemu_machine} ${qemu_args} -kernel ${kernel} -qmp tcp:127.0.0.1:4444,server,nowait -no-reboot -nographic | tee REPORT.${arch}.${test}.${libver}
+ ;;
+ nsim)
+ echo "./openadk/scripts/nsim.sh ${arch} ${kernel}"
+ ./openadk/scripts/nsim.sh ${arch} ${kernel}
+ ;;
+ esac
if [ $? -eq 0 ];then
echo "Test ${test} for ${arch} finished. See REPORT.${arch}.${lib}.${test}.${libver}"
echo
@@ -534,26 +566,25 @@ build() {
;;
esac
fi
- echo "Using $DEFAULT"
case $arch in
aarch64)
DEFAULT="$DEFAULT ADK_APPLIANCE=test ADK_TARGET_ARCH=aarch64 ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=qemu-aarch64"
compile "$DEFAULT"
;;
arcv1)
- DEFAULT="$DEFAULT ADK_APPLIANCE=test ADK_TARGET_ARCH=arc ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=nsim-arcv1 ADK_TARGET_ENDIAN=little"
+ DEFAULT="$DEFAULT ADK_APPLIANCE=test ADK_TARGET_ARCH=arc ADK_TARGET_FS=initramfspiggyback ADK_TARGET_SYSTEM=nsim-arcv1 ADK_TARGET_ENDIAN=little"
compile "$DEFAULT"
;;
arcv2)
- DEFAULT="$DEFAULT ADK_APPLIANCE=test ADK_TARGET_ARCH=arc ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=nsim-arcv2 ADK_TARGET_ENDIAN=little"
+ DEFAULT="$DEFAULT ADK_APPLIANCE=test ADK_TARGET_ARCH=arc ADK_TARGET_FS=initramfspiggyback ADK_TARGET_SYSTEM=nsim-arcv2 ADK_TARGET_ENDIAN=little"
compile "$DEFAULT"
;;
arcv1-be)
- DEFAULT="$DEFAULT ADK_APPLIANCE=test ADK_TARGET_ARCH=arc ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=nsim-arcv1 ADK_TARGET_ENDIAN=big"
+ DEFAULT="$DEFAULT ADK_APPLIANCE=test ADK_TARGET_ARCH=arc ADK_TARGET_FS=initramfspiggyback ADK_TARGET_SYSTEM=nsim-arcv1 ADK_TARGET_ENDIAN=big"
compile "$DEFAULT"
;;
arcv2-be)
- DEFAULT="$DEFAULT ADK_APPLIANCE=test ADK_TARGET_ARCH=arc ADK_TARGET_FS=initramfsarchive ADK_TARGET_SYSTEM=nsim-arcv2 ADK_TARGET_ENDIAN=big"
+ DEFAULT="$DEFAULT ADK_APPLIANCE=test ADK_TARGET_ARCH=arc ADK_TARGET_FS=initramfspiggyback ADK_TARGET_SYSTEM=nsim-arcv2 ADK_TARGET_ENDIAN=big"
compile "$DEFAULT"
;;
armv5)
@@ -765,7 +796,7 @@ for lib in ${libc}; do
case $lib in
uclibc-ng)
case $arch in
- arcv1|arcv2|arcv1-be|arcv2-be|armeb|avr32|bfin|c6x|crisv10|h8300|lm32|microblazeel|microblazebe|m68k|m68k-nommu|nios2|or1k|sheb)
+ arcv1-be|arcv2-be|armeb|avr32|bfin|c6x|crisv10|h8300|lm32|microblazeel|microblazebe|m68k|m68k-nommu|nios2|or1k|sheb)
echo "runtime tests disabled for $arch."
;;
*)