1 | |
---|
2 | TREE_FILE=psim_tree.${LOGNAME} |
---|
3 | |
---|
4 | ### Generate the PSIM device tree based upon the type of application being run |
---|
5 | gen_device_tree() |
---|
6 | { |
---|
7 | case ${1} in |
---|
8 | *mp*) |
---|
9 | if [ X${RTEMS_SHM_SEMAPHORE_KEY} = X -o X${RTEMS_SHM_KEY} = X ] ; then |
---|
10 | fatal RTEMS_SHM_SEMAPHORE_KEY and/or RTEMS_SHM_KEY not set |
---|
11 | fi |
---|
12 | |
---|
13 | use_sysv_devices=yes |
---|
14 | case ${1} in |
---|
15 | *node1*) value=1 ;; |
---|
16 | *) value=-1 ;; |
---|
17 | esac |
---|
18 | ;; |
---|
19 | *) |
---|
20 | use_sysv_devices=no |
---|
21 | ;; |
---|
22 | esac |
---|
23 | |
---|
24 | cat <<EOF |
---|
25 | # |
---|
26 | # Device Tree for PSIM |
---|
27 | # |
---|
28 | # Automatically Generated -- DO NOT EDIT!! |
---|
29 | # |
---|
30 | /#address-cells 1 |
---|
31 | /openprom/init/register/pvr 0xfffe0000 |
---|
32 | /openprom/options/oea-memory-size 8388608 |
---|
33 | ##### EEPROM @ 0x0c000000 for 512K |
---|
34 | /eeprom@0x0c000000/reg 0x0c000000 0x80000 |
---|
35 | /eeprom@0x0c000000/nr-sectors 8 |
---|
36 | /eeprom@0x0c000000/sector-size 0x10000 |
---|
37 | /eeprom@0x0c000000/byte-write-delay 1000 |
---|
38 | /eeprom@0x0c000000/sector-start-delay 100 |
---|
39 | /eeprom@0x0c000000/erase-delay 1000 |
---|
40 | /eeprom@0x0c000000/manufacture-code 0x01 |
---|
41 | /eeprom@0x0c000000/device-code 0xa4 |
---|
42 | |
---|
43 | ##### NVRAM/RTC NVRAM Portion is 0x0c080000 for 512K |
---|
44 | ##### NVRAM/RTC RTC Portion is 0x0c100000 for 12 |
---|
45 | /nvram@0x0c080000/reg 0x0c080000 524300 |
---|
46 | /nvram@0x0c080000/timezone -3600 |
---|
47 | EOF |
---|
48 | |
---|
49 | if [ ${use_sysv_devices} = yes ] ; then |
---|
50 | echo "##### System V IPC (Semaphore) 0x0c100010 for 12" |
---|
51 | echo "/sem@0x0c100010/reg 0x0c100010 12" |
---|
52 | echo "/sem@0x0c100010/key ${RTEMS_SHM_SEMAPHORE_KEY}" |
---|
53 | echo "/sem@0x0c100010/value ${value}" |
---|
54 | $@ |
---|
55 | echo "##### System V IPC (Shared Memory) 0x0c110000 for 128K" |
---|
56 | echo "/shm@0x0c110000/reg 0x0c110000 0x20000" |
---|
57 | echo "/shm@0x0c110000/key ${RTEMS_SHM_KEY}" |
---|
58 | fi |
---|
59 | |
---|
60 | } |
---|
61 | |
---|
62 | ### run the specified test with the time limit |
---|
63 | runone() |
---|
64 | { |
---|
65 | testname=${1} |
---|
66 | max_run_time=${2} |
---|
67 | if [ ${max_run_time} -eq 0 ] ; then |
---|
68 | #echo run ${testname} forever |
---|
69 | ${RUN} -f ${TREE_FILE} ${RUN_DEBUG} ${testname} |
---|
70 | else |
---|
71 | #echo run ${testname} for maximum ${max_run_time} seconds |
---|
72 | ${RUN} -f ${TREE_FILE} ${RUN_DEBUG} ${testname} & |
---|
73 | pid=$! |
---|
74 | |
---|
75 | # Make sure it won't run forever... |
---|
76 | time_run=0 |
---|
77 | while [ $time_run -lt $max_run_time ] |
---|
78 | do |
---|
79 | # sleep 5s at a time waiting for job to finish or timer to expire |
---|
80 | # if job has exited, then we exit, too. |
---|
81 | sleep 1 |
---|
82 | kill -0 $pid 2> /dev/null |
---|
83 | running=$? |
---|
84 | if [ $running -eq 0 ] ; then |
---|
85 | time_run=$((time_run + 5)) |
---|
86 | if [ $time_run -ge $max_run_time ]; then |
---|
87 | kill -9 $pid 2> /dev/null |
---|
88 | ran_too_long="yes" |
---|
89 | echo "${testname} killed after running ${max_run_time} seconds" |
---|
90 | fi |
---|
91 | else |
---|
92 | ran_too_long="no" |
---|
93 | break |
---|
94 | fi |
---|
95 | done |
---|
96 | fi |
---|
97 | } |
---|
98 | |
---|