summaryrefslogtreecommitdiffstats
path: root/sim-scripts/pc386.in
blob: 40998c049bc332410e1eb27aee35348d3d010597 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#
#  i386/qemu Support 
#

bspUsesGDBSimulator="no"
runBSP=NOT_OVERRIDDEN
if [ ! -r ${runBSP} ] ; then
  runBSP=notset
  for name in qemu-system-i386 qemu
  do
    type ${name} >/dev/null 2>&1
    if [ $? -eq 0 ] ; then
      runBSP=${name}
      break
    fi
  done
  if [ ${runBSP} = "notset" ] ; then
    echo "CANNOT FIND qemu or qemu-system-i386"
    exit 1
  fi
fi
bspNeedsDos2Unix="yes"
bspRunsFailRandomly="yes"
bspSupportsDisplayAdapter="yes"

# Set the defaults based upon arguments given and do some error checking
if [ X${QEMUDIR} == X ] ; then
  QEMUDIR=${HOME}/qemu
fi
if [ ! -d ${QEMUDIR} ] ; then
  fatal Base directory ${QEMUDIR} does not exist or is not a directory
fi

if [ X${hd0Dir} == X ] ; then
  hd0Dir=${QEMUDIR}/hd
fi
if [ ! -d ${hd0Dir} ] ; then
  fatal VFAT directory ${hd0Dir} does not exist or is not a directory
fi

if [ X${fd0Image} == X ] ; then
  fd0Image=${QEMUDIR}/pc386_fda
fi
if [ ! -e ${fd0Image} ] ; then
  fatal Boot floppy ${fd0Image} does not exist or is not a file
fi

if [ ${verbose} == "yes" ] ; then
  echo "QEMU Working Directory: " ${qemudir}
  echo "QEMU VFAT HD Directory: " ${hd0Dir}
  echo "QEMU Boot Floppy File : " ${fd0Image}
fi

runARGS()
{
  file ${1} | grep "Netboot image" >/dev/null 2>&1
  if [ $? -eq 0 ] ; then
    echo "INCORRECT FORMAT -- ${1}"
    echo "MUST BE ELF -- look at using the .exe"
    exit 1
  fi

  cp ${1} ${hd0Dir}/test.exe

  if [ ${coverage} = yes ] ; then
     rm -f trace ${1}.cov
     COVERAGE_ARG="-trace ${1}.cov"
  fi

  # -cpu 486
  # can also redirect to file with file:log/"`basename ${1} .exe`
  SERIAL_ARG="stdio"
  if [ ${enable_display_adapter} = "no" ] ; then
     GRAPHIC_ARG="-nographic"
  else
     GRAPHIC_ARG="-vga cirrus"
  fi
# core2duo with newer qemu for smp support
# 486 or pentium for older qemu
  echo "-m 512 -boot a -cpu 486 \
       -fda ${fd0Image} -hda fat:${hd0Dir} ${COVERAGE_ARG} \
       -monitor null ${GRAPHIC_ARG} -serial ${SERIAL_ARG} --no-reboot"
}

checkBSPFaults()
{
  # faulty thread may be deleted or suspended
  for pattern in  \
     "FAULTY THREAD WILL BE " \
     "raw handler conne" \
     "Error code pushed by processor itself"
  do
    grep "${pattern}" ${logfile}
    if [ $? -eq 0 ] ; then
      return 1
    fi
  done

  return 0
}

bspCheckRunWasOK()
{
  tname=`get_tname $testname`

  logfile=${logdir}/${tname}

  # sometimes the log file indicates the test did not run
  length=`grep -v "QEMU acceleration layer" ${logfile} | wc -c`
  if [ ${length} -eq 0 ] ; then
    echo 1
  else
    echo 0
  fi
}

bspLimit()
{
  case ${1} in
    *base_sp*) limit=5 ;;
    *stackchk*)limit=5 ;;
    *fatal*)   limit=5 ;;
    *minimum*) limit=5 ;;
    *psxtime*) limit=180 ;;
    *cpuuse*)  limit=30 ;;
    *)         limit=60 ;;
  esac
  echo ${limit}
}

bspGeneratesDeviceTree="no"