1 |
34 |
wfjm |
# $Id: test_rhrp_func_reg.tcl 705 2015-07-26 21:25:42Z mueller $
|
2 |
30 |
wfjm |
#
|
3 |
|
|
# Copyright 2015- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
4 |
|
|
# License disclaimer see LICENSE_gpl_v2.txt in $RETROBASE directory
|
5 |
|
|
#
|
6 |
|
|
# Revision History:
|
7 |
|
|
# Date Rev Version Comment
|
8 |
32 |
wfjm |
# 2015-06-20 692 1.0.1 de-configure all drives at begin
|
9 |
30 |
wfjm |
# 2015-03-29 660 1.0 Initial version
|
10 |
|
|
#
|
11 |
|
|
# Test functions - register level
|
12 |
|
|
# A:
|
13 |
|
|
|
14 |
|
|
# ----------------------------------------------------------------------------
|
15 |
|
|
rlc log "test_rhrp_func_reg: test functions - register level -----------------"
|
16 |
|
|
rlc log " setup: unit 0:RP06(mol), 1:RM05(mol,wrl), 2: RP07(mol=0), 3: off"
|
17 |
|
|
package require ibd_rhrp
|
18 |
|
|
ibd_rhrp::setup
|
19 |
|
|
|
20 |
|
|
rlc set statmask $rw11::STAT_DEFMASK
|
21 |
|
|
rlc set statvalue 0
|
22 |
|
|
|
23 |
32 |
wfjm |
# de-configure all drives (and clear errros and reset vv)
|
24 |
|
|
$cpu cp -wibr rpa.cs1 [ibd_rhrp::rcs1_wunit 0] \
|
25 |
|
|
-wibr rpa.ds [regbld ibd_rhrp::DS erp vv] \
|
26 |
|
|
-wibr rpa.cs1 [ibd_rhrp::rcs1_wunit 1] \
|
27 |
|
|
-wibr rpa.ds [regbld ibd_rhrp::DS erp vv] \
|
28 |
|
|
-wibr rpa.cs1 [ibd_rhrp::rcs1_wunit 2] \
|
29 |
|
|
-wibr rpa.ds [regbld ibd_rhrp::DS erp vv] \
|
30 |
|
|
-wibr rpa.cs1 [ibd_rhrp::rcs1_wunit 3] \
|
31 |
|
|
-wibr rpa.ds [regbld ibd_rhrp::DS erp vv]
|
32 |
|
|
|
33 |
30 |
wfjm |
# configure drives
|
34 |
|
|
$cpu cp -wibr rpa.cs1 [ibd_rhrp::rcs1_wunit 0] \
|
35 |
|
|
-wibr rpa.ds [regbld ibd_rhrp::DS {dpr 1} mol] \
|
36 |
|
|
-wibr rpa.dt $ibd_rhrp::DTE_RP06 \
|
37 |
|
|
-wibr rpa.cs1 [ibd_rhrp::rcs1_wunit 1] \
|
38 |
|
|
-wibr rpa.ds [regbld ibd_rhrp::DS {dpr 1} mol wrl] \
|
39 |
|
|
-wibr rpa.dt $ibd_rhrp::DTE_RM05 \
|
40 |
|
|
-wibr rpa.cs1 [ibd_rhrp::rcs1_wunit 2] \
|
41 |
|
|
-wibr rpa.ds [regbld ibd_rhrp::DS {dpr 1}] \
|
42 |
|
|
-wibr rpa.dt $ibd_rhrp::DTE_RP07 \
|
43 |
|
|
-wibr rpa.cs1 [ibd_rhrp::rcs1_wunit 3] \
|
44 |
|
|
-wibr rpa.ds [regbld ibd_rhrp::DS {dpr 0}]
|
45 |
|
|
|
46 |
|
|
# setup system: select unit 0; clr errors (cs1.tre and func=dclr); clear ATs
|
47 |
|
|
$cpu cp -wma rpa.cs2 [regbld ibd_rhrp::CS2 {unit 0}] \
|
48 |
|
|
-wma rpa.cs1 [regbld ibd_rhrp::CS1 tre] \
|
49 |
|
|
-wma rpa.cs1 [ibd_rhrp::cs1_func $ibd_rhrp::FUNC_DCLR] \
|
50 |
|
|
-wma rpa.as [regbld ibd_rhrp::AS u3 u2 u1 u0] \
|
51 |
|
|
-rma rpa.ds -edata [regbld ibd_rhrp::DS dpr mol dry]
|
52 |
|
|
|
53 |
|
|
# -- Section A -- function basics --------------------------------------------
|
54 |
|
|
rlc log " A -- function basics ----------------------------------------------"
|
55 |
|
|
rlc log " A1: test cs1 func basics ----------------------------------"
|
56 |
|
|
rlc log " A1.1a: func noop; check no as ----------------------"
|
57 |
|
|
|
58 |
|
|
set dsmsk [regbld ibd_rhrp::DS ata dpr]
|
59 |
|
|
|
60 |
|
|
$cpu cp -wma rpa.cs1 [ibd_rhrp::cs1_func $ibd_rhrp::FUNC_NOOP] \
|
61 |
|
|
-rma rpa.as -edata 0x0 \
|
62 |
|
|
-rma rpa.ds -edata [regbld ibd_rhrp::DS dpr] $dsmsk
|
63 |
|
|
|
64 |
|
|
rlc log " A2.1a: test invalid function (037) -----------------"
|
65 |
|
|
|
66 |
|
|
$cpu cp -wma rpa.cs1 [ibd_rhrp::cs1_func 037]
|
67 |
|
|
|
68 |
|
|
rlc log " A2.1b: check as,er1.ilf,ds.ata; clear as; recheck --"
|
69 |
|
|
|
70 |
|
|
$cpu cp -rma rpa.as -edata [regbld ibd_rhrp::AS u0] \
|
71 |
|
|
-rma rpa.er1 -edata [regbld ibd_rhrp::ER1 ilf] \
|
72 |
|
|
-rma rpa.ds -edata [regbld ibd_rhrp::DS ata dpr] $dsmsk \
|
73 |
|
|
-wma rpa.as [regbld ibd_rhrp::AS u0] \
|
74 |
|
|
-rma rpa.as -edata 0x0 \
|
75 |
|
|
-rma rpa.ds -edata [regbld ibd_rhrp::DS dpr] $dsmsk
|
76 |
|
|
|
77 |
|
|
rlc log " A2.2a: func dclr; check no as and er1 clear --------"
|
78 |
|
|
|
79 |
|
|
$cpu cp -wma rpa.as [regbld ibd_rhrp::AS u3 u2 u1 u0] \
|
80 |
|
|
-wma rpa.cs1 [ibd_rhrp::cs1_func $ibd_rhrp::FUNC_DCLR] \
|
81 |
|
|
-rma rpa.as -edata 0x0 \
|
82 |
|
|
-rma rpa.er1 -edata 0x0
|
83 |
|
|
|
84 |
|
|
# -- Section B -- state functions --------------------------------------------
|
85 |
|
|
rlc log " B -- state functions ----------------------------------------------"
|
86 |
|
|
|
87 |
|
|
# -- Section C -- seek functions ---------------------------------------------
|
88 |
|
|
rlc log " C -- seek functions -----------------------------------------------"
|
89 |
|
|
|
90 |
|
|
# -- Section D -- transfer functions -----------------------------------------
|
91 |
|
|
rlc log " D -- transfer functions -------------------------------------------"
|
92 |
|
|
rlc log " D1: test func read sequence -------------------------------"
|
93 |
|
|
rlc log " D1.1: issue func with ie=0 ---------------------------"
|
94 |
|
|
|
95 |
|
|
# discard pending attn to be on save side
|
96 |
|
|
rlc wtlam 0.
|
97 |
|
|
rlc exec -attn
|
98 |
|
|
|
99 |
|
|
set attnmsk [expr {1<<$ibd_rhrp::ANUM}]
|
100 |
|
|
|
101 |
|
|
set ba 0x1000
|
102 |
|
|
set wc [expr {0xffff & (-256)}]
|
103 |
|
|
set da [regbld ibd_rhrp::DA {ta 2} {sa 1}]
|
104 |
|
|
set dc 0x0003
|
105 |
|
|
|
106 |
|
|
$cpu cp -wma rpa.cs2 [regbld ibd_rhrp::CS2 {unit 0}] \
|
107 |
|
|
-wma rpa.cs1 [regbld ibd_rhrp::CS1 tre] \
|
108 |
|
|
-wma rpa.ba $ba \
|
109 |
|
|
-wma rpa.bae 0x0 \
|
110 |
|
|
-wma rpa.wc $wc \
|
111 |
|
|
-wma rpa.da $da \
|
112 |
|
|
-wma rpa.dc $dc \
|
113 |
|
|
-wma rpa.cs1 [ibd_rhrp::cs1_func $ibd_rhrp::FUNC_READ]
|
114 |
|
|
|
115 |
|
|
rlc log " D1.2: loc status check: cs1.rdy=0, ds.dry=0 ----------"
|
116 |
|
|
|
117 |
|
|
$cpu cp -rma rpa.cs1 -edata 0 [regbld ibd_rhrp::CS1 rdy] \
|
118 |
|
|
-rma rpa.ds -edata 0 [regbld ibd_rhrp::DS dry]
|
119 |
|
|
|
120 |
|
|
rlc log " D1.3: rem status check: attn + state -----------------"
|
121 |
|
|
|
122 |
|
|
rlc exec -attn -edata $attnmsk
|
123 |
|
|
|
124 |
|
|
# check rdy=0 ie=0 func=read
|
125 |
34 |
wfjm |
set cs1val [regbldkv ibd_rhrp::CS1 func READ]
|
126 |
30 |
wfjm |
set cs1msk [regbld ibd_rhrp::CS1 rdy ie {func -1}]
|
127 |
|
|
# expect ds mol=1 dpr=1 dry=0
|
128 |
|
|
set dsval [regbld ibd_rhrp::DS mol dpr]
|
129 |
|
|
|
130 |
|
|
$cpu cp -wibr rpa.cs1 [ibd_rhrp::cs1_func $ibd_rhrp::RFUNC_CUNIT] \
|
131 |
|
|
-ribr rpa.cs1 -edata $cs1val $cs1msk \
|
132 |
|
|
-ribr rpa.ba -edata $ba \
|
133 |
|
|
-ribr rpa.bae -edata 0x0 \
|
134 |
|
|
-ribr rpa.wc -edata $wc \
|
135 |
|
|
-ribr rpa.da -edata $da \
|
136 |
|
|
-ribr rpa.dc -edata $dc \
|
137 |
|
|
-ribr rpa.ds -edata $dsval
|
138 |
|
|
|
139 |
|
|
rlc log " D1.4: rem send response ------------------------------"
|
140 |
|
|
|
141 |
|
|
set ba [expr {0xffff & (-$wc)}]
|
142 |
|
|
set da [regbld ibd_rhrp::DA {ta 2} {sa 2}]
|
143 |
|
|
|
144 |
|
|
$cpu cp -wibr rpa.ba $ba \
|
145 |
|
|
-wibr rpa.wc 0x0 \
|
146 |
|
|
-wibr rpa.da $da \
|
147 |
|
|
-wibr rpa.cs1 [ibd_rhrp::cs1_func $ibd_rhrp::RFUNC_DONE]
|
148 |
|
|
|
149 |
|
|
rlc log " D1.5: loc check: cs1.rdy=1, ds.dry=1 -----------------"
|
150 |
|
|
|
151 |
|
|
# expect cs1 sc=0 tre=0 dva=1 rdy=1 ie=0 func=read go=0
|
152 |
34 |
wfjm |
set cs1val [regbldkv ibd_rhrp::CS1 dva 1 rdy 1 func READ]
|
153 |
30 |
wfjm |
# expect ds ata=0 mol=1 dpr=1 dry=1
|
154 |
|
|
set dsval [regbld ibd_rhrp::DS mol dpr dry]
|
155 |
|
|
|
156 |
|
|
$cpu cp -rma rpa.cs1 -edata $cs1val \
|
157 |
|
|
-rma rpa.ba -edata $ba \
|
158 |
|
|
-rma rpa.wc -edata 0x0 \
|
159 |
|
|
-rma rpa.da -edata $da \
|
160 |
|
|
-rma rpa.ds -edata $dsval
|